diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 000000000..f72383ca5 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,1013 @@ +[*] +charset = utf-8 +end_of_line = lf +indent_size = 4 +indent_style = space +insert_final_newline = true +max_line_length = 130 +tab_width = 4 +ij_continuation_indent_size = 8 +ij_formatter_off_tag = @formatter:off +ij_formatter_on_tag = @formatter:on +ij_formatter_tags_enabled = false +ij_smart_tabs = false +ij_wrap_on_typing = true + +[*.conf] +indent_size = 2 +tab_width = 2 +ij_continuation_indent_size = 2 +ij_hocon_keep_blank_lines_before_right_brace = 2 +ij_hocon_keep_indents_on_empty_lines = false +ij_hocon_keep_line_breaks = true +ij_hocon_space_after_colon = true +ij_hocon_space_after_comma = true +ij_hocon_space_before_colon = true +ij_hocon_space_before_comma = false +ij_hocon_spaces_within_braces = false +ij_hocon_spaces_within_brackets = false +ij_hocon_spaces_within_method_call_parentheses = false + +[*.css] +ij_css_align_closing_brace_with_properties = false +ij_css_blank_lines_around_nested_selector = 1 +ij_css_blank_lines_between_blocks = 1 +ij_css_brace_placement = end_of_line +ij_css_enforce_quotes_on_format = false +ij_css_hex_color_long_format = false +ij_css_hex_color_lower_case = false +ij_css_hex_color_short_format = false +ij_css_hex_color_upper_case = false +ij_css_keep_blank_lines_in_code = 2 +ij_css_keep_indents_on_empty_lines = false +ij_css_keep_single_line_blocks = false +ij_css_properties_order = font, font-family, font-size, font-weight, font-style, font-variant, font-size-adjust, font-stretch, line-height, position, z-index, top, right, bottom, left, display, visibility, float, clear, overflow, overflow-x, overflow-y, clip, zoom, align-content, align-items, align-self, flex, flex-flow, flex-basis, flex-direction, flex-grow, flex-shrink, flex-wrap, justify-content, order, box-sizing, width, min-width, max-width, height, min-height, max-height, margin, margin-top, margin-right, margin-bottom, margin-left, padding, padding-top, padding-right, padding-bottom, padding-left, table-layout, empty-cells, caption-side, border-spacing, border-collapse, list-style, list-style-position, list-style-type, list-style-image, content, quotes, counter-reset, counter-increment, resize, cursor, user-select, nav-index, nav-up, nav-right, nav-down, nav-left, transition, transition-delay, transition-timing-function, transition-duration, transition-property, transform, transform-origin, animation, animation-name, animation-duration, animation-play-state, animation-timing-function, animation-delay, animation-iteration-count, animation-direction, text-align, text-align-last, vertical-align, white-space, text-decoration, text-emphasis, text-emphasis-color, text-emphasis-style, text-emphasis-position, text-indent, text-justify, letter-spacing, word-spacing, text-outline, text-transform, text-wrap, text-overflow, text-overflow-ellipsis, text-overflow-mode, word-wrap, word-break, tab-size, hyphens, pointer-events, opacity, color, border, border-width, border-style, border-color, border-top, border-top-width, border-top-style, border-top-color, border-right, border-right-width, border-right-style, border-right-color, border-bottom, border-bottom-width, border-bottom-style, border-bottom-color, border-left, border-left-width, border-left-style, border-left-color, border-radius, border-top-left-radius, border-top-right-radius, border-bottom-right-radius, border-bottom-left-radius, border-image, border-image-source, border-image-slice, border-image-width, border-image-outset, border-image-repeat, outline, outline-width, outline-style, outline-color, outline-offset, background, background-color, background-image, background-repeat, background-attachment, background-position, background-position-x, background-position-y, background-clip, background-origin, background-size, box-decoration-break, box-shadow, text-shadow +ij_css_space_after_colon = true +ij_css_space_before_opening_brace = true +ij_css_use_double_quotes = true +ij_css_value_alignment = do_not_align + +[*.java] +ij_java_align_consecutive_assignments = false +ij_java_align_consecutive_variable_declarations = false +ij_java_align_group_field_declarations = false +ij_java_align_multiline_annotation_parameters = false +ij_java_align_multiline_array_initializer_expression = false +ij_java_align_multiline_assignment = false +ij_java_align_multiline_binary_operation = false +ij_java_align_multiline_chained_methods = false +ij_java_align_multiline_extends_list = false +ij_java_align_multiline_for = true +ij_java_align_multiline_method_parentheses = false +ij_java_align_multiline_parameters = true +ij_java_align_multiline_parameters_in_calls = false +ij_java_align_multiline_parenthesized_expression = false +ij_java_align_multiline_records = true +ij_java_align_multiline_resources = true +ij_java_align_multiline_ternary_operation = false +ij_java_align_multiline_text_blocks = false +ij_java_align_multiline_throws_list = false +ij_java_align_subsequent_simple_methods = false +ij_java_align_throws_keyword = false +ij_java_annotation_parameter_wrap = off +ij_java_array_initializer_new_line_after_left_brace = false +ij_java_array_initializer_right_brace_on_new_line = false +ij_java_array_initializer_wrap = off +ij_java_assert_statement_colon_on_next_line = false +ij_java_assert_statement_wrap = off +ij_java_assignment_wrap = off +ij_java_binary_operation_sign_on_next_line = false +ij_java_binary_operation_wrap = off +ij_java_blank_lines_after_anonymous_class_header = 0 +ij_java_blank_lines_after_class_header = 1 +ij_java_blank_lines_after_imports = 1 +ij_java_blank_lines_after_package = 1 +ij_java_blank_lines_around_class = 1 +ij_java_blank_lines_around_field = 0 +ij_java_blank_lines_around_field_in_interface = 0 +ij_java_blank_lines_around_initializer = 1 +ij_java_blank_lines_around_method = 1 +ij_java_blank_lines_around_method_in_interface = 1 +ij_java_blank_lines_before_class_end = 1 +ij_java_blank_lines_before_imports = 1 +ij_java_blank_lines_before_method_body = 0 +ij_java_blank_lines_before_package = 0 +ij_java_block_brace_style = end_of_line +ij_java_block_comment_at_first_column = true +ij_java_call_parameters_new_line_after_left_paren = true +ij_java_call_parameters_right_paren_on_new_line = true +ij_java_call_parameters_wrap = on_every_item +ij_java_case_statement_on_separate_line = true +ij_java_catch_on_new_line = false +ij_java_class_annotation_wrap = split_into_lines +ij_java_class_brace_style = end_of_line +ij_java_class_count_to_use_import_on_demand = 100000 +ij_java_class_names_in_javadoc = 1 +ij_java_do_not_indent_top_level_class_members = false +ij_java_do_not_wrap_after_single_annotation = false +ij_java_do_while_brace_force = always +ij_java_doc_add_blank_line_after_description = true +ij_java_doc_add_blank_line_after_param_comments = false +ij_java_doc_add_blank_line_after_return = false +ij_java_doc_add_p_tag_on_empty_lines = true +ij_java_doc_align_exception_comments = true +ij_java_doc_align_param_comments = true +ij_java_doc_do_not_wrap_if_one_line = false +ij_java_doc_enable_formatting = true +ij_java_doc_enable_leading_asterisks = true +ij_java_doc_indent_on_continuation = true +ij_java_doc_keep_empty_lines = true +ij_java_doc_keep_empty_parameter_tag = true +ij_java_doc_keep_empty_return_tag = true +ij_java_doc_keep_empty_throws_tag = true +ij_java_doc_keep_invalid_tags = false +ij_java_doc_param_description_on_new_line = false +ij_java_doc_preserve_line_breaks = false +ij_java_doc_use_throws_not_exception_tag = true +ij_java_else_on_new_line = false +ij_java_enum_constants_wrap = split_into_lines +ij_java_extends_keyword_wrap = off +ij_java_extends_list_wrap = normal +ij_java_field_annotation_wrap = split_into_lines +ij_java_finally_on_new_line = false +ij_java_for_brace_force = always +ij_java_for_statement_new_line_after_left_paren = false +ij_java_for_statement_right_paren_on_new_line = false +ij_java_for_statement_wrap = off +ij_java_generate_final_locals = true +ij_java_generate_final_parameters = true +ij_java_if_brace_force = always +ij_java_imports_layout = *, |, javax.**, java.**, |, $* +ij_java_indent_case_from_switch = true +ij_java_insert_inner_class_imports = false +ij_java_insert_override_annotation = true +ij_java_keep_blank_lines_before_right_brace = 2 +ij_java_keep_blank_lines_between_package_declaration_and_header = 2 +ij_java_keep_blank_lines_in_code = 2 +ij_java_keep_blank_lines_in_declarations = 2 +ij_java_keep_control_statement_in_one_line = true +ij_java_keep_first_column_comment = true +ij_java_keep_indents_on_empty_lines = false +ij_java_keep_line_breaks = true +ij_java_keep_multiple_expressions_in_one_line = false +ij_java_keep_simple_blocks_in_one_line = false +ij_java_keep_simple_classes_in_one_line = false +ij_java_keep_simple_lambdas_in_one_line = false +ij_java_keep_simple_methods_in_one_line = false +ij_java_label_indent_absolute = false +ij_java_label_indent_size = 0 +ij_java_lambda_brace_style = end_of_line +ij_java_layout_static_imports_separately = true +ij_java_line_comment_add_space = false +ij_java_line_comment_at_first_column = true +ij_java_method_annotation_wrap = split_into_lines +ij_java_method_brace_style = end_of_line +ij_java_method_call_chain_wrap = on_every_item +ij_java_method_parameters_new_line_after_left_paren = true +ij_java_method_parameters_right_paren_on_new_line = true +ij_java_method_parameters_wrap = on_every_item +ij_java_modifier_list_wrap = false +ij_java_names_count_to_use_import_on_demand = 100000 +ij_java_new_line_after_lparen_in_record_header = false +ij_java_parameter_annotation_wrap = off +ij_java_parentheses_expression_new_line_after_left_paren = false +ij_java_parentheses_expression_right_paren_on_new_line = false +ij_java_place_assignment_sign_on_next_line = false +ij_java_prefer_longer_names = false +ij_java_prefer_parameters_wrap = true +ij_java_record_components_wrap = normal +ij_java_repeat_synchronized = true +ij_java_replace_instanceof_and_cast = false +ij_java_replace_null_check = true +ij_java_replace_sum_lambda_with_method_ref = true +ij_java_resource_list_new_line_after_left_paren = false +ij_java_resource_list_right_paren_on_new_line = false +ij_java_resource_list_wrap = off +ij_java_rparen_on_new_line_in_record_header = false +ij_java_space_after_closing_angle_bracket_in_type_argument = false +ij_java_space_after_colon = true +ij_java_space_after_comma = true +ij_java_space_after_comma_in_type_arguments = true +ij_java_space_after_for_semicolon = true +ij_java_space_after_quest = true +ij_java_space_after_type_cast = true +ij_java_space_before_annotation_array_initializer_left_brace = false +ij_java_space_before_annotation_parameter_list = false +ij_java_space_before_array_initializer_left_brace = false +ij_java_space_before_catch_keyword = true +ij_java_space_before_catch_left_brace = true +ij_java_space_before_catch_parentheses = true +ij_java_space_before_class_left_brace = true +ij_java_space_before_colon = true +ij_java_space_before_colon_in_foreach = true +ij_java_space_before_comma = false +ij_java_space_before_do_left_brace = true +ij_java_space_before_else_keyword = true +ij_java_space_before_else_left_brace = true +ij_java_space_before_finally_keyword = true +ij_java_space_before_finally_left_brace = true +ij_java_space_before_for_left_brace = true +ij_java_space_before_for_parentheses = true +ij_java_space_before_for_semicolon = false +ij_java_space_before_if_left_brace = true +ij_java_space_before_if_parentheses = true +ij_java_space_before_method_call_parentheses = false +ij_java_space_before_method_left_brace = true +ij_java_space_before_method_parentheses = false +ij_java_space_before_opening_angle_bracket_in_type_parameter = false +ij_java_space_before_quest = true +ij_java_space_before_switch_left_brace = true +ij_java_space_before_switch_parentheses = true +ij_java_space_before_synchronized_left_brace = true +ij_java_space_before_synchronized_parentheses = true +ij_java_space_before_try_left_brace = true +ij_java_space_before_try_parentheses = true +ij_java_space_before_type_parameter_list = false +ij_java_space_before_while_keyword = true +ij_java_space_before_while_left_brace = true +ij_java_space_before_while_parentheses = true +ij_java_space_inside_one_line_enum_braces = false +ij_java_space_within_empty_array_initializer_braces = false +ij_java_space_within_empty_method_call_parentheses = false +ij_java_space_within_empty_method_parentheses = false +ij_java_spaces_around_additive_operators = true +ij_java_spaces_around_assignment_operators = true +ij_java_spaces_around_bitwise_operators = true +ij_java_spaces_around_equality_operators = true +ij_java_spaces_around_lambda_arrow = true +ij_java_spaces_around_logical_operators = true +ij_java_spaces_around_method_ref_dbl_colon = false +ij_java_spaces_around_multiplicative_operators = true +ij_java_spaces_around_relational_operators = true +ij_java_spaces_around_shift_operators = true +ij_java_spaces_around_type_bounds_in_type_parameters = true +ij_java_spaces_around_unary_operator = false +ij_java_spaces_within_angle_brackets = false +ij_java_spaces_within_annotation_parentheses = false +ij_java_spaces_within_array_initializer_braces = false +ij_java_spaces_within_braces = false +ij_java_spaces_within_brackets = false +ij_java_spaces_within_cast_parentheses = false +ij_java_spaces_within_catch_parentheses = false +ij_java_spaces_within_for_parentheses = false +ij_java_spaces_within_if_parentheses = false +ij_java_spaces_within_method_call_parentheses = false +ij_java_spaces_within_method_parentheses = false +ij_java_spaces_within_parentheses = false +ij_java_spaces_within_switch_parentheses = false +ij_java_spaces_within_synchronized_parentheses = false +ij_java_spaces_within_try_parentheses = false +ij_java_spaces_within_while_parentheses = false +ij_java_special_else_if_treatment = true +ij_java_subclass_name_suffix = Impl +ij_java_ternary_operation_signs_on_next_line = true +ij_java_ternary_operation_wrap = on_every_item +ij_java_test_name_suffix = Test +ij_java_throws_keyword_wrap = off +ij_java_throws_list_wrap = normal +ij_java_use_external_annotations = false +ij_java_use_fq_class_names = false +ij_java_use_relative_indents = false +ij_java_use_single_class_imports = true +ij_java_variable_annotation_wrap = off +ij_java_visibility = public +ij_java_while_brace_force = always +ij_java_while_on_new_line = false +ij_java_wrap_comments = false +ij_java_wrap_first_method_in_call_chain = true +ij_java_wrap_long_lines = false + +[*.nbtt] +max_line_length = 150 +ij_continuation_indent_size = 4 +ij_nbtt_keep_indents_on_empty_lines = false +ij_nbtt_space_after_colon = true +ij_nbtt_space_after_comma = true +ij_nbtt_space_before_colon = true +ij_nbtt_space_before_comma = false +ij_nbtt_spaces_within_brackets = false +ij_nbtt_spaces_within_parentheses = false + +[*.properties] +ij_properties_align_group_field_declarations = false +ij_properties_keep_blank_lines = false +ij_properties_key_value_delimiter = equals +ij_properties_spaces_around_key_value_delimiter = false + +[*.sass] +indent_size = 2 +ij_sass_align_closing_brace_with_properties = false +ij_sass_blank_lines_around_nested_selector = 1 +ij_sass_blank_lines_between_blocks = 1 +ij_sass_brace_placement = 0 +ij_sass_enforce_quotes_on_format = false +ij_sass_hex_color_long_format = false +ij_sass_hex_color_lower_case = false +ij_sass_hex_color_short_format = false +ij_sass_hex_color_upper_case = false +ij_sass_keep_blank_lines_in_code = 2 +ij_sass_keep_indents_on_empty_lines = false +ij_sass_keep_single_line_blocks = false +ij_sass_properties_order = font, font-family, font-size, font-weight, font-style, font-variant, font-size-adjust, font-stretch, line-height, position, z-index, top, right, bottom, left, display, visibility, float, clear, overflow, overflow-x, overflow-y, clip, zoom, align-content, align-items, align-self, flex, flex-flow, flex-basis, flex-direction, flex-grow, flex-shrink, flex-wrap, justify-content, order, box-sizing, width, min-width, max-width, height, min-height, max-height, margin, margin-top, margin-right, margin-bottom, margin-left, padding, padding-top, padding-right, padding-bottom, padding-left, table-layout, empty-cells, caption-side, border-spacing, border-collapse, list-style, list-style-position, list-style-type, list-style-image, content, quotes, counter-reset, counter-increment, resize, cursor, user-select, nav-index, nav-up, nav-right, nav-down, nav-left, transition, transition-delay, transition-timing-function, transition-duration, transition-property, transform, transform-origin, animation, animation-name, animation-duration, animation-play-state, animation-timing-function, animation-delay, animation-iteration-count, animation-direction, text-align, text-align-last, vertical-align, white-space, text-decoration, text-emphasis, text-emphasis-color, text-emphasis-style, text-emphasis-position, text-indent, text-justify, letter-spacing, word-spacing, text-outline, text-transform, text-wrap, text-overflow, text-overflow-ellipsis, text-overflow-mode, word-wrap, word-break, tab-size, hyphens, pointer-events, opacity, color, border, border-width, border-style, border-color, border-top, border-top-width, border-top-style, border-top-color, border-right, border-right-width, border-right-style, border-right-color, border-bottom, border-bottom-width, border-bottom-style, border-bottom-color, border-left, border-left-width, border-left-style, border-left-color, border-radius, border-top-left-radius, border-top-right-radius, border-bottom-right-radius, border-bottom-left-radius, border-image, border-image-source, border-image-slice, border-image-width, border-image-outset, border-image-repeat, outline, outline-width, outline-style, outline-color, outline-offset, background, background-color, background-image, background-repeat, background-attachment, background-position, background-position-x, background-position-y, background-clip, background-origin, background-size, box-decoration-break, box-shadow, text-shadow +ij_sass_space_after_colon = true +ij_sass_space_before_opening_brace = true +ij_sass_use_double_quotes = true +ij_sass_value_alignment = 0 + +[*.scss] +indent_size = 2 +ij_scss_align_closing_brace_with_properties = false +ij_scss_blank_lines_around_nested_selector = 1 +ij_scss_blank_lines_between_blocks = 1 +ij_scss_brace_placement = 0 +ij_scss_enforce_quotes_on_format = false +ij_scss_hex_color_long_format = false +ij_scss_hex_color_lower_case = false +ij_scss_hex_color_short_format = false +ij_scss_hex_color_upper_case = false +ij_scss_keep_blank_lines_in_code = 2 +ij_scss_keep_indents_on_empty_lines = false +ij_scss_keep_single_line_blocks = false +ij_scss_properties_order = font, font-family, font-size, font-weight, font-style, font-variant, font-size-adjust, font-stretch, line-height, position, z-index, top, right, bottom, left, display, visibility, float, clear, overflow, overflow-x, overflow-y, clip, zoom, align-content, align-items, align-self, flex, flex-flow, flex-basis, flex-direction, flex-grow, flex-shrink, flex-wrap, justify-content, order, box-sizing, width, min-width, max-width, height, min-height, max-height, margin, margin-top, margin-right, margin-bottom, margin-left, padding, padding-top, padding-right, padding-bottom, padding-left, table-layout, empty-cells, caption-side, border-spacing, border-collapse, list-style, list-style-position, list-style-type, list-style-image, content, quotes, counter-reset, counter-increment, resize, cursor, user-select, nav-index, nav-up, nav-right, nav-down, nav-left, transition, transition-delay, transition-timing-function, transition-duration, transition-property, transform, transform-origin, animation, animation-name, animation-duration, animation-play-state, animation-timing-function, animation-delay, animation-iteration-count, animation-direction, text-align, text-align-last, vertical-align, white-space, text-decoration, text-emphasis, text-emphasis-color, text-emphasis-style, text-emphasis-position, text-indent, text-justify, letter-spacing, word-spacing, text-outline, text-transform, text-wrap, text-overflow, text-overflow-ellipsis, text-overflow-mode, word-wrap, word-break, tab-size, hyphens, pointer-events, opacity, color, border, border-width, border-style, border-color, border-top, border-top-width, border-top-style, border-top-color, border-right, border-right-width, border-right-style, border-right-color, border-bottom, border-bottom-width, border-bottom-style, border-bottom-color, border-left, border-left-width, border-left-style, border-left-color, border-radius, border-top-left-radius, border-top-right-radius, border-bottom-right-radius, border-bottom-left-radius, border-image, border-image-source, border-image-slice, border-image-width, border-image-outset, border-image-repeat, outline, outline-width, outline-style, outline-color, outline-offset, background, background-color, background-image, background-repeat, background-attachment, background-position, background-position-x, background-position-y, background-clip, background-origin, background-size, box-decoration-break, box-shadow, text-shadow +ij_scss_space_after_colon = true +ij_scss_space_before_opening_brace = true +ij_scss_use_double_quotes = true +ij_scss_value_alignment = 0 + +[.editorconfig] +ij_editorconfig_align_group_field_declarations = false +ij_editorconfig_space_after_colon = false +ij_editorconfig_space_after_comma = true +ij_editorconfig_space_before_colon = false +ij_editorconfig_space_before_comma = false +ij_editorconfig_spaces_around_assignment_operators = true + +[{*.ant, *.fxml, *.jhm, *.jnlp, *.jrxml, *.pom, *.rng, *.tld, *.wsdl, *.xml, *.xsd, *.xsl, *.xslt, *.xul}] +ij_xml_align_attributes = true +ij_xml_align_text = false +ij_xml_attribute_wrap = normal +ij_xml_block_comment_at_first_column = true +ij_xml_keep_blank_lines = 2 +ij_xml_keep_indents_on_empty_lines = false +ij_xml_keep_line_breaks = true +ij_xml_keep_line_breaks_in_text = true +ij_xml_keep_whitespaces = false +ij_xml_keep_whitespaces_around_cdata = preserve +ij_xml_keep_whitespaces_inside_cdata = false +ij_xml_line_comment_at_first_column = true +ij_xml_space_after_tag_name = false +ij_xml_space_around_equals_in_attribute = false +ij_xml_space_inside_empty_tag = false +ij_xml_text_wrap = normal + +[{*.ats, *.ts}] +ij_continuation_indent_size = 4 +ij_typescript_align_imports = false +ij_typescript_align_multiline_array_initializer_expression = false +ij_typescript_align_multiline_binary_operation = false +ij_typescript_align_multiline_chained_methods = false +ij_typescript_align_multiline_extends_list = false +ij_typescript_align_multiline_for = true +ij_typescript_align_multiline_parameters = true +ij_typescript_align_multiline_parameters_in_calls = false +ij_typescript_align_multiline_ternary_operation = false +ij_typescript_align_object_properties = 0 +ij_typescript_align_union_types = false +ij_typescript_align_var_statements = 0 +ij_typescript_array_initializer_new_line_after_left_brace = false +ij_typescript_array_initializer_right_brace_on_new_line = false +ij_typescript_array_initializer_wrap = off +ij_typescript_assignment_wrap = off +ij_typescript_binary_operation_sign_on_next_line = false +ij_typescript_binary_operation_wrap = off +ij_typescript_blacklist_imports = rxjs/Rx, node_modules/**, **/node_modules/**, @angular/material, @angular/material/typings/** +ij_typescript_blank_lines_after_imports = 1 +ij_typescript_blank_lines_around_class = 1 +ij_typescript_blank_lines_around_field = 0 +ij_typescript_blank_lines_around_field_in_interface = 0 +ij_typescript_blank_lines_around_function = 1 +ij_typescript_blank_lines_around_method = 1 +ij_typescript_blank_lines_around_method_in_interface = 1 +ij_typescript_block_brace_style = end_of_line +ij_typescript_call_parameters_new_line_after_left_paren = false +ij_typescript_call_parameters_right_paren_on_new_line = false +ij_typescript_call_parameters_wrap = off +ij_typescript_catch_on_new_line = false +ij_typescript_chained_call_dot_on_new_line = true +ij_typescript_class_brace_style = end_of_line +ij_typescript_comma_on_new_line = false +ij_typescript_do_while_brace_force = never +ij_typescript_else_on_new_line = false +ij_typescript_enforce_trailing_comma = keep +ij_typescript_extends_keyword_wrap = off +ij_typescript_extends_list_wrap = off +ij_typescript_field_prefix = _ +ij_typescript_file_name_style = relaxed +ij_typescript_finally_on_new_line = false +ij_typescript_for_brace_force = never +ij_typescript_for_statement_new_line_after_left_paren = false +ij_typescript_for_statement_right_paren_on_new_line = false +ij_typescript_for_statement_wrap = off +ij_typescript_force_quote_style = false +ij_typescript_force_semicolon_style = false +ij_typescript_function_expression_brace_style = end_of_line +ij_typescript_if_brace_force = never +ij_typescript_import_merge_members = global +ij_typescript_import_prefer_absolute_path = global +ij_typescript_import_sort_members = true +ij_typescript_import_sort_module_name = false +ij_typescript_import_use_node_resolution = true +ij_typescript_imports_wrap = on_every_item +ij_typescript_indent_case_from_switch = true +ij_typescript_indent_chained_calls = true +ij_typescript_indent_package_children = 0 +ij_typescript_jsdoc_include_types = false +ij_typescript_jsx_attribute_value = braces +ij_typescript_keep_blank_lines_in_code = 2 +ij_typescript_keep_first_column_comment = true +ij_typescript_keep_indents_on_empty_lines = false +ij_typescript_keep_line_breaks = true +ij_typescript_keep_simple_blocks_in_one_line = false +ij_typescript_keep_simple_methods_in_one_line = false +ij_typescript_line_comment_add_space = true +ij_typescript_line_comment_at_first_column = false +ij_typescript_method_brace_style = end_of_line +ij_typescript_method_call_chain_wrap = off +ij_typescript_method_parameters_new_line_after_left_paren = false +ij_typescript_method_parameters_right_paren_on_new_line = false +ij_typescript_method_parameters_wrap = off +ij_typescript_object_literal_wrap = on_every_item +ij_typescript_parentheses_expression_new_line_after_left_paren = false +ij_typescript_parentheses_expression_right_paren_on_new_line = false +ij_typescript_place_assignment_sign_on_next_line = false +ij_typescript_prefer_as_type_cast = false +ij_typescript_prefer_explicit_types_function_expression_returns = false +ij_typescript_prefer_explicit_types_function_returns = false +ij_typescript_prefer_explicit_types_vars_fields = false +ij_typescript_prefer_parameters_wrap = false +ij_typescript_reformat_c_style_comments = false +ij_typescript_space_after_colon = true +ij_typescript_space_after_comma = true +ij_typescript_space_after_dots_in_rest_parameter = false +ij_typescript_space_after_generator_mult = true +ij_typescript_space_after_property_colon = true +ij_typescript_space_after_quest = true +ij_typescript_space_after_type_colon = true +ij_typescript_space_after_unary_not = false +ij_typescript_space_before_async_arrow_lparen = true +ij_typescript_space_before_catch_keyword = true +ij_typescript_space_before_catch_left_brace = true +ij_typescript_space_before_catch_parentheses = true +ij_typescript_space_before_class_lbrace = true +ij_typescript_space_before_class_left_brace = true +ij_typescript_space_before_colon = true +ij_typescript_space_before_comma = false +ij_typescript_space_before_do_left_brace = true +ij_typescript_space_before_else_keyword = true +ij_typescript_space_before_else_left_brace = true +ij_typescript_space_before_finally_keyword = true +ij_typescript_space_before_finally_left_brace = true +ij_typescript_space_before_for_left_brace = true +ij_typescript_space_before_for_parentheses = true +ij_typescript_space_before_for_semicolon = false +ij_typescript_space_before_function_left_parenth = true +ij_typescript_space_before_generator_mult = false +ij_typescript_space_before_if_left_brace = true +ij_typescript_space_before_if_parentheses = true +ij_typescript_space_before_method_call_parentheses = false +ij_typescript_space_before_method_left_brace = true +ij_typescript_space_before_method_parentheses = false +ij_typescript_space_before_property_colon = false +ij_typescript_space_before_quest = true +ij_typescript_space_before_switch_left_brace = true +ij_typescript_space_before_switch_parentheses = true +ij_typescript_space_before_try_left_brace = true +ij_typescript_space_before_type_colon = false +ij_typescript_space_before_unary_not = false +ij_typescript_space_before_while_keyword = true +ij_typescript_space_before_while_left_brace = true +ij_typescript_space_before_while_parentheses = true +ij_typescript_spaces_around_additive_operators = true +ij_typescript_spaces_around_arrow_function_operator = true +ij_typescript_spaces_around_assignment_operators = true +ij_typescript_spaces_around_bitwise_operators = true +ij_typescript_spaces_around_equality_operators = true +ij_typescript_spaces_around_logical_operators = true +ij_typescript_spaces_around_multiplicative_operators = true +ij_typescript_spaces_around_relational_operators = true +ij_typescript_spaces_around_shift_operators = true +ij_typescript_spaces_around_unary_operator = false +ij_typescript_spaces_within_array_initializer_brackets = false +ij_typescript_spaces_within_brackets = false +ij_typescript_spaces_within_catch_parentheses = false +ij_typescript_spaces_within_for_parentheses = false +ij_typescript_spaces_within_if_parentheses = false +ij_typescript_spaces_within_imports = false +ij_typescript_spaces_within_interpolation_expressions = false +ij_typescript_spaces_within_method_call_parentheses = false +ij_typescript_spaces_within_method_parentheses = false +ij_typescript_spaces_within_object_literal_braces = false +ij_typescript_spaces_within_object_type_braces = true +ij_typescript_spaces_within_parentheses = false +ij_typescript_spaces_within_switch_parentheses = false +ij_typescript_spaces_within_type_assertion = false +ij_typescript_spaces_within_union_types = true +ij_typescript_spaces_within_while_parentheses = false +ij_typescript_special_else_if_treatment = true +ij_typescript_ternary_operation_signs_on_next_line = false +ij_typescript_ternary_operation_wrap = off +ij_typescript_union_types_wrap = on_every_item +ij_typescript_use_chained_calls_group_indents = false +ij_typescript_use_double_quotes = true +ij_typescript_use_explicit_js_extension = global +ij_typescript_use_path_mapping = always +ij_typescript_use_public_modifier = false +ij_typescript_use_semicolon_after_statement = true +ij_typescript_var_declaration_wrap = normal +ij_typescript_while_brace_force = never +ij_typescript_while_on_new_line = false +ij_typescript_wrap_comments = false + +[{*.bash, *.sh, *.zsh}] +indent_size = 2 +tab_width = 2 +ij_shell_binary_ops_start_line = false +ij_shell_keep_column_alignment_padding = false +ij_shell_minify_program = false +ij_shell_redirect_followed_by_space = false +ij_shell_switch_cases_indented = false + +[{*.cjs, *.js}] +ij_continuation_indent_size = 4 +ij_javascript_align_imports = false +ij_javascript_align_multiline_array_initializer_expression = false +ij_javascript_align_multiline_binary_operation = false +ij_javascript_align_multiline_chained_methods = false +ij_javascript_align_multiline_extends_list = false +ij_javascript_align_multiline_for = true +ij_javascript_align_multiline_parameters = true +ij_javascript_align_multiline_parameters_in_calls = false +ij_javascript_align_multiline_ternary_operation = false +ij_javascript_align_object_properties = 0 +ij_javascript_align_union_types = false +ij_javascript_align_var_statements = 0 +ij_javascript_array_initializer_new_line_after_left_brace = false +ij_javascript_array_initializer_right_brace_on_new_line = false +ij_javascript_array_initializer_wrap = off +ij_javascript_assignment_wrap = off +ij_javascript_binary_operation_sign_on_next_line = false +ij_javascript_binary_operation_wrap = off +ij_javascript_blacklist_imports = rxjs/Rx, node_modules/**, **/node_modules/**, @angular/material, @angular/material/typings/** +ij_javascript_blank_lines_after_imports = 1 +ij_javascript_blank_lines_around_class = 1 +ij_javascript_blank_lines_around_field = 0 +ij_javascript_blank_lines_around_function = 1 +ij_javascript_blank_lines_around_method = 1 +ij_javascript_block_brace_style = end_of_line +ij_javascript_call_parameters_new_line_after_left_paren = false +ij_javascript_call_parameters_right_paren_on_new_line = false +ij_javascript_call_parameters_wrap = off +ij_javascript_catch_on_new_line = false +ij_javascript_chained_call_dot_on_new_line = true +ij_javascript_class_brace_style = end_of_line +ij_javascript_comma_on_new_line = false +ij_javascript_do_while_brace_force = never +ij_javascript_else_on_new_line = false +ij_javascript_enforce_trailing_comma = keep +ij_javascript_extends_keyword_wrap = off +ij_javascript_extends_list_wrap = off +ij_javascript_field_prefix = _ +ij_javascript_file_name_style = relaxed +ij_javascript_finally_on_new_line = false +ij_javascript_for_brace_force = never +ij_javascript_for_statement_new_line_after_left_paren = false +ij_javascript_for_statement_right_paren_on_new_line = false +ij_javascript_for_statement_wrap = off +ij_javascript_force_quote_style = false +ij_javascript_force_semicolon_style = false +ij_javascript_function_expression_brace_style = end_of_line +ij_javascript_if_brace_force = never +ij_javascript_import_merge_members = global +ij_javascript_import_prefer_absolute_path = global +ij_javascript_import_sort_members = true +ij_javascript_import_sort_module_name = false +ij_javascript_import_use_node_resolution = true +ij_javascript_imports_wrap = on_every_item +ij_javascript_indent_case_from_switch = true +ij_javascript_indent_chained_calls = true +ij_javascript_indent_package_children = 0 +ij_javascript_jsx_attribute_value = braces +ij_javascript_keep_blank_lines_in_code = 2 +ij_javascript_keep_first_column_comment = true +ij_javascript_keep_indents_on_empty_lines = false +ij_javascript_keep_line_breaks = true +ij_javascript_keep_simple_blocks_in_one_line = false +ij_javascript_keep_simple_methods_in_one_line = false +ij_javascript_line_comment_add_space = true +ij_javascript_line_comment_at_first_column = false +ij_javascript_method_brace_style = end_of_line +ij_javascript_method_call_chain_wrap = off +ij_javascript_method_parameters_new_line_after_left_paren = false +ij_javascript_method_parameters_right_paren_on_new_line = false +ij_javascript_method_parameters_wrap = off +ij_javascript_object_literal_wrap = on_every_item +ij_javascript_parentheses_expression_new_line_after_left_paren = false +ij_javascript_parentheses_expression_right_paren_on_new_line = false +ij_javascript_place_assignment_sign_on_next_line = false +ij_javascript_prefer_as_type_cast = false +ij_javascript_prefer_explicit_types_function_expression_returns = false +ij_javascript_prefer_explicit_types_function_returns = false +ij_javascript_prefer_explicit_types_vars_fields = false +ij_javascript_prefer_parameters_wrap = false +ij_javascript_reformat_c_style_comments = false +ij_javascript_space_after_colon = true +ij_javascript_space_after_comma = true +ij_javascript_space_after_dots_in_rest_parameter = false +ij_javascript_space_after_generator_mult = true +ij_javascript_space_after_property_colon = true +ij_javascript_space_after_quest = true +ij_javascript_space_after_type_colon = true +ij_javascript_space_after_unary_not = false +ij_javascript_space_before_async_arrow_lparen = true +ij_javascript_space_before_catch_keyword = true +ij_javascript_space_before_catch_left_brace = true +ij_javascript_space_before_catch_parentheses = true +ij_javascript_space_before_class_lbrace = true +ij_javascript_space_before_class_left_brace = true +ij_javascript_space_before_colon = true +ij_javascript_space_before_comma = false +ij_javascript_space_before_do_left_brace = true +ij_javascript_space_before_else_keyword = true +ij_javascript_space_before_else_left_brace = true +ij_javascript_space_before_finally_keyword = true +ij_javascript_space_before_finally_left_brace = true +ij_javascript_space_before_for_left_brace = true +ij_javascript_space_before_for_parentheses = true +ij_javascript_space_before_for_semicolon = false +ij_javascript_space_before_function_left_parenth = true +ij_javascript_space_before_generator_mult = false +ij_javascript_space_before_if_left_brace = true +ij_javascript_space_before_if_parentheses = true +ij_javascript_space_before_method_call_parentheses = false +ij_javascript_space_before_method_left_brace = true +ij_javascript_space_before_method_parentheses = false +ij_javascript_space_before_property_colon = false +ij_javascript_space_before_quest = true +ij_javascript_space_before_switch_left_brace = true +ij_javascript_space_before_switch_parentheses = true +ij_javascript_space_before_try_left_brace = true +ij_javascript_space_before_type_colon = false +ij_javascript_space_before_unary_not = false +ij_javascript_space_before_while_keyword = true +ij_javascript_space_before_while_left_brace = true +ij_javascript_space_before_while_parentheses = true +ij_javascript_spaces_around_additive_operators = true +ij_javascript_spaces_around_arrow_function_operator = true +ij_javascript_spaces_around_assignment_operators = true +ij_javascript_spaces_around_bitwise_operators = true +ij_javascript_spaces_around_equality_operators = true +ij_javascript_spaces_around_logical_operators = true +ij_javascript_spaces_around_multiplicative_operators = true +ij_javascript_spaces_around_relational_operators = true +ij_javascript_spaces_around_shift_operators = true +ij_javascript_spaces_around_unary_operator = false +ij_javascript_spaces_within_array_initializer_brackets = false +ij_javascript_spaces_within_brackets = false +ij_javascript_spaces_within_catch_parentheses = false +ij_javascript_spaces_within_for_parentheses = false +ij_javascript_spaces_within_if_parentheses = false +ij_javascript_spaces_within_imports = false +ij_javascript_spaces_within_interpolation_expressions = false +ij_javascript_spaces_within_method_call_parentheses = false +ij_javascript_spaces_within_method_parentheses = false +ij_javascript_spaces_within_object_literal_braces = false +ij_javascript_spaces_within_object_type_braces = true +ij_javascript_spaces_within_parentheses = false +ij_javascript_spaces_within_switch_parentheses = false +ij_javascript_spaces_within_type_assertion = false +ij_javascript_spaces_within_union_types = true +ij_javascript_spaces_within_while_parentheses = false +ij_javascript_special_else_if_treatment = true +ij_javascript_ternary_operation_signs_on_next_line = false +ij_javascript_ternary_operation_wrap = off +ij_javascript_union_types_wrap = on_every_item +ij_javascript_use_chained_calls_group_indents = false +ij_javascript_use_double_quotes = true +ij_javascript_use_explicit_js_extension = global +ij_javascript_use_path_mapping = always +ij_javascript_use_public_modifier = false +ij_javascript_use_semicolon_after_statement = true +ij_javascript_var_declaration_wrap = normal +ij_javascript_while_brace_force = never +ij_javascript_while_on_new_line = false +ij_javascript_wrap_comments = false + +[{*.ft, *.vm, *.vsl}] +ij_vtl_keep_indents_on_empty_lines = false + +[{*.gant, *.gradle, *.groovy, *.gy}] +ij_groovy_align_group_field_declarations = false +ij_groovy_align_multiline_array_initializer_expression = false +ij_groovy_align_multiline_assignment = false +ij_groovy_align_multiline_binary_operation = false +ij_groovy_align_multiline_chained_methods = false +ij_groovy_align_multiline_extends_list = false +ij_groovy_align_multiline_for = true +ij_groovy_align_multiline_list_or_map = true +ij_groovy_align_multiline_method_parentheses = false +ij_groovy_align_multiline_parameters = true +ij_groovy_align_multiline_parameters_in_calls = false +ij_groovy_align_multiline_resources = true +ij_groovy_align_multiline_ternary_operation = false +ij_groovy_align_multiline_throws_list = false +ij_groovy_align_named_args_in_map = true +ij_groovy_align_throws_keyword = false +ij_groovy_array_initializer_new_line_after_left_brace = false +ij_groovy_array_initializer_right_brace_on_new_line = false +ij_groovy_array_initializer_wrap = off +ij_groovy_assert_statement_wrap = off +ij_groovy_assignment_wrap = off +ij_groovy_binary_operation_wrap = off +ij_groovy_blank_lines_after_class_header = 0 +ij_groovy_blank_lines_after_imports = 1 +ij_groovy_blank_lines_after_package = 1 +ij_groovy_blank_lines_around_class = 1 +ij_groovy_blank_lines_around_field = 0 +ij_groovy_blank_lines_around_field_in_interface = 0 +ij_groovy_blank_lines_around_method = 1 +ij_groovy_blank_lines_around_method_in_interface = 1 +ij_groovy_blank_lines_before_imports = 1 +ij_groovy_blank_lines_before_method_body = 0 +ij_groovy_blank_lines_before_package = 0 +ij_groovy_block_brace_style = end_of_line +ij_groovy_block_comment_at_first_column = true +ij_groovy_call_parameters_new_line_after_left_paren = false +ij_groovy_call_parameters_right_paren_on_new_line = false +ij_groovy_call_parameters_wrap = off +ij_groovy_catch_on_new_line = false +ij_groovy_class_annotation_wrap = split_into_lines +ij_groovy_class_brace_style = end_of_line +ij_groovy_class_count_to_use_import_on_demand = 5 +ij_groovy_do_while_brace_force = never +ij_groovy_else_on_new_line = false +ij_groovy_enum_constants_wrap = off +ij_groovy_extends_keyword_wrap = off +ij_groovy_extends_list_wrap = off +ij_groovy_field_annotation_wrap = split_into_lines +ij_groovy_finally_on_new_line = false +ij_groovy_for_brace_force = never +ij_groovy_for_statement_new_line_after_left_paren = false +ij_groovy_for_statement_right_paren_on_new_line = false +ij_groovy_for_statement_wrap = off +ij_groovy_if_brace_force = never +ij_groovy_import_annotation_wrap = 2 +ij_groovy_imports_layout = *, |, javax.**, java.**, |, $* +ij_groovy_indent_case_from_switch = true +ij_groovy_indent_label_blocks = true +ij_groovy_insert_inner_class_imports = false +ij_groovy_keep_blank_lines_before_right_brace = 2 +ij_groovy_keep_blank_lines_in_code = 2 +ij_groovy_keep_blank_lines_in_declarations = 2 +ij_groovy_keep_control_statement_in_one_line = true +ij_groovy_keep_first_column_comment = true +ij_groovy_keep_indents_on_empty_lines = false +ij_groovy_keep_line_breaks = true +ij_groovy_keep_multiple_expressions_in_one_line = false +ij_groovy_keep_simple_blocks_in_one_line = false +ij_groovy_keep_simple_classes_in_one_line = true +ij_groovy_keep_simple_lambdas_in_one_line = true +ij_groovy_keep_simple_methods_in_one_line = true +ij_groovy_label_indent_absolute = false +ij_groovy_label_indent_size = 0 +ij_groovy_lambda_brace_style = end_of_line +ij_groovy_layout_static_imports_separately = true +ij_groovy_line_comment_add_space = false +ij_groovy_line_comment_at_first_column = true +ij_groovy_method_annotation_wrap = split_into_lines +ij_groovy_method_brace_style = end_of_line +ij_groovy_method_call_chain_wrap = off +ij_groovy_method_parameters_new_line_after_left_paren = false +ij_groovy_method_parameters_right_paren_on_new_line = false +ij_groovy_method_parameters_wrap = off +ij_groovy_modifier_list_wrap = false +ij_groovy_names_count_to_use_import_on_demand = 3 +ij_groovy_parameter_annotation_wrap = off +ij_groovy_parentheses_expression_new_line_after_left_paren = false +ij_groovy_parentheses_expression_right_paren_on_new_line = false +ij_groovy_prefer_parameters_wrap = false +ij_groovy_resource_list_new_line_after_left_paren = false +ij_groovy_resource_list_right_paren_on_new_line = false +ij_groovy_resource_list_wrap = off +ij_groovy_space_after_assert_separator = true +ij_groovy_space_after_colon = true +ij_groovy_space_after_comma = true +ij_groovy_space_after_comma_in_type_arguments = true +ij_groovy_space_after_for_semicolon = true +ij_groovy_space_after_quest = true +ij_groovy_space_after_type_cast = true +ij_groovy_space_before_annotation_parameter_list = false +ij_groovy_space_before_array_initializer_left_brace = false +ij_groovy_space_before_assert_separator = false +ij_groovy_space_before_catch_keyword = true +ij_groovy_space_before_catch_left_brace = true +ij_groovy_space_before_catch_parentheses = true +ij_groovy_space_before_class_left_brace = true +ij_groovy_space_before_closure_left_brace = true +ij_groovy_space_before_colon = true +ij_groovy_space_before_comma = false +ij_groovy_space_before_do_left_brace = true +ij_groovy_space_before_else_keyword = true +ij_groovy_space_before_else_left_brace = true +ij_groovy_space_before_finally_keyword = true +ij_groovy_space_before_finally_left_brace = true +ij_groovy_space_before_for_left_brace = true +ij_groovy_space_before_for_parentheses = true +ij_groovy_space_before_for_semicolon = false +ij_groovy_space_before_if_left_brace = true +ij_groovy_space_before_if_parentheses = true +ij_groovy_space_before_method_call_parentheses = false +ij_groovy_space_before_method_left_brace = true +ij_groovy_space_before_method_parentheses = false +ij_groovy_space_before_quest = true +ij_groovy_space_before_switch_left_brace = true +ij_groovy_space_before_switch_parentheses = true +ij_groovy_space_before_synchronized_left_brace = true +ij_groovy_space_before_synchronized_parentheses = true +ij_groovy_space_before_try_left_brace = true +ij_groovy_space_before_try_parentheses = true +ij_groovy_space_before_while_keyword = true +ij_groovy_space_before_while_left_brace = true +ij_groovy_space_before_while_parentheses = true +ij_groovy_space_in_named_argument = true +ij_groovy_space_in_named_argument_before_colon = false +ij_groovy_space_within_empty_array_initializer_braces = false +ij_groovy_space_within_empty_method_call_parentheses = false +ij_groovy_spaces_around_additive_operators = true +ij_groovy_spaces_around_assignment_operators = true +ij_groovy_spaces_around_bitwise_operators = true +ij_groovy_spaces_around_equality_operators = true +ij_groovy_spaces_around_lambda_arrow = true +ij_groovy_spaces_around_logical_operators = true +ij_groovy_spaces_around_multiplicative_operators = true +ij_groovy_spaces_around_regex_operators = true +ij_groovy_spaces_around_relational_operators = true +ij_groovy_spaces_around_shift_operators = true +ij_groovy_spaces_within_annotation_parentheses = false +ij_groovy_spaces_within_array_initializer_braces = false +ij_groovy_spaces_within_braces = true +ij_groovy_spaces_within_brackets = false +ij_groovy_spaces_within_cast_parentheses = false +ij_groovy_spaces_within_catch_parentheses = false +ij_groovy_spaces_within_for_parentheses = false +ij_groovy_spaces_within_gstring_injection_braces = false +ij_groovy_spaces_within_if_parentheses = false +ij_groovy_spaces_within_list_or_map = false +ij_groovy_spaces_within_method_call_parentheses = false +ij_groovy_spaces_within_method_parentheses = false +ij_groovy_spaces_within_parentheses = false +ij_groovy_spaces_within_switch_parentheses = false +ij_groovy_spaces_within_synchronized_parentheses = false +ij_groovy_spaces_within_try_parentheses = false +ij_groovy_spaces_within_tuple_expression = false +ij_groovy_spaces_within_while_parentheses = false +ij_groovy_special_else_if_treatment = true +ij_groovy_ternary_operation_wrap = off +ij_groovy_throws_keyword_wrap = off +ij_groovy_throws_list_wrap = off +ij_groovy_use_flying_geese_braces = false +ij_groovy_use_fq_class_names = false +ij_groovy_use_fq_class_names_in_javadoc = true +ij_groovy_use_relative_indents = false +ij_groovy_use_single_class_imports = true +ij_groovy_variable_annotation_wrap = off +ij_groovy_while_brace_force = never +ij_groovy_while_on_new_line = false +ij_groovy_wrap_long_lines = false + +[{*.gradle.kts, *.kt, *.kts, *.main.kts}] +ij_kotlin_align_in_columns_case_branch = false +ij_kotlin_align_multiline_binary_operation = false +ij_kotlin_align_multiline_extends_list = false +ij_kotlin_align_multiline_method_parentheses = false +ij_kotlin_align_multiline_parameters = true +ij_kotlin_align_multiline_parameters_in_calls = false +ij_kotlin_allow_trailing_comma = false +ij_kotlin_allow_trailing_comma_on_call_site = false +ij_kotlin_assignment_wrap = off +ij_kotlin_blank_lines_after_class_header = 0 +ij_kotlin_blank_lines_around_block_when_branches = 0 +ij_kotlin_blank_lines_before_declaration_with_comment_or_annotation_on_separate_line = 1 +ij_kotlin_block_comment_at_first_column = true +ij_kotlin_call_parameters_new_line_after_left_paren = false +ij_kotlin_call_parameters_right_paren_on_new_line = false +ij_kotlin_call_parameters_wrap = off +ij_kotlin_catch_on_new_line = false +ij_kotlin_class_annotation_wrap = split_into_lines +ij_kotlin_continuation_indent_for_chained_calls = true +ij_kotlin_continuation_indent_for_expression_bodies = true +ij_kotlin_continuation_indent_in_argument_lists = true +ij_kotlin_continuation_indent_in_elvis = true +ij_kotlin_continuation_indent_in_if_conditions = true +ij_kotlin_continuation_indent_in_parameter_lists = true +ij_kotlin_continuation_indent_in_supertype_lists = true +ij_kotlin_else_on_new_line = false +ij_kotlin_enum_constants_wrap = off +ij_kotlin_extends_list_wrap = off +ij_kotlin_field_annotation_wrap = split_into_lines +ij_kotlin_finally_on_new_line = false +ij_kotlin_if_rparen_on_new_line = false +ij_kotlin_import_nested_classes = false +ij_kotlin_insert_whitespaces_in_simple_one_line_method = true +ij_kotlin_keep_blank_lines_before_right_brace = 2 +ij_kotlin_keep_blank_lines_in_code = 2 +ij_kotlin_keep_blank_lines_in_declarations = 2 +ij_kotlin_keep_first_column_comment = true +ij_kotlin_keep_indents_on_empty_lines = false +ij_kotlin_keep_line_breaks = true +ij_kotlin_lbrace_on_next_line = false +ij_kotlin_line_comment_add_space = false +ij_kotlin_line_comment_at_first_column = true +ij_kotlin_method_annotation_wrap = split_into_lines +ij_kotlin_method_call_chain_wrap = off +ij_kotlin_method_parameters_new_line_after_left_paren = false +ij_kotlin_method_parameters_right_paren_on_new_line = false +ij_kotlin_method_parameters_wrap = off +ij_kotlin_name_count_to_use_star_import = 5 +ij_kotlin_name_count_to_use_star_import_for_members = 3 +ij_kotlin_parameter_annotation_wrap = off +ij_kotlin_space_after_comma = true +ij_kotlin_space_after_extend_colon = true +ij_kotlin_space_after_type_colon = true +ij_kotlin_space_before_catch_parentheses = true +ij_kotlin_space_before_comma = false +ij_kotlin_space_before_extend_colon = true +ij_kotlin_space_before_for_parentheses = true +ij_kotlin_space_before_if_parentheses = true +ij_kotlin_space_before_lambda_arrow = true +ij_kotlin_space_before_type_colon = false +ij_kotlin_space_before_when_parentheses = true +ij_kotlin_space_before_while_parentheses = true +ij_kotlin_spaces_around_additive_operators = true +ij_kotlin_spaces_around_assignment_operators = true +ij_kotlin_spaces_around_equality_operators = true +ij_kotlin_spaces_around_function_type_arrow = true +ij_kotlin_spaces_around_logical_operators = true +ij_kotlin_spaces_around_multiplicative_operators = true +ij_kotlin_spaces_around_range = false +ij_kotlin_spaces_around_relational_operators = true +ij_kotlin_spaces_around_unary_operator = false +ij_kotlin_spaces_around_when_arrow = true +ij_kotlin_variable_annotation_wrap = off +ij_kotlin_while_on_new_line = false +ij_kotlin_wrap_elvis_expressions = 1 +ij_kotlin_wrap_expression_body_functions = 0 +ij_kotlin_wrap_first_method_in_call_chain = false + +[{*.har, *.jsb2, *.jsb3, *.json, .babelrc, .eslintrc, .stylelintrc, bowerrc, jest.config, mcmod.info}] +indent_size = 2 +ij_json_keep_blank_lines_in_code = 0 +ij_json_keep_indents_on_empty_lines = false +ij_json_keep_line_breaks = true +ij_json_space_after_colon = true +ij_json_space_after_comma = true +ij_json_space_before_colon = true +ij_json_space_before_comma = false +ij_json_spaces_within_braces = false +ij_json_spaces_within_brackets = false +ij_json_wrap_long_lines = false + +[{*.htm, *.html, *.sht, *.shtm, *.shtml}] +ij_html_add_new_line_before_tags = body, div, p, form, h1, h2, h3 +ij_html_align_attributes = true +ij_html_align_text = false +ij_html_attribute_wrap = normal +ij_html_block_comment_at_first_column = true +ij_html_do_not_align_children_of_min_lines = 0 +ij_html_do_not_break_if_inline_tags = title, h1, h2, h3, h4, h5, h6, p +ij_html_do_not_indent_children_of_tags = html, body, thead, tbody, tfoot +ij_html_enforce_quotes = false +ij_html_inline_tags = a, abbr, acronym, b, basefont, bdo, big, br, cite, cite, code, dfn, em, font, i, img, input, kbd, label, q, s, samp, select, small, span, strike, strong, sub, sup, textarea, tt, u, var +ij_html_keep_blank_lines = 2 +ij_html_keep_indents_on_empty_lines = false +ij_html_keep_line_breaks = true +ij_html_keep_line_breaks_in_text = true +ij_html_keep_whitespaces = false +ij_html_keep_whitespaces_inside = span, pre, textarea +ij_html_line_comment_at_first_column = true +ij_html_new_line_after_last_attribute = never +ij_html_new_line_before_first_attribute = never +ij_html_quote_style = double +ij_html_remove_new_line_before_tags = br +ij_html_space_after_tag_name = false +ij_html_space_around_equality_in_attribute = false +ij_html_space_inside_empty_tag = false +ij_html_text_wrap = normal +ij_html_uniform_ident = false + +[{*.yaml, *.yml}] +indent_size = 2 +ij_yaml_keep_indents_on_empty_lines = false +ij_yaml_keep_line_breaks = true +ij_yaml_space_before_colon = true +ij_yaml_spaces_within_braces = true +ij_yaml_spaces_within_brackets = true diff --git a/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/BukkitPermissionAttachmentManager.java b/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/BukkitPermissionAttachmentManager.java index 19851ee65..651c56217 100644 --- a/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/BukkitPermissionAttachmentManager.java +++ b/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/BukkitPermissionAttachmentManager.java @@ -1,13 +1,13 @@ package com.fastasyncworldedit.bukkit; -import javax.annotation.Nullable; -import java.util.Map; -import java.util.concurrent.ConcurrentHashMap; - import com.sk89q.worldedit.bukkit.WorldEditPlugin; import org.bukkit.entity.Player; import org.bukkit.permissions.PermissionAttachment; +import javax.annotation.Nullable; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; + public class BukkitPermissionAttachmentManager { private final WorldEditPlugin plugin; @@ -33,4 +33,5 @@ public class BukkitPermissionAttachmentManager { p.removeAttachment(attach); } } + } diff --git a/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/FaweBukkit.java b/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/FaweBukkit.java index 3b97d5140..b944b18b0 100644 --- a/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/FaweBukkit.java +++ b/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/FaweBukkit.java @@ -1,29 +1,27 @@ package com.fastasyncworldedit.bukkit; -import com.fastasyncworldedit.bukkit.util.image.BukkitImageViewer; -import com.fastasyncworldedit.core.FAWEPlatformAdapterImpl; -import com.fastasyncworldedit.core.Fawe; -import com.fastasyncworldedit.core.IFawe; -import com.fastasyncworldedit.core.queue.implementation.preloader.AsyncPreloader; -import com.fastasyncworldedit.core.queue.implementation.preloader.Preloader; -import com.fastasyncworldedit.core.queue.implementation.QueueHandler; import com.fastasyncworldedit.bukkit.adapter.BukkitQueueHandler; import com.fastasyncworldedit.bukkit.adapter.NMSAdapter; import com.fastasyncworldedit.bukkit.listener.BrushListener; import com.fastasyncworldedit.bukkit.listener.ChunkListener9; import com.fastasyncworldedit.bukkit.listener.RenderListener; -import com.fastasyncworldedit.bukkit.regions.GriefPreventionFeature; import com.fastasyncworldedit.bukkit.regions.GriefDefenderFeature; +import com.fastasyncworldedit.bukkit.regions.GriefPreventionFeature; import com.fastasyncworldedit.bukkit.regions.ResidenceFeature; import com.fastasyncworldedit.bukkit.regions.TownyFeature; import com.fastasyncworldedit.bukkit.regions.WorldGuardFeature; import com.fastasyncworldedit.bukkit.util.BukkitTaskManager; import com.fastasyncworldedit.bukkit.util.ItemUtil; import com.fastasyncworldedit.bukkit.util.MinecraftVersion; -//import com.fastasyncworldedit.bukkit.util.image.BukkitImageViewer; +import com.fastasyncworldedit.bukkit.util.image.BukkitImageViewer; +import com.fastasyncworldedit.core.FAWEPlatformAdapterImpl; +import com.fastasyncworldedit.core.Fawe; +import com.fastasyncworldedit.core.IFawe; import com.fastasyncworldedit.core.configuration.Settings; +import com.fastasyncworldedit.core.queue.implementation.QueueHandler; +import com.fastasyncworldedit.core.queue.implementation.preloader.AsyncPreloader; +import com.fastasyncworldedit.core.queue.implementation.preloader.Preloader; import com.fastasyncworldedit.core.regions.FaweMaskManager; -import com.fastasyncworldedit.core.util.ThirdPartyManager; import com.fastasyncworldedit.core.util.TaskManager; import com.fastasyncworldedit.core.util.WEManager; import com.fastasyncworldedit.core.util.image.ImageViewer; @@ -44,7 +42,6 @@ import org.bukkit.plugin.Plugin; import org.bukkit.plugin.PluginManager; import java.io.File; -import java.io.FileOutputStream; import java.util.ArrayList; import java.util.Collection; import java.util.UUID; @@ -91,7 +88,7 @@ public class FaweBukkit implements IFawe, Listener { TaskManager.IMP.task(() -> { // Fix for ProtocolSupport Settings.IMP.PROTOCOL_SUPPORT_FIX = - Bukkit.getPluginManager().isPluginEnabled("ProtocolSupport"); + Bukkit.getPluginManager().isPluginEnabled("ProtocolSupport"); // This class Bukkit.getPluginManager().registerEvents(FaweBukkit.this, FaweBukkit.this.plugin); @@ -101,7 +98,8 @@ public class FaweBukkit implements IFawe, Listener { }); } - @Override public QueueHandler getQueueHandler() { + @Override + public QueueHandler getQueueHandler() { return new BukkitQueueHandler(); } @@ -112,20 +110,12 @@ public class FaweBukkit implements IFawe, Listener { PluginManager manager = Bukkit.getPluginManager(); if (manager.getPlugin("PacketListenerApi") == null) { - File output = new File(plugin.getDataFolder().getParentFile(), - "PacketListenerAPI_v3.7.6-SNAPSHOT.jar"); - byte[] jarData = ThirdPartyManager.PacketListenerAPI.download(); - try (FileOutputStream fos = new FileOutputStream(output)) { - fos.write(jarData); - } + LOGGER.error("PacketListener not found! Please install PacketListenerAPI v3.7.6 or above before attempting to " + + "complete image-related edits"); } if (manager.getPlugin("MapManager") == null) { - File output = new File(plugin.getDataFolder().getParentFile(), - "MapManager_v1.7.8-SNAPSHOT.jar"); - byte[] jarData = ThirdPartyManager.MapManager.download(); - try (FileOutputStream fos = new FileOutputStream(output)) { - fos.write(jarData); - } + LOGGER.error("MapManager not found! Please install PacketListenerAPI v1.7.8 or above before attempting to " + + "complete image-related edits"); } return new BukkitImageViewer(BukkitAdapter.adapt(player)); } catch (Throwable ignored) { @@ -133,7 +123,8 @@ public class FaweBukkit implements IFawe, Listener { return null; } - @Override public File getDirectory() { + @Override + public File getDirectory() { return plugin.getDataFolder(); } @@ -151,21 +142,22 @@ public class FaweBukkit implements IFawe, Listener { return tmp; } - @Override public String getDebugInfo() { + @Override + public String getDebugInfo() { StringBuilder msg = new StringBuilder(); Plugin[] plugins = Bukkit.getServer().getPluginManager().getPlugins(); msg.append("Server Version: ").append(Bukkit.getVersion()).append("\n"); msg.append("Plugins (").append(plugins.length).append("): \n"); for (Plugin p : plugins) { msg.append(" - ").append(p.getName()).append(":").append("\n") - .append(" • Version: ").append(p.getDescription().getVersion()).append("\n") - .append(" • Enabled: ").append(p.isEnabled()).append("\n") - .append(" • Main: ").append(p.getDescription().getMain()).append("\n") - .append(" • Authors: ").append(p.getDescription().getAuthors()).append("\n") - .append(" • Load Before: ").append(p.getDescription().getLoadBefore()).append("\n") - .append(" • Dependencies: ").append(p.getDescription().getDepend()).append("\n") - .append(" • Soft Dependencies: ").append(p.getDescription().getSoftDepend()).append("\n") - .append(" • Provides: ").append(p.getDescription().getProvides()).append("\n"); + .append(" • Version: ").append(p.getDescription().getVersion()).append("\n") + .append(" • Enabled: ").append(p.isEnabled()).append("\n") + .append(" • Main: ").append(p.getDescription().getMain()).append("\n") + .append(" • Authors: ").append(p.getDescription().getAuthors()).append("\n") + .append(" • Load Before: ").append(p.getDescription().getLoadBefore()).append("\n") + .append(" • Dependencies: ").append(p.getDescription().getDepend()).append("\n") + .append(" • Soft Dependencies: ").append(p.getDescription().getSoftDepend()).append("\n") + .append(" • Provides: ").append(p.getDescription().getProvides()).append("\n"); } return msg.toString(); } @@ -173,7 +165,8 @@ public class FaweBukkit implements IFawe, Listener { /** * The task manager handles sync/async tasks. */ - @Override public TaskManager getTaskManager() { + @Override + public TaskManager getTaskManager() { return new BukkitTaskManager(plugin); } @@ -184,9 +177,10 @@ public class FaweBukkit implements IFawe, Listener { /** * A mask manager handles region restrictions e.g., PlotSquared plots / WorldGuard regions */ - @Override public Collection getMaskManagers() { + @Override + public Collection getMaskManagers() { final Plugin worldguardPlugin = - Bukkit.getServer().getPluginManager().getPlugin("WorldGuard"); + Bukkit.getServer().getPluginManager().getPlugin("WorldGuard"); final ArrayList managers = new ArrayList<>(); if (worldguardPlugin != null && worldguardPlugin.isEnabled()) { try { @@ -212,7 +206,7 @@ public class FaweBukkit implements IFawe, Listener { } } final Plugin griefpreventionPlugin = - Bukkit.getServer().getPluginManager().getPlugin("GriefPrevention"); + Bukkit.getServer().getPluginManager().getPlugin("GriefPrevention"); if (griefpreventionPlugin != null && griefpreventionPlugin.isEnabled()) { try { managers.add(new GriefPreventionFeature(griefpreventionPlugin)); @@ -259,26 +253,31 @@ public class FaweBukkit implements IFawe, Listener { wePlayer.unregister(); } - @Override public String getPlatform() { + @Override + public String getPlatform() { return "Bukkit"; } - @Override public UUID getUUID(String name) { + @Override + public UUID getUUID(String name) { return Bukkit.getOfflinePlayer(name).getUniqueId(); } - @Override public String getName(UUID uuid) { + @Override + public String getName(UUID uuid) { return Bukkit.getOfflinePlayer(uuid).getName(); } - @Override public Preloader getPreloader() { + @Override + public Preloader getPreloader() { if (PaperLib.isPaper()) { return new AsyncPreloader(); } return null; } - @Override public boolean isChunksStretched() { + @Override + public boolean isChunksStretched() { return chunksStretched; } @@ -295,11 +294,12 @@ public class FaweBukkit implements IFawe, Listener { if (plotSquared.getClass().getPackage().toString().contains("intellectualsites")) { WEManager.IMP.managers.add(new com.fastasyncworldedit.bukkit.regions.plotsquaredv4.PlotSquaredFeature()); LOGGER.info("Plugin 'PlotSquared' found. Using it now."); - } else if (PlotSquared.get().getVersion().version[0] == 6){ + } else if (PlotSquared.get().getVersion().version[0] == 6) { WEManager.IMP.managers.add(new com.fastasyncworldedit.bukkit.regions.plotsquared.PlotSquaredFeature()); LOGGER.info("Plugin 'PlotSquared' found. Using it now."); } else { LOGGER.error("Incompatible version of PlotSquared found. Please use PlotSquared v6."); } } + } diff --git a/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/adapter/BukkitQueueHandler.java b/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/adapter/BukkitQueueHandler.java index a843ec0d5..a0ce35035 100644 --- a/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/adapter/BukkitQueueHandler.java +++ b/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/adapter/BukkitQueueHandler.java @@ -1,8 +1,8 @@ package com.fastasyncworldedit.bukkit.adapter; import co.aikar.timings.Timings; -import com.fastasyncworldedit.core.queue.implementation.QueueHandler; import com.fastasyncworldedit.bukkit.listener.ChunkListener; +import com.fastasyncworldedit.core.queue.implementation.QueueHandler; import com.sk89q.worldedit.internal.util.LogManagerCompat; import org.apache.logging.log4j.Logger; import org.spigotmc.AsyncCatcher; @@ -17,6 +17,7 @@ public class BukkitQueueHandler extends QueueHandler { private static boolean alertTimingsChange = true; private static Method methodCheck; + static { try { methodCheck = Class.forName("co.aikar.timings.TimingsManager").getDeclaredMethod("recheckEnabled"); @@ -61,4 +62,5 @@ public class BukkitQueueHandler extends QueueHandler { } } } + } diff --git a/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/adapter/CachedBukkitAdapter.java b/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/adapter/CachedBukkitAdapter.java index 7d87748c0..f174b3a03 100644 --- a/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/adapter/CachedBukkitAdapter.java +++ b/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/adapter/CachedBukkitAdapter.java @@ -16,6 +16,7 @@ import java.util.List; import static com.google.common.base.Preconditions.checkNotNull; public abstract class CachedBukkitAdapter implements IBukkitAdapter { + private int[] itemTypes; private int[] blockTypes; @@ -98,4 +99,5 @@ public abstract class CachedBukkitAdapter implements IBukkitAdapter { throw e; } } + } diff --git a/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/adapter/DelegateLock.java b/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/adapter/DelegateLock.java index 239d451ab..da9c0ae3d 100644 --- a/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/adapter/DelegateLock.java +++ b/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/adapter/DelegateLock.java @@ -1,13 +1,14 @@ package com.fastasyncworldedit.bukkit.adapter; +import javax.annotation.Nonnull; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; -import javax.annotation.Nonnull; public class DelegateLock extends ReentrantLockWithGetOwner { + private final ReentrantLock parent; private volatile boolean modified; private final AtomicInteger count; @@ -106,4 +107,5 @@ public class DelegateLock extends ReentrantLockWithGetOwner { public synchronized String toString() { return parent.toString(); } + } diff --git a/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/adapter/DelegateSemaphore.java b/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/adapter/DelegateSemaphore.java index 50637d788..87cdf2d1d 100644 --- a/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/adapter/DelegateSemaphore.java +++ b/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/adapter/DelegateSemaphore.java @@ -3,6 +3,7 @@ package com.fastasyncworldedit.bukkit.adapter; import java.util.concurrent.Semaphore; public class DelegateSemaphore extends Semaphore { + private final Semaphore delegate; public DelegateSemaphore(int permits, Semaphore delegate) { @@ -30,4 +31,5 @@ public class DelegateSemaphore extends Semaphore { public synchronized void release() { this.delegate.release(); } + } diff --git a/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/adapter/IBukkitAdapter.java b/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/adapter/IBukkitAdapter.java index a87256dde..1849e4381 100644 --- a/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/adapter/IBukkitAdapter.java +++ b/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/adapter/IBukkitAdapter.java @@ -1,11 +1,9 @@ package com.fastasyncworldedit.bukkit.adapter; -import static com.google.common.base.Preconditions.checkNotNull; - +import com.fastasyncworldedit.bukkit.util.BukkitItemStack; import com.sk89q.worldedit.NotABlockException; import com.sk89q.worldedit.blocks.BaseItemStack; import com.sk89q.worldedit.bukkit.BukkitEntity; -import com.fastasyncworldedit.bukkit.util.BukkitItemStack; import com.sk89q.worldedit.bukkit.BukkitPlayer; import com.sk89q.worldedit.bukkit.BukkitWorld; import com.sk89q.worldedit.bukkit.WorldEditPlugin; @@ -25,8 +23,6 @@ import com.sk89q.worldedit.world.entity.EntityTypes; import com.sk89q.worldedit.world.gamemode.GameMode; import com.sk89q.worldedit.world.gamemode.GameModes; import com.sk89q.worldedit.world.item.ItemType; -import java.util.Locale; - import com.sk89q.worldedit.world.item.ItemTypes; import org.bukkit.Bukkit; import org.bukkit.Material; @@ -35,6 +31,10 @@ import org.bukkit.block.data.BlockData; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; +import java.util.Locale; + +import static com.google.common.base.Preconditions.checkNotNull; + public interface IBukkitAdapter { /** @@ -81,7 +81,7 @@ public interface IBukkitAdapter { /** * Create a Bukkit location from a WorldEdit position with a Bukkit world. * - * @param world the Bukkit world + * @param world the Bukkit world * @param position the WorldEdit position * @return a Bukkit location */ @@ -90,7 +90,8 @@ public interface IBukkitAdapter { checkNotNull(position); return new org.bukkit.Location( world, - position.getX(), position.getY(), position.getZ()); + position.getX(), position.getY(), position.getZ() + ); } default org.bukkit.Location adapt(org.bukkit.World world, BlockVector3 position) { @@ -100,7 +101,7 @@ public interface IBukkitAdapter { /** * Create a Bukkit location from a WorldEdit location with a Bukkit world. * - * @param world the Bukkit world + * @param world the Bukkit world * @param location the WorldEdit location * @return a Bukkit location */ @@ -111,7 +112,8 @@ public interface IBukkitAdapter { world, location.getX(), location.getY(), location.getZ(), location.getYaw(), - location.getPitch()); + location.getPitch() + ); } /** @@ -192,7 +194,7 @@ public interface IBukkitAdapter { default BlockType asBlockType(Material material) { checkNotNull(material); if (!material.isBlock()) { - throw new IllegalArgumentException(material.getKey().toString() + " is not a block!") { + throw new IllegalArgumentException(material.getKey() + " is not a block!") { @Override public synchronized Throwable fillInStackTrace() { return this; @@ -203,7 +205,6 @@ public interface IBukkitAdapter { } - /** * Converts a Material to a ItemType * @@ -269,6 +270,7 @@ public interface IBukkitAdapter { default BukkitPlayer adapt(Player player) { return WorldEditPlugin.getInstance().wrapPlayer(player); } + /** * Create a Bukkit Player from a WorldEdit Player. * @@ -298,7 +300,7 @@ public interface IBukkitAdapter { * Checks equality between a WorldEdit BlockType and a Bukkit Material * * @param blockType The WorldEdit BlockType - * @param type The Bukkit Material + * @param type The Bukkit Material * @return If they are equal */ default boolean equals(BlockType blockType, Material type) { @@ -351,4 +353,5 @@ public interface IBukkitAdapter { throw new NotABlockException(); } } + } diff --git a/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/adapter/IDelegateBukkitImplAdapter.java b/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/adapter/IDelegateBukkitImplAdapter.java index 5ef39ed05..42500aa9e 100644 --- a/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/adapter/IDelegateBukkitImplAdapter.java +++ b/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/adapter/IDelegateBukkitImplAdapter.java @@ -12,6 +12,7 @@ import com.sk89q.worldedit.math.BlockVector3; import com.sk89q.worldedit.math.Vector3; import com.sk89q.worldedit.registry.state.Property; import com.sk89q.worldedit.util.Direction; +import com.sk89q.worldedit.util.nbt.CompoundBinaryTag; import com.sk89q.worldedit.world.DataFixer; import com.sk89q.worldedit.world.biome.BiomeType; import com.sk89q.worldedit.world.block.BaseBlock; @@ -21,7 +22,6 @@ import com.sk89q.worldedit.world.block.BlockType; import com.sk89q.worldedit.world.gamemode.GameMode; import com.sk89q.worldedit.world.item.ItemType; import com.sk89q.worldedit.world.registry.BlockMaterial; -import com.sk89q.worldedit.util.nbt.CompoundBinaryTag; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.World; @@ -38,6 +38,7 @@ import java.util.Map; import java.util.OptionalInt; public interface IDelegateBukkitImplAdapter extends BukkitImplAdapter { + BukkitImplAdapter getParent(); @Override @@ -262,4 +263,5 @@ public interface IDelegateBukkitImplAdapter extends BukkitImplAdapter { default BlockState asBlockState(ItemStack itemStack) { return getParent().asBlockState(itemStack); } + } diff --git a/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/adapter/MapChunkUtil.java b/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/adapter/MapChunkUtil.java index 48a22340e..5748f7b58 100644 --- a/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/adapter/MapChunkUtil.java +++ b/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/adapter/MapChunkUtil.java @@ -10,6 +10,7 @@ import java.util.ArrayList; import java.util.Map; public abstract class MapChunkUtil { + protected Field fieldX; protected Field fieldZ; protected Field fieldHeightMap; @@ -50,4 +51,5 @@ public abstract class MapChunkUtil { return null; } } + } diff --git a/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/adapter/NMSAdapter.java b/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/adapter/NMSAdapter.java index bed4f7e80..3c83def52 100644 --- a/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/adapter/NMSAdapter.java +++ b/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/adapter/NMSAdapter.java @@ -1,11 +1,11 @@ package com.fastasyncworldedit.bukkit.adapter; import com.fastasyncworldedit.core.FAWEPlatformAdapterImpl; -import com.fastasyncworldedit.core.queue.IChunkGet; import com.fastasyncworldedit.core.configuration.Settings; +import com.fastasyncworldedit.core.queue.IChunkGet; +import com.fastasyncworldedit.core.world.block.BlockID; import com.sk89q.worldedit.bukkit.WorldEditPlugin; import com.sk89q.worldedit.math.BlockVector3; -import com.fastasyncworldedit.core.world.block.BlockID; import com.sk89q.worldedit.world.block.BlockState; import com.sk89q.worldedit.world.block.BlockTypesCache; @@ -13,8 +13,11 @@ import java.util.Map; import java.util.function.Function; public class NMSAdapter implements FAWEPlatformAdapterImpl { - public static int createPalette(int[] blockToPalette, int[] paletteToBlock, int[] blocksCopy, - int[] num_palette_buffer, char[] set, Map ticking_blocks, boolean fastmode) { + + public static int createPalette( + int[] blockToPalette, int[] paletteToBlock, int[] blocksCopy, + int[] num_palette_buffer, char[] set, Map ticking_blocks, boolean fastmode + ) { int air = 0; int num_palette = 0; char lastOrdinal = BlockID.__RESERVED__; @@ -43,9 +46,11 @@ public class NMSAdapter implements FAWEPlatformAdapterImpl { if (ticking) { BlockState state = BlockState.getFromOrdinal(ordinal); ticking_blocks - .put(BlockVector3.at(i & 15, (i >> 8) & 15, (i >> 4) & 15), - WorldEditPlugin.getInstance().getBukkitImplAdapter() - .getInternalBlockStateId(state).orElse(0)); + .put( + BlockVector3.at(i & 15, (i >> 8) & 15, (i >> 4) & 15), + WorldEditPlugin.getInstance().getBukkitImplAdapter() + .getInternalBlockStateId(state).orElse(0) + ); } } } @@ -61,9 +66,11 @@ public class NMSAdapter implements FAWEPlatformAdapterImpl { return air; } - public static int createPalette(int layer, int[] blockToPalette, int[] paletteToBlock, - int[] blocksCopy, int[] num_palette_buffer, Function get, char[] set, - Map ticking_blocks, boolean fastmode) { + public static int createPalette( + int layer, int[] blockToPalette, int[] paletteToBlock, + int[] blocksCopy, int[] num_palette_buffer, Function get, char[] set, + Map ticking_blocks, boolean fastmode + ) { int air = 0; int num_palette = 0; char[] getArr = null; @@ -100,9 +107,11 @@ public class NMSAdapter implements FAWEPlatformAdapterImpl { if (ticking) { BlockState state = BlockState.getFromOrdinal(ordinal); ticking_blocks - .put(BlockVector3.at(i & 15, (i >> 8) & 15, (i >> 4) & 15), - WorldEditPlugin.getInstance().getBukkitImplAdapter() - .getInternalBlockStateId(state).orElse(0)); + .put( + BlockVector3.at(i & 15, (i >> 8) & 15, (i >> 4) & 15), + WorldEditPlugin.getInstance().getBukkitImplAdapter() + .getInternalBlockStateId(state).orElse(0) + ); } } } @@ -126,9 +135,11 @@ public class NMSAdapter implements FAWEPlatformAdapterImpl { } if (ticking) { BlockState state = BlockState.getFromOrdinal(ordinal); - ticking_blocks.put(BlockVector3.at(i & 15, (i >> 8) & 15, (i >> 4) & 15), - WorldEditPlugin.getInstance().getBukkitImplAdapter() - .getInternalBlockStateId(state).orElse(0)); + ticking_blocks.put( + BlockVector3.at(i & 15, (i >> 8) & 15, (i >> 4) & 15), + WorldEditPlugin.getInstance().getBukkitImplAdapter() + .getInternalBlockStateId(state).orElse(0) + ); } } int palette = blockToPalette[ordinal]; @@ -192,4 +203,5 @@ public class NMSAdapter implements FAWEPlatformAdapterImpl { } ((BukkitGetBlocks) chunk).send(mask, lighting); } + } diff --git a/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/adapter/NMSRelighterFactory.java b/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/adapter/NMSRelighterFactory.java index 9f0c34c67..89f16bafd 100644 --- a/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/adapter/NMSRelighterFactory.java +++ b/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/adapter/NMSRelighterFactory.java @@ -1,19 +1,25 @@ package com.fastasyncworldedit.bukkit.adapter; -import com.fastasyncworldedit.core.queue.IQueueChunk; -import com.fastasyncworldedit.core.queue.IQueueExtent; +import com.fastasyncworldedit.core.configuration.Settings; import com.fastasyncworldedit.core.extent.processor.lighting.NMSRelighter; +import com.fastasyncworldedit.core.extent.processor.lighting.RelightMode; import com.fastasyncworldedit.core.extent.processor.lighting.Relighter; import com.fastasyncworldedit.core.extent.processor.lighting.RelighterFactory; -import com.fastasyncworldedit.core.configuration.Settings; -import com.fastasyncworldedit.core.extent.processor.lighting.RelightMode; +import com.fastasyncworldedit.core.queue.IQueueChunk; +import com.fastasyncworldedit.core.queue.IQueueExtent; import com.sk89q.worldedit.world.World; + import javax.annotation.Nonnull; public class NMSRelighterFactory implements RelighterFactory { + @Override - public @Nonnull Relighter createRelighter(RelightMode relightMode, World world, IQueueExtent queue) { - return new NMSRelighter(queue, - relightMode != null ? relightMode : RelightMode.valueOf(Settings.IMP.LIGHTING.MODE)); + public @Nonnull + Relighter createRelighter(RelightMode relightMode, World world, IQueueExtent queue) { + return new NMSRelighter( + queue, + relightMode != null ? relightMode : RelightMode.valueOf(Settings.IMP.LIGHTING.MODE) + ); } + } diff --git a/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/adapter/ReentrantLockWithGetOwner.java b/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/adapter/ReentrantLockWithGetOwner.java index cb816d02f..91d240bc0 100644 --- a/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/adapter/ReentrantLockWithGetOwner.java +++ b/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/adapter/ReentrantLockWithGetOwner.java @@ -8,4 +8,5 @@ public class ReentrantLockWithGetOwner extends ReentrantLock { public Thread getOwner() { return super.getOwner(); } -} \ No newline at end of file + +} diff --git a/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/adapter/Regenerator.java b/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/adapter/Regenerator.java index a0c75720e..df7d65949 100644 --- a/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/adapter/Regenerator.java +++ b/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/adapter/Regenerator.java @@ -1,9 +1,9 @@ package com.fastasyncworldedit.bukkit.adapter; +import com.fastasyncworldedit.core.configuration.Settings; import com.fastasyncworldedit.core.queue.IChunkCache; import com.fastasyncworldedit.core.queue.IChunkGet; import com.fastasyncworldedit.core.queue.implementation.SingleThreadQueueExtent; -import com.fastasyncworldedit.core.configuration.Settings; import com.fastasyncworldedit.core.util.MathMan; import com.sk89q.worldedit.extent.Extent; import com.sk89q.worldedit.internal.util.LogManagerCompat; @@ -16,6 +16,9 @@ import com.sk89q.worldedit.world.biome.BiomeType; import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap; import it.unimi.dsi.fastutil.longs.Long2ObjectLinkedOpenHashMap; import it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap; +import org.apache.logging.log4j.Logger; +import org.bukkit.generator.BlockPopulator; + import java.util.ArrayList; import java.util.Arrays; import java.util.Comparator; @@ -30,20 +33,18 @@ import java.util.concurrent.Executors; import java.util.concurrent.Future; import java.util.stream.Collectors; -import org.apache.logging.log4j.Logger; -import org.bukkit.generator.BlockPopulator; - /** * Represents an abstract regeneration handler. + * * @param the type of the {@Code IChunkAccess} of the current Minecraft implementation - * @param the type of the {@Code ProtoChunk} of the current Minecraft implementation - * @param the type of the {@Code Chunk} of the current Minecraft implementation - * @param the type of the {@Code ChunkStatusWrapper} wrapping the {@Code ChunkStatus} enum + * @param the type of the {@Code ProtoChunk} of the current Minecraft implementation + * @param the type of the {@Code Chunk} of the current Minecraft implementation + * @param the type of the {@Code ChunkStatusWrapper} wrapping the {@Code ChunkStatus} enum */ public abstract class Regenerator> { private static final Logger LOGGER = LogManagerCompat.getLogger(); - + protected final org.bukkit.World originalBukkitWorld; protected final Region region; protected final Extent target; @@ -53,7 +54,7 @@ public abstract class Regenerator chunkStati = new LinkedHashMap<>(); protected boolean generateConcurrent = true; protected long seed; - + private final Long2ObjectLinkedOpenHashMap protoChunks = new Long2ObjectLinkedOpenHashMap<>(); private final Long2ObjectOpenHashMap chunks = new Long2ObjectOpenHashMap<>(); private ExecutorService executor; @@ -61,10 +62,11 @@ public abstract class Regenerator> chunkCoordsForRadius = new Int2ObjectOpenHashMap<>(); chunkStati.keySet().stream().map(ChunkStatusWrapper::requiredNeigborChunkRadius0).distinct().forEach(radius -> { - if (radius == -1) //ignore ChunkStatus.EMPTY + if (radius == -1) { //ignore ChunkStatus.EMPTY return; + } int border = 16 - radius; //9 = 8 + 1, 8: max border radius used in chunk stages, 1: need 1 extra chunk for chunk features to generate at the border of the region chunkCoordsForRadius.put(radius, getChunkCoordsRegen(region, border)); }); @@ -161,8 +167,9 @@ public abstract class Regenerator>> worldlimits = new Int2ObjectOpenHashMap<>(); chunkStati.keySet().stream().map(ChunkStatusWrapper::requiredNeigborChunkRadius0).distinct().forEach(radius -> { - if (radius == -1) //ignore ChunkStatus.EMPTY + if (radius == -1) { //ignore ChunkStatus.EMPTY return; + } Long2ObjectOpenHashMap> map = new Long2ObjectOpenHashMap<>(); for (Long xz : chunkCoordsForRadius.get(radius)) { int x = MathMan.unpairIntX(xz); @@ -281,19 +288,19 @@ public abstract class RegeneratorImplement the preparation process in here. DO NOT instanciate any variable here that require the cleanup function. This function is for gathering further information before initializing a new * world.

- * + * *

Fields required to be initialized: chunkStati, seed

*

For chunkStati also see {code ChunkStatusWrapper}.

* @@ -303,20 +310,21 @@ public abstract class Regenerator * Fields required to be initialized: generateConcurrent * * @return true if everything went fine, otherwise false. When false is returned the Regenerator halts the regeneration process and calls the cleanup function. * @throws java.lang.Exception When the implementation of this method throws and exception the Regenerator halts the regeneration process and calls the cleanup function. */ protected abstract boolean initNewWorld() throws Exception; - + /** * Implement the cleanup of all the mess that is created during the regeneration process (initNewWorld() and generate()).This function must not throw any exceptions. */ protected abstract void cleanup(); - + //functions to implement by sub class - regenate related + /** * Implement the initialization of a {@code ProtoChunk} here. * @@ -352,28 +360,39 @@ public abstract class Regenerator} here. Use will need the {@code getChunkAt} function + * * @return an initialized {@code IChunkCache} */ protected abstract IChunkCache initSourceQueueCache(); - + //algorithms private List getChunkCoordsRegen(Region region, int border) { //needs to be square num of chunks BlockVector3 oldMin = region.getMinimumPoint(); - BlockVector3 newMin = BlockVector3.at((oldMin.getX() >> 4 << 4) - border * 16, oldMin.getY(), (oldMin.getZ() >> 4 << 4) - border * 16); + BlockVector3 newMin = BlockVector3.at( + (oldMin.getX() >> 4 << 4) - border * 16, + oldMin.getY(), + (oldMin.getZ() >> 4 << 4) - border * 16 + ); BlockVector3 oldMax = region.getMaximumPoint(); - BlockVector3 newMax = BlockVector3.at((oldMax.getX() >> 4 << 4) + (border + 1) * 16 - 1, oldMax.getY(), (oldMax.getZ() >> 4 << 4) + (border + 1) * 16 - 1); + BlockVector3 newMax = BlockVector3.at( + (oldMax.getX() >> 4 << 4) + (border + 1) * 16 - 1, + oldMax.getY(), + (oldMax.getZ() >> 4 << 4) + (border + 1) * 16 - 1 + ); Region adjustedRegion = new CuboidRegion(newMin, newMax); return adjustedRegion.getChunks().stream() .map(c -> BlockVector2.at(c.getX(), c.getZ())) - .sorted(Comparator.comparingInt(c -> c.getZ()).thenComparingInt(c -> c.getX())) //needed for RegionLimitedWorldAccess + .sorted(Comparator + .comparingInt(c -> c.getZ()) + .thenComparingInt(c -> c.getX())) //needed for RegionLimitedWorldAccess .map(c -> MathMan.pairInt(c.getX(), c.getZ())) .collect(Collectors.toList()); } @@ -381,11 +400,14 @@ public abstract class Regenerator>> getChunkStatusTaskRows(List allcoords, int requiredNeighborChunkRadius) { + private SequentialTasks>> getChunkStatusTaskRows( + List allcoords, + int requiredNeighborChunkRadius + ) { int requiredneighbors = Math.max(0, requiredNeighborChunkRadius); int minx = allcoords.isEmpty() ? 0 : MathMan.unpairIntX(allcoords.get(0)); @@ -413,8 +435,9 @@ public abstract class Regenerator> para = new ConcurrentTasks((maxz - minz + 1) / numlists + 1); - for (int i = 0; minx + i * numlists + offset <= maxx; i++) + for (int i = 0; minx + i * numlists + offset <= maxx; i++) { para.add(byx.get(minx + i * numlists + offset)); + } tasks.add(para); } } else { @@ -437,8 +460,9 @@ public abstract class Regenerator> para = new ConcurrentTasks((maxx - minx + 1) / numlists + 1); - for (int i = 0; minz + i * numlists + offset <= maxz; i++) + for (int i = 0; minz + i * numlists + offset <= maxz; i++) { para.add(byz.get(minz + i * numlists + offset)); + } tasks.add(para); } } @@ -456,8 +480,10 @@ public abstract class Regenerator the IChunkAccess class of the current Minecraft implementation */ public static abstract class ChunkStatusWrapper { @@ -483,9 +509,9 @@ public abstract class Regenerator accessibleChunks); @@ -493,9 +519,13 @@ public abstract class Regenerator extends Tasks { @@ -516,6 +547,7 @@ public abstract class Regenerator implements Iterable { @@ -537,7 +569,7 @@ public abstract class Regenerator iterator() { return tasks.iterator(); @@ -547,5 +579,7 @@ public abstract class Regenerator claims; private final World world; @@ -37,4 +38,5 @@ public class GriefDefenderFilter extends CuboidRegionFilter { } } } + } diff --git a/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/filter/GriefPreventionFilter.java b/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/filter/GriefPreventionFilter.java index e95b83310..c462ab897 100644 --- a/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/filter/GriefPreventionFilter.java +++ b/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/filter/GriefPreventionFilter.java @@ -14,13 +14,14 @@ import java.util.function.Supplier; import static com.google.common.base.Preconditions.checkNotNull; public class GriefPreventionFilter extends CuboidRegionFilter { + private final Collection claims; private final World world; public GriefPreventionFilter(World world) { checkNotNull(world); this.claims = TaskManager.IMP.sync( - (Supplier>) () -> new ArrayDeque<>(GriefPrevention.instance.dataStore.getClaims())); + (Supplier>) () -> new ArrayDeque<>(GriefPrevention.instance.dataStore.getClaims())); this.world = world; } @@ -36,4 +37,5 @@ public class GriefPreventionFilter extends CuboidRegionFilter { } } } + } diff --git a/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/filter/WorldGuardFilter.java b/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/filter/WorldGuardFilter.java index 1838c8fc1..88128a19c 100644 --- a/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/filter/WorldGuardFilter.java +++ b/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/filter/WorldGuardFilter.java @@ -32,7 +32,7 @@ public class WorldGuardFilter extends CuboidRegionFilter { public void calculateRegions() { Fawe.get().getQueueHandler().sync(() -> { WorldGuardFilter.this.manager = WorldGuard.getInstance().getPlatform().getRegionContainer().get( - BukkitAdapter.adapt(world)); + BukkitAdapter.adapt(world)); for (ProtectedRegion region : manager.getRegions().values()) { BlockVector3 min = region.getMinimumPoint(); BlockVector3 max = region.getMaximumPoint(); @@ -69,4 +69,5 @@ public class WorldGuardFilter extends CuboidRegionFilter { ApplicableRegionSet set = manager.getApplicableRegions(regionRegion); return set.size() > 0 && !set.getRegions().iterator().next().getId().equals("__global__"); } + } diff --git a/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/listener/BrushListener.java b/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/listener/BrushListener.java index c2f5100fe..6af0b2d2b 100644 --- a/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/listener/BrushListener.java +++ b/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/listener/BrushListener.java @@ -20,6 +20,7 @@ import org.bukkit.event.player.PlayerMoveEvent; import org.bukkit.plugin.Plugin; public class BrushListener implements Listener { + public BrushListener(Plugin plugin) { Bukkit.getPluginManager().registerEvents(this, plugin); } @@ -53,7 +54,8 @@ public class BrushListener implements Listener { public void onPlayerMove(PlayerMoveEvent event) { Location from = event.getFrom(); Location to = event.getTo(); - if ((from.getYaw() != to.getYaw() && from.getPitch() != to.getPitch()) || from.getBlockX() != to.getBlockX() || from.getBlockZ() != to.getBlockZ() || from.getBlockY() != to.getBlockY()) { + if ((from.getYaw() != to.getYaw() && from.getPitch() != to.getPitch()) || from.getBlockX() != to.getBlockX() || from.getBlockZ() != to + .getBlockZ() || from.getBlockY() != to.getBlockY()) { Player bukkitPlayer = event.getPlayer(); com.sk89q.worldedit.entity.Player player = BukkitAdapter.adapt(bukkitPlayer); LocalSession session = player.getSession(); @@ -83,4 +85,5 @@ public class BrushListener implements Listener { } } } + } diff --git a/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/listener/ChunkListener.java b/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/listener/ChunkListener.java index 0048e3b1c..7d38635ed 100644 --- a/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/listener/ChunkListener.java +++ b/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/listener/ChunkListener.java @@ -1,7 +1,7 @@ package com.fastasyncworldedit.bukkit.listener; -import com.fastasyncworldedit.core.Fawe; import com.fastasyncworldedit.bukkit.FaweBukkit; +import com.fastasyncworldedit.core.Fawe; import com.fastasyncworldedit.core.configuration.Settings; import com.fastasyncworldedit.core.util.FaweTimer; import com.fastasyncworldedit.core.util.MathMan; @@ -50,8 +50,8 @@ public abstract class ChunkListener implements Listener { private static final Logger LOGGER = LogManagerCompat.getLogger(); protected int rateLimit = 0; protected Location lastCancelPos; - private int[] badLimit = new int[]{Settings.IMP.TICK_LIMITER.PHYSICS_MS, - Settings.IMP.TICK_LIMITER.FALLING, Settings.IMP.TICK_LIMITER.ITEMS}; + private final int[] badLimit = new int[]{Settings.IMP.TICK_LIMITER.PHYSICS_MS, + Settings.IMP.TICK_LIMITER.FALLING, Settings.IMP.TICK_LIMITER.ITEMS}; public ChunkListener() { if (Settings.IMP.TICK_LIMITER.ENABLED) { @@ -62,7 +62,7 @@ public abstract class ChunkListener implements Listener { Location tmpLoc = lastCancelPos; if (tmpLoc != null) { LOGGER.debug("[FAWE Tick Limiter] Detected and cancelled physics lag source at " - + tmpLoc); + + tmpLoc); } rateLimit--; physicsFreeze = false; @@ -93,7 +93,7 @@ public abstract class ChunkListener implements Listener { public static boolean itemFreeze = false; protected final Long2ObjectOpenHashMap badChunks = new Long2ObjectOpenHashMap<>(); - private Long2ObjectOpenHashMap counter = new Long2ObjectOpenHashMap<>(); + private final Long2ObjectOpenHashMap counter = new Long2ObjectOpenHashMap<>(); private int lastX = Integer.MIN_VALUE; private int lastZ = Integer.MIN_VALUE; private int[] lastCount; @@ -248,7 +248,7 @@ public abstract class ChunkListener implements Listener { physStart = System.currentTimeMillis(); return; } else if (System.currentTimeMillis() - physStart - < Settings.IMP.TICK_LIMITER.PHYSICS_MS) { + < Settings.IMP.TICK_LIMITER.PHYSICS_MS) { return; } } @@ -281,7 +281,7 @@ public abstract class ChunkListener implements Listener { String methodName = elem.getMethodName(); // setAir | setTypeAndData (hacky, but this needs to be efficient) if (methodName.charAt(0) == 's' && methodName.length() == 6 - || methodName.length() == 14) { + || methodName.length() == 14) { return true; } } @@ -370,16 +370,16 @@ public abstract class ChunkListener implements Listener { String className = elem.getClassName(); int len = className.length(); if (len > 15 && className.charAt(len - 15) == 'E' && className - .endsWith("EntityFireworks")) { + .endsWith("EntityFireworks")) { for (Entity ent : world.getEntities()) { if (ent.getType() == EntityType.FIREWORK) { Vector velocity = ent.getVelocity(); double vertical = Math.abs(velocity.getY()); if (Math.abs(velocity.getX()) > vertical - || Math.abs(velocity.getZ()) > vertical) { + || Math.abs(velocity.getZ()) > vertical) { LOGGER.warn( - "[FAWE `tick-limiter`] Detected and cancelled rogue FireWork at " - + ent.getLocation()); + "[FAWE `tick-limiter`] Detected and cancelled rogue FireWork at " + + ent.getLocation()); ent.remove(); } } @@ -409,9 +409,10 @@ public abstract class ChunkListener implements Listener { if (rateLimit <= 0) { rateLimit = 20; LOGGER.warn( - "[FAWE `tick-limiter`] Detected and cancelled item lag source at " + loc); + "[FAWE `tick-limiter`] Detected and cancelled item lag source at " + loc); } event.setCancelled(true); } } + } diff --git a/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/listener/ChunkListener9.java b/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/listener/ChunkListener9.java index dd70aa8cc..0726af748 100644 --- a/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/listener/ChunkListener9.java +++ b/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/listener/ChunkListener9.java @@ -86,4 +86,5 @@ public class ChunkListener9 extends ChunkListener { StackTraceElement[] elems = getElements(ex); return elems.length > i ? elems[i] : null; } + } diff --git a/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/listener/RenderListener.java b/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/listener/RenderListener.java index 7780d43a8..c76d85739 100644 --- a/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/listener/RenderListener.java +++ b/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/listener/RenderListener.java @@ -86,7 +86,7 @@ public class RenderListener implements Listener { } else { int[] val = views.get(uuid); if (val == null) { - val = new int[] {value, (int) Fawe.get().getTimer().getTick()}; + val = new int[]{value, (int) Fawe.get().getTimer().getTick()}; UUID uid = player.getUniqueId(); views.put(uid, val); } else { @@ -136,4 +136,5 @@ public class RenderListener implements Listener { UUID uid = player.getUniqueId(); views.remove(uid); } + } diff --git a/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/preloader/PluginPreloader.java b/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/preloader/PluginPreloader.java index cb54bb3d4..28ce700ed 100644 --- a/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/preloader/PluginPreloader.java +++ b/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/preloader/PluginPreloader.java @@ -13,9 +13,9 @@ import org.bukkit.generator.ChunkGenerator; import org.bukkit.plugin.PluginBase; import org.bukkit.plugin.PluginDescriptionFile; import org.bukkit.plugin.PluginLoader; + import javax.annotation.Nonnull; import javax.annotation.Nullable; - import java.io.File; import java.io.InputStream; import java.util.Iterator; @@ -25,6 +25,7 @@ import java.util.concurrent.atomic.AtomicBoolean; import java.util.logging.Logger; public class PluginPreloader extends PluginBase { + private World world; private Set loaded; private int index; @@ -79,7 +80,7 @@ public class PluginPreloader extends PluginBase { return; } Fawe.get().getQueueHandler().syncWhenFree(() -> { - for (; iter.hasNext() && invalidator.get();index++) { + for (; iter.hasNext() && invalidator.get(); index++) { BlockVector2 chunk = iter.next(); if (!world.isChunkLoaded(chunk.getX(), chunk.getZ())) { world.addPluginChunkTicket(chunk.getX(), chunk.getZ(), this); @@ -199,7 +200,13 @@ public class PluginPreloader extends PluginBase { @Override @Nullable - public List onTabComplete(@Nonnull CommandSender sender, @Nonnull Command command, @Nonnull String alias, String[] args) { + public List onTabComplete( + @Nonnull CommandSender sender, + @Nonnull Command command, + @Nonnull String alias, + String[] args + ) { return null; } + } diff --git a/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/regions/BukkitMaskManager.java b/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/regions/BukkitMaskManager.java index f32434855..9ef40c99a 100644 --- a/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/regions/BukkitMaskManager.java +++ b/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/regions/BukkitMaskManager.java @@ -12,4 +12,5 @@ public abstract class BukkitMaskManager extends FaweMaskManager { public boolean hasMemberPermission(Permissible player) { return player.hasPermission("fawe." + getKey() + ".member"); } + } diff --git a/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/regions/GriefDefenderFeature.java b/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/regions/GriefDefenderFeature.java index 50078c63c..c242afeeb 100644 --- a/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/regions/GriefDefenderFeature.java +++ b/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/regions/GriefDefenderFeature.java @@ -28,7 +28,9 @@ public class GriefDefenderFeature extends BukkitMaskManager implements Listener } public boolean isAllowed(Player player, Claim claim, MaskType type) { - return GriefDefender.getCore().isEnabled(player.getWorld().getUID()) && !claim.isWilderness() && (claim.getOwnerName().equalsIgnoreCase(player.getName()) || claim.getOwnerUniqueId().equals(player.getUniqueId()) || + return GriefDefender.getCore().isEnabled(player.getWorld().getUID()) && !claim.isWilderness() && (claim + .getOwnerName() + .equalsIgnoreCase(player.getName()) || claim.getOwnerUniqueId().equals(player.getUniqueId()) || type == MaskType.MEMBER && claim.getUserTrusts(TrustTypes.BUILDER).contains(player.getUniqueId())); } @@ -41,8 +43,16 @@ public class GriefDefenderFeature extends BukkitMaskManager implements Listener if (!claim.isWilderness()) { if (isAllowed(player, claim, type)) { claim.getGreaterBoundaryCorner().getX(); - final BlockVector3 pos1 = BlockVector3.at(claim.getLesserBoundaryCorner().getX(), claim.getLesserBoundaryCorner().getY(), claim.getLesserBoundaryCorner().getZ()); - final BlockVector3 pos2 = BlockVector3.at(claim.getGreaterBoundaryCorner().getX(), claim.getGreaterBoundaryCorner().getY(), claim.getGreaterBoundaryCorner().getZ()); + final BlockVector3 pos1 = BlockVector3.at( + claim.getLesserBoundaryCorner().getX(), + claim.getLesserBoundaryCorner().getY(), + claim.getLesserBoundaryCorner().getZ() + ); + final BlockVector3 pos2 = BlockVector3.at( + claim.getGreaterBoundaryCorner().getX(), + claim.getGreaterBoundaryCorner().getY(), + claim.getGreaterBoundaryCorner().getZ() + ); return new FaweMask(new CuboidRegion(pos1, pos2)) { @Override @@ -59,4 +69,5 @@ public class GriefDefenderFeature extends BukkitMaskManager implements Listener public RegionFilter getFilter(String world) { return new GriefDefenderFilter(Bukkit.getWorld(world)); } + } diff --git a/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/regions/GriefPreventionFeature.java b/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/regions/GriefPreventionFeature.java index fd741d0e9..70ccf1625 100644 --- a/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/regions/GriefPreventionFeature.java +++ b/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/regions/GriefPreventionFeature.java @@ -26,8 +26,10 @@ public class GriefPreventionFeature extends BukkitMaskManager implements Listene } public boolean isAllowed(Player player, Claim claim, MaskType type) { - return claim != null && (claim.getOwnerName().equalsIgnoreCase(player.getName()) || claim.getOwnerName().equals(player.getUniqueId()) || - type == MaskType.MEMBER && claim.allowBuild(player, Material.AIR) == null); + return claim != null && (claim.getOwnerName().equalsIgnoreCase(player.getName()) || claim + .getOwnerName() + .equals(player.getUniqueId()) || + type == MaskType.MEMBER && claim.allowBuild(player, Material.AIR) == null); } @Override @@ -37,8 +39,16 @@ public class GriefPreventionFeature extends BukkitMaskManager implements Listene if (claim != null) { if (isAllowed(player, claim, type)) { claim.getGreaterBoundaryCorner().getBlockX(); - final BlockVector3 pos1 = BlockVector3.at(claim.getLesserBoundaryCorner().getBlockX(), 0, claim.getLesserBoundaryCorner().getBlockZ()); - final BlockVector3 pos2 = BlockVector3.at(claim.getGreaterBoundaryCorner().getBlockX(), 256, claim.getGreaterBoundaryCorner().getBlockZ()); + final BlockVector3 pos1 = BlockVector3.at( + claim.getLesserBoundaryCorner().getBlockX(), + 0, + claim.getLesserBoundaryCorner().getBlockZ() + ); + final BlockVector3 pos2 = BlockVector3.at( + claim.getGreaterBoundaryCorner().getBlockX(), + 256, + claim.getGreaterBoundaryCorner().getBlockZ() + ); return new FaweMask(new CuboidRegion(pos1, pos2)) { @Override @@ -55,4 +65,5 @@ public class GriefPreventionFeature extends BukkitMaskManager implements Listene public RegionFilter getFilter(String world) { return new GriefPreventionFilter(Bukkit.getWorld(world)); } + } diff --git a/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/regions/ResidenceFeature.java b/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/regions/ResidenceFeature.java index 6d9190d52..c6b75f8c6 100644 --- a/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/regions/ResidenceFeature.java +++ b/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/regions/ResidenceFeature.java @@ -19,8 +19,8 @@ public class ResidenceFeature extends BukkitMaskManager implements Listener { private static final Logger LOGGER = LogManagerCompat.getLogger(); - private FaweBukkit plugin; - private Plugin residence; + private final FaweBukkit plugin; + private final Plugin residence; public ResidenceFeature(final Plugin residencePlugin, final FaweBukkit p3) { super(residencePlugin.getName()); @@ -31,9 +31,11 @@ public class ResidenceFeature extends BukkitMaskManager implements Listener { public boolean isAllowed(Player player, ClaimedResidence residence, MaskType type) { return residence != null && - (residence.getOwner().equals(player.getName()) || - residence.getOwner().equals(player.getUniqueId().toString()) || - type == MaskType.MEMBER && TaskManager.IMP.sync(() -> residence.getPermissions().playerHas(player, "build", false))); + (residence.getOwner().equals(player.getName()) || + residence.getOwner().equals(player.getUniqueId().toString()) || + type == MaskType.MEMBER && TaskManager.IMP.sync(() -> residence + .getPermissions() + .playerHas(player, "build", false))); } @Override @@ -61,4 +63,5 @@ public class ResidenceFeature extends BukkitMaskManager implements Listener { } return null; } + } diff --git a/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/regions/TownyFeature.java b/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/regions/TownyFeature.java index 2d1b31f19..4ca8b76d0 100644 --- a/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/regions/TownyFeature.java +++ b/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/regions/TownyFeature.java @@ -83,10 +83,10 @@ public class TownyFeature extends BukkitMaskManager implements Listener { if (isMember) { final Chunk chunk = location.getChunk(); final BlockVector3 pos1 = BlockVector3 - .at(chunk.getX() * 16, 0, chunk.getZ() * 16); + .at(chunk.getX() * 16, 0, chunk.getZ() * 16); final BlockVector3 pos2 = BlockVector3.at( - chunk.getX() * 16 + 15, 156, chunk.getZ() * 16 - + 15); + chunk.getX() * 16 + 15, 156, chunk.getZ() * 16 + + 15); return new FaweMask(new CuboidRegion(pos1, pos2)) { @Override public boolean isValid(com.sk89q.worldedit.entity.Player player, MaskType type) { @@ -98,4 +98,5 @@ public class TownyFeature extends BukkitMaskManager implements Listener { } return null; } + } diff --git a/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/regions/WorldGuardFeature.java b/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/regions/WorldGuardFeature.java index 3b833954d..ac810062a 100644 --- a/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/regions/WorldGuardFeature.java +++ b/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/regions/WorldGuardFeature.java @@ -1,8 +1,8 @@ package com.fastasyncworldedit.bukkit.regions; import com.fastasyncworldedit.bukkit.filter.WorldGuardFilter; -import com.fastasyncworldedit.core.regions.RegionWrapper; import com.fastasyncworldedit.core.regions.FaweMask; +import com.fastasyncworldedit.core.regions.RegionWrapper; import com.fastasyncworldedit.core.regions.filter.RegionFilter; import com.sk89q.worldedit.bukkit.BukkitAdapter; import com.sk89q.worldedit.internal.util.LogManagerCompat; @@ -28,9 +28,11 @@ import org.bukkit.Location; import org.bukkit.entity.Player; import org.bukkit.event.Listener; import org.bukkit.plugin.Plugin; + import java.util.Locale; public class WorldGuardFeature extends BukkitMaskManager implements Listener { + private final WorldGuardPlugin worldguard; private static final Logger LOGGER = LogManagerCompat.getLogger(); @@ -67,9 +69,18 @@ public class WorldGuardFeature extends BukkitMaskManager implements Listener { if (global != null && isAllowed(player, global)) { return global; } - final ApplicableRegionSet regions = manager.getApplicableRegions(BlockVector3.at(location.getX(), location.getY(), location.getZ())); + final ApplicableRegionSet regions = manager.getApplicableRegions(BlockVector3.at( + location.getX(), + location.getY(), + location.getZ() + )); //Merge WorldGuardFlag - if (player.hasPermission("fawe.worldguardflag") && !regions.testState(player, Flags.BUILD, Flags.BLOCK_PLACE, Flags.BLOCK_BREAK)) { + if (player.hasPermission("fawe.worldguardflag") && !regions.testState( + player, + Flags.BUILD, + Flags.BLOCK_PLACE, + Flags.BLOCK_BREAK + )) { return null; } for (ProtectedRegion region : regions) { @@ -117,8 +128,16 @@ public class WorldGuardFeature extends BukkitMaskManager implements Listener { pos2 = BlockVector3.at(Integer.MAX_VALUE, 255, Integer.MAX_VALUE); } else { if (myregion instanceof ProtectedCuboidRegion) { - pos1 = BlockVector3.at(myregion.getMinimumPoint().getBlockX(), myregion.getMinimumPoint().getBlockY(), myregion.getMinimumPoint().getBlockZ()); - pos2 = BlockVector3.at(myregion.getMaximumPoint().getBlockX(), myregion.getMaximumPoint().getBlockY(), myregion.getMaximumPoint().getBlockZ()); + pos1 = BlockVector3.at( + myregion.getMinimumPoint().getBlockX(), + myregion.getMinimumPoint().getBlockY(), + myregion.getMinimumPoint().getBlockZ() + ); + pos2 = BlockVector3.at( + myregion.getMaximumPoint().getBlockX(), + myregion.getMaximumPoint().getBlockY(), + myregion.getMaximumPoint().getBlockZ() + ); } else { return new FaweMask(adapt(myregion)) { @Override @@ -144,6 +163,7 @@ public class WorldGuardFeature extends BukkitMaskManager implements Listener { } private static class AdaptedRegion extends AbstractRegion { + private final ProtectedRegion region; public AdaptedRegion(ProtectedRegion region) { @@ -175,6 +195,7 @@ public class WorldGuardFeature extends BukkitMaskManager implements Listener { public boolean contains(BlockVector3 position) { return region.contains(position); } + } private static Region adapt(ProtectedRegion region) { @@ -192,4 +213,5 @@ public class WorldGuardFeature extends BukkitMaskManager implements Listener { } return new AdaptedRegion(region); } + } diff --git a/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/regions/plotsquared/FaweDelegateRegionManager.java b/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/regions/plotsquared/FaweDelegateRegionManager.java index 3c24472e8..d9672ebfc 100644 --- a/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/regions/plotsquared/FaweDelegateRegionManager.java +++ b/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/regions/plotsquared/FaweDelegateRegionManager.java @@ -33,9 +33,9 @@ import com.sk89q.worldedit.world.biome.BiomeType; import com.sk89q.worldedit.world.block.BlockType; import com.sk89q.worldedit.world.block.BlockTypes; import org.checkerframework.checker.nullness.qual.NonNull; + import javax.annotation.Nonnull; import javax.annotation.Nullable; - import java.io.File; import java.io.FileInputStream; import java.io.IOException; @@ -46,18 +46,20 @@ import static org.bukkit.Bukkit.getWorld; public class FaweDelegateRegionManager { - public boolean setCuboids(final @NonNull PlotArea area, - final @NonNull Set regions, - final @NonNull Pattern blocks, - int minY, - int maxY, - Runnable whenDone) { + public boolean setCuboids( + final @NonNull PlotArea area, + final @NonNull Set regions, + final @NonNull Pattern blocks, + int minY, + int maxY, + Runnable whenDone + ) { TaskManager.IMP.async(() -> { synchronized (FaweDelegateRegionManager.class) { World world = BukkitAdapter.adapt(getWorld(area.getWorldName())); EditSession session = - new EditSessionBuilder(world).checkMemory(false).fastmode(true).limitUnlimited().changeSetNull() - .autoQueue(false).build(); + new EditSessionBuilder(world).checkMemory(false).fastmode(true).limitUnlimited().changeSetNull() + .autoQueue(false).build(); for (CuboidRegion region : regions) { region.setPos1(region.getPos1().withY(minY)); region.setPos2(region.getPos2().withY(maxY)); @@ -67,7 +69,8 @@ public class FaweDelegateRegionManager { session.flushQueue(); for (CuboidRegion region : regions) { FaweAPI.fixLighting(world, region, null, - RelightMode.valueOf(com.fastasyncworldedit.core.configuration.Settings.IMP.LIGHTING.MODE)); + RelightMode.valueOf(com.fastasyncworldedit.core.configuration.Settings.IMP.LIGHTING.MODE) + ); } } catch (MaxChangedBlocksException e) { e.printStackTrace(); @@ -84,14 +87,22 @@ public class FaweDelegateRegionManager { return hpw.getType() != PlotAreaType.AUGMENTED || hpw.getTerrain() == PlotAreaTerrainType.NONE; } - public boolean handleClear(@Nonnull Plot plot, - @Nullable Runnable whenDone, - @Nonnull PlotManager manager) { + public boolean handleClear( + @Nonnull Plot plot, + @Nullable Runnable whenDone, + @Nonnull PlotManager manager + ) { TaskManager.IMP.async(() -> { synchronized (FaweDelegateRegionManager.class) { final HybridPlotWorld hybridPlotWorld = ((HybridPlotManager) manager).getHybridPlotWorld(); World world = BukkitAdapter.adapt(getWorld(hybridPlotWorld.getWorldName())); - EditSession editSession = new EditSessionBuilder(world).checkMemory(false).fastmode(true).limitUnlimited().changeSetNull().autoQueue(false).build(); + EditSession editSession = new EditSessionBuilder(world) + .checkMemory(false) + .fastmode(true) + .limitUnlimited() + .changeSetNull() + .autoQueue(false) + .build(); if (!hybridPlotWorld.PLOT_SCHEMATIC || !Settings.Schematics.PASTE_ON_TOP) { final BlockType bedrock; @@ -107,12 +118,22 @@ public class FaweDelegateRegionManager { final BiomeType biome = hybridPlotWorld.getPlotBiome(); BlockVector3 pos1 = plot.getBottomAbs().getBlockVector3().withY(0); - BlockVector3 pos2 = pos1.add(BlockVector3.at(hybridPlotWorld.PLOT_WIDTH - 1, 255, hybridPlotWorld.PLOT_WIDTH - 1)); + BlockVector3 pos2 = pos1.add(BlockVector3.at( + hybridPlotWorld.PLOT_WIDTH - 1, + 255, + hybridPlotWorld.PLOT_WIDTH - 1 + )); Region bedrockRegion = new CuboidRegion(pos1, pos2.withY(0)); Region fillingRegion = new CuboidRegion(pos1.withY(1), pos2.withY(hybridPlotWorld.PLOT_HEIGHT - 1)); - Region floorRegion = new CuboidRegion(pos1.withY(hybridPlotWorld.PLOT_HEIGHT), pos2.withY(hybridPlotWorld.PLOT_HEIGHT)); - Region airRegion = new CuboidRegion(pos1.withY(hybridPlotWorld.PLOT_HEIGHT + 1), pos2.withY(manager.getWorldHeight())); + Region floorRegion = new CuboidRegion( + pos1.withY(hybridPlotWorld.PLOT_HEIGHT), + pos2.withY(hybridPlotWorld.PLOT_HEIGHT) + ); + Region airRegion = new CuboidRegion( + pos1.withY(hybridPlotWorld.PLOT_HEIGHT + 1), + pos2.withY(manager.getWorldHeight()) + ); editSession.setBlocks(bedrockRegion, bedrock); editSession.setBlocks(fillingRegion, filling); @@ -124,14 +145,25 @@ public class FaweDelegateRegionManager { if (hybridPlotWorld.PLOT_SCHEMATIC) { // We cannot reuse the editsession EditSession scheditsession = !Settings.Schematics.PASTE_ON_TOP ? editSession : - new EditSessionBuilder(world).checkMemory(false).fastmode(true).limitUnlimited().changeSetNull().autoQueue(false).build(); + new EditSessionBuilder(world) + .checkMemory(false) + .fastmode(true) + .limitUnlimited() + .changeSetNull() + .autoQueue(false) + .build(); File schematicFile = new File(hybridPlotWorld.getRoot(), "plot.schem"); if (!schematicFile.exists()) { schematicFile = new File(hybridPlotWorld.getRoot(), "plot.schematic"); } - BlockVector3 to = plot.getBottomAbs().getBlockVector3().withY(Settings.Schematics.PASTE_ON_TOP ? hybridPlotWorld.SCHEM_Y : 1); + BlockVector3 to = plot.getBottomAbs().getBlockVector3().withY(Settings.Schematics.PASTE_ON_TOP + ? hybridPlotWorld.SCHEM_Y + : 1); try { - Clipboard clip = ClipboardFormats.findByFile(schematicFile).getReader(new FileInputStream(schematicFile)).read(); + Clipboard clip = ClipboardFormats + .findByFile(schematicFile) + .getReader(new FileInputStream(schematicFile)) + .read(); clip.paste(scheditsession, to, true, true, true); } catch (IOException e) { e.printStackTrace(); @@ -142,28 +174,49 @@ public class FaweDelegateRegionManager { // Be verbose in editsession flushing editSession.flushQueue(); - FaweAPI.fixLighting(world, new CuboidRegion(plot.getBottomAbs().getBlockVector3(), plot.getTopAbs().getBlockVector3()), null, - RelightMode.valueOf(com.fastasyncworldedit.core.configuration.Settings.IMP.LIGHTING.MODE)); + FaweAPI.fixLighting( + world, + new CuboidRegion(plot.getBottomAbs().getBlockVector3(), plot.getTopAbs().getBlockVector3()), + null, + RelightMode.valueOf(com.fastasyncworldedit.core.configuration.Settings.IMP.LIGHTING.MODE) + ); TaskManager.IMP.task(whenDone); } }); return true; } - public void swap(Location pos1, - Location pos2, - Location swapPos, - final Runnable whenDone) { + public void swap( + Location pos1, + Location pos2, + Location swapPos, + final Runnable whenDone + ) { TaskManager.IMP.async(() -> { synchronized (FaweDelegateRegionManager.class) { //todo because of the following code this should proably be in the Bukkit module World pos1World = BukkitAdapter.adapt(getWorld(pos1.getWorldName())); World pos3World = BukkitAdapter.adapt(getWorld(swapPos.getWorldName())); WorldEdit.getInstance().getEditSessionFactory().getEditSession(pos1World, -1); - EditSession sessionA = new EditSessionBuilder(pos1World).checkMemory(false).fastmode(true).limitUnlimited().changeSetNull().autoQueue(false).build(); - EditSession sessionB = new EditSessionBuilder(pos3World).checkMemory(false).fastmode(true).limitUnlimited().changeSetNull().autoQueue(false).build(); + EditSession sessionA = new EditSessionBuilder(pos1World) + .checkMemory(false) + .fastmode(true) + .limitUnlimited() + .changeSetNull() + .autoQueue(false) + .build(); + EditSession sessionB = new EditSessionBuilder(pos3World) + .checkMemory(false) + .fastmode(true) + .limitUnlimited() + .changeSetNull() + .autoQueue(false) + .build(); CuboidRegion regionA = new CuboidRegion(pos1.getBlockVector3(), pos2.getBlockVector3()); - CuboidRegion regionB = new CuboidRegion(swapPos.getBlockVector3(), swapPos.getBlockVector3().add(pos2.getBlockVector3()).subtract(pos1.getBlockVector3())); + CuboidRegion regionB = new CuboidRegion( + swapPos.getBlockVector3(), + swapPos.getBlockVector3().add(pos2.getBlockVector3()).subtract(pos1.getBlockVector3()) + ); regionA.setWorld(pos1World); regionB.setWorld(pos3World); Clipboard clipA = Clipboard.create(regionA, UUID.randomUUID()); @@ -181,10 +234,18 @@ public class FaweDelegateRegionManager { e.printStackTrace(); } FaweAPI.fixLighting(pos1World, new CuboidRegion(pos1.getBlockVector3(), pos2.getBlockVector3()), null, - RelightMode.valueOf(com.fastasyncworldedit.core.configuration.Settings.IMP.LIGHTING.MODE)); - FaweAPI.fixLighting(pos1World, new CuboidRegion(swapPos.getBlockVector3(), - BlockVector3.at(swapPos.getX() + pos2.getX() - pos1.getX(), 0, swapPos.getZ() + pos2.getZ() - pos1.getZ())), null, - RelightMode.valueOf(com.fastasyncworldedit.core.configuration.Settings.IMP.LIGHTING.MODE)); + RelightMode.valueOf(com.fastasyncworldedit.core.configuration.Settings.IMP.LIGHTING.MODE) + ); + FaweAPI.fixLighting(pos1World, new CuboidRegion( + swapPos.getBlockVector3(), + BlockVector3.at( + swapPos.getX() + pos2.getX() - pos1.getX(), + 0, + swapPos.getZ() + pos2.getZ() - pos1.getZ() + ) + ), null, + RelightMode.valueOf(com.fastasyncworldedit.core.configuration.Settings.IMP.LIGHTING.MODE) + ); TaskManager.IMP.task(whenDone); } }); @@ -195,7 +256,13 @@ public class FaweDelegateRegionManager { region.expand(BlockVector3.at(-extendBiome, 0, -extendBiome)); TaskManager.IMP.async(() -> { synchronized (FaweDelegateRegionManager.class) { - EditSession editSession = new EditSessionBuilder(BukkitAdapter.adapt(getWorld(world))).checkMemory(false).fastmode(true).limitUnlimited().changeSetNull().autoQueue(false).build(); + EditSession editSession = new EditSessionBuilder(BukkitAdapter.adapt(getWorld(world))) + .checkMemory(false) + .fastmode(true) + .limitUnlimited() + .changeSetNull() + .autoQueue(false) + .build(); FlatRegionFunction replace = new BiomeReplace(editSession, biome); FlatRegionVisitor visitor = new FlatRegionVisitor(region, replace); try { @@ -209,24 +276,50 @@ public class FaweDelegateRegionManager { }); } - public boolean copyRegion(final @NonNull Location pos1, - final @NonNull Location pos2, - final @NonNull Location pos3, - final @NonNull Runnable whenDone) { + public boolean copyRegion( + final @NonNull Location pos1, + final @NonNull Location pos2, + final @NonNull Location pos3, + final @NonNull Runnable whenDone + ) { TaskManager.IMP.async(() -> { synchronized (FaweDelegateRegionManager.class) { World pos1World = BukkitAdapter.adapt(getWorld(pos1.getWorldName())); World pos3World = BukkitAdapter.adapt(getWorld(pos3.getWorldName())); - EditSession from = new EditSessionBuilder(pos1World).checkMemory(false).fastmode(true).limitUnlimited().changeSetNull().autoQueue(false).build(); - EditSession to = new EditSessionBuilder(pos3World).checkMemory(false).fastmode(true).limitUnlimited().changeSetNull().autoQueue(false).build(); - CuboidRegion region = new CuboidRegion(BlockVector3.at(pos1.getX(), pos1.getY(), pos1.getZ()), BlockVector3.at(pos2.getX(), pos2.getY(), pos2.getZ())); - ForwardExtentCopy copy = new ForwardExtentCopy(from, region, to, BlockVector3.at(pos3.getX(), pos3.getY(), pos3.getZ())); + EditSession from = new EditSessionBuilder(pos1World) + .checkMemory(false) + .fastmode(true) + .limitUnlimited() + .changeSetNull() + .autoQueue(false) + .build(); + EditSession to = new EditSessionBuilder(pos3World) + .checkMemory(false) + .fastmode(true) + .limitUnlimited() + .changeSetNull() + .autoQueue(false) + .build(); + CuboidRegion region = new CuboidRegion( + BlockVector3.at(pos1.getX(), pos1.getY(), pos1.getZ()), + BlockVector3.at(pos2.getX(), pos2.getY(), pos2.getZ()) + ); + ForwardExtentCopy copy = new ForwardExtentCopy( + from, + region, + to, + BlockVector3.at(pos3.getX(), pos3.getY(), pos3.getZ()) + ); try { Operations.completeLegacy(copy); to.flushQueue(); FaweAPI.fixLighting(pos1World, - new CuboidRegion(pos3.getBlockVector3(), pos3.getBlockVector3().add(pos2.getBlockVector3().subtract(pos1.getBlockVector3()))), - null, RelightMode.valueOf(com.fastasyncworldedit.core.configuration.Settings.IMP.LIGHTING.MODE)); + new CuboidRegion( + pos3.getBlockVector3(), + pos3.getBlockVector3().add(pos2.getBlockVector3().subtract(pos1.getBlockVector3())) + ), + null, RelightMode.valueOf(com.fastasyncworldedit.core.configuration.Settings.IMP.LIGHTING.MODE) + ); } catch (MaxChangedBlocksException e) { e.printStackTrace(); } @@ -240,8 +333,17 @@ public class FaweDelegateRegionManager { TaskManager.IMP.async(() -> { synchronized (FaweDelegateRegionManager.class) { World pos1World = BukkitAdapter.adapt(getWorld(pos1.getWorldName())); - try (EditSession editSession = new EditSessionBuilder(pos1World).checkMemory(false).fastmode(true).limitUnlimited().changeSetNull().autoQueue(false).build()) { - CuboidRegion region = new CuboidRegion(BlockVector3.at(pos1.getX(), pos1.getY(), pos1.getZ()), BlockVector3.at(pos2.getX(), pos2.getY(), pos2.getZ())); + try (EditSession editSession = new EditSessionBuilder(pos1World) + .checkMemory(false) + .fastmode(true) + .limitUnlimited() + .changeSetNull() + .autoQueue(false) + .build()) { + CuboidRegion region = new CuboidRegion( + BlockVector3.at(pos1.getX(), pos1.getY(), pos1.getZ()), + BlockVector3.at(pos2.getX(), pos2.getY(), pos2.getZ()) + ); editSession.regenerate(region); editSession.flushQueue(); } @@ -250,4 +352,5 @@ public class FaweDelegateRegionManager { }); return true; } + } diff --git a/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/regions/plotsquared/FaweDelegateSchematicHandler.java b/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/regions/plotsquared/FaweDelegateSchematicHandler.java index 465435daa..f51a2794b 100644 --- a/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/regions/plotsquared/FaweDelegateSchematicHandler.java +++ b/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/regions/plotsquared/FaweDelegateSchematicHandler.java @@ -3,6 +3,10 @@ package com.fastasyncworldedit.bukkit.regions.plotsquared; import com.fastasyncworldedit.core.Fawe; import com.fastasyncworldedit.core.FaweAPI; import com.fastasyncworldedit.core.FaweCache; +import com.fastasyncworldedit.core.extent.clipboard.io.FastSchematicReader; +import com.fastasyncworldedit.core.extent.clipboard.io.FastSchematicWriter; +import com.fastasyncworldedit.core.jnbt.CompressedCompoundTag; +import com.fastasyncworldedit.core.jnbt.CompressedSchematicTag; import com.fastasyncworldedit.core.util.EditSessionBuilder; import com.fastasyncworldedit.core.util.IOUtil; import com.plotsquared.core.PlotSquared; @@ -15,16 +19,12 @@ import com.plotsquared.core.util.SchematicHandler; import com.plotsquared.core.util.task.RunnableVal; import com.plotsquared.core.util.task.TaskManager; import com.sk89q.jnbt.CompoundTag; -import com.fastasyncworldedit.core.jnbt.CompressedCompoundTag; import com.sk89q.jnbt.NBTInputStream; import com.sk89q.jnbt.NBTOutputStream; import com.sk89q.jnbt.Tag; -import com.fastasyncworldedit.core.jnbt.CompressedSchematicTag; import com.sk89q.worldedit.EditSession; import com.sk89q.worldedit.extent.clipboard.Clipboard; import com.sk89q.worldedit.extent.clipboard.io.BuiltInClipboardFormat; -import com.fastasyncworldedit.core.extent.clipboard.io.FastSchematicReader; -import com.fastasyncworldedit.core.extent.clipboard.io.FastSchematicWriter; import com.sk89q.worldedit.extent.clipboard.io.MCEditSchematicReader; import com.sk89q.worldedit.extent.clipboard.io.SpongeSchematicReader; import com.sk89q.worldedit.internal.util.LogManagerCompat; @@ -33,8 +33,8 @@ import com.sk89q.worldedit.regions.CuboidRegion; import net.jpountz.lz4.LZ4BlockInputStream; import org.anarres.parallelgzip.ParallelGZIPOutputStream; import org.apache.logging.log4j.Logger; -import javax.annotation.Nonnull; +import javax.annotation.Nonnull; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.EOFException; @@ -56,13 +56,15 @@ public class FaweDelegateSchematicHandler { private static final AtomicBoolean exportingAll = new AtomicBoolean(); - public void paste(final Schematic schematic, - final Plot plot, - final int xOffset, - final int yOffset, - final int zOffset, - final boolean autoHeight, - final RunnableVal whenDone) { + public void paste( + final Schematic schematic, + final Plot plot, + final int xOffset, + final int yOffset, + final int zOffset, + final boolean autoHeight, + final RunnableVal whenDone + ) { Runnable r = () -> { if (whenDone != null) { whenDone.value = false; @@ -78,8 +80,8 @@ public class FaweDelegateSchematicHandler { // Validate dimensions CuboidRegion region = plot.getLargestRegion(); if (((region.getMaximumPoint().getX() - region.getMinimumPoint().getX() + xOffset + 1) < WIDTH) || ( - (region.getMaximumPoint().getZ() - region.getMinimumPoint().getZ() + zOffset + 1) < LENGTH) || (HEIGHT - > 256)) { + (region.getMaximumPoint().getZ() - region.getMinimumPoint().getZ() + zOffset + 1) < LENGTH) || (HEIGHT + > 256)) { TaskManager.runTask(whenDone); return; } @@ -94,8 +96,9 @@ public class FaweDelegateSchematicHandler { y_offset_actual = yOffset + ((ClassicPlotWorld) pw).PLOT_HEIGHT; } else { y_offset_actual = yOffset + 1 + PlotSquared.platform().worldUtil() - .getHighestBlockSynchronous(plot.getWorldName(), region.getMinimumPoint().getX() + 1, - region.getMinimumPoint().getZ() + 1); + .getHighestBlockSynchronous(plot.getWorldName(), region.getMinimumPoint().getX() + 1, + region.getMinimumPoint().getZ() + 1 + ); } } } else { @@ -103,10 +106,10 @@ public class FaweDelegateSchematicHandler { } final BlockVector3 to = BlockVector3 - .at(region.getMinimumPoint().getX() + xOffset, y_offset_actual, region.getMinimumPoint().getZ() + zOffset); + .at(region.getMinimumPoint().getX() + xOffset, y_offset_actual, region.getMinimumPoint().getZ() + zOffset); try (EditSession editSession = new EditSessionBuilder(FaweAPI.getWorld(plot.getWorldName())).checkMemory(false) - .fastmode(true).limitUnlimited().changeSetNull().autoQueue(false).build()) { + .fastmode(true).limitUnlimited().changeSetNull().autoQueue(false).build()) { final Clipboard clipboard = schematic.getClipboard(); clipboard.paste(editSession, to, true, false, true); if (whenDone != null) { @@ -135,20 +138,20 @@ public class FaweDelegateSchematicHandler { if (cTag instanceof CompressedSchematicTag) { Clipboard clipboard = (Clipboard) cTag.getSource(); try (OutputStream stream = new FileOutputStream(tmp); - NBTOutputStream output = new NBTOutputStream( - new BufferedOutputStream(new ParallelGZIPOutputStream(stream)))) { + NBTOutputStream output = new NBTOutputStream( + new BufferedOutputStream(new ParallelGZIPOutputStream(stream)))) { new FastSchematicWriter(output).write(clipboard); } } else { try (OutputStream stream = new FileOutputStream(tmp); - BufferedOutputStream output = new BufferedOutputStream(new ParallelGZIPOutputStream(stream))) { + BufferedOutputStream output = new BufferedOutputStream(new ParallelGZIPOutputStream(stream))) { LZ4BlockInputStream is = cTag.adapt(cTag.getSource()); IOUtil.copy(is, output); } } } else { try (OutputStream stream = new FileOutputStream(tmp); - NBTOutputStream output = new NBTOutputStream(new ParallelGZIPOutputStream(stream))) { + NBTOutputStream output = new NBTOutputStream(new ParallelGZIPOutputStream(stream))) { Map map = tag.getValue(); output.writeNamedTag("Schematic", map.getOrDefault("Schematic", tag)); } @@ -193,7 +196,7 @@ public class FaweDelegateSchematicHandler { public Schematic getSchematic(@Nonnull InputStream is) { try { FastSchematicReader schematicReader = new FastSchematicReader( - new NBTInputStream(new BufferedInputStream(new GZIPInputStream(new BufferedInputStream(is))))); + new NBTInputStream(new BufferedInputStream(new GZIPInputStream(new BufferedInputStream(is))))); Clipboard clip = schematicReader.read(); return new Schematic(clip); } catch (IOException e) { @@ -203,7 +206,7 @@ public class FaweDelegateSchematicHandler { } try { SpongeSchematicReader schematicReader = - new SpongeSchematicReader(new NBTInputStream(new GZIPInputStream(is))); + new SpongeSchematicReader(new NBTInputStream(new GZIPInputStream(is))); Clipboard clip = schematicReader.read(); return new Schematic(clip); } catch (IOException e2) { @@ -213,17 +216,18 @@ public class FaweDelegateSchematicHandler { } try { MCEditSchematicReader schematicReader = - new MCEditSchematicReader(new NBTInputStream(new GZIPInputStream(is))); + new MCEditSchematicReader(new NBTInputStream(new GZIPInputStream(is))); Clipboard clip = schematicReader.read(); return new Schematic(clip); } catch (IOException e3) { e.printStackTrace(); LOGGER.warn( - is + " | " + is.getClass().getCanonicalName() + " is not in GZIP format : " + e - .getMessage()); + is + " | " + is.getClass().getCanonicalName() + " is not in GZIP format : " + e + .getMessage()); } } } return null; } + } diff --git a/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/regions/plotsquared/FaweQueueCoordinator.java b/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/regions/plotsquared/FaweQueueCoordinator.java index 5b941dec8..692a594aa 100644 --- a/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/regions/plotsquared/FaweQueueCoordinator.java +++ b/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/regions/plotsquared/FaweQueueCoordinator.java @@ -2,6 +2,7 @@ package com.fastasyncworldedit.bukkit.regions.plotsquared; import com.fastasyncworldedit.core.Fawe; import com.fastasyncworldedit.core.FaweCache; +import com.fastasyncworldedit.core.math.MutableBlockVector3; import com.fastasyncworldedit.core.queue.IQueueChunk; import com.fastasyncworldedit.core.queue.IQueueExtent; import com.plotsquared.core.queue.LightingMode; @@ -12,15 +13,14 @@ import com.sk89q.worldedit.entity.Entity; import com.sk89q.worldedit.function.pattern.Pattern; import com.sk89q.worldedit.math.BlockVector2; import com.sk89q.worldedit.math.BlockVector3; -import com.fastasyncworldedit.core.math.MutableBlockVector3; import com.sk89q.worldedit.regions.CuboidRegion; import com.sk89q.worldedit.world.World; import com.sk89q.worldedit.world.biome.BiomeType; import com.sk89q.worldedit.world.block.BaseBlock; import com.sk89q.worldedit.world.block.BlockState; + import javax.annotation.Nonnull; import javax.annotation.Nullable; - import java.util.List; import java.util.Set; import java.util.function.Consumer; @@ -29,7 +29,7 @@ public class FaweQueueCoordinator extends QueueCoordinator { public final IQueueExtent instance; private final World world; - private BlockVector3 mutable = new MutableBlockVector3(); + private final BlockVector3 mutable = new MutableBlockVector3(); private boolean setbiome = false; public FaweQueueCoordinator(World world) { @@ -202,4 +202,5 @@ public class FaweQueueCoordinator extends QueueCoordinator { public boolean isSettingTiles() { return false; } + } diff --git a/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/regions/plotsquared/FaweTrim.java b/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/regions/plotsquared/FaweTrim.java index 83d1074d1..f2621d90b 100644 --- a/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/regions/plotsquared/FaweTrim.java +++ b/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/regions/plotsquared/FaweTrim.java @@ -12,10 +12,10 @@ import com.plotsquared.core.configuration.caption.TranslatableCaption; import com.plotsquared.core.player.PlotPlayer; @CommandDeclaration(command = "trimchunks", - permission = "plots.admin", - description = "Delete unmodified portions of your plotworld", - requiredType = RequiredType.PLAYER, - category = CommandCategory.ADMINISTRATION) + permission = "plots.admin", + description = "Delete unmodified portions of your plotworld", + requiredType = RequiredType.PLAYER, + category = CommandCategory.ADMINISTRATION) public class FaweTrim extends SubCommand { private boolean ran = false; @@ -28,7 +28,7 @@ public class FaweTrim extends SubCommand { } if (strings.length != 2) { plotPlayer.sendMessage(StaticCaption - .of("First make a backup of your world called then stand in the middle of an empty plot")); + .of("First make a backup of your world called then stand in the middle of an empty plot")); plotPlayer.sendMessage(StaticCaption.of("use /plot trimall ")); return false; } @@ -52,4 +52,5 @@ public class FaweTrim extends SubCommand { }); return true; } + } diff --git a/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/regions/plotsquared/PlotRegionFilter.java b/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/regions/plotsquared/PlotRegionFilter.java index 9eeb549b4..4e9e1c098 100644 --- a/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/regions/plotsquared/PlotRegionFilter.java +++ b/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/regions/plotsquared/PlotRegionFilter.java @@ -11,6 +11,7 @@ import java.util.ArrayList; import static com.google.common.base.Preconditions.checkNotNull; public class PlotRegionFilter extends CuboidRegionFilter { + private final PlotArea area; public PlotRegionFilter(PlotArea area) { @@ -27,4 +28,5 @@ public class PlotRegionFilter extends CuboidRegionFilter { add(BlockVector2.at(bottom.getX(), bottom.getZ()), BlockVector2.at(top.getX(), top.getZ())); } } + } diff --git a/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/regions/plotsquared/PlotSetBiome.java b/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/regions/plotsquared/PlotSetBiome.java index 67f8cb1b1..b3d5ba958 100644 --- a/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/regions/plotsquared/PlotSetBiome.java +++ b/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/regions/plotsquared/PlotSetBiome.java @@ -35,43 +35,53 @@ import java.util.concurrent.ThreadLocalRandom; import java.util.stream.Collectors; @CommandDeclaration(command = "generatebiome", - permission = "plots.generatebiome", - category = CommandCategory.APPEARANCE, - requiredType = RequiredType.PLAYER, - description = "Generate a biome in your plot", - aliases = {"bg", "gb"}, - usage = "/plots generatebiome ") + permission = "plots.generatebiome", + category = CommandCategory.APPEARANCE, + requiredType = RequiredType.PLAYER, + description = "Generate a biome in your plot", + aliases = {"bg", "gb"}, + usage = "/plots generatebiome ") public class PlotSetBiome extends Command { + public PlotSetBiome() { super(MainCommand.getInstance(), true); } @Override - public CompletableFuture execute(final PlotPlayer player, - String[] args, - RunnableVal3 confirm, - RunnableVal2 whenDone) throws CommandException { + public CompletableFuture execute( + final PlotPlayer player, + String[] args, + RunnableVal3 confirm, + RunnableVal2 whenDone + ) throws CommandException { final Plot plot = check(player.getCurrentPlot(), TranslatableCaption.of("errors.not_in_plot")); - checkTrue(plot.isOwner(player.getUUID()) || Permissions.hasPermission(player, "plots.admin.command.generatebiome"), - TranslatableCaption.of("permission.no_plot_perms")); + checkTrue( + plot.isOwner(player.getUUID()) || Permissions.hasPermission(player, "plots.admin.command.generatebiome"), + TranslatableCaption.of("permission.no_plot_perms") + ); if (plot.getRunning() != 0) { player.sendMessage(TranslatableCaption.of("errors.wait_for_timer")); return null; } checkTrue(args.length == 1, TranslatableCaption.of("commandconfig.command_syntax"), - Templates.of("value", getUsage())); + Templates.of("value", getUsage()) + ); final Set regions = plot.getRegions(); BiomeRegistry biomeRegistry = - WorldEdit.getInstance().getPlatformManager().queryCapability(Capability.GAME_HOOKS).getRegistries() - .getBiomeRegistry(); + WorldEdit.getInstance().getPlatformManager().queryCapability(Capability.GAME_HOOKS).getRegistries() + .getBiomeRegistry(); Collection knownBiomes = BiomeTypes.values(); final BiomeType biome = Biomes.findBiomeByName(knownBiomes, args[0], biomeRegistry); if (biome == null) { - String biomes = StringMan.join(BiomeType.REGISTRY.values(), - TranslatableCaption.of("blocklist.block_list_separator").getComponent(player)); + String biomes = StringMan.join( + BiomeType.REGISTRY.values(), + TranslatableCaption.of("blocklist.block_list_separator").getComponent(player) + ); player.sendMessage(TranslatableCaption.of("biome.need_biome")); - player.sendMessage(TranslatableCaption.of("commandconfig.subcommand_set_options_header"), - Templates.of("values", biomes)); + player.sendMessage( + TranslatableCaption.of("commandconfig.subcommand_set_options_header"), + Templates.of("values", biomes) + ); return CompletableFuture.completedFuture(false); } confirm.run(this, () -> { @@ -82,9 +92,9 @@ public class PlotSetBiome extends Command { plot.addRunning(); TaskManager.IMP.async(() -> { EditSession session = - new EditSessionBuilder(BukkitAdapter.adapt(Bukkit.getWorld(plot.getArea().getWorldName()))) - .autoQueue(false).checkMemory(false).allowedRegionsEverywhere() - .player(BukkitAdapter.adapt(Bukkit.getPlayer(player.getUUID()))).limitUnlimited().build(); + new EditSessionBuilder(BukkitAdapter.adapt(Bukkit.getWorld(plot.getArea().getWorldName()))) + .autoQueue(false).checkMemory(false).allowedRegionsEverywhere() + .player(BukkitAdapter.adapt(Bukkit.getPlayer(player.getUUID()))).limitUnlimited().build(); long seed = ThreadLocalRandom.current().nextLong(); for (CuboidRegion region : regions) { session.regenerate(region, biome, seed); @@ -105,4 +115,5 @@ public class PlotSetBiome extends Command { .map(value -> new Command(null, false, value, "", RequiredType.PLAYER, null) { }).collect(Collectors.toList()); } + } diff --git a/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/regions/plotsquared/PlotSquaredFeature.java b/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/regions/plotsquared/PlotSquaredFeature.java index 984b4d6b4..26b650570 100644 --- a/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/regions/plotsquared/PlotSquaredFeature.java +++ b/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/regions/plotsquared/PlotSquaredFeature.java @@ -69,9 +69,9 @@ public class PlotSquaredFeature extends FaweMaskManager { } UUID uid = player.getUniqueId(); return !plot.getFlag(NoWorldeditFlag.class) && (plot.isOwner(uid) || type == MaskType.MEMBER && ( - plot.getTrusted().contains(uid) || plot.getTrusted().contains(DBFunc.EVERYONE) - || (plot.getMembers().contains(uid) || plot.getMembers().contains(DBFunc.EVERYONE)) && player - .hasPermission("fawe.plotsquared.member")) || player.hasPermission("fawe.plotsquared.admin")); + plot.getTrusted().contains(uid) || plot.getTrusted().contains(DBFunc.EVERYONE) + || (plot.getMembers().contains(uid) || plot.getMembers().contains(DBFunc.EVERYONE)) && player + .hasPermission("fawe.plotsquared.member")) || player.hasPermission("fawe.plotsquared.admin")); } @Override @@ -90,7 +90,7 @@ public class PlotSquaredFeature extends FaweMaskManager { if (regions.size() == 1) { CuboidRegion region = regions.iterator().next(); if (region.getMinimumPoint().getX() == Integer.MIN_VALUE - && region.getMaximumPoint().getX() == Integer.MAX_VALUE) { + && region.getMaximumPoint().getX() == Integer.MAX_VALUE) { regions.clear(); } } @@ -116,8 +116,9 @@ public class PlotSquaredFeature extends FaweMaskManager { } else { World world = FaweAPI.getWorld(area.getWorldName()); List weRegions = regions.stream().map( - r -> new CuboidRegion(world, BlockVector3.at(r.getMinimumX(), r.getMinimumY(), r.getMinimumZ()), - BlockVector3.at(r.getMaximumX(), r.getMaximumY(), r.getMaximumZ()))).collect(Collectors.toList()); + r -> new CuboidRegion(world, BlockVector3.at(r.getMinimumX(), r.getMinimumY(), r.getMinimumZ()), + BlockVector3.at(r.getMaximumX(), r.getMaximumY(), r.getMaximumZ()) + )).collect(Collectors.toList()); maskedRegion = new RegionIntersection(world, weRegions); } @@ -140,4 +141,5 @@ public class PlotSquaredFeature extends FaweMaskManager { } return null; } + } diff --git a/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/regions/plotsquaredv4/FaweChunkManager.java b/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/regions/plotsquaredv4/FaweChunkManager.java index 9e382905a..8deb93621 100644 --- a/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/regions/plotsquaredv4/FaweChunkManager.java +++ b/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/regions/plotsquaredv4/FaweChunkManager.java @@ -23,7 +23,7 @@ import static org.bukkit.Bukkit.getWorld; public class FaweChunkManager extends ChunkManager { - private ChunkManager parent; + private final ChunkManager parent; public FaweChunkManager(ChunkManager parent) { this.parent = parent; @@ -50,7 +50,13 @@ public class FaweChunkManager extends ChunkManager { } @Override - public void swap(final Location pos1, final Location pos2, final Location pos3, final Location pos4, final Runnable whenDone) { + public void swap( + final Location pos1, + final Location pos2, + final Location pos3, + final Location pos4, + final Runnable whenDone + ) { if (!Settings.IMP.PLOTSQUARED_INTEGRATION.COPY_AND_SWAP) { parent.swap(pos1, pos2, pos3, pos4, whenDone); } @@ -60,11 +66,29 @@ public class FaweChunkManager extends ChunkManager { World pos1World = BukkitAdapter.adapt(getWorld(pos1.getWorld())); World pos3World = BukkitAdapter.adapt(getWorld(pos3.getWorld())); WorldEdit.getInstance().getEditSessionFactory().getEditSession( - pos1World,-1); - EditSession sessionA = new EditSessionBuilder(pos1World).checkMemory(false).fastmode(true).limitUnlimited().changeSetNull().autoQueue(false).build(); - EditSession sessionB = new EditSessionBuilder(pos3World).checkMemory(false).fastmode(true).limitUnlimited().changeSetNull().autoQueue(false).build(); - CuboidRegion regionA = new CuboidRegion(BlockVector3.at(pos1.getX(), pos1.getY(), pos1.getZ()), BlockVector3.at(pos2.getX(), pos2.getY(), pos2.getZ())); - CuboidRegion regionB = new CuboidRegion(BlockVector3.at(pos3.getX(), pos3.getY(), pos3.getZ()), BlockVector3.at(pos4.getX(), pos4.getY(), pos4.getZ())); + pos1World, -1); + EditSession sessionA = new EditSessionBuilder(pos1World) + .checkMemory(false) + .fastmode(true) + .limitUnlimited() + .changeSetNull() + .autoQueue(false) + .build(); + EditSession sessionB = new EditSessionBuilder(pos3World) + .checkMemory(false) + .fastmode(true) + .limitUnlimited() + .changeSetNull() + .autoQueue(false) + .build(); + CuboidRegion regionA = new CuboidRegion( + BlockVector3.at(pos1.getX(), pos1.getY(), pos1.getZ()), + BlockVector3.at(pos2.getX(), pos2.getY(), pos2.getZ()) + ); + CuboidRegion regionB = new CuboidRegion( + BlockVector3.at(pos3.getX(), pos3.getY(), pos3.getZ()), + BlockVector3.at(pos4.getX(), pos4.getY(), pos4.getZ()) + ); ForwardExtentCopy copyA = new ForwardExtentCopy(sessionA, regionA, sessionB, regionB.getMinimumPoint()); ForwardExtentCopy copyB = new ForwardExtentCopy(sessionB, regionB, sessionA, regionA.getMinimumPoint()); try { @@ -89,10 +113,30 @@ public class FaweChunkManager extends ChunkManager { synchronized (FaweChunkManager.class) { World pos1World = BukkitAdapter.adapt(getWorld(pos1.getWorld())); World pos3World = BukkitAdapter.adapt(getWorld(pos3.getWorld())); - EditSession from = new EditSessionBuilder(pos1World).checkMemory(false).fastmode(true).limitUnlimited().changeSetNull().autoQueue(false).build(); - EditSession to = new EditSessionBuilder(pos3World).checkMemory(false).fastmode(true).limitUnlimited().changeSetNull().autoQueue(false).build(); - CuboidRegion region = new CuboidRegion(BlockVector3.at(pos1.getX(), pos1.getY(), pos1.getZ()), BlockVector3.at(pos2.getX(), pos2.getY(), pos2.getZ())); - ForwardExtentCopy copy = new ForwardExtentCopy(from, region, to, BlockVector3.at(pos3.getX(), pos3.getY(), pos3.getZ())); + EditSession from = new EditSessionBuilder(pos1World) + .checkMemory(false) + .fastmode(true) + .limitUnlimited() + .changeSetNull() + .autoQueue(false) + .build(); + EditSession to = new EditSessionBuilder(pos3World) + .checkMemory(false) + .fastmode(true) + .limitUnlimited() + .changeSetNull() + .autoQueue(false) + .build(); + CuboidRegion region = new CuboidRegion( + BlockVector3.at(pos1.getX(), pos1.getY(), pos1.getZ()), + BlockVector3.at(pos2.getX(), pos2.getY(), pos2.getZ()) + ); + ForwardExtentCopy copy = new ForwardExtentCopy( + from, + region, + to, + BlockVector3.at(pos3.getX(), pos3.getY(), pos3.getZ()) + ); try { Operations.completeLegacy(copy); to.flushQueue(); @@ -111,10 +155,11 @@ public class FaweChunkManager extends ChunkManager { synchronized (FaweChunkManager.class) { World pos1World = BukkitAdapter.adapt(getWorld(pos1.getWorld())); try (EditSession editSession = new EditSessionBuilder(pos1World).checkMemory(false) - .fastmode(true).limitUnlimited().changeSetNull().autoQueue(false).build()) { + .fastmode(true).limitUnlimited().changeSetNull().autoQueue(false).build()) { CuboidRegion region = new CuboidRegion( - BlockVector3.at(pos1.getX(), pos1.getY(), pos1.getZ()), - BlockVector3.at(pos2.getX(), pos2.getY(), pos2.getZ())); + BlockVector3.at(pos1.getX(), pos1.getY(), pos1.getZ()), + BlockVector3.at(pos2.getX(), pos2.getY(), pos2.getZ()) + ); editSession.regenerate(region); editSession.flushQueue(); } @@ -123,4 +168,5 @@ public class FaweChunkManager extends ChunkManager { }); return true; } + } diff --git a/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/regions/plotsquaredv4/FaweLocalBlockQueue.java b/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/regions/plotsquaredv4/FaweLocalBlockQueue.java index 1e8e3531d..fb27c01ed 100644 --- a/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/regions/plotsquaredv4/FaweLocalBlockQueue.java +++ b/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/regions/plotsquaredv4/FaweLocalBlockQueue.java @@ -3,13 +3,13 @@ package com.fastasyncworldedit.bukkit.regions.plotsquaredv4; import com.fastasyncworldedit.core.Fawe; import com.fastasyncworldedit.core.FaweAPI; import com.fastasyncworldedit.core.FaweCache; +import com.fastasyncworldedit.core.math.MutableBlockVector3; import com.fastasyncworldedit.core.queue.IQueueChunk; import com.fastasyncworldedit.core.queue.IQueueExtent; import com.github.intellectualsites.plotsquared.plot.util.block.LocalBlockQueue; import com.sk89q.jnbt.CompoundTag; import com.sk89q.worldedit.function.pattern.Pattern; import com.sk89q.worldedit.math.BlockVector3; -import com.fastasyncworldedit.core.math.MutableBlockVector3; import com.sk89q.worldedit.world.World; import com.sk89q.worldedit.world.biome.BiomeType; import com.sk89q.worldedit.world.block.BaseBlock; @@ -20,7 +20,7 @@ public class FaweLocalBlockQueue extends LocalBlockQueue { public final IQueueExtent instance; private final World world; - private BlockVector3 mutable = new MutableBlockVector3(); + private final BlockVector3 mutable = new MutableBlockVector3(); public FaweLocalBlockQueue(String worldName) { super(worldName); @@ -127,4 +127,5 @@ public class FaweLocalBlockQueue extends LocalBlockQueue { instance.setTile(x, y, z, (com.sk89q.jnbt.CompoundTag) FaweCache.IMP.asTag(tag)); return true; } + } diff --git a/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/regions/plotsquaredv4/FaweSchematicHandler.java b/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/regions/plotsquaredv4/FaweSchematicHandler.java index 02a87e35b..bdc1e60e0 100644 --- a/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/regions/plotsquaredv4/FaweSchematicHandler.java +++ b/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/regions/plotsquaredv4/FaweSchematicHandler.java @@ -3,6 +3,9 @@ package com.fastasyncworldedit.bukkit.regions.plotsquaredv4; import com.fastasyncworldedit.core.FaweAPI; import com.fastasyncworldedit.core.FaweCache; import com.fastasyncworldedit.core.extent.clipboard.ReadOnlyClipboard; +import com.fastasyncworldedit.core.extent.clipboard.io.FastSchematicWriter; +import com.fastasyncworldedit.core.jnbt.CompressedCompoundTag; +import com.fastasyncworldedit.core.jnbt.CompressedSchematicTag; import com.fastasyncworldedit.core.util.EditSessionBuilder; import com.fastasyncworldedit.core.util.IOUtil; import com.fastasyncworldedit.core.util.TaskManager; @@ -13,8 +16,6 @@ import com.github.intellectualsites.plotsquared.plot.util.MainUtil; import com.github.intellectualsites.plotsquared.plot.util.SchematicHandler; import com.github.intellectualsites.plotsquared.plot.util.block.LocalBlockQueue; import com.sk89q.jnbt.CompoundTag; -import com.fastasyncworldedit.core.jnbt.CompressedCompoundTag; -import com.fastasyncworldedit.core.jnbt.CompressedSchematicTag; import com.sk89q.jnbt.NBTOutputStream; import com.sk89q.jnbt.Tag; import com.sk89q.worldedit.EditSession; @@ -22,7 +23,6 @@ import com.sk89q.worldedit.bukkit.BukkitAdapter; import com.sk89q.worldedit.extent.clipboard.BlockArrayClipboard; import com.sk89q.worldedit.extent.clipboard.Clipboard; import com.sk89q.worldedit.extent.clipboard.io.BuiltInClipboardFormat; -import com.fastasyncworldedit.core.extent.clipboard.io.FastSchematicWriter; import com.sk89q.worldedit.math.BlockVector3; import com.sk89q.worldedit.regions.CuboidRegion; import com.sk89q.worldedit.world.World; @@ -43,6 +43,7 @@ import java.util.UUID; import static org.bukkit.Bukkit.getWorld; public class FaweSchematicHandler extends SchematicHandler { + @Override public boolean restoreTile(LocalBlockQueue queue, CompoundTag compoundTag, int x, int y, int z) { if (queue instanceof FaweLocalBlockQueue) { @@ -59,8 +60,17 @@ public class FaweSchematicHandler extends SchematicHandler { Location pos1 = corners[0]; Location pos2 = corners[1]; World adaptedWorld = BukkitAdapter.adapt(getWorld(world)); - final CuboidRegion region = new CuboidRegion(BlockVector3.at(pos1.getX(), pos1.getY(), pos1.getZ()), BlockVector3.at(pos2.getX(), pos2.getY(), pos2.getZ())); - final EditSession editSession = new EditSessionBuilder(adaptedWorld).checkMemory(false).fastmode(true).limitUnlimited().changeSetNull().autoQueue(false).build(); + final CuboidRegion region = new CuboidRegion( + BlockVector3.at(pos1.getX(), pos1.getY(), pos1.getZ()), + BlockVector3.at(pos2.getX(), pos2.getY(), pos2.getZ()) + ); + final EditSession editSession = new EditSessionBuilder(adaptedWorld) + .checkMemory(false) + .fastmode(true) + .limitUnlimited() + .changeSetNull() + .autoQueue(false) + .build(); ReadOnlyClipboard clipboard = ReadOnlyClipboard.of(editSession, region, false, true); @@ -84,17 +94,20 @@ public class FaweSchematicHandler extends SchematicHandler { CompressedCompoundTag cTag = (CompressedCompoundTag) tag; if (cTag instanceof CompressedSchematicTag) { Clipboard clipboard = (Clipboard) cTag.getSource(); - try (OutputStream stream = new FileOutputStream(tmp); NBTOutputStream output = new NBTOutputStream(new BufferedOutputStream(new ParallelGZIPOutputStream(stream)))) { + try (OutputStream stream = new FileOutputStream(tmp); NBTOutputStream output = new NBTOutputStream(new BufferedOutputStream( + new ParallelGZIPOutputStream(stream)))) { new FastSchematicWriter(output).write(clipboard); } } else { - try (OutputStream stream = new FileOutputStream(tmp); BufferedOutputStream output = new BufferedOutputStream(new ParallelGZIPOutputStream(stream))) { + try (OutputStream stream = new FileOutputStream(tmp); BufferedOutputStream output = new BufferedOutputStream( + new ParallelGZIPOutputStream(stream))) { LZ4BlockInputStream is = cTag.adapt(cTag.getSource()); IOUtil.copy(is, stream); } } } else { - try (OutputStream stream = new FileOutputStream(tmp); NBTOutputStream output = new NBTOutputStream(new ParallelGZIPOutputStream(stream))) { + try (OutputStream stream = new FileOutputStream(tmp); NBTOutputStream output = new NBTOutputStream(new ParallelGZIPOutputStream( + stream))) { Map map = tag.getValue(); output.writeNamedTag("Schematic", map.getOrDefault("Schematic", tag)); } @@ -138,4 +151,5 @@ public class FaweSchematicHandler extends SchematicHandler { } }, whenDone); } + } diff --git a/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/regions/plotsquaredv4/FaweTrim.java b/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/regions/plotsquaredv4/FaweTrim.java index 439bbd746..0c5f02b59 100644 --- a/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/regions/plotsquaredv4/FaweTrim.java +++ b/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/regions/plotsquaredv4/FaweTrim.java @@ -26,7 +26,8 @@ public class FaweTrim extends SubCommand { return false; } if (strings.length != 2) { - plotPlayer.sendMessage("First make a backup of your world called then stand in the middle of an empty plot"); + plotPlayer.sendMessage( + "First make a backup of your world called then stand in the middle of an empty plot"); plotPlayer.sendMessage("use /plot trimall "); return false; } @@ -53,4 +54,5 @@ public class FaweTrim extends SubCommand { }); return true; } + } diff --git a/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/regions/plotsquaredv4/PlotRegionFilter.java b/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/regions/plotsquaredv4/PlotRegionFilter.java index 5043e1b1f..703a8bf8d 100644 --- a/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/regions/plotsquaredv4/PlotRegionFilter.java +++ b/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/regions/plotsquaredv4/PlotRegionFilter.java @@ -11,6 +11,7 @@ import java.util.ArrayList; import static com.google.common.base.Preconditions.checkNotNull; public class PlotRegionFilter extends CuboidRegionFilter { + private final PlotArea area; public PlotRegionFilter(PlotArea area) { @@ -27,4 +28,5 @@ public class PlotRegionFilter extends CuboidRegionFilter { add(BlockVector2.at(bottom.getX(), bottom.getZ()), BlockVector2.at(top.getX(), top.getZ())); } } + } diff --git a/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/regions/plotsquaredv4/PlotSetBiome.java b/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/regions/plotsquaredv4/PlotSetBiome.java index c0d467e24..b73ea6d5c 100644 --- a/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/regions/plotsquaredv4/PlotSetBiome.java +++ b/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/regions/plotsquaredv4/PlotSetBiome.java @@ -24,11 +24,12 @@ import com.sk89q.worldedit.world.biome.BiomeType; import com.sk89q.worldedit.world.biome.BiomeTypes; import com.sk89q.worldedit.world.biome.Biomes; import com.sk89q.worldedit.world.registry.BiomeRegistry; +import org.bukkit.Bukkit; + import java.util.Collection; import java.util.Set; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ThreadLocalRandom; -import org.bukkit.Bukkit; @CommandDeclaration( command = "generatebiome", @@ -40,29 +41,40 @@ import org.bukkit.Bukkit; usage = "/plots generatebiome " ) public class PlotSetBiome extends Command { + public PlotSetBiome() { super(MainCommand.getInstance(), true); } @Override - public CompletableFuture execute(final PlotPlayer player, String[] args, RunnableVal3 confirm, RunnableVal2 whenDone) throws CommandException { + public CompletableFuture execute( + final PlotPlayer player, + String[] args, + RunnableVal3 confirm, + RunnableVal2 whenDone + ) throws CommandException { final Plot plot = check(player.getCurrentPlot(), Captions.NOT_IN_PLOT); checkTrue(plot.isOwner(player.getUUID()) || Permissions - .hasPermission(player, "plots.admin.command.generatebiome"), Captions.NO_PLOT_PERMS); + .hasPermission(player, "plots.admin.command.generatebiome"), Captions.NO_PLOT_PERMS); if (plot.getRunning() != 0) { Captions.WAIT_FOR_TIMER.send(player); return null; } checkTrue(args.length == 1, Captions.COMMAND_SYNTAX, getUsage()); final Set regions = plot.getRegions(); - BiomeRegistry biomeRegistry = WorldEdit.getInstance().getPlatformManager().queryCapability(Capability.GAME_HOOKS).getRegistries().getBiomeRegistry(); + BiomeRegistry biomeRegistry = WorldEdit + .getInstance() + .getPlatformManager() + .queryCapability(Capability.GAME_HOOKS) + .getRegistries() + .getBiomeRegistry(); Collection knownBiomes = BiomeTypes.values(); final BiomeType biome = Biomes.findBiomeByName(knownBiomes, args[0], biomeRegistry); if (biome == null) { String biomes = StringMan .join(BiomeType.REGISTRY.values(), Captions.BLOCK_LIST_SEPARATOR.getTranslated()); Captions.NEED_BIOME.send(player); - MainUtil.sendMessage(player, Captions.SUBCOMMAND_SET_OPTIONS_HEADER.toString() + biomes); + MainUtil.sendMessage(player, Captions.SUBCOMMAND_SET_OPTIONS_HEADER + biomes); return CompletableFuture.completedFuture(false); } confirm.run(this, () -> { @@ -90,4 +102,5 @@ public class PlotSetBiome extends Command { return CompletableFuture.completedFuture(true); } + } diff --git a/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/regions/plotsquaredv4/PlotSquaredFeature.java b/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/regions/plotsquaredv4/PlotSquaredFeature.java index 9c25b5076..58536ea39 100644 --- a/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/regions/plotsquaredv4/PlotSquaredFeature.java +++ b/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/regions/plotsquaredv4/PlotSquaredFeature.java @@ -1,9 +1,9 @@ package com.fastasyncworldedit.bukkit.regions.plotsquaredv4; import com.fastasyncworldedit.core.FaweAPI; -import com.fastasyncworldedit.core.regions.RegionWrapper; import com.fastasyncworldedit.core.regions.FaweMask; import com.fastasyncworldedit.core.regions.FaweMaskManager; +import com.fastasyncworldedit.core.regions.RegionWrapper; import com.fastasyncworldedit.core.regions.filter.RegionFilter; import com.github.intellectualsites.plotsquared.plot.PlotSquared; import com.github.intellectualsites.plotsquared.plot.commands.MainCommand; @@ -97,11 +97,11 @@ public class PlotSquaredFeature extends FaweMaskManager { } UUID uid = player.getUniqueId(); return !Flags.NO_WORLDEDIT.isTrue(plot) && (plot.isOwner(uid) - || type == MaskType.MEMBER && (plot.getTrusted().contains(uid) || plot.getTrusted() - .contains(DBFunc.EVERYONE) - || (plot.getMembers().contains(uid) || plot.getMembers().contains(DBFunc.EVERYONE)) - && player.hasPermission("fawe.plotsquared.member")) || player - .hasPermission("fawe.plotsquared.admin")); + || type == MaskType.MEMBER && (plot.getTrusted().contains(uid) || plot.getTrusted() + .contains(DBFunc.EVERYONE) + || (plot.getMembers().contains(uid) || plot.getMembers().contains(DBFunc.EVERYONE)) + && player.hasPermission("fawe.plotsquared.member")) || player + .hasPermission("fawe.plotsquared.admin")); } @Override @@ -119,7 +119,9 @@ public class PlotSquaredFeature extends FaweMaskManager { regions = WEManager.getMask(pp); if (regions.size() == 1) { CuboidRegion region = regions.iterator().next(); - if (region.getMinimumPoint().getX() == Integer.MIN_VALUE && region.getMaximumPoint().getX() == Integer.MAX_VALUE) { + if (region.getMinimumPoint().getX() == Integer.MIN_VALUE && region + .getMaximumPoint() + .getX() == Integer.MAX_VALUE) { regions.clear(); } } @@ -132,7 +134,14 @@ public class PlotSquaredFeature extends FaweMaskManager { int max = area != null ? Math.min(255, area.MAX_BUILD_HEIGHT) : 255; final HashSet faweRegions = new HashSet<>(); for (CuboidRegion current : regions) { - faweRegions.add(new RegionWrapper(current.getMinimumX(), current.getMaximumX(), min, max, current.getMinimumZ(), current.getMaximumZ())); + faweRegions.add(new RegionWrapper( + current.getMinimumX(), + current.getMaximumX(), + min, + max, + current.getMinimumZ(), + current.getMaximumZ() + )); } final CuboidRegion region = regions.iterator().next(); final BlockVector3 pos1 = BlockVector3.at(region.getMinimumX(), min, region.getMinimumZ()); @@ -148,8 +157,12 @@ public class PlotSquaredFeature extends FaweMaskManager { } else { World world = FaweAPI.getWorld(area.worldname); List weRegions = regions.stream() - .map(r -> new CuboidRegion(world, BlockVector3.at(r.getMinimumX(), r.getMinimumY(), r.getMinimumZ()), BlockVector3.at(r.getMaximumX(), r.getMaximumY(), r.getMaximumZ()))) - .collect(Collectors.toList()); + .map(r -> new CuboidRegion( + world, + BlockVector3.at(r.getMinimumX(), r.getMinimumY(), r.getMinimumZ()), + BlockVector3.at(r.getMaximumX(), r.getMaximumY(), r.getMaximumZ()) + )) + .collect(Collectors.toList()); maskedRegion = new RegionIntersection(world, weRegions); } @@ -172,4 +185,5 @@ public class PlotSquaredFeature extends FaweMaskManager { } return null; } + } diff --git a/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/util/BukkitItemStack.java b/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/util/BukkitItemStack.java index 216c7f192..9ec00af76 100644 --- a/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/util/BukkitItemStack.java +++ b/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/util/BukkitItemStack.java @@ -1,8 +1,7 @@ package com.fastasyncworldedit.bukkit.util; -import com.fastasyncworldedit.core.Fawe; import com.fastasyncworldedit.bukkit.FaweBukkit; -import com.fastasyncworldedit.bukkit.util.ItemUtil; +import com.fastasyncworldedit.core.Fawe; import com.sk89q.jnbt.CompoundTag; import com.sk89q.worldedit.blocks.BaseItemStack; import com.sk89q.worldedit.bukkit.BukkitAdapter; @@ -12,6 +11,7 @@ import org.bukkit.inventory.ItemStack; import javax.annotation.Nullable; public class BukkitItemStack extends BaseItemStack { + private ItemStack stack; private Object nativeItem; private boolean loadedNBT; @@ -75,4 +75,5 @@ public class BukkitItemStack extends BaseItemStack { } super.setNbtData(nbtData); } + } diff --git a/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/util/BukkitReflectionUtils.java b/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/util/BukkitReflectionUtils.java index 1d31f3f07..6bfcfb526 100644 --- a/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/util/BukkitReflectionUtils.java +++ b/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/util/BukkitReflectionUtils.java @@ -7,6 +7,7 @@ import org.bukkit.Server; import java.lang.reflect.Method; public class BukkitReflectionUtils { + /** * Prefix of Bukkit classes. */ @@ -55,4 +56,5 @@ public class BukkitReflectionUtils { final String packageName = Bukkit.getServer().getClass().getPackage().getName(); return packageName.substring(packageName.lastIndexOf('.') + 1); } + } diff --git a/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/util/BukkitTaskManager.java b/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/util/BukkitTaskManager.java index 444d6d38f..850cd886a 100644 --- a/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/util/BukkitTaskManager.java +++ b/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/util/BukkitTaskManager.java @@ -4,6 +4,7 @@ import com.fastasyncworldedit.core.util.TaskManager; import org.apache.commons.lang.mutable.MutableInt; import org.bukkit.Bukkit; import org.bukkit.plugin.Plugin; + import javax.annotation.Nonnull; public class BukkitTaskManager extends TaskManager { @@ -52,4 +53,5 @@ public class BukkitTaskManager extends TaskManager { Bukkit.getScheduler().cancelTask(task); } } + } diff --git a/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/util/ItemUtil.java b/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/util/ItemUtil.java index 175e12b34..4810db040 100644 --- a/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/util/ItemUtil.java +++ b/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/util/ItemUtil.java @@ -1,7 +1,6 @@ package com.fastasyncworldedit.bukkit.util; import com.fastasyncworldedit.core.util.ReflectionUtils; - import com.sk89q.jnbt.CompoundTag; import com.sk89q.jnbt.Tag; import com.sk89q.worldedit.bukkit.WorldEditPlugin; @@ -39,7 +38,10 @@ public class ItemUtil { this.fieldHandle = ReflectionUtils.setAccessible(classCraftItemStack.getDeclaredField("handle")); Class classNBTTagCompound = BukkitReflectionUtils.getNmsClass("NBTTagCompound"); this.methodSetTag = ReflectionUtils.setAccessible(classNMSItem.getDeclaredMethod("setTag", classNBTTagCompound)); - this.methodAsBukkitCopy = ReflectionUtils.setAccessible(classCraftItemStack.getDeclaredMethod("asBukkitCopy", classNMSItem)); + this.methodAsBukkitCopy = ReflectionUtils.setAccessible(classCraftItemStack.getDeclaredMethod( + "asBukkitCopy", + classNMSItem + )); } public Object getNMSItem(ItemStack item) { @@ -56,7 +58,6 @@ public class ItemUtil { } - public CompoundTag getNBT(ItemStack item) { try { if (!item.hasItemMeta()) { @@ -113,4 +114,5 @@ public class ItemUtil { } return null; } + } diff --git a/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/util/MinecraftVersion.java b/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/util/MinecraftVersion.java index 129ac6bdd..43477eb72 100644 --- a/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/util/MinecraftVersion.java +++ b/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/util/MinecraftVersion.java @@ -2,6 +2,7 @@ package com.fastasyncworldedit.bukkit.util; import com.google.common.collect.ComparisonChain; import org.bukkit.Bukkit; + import javax.annotation.Nonnull; /** @@ -119,19 +120,28 @@ public class MinecraftVersion implements Comparable { @Override public boolean equals(Object o) { - if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } MinecraftVersion that = (MinecraftVersion) o; - if (getMajor() != that.getMajor()) return false; - if (getMinor() != that.getMinor()) return false; + if (getMajor() != that.getMajor()) { + return false; + } + if (getMinor() != that.getMinor()) { + return false; + } return getRelease() == that.getRelease(); } /** * Determines the server version based on the package path, e.g. {@code org.bukkit.craftbukkit.v1_16_R3}, - * where v1_16_R3 is the resolved version. + * where v1_16_R3 is the resolved version. Note: as of Minecraft 1.17, NMS is no longer versioned thus this + * method may have poor results. * * @return The package version. */ diff --git a/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/util/VaultUtil.java b/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/util/VaultUtil.java index 2a6c7b70e..512cee174 100644 --- a/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/util/VaultUtil.java +++ b/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/util/VaultUtil.java @@ -5,15 +5,17 @@ import org.bukkit.Bukkit; import org.bukkit.plugin.RegisteredServiceProvider; public class VaultUtil { + public final Permission permission; public VaultUtil() { final RegisteredServiceProvider permissionProvider = - Bukkit.getServer().getServicesManager().getRegistration(Permission.class); + Bukkit.getServer().getServicesManager().getRegistration(Permission.class); if (permissionProvider != null) { this.permission = permissionProvider.getProvider(); } else { this.permission = null; } } + } diff --git a/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/util/WorldUnloadedException.java b/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/util/WorldUnloadedException.java index 606da898d..0f22e196d 100644 --- a/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/util/WorldUnloadedException.java +++ b/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/util/WorldUnloadedException.java @@ -14,4 +14,5 @@ public class WorldUnloadedException extends WorldEditException { public WorldUnloadedException() { super(Caption.of("worldedit.error.world-unloaded")); } + } diff --git a/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/util/image/BukkitImageViewer.java b/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/util/image/BukkitImageViewer.java index b78149721..550b96641 100644 --- a/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/util/image/BukkitImageViewer.java +++ b/worldedit-bukkit/src/main/java/com/fastasyncworldedit/bukkit/util/image/BukkitImageViewer.java @@ -20,13 +20,14 @@ import org.inventivetalent.mapmanager.controller.MultiMapController; import org.inventivetalent.mapmanager.manager.MapManager; import org.inventivetalent.mapmanager.wrapper.MapWrapper; +import javax.annotation.Nullable; import java.awt.RenderingHints; import java.awt.image.BufferedImage; import java.io.IOException; import java.util.Collection; -import javax.annotation.Nullable; public class BukkitImageViewer implements ImageViewer { + private final MapManager mapManager; private final Player player; private BufferedImage last; @@ -148,7 +149,13 @@ public class BukkitImageViewer implements ImageViewer { last = image; int width = frames.length; int height = frames[0].length; - BufferedImage scaled = ImageUtil.getScaledInstance(image, 128 * width, 128 * height, RenderingHints.VALUE_INTERPOLATION_BILINEAR, false); + BufferedImage scaled = ImageUtil.getScaledInstance( + image, + 128 * width, + 128 * height, + RenderingHints.VALUE_INTERPOLATION_BILINEAR, + false + ); MapWrapper mapWrapper = mapManager.wrapMultiImage(scaled, width, height); MultiMapController controller = (MultiMapController) mapWrapper.getController(); controller.addViewer(player); @@ -169,7 +176,13 @@ public class BukkitImageViewer implements ImageViewer { image = drawable.draw(); } last = image; - BufferedImage scaled = ImageUtil.getScaledInstance(image, 128, 128, RenderingHints.VALUE_INTERPOLATION_BILINEAR, false); + BufferedImage scaled = ImageUtil.getScaledInstance( + image, + 128, + 128, + RenderingHints.VALUE_INTERPOLATION_BILINEAR, + false + ); MapWrapper mapWrapper = mapManager.wrapImage(scaled); MapController controller = mapWrapper.getController(); controller.addViewer(player); @@ -199,4 +212,5 @@ public class BukkitImageViewer implements ImageViewer { public void close() throws IOException { last = null; } + } diff --git a/worldedit-bukkit/src/main/java/com/sk89q/bukkit/util/ClassSourceValidator.java b/worldedit-bukkit/src/main/java/com/sk89q/bukkit/util/ClassSourceValidator.java index e0789e3e7..b0de56101 100644 --- a/worldedit-bukkit/src/main/java/com/sk89q/bukkit/util/ClassSourceValidator.java +++ b/worldedit-bukkit/src/main/java/com/sk89q/bukkit/util/ClassSourceValidator.java @@ -25,12 +25,12 @@ import com.sk89q.worldedit.internal.util.LogManagerCompat; import org.apache.logging.log4j.Logger; import org.bukkit.plugin.Plugin; +import javax.annotation.Nullable; import java.security.CodeSource; import java.util.HashMap; import java.util.List; import java.util.Locale; import java.util.Map; -import javax.annotation.Nullable; import static com.google.common.base.Preconditions.checkNotNull; @@ -109,7 +109,8 @@ public class ClassSourceValidator { builder.append("** the version of ").append(plugin.getName()).append(" that you downloaded, you\n"); builder.append("** will be using a broken mix of old ").append(plugin.getName()).append(" (that came\n"); builder.append("** with the plugin) and your downloaded version. THIS MAY\n"); - builder.append("** SEVERELY BREAK ").append(plugin.getName().toUpperCase(Locale.ROOT)).append(" AND ALL OF ITS FEATURES.\n"); + builder.append("** SEVERELY BREAK ").append(plugin.getName().toUpperCase(Locale.ROOT)).append( + " AND ALL OF ITS FEATURES.\n"); builder.append("**\n"); builder.append("** This may have happened because the developer is using\n"); builder.append("** the ").append(plugin.getName()).append(" API and thinks that including\n"); @@ -128,4 +129,5 @@ public class ClassSourceValidator { LOGGER.error(builder.toString()); } + } diff --git a/worldedit-bukkit/src/main/java/com/sk89q/bukkit/util/CommandInspector.java b/worldedit-bukkit/src/main/java/com/sk89q/bukkit/util/CommandInspector.java index d923d26b9..4985c9ad7 100644 --- a/worldedit-bukkit/src/main/java/com/sk89q/bukkit/util/CommandInspector.java +++ b/worldedit-bukkit/src/main/java/com/sk89q/bukkit/util/CommandInspector.java @@ -29,4 +29,5 @@ public interface CommandInspector { String getFullText(Command command); boolean testPermission(CommandSender sender, Command command); + } diff --git a/worldedit-bukkit/src/main/java/com/sk89q/bukkit/util/CommandRegistration.java b/worldedit-bukkit/src/main/java/com/sk89q/bukkit/util/CommandRegistration.java index c436b4210..eff09ffac 100644 --- a/worldedit-bukkit/src/main/java/com/sk89q/bukkit/util/CommandRegistration.java +++ b/worldedit-bukkit/src/main/java/com/sk89q/bukkit/util/CommandRegistration.java @@ -37,8 +37,10 @@ import java.util.Set; public class CommandRegistration { static { - Bukkit.getServer().getHelpMap().registerHelpTopicFactory(DynamicPluginCommand.class, - new DynamicPluginCommandHelpTopic.Factory()); + Bukkit.getServer().getHelpMap().registerHelpTopicFactory( + DynamicPluginCommand.class, + new DynamicPluginCommandHelpTopic.Factory() + ); } protected final Plugin plugin; @@ -72,8 +74,14 @@ public class CommandRegistration { return false; } for (CommandInfo command : registered) { - DynamicPluginCommand cmd = new DynamicPluginCommand(command.getAliases(), - command.getDesc(), "/" + command.getAliases()[0] + " " + command.getUsage(), executor, command.getRegisteredWith(), plugin); + DynamicPluginCommand cmd = new DynamicPluginCommand( + command.getAliases(), + command.getDesc(), + "/" + command.getAliases()[0] + " " + command.getUsage(), + executor, + command.getRegisteredWith(), + plugin + ); cmd.setPermissions(command.getPermissions()); commandMap.register(plugin.getDescription().getName(), cmd); } @@ -91,7 +99,7 @@ public class CommandRegistration { CommandMap commandMap = ReflectionUtil.getField(plugin.getServer().getPluginManager(), "commandMap"); if (commandMap == null) { Bukkit.getServer().getLogger().severe(plugin.getDescription().getName() - + ": Could not retrieve server CommandMap, using fallback instead!"); + + ": Could not retrieve server CommandMap, using fallback instead!"); fallbackCommands = commandMap = new SimpleCommandMap(Bukkit.getServer()); Bukkit.getServer().getPluginManager().registerEvents(new FallbackRegistrationListener(fallbackCommands), plugin); } else { @@ -108,7 +116,7 @@ public class CommandRegistration { if (knownCommands == null || aliases == null) { return false; } - for (Iterator i = knownCommands.values().iterator(); i.hasNext();) { + for (Iterator i = knownCommands.values().iterator(); i.hasNext(); ) { org.bukkit.command.Command cmd = i.next(); if (cmd instanceof DynamicPluginCommand && ((DynamicPluginCommand) cmd).getOwner().equals(executor)) { i.remove(); diff --git a/worldedit-bukkit/src/main/java/com/sk89q/bukkit/util/CommandsManagerRegistration.java b/worldedit-bukkit/src/main/java/com/sk89q/bukkit/util/CommandsManagerRegistration.java index 6e8c38625..e774bd269 100644 --- a/worldedit-bukkit/src/main/java/com/sk89q/bukkit/util/CommandsManagerRegistration.java +++ b/worldedit-bukkit/src/main/java/com/sk89q/bukkit/util/CommandsManagerRegistration.java @@ -69,7 +69,13 @@ public class CommandsManagerRegistration extends CommandRegistration { } } - toRegister.add(new CommandInfo(command.usage(), command.desc(), command.aliases(), commands, permissions == null ? null : permissions.toArray(new String[permissions.size()]))); + toRegister.add(new CommandInfo( + command.usage(), + command.desc(), + command.aliases(), + commands, + permissions == null ? null : permissions.toArray(new String[permissions.size()]) + )); } return register(toRegister); diff --git a/worldedit-bukkit/src/main/java/com/sk89q/bukkit/util/DynamicPluginCommand.java b/worldedit-bukkit/src/main/java/com/sk89q/bukkit/util/DynamicPluginCommand.java index 7ef29a06a..046222d6d 100644 --- a/worldedit-bukkit/src/main/java/com/sk89q/bukkit/util/DynamicPluginCommand.java +++ b/worldedit-bukkit/src/main/java/com/sk89q/bukkit/util/DynamicPluginCommand.java @@ -33,8 +33,8 @@ import java.util.Arrays; import java.util.List; /** -* An implementation of a dynamically registered {@link org.bukkit.command.Command} attached to a plugin. -*/ + * An implementation of a dynamically registered {@link org.bukkit.command.Command} attached to a plugin. + */ @SuppressWarnings("deprecation") public class DynamicPluginCommand extends org.bukkit.command.Command implements PluginIdentifiableCommand { @@ -43,7 +43,14 @@ public class DynamicPluginCommand extends org.bukkit.command.Command implements protected final Plugin owningPlugin; protected String[] permissions = new String[0]; - public DynamicPluginCommand(String[] aliases, String desc, String usage, CommandExecutor owner, Object registeredWith, Plugin plugin) { + public DynamicPluginCommand( + String[] aliases, + String desc, + String usage, + CommandExecutor owner, + Object registeredWith, + Plugin plugin + ) { super(aliases[0], desc, usage, Arrays.asList(aliases)); this.owner = owner; this.owningPlugin = plugin; @@ -118,4 +125,5 @@ public class DynamicPluginCommand extends org.bukkit.command.Command implements } return super.testPermissionSilent(sender); } + } diff --git a/worldedit-bukkit/src/main/java/com/sk89q/bukkit/util/DynamicPluginCommandHelpTopic.java b/worldedit-bukkit/src/main/java/com/sk89q/bukkit/util/DynamicPluginCommandHelpTopic.java index 9ce9c9ce6..e160436ee 100644 --- a/worldedit-bukkit/src/main/java/com/sk89q/bukkit/util/DynamicPluginCommandHelpTopic.java +++ b/worldedit-bukkit/src/main/java/com/sk89q/bukkit/util/DynamicPluginCommandHelpTopic.java @@ -139,10 +139,12 @@ public class DynamicPluginCommandHelpTopic extends HelpTopic { } public static class Factory implements HelpTopicFactory { + @Override public HelpTopic createTopic(DynamicPluginCommand command) { return new DynamicPluginCommandHelpTopic(command); } + } } diff --git a/worldedit-bukkit/src/main/java/com/sk89q/wepif/ConfigurationPermissionsResolver.java b/worldedit-bukkit/src/main/java/com/sk89q/wepif/ConfigurationPermissionsResolver.java index fbe724f18..c016137b6 100644 --- a/worldedit-bukkit/src/main/java/com/sk89q/wepif/ConfigurationPermissionsResolver.java +++ b/worldedit-bukkit/src/main/java/com/sk89q/wepif/ConfigurationPermissionsResolver.java @@ -31,6 +31,7 @@ import java.util.Map; import java.util.Set; public class ConfigurationPermissionsResolver implements PermissionsResolver { + private final YAMLProcessor config; private final Map> userPermissionsCache = new HashMap<>(); private final Set defaultPermissionsCache = new HashSet<>(); @@ -41,14 +42,14 @@ public class ConfigurationPermissionsResolver implements PermissionsResolver { } public static YAMLNode generateDefaultPerms(YAMLNode section) { - section.setProperty("groups.default.permissions", new String[] { - "worldedit.reload", - "worldedit.selection", - "worlds.creative.worldedit.region" + section.setProperty("groups.default.permissions", new String[]{ + "worldedit.reload", + "worldedit.selection", + "worlds.creative.worldedit.region" }); - section.setProperty("groups.admins.permissions", new String[] { "*" }); - section.setProperty("users.sk89q.permissions", new String[] { "worldedit" }); - section.setProperty("users.sk89q.groups", new String[] { "admins" }); + section.setProperty("groups.admins.permissions", new String[]{"*"}); + section.setProperty("users.sk89q.permissions", new String[]{"worldedit"}); + section.setProperty("users.sk89q.groups", new String[]{"admins"}); return section; } diff --git a/worldedit-bukkit/src/main/java/com/sk89q/wepif/DinnerPermsResolver.java b/worldedit-bukkit/src/main/java/com/sk89q/wepif/DinnerPermsResolver.java index f301de0ef..1cc082d9c 100644 --- a/worldedit-bukkit/src/main/java/com/sk89q/wepif/DinnerPermsResolver.java +++ b/worldedit-bukkit/src/main/java/com/sk89q/wepif/DinnerPermsResolver.java @@ -174,4 +174,5 @@ public class DinnerPermsResolver implements PermissionsResolver { public String getDetectionMessage() { return "Using the Bukkit Permissions API."; } + } diff --git a/worldedit-bukkit/src/main/java/com/sk89q/wepif/FlatFilePermissionsResolver.java b/worldedit-bukkit/src/main/java/com/sk89q/wepif/FlatFilePermissionsResolver.java index 9c30f8715..15dca3e5e 100644 --- a/worldedit-bukkit/src/main/java/com/sk89q/wepif/FlatFilePermissionsResolver.java +++ b/worldedit-bukkit/src/main/java/com/sk89q/wepif/FlatFilePermissionsResolver.java @@ -20,10 +20,11 @@ package com.sk89q.wepif; import com.sk89q.util.yaml.YAMLProcessor; -import org.bukkit.OfflinePlayer; -import org.bukkit.Server; import com.sk89q.worldedit.internal.util.LogManagerCompat; import org.apache.logging.log4j.Logger; +import org.bukkit.OfflinePlayer; +import org.bukkit.Server; + import java.io.BufferedReader; import java.io.File; import java.io.FileReader; @@ -123,7 +124,7 @@ public class FlatFilePermissionsResolver implements PermissionsResolver { defaultPermissionsCache = userGroupPermissions.get("default"); } - BufferedReader buff = null; + BufferedReader buff = null; try { FileReader input = new FileReader(this.userFile); diff --git a/worldedit-bukkit/src/main/java/com/sk89q/wepif/GroupManagerResolver.java b/worldedit-bukkit/src/main/java/com/sk89q/wepif/GroupManagerResolver.java index 40731d0bd..0784d562c 100644 --- a/worldedit-bukkit/src/main/java/com/sk89q/wepif/GroupManagerResolver.java +++ b/worldedit-bukkit/src/main/java/com/sk89q/wepif/GroupManagerResolver.java @@ -28,6 +28,7 @@ import org.bukkit.World; import org.bukkit.permissions.Permissible; public class GroupManagerResolver extends DinnerPermsResolver { + private final WorldsHolder worldsHolder; public static PermissionsResolver factory(Server server, YAMLProcessor config) { @@ -128,4 +129,5 @@ public class GroupManagerResolver extends DinnerPermsResolver { public String getDetectionMessage() { return "GroupManager detected! Using GroupManager for permissions."; } + } diff --git a/worldedit-bukkit/src/main/java/com/sk89q/wepif/NijiPermissionsResolver.java b/worldedit-bukkit/src/main/java/com/sk89q/wepif/NijiPermissionsResolver.java index bf5a15d81..42b327702 100644 --- a/worldedit-bukkit/src/main/java/com/sk89q/wepif/NijiPermissionsResolver.java +++ b/worldedit-bukkit/src/main/java/com/sk89q/wepif/NijiPermissionsResolver.java @@ -134,7 +134,7 @@ public class NijiPermissionsResolver implements PermissionsResolver { } catch (Throwable t) { String group = Permissions.Security.getGroup(player.getWorld().getName(), player.getName()); if (group != null) { - groups = new String[] { group }; + groups = new String[]{group}; } } if (groups == null) { diff --git a/worldedit-bukkit/src/main/java/com/sk89q/wepif/PermissionsExResolver.java b/worldedit-bukkit/src/main/java/com/sk89q/wepif/PermissionsExResolver.java index d7e1ae407..bc6104fc9 100644 --- a/worldedit-bukkit/src/main/java/com/sk89q/wepif/PermissionsExResolver.java +++ b/worldedit-bukkit/src/main/java/com/sk89q/wepif/PermissionsExResolver.java @@ -27,6 +27,7 @@ import ru.tehkode.permissions.PermissionManager; import ru.tehkode.permissions.PermissionUser; public class PermissionsExResolver extends DinnerPermsResolver { + private final PermissionManager manager; public static PermissionsResolver factory(Server server, YAMLProcessor config) { @@ -90,4 +91,5 @@ public class PermissionsExResolver extends DinnerPermsResolver { public String getDetectionMessage() { return "PermissionsEx detected! Using PermissionsEx for permissions."; } + } diff --git a/worldedit-bukkit/src/main/java/com/sk89q/wepif/PermissionsProvider.java b/worldedit-bukkit/src/main/java/com/sk89q/wepif/PermissionsProvider.java index 0ca23ef3e..3485034b9 100644 --- a/worldedit-bukkit/src/main/java/com/sk89q/wepif/PermissionsProvider.java +++ b/worldedit-bukkit/src/main/java/com/sk89q/wepif/PermissionsProvider.java @@ -22,6 +22,7 @@ package com.sk89q.wepif; import org.bukkit.OfflinePlayer; public interface PermissionsProvider { + boolean hasPermission(String name, String permission); boolean hasPermission(String worldName, String name, String permission); @@ -37,4 +38,5 @@ public interface PermissionsProvider { boolean inGroup(OfflinePlayer player, String group); String[] getGroups(OfflinePlayer player); + } diff --git a/worldedit-bukkit/src/main/java/com/sk89q/wepif/PermissionsResolver.java b/worldedit-bukkit/src/main/java/com/sk89q/wepif/PermissionsResolver.java index dd083d734..20a4d89f6 100644 --- a/worldedit-bukkit/src/main/java/com/sk89q/wepif/PermissionsResolver.java +++ b/worldedit-bukkit/src/main/java/com/sk89q/wepif/PermissionsResolver.java @@ -20,7 +20,9 @@ package com.sk89q.wepif; public interface PermissionsResolver extends PermissionsProvider { + void load(); String getDetectionMessage(); + } diff --git a/worldedit-bukkit/src/main/java/com/sk89q/wepif/PermissionsResolverManager.java b/worldedit-bukkit/src/main/java/com/sk89q/wepif/PermissionsResolverManager.java index d9a80dd53..b7e1d0f4f 100644 --- a/worldedit-bukkit/src/main/java/com/sk89q/wepif/PermissionsResolverManager.java +++ b/worldedit-bukkit/src/main/java/com/sk89q/wepif/PermissionsResolverManager.java @@ -41,23 +41,23 @@ import java.util.List; public class PermissionsResolverManager implements PermissionsResolver { private static final String CONFIG_HEADER = "#\r\n" - + "# WEPIF Configuration File\r\n" - + "#\r\n" - + "# This file handles permissions configuration for every plugin using WEPIF\r\n" - + "#\r\n" - + "# About editing this file:\r\n" - + "# - DO NOT USE TABS. You MUST use spaces or Bukkit will complain. If\r\n" - + "# you use an editor like Notepad++ (recommended for Windows users), you\r\n" - + "# must configure it to \"replace tabs with spaces.\" In Notepad++, this can\r\n" - + "# be changed in Settings > Preferences > Language Menu.\r\n" - + "# - Don't get rid of the indents. They are indented so some entries are\r\n" - + "# in categories (like \"enforce-single-session\" is in the \"protection\"\r\n" - + "# category.\r\n" - + "# - If you want to check the format of this file before putting it\r\n" - + "# into WEPIF, paste it into https://yaml-online-parser.appspot.com/\r\n" - + "# and see if it gives \"ERROR:\".\r\n" - + "# - Lines starting with # are comments and so they are ignored.\r\n" - + "\r\n"; + + "# WEPIF Configuration File\r\n" + + "#\r\n" + + "# This file handles permissions configuration for every plugin using WEPIF\r\n" + + "#\r\n" + + "# About editing this file:\r\n" + + "# - DO NOT USE TABS. You MUST use spaces or Bukkit will complain. If\r\n" + + "# you use an editor like Notepad++ (recommended for Windows users), you\r\n" + + "# must configure it to \"replace tabs with spaces.\" In Notepad++, this can\r\n" + + "# be changed in Settings > Preferences > Language Menu.\r\n" + + "# - Don't get rid of the indents. They are indented so some entries are\r\n" + + "# in categories (like \"enforce-single-session\" is in the \"protection\"\r\n" + + "# category.\r\n" + + "# - If you want to check the format of this file before putting it\r\n" + + "# into WEPIF, paste it into https://yaml-online-parser.appspot.com/\r\n" + + "# and see if it gives \"ERROR:\".\r\n" + + "# - Lines starting with # are comments and so they are ignored.\r\n" + + "\r\n"; private static final Logger LOGGER = LogManagerCompat.getLogger(); @@ -86,15 +86,15 @@ public class PermissionsResolverManager implements PermissionsResolver { private final List> enabledResolvers = new ArrayList<>(); @SuppressWarnings("unchecked") - protected Class[] availableResolvers = new Class[] { - PluginPermissionsResolver.class, - PermissionsExResolver.class, - bPermissionsResolver.class, - GroupManagerResolver.class, - NijiPermissionsResolver.class, - VaultResolver.class, - DinnerPermsResolver.class, - FlatFilePermissionsResolver.class + protected Class[] availableResolvers = new Class[]{ + PluginPermissionsResolver.class, + PermissionsExResolver.class, + bPermissionsResolver.class, + GroupManagerResolver.class, + NijiPermissionsResolver.class, + VaultResolver.class, + DinnerPermsResolver.class, + FlatFilePermissionsResolver.class }; protected PermissionsResolverManager(Plugin plugin) { @@ -221,7 +221,7 @@ public class PermissionsResolverManager implements PermissionsResolver { } else { List disabledResolvers = config.getStringList("resolvers.disabled", new ArrayList<>()); List stagedEnabled = config.getStringList("resolvers.enabled", null); - for (Iterator i = stagedEnabled.iterator(); i.hasNext();) { + for (Iterator i = stagedEnabled.iterator(); i.hasNext(); ) { String nextName = i.next(); Class next = null; try { @@ -242,11 +242,11 @@ public class PermissionsResolverManager implements PermissionsResolver { for (Class clazz : availableResolvers) { if (!stagedEnabled.contains(clazz.getSimpleName()) - && !disabledResolvers.contains(clazz.getSimpleName())) { + && !disabledResolvers.contains(clazz.getSimpleName())) { disabledResolvers.add(clazz.getSimpleName()); LOGGER.info("New permissions resolver: " - + clazz.getSimpleName() + " detected. " - + "Added to disabled resolvers list."); + + clazz.getSimpleName() + " detected. " + + "Added to disabled resolvers list."); isUpdated = true; } } @@ -272,9 +272,11 @@ public class PermissionsResolverManager implements PermissionsResolver { } public static class MissingPluginException extends Exception { + } class ServerListener implements org.bukkit.event.Listener { + @EventHandler public void onPluginEnable(PluginEnableEvent event) { Plugin plugin = event.getPlugin(); @@ -303,6 +305,7 @@ public class PermissionsResolverManager implements PermissionsResolver { void register(Plugin plugin) { plugin.getServer().getPluginManager().registerEvents(this, plugin); } + } } diff --git a/worldedit-bukkit/src/main/java/com/sk89q/wepif/PluginPermissionsResolver.java b/worldedit-bukkit/src/main/java/com/sk89q/wepif/PluginPermissionsResolver.java index 062608c37..987627cf1 100644 --- a/worldedit-bukkit/src/main/java/com/sk89q/wepif/PluginPermissionsResolver.java +++ b/worldedit-bukkit/src/main/java/com/sk89q/wepif/PluginPermissionsResolver.java @@ -32,7 +32,8 @@ public class PluginPermissionsResolver implements PermissionsResolver { public static PermissionsResolver factory(Server server, YAMLProcessor config) { // Looking for service - RegisteredServiceProvider serviceProvider = server.getServicesManager().getRegistration(PermissionsProvider.class); + RegisteredServiceProvider serviceProvider = server.getServicesManager().getRegistration( + PermissionsProvider.class); if (serviceProvider != null) { return new PluginPermissionsResolver(serviceProvider.getProvider(), serviceProvider.getPlugin()); diff --git a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitAdapter.java b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitAdapter.java index b051a48cc..41e7e7294 100644 --- a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitAdapter.java +++ b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitAdapter.java @@ -19,11 +19,11 @@ package com.sk89q.worldedit.bukkit; +import com.fastasyncworldedit.bukkit.adapter.IBukkitAdapter; +import com.fastasyncworldedit.bukkit.adapter.SimpleBukkitAdapter; import com.sk89q.worldedit.WorldEditException; import com.sk89q.worldedit.blocks.BaseItemStack; import com.sk89q.worldedit.bukkit.adapter.BukkitImplAdapter; -import com.fastasyncworldedit.bukkit.adapter.IBukkitAdapter; -import com.fastasyncworldedit.bukkit.adapter.SimpleBukkitAdapter; import com.sk89q.worldedit.entity.Entity; import com.sk89q.worldedit.extension.input.ParserContext; import com.sk89q.worldedit.extension.platform.Actor; @@ -49,9 +49,9 @@ import org.bukkit.block.data.BlockData; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; + import javax.annotation.Nonnull; import javax.annotation.Nullable; - import java.util.EnumMap; import java.util.HashMap; import java.util.Map; @@ -89,7 +89,7 @@ public enum BukkitAdapter { * Checks equality between a WorldEdit BlockType and a Bukkit Material. * * @param blockType The WorldEdit BlockType - * @param type The Bukkit Material + * @param type The Bukkit Material * @return If they are equal */ public static boolean equals(BlockType blockType, Material type) { @@ -184,11 +184,16 @@ public enum BukkitAdapter { return null; } switch (face) { - case NORTH: return Direction.NORTH; - case SOUTH: return Direction.SOUTH; - case WEST: return Direction.WEST; - case EAST: return Direction.EAST; - case DOWN: return Direction.DOWN; + case NORTH: + return Direction.NORTH; + case SOUTH: + return Direction.SOUTH; + case WEST: + return Direction.WEST; + case EAST: + return Direction.EAST; + case DOWN: + return Direction.DOWN; case UP: default: return Direction.UP; @@ -220,7 +225,8 @@ public enum BukkitAdapter { adapt(location.getWorld()), position, location.getYaw(), - location.getPitch()); + location.getPitch() + ); } /** @@ -236,13 +242,14 @@ public enum BukkitAdapter { adapt((World) location.getExtent()), position.getX(), position.getY(), position.getZ(), location.getYaw(), - location.getPitch()); + location.getPitch() + ); } /** * Create a Bukkit location from a WorldEdit position with a Bukkit world. * - * @param world the Bukkit world + * @param world the Bukkit world * @param position the WorldEdit position * @return a Bukkit location */ @@ -251,13 +258,14 @@ public enum BukkitAdapter { checkNotNull(position); return new org.bukkit.Location( world, - position.getX(), position.getY(), position.getZ()); + position.getX(), position.getY(), position.getZ() + ); } /** * Create a Bukkit location from a WorldEdit position with a Bukkit world. * - * @param world the Bukkit world + * @param world the Bukkit world * @param position the WorldEdit position * @return a Bukkit location */ @@ -266,13 +274,14 @@ public enum BukkitAdapter { checkNotNull(position); return new org.bukkit.Location( world, - position.getX(), position.getY(), position.getZ()); + position.getX(), position.getY(), position.getZ() + ); } /** * Create a Bukkit location from a WorldEdit location with a Bukkit world. * - * @param world the Bukkit world + * @param world the Bukkit world * @param location the WorldEdit location * @return a Bukkit location */ @@ -283,7 +292,8 @@ public enum BukkitAdapter { world, location.getX(), location.getY(), location.getZ(), location.getYaw(), - location.getPitch()); + location.getPitch() + ); } /** @@ -392,8 +402,8 @@ public enum BukkitAdapter { //FAWE end } - private static EnumMap materialBlockTypeCache = new EnumMap<>(Material.class); - private static EnumMap materialItemTypeCache = new EnumMap<>(Material.class); + private static final EnumMap materialBlockTypeCache = new EnumMap<>(Material.class); + private static final EnumMap materialItemTypeCache = new EnumMap<>(Material.class); /** * Converts a Material to a BlockType. @@ -421,8 +431,8 @@ public enum BukkitAdapter { //FAWE end } - private static Int2ObjectMap blockStateCache = new Int2ObjectOpenHashMap<>(); - private static Map blockStateStringCache = new HashMap<>(); + private static final Int2ObjectMap blockStateCache = new Int2ObjectOpenHashMap<>(); + private static final Map blockStateStringCache = new HashMap<>(); /** * Create a WorldEdit BlockState from a Bukkit BlockData. @@ -436,7 +446,7 @@ public enum BukkitAdapter { //FAWE end } - private static Int2ObjectMap blockDataCache = new Int2ObjectOpenHashMap<>(); + private static final Int2ObjectMap blockDataCache = new Int2ObjectOpenHashMap<>(); /** * Create a Bukkit BlockData from a WorldEdit BlockStateHolder. diff --git a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitBiomeRegistry.java b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitBiomeRegistry.java index 5bccb3283..f78e1ae6a 100644 --- a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitBiomeRegistry.java +++ b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitBiomeRegistry.java @@ -40,7 +40,7 @@ class BukkitBiomeRegistry implements BiomeRegistry { @Override public Component getRichName(BiomeType biomeType) { return TranslatableComponent.of( - TranslationManager.makeTranslationKey("biome", biomeType.getId()) + TranslationManager.makeTranslationKey("biome", biomeType.getId()) ); } diff --git a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitBlockCategoryRegistry.java b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitBlockCategoryRegistry.java index f139e2ccd..320f36107 100644 --- a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitBlockCategoryRegistry.java +++ b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitBlockCategoryRegistry.java @@ -39,8 +39,9 @@ public class BukkitBlockCategoryRegistry implements BlockCategoryRegistry { public Set getCategorisedByName(String category) { String[] split = category.split(":"); String namespace = split.length > 1 ? split[0] : "minecraft"; - String key = split.length > 1 ? split[1] : category; + String key = split.length > 1 ? split[1] : category; Tag tag = Bukkit.getTag(Tag.REGISTRY_BLOCKS, new NamespacedKey(namespace, key), Material.class); return getFromBukkitTag(tag); } + } diff --git a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitBlockCommandSender.java b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitBlockCommandSender.java index 378930da8..b4a46c2a7 100644 --- a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitBlockCommandSender.java +++ b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitBlockCommandSender.java @@ -33,10 +33,8 @@ import com.sk89q.worldedit.util.formatting.text.adapter.bukkit.TextAdapter; import com.sk89q.worldedit.util.formatting.text.format.TextColor; import org.bukkit.Bukkit; import org.bukkit.Material; -import org.bukkit.World; import org.bukkit.block.Block; import org.bukkit.command.BlockCommandSender; -import javax.annotation.Nonnull; import java.nio.charset.StandardCharsets; import java.util.Locale; @@ -192,11 +190,13 @@ public class BukkitBlockCommandSender extends AbstractNonPlayerActor implements updateActive(); } else { // we should update it eventually - Bukkit.getScheduler().callSyncMethod(plugin, + Bukkit.getScheduler().callSyncMethod( + plugin, () -> { updateActive(); return null; - }); + } + ); } return active; } @@ -212,4 +212,5 @@ public class BukkitBlockCommandSender extends AbstractNonPlayerActor implements } }; } + } diff --git a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitBlockRegistry.java b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitBlockRegistry.java index f8c73ca8a..5b7e22686 100644 --- a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitBlockRegistry.java +++ b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitBlockRegistry.java @@ -20,8 +20,8 @@ package com.sk89q.worldedit.bukkit; import com.sk89q.worldedit.bukkit.adapter.BukkitImplAdapter; -import com.sk89q.worldedit.util.formatting.text.Component; import com.sk89q.worldedit.registry.state.Property; +import com.sk89q.worldedit.util.formatting.text.Component; import com.sk89q.worldedit.world.block.BlockState; import com.sk89q.worldedit.world.block.BlockType; import com.sk89q.worldedit.world.registry.BlockMaterial; @@ -30,11 +30,11 @@ import com.sk89q.worldedit.world.registry.PassthroughBlockMaterial; import org.bukkit.Material; import org.bukkit.block.data.BlockData; +import javax.annotation.Nullable; import java.util.ArrayList; import java.util.Collection; import java.util.Map; import java.util.OptionalInt; -import javax.annotation.Nullable; public class BukkitBlockRegistry extends BundledBlockRegistry { @@ -144,6 +144,7 @@ public class BukkitBlockRegistry extends BundledBlockRegistry { public boolean isTranslucent() { return material.isTransparent(); } + } //FAWE start diff --git a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitCommandInspector.java b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitCommandInspector.java index b192b3ac0..de0c2c254 100644 --- a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitCommandInspector.java +++ b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitCommandInspector.java @@ -77,11 +77,12 @@ class BukkitCommandInspector implements CommandInspector { if (mapping.isPresent()) { InjectedValueStore store = MapBackedValueStore.create(); store.injectValue(Key.of(Actor.class), context -> - Optional.of(plugin.wrapCommandSender(sender))); + Optional.of(plugin.wrapCommandSender(sender))); return mapping.get().getCondition().satisfied(store); } else { LOGGER.warn("BukkitCommandInspector doesn't know how about the command '" + command + "'"); return false; } } + } diff --git a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitCommandSender.java b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitCommandSender.java index 63a068ba8..17170d9a6 100644 --- a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitCommandSender.java +++ b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitCommandSender.java @@ -30,9 +30,9 @@ import org.bukkit.command.CommandSender; import org.bukkit.entity.Entity; import org.bukkit.entity.Player; +import javax.annotation.Nullable; import java.util.Locale; import java.util.UUID; -import javax.annotation.Nullable; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkNotNull; @@ -114,7 +114,8 @@ public class BukkitCommandSender extends AbstractNonPlayerActor { } //FAWE start - @Override public void setPermission(String permission, boolean value) { + @Override + public void setPermission(String permission, boolean value) { } //FAWE end @@ -162,4 +163,5 @@ public class BukkitCommandSender extends AbstractNonPlayerActor { } }; } + } diff --git a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitConfiguration.java b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitConfiguration.java index a1d09ee55..07f2d54c0 100644 --- a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitConfiguration.java +++ b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitConfiguration.java @@ -34,7 +34,8 @@ public class BukkitConfiguration extends YAMLConfiguration { public boolean noOpPermissions = false; public boolean commandBlockSupport = false; - @Unreported private final WorldEditPlugin plugin; + @Unreported + private final WorldEditPlugin plugin; public BukkitConfiguration(YAMLProcessor config, WorldEditPlugin plugin) { super(config, LogManager.getLogger(plugin.getLogger().getName())); @@ -72,4 +73,5 @@ public class BukkitConfiguration extends YAMLConfiguration { public Path getWorkingDirectoryPath() { return plugin.getDataFolder().toPath(); } + } diff --git a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitEntity.java b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitEntity.java index 3baa0a703..b97fc99db 100644 --- a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitEntity.java +++ b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitEntity.java @@ -27,12 +27,10 @@ import com.sk89q.worldedit.entity.metadata.EntityProperties; import com.sk89q.worldedit.extent.Extent; import com.sk89q.worldedit.util.Location; import com.sk89q.worldedit.world.NullWorld; -import com.sk89q.worldedit.world.entity.EntityTypes; import org.bukkit.entity.EntityType; -import java.lang.ref.WeakReference; -import java.util.Locale; import javax.annotation.Nullable; +import java.lang.ref.WeakReference; import static com.google.common.base.Preconditions.checkNotNull; @@ -136,4 +134,5 @@ public class BukkitEntity implements Entity { return null; } } + } diff --git a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitEntityProperties.java b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitEntityProperties.java index 7e9e785f7..28ef9274a 100644 --- a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitEntityProperties.java +++ b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitEntityProperties.java @@ -170,4 +170,5 @@ class BukkitEntityProperties implements EntityProperties { public boolean isWaterCreature() { return entity instanceof WaterMob; } + } diff --git a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitItemCategoryRegistry.java b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitItemCategoryRegistry.java index b852cb46e..fd383c9db 100644 --- a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitItemCategoryRegistry.java +++ b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitItemCategoryRegistry.java @@ -39,8 +39,9 @@ public class BukkitItemCategoryRegistry implements ItemCategoryRegistry { public Set getCategorisedByName(String category) { String[] split = category.split(":"); String namespace = split.length > 1 ? split[0] : "minecraft"; - String key = split.length > 1 ? split[1] : category; + String key = split.length > 1 ? split[1] : category; Tag tag = Bukkit.getTag(Tag.REGISTRY_ITEMS, new NamespacedKey(namespace, key), Material.class); return getFromBukkitTag(tag); } + } diff --git a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitItemRegistry.java b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitItemRegistry.java index 5cb09fe48..a24db98b6 100644 --- a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitItemRegistry.java +++ b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitItemRegistry.java @@ -29,6 +29,7 @@ import java.util.ArrayList; import java.util.Collection; class BukkitItemRegistry extends BundledItemRegistry { + @Override public Component getRichName(ItemType itemType) { if (WorldEditPlugin.getInstance().getBukkitImplAdapter() != null) { diff --git a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitPlayer.java b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitPlayer.java index bb0b3aaa7..a4b5530e8 100644 --- a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitPlayer.java +++ b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitPlayer.java @@ -21,8 +21,8 @@ package com.sk89q.worldedit.bukkit; import com.fastasyncworldedit.core.configuration.Caption; import com.fastasyncworldedit.core.configuration.Settings; -import com.fastasyncworldedit.core.util.task.RunnableVal; import com.fastasyncworldedit.core.util.TaskManager; +import com.fastasyncworldedit.core.util.task.RunnableVal; import com.sk89q.util.StringUtil; import com.sk89q.wepif.VaultResolver; import com.sk89q.worldedit.WorldEdit; @@ -63,14 +63,14 @@ import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.PlayerInventory; import org.bukkit.permissions.PermissionAttachment; +import javax.annotation.Nonnull; +import javax.annotation.Nullable; import java.nio.charset.StandardCharsets; import java.util.HashMap; import java.util.Locale; import java.util.Map; import java.util.UUID; import java.util.concurrent.ConcurrentHashMap; -import javax.annotation.Nonnull; -import javax.annotation.Nullable; public class BukkitPlayer extends AbstractPlayerActor { @@ -236,7 +236,14 @@ public class BukkitPlayer extends AbstractPlayerActor { } org.bukkit.World finalWorld = world; //FAWE end - return TaskManager.IMP.sync(() -> player.teleport(new Location(finalWorld, pos.getX(), pos.getY(), pos.getZ(), yaw, pitch))); + return TaskManager.IMP.sync(() -> player.teleport(new Location( + finalWorld, + pos.getX(), + pos.getY(), + pos.getZ(), + yaw, + pitch + ))); } @Override @@ -263,7 +270,7 @@ public class BukkitPlayer extends AbstractPlayerActor { public boolean hasPermission(String perm) { return (!plugin.getLocalConfiguration().noOpPermissions && player.isOp()) || plugin.getPermissionsResolver().hasPermission( - player.getWorld().getName(), player, perm); + player.getWorld().getName(), player, perm); } //FAWE start @@ -333,7 +340,8 @@ public class BukkitPlayer extends AbstractPlayerActor { getWorld(), position, nativeLocation.getYaw(), - nativeLocation.getPitch()); + nativeLocation.getPitch() + ); } @Override @@ -350,9 +358,11 @@ public class BukkitPlayer extends AbstractPlayerActor { public void sendAnnouncements() { if (WorldEditPlugin.getInstance().getLifecycledBukkitImplAdapter() == null) { //FAWE start - swap out EH download url with ours - print(Caption.of("worldedit.version.bukkit.unsupported-adapter", + print(Caption.of( + "worldedit.version.bukkit.unsupported-adapter", TextComponent.of("https://intellectualsites.github.io/download/fawe.html", TextColor.AQUA) - .clickEvent(ClickEvent.openUrl("https://intellectualsites.github.io/download/fawe.html")))); + .clickEvent(ClickEvent.openUrl("https://intellectualsites.github.io/download/fawe.html")) + )); //FAWE end } } diff --git a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitPlayerBlockBag.java b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitPlayerBlockBag.java index ecac5bc43..a36a20222 100644 --- a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitPlayerBlockBag.java +++ b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitPlayerBlockBag.java @@ -19,13 +19,13 @@ package com.sk89q.worldedit.bukkit; +import com.fastasyncworldedit.core.extent.inventory.SlottableBlockBag; import com.sk89q.worldedit.blocks.BaseItem; import com.sk89q.worldedit.blocks.BaseItemStack; import com.sk89q.worldedit.extent.inventory.BlockBag; import com.sk89q.worldedit.extent.inventory.BlockBagException; import com.sk89q.worldedit.extent.inventory.OutOfBlocksException; import com.sk89q.worldedit.extent.inventory.OutOfSpaceException; -import com.fastasyncworldedit.core.extent.inventory.SlottableBlockBag; import com.sk89q.worldedit.util.Location; import com.sk89q.worldedit.world.block.BlockState; import org.bukkit.entity.Player; @@ -35,7 +35,7 @@ import org.bukkit.inventory.ItemStack; public class BukkitPlayerBlockBag extends BlockBag implements SlottableBlockBag { //FAWE end - private Player player; + private final Player player; private ItemStack[] items; /** @@ -194,7 +194,11 @@ public class BukkitPlayerBlockBag extends BlockBag implements SlottableBlockBag @Override public void setItem(int slot, BaseItem block) { loadInventory(); - BaseItemStack stack = block instanceof BaseItemStack ? (BaseItemStack) block : new BaseItemStack(block.getType(), block.getNbtData(), 1); + BaseItemStack stack = block instanceof BaseItemStack ? (BaseItemStack) block : new BaseItemStack( + block.getType(), + block.getNbtData(), + 1 + ); items[slot] = BukkitAdapter.adapt(stack); } //FAWE end diff --git a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitRegistries.java b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitRegistries.java index 510c910eb..80de555df 100644 --- a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitRegistries.java +++ b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitRegistries.java @@ -23,7 +23,6 @@ import com.sk89q.worldedit.world.registry.BiomeRegistry; import com.sk89q.worldedit.world.registry.BlockCategoryRegistry; import com.sk89q.worldedit.world.registry.BlockRegistry; import com.sk89q.worldedit.world.registry.BundledRegistries; -import com.sk89q.worldedit.world.registry.EntityRegistry; import com.sk89q.worldedit.world.registry.ItemCategoryRegistry; import com.sk89q.worldedit.world.registry.ItemRegistry; diff --git a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitServerInterface.java b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitServerInterface.java index 48d6223d9..b4efa14fd 100644 --- a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitServerInterface.java +++ b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitServerInterface.java @@ -45,8 +45,9 @@ import org.bukkit.Server; import org.bukkit.World; import org.bukkit.entity.EntityType; import org.enginehub.piston.CommandManager; -import javax.annotation.Nonnull; +import javax.annotation.Nonnull; +import javax.annotation.Nullable; import java.util.ArrayList; import java.util.Collection; import java.util.EnumMap; @@ -55,7 +56,6 @@ import java.util.Map; import java.util.Set; import java.util.stream.Collectors; import java.util.stream.Stream; -import javax.annotation.Nullable; import static com.sk89q.worldedit.util.formatting.WorldEditText.reduceToText; @@ -116,8 +116,7 @@ public class BukkitServerInterface extends AbstractPlatform implements MultiUser if (!type.startsWith("minecraft:")) { return false; } - @SuppressWarnings("deprecation") - final EntityType entityType = EntityType.fromName(type.substring(10)); + @SuppressWarnings("deprecation") final EntityType entityType = EntityType.fromName(type.substring(10)); return entityType != null && entityType.isAlive(); } @@ -175,22 +174,29 @@ public class BukkitServerInterface extends AbstractPlatform implements MultiUser BukkitCommandInspector inspector = new BukkitCommandInspector(plugin, dispatcher); dynamicCommands.register(dispatcher.getAllCommands() - .map(command -> { - String[] permissionsArray = command.getCondition() - .as(PermissionCondition.class) - .map(PermissionCondition::getPermissions) - .map(s -> s.toArray(new String[0])) - .orElseGet(() -> new String[0]); + .map(command -> { + String[] permissionsArray = command.getCondition() + .as(PermissionCondition.class) + .map(PermissionCondition::getPermissions) + .map(s -> s.toArray(new String[0])) + .orElseGet(() -> new String[0]); - String[] aliases = Stream.concat( - Stream.of(command.getName()), - command.getAliases().stream() - ).toArray(String[]::new); - // TODO Handle localisation correctly - return new CommandInfo(reduceToText(command.getUsage(), WorldEdit.getInstance().getConfiguration().defaultLocale), - reduceToText(command.getDescription(), WorldEdit.getInstance().getConfiguration().defaultLocale), aliases, - inspector, permissionsArray); - }).collect(Collectors.toList())); + String[] aliases = Stream.concat( + Stream.of(command.getName()), + command.getAliases().stream() + ).toArray(String[]::new); + // TODO Handle localisation correctly + return new CommandInfo( + reduceToText( + command.getUsage(), + WorldEdit.getInstance().getConfiguration().defaultLocale + ), + reduceToText(command.getDescription(), WorldEdit.getInstance().getConfiguration().defaultLocale), + aliases, + inspector, + permissionsArray + ); + }).collect(Collectors.toList())); } @Override @@ -264,7 +270,8 @@ public class BukkitServerInterface extends AbstractPlatform implements MultiUser //FAWE start @Override - public @Nonnull RelighterFactory getRelighterFactory() { + public @Nonnull + RelighterFactory getRelighterFactory() { if (this.relighterFactory == null) { this.relighterFactory = this.plugin.getBukkitImplAdapter().getRelighterFactory(); LOGGER.info("Using " + this.relighterFactory.getClass().getCanonicalName() + " as relighter factory."); diff --git a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitWorld.java b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitWorld.java index 5ee117033..dd4acc769 100644 --- a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitWorld.java +++ b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitWorld.java @@ -177,6 +177,7 @@ public class BukkitWorld extends AbstractWorld { } //FAWE start + /** * Get the world handle. * @@ -332,7 +333,8 @@ public class BukkitWorld extends AbstractWorld { pt = pt.add(0, 1, 0); // bukkit skips the feature gen which does this offset normally, so we have to add it back } return type != null && world.generateTree(BukkitAdapter.adapt(world, pt), bukkitType, - new EditSessionBlockChangeDelegate(editSession)); + new EditSessionBlockChangeDelegate(editSession) + ); } @Override @@ -505,7 +507,7 @@ public class BukkitWorld extends AbstractWorld { } catch (Exception e) { if (block instanceof BaseBlock && ((BaseBlock) block).getNbt() != null) { LOGGER.warn("Tried to set a corrupt tile entity at " + position.toString() - + ": " + ((BaseBlock) block).getNbt(), e); + + ": " + ((BaseBlock) block).getNbt(), e); } else { LOGGER.warn("Failed to set block via adapter, falling back to generic", e); } @@ -527,8 +529,10 @@ public class BukkitWorld extends AbstractWorld { } @Override - public Set applySideEffects(BlockVector3 position, com.sk89q.worldedit.world.block.BlockState previousType, - SideEffectSet sideEffectSet) { + public Set applySideEffects( + BlockVector3 position, com.sk89q.worldedit.world.block.BlockState previousType, + SideEffectSet sideEffectSet + ) { if (worldNativeAccess != null) { worldNativeAccess.applySideEffects(position, previousType, sideEffectSet); return Sets.intersection( diff --git a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/CUIChannelListener.java b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/CUIChannelListener.java index 2c6b0f11f..2488693e9 100644 --- a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/CUIChannelListener.java +++ b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/CUIChannelListener.java @@ -23,7 +23,6 @@ import com.sk89q.worldedit.LocalSession; import org.bukkit.entity.Player; import org.bukkit.plugin.messaging.PluginMessageListener; -import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; /** diff --git a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/EditSessionBlockChangeDelegate.java b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/EditSessionBlockChangeDelegate.java index dd308ba4c..97d683e35 100644 --- a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/EditSessionBlockChangeDelegate.java +++ b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/EditSessionBlockChangeDelegate.java @@ -29,7 +29,7 @@ import org.bukkit.block.data.BlockData; */ public class EditSessionBlockChangeDelegate implements BlockChangeDelegate { - private EditSession editSession; + private final EditSession editSession; public EditSessionBlockChangeDelegate(EditSession editSession) { this.editSession = editSession; diff --git a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/WorldEditListener.java b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/WorldEditListener.java index fd72b13e5..dcb2802db 100644 --- a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/WorldEditListener.java +++ b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/WorldEditListener.java @@ -76,13 +76,17 @@ public class WorldEditListener implements Listener { public void onPlayerCommandSend(PlayerCommandSendEvent event) { InjectedValueStore store = MapBackedValueStore.create(); store.injectValue(Key.of(Actor.class), context -> - Optional.of(plugin.wrapCommandSender(event.getPlayer()))); - CommandManager commandManager = plugin.getWorldEdit().getPlatformManager().getPlatformCommandManager().getCommandManager(); + Optional.of(plugin.wrapCommandSender(event.getPlayer()))); + CommandManager commandManager = plugin + .getWorldEdit() + .getPlatformManager() + .getPlatformCommandManager() + .getCommandManager(); event.getCommands().removeIf(name -> - // remove if in the manager and not satisfied - commandManager.getCommand(name) - .filter(command -> !command.getCondition().satisfied(store)) - .isPresent() + // remove if in the manager and not satisfied + commandManager.getCommand(name) + .filter(command -> !command.getCondition().satisfied(store)) + .isPresent() ); } @@ -151,4 +155,5 @@ public class WorldEditListener implements Listener { public void onPlayerQuit(PlayerQuitEvent event) { plugin.getWorldEdit().getEventBus().post(new SessionIdleEvent(new BukkitPlayer.SessionKeyImpl(event.getPlayer()))); } + } diff --git a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/WorldEditPlugin.java b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/WorldEditPlugin.java index 4de9ee2c6..af8b3f0b3 100644 --- a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/WorldEditPlugin.java +++ b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/WorldEditPlugin.java @@ -117,9 +117,10 @@ public class WorldEditPlugin extends JavaPlugin { Plugin[] plugins = Bukkit.getServer().getPluginManager().getPlugins(); for (Plugin p : plugins) { if (p.getName().equals("WorldEdit")) { - LOGGER.warn("You installed WorldEdit alongside FastAsyncWorldEdit. That is unneeded and will cause unforeseen issues, " + - "because FastAsyncWorldEdit already provides WorldEdit. " + - "Stop your server and delete the 'worldedit-bukkit' jar from your plugins folder."); + LOGGER.warn( + "You installed WorldEdit alongside FastAsyncWorldEdit. That is unneeded and will cause unforeseen issues, " + + "because FastAsyncWorldEdit already provides WorldEdit. " + + "Stop your server and delete the 'worldedit-bukkit' jar from your plugins folder."); } } //FAWE end @@ -142,7 +143,7 @@ public class WorldEditPlugin extends JavaPlugin { //FAWE start - Modify WorldEdit config name config = new BukkitConfiguration(new YAMLProcessor(new File(getDataFolder(), "config-legacy.yml"), true), this); //FAWE end - + //FAWE start - Setup permission attachments permissionAttachmentManager = new BukkitPermissionAttachmentManager(this); //FAWE end @@ -202,7 +203,8 @@ public class WorldEditPlugin extends JavaPlugin { getServer().getPluginManager().registerEvents(new WorldInitListener(), this); } else { //FAWE start - LOGGER.warn("Server reload detected. This may cause various issues with FastAsyncWorldEdit and dependent plugins. Reloading the server is not advised."); + LOGGER.warn( + "Server reload detected. This may cause various issues with FastAsyncWorldEdit and dependent plugins. Reloading the server is not advised."); LOGGER.warn("For more information why reloading is bad, see https://madelinemiller.dev/blog/problem-with-reload/"); //FAWE end try { @@ -235,7 +237,7 @@ public class WorldEditPlugin extends JavaPlugin { WorldEdit.getInstance().getEventBus().post(new PlatformReadyEvent(platform)); } - @SuppressWarnings({ "deprecation", "unchecked" }) + @SuppressWarnings({"deprecation", "unchecked"}) private void initializeRegistries() { // Biome for (Biome biome : Biome.values()) { @@ -298,7 +300,8 @@ public class WorldEditPlugin extends JavaPlugin { ItemCategory.REGISTRY.register(itemTag.getKey().toString(), new ItemCategory(itemTag.getKey().toString())); } } catch (NoSuchMethodError ignored) { - LOGGER.warn("The version of Spigot/Paper you are using doesn't support Tags. The usage of tags with WorldEdit will not work until you update."); + LOGGER.warn( + "The version of Spigot/Paper you are using doesn't support Tags. The usage of tags with WorldEdit will not work until you update."); } } @@ -329,8 +332,8 @@ public class WorldEditPlugin extends JavaPlugin { } else { //FAWE start - Identify as FAWE LOGGER.info("FastAsyncWorldEdit could not find a Bukkit adapter for this MC version, " - + "but it seems that you have another implementation of FastAsyncWorldEdit installed (" + platform.getPlatformName() + ") " - + "that handles the world editing."); + + "but it seems that you have another implementation of FastAsyncWorldEdit installed (" + platform.getPlatformName() + ") " + + "that handles the world editing."); //FAWE end } this.adapter.invalidate(); @@ -443,7 +446,7 @@ public class WorldEditPlugin extends JavaPlugin { /** * Remember an edit session. * - * @param player a player + * @param player a player * @param editSession an edit session */ public void remember(Player player, EditSession editSession) { @@ -473,8 +476,9 @@ public class WorldEditPlugin extends JavaPlugin { public PermissionsResolverManager getPermissionsResolver() { return PermissionsResolverManager.getInstance(); } - + //FAWE start + /** * Get the permissions attachment manager in use * @@ -565,6 +569,7 @@ public class WorldEditPlugin extends JavaPlugin { } private class WorldInitListener implements Listener { + private boolean loaded = false; @EventHandler(priority = EventPriority.LOWEST) @@ -575,9 +580,11 @@ public class WorldEditPlugin extends JavaPlugin { loaded = true; setupWorldData(); } + } private class AsyncTabCompleteListener implements Listener { + AsyncTabCompleteListener() { } @@ -597,7 +604,8 @@ public class WorldEditPlugin extends JavaPlugin { // Strip leading slash, if present. label = label.startsWith("/") ? label.substring(1) : label; final Optional command - = WorldEdit.getInstance().getPlatformManager().getPlatformCommandManager().getCommandManager().getCommand(label); + = WorldEdit.getInstance().getPlatformManager().getPlatformCommandManager().getCommandManager().getCommand( + label); if (!command.isPresent()) { return; } @@ -608,5 +616,7 @@ public class WorldEditPlugin extends JavaPlugin { event.setCompletions(CommandUtil.fixSuggestions(buffer, suggestEvent.getSuggestions())); event.setHandled(true); } + } + } diff --git a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/adapter/AdapterLoadException.java b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/adapter/AdapterLoadException.java index 13b5826ef..ef97f95e8 100644 --- a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/adapter/AdapterLoadException.java +++ b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/adapter/AdapterLoadException.java @@ -38,4 +38,5 @@ public class AdapterLoadException extends Exception { public AdapterLoadException(Throwable cause) { super(cause); } + } diff --git a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/adapter/BukkitImplAdapter.java b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/adapter/BukkitImplAdapter.java index 5994fc68f..32297718d 100644 --- a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/adapter/BukkitImplAdapter.java +++ b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/adapter/BukkitImplAdapter.java @@ -23,8 +23,8 @@ import com.fastasyncworldedit.bukkit.FaweBukkit; import com.fastasyncworldedit.bukkit.adapter.IBukkitAdapter; import com.fastasyncworldedit.bukkit.adapter.NMSRelighterFactory; import com.fastasyncworldedit.core.Fawe; -import com.fastasyncworldedit.core.queue.IChunkGet; import com.fastasyncworldedit.core.extent.processor.lighting.RelighterFactory; +import com.fastasyncworldedit.core.queue.IChunkGet; import com.fastasyncworldedit.core.queue.implementation.packet.ChunkPacket; import com.sk89q.jnbt.AdventureNBTConverter; import com.sk89q.jnbt.Tag; @@ -59,10 +59,10 @@ import org.bukkit.entity.Entity; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; +import javax.annotation.Nullable; import java.util.Map; import java.util.OptionalInt; import java.util.Set; -import javax.annotation.Nullable; /** * An interface for adapters of various Bukkit implementations. @@ -123,7 +123,7 @@ public interface BukkitImplAdapter extends IBukkitAdapter { * Create the given entity. * * @param location the location - * @param state the state + * @param state the state * @return the created entity or null */ @Nullable @@ -164,8 +164,8 @@ public interface BukkitImplAdapter extends IBukkitAdapter { /** * Send the given NBT data to the player. * - * @param player The player - * @param pos The position + * @param player The player + * @param pos The position * @param nbtData The NBT Data */ void sendFakeNBT(Player player, BlockVector3 pos, CompoundBinaryTag nbtData); @@ -181,10 +181,10 @@ public interface BukkitImplAdapter extends IBukkitAdapter { /** * Simulates a player using an item. * - * @param world the world + * @param world the world * @param position the location - * @param item the item to be used - * @param face the direction in which to "face" when using the item + * @param item the item to be used + * @param face the direction in which to "face" when using the item * @return whether the usage was successful */ default boolean simulateItemUse(World world, BlockVector3 position, BaseItem item, Direction face) { @@ -194,8 +194,8 @@ public interface BukkitImplAdapter extends IBukkitAdapter { /** * Gets whether the given {@link BlockState} can be placed here. * - * @param world The world - * @param position The position + * @param world The world + * @param position The position * @param blockState The blockstate * @return If it can be placed */ @@ -243,9 +243,10 @@ public interface BukkitImplAdapter extends IBukkitAdapter { /** * Regenerate a region in the given world, so it appears "as new". - * @param world the world to regen in - * @param region the region to regen - * @param extent the extent to use for setting blocks + * + * @param world the world to regen in + * @param region the region to regen + * @param extent the extent to use for setting blocks * @param options the regeneration options * @return true on success, false on failure */ diff --git a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/adapter/BukkitImplLoader.java b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/adapter/BukkitImplLoader.java index 813baed48..3224aec12 100644 --- a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/adapter/BukkitImplLoader.java +++ b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/adapter/BukkitImplLoader.java @@ -47,15 +47,15 @@ public class BukkitImplLoader { private static final String CLASS_SUFFIX = ".class"; private static final String LOAD_ERROR_MESSAGE = - //FAWE start - exchange WorldEdit to FAWE & suggest to update Fawe & the server software - "\n**********************************************\n" - + "** This FastAsyncWorldEdit version does not fully support your version of Bukkit.\n" - + "** You can fix this by:\n" - + "** - Updating your server version (Check /version to see how many versions you are behind)\n** - Updating FAWE\n" - + "**\n" + "** When working with blocks or undoing, chests will be empty, signs\n" - + "** will be blank, and so on. There will be no support for entity\n" - + "** and block property-related functions.\n" - + "**********************************************\n"; + //FAWE start - exchange WorldEdit to FAWE & suggest to update Fawe & the server software + "\n**********************************************\n" + + "** This FastAsyncWorldEdit version does not fully support your version of Bukkit.\n" + + "** You can fix this by:\n" + + "** - Updating your server version (Check /version to see how many versions you are behind)\n** - Updating FAWE\n" + + "**\n" + "** When working with blocks or undoing, chests will be empty, signs\n" + + "** will be blank, and so on. There will be no support for entity\n" + + "** and block property-related functions.\n" + + "**********************************************\n"; //FAWE end /** @@ -164,10 +164,10 @@ public class BukkitImplLoader { } } catch (ClassNotFoundException e) { LOGGER.warn("Failed to load the Bukkit adapter class '" + className - + "' that is not supposed to be missing", e); + + "' that is not supposed to be missing", e); } catch (IllegalAccessException e) { LOGGER.warn("Failed to load the Bukkit adapter class '" + className - + "' that is not supposed to be raising this error", e); + + "' that is not supposed to be raising this error", e); } catch (Throwable e) { if (className.equals(customCandidate)) { LOGGER.warn("Failed to load the Bukkit adapter class '" + className + "'", e); diff --git a/worldedit-bukkit/src/main/resources/defaults/config-legacy.yml b/worldedit-bukkit/src/main/resources/defaults/config-legacy.yml index ee932af72..51817009c 100644 --- a/worldedit-bukkit/src/main/resources/defaults/config-legacy.yml +++ b/worldedit-bukkit/src/main/resources/defaults/config-legacy.yml @@ -16,81 +16,81 @@ # - If you want to allow blocks, make sure to change "disallowed-blocks" to [] # -limits: - max-blocks-changed: - # Ignored, use FAWE config limits - default: -1 - maximum: -1 - max-polygonal-points: - default: -1 - maximum: 20 - max-radius: -1 - max-super-pickaxe-size: 5 - max-brush-radius: 100 - butcher-radius: - default: -1 - maximum: -1 - disallowed-blocks: +limits : + max-blocks-changed : + # Ignored, use FAWE config limits + default : -1 + maximum : -1 + max-polygonal-points : + default : -1 + maximum : 20 + max-radius : -1 + max-super-pickaxe-size : 5 + max-brush-radius : 100 + butcher-radius : + default : -1 + maximum : -1 + disallowed-blocks : - "minecraft:wheat" - "minecraft:fire" - "minecraft:redstone_wire" -use-inventory: - enable: false - allow-override: true - creative-mode-overrides: false +use-inventory : + enable : false + allow-override : true + creative-mode-overrides : false -logging: - log-commands: false - file: worldedit.log - # The format of custom log message. This is java general format string (java.util.Formatter). Arguments are: - # 1$ : date - a Date object representing event time of the log record. - # 2$ : source - a string representing the caller, if available; otherwise, the logger's name. - # 3$ : logger - the logger's name. - # 4$ : level - the log level. - # 5$ : message - the formatted log message returned from the Formatter.formatMessage(LogRecord) method. It uses java.text formatting and does not use the java.util.Formatter format argument. - # 6$ : thrown - a string representing the throwable associated with the log record and its backtrace beginning with a newline character, if any; otherwise, an empty string. - # For details see: - # https://docs.oracle.com/javase/8/docs/api/java/util/Formatter.html - # https://docs.oracle.com/javase/8/docs/api/java/util/logging/SimpleFormatter.html#format-java.util.logging.LogRecord- - format: "[%1$tY-%1$tm-%1$td %1$tH:%1$tM:%1$tS %4$s]: %5$s%6$s%n" +logging : + log-commands : false + file : worldedit.log + # The format of custom log message. This is java general format string (java.util.Formatter). Arguments are: + # 1$ : date - a Date object representing event time of the log record. + # 2$ : source - a string representing the caller, if available; otherwise, the logger's name. + # 3$ : logger - the logger's name. + # 4$ : level - the log level. + # 5$ : message - the formatted log message returned from the Formatter.formatMessage(LogRecord) method. It uses java.text formatting and does not use the java.util.Formatter format argument. + # 6$ : thrown - a string representing the throwable associated with the log record and its backtrace beginning with a newline character, if any; otherwise, an empty string. + # For details see: + # https://docs.oracle.com/javase/8/docs/api/java/util/Formatter.html + # https://docs.oracle.com/javase/8/docs/api/java/util/logging/SimpleFormatter.html#format-java.util.logging.LogRecord- + format : "[%1$tY-%1$tm-%1$td %1$tH:%1$tM:%1$tS %4$s]: %5$s%6$s%n" -super-pickaxe: - drop-items: true - many-drop-items: false +super-pickaxe : + drop-items : true + many-drop-items : false -snapshots: - directory: +snapshots : + directory : -navigation-wand: - item: minecraft:compass - max-distance: 100 +navigation-wand : + item : minecraft:compass + max-distance : 100 -scripting: - timeout: 3000 - dir: craftscripts +scripting : + timeout : 3000 + dir : craftscripts -saving: - dir: schematics +saving : + dir : schematics -files: - allow-symbolic-links: false +files : + allow-symbolic-links : false -history: - size: 15 - expiration: 10 +history : + size : 15 + expiration : 10 -calculation: - timeout: 100 +calculation : + timeout : 100 -debugging: - trace-unflushed-sessions: false +debugging : + trace-unflushed-sessions : false -wand-item: minecraft:wooden_axe -shell-save-type: -no-double-slash: false -no-op-permissions: false -debug: false -show-help-on-first-use: true -server-side-cui: true -command-block-support: false +wand-item : minecraft:wooden_axe +shell-save-type : +no-double-slash : false +no-op-permissions : false +debug : false +show-help-on-first-use : true +server-side-cui : true +command-block-support : false diff --git a/worldedit-bukkit/src/main/resources/plugin.yml b/worldedit-bukkit/src/main/resources/plugin.yml index 6ce77033d..c7e477eb7 100644 --- a/worldedit-bukkit/src/main/resources/plugin.yml +++ b/worldedit-bukkit/src/main/resources/plugin.yml @@ -1,233 +1,233 @@ -name: FastAsyncWorldEdit -main: com.sk89q.worldedit.bukkit.WorldEditPlugin -version: "${internalVersion}" -load: STARTUP -api-version: 1.15 -softdepend: [Vault] -provides: [WorldEdit] -website: https://www.spigotmc.org/resources/13932/ -description: Blazingly fast world manipulation for builders, large networks and developers. -authors: [Empire92, MattBDev, IronApollo, dordsor21, NotMyFault] -loadbefore: [WorldGuard, PlotSquared] -database: false -permissions: - fawe.plotsquared: - default: true - children: - fawe.plotsquared.trusted: true - fawe.bypass.regions: - default: false - fawe.bypass: - default: false - children: - fawe.bypass.regions: true - fawe.limit.*: true - fawe.tips: - default: false - fawe.admin: - default: op - fawe.reload: - default: false - fawe.permpack.basic: - default: op - children: - fawe.worldeditregion: true - fawe.cancel: true - worldedit.biome.info: true - worldedit.biome.set: true - worldedit.biome.list: true - worldedit.chunkinfo: true - worldedit.listchunks: true - worldedit.clipboard.cut: true - worldedit.clipboard.paste: true - worldedit.schematic.formats: true - worldedit.schematic.load: true - worldedit.schematic.list: true - worldedit.schematic.save: true - worldedit.clipboard.clear: true - worldedit.clipboard.copy: true - worldedit.clipboard.lazycopy: true - worldedit.clipboard.place: true - worldedit.clipboard.download: true - worldedit.clipboard.flip: true - worldedit.clipboard.rotate: true - worldedit.help: true - worldedit.global-mask: true - worldedit.global-transform: true - worldedit.generation.cylinder: true - worldedit.generation.sphere: true - worldedit.generation.forest: true - worldedit.generation.pumpkins: true - worldedit.generation.pyramid: true - worldedit.generation.shape: true - worldedit.history.undo: true - worldedit.history.redo: true - worldedit.history.rollback: true - worldedit.navigation.unstuck: true - worldedit.navigation.ascend: true - worldedit.navigation.descend: true - worldedit.navigation.ceiling: true - worldedit.navigation.thru.command: true - worldedit.navigation.jumpto.command: true - worldedit.navigation.up: true - worldedit.region.hollow: true - worldedit.region.line: true - worldedit.region.curve: true - worldedit.region.overlay: true - worldedit.region.center: true - worldedit.region.naturalize: true - worldedit.region.walls: true - worldedit.region.faces: true - worldedit.region.smooth: true - worldedit.region.move: true - worldedit.region.forest: true - worldedit.region.replace: true - worldedit.region.stack: true - worldedit.region.set: true - worldedit.selection.pos: true - worldedit.selection.chunk: true - worldedit.selection.hpos: true - worldedit.wand: true - worldedit.wand.toggle: true - worldedit.selection.contract: true - worldedit.selection.outset: true - worldedit.selection.inset: true - worldedit.analysis.distr: true - worldedit.analysis.count: true - worldedit.analysis.sel: true - worldedit.selection.size: true - worldedit.selection.expand: true - worldedit.selection.shift: true - worldedit.snapshots.list: true - worldedit.superpickaxe: true - worldedit.superpickaxe.area: true - worldedit.superpickaxe.recursive: true - worldedit.brush.blendball: true - worldedit.brush.erode: true - worldedit.brush.pull: true - worldedit.brush.circle: true - worldedit.brush.recursive: true - worldedit.brush.line: true - worldedit.brush.spline: true - worldedit.brush.surfacespline: true - worldedit.brush.shatter: true - worldedit.brush.stencil: true - worldedit.brush.height: true - worldedit.brush.layer: true - worldedit.brush.populateschematic: true - worldedit.brush.scatter: true - worldedit.brush.splatter: true - worldedit.brush.scattercommand: true - worldedit.brush.copy: true - worldedit.brush.command: true - worldedit.brush.apply: true - worldedit.brush.sphere: true - worldedit.brush.cylinder: true - worldedit.brush.clipboard: true - worldedit.brush.smooth: true - worldedit.brush.ex: true - worldedit.brush.gravity: true - worldedit.brush.options.range: true - worldedit.brush.options.material: true - worldedit.brush.options.size: true - worldedit.brush.options.mask: true - worldedit.brush.options.smask: true - worldedit.brush.options.transform: true - worldedit.brush.options.scroll: true - worldedit.brush.options.visualize: true - worldedit.tool.deltree: true - worldedit.tool.farwand: true - worldedit.tool.lrbuild: true - worldedit.tool.info: true - worldedit.tool.tree: true - worldedit.tool.replacer: true - worldedit.tool.data-cycler: true - worldedit.tool.flood-fill: true - worldedit.tool.inspect: true - worldedit.fill.recursive: true - worldedit.drain: true - worldedit.fixlava: true - worldedit.fixwater: true - worldedit.removeabove: true - worldedit.removebelow: true - worldedit.removenear: true - worldedit.replacenear: true - worldedit.snow: true - worldedit.thaw: true - worldedit.green: true - worldedit.extinguish: true - worldedit.calc: true - worldedit.fill: true - fawe.voxelbrush: - default: op - children: - voxelsniper.brush.ball: true - voxelsniper.brush.biome: true - voxelsniper.brush.blendball: true - voxelsniper.brush.blenddisc: true - voxelsniper.brush.blendvoxel: true - voxelsniper.brush.blendvoxeldisc: true - voxelsniper.brush.blob: true - voxelsniper.brush.blockreset: true - voxelsniper.brush.blockresetsurface: true - voxelsniper.brush.canyon: true - voxelsniper.brush.canyonselection: true - voxelsniper.brush.checkervoxeldisc: true - voxelsniper.brush.cleansnow: true - voxelsniper.brush.clonestamp: true - voxelsniper.brush.copypasta: true - voxelsniper.brush.cylinder: true - voxelsniper.brush.disc: true - voxelsniper.brush.discface: true - voxelsniper.brush.dome: true - voxelsniper.brush.drain: true - voxelsniper.brush.ellipse: true - voxelsniper.brush.ellipsoid: true - voxelsniper.brush.eraser: true - voxelsniper.brush.erode: true - voxelsniper.brush.extrude: true - voxelsniper.brush.filldown: true - voxelsniper.brush.flatocean: true - voxelsniper.brush.heatray: true - voxelsniper.brush.jaggedline: true - voxelsniper.brush.line: true - voxelsniper.brush.move: true - voxelsniper.brush.ocean: true - voxelsniper.brush.overlay: true - voxelsniper.brush.pull: true - voxelsniper.brush.randomerode: true - voxelsniper.brush.ring: true - voxelsniper.brush.rot2d: true - voxelsniper.brush.rot2dvert: true - voxelsniper.brush.rot3d: true - voxelsniper.brush.ruler: true - voxelsniper.brush.scanner: true - voxelsniper.brush.set: true - voxelsniper.brush.setredstoneflip: true - voxelsniper.brush.setredstonerotate: true - voxelsniper.brush.shellball: true - voxelsniper.brush.shellset: true - voxelsniper.brush.shellvoxel: true - voxelsniper.brush.signoverwrite: true - voxelsniper.brush.snipe: true - voxelsniper.brush.snowcone: true - voxelsniper.brush.spiralstaircase: true - voxelsniper.brush.splatterball: true - voxelsniper.brush.splatterdisc: true - voxelsniper.brush.splatteroverlay: true - voxelsniper.brush.splattervoxel: true - voxelsniper.brush.splattervoxeldisc: true - voxelsniper.brush.spline: true - voxelsniper.brush.stamp: true - voxelsniper.brush.stencil: true - voxelsniper.brush.stencillist: true - voxelsniper.brush.threepointcircle: true - voxelsniper.brush.triangle: true - voxelsniper.brush.underlay: true - voxelsniper.brush.voltmeter: true - voxelsniper.brush.voxel: true - voxelsniper.brush.voxeldisc: true - voxelsniper.brush.voxeldiscface: true - voxelsniper.brush.warp: true - voxelsniper.goto: true - voxelsniper.sniper: true +name : FastAsyncWorldEdit +main : com.sk89q.worldedit.bukkit.WorldEditPlugin +version : "${internalVersion}" +load : STARTUP +api-version : 1.15 +softdepend : [ Vault ] +provides : [ WorldEdit ] +website : https://www.spigotmc.org/resources/13932/ +description : Blazingly fast world manipulation for builders, large networks and developers. +authors : [ Empire92, MattBDev, IronApollo, dordsor21, NotMyFault ] +loadbefore : [ WorldGuard, PlotSquared ] +database : false +permissions : + fawe.plotsquared : + default : true + children : + fawe.plotsquared.trusted : true + fawe.bypass.regions : + default : false + fawe.bypass : + default : false + children : + fawe.bypass.regions : true + fawe.limit.* : true + fawe.tips : + default : false + fawe.admin : + default : op + fawe.reload : + default : false + fawe.permpack.basic : + default : op + children : + fawe.worldeditregion : true + fawe.cancel : true + worldedit.biome.info : true + worldedit.biome.set : true + worldedit.biome.list : true + worldedit.chunkinfo : true + worldedit.listchunks : true + worldedit.clipboard.cut : true + worldedit.clipboard.paste : true + worldedit.schematic.formats : true + worldedit.schematic.load : true + worldedit.schematic.list : true + worldedit.schematic.save : true + worldedit.clipboard.clear : true + worldedit.clipboard.copy : true + worldedit.clipboard.lazycopy : true + worldedit.clipboard.place : true + worldedit.clipboard.download : true + worldedit.clipboard.flip : true + worldedit.clipboard.rotate : true + worldedit.help : true + worldedit.global-mask : true + worldedit.global-transform : true + worldedit.generation.cylinder : true + worldedit.generation.sphere : true + worldedit.generation.forest : true + worldedit.generation.pumpkins : true + worldedit.generation.pyramid : true + worldedit.generation.shape : true + worldedit.history.undo : true + worldedit.history.redo : true + worldedit.history.rollback : true + worldedit.navigation.unstuck : true + worldedit.navigation.ascend : true + worldedit.navigation.descend : true + worldedit.navigation.ceiling : true + worldedit.navigation.thru.command : true + worldedit.navigation.jumpto.command : true + worldedit.navigation.up : true + worldedit.region.hollow : true + worldedit.region.line : true + worldedit.region.curve : true + worldedit.region.overlay : true + worldedit.region.center : true + worldedit.region.naturalize : true + worldedit.region.walls : true + worldedit.region.faces : true + worldedit.region.smooth : true + worldedit.region.move : true + worldedit.region.forest : true + worldedit.region.replace : true + worldedit.region.stack : true + worldedit.region.set : true + worldedit.selection.pos : true + worldedit.selection.chunk : true + worldedit.selection.hpos : true + worldedit.wand : true + worldedit.wand.toggle : true + worldedit.selection.contract : true + worldedit.selection.outset : true + worldedit.selection.inset : true + worldedit.analysis.distr : true + worldedit.analysis.count : true + worldedit.analysis.sel : true + worldedit.selection.size : true + worldedit.selection.expand : true + worldedit.selection.shift : true + worldedit.snapshots.list : true + worldedit.superpickaxe : true + worldedit.superpickaxe.area : true + worldedit.superpickaxe.recursive : true + worldedit.brush.blendball : true + worldedit.brush.erode : true + worldedit.brush.pull : true + worldedit.brush.circle : true + worldedit.brush.recursive : true + worldedit.brush.line : true + worldedit.brush.spline : true + worldedit.brush.surfacespline : true + worldedit.brush.shatter : true + worldedit.brush.stencil : true + worldedit.brush.height : true + worldedit.brush.layer : true + worldedit.brush.populateschematic : true + worldedit.brush.scatter : true + worldedit.brush.splatter : true + worldedit.brush.scattercommand : true + worldedit.brush.copy : true + worldedit.brush.command : true + worldedit.brush.apply : true + worldedit.brush.sphere : true + worldedit.brush.cylinder : true + worldedit.brush.clipboard : true + worldedit.brush.smooth : true + worldedit.brush.ex : true + worldedit.brush.gravity : true + worldedit.brush.options.range : true + worldedit.brush.options.material : true + worldedit.brush.options.size : true + worldedit.brush.options.mask : true + worldedit.brush.options.smask : true + worldedit.brush.options.transform : true + worldedit.brush.options.scroll : true + worldedit.brush.options.visualize : true + worldedit.tool.deltree : true + worldedit.tool.farwand : true + worldedit.tool.lrbuild : true + worldedit.tool.info : true + worldedit.tool.tree : true + worldedit.tool.replacer : true + worldedit.tool.data-cycler : true + worldedit.tool.flood-fill : true + worldedit.tool.inspect : true + worldedit.fill.recursive : true + worldedit.drain : true + worldedit.fixlava : true + worldedit.fixwater : true + worldedit.removeabove : true + worldedit.removebelow : true + worldedit.removenear : true + worldedit.replacenear : true + worldedit.snow : true + worldedit.thaw : true + worldedit.green : true + worldedit.extinguish : true + worldedit.calc : true + worldedit.fill : true + fawe.voxelbrush : + default : op + children : + voxelsniper.brush.ball : true + voxelsniper.brush.biome : true + voxelsniper.brush.blendball : true + voxelsniper.brush.blenddisc : true + voxelsniper.brush.blendvoxel : true + voxelsniper.brush.blendvoxeldisc : true + voxelsniper.brush.blob : true + voxelsniper.brush.blockreset : true + voxelsniper.brush.blockresetsurface : true + voxelsniper.brush.canyon : true + voxelsniper.brush.canyonselection : true + voxelsniper.brush.checkervoxeldisc : true + voxelsniper.brush.cleansnow : true + voxelsniper.brush.clonestamp : true + voxelsniper.brush.copypasta : true + voxelsniper.brush.cylinder : true + voxelsniper.brush.disc : true + voxelsniper.brush.discface : true + voxelsniper.brush.dome : true + voxelsniper.brush.drain : true + voxelsniper.brush.ellipse : true + voxelsniper.brush.ellipsoid : true + voxelsniper.brush.eraser : true + voxelsniper.brush.erode : true + voxelsniper.brush.extrude : true + voxelsniper.brush.filldown : true + voxelsniper.brush.flatocean : true + voxelsniper.brush.heatray : true + voxelsniper.brush.jaggedline : true + voxelsniper.brush.line : true + voxelsniper.brush.move : true + voxelsniper.brush.ocean : true + voxelsniper.brush.overlay : true + voxelsniper.brush.pull : true + voxelsniper.brush.randomerode : true + voxelsniper.brush.ring : true + voxelsniper.brush.rot2d : true + voxelsniper.brush.rot2dvert : true + voxelsniper.brush.rot3d : true + voxelsniper.brush.ruler : true + voxelsniper.brush.scanner : true + voxelsniper.brush.set : true + voxelsniper.brush.setredstoneflip : true + voxelsniper.brush.setredstonerotate : true + voxelsniper.brush.shellball : true + voxelsniper.brush.shellset : true + voxelsniper.brush.shellvoxel : true + voxelsniper.brush.signoverwrite : true + voxelsniper.brush.snipe : true + voxelsniper.brush.snowcone : true + voxelsniper.brush.spiralstaircase : true + voxelsniper.brush.splatterball : true + voxelsniper.brush.splatterdisc : true + voxelsniper.brush.splatteroverlay : true + voxelsniper.brush.splattervoxel : true + voxelsniper.brush.splattervoxeldisc : true + voxelsniper.brush.spline : true + voxelsniper.brush.stamp : true + voxelsniper.brush.stencil : true + voxelsniper.brush.stencillist : true + voxelsniper.brush.threepointcircle : true + voxelsniper.brush.triangle : true + voxelsniper.brush.underlay : true + voxelsniper.brush.voltmeter : true + voxelsniper.brush.voxel : true + voxelsniper.brush.voxeldisc : true + voxelsniper.brush.voxeldiscface : true + voxelsniper.brush.warp : true + voxelsniper.goto : true + voxelsniper.sniper : true diff --git a/worldedit-bukkit/src/test/java/com/sk89q/util/MinecraftVersionTest.java b/worldedit-bukkit/src/test/java/com/sk89q/util/MinecraftVersionTest.java index ac09344bb..ee97cc27e 100644 --- a/worldedit-bukkit/src/test/java/com/sk89q/util/MinecraftVersionTest.java +++ b/worldedit-bukkit/src/test/java/com/sk89q/util/MinecraftVersionTest.java @@ -4,8 +4,8 @@ import com.fastasyncworldedit.bukkit.util.MinecraftVersion; import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertTrue; import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; public class MinecraftVersionTest { diff --git a/worldedit-bukkit/src/test/java/com/sk89q/wepif/DinnerPermsResolverTest.java b/worldedit-bukkit/src/test/java/com/sk89q/wepif/DinnerPermsResolverTest.java index 31cfc5dca..361788d84 100644 --- a/worldedit-bukkit/src/test/java/com/sk89q/wepif/DinnerPermsResolverTest.java +++ b/worldedit-bukkit/src/test/java/com/sk89q/wepif/DinnerPermsResolverTest.java @@ -30,6 +30,7 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; public class DinnerPermsResolverTest { + private DinnerPermsResolver resolver; @BeforeEach @@ -86,4 +87,5 @@ public class DinnerPermsResolverTest { assertTrue(resolver.inGroup(permissible, "b")); assertFalse(resolver.inGroup(permissible, "c")); } + } diff --git a/worldedit-bukkit/src/test/java/com/sk89q/wepif/TestOfflinePermissible.java b/worldedit-bukkit/src/test/java/com/sk89q/wepif/TestOfflinePermissible.java index 3c338f758..33db4eb36 100644 --- a/worldedit-bukkit/src/test/java/com/sk89q/wepif/TestOfflinePermissible.java +++ b/worldedit-bukkit/src/test/java/com/sk89q/wepif/TestOfflinePermissible.java @@ -31,15 +31,16 @@ import org.bukkit.permissions.PermissionAttachment; import org.bukkit.permissions.PermissionAttachmentInfo; import org.bukkit.plugin.Plugin; +import javax.annotation.Nonnull; import java.util.HashMap; import java.util.HashSet; import java.util.Locale; import java.util.Map; import java.util.Set; import java.util.UUID; -import javax.annotation.Nonnull; public class TestOfflinePermissible implements OfflinePlayer, Permissible { + private boolean op; private UUID randomUuid = UUID.randomUUID(); @@ -190,15 +191,15 @@ public class TestOfflinePermissible implements OfflinePlayer, Permissible { throw new UnsupportedOperationException("Not supported yet."); } - @Override - public long getLastLogin() { - throw new UnsupportedOperationException("Not supported yet."); - } + @Override + public long getLastLogin() { + throw new UnsupportedOperationException("Not supported yet."); + } - @Override - public long getLastSeen() { - throw new UnsupportedOperationException("Not supported yet."); - } + @Override + public long getLastSeen() { + throw new UnsupportedOperationException("Not supported yet."); + } @Override public void incrementStatistic(@Nonnull Statistic statistic) throws IllegalArgumentException { @@ -212,19 +213,19 @@ public class TestOfflinePermissible implements OfflinePlayer, Permissible { @Override public void incrementStatistic(@Nonnull Statistic statistic, int amount) - throws IllegalArgumentException { + throws IllegalArgumentException { } @Override public void decrementStatistic(@Nonnull Statistic statistic, int amount) - throws IllegalArgumentException { + throws IllegalArgumentException { } @Override public void setStatistic(@Nonnull Statistic statistic, int newValue) - throws IllegalArgumentException { + throws IllegalArgumentException { } @@ -235,73 +236,84 @@ public class TestOfflinePermissible implements OfflinePlayer, Permissible { @Override public void incrementStatistic(@Nonnull Statistic statistic, @Nonnull Material material) - throws IllegalArgumentException { + throws IllegalArgumentException { } @Override public void decrementStatistic(@Nonnull Statistic statistic, @Nonnull Material material) - throws IllegalArgumentException { + throws IllegalArgumentException { } @Override public int getStatistic(@Nonnull Statistic statistic, @Nonnull Material material) - throws IllegalArgumentException { + throws IllegalArgumentException { return 0; } @Override - public void incrementStatistic(@Nonnull Statistic statistic, @Nonnull Material material, - int amount) throws IllegalArgumentException { + public void incrementStatistic( + @Nonnull Statistic statistic, @Nonnull Material material, + int amount + ) throws IllegalArgumentException { } @Override - public void decrementStatistic(@Nonnull Statistic statistic, @Nonnull Material material, - int amount) throws IllegalArgumentException { + public void decrementStatistic( + @Nonnull Statistic statistic, @Nonnull Material material, + int amount + ) throws IllegalArgumentException { } @Override public void setStatistic(@Nonnull Statistic statistic, @Nonnull Material material, int newValue) - throws IllegalArgumentException { + throws IllegalArgumentException { } @Override public void incrementStatistic(@Nonnull Statistic statistic, @Nonnull EntityType entityType) - throws IllegalArgumentException { + throws IllegalArgumentException { } @Override public void decrementStatistic(@Nonnull Statistic statistic, @Nonnull EntityType entityType) - throws IllegalArgumentException { + throws IllegalArgumentException { } @Override public int getStatistic(@Nonnull Statistic statistic, @Nonnull EntityType entityType) - throws IllegalArgumentException { + throws IllegalArgumentException { return 0; } @Override - public void incrementStatistic(@Nonnull Statistic statistic, @Nonnull EntityType entityType, - int amount) throws IllegalArgumentException { + public void incrementStatistic( + @Nonnull Statistic statistic, @Nonnull EntityType entityType, + int amount + ) throws IllegalArgumentException { } @Override - public void decrementStatistic(@Nonnull Statistic statistic, @Nonnull EntityType entityType, - int amount) { + public void decrementStatistic( + @Nonnull Statistic statistic, @Nonnull EntityType entityType, + int amount + ) { } @Override - public void setStatistic(@Nonnull Statistic statistic, @Nonnull EntityType entityType, - int newValue) { + public void setStatistic( + @Nonnull Statistic statistic, @Nonnull EntityType entityType, + int newValue + ) { } + } diff --git a/worldedit-cli/build.gradle.kts b/worldedit-cli/build.gradle.kts index 0e1fc3947..34bd9a350 100644 --- a/worldedit-cli/build.gradle.kts +++ b/worldedit-cli/build.gradle.kts @@ -1,5 +1,4 @@ import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar -import net.minecrell.pluginyml.bukkit.BukkitPluginDescription plugins { `java-library` diff --git a/worldedit-cli/src/main/java/com/sk89q/worldedit/cli/AccessPoint.java b/worldedit-cli/src/main/java/com/sk89q/worldedit/cli/AccessPoint.java index bdf99b6ef..f55432468 100644 --- a/worldedit-cli/src/main/java/com/sk89q/worldedit/cli/AccessPoint.java +++ b/worldedit-cli/src/main/java/com/sk89q/worldedit/cli/AccessPoint.java @@ -5,4 +5,5 @@ package com.sk89q.worldedit.cli; * annoying, if you try to use the CLI as plugin. */ public class AccessPoint { + } diff --git a/worldedit-cli/src/main/java/com/sk89q/worldedit/cli/CLIBlockCategoryRegistry.java b/worldedit-cli/src/main/java/com/sk89q/worldedit/cli/CLIBlockCategoryRegistry.java index 0a751d2df..8ffb24d0b 100644 --- a/worldedit-cli/src/main/java/com/sk89q/worldedit/cli/CLIBlockCategoryRegistry.java +++ b/worldedit-cli/src/main/java/com/sk89q/worldedit/cli/CLIBlockCategoryRegistry.java @@ -30,8 +30,11 @@ public class CLIBlockCategoryRegistry implements BlockCategoryRegistry { @Override public Set getCategorisedByName(String category) { - return CLIWorldEdit.inst.getFileRegistries().getDataFile().blocktags.getOrDefault(category, Collections.emptyList()).stream() + return CLIWorldEdit.inst.getFileRegistries().getDataFile().blocktags + .getOrDefault(category, Collections.emptyList()) + .stream() .map(BlockType.REGISTRY::get) .collect(Collectors.toSet()); } + } diff --git a/worldedit-cli/src/main/java/com/sk89q/worldedit/cli/CLIBlockRegistry.java b/worldedit-cli/src/main/java/com/sk89q/worldedit/cli/CLIBlockRegistry.java index d3a16fa5f..1fdb97ae6 100644 --- a/worldedit-cli/src/main/java/com/sk89q/worldedit/cli/CLIBlockRegistry.java +++ b/worldedit-cli/src/main/java/com/sk89q/worldedit/cli/CLIBlockRegistry.java @@ -31,10 +31,10 @@ import com.sk89q.worldedit.util.Direction; import com.sk89q.worldedit.world.block.BlockType; import com.sk89q.worldedit.world.registry.BundledBlockRegistry; +import javax.annotation.Nullable; import java.util.List; import java.util.Map; import java.util.stream.Collectors; -import javax.annotation.Nullable; public class CLIBlockRegistry extends BundledBlockRegistry { @@ -52,7 +52,11 @@ public class CLIBlockRegistry extends BundledBlockRegistry { return new EnumProperty(key, values); } case "direction": { - List fixedValues = values.stream().map(String::toUpperCase).map(Direction::valueOf).collect(Collectors.toList()); + List fixedValues = values + .stream() + .map(String::toUpperCase) + .map(Direction::valueOf) + .collect(Collectors.toList()); return new DirectionalProperty(key, fixedValues); } default: @@ -69,4 +73,5 @@ public class CLIBlockRegistry extends BundledBlockRegistry { (key, value) -> createProperty(value.type, key, value.values); return ImmutableMap.copyOf(Maps.transformEntries(properties, entryTransform)); } + } diff --git a/worldedit-cli/src/main/java/com/sk89q/worldedit/cli/CLICommandSender.java b/worldedit-cli/src/main/java/com/sk89q/worldedit/cli/CLICommandSender.java index 912172564..772c612e6 100644 --- a/worldedit-cli/src/main/java/com/sk89q/worldedit/cli/CLICommandSender.java +++ b/worldedit-cli/src/main/java/com/sk89q/worldedit/cli/CLICommandSender.java @@ -29,6 +29,7 @@ import com.sk89q.worldedit.util.formatting.WorldEditText; import com.sk89q.worldedit.util.formatting.text.Component; import com.sk89q.worldedit.util.formatting.text.serializer.plain.PlainComponentSerializer; import org.apache.logging.log4j.Logger; + import java.io.File; import java.util.Locale; import java.util.Map; @@ -188,4 +189,5 @@ public class CLICommandSender implements Actor { public Map getRawMeta() { return null; } + } diff --git a/worldedit-cli/src/main/java/com/sk89q/worldedit/cli/CLIConfiguration.java b/worldedit-cli/src/main/java/com/sk89q/worldedit/cli/CLIConfiguration.java index ce935742c..62efc849f 100644 --- a/worldedit-cli/src/main/java/com/sk89q/worldedit/cli/CLIConfiguration.java +++ b/worldedit-cli/src/main/java/com/sk89q/worldedit/cli/CLIConfiguration.java @@ -37,4 +37,5 @@ public class CLIConfiguration extends PropertiesConfiguration { public Path getWorkingDirectoryPath() { return CLIWorldEdit.inst.getWorkingDir(); } + } diff --git a/worldedit-cli/src/main/java/com/sk89q/worldedit/cli/CLIExtraCommands.java b/worldedit-cli/src/main/java/com/sk89q/worldedit/cli/CLIExtraCommands.java index 16108c86b..9f6389463 100644 --- a/worldedit-cli/src/main/java/com/sk89q/worldedit/cli/CLIExtraCommands.java +++ b/worldedit-cli/src/main/java/com/sk89q/worldedit/cli/CLIExtraCommands.java @@ -33,6 +33,7 @@ import java.util.concurrent.ExecutionException; @CommandContainer public class CLIExtraCommands { + @Command( name = "selectworld", desc = "Select the entire world" @@ -59,4 +60,5 @@ public class CLIExtraCommands { } } } + } diff --git a/worldedit-cli/src/main/java/com/sk89q/worldedit/cli/CLIItemCategoryRegistry.java b/worldedit-cli/src/main/java/com/sk89q/worldedit/cli/CLIItemCategoryRegistry.java index abd64d540..fd0934ecf 100644 --- a/worldedit-cli/src/main/java/com/sk89q/worldedit/cli/CLIItemCategoryRegistry.java +++ b/worldedit-cli/src/main/java/com/sk89q/worldedit/cli/CLIItemCategoryRegistry.java @@ -33,4 +33,5 @@ public class CLIItemCategoryRegistry implements ItemCategoryRegistry { .map(ItemType.REGISTRY::get) .collect(Collectors.toSet()); } + } diff --git a/worldedit-cli/src/main/java/com/sk89q/worldedit/cli/CLIPlatform.java b/worldedit-cli/src/main/java/com/sk89q/worldedit/cli/CLIPlatform.java index 4956bf63b..6c28e34c0 100644 --- a/worldedit-cli/src/main/java/com/sk89q/worldedit/cli/CLIPlatform.java +++ b/worldedit-cli/src/main/java/com/sk89q/worldedit/cli/CLIPlatform.java @@ -34,6 +34,7 @@ import com.sk89q.worldedit.world.registry.Registries; import org.enginehub.piston.CommandManager; import javax.annotation.Nonnull; +import javax.annotation.Nullable; import java.util.ArrayList; import java.util.EnumMap; import java.util.List; @@ -41,7 +42,6 @@ import java.util.Map; import java.util.Set; import java.util.Timer; import java.util.TimerTask; -import javax.annotation.Nullable; class CLIPlatform extends AbstractPlatform { @@ -171,4 +171,5 @@ class CLIPlatform extends AbstractPlatform { public void addWorld(World world) { worlds.add(world); } + } diff --git a/worldedit-cli/src/main/java/com/sk89q/worldedit/cli/CLIWorld.java b/worldedit-cli/src/main/java/com/sk89q/worldedit/cli/CLIWorld.java index 722a68c81..4a12c172b 100644 --- a/worldedit-cli/src/main/java/com/sk89q/worldedit/cli/CLIWorld.java +++ b/worldedit-cli/src/main/java/com/sk89q/worldedit/cli/CLIWorld.java @@ -41,4 +41,5 @@ public interface CLIWorld { * @param dirty if dirty */ void setDirty(boolean dirty); + } diff --git a/worldedit-cli/src/main/java/com/sk89q/worldedit/cli/CLIWorldEdit.java b/worldedit-cli/src/main/java/com/sk89q/worldedit/cli/CLIWorldEdit.java index 0f38e566f..77559b779 100644 --- a/worldedit-cli/src/main/java/com/sk89q/worldedit/cli/CLIWorldEdit.java +++ b/worldedit-cli/src/main/java/com/sk89q/worldedit/cli/CLIWorldEdit.java @@ -301,7 +301,10 @@ public class CLIWorldEdit { String fileArg = cmd.getOptionValue('f'); File file; if (fileArg == null) { - String[] formats = Arrays.copyOf(ClipboardFormats.getFileExtensionArray(), ClipboardFormats.getFileExtensionArray().length + 1); + String[] formats = Arrays.copyOf( + ClipboardFormats.getFileExtensionArray(), + ClipboardFormats.getFileExtensionArray().length + 1 + ); formats[formats.length - 1] = "dat"; file = app.commandSender.openFileOpenDialog(formats); } else { @@ -322,7 +325,8 @@ public class CLIWorldEdit { Files.newInputStream(file.toPath(), StandardOpenOption.READ) )) { dataVersion = dataVersionReader.getDataVersion() - .orElseThrow(() -> new IllegalArgumentException("Failed to obtain data version from schematic.")); + .orElseThrow(() -> new IllegalArgumentException( + "Failed to obtain data version from schematic.")); } } else { dataVersion = Constants.DATA_VERSION_MC_1_13_2; @@ -330,7 +334,10 @@ public class CLIWorldEdit { app.platform.setDataVersion(dataVersion); app.onStarted(); ClipboardWorld world; - try (ClipboardReader clipboardReader = format.getReader(Files.newInputStream(file.toPath(), StandardOpenOption.READ))) { + try (ClipboardReader clipboardReader = format.getReader(Files.newInputStream( + file.toPath(), + StandardOpenOption.READ + ))) { world = new ClipboardWorld( file, clipboardReader.read(), @@ -372,4 +379,5 @@ public class CLIWorldEdit { System.exit(exitCode); } + } diff --git a/worldedit-cli/src/main/java/com/sk89q/worldedit/cli/data/FileRegistries.java b/worldedit-cli/src/main/java/com/sk89q/worldedit/cli/data/FileRegistries.java index f71606495..42e2c9a1e 100644 --- a/worldedit-cli/src/main/java/com/sk89q/worldedit/cli/data/FileRegistries.java +++ b/worldedit-cli/src/main/java/com/sk89q/worldedit/cli/data/FileRegistries.java @@ -45,12 +45,17 @@ public class FileRegistries { } public void loadDataFiles() { - ResourceLoader resourceLoader = WorldEdit.getInstance().getPlatformManager().queryCapability(Capability.CONFIGURATION).getResourceLoader(); + ResourceLoader resourceLoader = WorldEdit + .getInstance() + .getPlatformManager() + .queryCapability(Capability.CONFIGURATION) + .getResourceLoader(); try { URL url = resourceLoader.getResource(FileRegistries.class, app.getPlatform().getDataVersion() + ".json"); this.dataFile = gson.fromJson(Resources.toString(url, StandardCharsets.UTF_8), DataFile.class); } catch (IOException e) { - throw new RuntimeException("The provided file is not compatible with this version of WorldEdit-CLI. Please update or report this."); + throw new RuntimeException( + "The provided file is not compatible with this version of WorldEdit-CLI. Please update or report this."); } } @@ -59,16 +64,21 @@ public class FileRegistries { } public static class BlockManifest { + public String defaultstate; public Map properties; + } public static class BlockProperty { + public List values; public String type; + } public static class DataFile { + public Map> itemtags; public Map> blocktags; public Map> entitytags; @@ -76,5 +86,7 @@ public class FileRegistries { public List entities; public List biomes; public Map blocks; + } + } diff --git a/worldedit-cli/src/main/java/com/sk89q/worldedit/cli/schematic/ClipboardWorld.java b/worldedit-cli/src/main/java/com/sk89q/worldedit/cli/schematic/ClipboardWorld.java index 5873b7185..b448b8048 100644 --- a/worldedit-cli/src/main/java/com/sk89q/worldedit/cli/schematic/ClipboardWorld.java +++ b/worldedit-cli/src/main/java/com/sk89q/worldedit/cli/schematic/ClipboardWorld.java @@ -49,13 +49,13 @@ import com.sk89q.worldedit.world.block.BaseBlock; import com.sk89q.worldedit.world.block.BlockState; import com.sk89q.worldedit.world.block.BlockStateHolder; +import javax.annotation.Nullable; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.util.List; import java.util.Locale; import java.util.Set; -import javax.annotation.Nullable; public class ClipboardWorld extends AbstractWorld implements Clipboard, CLIWorld { @@ -97,13 +97,15 @@ public class ClipboardWorld extends AbstractWorld implements Clipboard, CLIWorld } @Override - public > boolean setBlock(BlockVector3 position, B block, SideEffectSet sideEffects) throws WorldEditException { + public > boolean setBlock(BlockVector3 position, B block, SideEffectSet sideEffects) throws + WorldEditException { dirty = true; return clipboard.setBlock(position, block); } @Override - public Set applySideEffects(BlockVector3 position, BlockState previousType, SideEffectSet sideEffectSet) throws WorldEditException { + public Set applySideEffects(BlockVector3 position, BlockState previousType, SideEffectSet sideEffectSet) throws + WorldEditException { return ImmutableSet.of(); } @@ -251,4 +253,5 @@ public class ClipboardWorld extends AbstractWorld implements Clipboard, CLIWorld public void setDirty(boolean dirty) { this.dirty = dirty; } + } diff --git a/worldedit-cli/src/main/resources/com/sk89q/worldedit/cli/data/1631.json b/worldedit-cli/src/main/resources/com/sk89q/worldedit/cli/data/1631.json index 7d0e190e1..ed5006792 100644 --- a/worldedit-cli/src/main/resources/com/sk89q/worldedit/cli/data/1631.json +++ b/worldedit-cli/src/main/resources/com/sk89q/worldedit/cli/data/1631.json @@ -1 +1,10517 @@ -{"blocks":{"minecraft:acacia_button":{"properties":{"face":{"values":["floor","wall","ceiling"],"type":"enum"},"facing":{"values":["north","south","west","east"],"type":"direction"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:acacia_button[face=wall,facing=north,powered=false]"},"minecraft:acacia_door":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["upper","lower"],"type":"enum"},"hinge":{"values":["left","right"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:acacia_door[facing=north,half=lower,hinge=left,open=false,powered=false]"},"minecraft:acacia_fence":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:acacia_fence[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:acacia_fence_gate":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"in_wall":{"values":["true","false"],"type":"bool"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:acacia_fence_gate[facing=north,in_wall=false,open=false,powered=false]"},"minecraft:acacia_leaves":{"properties":{"distance":{"values":["1","2","3","4","5","6","7"],"type":"int"},"persistent":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:acacia_leaves[distance=7,persistent=false]"},"minecraft:acacia_log":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:acacia_log[axis=y]"},"minecraft:acacia_planks":{"properties":{},"defaultstate":"minecraft:acacia_planks"},"minecraft:acacia_pressure_plate":{"properties":{"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:acacia_pressure_plate[powered=false]"},"minecraft:acacia_sapling":{"properties":{"stage":{"values":["0","1"],"type":"int"}},"defaultstate":"minecraft:acacia_sapling[stage=0]"},"minecraft:acacia_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:acacia_slab[type=bottom,waterlogged=false]"},"minecraft:acacia_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:acacia_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:acacia_trapdoor":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:acacia_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]"},"minecraft:acacia_wood":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:acacia_wood[axis=y]"},"minecraft:activator_rail":{"properties":{"powered":{"values":["true","false"],"type":"bool"},"shape":{"values":["north_south","east_west","ascending_east","ascending_west","ascending_north","ascending_south"],"type":"enum"}},"defaultstate":"minecraft:activator_rail[powered=false,shape=north_south]"},"minecraft:air":{"properties":{},"defaultstate":"minecraft:air"},"minecraft:allium":{"properties":{},"defaultstate":"minecraft:allium"},"minecraft:andesite":{"properties":{},"defaultstate":"minecraft:andesite"},"minecraft:anvil":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:anvil[facing=north]"},"minecraft:attached_melon_stem":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:attached_melon_stem[facing=north]"},"minecraft:attached_pumpkin_stem":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:attached_pumpkin_stem[facing=north]"},"minecraft:azure_bluet":{"properties":{},"defaultstate":"minecraft:azure_bluet"},"minecraft:barrier":{"properties":{},"defaultstate":"minecraft:barrier"},"minecraft:beacon":{"properties":{},"defaultstate":"minecraft:beacon"},"minecraft:bedrock":{"properties":{},"defaultstate":"minecraft:bedrock"},"minecraft:beetroots":{"properties":{"age":{"values":["0","1","2","3"],"type":"int"}},"defaultstate":"minecraft:beetroots[age=0]"},"minecraft:birch_button":{"properties":{"face":{"values":["floor","wall","ceiling"],"type":"enum"},"facing":{"values":["north","south","west","east"],"type":"direction"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:birch_button[face=wall,facing=north,powered=false]"},"minecraft:birch_door":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["upper","lower"],"type":"enum"},"hinge":{"values":["left","right"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:birch_door[facing=north,half=lower,hinge=left,open=false,powered=false]"},"minecraft:birch_fence":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:birch_fence[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:birch_fence_gate":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"in_wall":{"values":["true","false"],"type":"bool"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:birch_fence_gate[facing=north,in_wall=false,open=false,powered=false]"},"minecraft:birch_leaves":{"properties":{"distance":{"values":["1","2","3","4","5","6","7"],"type":"int"},"persistent":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:birch_leaves[distance=7,persistent=false]"},"minecraft:birch_log":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:birch_log[axis=y]"},"minecraft:birch_planks":{"properties":{},"defaultstate":"minecraft:birch_planks"},"minecraft:birch_pressure_plate":{"properties":{"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:birch_pressure_plate[powered=false]"},"minecraft:birch_sapling":{"properties":{"stage":{"values":["0","1"],"type":"int"}},"defaultstate":"minecraft:birch_sapling[stage=0]"},"minecraft:birch_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:birch_slab[type=bottom,waterlogged=false]"},"minecraft:birch_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:birch_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:birch_trapdoor":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:birch_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]"},"minecraft:birch_wood":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:birch_wood[axis=y]"},"minecraft:black_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:black_banner[rotation=0]"},"minecraft:black_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:black_bed[facing=north,occupied=false,part=foot]"},"minecraft:black_carpet":{"properties":{},"defaultstate":"minecraft:black_carpet"},"minecraft:black_concrete":{"properties":{},"defaultstate":"minecraft:black_concrete"},"minecraft:black_concrete_powder":{"properties":{},"defaultstate":"minecraft:black_concrete_powder"},"minecraft:black_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:black_glazed_terracotta[facing=north]"},"minecraft:black_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:black_shulker_box[facing=up]"},"minecraft:black_stained_glass":{"properties":{},"defaultstate":"minecraft:black_stained_glass"},"minecraft:black_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:black_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:black_terracotta":{"properties":{},"defaultstate":"minecraft:black_terracotta"},"minecraft:black_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:black_wall_banner[facing=north]"},"minecraft:black_wool":{"properties":{},"defaultstate":"minecraft:black_wool"},"minecraft:blue_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:blue_banner[rotation=0]"},"minecraft:blue_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:blue_bed[facing=north,occupied=false,part=foot]"},"minecraft:blue_carpet":{"properties":{},"defaultstate":"minecraft:blue_carpet"},"minecraft:blue_concrete":{"properties":{},"defaultstate":"minecraft:blue_concrete"},"minecraft:blue_concrete_powder":{"properties":{},"defaultstate":"minecraft:blue_concrete_powder"},"minecraft:blue_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:blue_glazed_terracotta[facing=north]"},"minecraft:blue_ice":{"properties":{},"defaultstate":"minecraft:blue_ice"},"minecraft:blue_orchid":{"properties":{},"defaultstate":"minecraft:blue_orchid"},"minecraft:blue_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:blue_shulker_box[facing=up]"},"minecraft:blue_stained_glass":{"properties":{},"defaultstate":"minecraft:blue_stained_glass"},"minecraft:blue_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:blue_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:blue_terracotta":{"properties":{},"defaultstate":"minecraft:blue_terracotta"},"minecraft:blue_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:blue_wall_banner[facing=north]"},"minecraft:blue_wool":{"properties":{},"defaultstate":"minecraft:blue_wool"},"minecraft:bone_block":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:bone_block[axis=y]"},"minecraft:bookshelf":{"properties":{},"defaultstate":"minecraft:bookshelf"},"minecraft:brain_coral":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:brain_coral[waterlogged=true]"},"minecraft:brain_coral_block":{"properties":{},"defaultstate":"minecraft:brain_coral_block"},"minecraft:brain_coral_fan":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:brain_coral_fan[waterlogged=true]"},"minecraft:brain_coral_wall_fan":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:brain_coral_wall_fan[facing=north,waterlogged=true]"},"minecraft:brewing_stand":{"properties":{"has_bottle_0":{"values":["true","false"],"type":"bool"},"has_bottle_1":{"values":["true","false"],"type":"bool"},"has_bottle_2":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:brewing_stand[has_bottle_0=false,has_bottle_1=false,has_bottle_2=false]"},"minecraft:brick_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:brick_slab[type=bottom,waterlogged=false]"},"minecraft:brick_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:bricks":{"properties":{},"defaultstate":"minecraft:bricks"},"minecraft:brown_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:brown_banner[rotation=0]"},"minecraft:brown_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:brown_bed[facing=north,occupied=false,part=foot]"},"minecraft:brown_carpet":{"properties":{},"defaultstate":"minecraft:brown_carpet"},"minecraft:brown_concrete":{"properties":{},"defaultstate":"minecraft:brown_concrete"},"minecraft:brown_concrete_powder":{"properties":{},"defaultstate":"minecraft:brown_concrete_powder"},"minecraft:brown_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:brown_glazed_terracotta[facing=north]"},"minecraft:brown_mushroom":{"properties":{},"defaultstate":"minecraft:brown_mushroom"},"minecraft:brown_mushroom_block":{"properties":{"down":{"values":["true","false"],"type":"bool"},"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:brown_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true]"},"minecraft:brown_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:brown_shulker_box[facing=up]"},"minecraft:brown_stained_glass":{"properties":{},"defaultstate":"minecraft:brown_stained_glass"},"minecraft:brown_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:brown_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:brown_terracotta":{"properties":{},"defaultstate":"minecraft:brown_terracotta"},"minecraft:brown_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:brown_wall_banner[facing=north]"},"minecraft:brown_wool":{"properties":{},"defaultstate":"minecraft:brown_wool"},"minecraft:bubble_column":{"properties":{"drag":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:bubble_column[drag=true]"},"minecraft:bubble_coral":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:bubble_coral[waterlogged=true]"},"minecraft:bubble_coral_block":{"properties":{},"defaultstate":"minecraft:bubble_coral_block"},"minecraft:bubble_coral_fan":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:bubble_coral_fan[waterlogged=true]"},"minecraft:bubble_coral_wall_fan":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:bubble_coral_wall_fan[facing=north,waterlogged=true]"},"minecraft:cactus":{"properties":{"age":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:cactus[age=0]"},"minecraft:cake":{"properties":{"bites":{"values":["0","1","2","3","4","5","6"],"type":"int"}},"defaultstate":"minecraft:cake[bites=0]"},"minecraft:carrots":{"properties":{"age":{"values":["0","1","2","3","4","5","6","7"],"type":"int"}},"defaultstate":"minecraft:carrots[age=0]"},"minecraft:carved_pumpkin":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:carved_pumpkin[facing=north]"},"minecraft:cauldron":{"properties":{"level":{"values":["0","1","2","3"],"type":"int"}},"defaultstate":"minecraft:cauldron[level=0]"},"minecraft:cave_air":{"properties":{},"defaultstate":"minecraft:cave_air"},"minecraft:chain_command_block":{"properties":{"conditional":{"values":["true","false"],"type":"bool"},"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:chain_command_block[conditional=false,facing=north]"},"minecraft:chest":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"type":{"values":["single","left","right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:chest[facing=north,type=single,waterlogged=false]"},"minecraft:chipped_anvil":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:chipped_anvil[facing=north]"},"minecraft:chiseled_quartz_block":{"properties":{},"defaultstate":"minecraft:chiseled_quartz_block"},"minecraft:chiseled_red_sandstone":{"properties":{},"defaultstate":"minecraft:chiseled_red_sandstone"},"minecraft:chiseled_sandstone":{"properties":{},"defaultstate":"minecraft:chiseled_sandstone"},"minecraft:chiseled_stone_bricks":{"properties":{},"defaultstate":"minecraft:chiseled_stone_bricks"},"minecraft:chorus_flower":{"properties":{"age":{"values":["0","1","2","3","4","5"],"type":"int"}},"defaultstate":"minecraft:chorus_flower[age=0]"},"minecraft:chorus_plant":{"properties":{"down":{"values":["true","false"],"type":"bool"},"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:chorus_plant[down=false,east=false,north=false,south=false,up=false,west=false]"},"minecraft:clay":{"properties":{},"defaultstate":"minecraft:clay"},"minecraft:coal_block":{"properties":{},"defaultstate":"minecraft:coal_block"},"minecraft:coal_ore":{"properties":{},"defaultstate":"minecraft:coal_ore"},"minecraft:coarse_dirt":{"properties":{},"defaultstate":"minecraft:coarse_dirt"},"minecraft:cobblestone":{"properties":{},"defaultstate":"minecraft:cobblestone"},"minecraft:cobblestone_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:cobblestone_slab[type=bottom,waterlogged=false]"},"minecraft:cobblestone_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:cobblestone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:cobblestone_wall":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:cobblestone_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]"},"minecraft:cobweb":{"properties":{},"defaultstate":"minecraft:cobweb"},"minecraft:cocoa":{"properties":{"age":{"values":["0","1","2"],"type":"int"},"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:cocoa[age=0,facing=north]"},"minecraft:command_block":{"properties":{"conditional":{"values":["true","false"],"type":"bool"},"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:command_block[conditional=false,facing=north]"},"minecraft:comparator":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"mode":{"values":["compare","subtract"],"type":"enum"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:comparator[facing=north,mode=compare,powered=false]"},"minecraft:conduit":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:conduit[waterlogged=true]"},"minecraft:cracked_stone_bricks":{"properties":{},"defaultstate":"minecraft:cracked_stone_bricks"},"minecraft:crafting_table":{"properties":{},"defaultstate":"minecraft:crafting_table"},"minecraft:creeper_head":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:creeper_head[rotation=0]"},"minecraft:creeper_wall_head":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:creeper_wall_head[facing=north]"},"minecraft:cut_red_sandstone":{"properties":{},"defaultstate":"minecraft:cut_red_sandstone"},"minecraft:cut_sandstone":{"properties":{},"defaultstate":"minecraft:cut_sandstone"},"minecraft:cyan_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:cyan_banner[rotation=0]"},"minecraft:cyan_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:cyan_bed[facing=north,occupied=false,part=foot]"},"minecraft:cyan_carpet":{"properties":{},"defaultstate":"minecraft:cyan_carpet"},"minecraft:cyan_concrete":{"properties":{},"defaultstate":"minecraft:cyan_concrete"},"minecraft:cyan_concrete_powder":{"properties":{},"defaultstate":"minecraft:cyan_concrete_powder"},"minecraft:cyan_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:cyan_glazed_terracotta[facing=north]"},"minecraft:cyan_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:cyan_shulker_box[facing=up]"},"minecraft:cyan_stained_glass":{"properties":{},"defaultstate":"minecraft:cyan_stained_glass"},"minecraft:cyan_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:cyan_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:cyan_terracotta":{"properties":{},"defaultstate":"minecraft:cyan_terracotta"},"minecraft:cyan_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:cyan_wall_banner[facing=north]"},"minecraft:cyan_wool":{"properties":{},"defaultstate":"minecraft:cyan_wool"},"minecraft:damaged_anvil":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:damaged_anvil[facing=north]"},"minecraft:dandelion":{"properties":{},"defaultstate":"minecraft:dandelion"},"minecraft:dark_oak_button":{"properties":{"face":{"values":["floor","wall","ceiling"],"type":"enum"},"facing":{"values":["north","south","west","east"],"type":"direction"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dark_oak_button[face=wall,facing=north,powered=false]"},"minecraft:dark_oak_door":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["upper","lower"],"type":"enum"},"hinge":{"values":["left","right"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dark_oak_door[facing=north,half=lower,hinge=left,open=false,powered=false]"},"minecraft:dark_oak_fence":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dark_oak_fence[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:dark_oak_fence_gate":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"in_wall":{"values":["true","false"],"type":"bool"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dark_oak_fence_gate[facing=north,in_wall=false,open=false,powered=false]"},"minecraft:dark_oak_leaves":{"properties":{"distance":{"values":["1","2","3","4","5","6","7"],"type":"int"},"persistent":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dark_oak_leaves[distance=7,persistent=false]"},"minecraft:dark_oak_log":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:dark_oak_log[axis=y]"},"minecraft:dark_oak_planks":{"properties":{},"defaultstate":"minecraft:dark_oak_planks"},"minecraft:dark_oak_pressure_plate":{"properties":{"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dark_oak_pressure_plate[powered=false]"},"minecraft:dark_oak_sapling":{"properties":{"stage":{"values":["0","1"],"type":"int"}},"defaultstate":"minecraft:dark_oak_sapling[stage=0]"},"minecraft:dark_oak_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dark_oak_slab[type=bottom,waterlogged=false]"},"minecraft:dark_oak_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dark_oak_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:dark_oak_trapdoor":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dark_oak_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]"},"minecraft:dark_oak_wood":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:dark_oak_wood[axis=y]"},"minecraft:dark_prismarine":{"properties":{},"defaultstate":"minecraft:dark_prismarine"},"minecraft:dark_prismarine_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dark_prismarine_slab[type=bottom,waterlogged=false]"},"minecraft:dark_prismarine_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dark_prismarine_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:daylight_detector":{"properties":{"inverted":{"values":["true","false"],"type":"bool"},"power":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:daylight_detector[inverted=false,power=0]"},"minecraft:dead_brain_coral":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_brain_coral[waterlogged=true]"},"minecraft:dead_brain_coral_block":{"properties":{},"defaultstate":"minecraft:dead_brain_coral_block"},"minecraft:dead_brain_coral_fan":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_brain_coral_fan[waterlogged=true]"},"minecraft:dead_brain_coral_wall_fan":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_brain_coral_wall_fan[facing=north,waterlogged=true]"},"minecraft:dead_bubble_coral":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_bubble_coral[waterlogged=true]"},"minecraft:dead_bubble_coral_block":{"properties":{},"defaultstate":"minecraft:dead_bubble_coral_block"},"minecraft:dead_bubble_coral_fan":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_bubble_coral_fan[waterlogged=true]"},"minecraft:dead_bubble_coral_wall_fan":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_bubble_coral_wall_fan[facing=north,waterlogged=true]"},"minecraft:dead_bush":{"properties":{},"defaultstate":"minecraft:dead_bush"},"minecraft:dead_fire_coral":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_fire_coral[waterlogged=true]"},"minecraft:dead_fire_coral_block":{"properties":{},"defaultstate":"minecraft:dead_fire_coral_block"},"minecraft:dead_fire_coral_fan":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_fire_coral_fan[waterlogged=true]"},"minecraft:dead_fire_coral_wall_fan":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_fire_coral_wall_fan[facing=north,waterlogged=true]"},"minecraft:dead_horn_coral":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_horn_coral[waterlogged=true]"},"minecraft:dead_horn_coral_block":{"properties":{},"defaultstate":"minecraft:dead_horn_coral_block"},"minecraft:dead_horn_coral_fan":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_horn_coral_fan[waterlogged=true]"},"minecraft:dead_horn_coral_wall_fan":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_horn_coral_wall_fan[facing=north,waterlogged=true]"},"minecraft:dead_tube_coral":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_tube_coral[waterlogged=true]"},"minecraft:dead_tube_coral_block":{"properties":{},"defaultstate":"minecraft:dead_tube_coral_block"},"minecraft:dead_tube_coral_fan":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_tube_coral_fan[waterlogged=true]"},"minecraft:dead_tube_coral_wall_fan":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_tube_coral_wall_fan[facing=north,waterlogged=true]"},"minecraft:detector_rail":{"properties":{"powered":{"values":["true","false"],"type":"bool"},"shape":{"values":["north_south","east_west","ascending_east","ascending_west","ascending_north","ascending_south"],"type":"enum"}},"defaultstate":"minecraft:detector_rail[powered=false,shape=north_south]"},"minecraft:diamond_block":{"properties":{},"defaultstate":"minecraft:diamond_block"},"minecraft:diamond_ore":{"properties":{},"defaultstate":"minecraft:diamond_ore"},"minecraft:diorite":{"properties":{},"defaultstate":"minecraft:diorite"},"minecraft:dirt":{"properties":{},"defaultstate":"minecraft:dirt"},"minecraft:dispenser":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"},"triggered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dispenser[facing=north,triggered=false]"},"minecraft:dragon_egg":{"properties":{},"defaultstate":"minecraft:dragon_egg"},"minecraft:dragon_head":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:dragon_head[rotation=0]"},"minecraft:dragon_wall_head":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:dragon_wall_head[facing=north]"},"minecraft:dried_kelp_block":{"properties":{},"defaultstate":"minecraft:dried_kelp_block"},"minecraft:dropper":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"},"triggered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dropper[facing=north,triggered=false]"},"minecraft:emerald_block":{"properties":{},"defaultstate":"minecraft:emerald_block"},"minecraft:emerald_ore":{"properties":{},"defaultstate":"minecraft:emerald_ore"},"minecraft:enchanting_table":{"properties":{},"defaultstate":"minecraft:enchanting_table"},"minecraft:end_gateway":{"properties":{},"defaultstate":"minecraft:end_gateway"},"minecraft:end_portal":{"properties":{},"defaultstate":"minecraft:end_portal"},"minecraft:end_portal_frame":{"properties":{"eye":{"values":["true","false"],"type":"bool"},"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:end_portal_frame[eye=false,facing=north]"},"minecraft:end_rod":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:end_rod[facing=up]"},"minecraft:end_stone":{"properties":{},"defaultstate":"minecraft:end_stone"},"minecraft:end_stone_bricks":{"properties":{},"defaultstate":"minecraft:end_stone_bricks"},"minecraft:ender_chest":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:ender_chest[facing=north,waterlogged=false]"},"minecraft:farmland":{"properties":{"moisture":{"values":["0","1","2","3","4","5","6","7"],"type":"int"}},"defaultstate":"minecraft:farmland[moisture=0]"},"minecraft:fern":{"properties":{},"defaultstate":"minecraft:fern"},"minecraft:fire":{"properties":{"age":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"},"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:fire[age=0,east=false,north=false,south=false,up=false,west=false]"},"minecraft:fire_coral":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:fire_coral[waterlogged=true]"},"minecraft:fire_coral_block":{"properties":{},"defaultstate":"minecraft:fire_coral_block"},"minecraft:fire_coral_fan":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:fire_coral_fan[waterlogged=true]"},"minecraft:fire_coral_wall_fan":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:fire_coral_wall_fan[facing=north,waterlogged=true]"},"minecraft:flower_pot":{"properties":{},"defaultstate":"minecraft:flower_pot"},"minecraft:frosted_ice":{"properties":{"age":{"values":["0","1","2","3"],"type":"int"}},"defaultstate":"minecraft:frosted_ice[age=0]"},"minecraft:furnace":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"lit":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:furnace[facing=north,lit=false]"},"minecraft:glass":{"properties":{},"defaultstate":"minecraft:glass"},"minecraft:glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:glowstone":{"properties":{},"defaultstate":"minecraft:glowstone"},"minecraft:gold_block":{"properties":{},"defaultstate":"minecraft:gold_block"},"minecraft:gold_ore":{"properties":{},"defaultstate":"minecraft:gold_ore"},"minecraft:granite":{"properties":{},"defaultstate":"minecraft:granite"},"minecraft:grass":{"properties":{},"defaultstate":"minecraft:grass"},"minecraft:grass_block":{"properties":{"snowy":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:grass_block[snowy=false]"},"minecraft:grass_path":{"properties":{},"defaultstate":"minecraft:grass_path"},"minecraft:gravel":{"properties":{},"defaultstate":"minecraft:gravel"},"minecraft:gray_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:gray_banner[rotation=0]"},"minecraft:gray_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:gray_bed[facing=north,occupied=false,part=foot]"},"minecraft:gray_carpet":{"properties":{},"defaultstate":"minecraft:gray_carpet"},"minecraft:gray_concrete":{"properties":{},"defaultstate":"minecraft:gray_concrete"},"minecraft:gray_concrete_powder":{"properties":{},"defaultstate":"minecraft:gray_concrete_powder"},"minecraft:gray_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:gray_glazed_terracotta[facing=north]"},"minecraft:gray_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:gray_shulker_box[facing=up]"},"minecraft:gray_stained_glass":{"properties":{},"defaultstate":"minecraft:gray_stained_glass"},"minecraft:gray_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:gray_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:gray_terracotta":{"properties":{},"defaultstate":"minecraft:gray_terracotta"},"minecraft:gray_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:gray_wall_banner[facing=north]"},"minecraft:gray_wool":{"properties":{},"defaultstate":"minecraft:gray_wool"},"minecraft:green_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:green_banner[rotation=0]"},"minecraft:green_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:green_bed[facing=north,occupied=false,part=foot]"},"minecraft:green_carpet":{"properties":{},"defaultstate":"minecraft:green_carpet"},"minecraft:green_concrete":{"properties":{},"defaultstate":"minecraft:green_concrete"},"minecraft:green_concrete_powder":{"properties":{},"defaultstate":"minecraft:green_concrete_powder"},"minecraft:green_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:green_glazed_terracotta[facing=north]"},"minecraft:green_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:green_shulker_box[facing=up]"},"minecraft:green_stained_glass":{"properties":{},"defaultstate":"minecraft:green_stained_glass"},"minecraft:green_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:green_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:green_terracotta":{"properties":{},"defaultstate":"minecraft:green_terracotta"},"minecraft:green_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:green_wall_banner[facing=north]"},"minecraft:green_wool":{"properties":{},"defaultstate":"minecraft:green_wool"},"minecraft:hay_block":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:hay_block[axis=y]"},"minecraft:heavy_weighted_pressure_plate":{"properties":{"power":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:heavy_weighted_pressure_plate[power=0]"},"minecraft:hopper":{"properties":{"enabled":{"values":["true","false"],"type":"bool"},"facing":{"values":["down","north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:hopper[enabled=true,facing=down]"},"minecraft:horn_coral":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:horn_coral[waterlogged=true]"},"minecraft:horn_coral_block":{"properties":{},"defaultstate":"minecraft:horn_coral_block"},"minecraft:horn_coral_fan":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:horn_coral_fan[waterlogged=true]"},"minecraft:horn_coral_wall_fan":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:horn_coral_wall_fan[facing=north,waterlogged=true]"},"minecraft:ice":{"properties":{},"defaultstate":"minecraft:ice"},"minecraft:infested_chiseled_stone_bricks":{"properties":{},"defaultstate":"minecraft:infested_chiseled_stone_bricks"},"minecraft:infested_cobblestone":{"properties":{},"defaultstate":"minecraft:infested_cobblestone"},"minecraft:infested_cracked_stone_bricks":{"properties":{},"defaultstate":"minecraft:infested_cracked_stone_bricks"},"minecraft:infested_mossy_stone_bricks":{"properties":{},"defaultstate":"minecraft:infested_mossy_stone_bricks"},"minecraft:infested_stone":{"properties":{},"defaultstate":"minecraft:infested_stone"},"minecraft:infested_stone_bricks":{"properties":{},"defaultstate":"minecraft:infested_stone_bricks"},"minecraft:iron_bars":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:iron_bars[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:iron_block":{"properties":{},"defaultstate":"minecraft:iron_block"},"minecraft:iron_door":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["upper","lower"],"type":"enum"},"hinge":{"values":["left","right"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:iron_door[facing=north,half=lower,hinge=left,open=false,powered=false]"},"minecraft:iron_ore":{"properties":{},"defaultstate":"minecraft:iron_ore"},"minecraft:iron_trapdoor":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:iron_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]"},"minecraft:jack_o_lantern":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:jack_o_lantern[facing=north]"},"minecraft:jukebox":{"properties":{"has_record":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:jukebox[has_record=false]"},"minecraft:jungle_button":{"properties":{"face":{"values":["floor","wall","ceiling"],"type":"enum"},"facing":{"values":["north","south","west","east"],"type":"direction"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:jungle_button[face=wall,facing=north,powered=false]"},"minecraft:jungle_door":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["upper","lower"],"type":"enum"},"hinge":{"values":["left","right"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:jungle_door[facing=north,half=lower,hinge=left,open=false,powered=false]"},"minecraft:jungle_fence":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:jungle_fence[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:jungle_fence_gate":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"in_wall":{"values":["true","false"],"type":"bool"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:jungle_fence_gate[facing=north,in_wall=false,open=false,powered=false]"},"minecraft:jungle_leaves":{"properties":{"distance":{"values":["1","2","3","4","5","6","7"],"type":"int"},"persistent":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:jungle_leaves[distance=7,persistent=false]"},"minecraft:jungle_log":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:jungle_log[axis=y]"},"minecraft:jungle_planks":{"properties":{},"defaultstate":"minecraft:jungle_planks"},"minecraft:jungle_pressure_plate":{"properties":{"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:jungle_pressure_plate[powered=false]"},"minecraft:jungle_sapling":{"properties":{"stage":{"values":["0","1"],"type":"int"}},"defaultstate":"minecraft:jungle_sapling[stage=0]"},"minecraft:jungle_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:jungle_slab[type=bottom,waterlogged=false]"},"minecraft:jungle_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:jungle_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:jungle_trapdoor":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:jungle_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]"},"minecraft:jungle_wood":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:jungle_wood[axis=y]"},"minecraft:kelp":{"properties":{"age":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25"],"type":"int"}},"defaultstate":"minecraft:kelp[age=0]"},"minecraft:kelp_plant":{"properties":{},"defaultstate":"minecraft:kelp_plant"},"minecraft:ladder":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:ladder[facing=north,waterlogged=false]"},"minecraft:lapis_block":{"properties":{},"defaultstate":"minecraft:lapis_block"},"minecraft:lapis_ore":{"properties":{},"defaultstate":"minecraft:lapis_ore"},"minecraft:large_fern":{"properties":{"half":{"values":["upper","lower"],"type":"enum"}},"defaultstate":"minecraft:large_fern[half=lower]"},"minecraft:lava":{"properties":{"level":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:lava[level=0]"},"minecraft:lever":{"properties":{"face":{"values":["floor","wall","ceiling"],"type":"enum"},"facing":{"values":["north","south","west","east"],"type":"direction"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:lever[face=wall,facing=north,powered=false]"},"minecraft:light_blue_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:light_blue_banner[rotation=0]"},"minecraft:light_blue_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:light_blue_bed[facing=north,occupied=false,part=foot]"},"minecraft:light_blue_carpet":{"properties":{},"defaultstate":"minecraft:light_blue_carpet"},"minecraft:light_blue_concrete":{"properties":{},"defaultstate":"minecraft:light_blue_concrete"},"minecraft:light_blue_concrete_powder":{"properties":{},"defaultstate":"minecraft:light_blue_concrete_powder"},"minecraft:light_blue_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:light_blue_glazed_terracotta[facing=north]"},"minecraft:light_blue_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:light_blue_shulker_box[facing=up]"},"minecraft:light_blue_stained_glass":{"properties":{},"defaultstate":"minecraft:light_blue_stained_glass"},"minecraft:light_blue_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:light_blue_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:light_blue_terracotta":{"properties":{},"defaultstate":"minecraft:light_blue_terracotta"},"minecraft:light_blue_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:light_blue_wall_banner[facing=north]"},"minecraft:light_blue_wool":{"properties":{},"defaultstate":"minecraft:light_blue_wool"},"minecraft:light_gray_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:light_gray_banner[rotation=0]"},"minecraft:light_gray_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:light_gray_bed[facing=north,occupied=false,part=foot]"},"minecraft:light_gray_carpet":{"properties":{},"defaultstate":"minecraft:light_gray_carpet"},"minecraft:light_gray_concrete":{"properties":{},"defaultstate":"minecraft:light_gray_concrete"},"minecraft:light_gray_concrete_powder":{"properties":{},"defaultstate":"minecraft:light_gray_concrete_powder"},"minecraft:light_gray_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:light_gray_glazed_terracotta[facing=north]"},"minecraft:light_gray_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:light_gray_shulker_box[facing=up]"},"minecraft:light_gray_stained_glass":{"properties":{},"defaultstate":"minecraft:light_gray_stained_glass"},"minecraft:light_gray_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:light_gray_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:light_gray_terracotta":{"properties":{},"defaultstate":"minecraft:light_gray_terracotta"},"minecraft:light_gray_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:light_gray_wall_banner[facing=north]"},"minecraft:light_gray_wool":{"properties":{},"defaultstate":"minecraft:light_gray_wool"},"minecraft:light_weighted_pressure_plate":{"properties":{"power":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:light_weighted_pressure_plate[power=0]"},"minecraft:lilac":{"properties":{"half":{"values":["upper","lower"],"type":"enum"}},"defaultstate":"minecraft:lilac[half=lower]"},"minecraft:lily_pad":{"properties":{},"defaultstate":"minecraft:lily_pad"},"minecraft:lime_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:lime_banner[rotation=0]"},"minecraft:lime_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:lime_bed[facing=north,occupied=false,part=foot]"},"minecraft:lime_carpet":{"properties":{},"defaultstate":"minecraft:lime_carpet"},"minecraft:lime_concrete":{"properties":{},"defaultstate":"minecraft:lime_concrete"},"minecraft:lime_concrete_powder":{"properties":{},"defaultstate":"minecraft:lime_concrete_powder"},"minecraft:lime_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:lime_glazed_terracotta[facing=north]"},"minecraft:lime_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:lime_shulker_box[facing=up]"},"minecraft:lime_stained_glass":{"properties":{},"defaultstate":"minecraft:lime_stained_glass"},"minecraft:lime_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:lime_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:lime_terracotta":{"properties":{},"defaultstate":"minecraft:lime_terracotta"},"minecraft:lime_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:lime_wall_banner[facing=north]"},"minecraft:lime_wool":{"properties":{},"defaultstate":"minecraft:lime_wool"},"minecraft:magenta_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:magenta_banner[rotation=0]"},"minecraft:magenta_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:magenta_bed[facing=north,occupied=false,part=foot]"},"minecraft:magenta_carpet":{"properties":{},"defaultstate":"minecraft:magenta_carpet"},"minecraft:magenta_concrete":{"properties":{},"defaultstate":"minecraft:magenta_concrete"},"minecraft:magenta_concrete_powder":{"properties":{},"defaultstate":"minecraft:magenta_concrete_powder"},"minecraft:magenta_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:magenta_glazed_terracotta[facing=north]"},"minecraft:magenta_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:magenta_shulker_box[facing=up]"},"minecraft:magenta_stained_glass":{"properties":{},"defaultstate":"minecraft:magenta_stained_glass"},"minecraft:magenta_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:magenta_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:magenta_terracotta":{"properties":{},"defaultstate":"minecraft:magenta_terracotta"},"minecraft:magenta_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:magenta_wall_banner[facing=north]"},"minecraft:magenta_wool":{"properties":{},"defaultstate":"minecraft:magenta_wool"},"minecraft:magma_block":{"properties":{},"defaultstate":"minecraft:magma_block"},"minecraft:melon":{"properties":{},"defaultstate":"minecraft:melon"},"minecraft:melon_stem":{"properties":{"age":{"values":["0","1","2","3","4","5","6","7"],"type":"int"}},"defaultstate":"minecraft:melon_stem[age=0]"},"minecraft:mossy_cobblestone":{"properties":{},"defaultstate":"minecraft:mossy_cobblestone"},"minecraft:mossy_cobblestone_wall":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:mossy_cobblestone_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]"},"minecraft:mossy_stone_bricks":{"properties":{},"defaultstate":"minecraft:mossy_stone_bricks"},"minecraft:moving_piston":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"},"type":{"values":["normal","sticky"],"type":"enum"}},"defaultstate":"minecraft:moving_piston[facing=north,type=normal]"},"minecraft:mushroom_stem":{"properties":{"down":{"values":["true","false"],"type":"bool"},"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:mushroom_stem[down=true,east=true,north=true,south=true,up=true,west=true]"},"minecraft:mycelium":{"properties":{"snowy":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:mycelium[snowy=false]"},"minecraft:nether_brick_fence":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:nether_brick_fence[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:nether_brick_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:nether_brick_slab[type=bottom,waterlogged=false]"},"minecraft:nether_brick_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:nether_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:nether_bricks":{"properties":{},"defaultstate":"minecraft:nether_bricks"},"minecraft:nether_portal":{"properties":{"axis":{"values":["x","z"],"type":"enum"}},"defaultstate":"minecraft:nether_portal[axis=x]"},"minecraft:nether_quartz_ore":{"properties":{},"defaultstate":"minecraft:nether_quartz_ore"},"minecraft:nether_wart":{"properties":{"age":{"values":["0","1","2","3"],"type":"int"}},"defaultstate":"minecraft:nether_wart[age=0]"},"minecraft:nether_wart_block":{"properties":{},"defaultstate":"minecraft:nether_wart_block"},"minecraft:netherrack":{"properties":{},"defaultstate":"minecraft:netherrack"},"minecraft:note_block":{"properties":{"instrument":{"values":["harp","basedrum","snare","hat","bass","flute","bell","guitar","chime","xylophone"],"type":"enum"},"note":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24"],"type":"int"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:note_block[instrument=harp,note=0,powered=false]"},"minecraft:oak_button":{"properties":{"face":{"values":["floor","wall","ceiling"],"type":"enum"},"facing":{"values":["north","south","west","east"],"type":"direction"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:oak_button[face=wall,facing=north,powered=false]"},"minecraft:oak_door":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["upper","lower"],"type":"enum"},"hinge":{"values":["left","right"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:oak_door[facing=north,half=lower,hinge=left,open=false,powered=false]"},"minecraft:oak_fence":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:oak_fence[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:oak_fence_gate":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"in_wall":{"values":["true","false"],"type":"bool"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:oak_fence_gate[facing=north,in_wall=false,open=false,powered=false]"},"minecraft:oak_leaves":{"properties":{"distance":{"values":["1","2","3","4","5","6","7"],"type":"int"},"persistent":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:oak_leaves[distance=7,persistent=false]"},"minecraft:oak_log":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:oak_log[axis=y]"},"minecraft:oak_planks":{"properties":{},"defaultstate":"minecraft:oak_planks"},"minecraft:oak_pressure_plate":{"properties":{"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:oak_pressure_plate[powered=false]"},"minecraft:oak_sapling":{"properties":{"stage":{"values":["0","1"],"type":"int"}},"defaultstate":"minecraft:oak_sapling[stage=0]"},"minecraft:oak_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:oak_slab[type=bottom,waterlogged=false]"},"minecraft:oak_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:oak_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:oak_trapdoor":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:oak_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]"},"minecraft:oak_wood":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:oak_wood[axis=y]"},"minecraft:observer":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:observer[facing=south,powered=false]"},"minecraft:obsidian":{"properties":{},"defaultstate":"minecraft:obsidian"},"minecraft:orange_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:orange_banner[rotation=0]"},"minecraft:orange_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:orange_bed[facing=north,occupied=false,part=foot]"},"minecraft:orange_carpet":{"properties":{},"defaultstate":"minecraft:orange_carpet"},"minecraft:orange_concrete":{"properties":{},"defaultstate":"minecraft:orange_concrete"},"minecraft:orange_concrete_powder":{"properties":{},"defaultstate":"minecraft:orange_concrete_powder"},"minecraft:orange_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:orange_glazed_terracotta[facing=north]"},"minecraft:orange_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:orange_shulker_box[facing=up]"},"minecraft:orange_stained_glass":{"properties":{},"defaultstate":"minecraft:orange_stained_glass"},"minecraft:orange_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:orange_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:orange_terracotta":{"properties":{},"defaultstate":"minecraft:orange_terracotta"},"minecraft:orange_tulip":{"properties":{},"defaultstate":"minecraft:orange_tulip"},"minecraft:orange_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:orange_wall_banner[facing=north]"},"minecraft:orange_wool":{"properties":{},"defaultstate":"minecraft:orange_wool"},"minecraft:oxeye_daisy":{"properties":{},"defaultstate":"minecraft:oxeye_daisy"},"minecraft:packed_ice":{"properties":{},"defaultstate":"minecraft:packed_ice"},"minecraft:peony":{"properties":{"half":{"values":["upper","lower"],"type":"enum"}},"defaultstate":"minecraft:peony[half=lower]"},"minecraft:petrified_oak_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:petrified_oak_slab[type=bottom,waterlogged=false]"},"minecraft:pink_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:pink_banner[rotation=0]"},"minecraft:pink_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:pink_bed[facing=north,occupied=false,part=foot]"},"minecraft:pink_carpet":{"properties":{},"defaultstate":"minecraft:pink_carpet"},"minecraft:pink_concrete":{"properties":{},"defaultstate":"minecraft:pink_concrete"},"minecraft:pink_concrete_powder":{"properties":{},"defaultstate":"minecraft:pink_concrete_powder"},"minecraft:pink_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:pink_glazed_terracotta[facing=north]"},"minecraft:pink_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:pink_shulker_box[facing=up]"},"minecraft:pink_stained_glass":{"properties":{},"defaultstate":"minecraft:pink_stained_glass"},"minecraft:pink_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:pink_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:pink_terracotta":{"properties":{},"defaultstate":"minecraft:pink_terracotta"},"minecraft:pink_tulip":{"properties":{},"defaultstate":"minecraft:pink_tulip"},"minecraft:pink_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:pink_wall_banner[facing=north]"},"minecraft:pink_wool":{"properties":{},"defaultstate":"minecraft:pink_wool"},"minecraft:piston":{"properties":{"extended":{"values":["true","false"],"type":"bool"},"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:piston[extended=false,facing=north]"},"minecraft:piston_head":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"},"short":{"values":["true","false"],"type":"bool"},"type":{"values":["normal","sticky"],"type":"enum"}},"defaultstate":"minecraft:piston_head[facing=north,short=false,type=normal]"},"minecraft:player_head":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:player_head[rotation=0]"},"minecraft:player_wall_head":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:player_wall_head[facing=north]"},"minecraft:podzol":{"properties":{"snowy":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:podzol[snowy=false]"},"minecraft:polished_andesite":{"properties":{},"defaultstate":"minecraft:polished_andesite"},"minecraft:polished_diorite":{"properties":{},"defaultstate":"minecraft:polished_diorite"},"minecraft:polished_granite":{"properties":{},"defaultstate":"minecraft:polished_granite"},"minecraft:poppy":{"properties":{},"defaultstate":"minecraft:poppy"},"minecraft:potatoes":{"properties":{"age":{"values":["0","1","2","3","4","5","6","7"],"type":"int"}},"defaultstate":"minecraft:potatoes[age=0]"},"minecraft:potted_acacia_sapling":{"properties":{},"defaultstate":"minecraft:potted_acacia_sapling"},"minecraft:potted_allium":{"properties":{},"defaultstate":"minecraft:potted_allium"},"minecraft:potted_azure_bluet":{"properties":{},"defaultstate":"minecraft:potted_azure_bluet"},"minecraft:potted_birch_sapling":{"properties":{},"defaultstate":"minecraft:potted_birch_sapling"},"minecraft:potted_blue_orchid":{"properties":{},"defaultstate":"minecraft:potted_blue_orchid"},"minecraft:potted_brown_mushroom":{"properties":{},"defaultstate":"minecraft:potted_brown_mushroom"},"minecraft:potted_cactus":{"properties":{},"defaultstate":"minecraft:potted_cactus"},"minecraft:potted_dandelion":{"properties":{},"defaultstate":"minecraft:potted_dandelion"},"minecraft:potted_dark_oak_sapling":{"properties":{},"defaultstate":"minecraft:potted_dark_oak_sapling"},"minecraft:potted_dead_bush":{"properties":{},"defaultstate":"minecraft:potted_dead_bush"},"minecraft:potted_fern":{"properties":{},"defaultstate":"minecraft:potted_fern"},"minecraft:potted_jungle_sapling":{"properties":{},"defaultstate":"minecraft:potted_jungle_sapling"},"minecraft:potted_oak_sapling":{"properties":{},"defaultstate":"minecraft:potted_oak_sapling"},"minecraft:potted_orange_tulip":{"properties":{},"defaultstate":"minecraft:potted_orange_tulip"},"minecraft:potted_oxeye_daisy":{"properties":{},"defaultstate":"minecraft:potted_oxeye_daisy"},"minecraft:potted_pink_tulip":{"properties":{},"defaultstate":"minecraft:potted_pink_tulip"},"minecraft:potted_poppy":{"properties":{},"defaultstate":"minecraft:potted_poppy"},"minecraft:potted_red_mushroom":{"properties":{},"defaultstate":"minecraft:potted_red_mushroom"},"minecraft:potted_red_tulip":{"properties":{},"defaultstate":"minecraft:potted_red_tulip"},"minecraft:potted_spruce_sapling":{"properties":{},"defaultstate":"minecraft:potted_spruce_sapling"},"minecraft:potted_white_tulip":{"properties":{},"defaultstate":"minecraft:potted_white_tulip"},"minecraft:powered_rail":{"properties":{"powered":{"values":["true","false"],"type":"bool"},"shape":{"values":["north_south","east_west","ascending_east","ascending_west","ascending_north","ascending_south"],"type":"enum"}},"defaultstate":"minecraft:powered_rail[powered=false,shape=north_south]"},"minecraft:prismarine":{"properties":{},"defaultstate":"minecraft:prismarine"},"minecraft:prismarine_brick_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:prismarine_brick_slab[type=bottom,waterlogged=false]"},"minecraft:prismarine_brick_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:prismarine_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:prismarine_bricks":{"properties":{},"defaultstate":"minecraft:prismarine_bricks"},"minecraft:prismarine_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:prismarine_slab[type=bottom,waterlogged=false]"},"minecraft:prismarine_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:prismarine_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:pumpkin":{"properties":{},"defaultstate":"minecraft:pumpkin"},"minecraft:pumpkin_stem":{"properties":{"age":{"values":["0","1","2","3","4","5","6","7"],"type":"int"}},"defaultstate":"minecraft:pumpkin_stem[age=0]"},"minecraft:purple_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:purple_banner[rotation=0]"},"minecraft:purple_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:purple_bed[facing=north,occupied=false,part=foot]"},"minecraft:purple_carpet":{"properties":{},"defaultstate":"minecraft:purple_carpet"},"minecraft:purple_concrete":{"properties":{},"defaultstate":"minecraft:purple_concrete"},"minecraft:purple_concrete_powder":{"properties":{},"defaultstate":"minecraft:purple_concrete_powder"},"minecraft:purple_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:purple_glazed_terracotta[facing=north]"},"minecraft:purple_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:purple_shulker_box[facing=up]"},"minecraft:purple_stained_glass":{"properties":{},"defaultstate":"minecraft:purple_stained_glass"},"minecraft:purple_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:purple_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:purple_terracotta":{"properties":{},"defaultstate":"minecraft:purple_terracotta"},"minecraft:purple_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:purple_wall_banner[facing=north]"},"minecraft:purple_wool":{"properties":{},"defaultstate":"minecraft:purple_wool"},"minecraft:purpur_block":{"properties":{},"defaultstate":"minecraft:purpur_block"},"minecraft:purpur_pillar":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:purpur_pillar[axis=y]"},"minecraft:purpur_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:purpur_slab[type=bottom,waterlogged=false]"},"minecraft:purpur_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:purpur_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:quartz_block":{"properties":{},"defaultstate":"minecraft:quartz_block"},"minecraft:quartz_pillar":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:quartz_pillar[axis=y]"},"minecraft:quartz_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:quartz_slab[type=bottom,waterlogged=false]"},"minecraft:quartz_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:quartz_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:rail":{"properties":{"shape":{"values":["north_south","east_west","ascending_east","ascending_west","ascending_north","ascending_south","south_east","south_west","north_west","north_east"],"type":"enum"}},"defaultstate":"minecraft:rail[shape=north_south]"},"minecraft:red_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:red_banner[rotation=0]"},"minecraft:red_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:red_bed[facing=north,occupied=false,part=foot]"},"minecraft:red_carpet":{"properties":{},"defaultstate":"minecraft:red_carpet"},"minecraft:red_concrete":{"properties":{},"defaultstate":"minecraft:red_concrete"},"minecraft:red_concrete_powder":{"properties":{},"defaultstate":"minecraft:red_concrete_powder"},"minecraft:red_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:red_glazed_terracotta[facing=north]"},"minecraft:red_mushroom":{"properties":{},"defaultstate":"minecraft:red_mushroom"},"minecraft:red_mushroom_block":{"properties":{"down":{"values":["true","false"],"type":"bool"},"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:red_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true]"},"minecraft:red_nether_bricks":{"properties":{},"defaultstate":"minecraft:red_nether_bricks"},"minecraft:red_sand":{"properties":{},"defaultstate":"minecraft:red_sand"},"minecraft:red_sandstone":{"properties":{},"defaultstate":"minecraft:red_sandstone"},"minecraft:red_sandstone_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:red_sandstone_slab[type=bottom,waterlogged=false]"},"minecraft:red_sandstone_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:red_sandstone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:red_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:red_shulker_box[facing=up]"},"minecraft:red_stained_glass":{"properties":{},"defaultstate":"minecraft:red_stained_glass"},"minecraft:red_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:red_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:red_terracotta":{"properties":{},"defaultstate":"minecraft:red_terracotta"},"minecraft:red_tulip":{"properties":{},"defaultstate":"minecraft:red_tulip"},"minecraft:red_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:red_wall_banner[facing=north]"},"minecraft:red_wool":{"properties":{},"defaultstate":"minecraft:red_wool"},"minecraft:redstone_block":{"properties":{},"defaultstate":"minecraft:redstone_block"},"minecraft:redstone_lamp":{"properties":{"lit":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:redstone_lamp[lit=false]"},"minecraft:redstone_ore":{"properties":{"lit":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:redstone_ore[lit=false]"},"minecraft:redstone_torch":{"properties":{"lit":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:redstone_torch[lit=true]"},"minecraft:redstone_wall_torch":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"lit":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:redstone_wall_torch[facing=north,lit=true]"},"minecraft:redstone_wire":{"properties":{"east":{"values":["up","side","none"],"type":"enum"},"north":{"values":["up","side","none"],"type":"enum"},"power":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"},"south":{"values":["up","side","none"],"type":"enum"},"west":{"values":["up","side","none"],"type":"enum"}},"defaultstate":"minecraft:redstone_wire[east=none,north=none,power=0,south=none,west=none]"},"minecraft:repeater":{"properties":{"delay":{"values":["1","2","3","4"],"type":"int"},"facing":{"values":["north","south","west","east"],"type":"direction"},"locked":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:repeater[delay=1,facing=north,locked=false,powered=false]"},"minecraft:repeating_command_block":{"properties":{"conditional":{"values":["true","false"],"type":"bool"},"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:repeating_command_block[conditional=false,facing=north]"},"minecraft:rose_bush":{"properties":{"half":{"values":["upper","lower"],"type":"enum"}},"defaultstate":"minecraft:rose_bush[half=lower]"},"minecraft:sand":{"properties":{},"defaultstate":"minecraft:sand"},"minecraft:sandstone":{"properties":{},"defaultstate":"minecraft:sandstone"},"minecraft:sandstone_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:sandstone_slab[type=bottom,waterlogged=false]"},"minecraft:sandstone_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:sandstone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:sea_lantern":{"properties":{},"defaultstate":"minecraft:sea_lantern"},"minecraft:sea_pickle":{"properties":{"pickles":{"values":["1","2","3","4"],"type":"int"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:sea_pickle[pickles=1,waterlogged=true]"},"minecraft:seagrass":{"properties":{},"defaultstate":"minecraft:seagrass"},"minecraft:shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:shulker_box[facing=up]"},"minecraft:sign":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:sign[rotation=0,waterlogged=false]"},"minecraft:skeleton_skull":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:skeleton_skull[rotation=0]"},"minecraft:skeleton_wall_skull":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:skeleton_wall_skull[facing=north]"},"minecraft:slime_block":{"properties":{},"defaultstate":"minecraft:slime_block"},"minecraft:smooth_quartz":{"properties":{},"defaultstate":"minecraft:smooth_quartz"},"minecraft:smooth_red_sandstone":{"properties":{},"defaultstate":"minecraft:smooth_red_sandstone"},"minecraft:smooth_sandstone":{"properties":{},"defaultstate":"minecraft:smooth_sandstone"},"minecraft:smooth_stone":{"properties":{},"defaultstate":"minecraft:smooth_stone"},"minecraft:snow":{"properties":{"layers":{"values":["1","2","3","4","5","6","7","8"],"type":"int"}},"defaultstate":"minecraft:snow[layers=1]"},"minecraft:snow_block":{"properties":{},"defaultstate":"minecraft:snow_block"},"minecraft:soul_sand":{"properties":{},"defaultstate":"minecraft:soul_sand"},"minecraft:spawner":{"properties":{},"defaultstate":"minecraft:spawner"},"minecraft:sponge":{"properties":{},"defaultstate":"minecraft:sponge"},"minecraft:spruce_button":{"properties":{"face":{"values":["floor","wall","ceiling"],"type":"enum"},"facing":{"values":["north","south","west","east"],"type":"direction"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:spruce_button[face=wall,facing=north,powered=false]"},"minecraft:spruce_door":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["upper","lower"],"type":"enum"},"hinge":{"values":["left","right"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:spruce_door[facing=north,half=lower,hinge=left,open=false,powered=false]"},"minecraft:spruce_fence":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:spruce_fence[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:spruce_fence_gate":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"in_wall":{"values":["true","false"],"type":"bool"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:spruce_fence_gate[facing=north,in_wall=false,open=false,powered=false]"},"minecraft:spruce_leaves":{"properties":{"distance":{"values":["1","2","3","4","5","6","7"],"type":"int"},"persistent":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:spruce_leaves[distance=7,persistent=false]"},"minecraft:spruce_log":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:spruce_log[axis=y]"},"minecraft:spruce_planks":{"properties":{},"defaultstate":"minecraft:spruce_planks"},"minecraft:spruce_pressure_plate":{"properties":{"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:spruce_pressure_plate[powered=false]"},"minecraft:spruce_sapling":{"properties":{"stage":{"values":["0","1"],"type":"int"}},"defaultstate":"minecraft:spruce_sapling[stage=0]"},"minecraft:spruce_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:spruce_slab[type=bottom,waterlogged=false]"},"minecraft:spruce_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:spruce_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:spruce_trapdoor":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:spruce_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]"},"minecraft:spruce_wood":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:spruce_wood[axis=y]"},"minecraft:sticky_piston":{"properties":{"extended":{"values":["true","false"],"type":"bool"},"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:sticky_piston[extended=false,facing=north]"},"minecraft:stone":{"properties":{},"defaultstate":"minecraft:stone"},"minecraft:stone_brick_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:stone_brick_slab[type=bottom,waterlogged=false]"},"minecraft:stone_brick_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:stone_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:stone_bricks":{"properties":{},"defaultstate":"minecraft:stone_bricks"},"minecraft:stone_button":{"properties":{"face":{"values":["floor","wall","ceiling"],"type":"enum"},"facing":{"values":["north","south","west","east"],"type":"direction"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:stone_button[face=wall,facing=north,powered=false]"},"minecraft:stone_pressure_plate":{"properties":{"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:stone_pressure_plate[powered=false]"},"minecraft:stone_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:stone_slab[type=bottom,waterlogged=false]"},"minecraft:stripped_acacia_log":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:stripped_acacia_log[axis=y]"},"minecraft:stripped_acacia_wood":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:stripped_acacia_wood[axis=y]"},"minecraft:stripped_birch_log":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:stripped_birch_log[axis=y]"},"minecraft:stripped_birch_wood":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:stripped_birch_wood[axis=y]"},"minecraft:stripped_dark_oak_log":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:stripped_dark_oak_log[axis=y]"},"minecraft:stripped_dark_oak_wood":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:stripped_dark_oak_wood[axis=y]"},"minecraft:stripped_jungle_log":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:stripped_jungle_log[axis=y]"},"minecraft:stripped_jungle_wood":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:stripped_jungle_wood[axis=y]"},"minecraft:stripped_oak_log":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:stripped_oak_log[axis=y]"},"minecraft:stripped_oak_wood":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:stripped_oak_wood[axis=y]"},"minecraft:stripped_spruce_log":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:stripped_spruce_log[axis=y]"},"minecraft:stripped_spruce_wood":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:stripped_spruce_wood[axis=y]"},"minecraft:structure_block":{"properties":{"mode":{"values":["save","load","corner","data"],"type":"enum"}},"defaultstate":"minecraft:structure_block[mode=save]"},"minecraft:structure_void":{"properties":{},"defaultstate":"minecraft:structure_void"},"minecraft:sugar_cane":{"properties":{"age":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:sugar_cane[age=0]"},"minecraft:sunflower":{"properties":{"half":{"values":["upper","lower"],"type":"enum"}},"defaultstate":"minecraft:sunflower[half=lower]"},"minecraft:tall_grass":{"properties":{"half":{"values":["upper","lower"],"type":"enum"}},"defaultstate":"minecraft:tall_grass[half=lower]"},"minecraft:tall_seagrass":{"properties":{"half":{"values":["upper","lower"],"type":"enum"}},"defaultstate":"minecraft:tall_seagrass[half=lower]"},"minecraft:terracotta":{"properties":{},"defaultstate":"minecraft:terracotta"},"minecraft:tnt":{"properties":{"unstable":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:tnt[unstable=false]"},"minecraft:torch":{"properties":{},"defaultstate":"minecraft:torch"},"minecraft:trapped_chest":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"type":{"values":["single","left","right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:trapped_chest[facing=north,type=single,waterlogged=false]"},"minecraft:tripwire":{"properties":{"attached":{"values":["true","false"],"type":"bool"},"disarmed":{"values":["true","false"],"type":"bool"},"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:tripwire[attached=false,disarmed=false,east=false,north=false,powered=false,south=false,west=false]"},"minecraft:tripwire_hook":{"properties":{"attached":{"values":["true","false"],"type":"bool"},"facing":{"values":["north","south","west","east"],"type":"direction"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:tripwire_hook[attached=false,facing=north,powered=false]"},"minecraft:tube_coral":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:tube_coral[waterlogged=true]"},"minecraft:tube_coral_block":{"properties":{},"defaultstate":"minecraft:tube_coral_block"},"minecraft:tube_coral_fan":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:tube_coral_fan[waterlogged=true]"},"minecraft:tube_coral_wall_fan":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:tube_coral_wall_fan[facing=north,waterlogged=true]"},"minecraft:turtle_egg":{"properties":{"eggs":{"values":["1","2","3","4"],"type":"int"},"hatch":{"values":["0","1","2"],"type":"int"}},"defaultstate":"minecraft:turtle_egg[eggs=1,hatch=0]"},"minecraft:vine":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:vine[east=false,north=false,south=false,up=false,west=false]"},"minecraft:void_air":{"properties":{},"defaultstate":"minecraft:void_air"},"minecraft:wall_sign":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:wall_sign[facing=north,waterlogged=false]"},"minecraft:wall_torch":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:wall_torch[facing=north]"},"minecraft:water":{"properties":{"level":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:water[level=0]"},"minecraft:wet_sponge":{"properties":{},"defaultstate":"minecraft:wet_sponge"},"minecraft:wheat":{"properties":{"age":{"values":["0","1","2","3","4","5","6","7"],"type":"int"}},"defaultstate":"minecraft:wheat[age=0]"},"minecraft:white_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:white_banner[rotation=0]"},"minecraft:white_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:white_bed[facing=north,occupied=false,part=foot]"},"minecraft:white_carpet":{"properties":{},"defaultstate":"minecraft:white_carpet"},"minecraft:white_concrete":{"properties":{},"defaultstate":"minecraft:white_concrete"},"minecraft:white_concrete_powder":{"properties":{},"defaultstate":"minecraft:white_concrete_powder"},"minecraft:white_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:white_glazed_terracotta[facing=north]"},"minecraft:white_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:white_shulker_box[facing=up]"},"minecraft:white_stained_glass":{"properties":{},"defaultstate":"minecraft:white_stained_glass"},"minecraft:white_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:white_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:white_terracotta":{"properties":{},"defaultstate":"minecraft:white_terracotta"},"minecraft:white_tulip":{"properties":{},"defaultstate":"minecraft:white_tulip"},"minecraft:white_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:white_wall_banner[facing=north]"},"minecraft:white_wool":{"properties":{},"defaultstate":"minecraft:white_wool"},"minecraft:wither_skeleton_skull":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:wither_skeleton_skull[rotation=0]"},"minecraft:wither_skeleton_wall_skull":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:wither_skeleton_wall_skull[facing=north]"},"minecraft:yellow_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:yellow_banner[rotation=0]"},"minecraft:yellow_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:yellow_bed[facing=north,occupied=false,part=foot]"},"minecraft:yellow_carpet":{"properties":{},"defaultstate":"minecraft:yellow_carpet"},"minecraft:yellow_concrete":{"properties":{},"defaultstate":"minecraft:yellow_concrete"},"minecraft:yellow_concrete_powder":{"properties":{},"defaultstate":"minecraft:yellow_concrete_powder"},"minecraft:yellow_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:yellow_glazed_terracotta[facing=north]"},"minecraft:yellow_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:yellow_shulker_box[facing=up]"},"minecraft:yellow_stained_glass":{"properties":{},"defaultstate":"minecraft:yellow_stained_glass"},"minecraft:yellow_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:yellow_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:yellow_terracotta":{"properties":{},"defaultstate":"minecraft:yellow_terracotta"},"minecraft:yellow_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:yellow_wall_banner[facing=north]"},"minecraft:yellow_wool":{"properties":{},"defaultstate":"minecraft:yellow_wool"},"minecraft:zombie_head":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:zombie_head[rotation=0]"},"minecraft:zombie_wall_head":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:zombie_wall_head[facing=north]"}},"items":["minecraft:acacia_boat","minecraft:acacia_button","minecraft:acacia_door","minecraft:acacia_fence","minecraft:acacia_fence_gate","minecraft:acacia_leaves","minecraft:acacia_log","minecraft:acacia_planks","minecraft:acacia_pressure_plate","minecraft:acacia_sapling","minecraft:acacia_slab","minecraft:acacia_stairs","minecraft:acacia_trapdoor","minecraft:acacia_wood","minecraft:activator_rail","minecraft:air","minecraft:allium","minecraft:andesite","minecraft:anvil","minecraft:apple","minecraft:armor_stand","minecraft:arrow","minecraft:azure_bluet","minecraft:baked_potato","minecraft:barrier","minecraft:bat_spawn_egg","minecraft:beacon","minecraft:bedrock","minecraft:beef","minecraft:beetroot","minecraft:beetroot_seeds","minecraft:beetroot_soup","minecraft:birch_boat","minecraft:birch_button","minecraft:birch_door","minecraft:birch_fence","minecraft:birch_fence_gate","minecraft:birch_leaves","minecraft:birch_log","minecraft:birch_planks","minecraft:birch_pressure_plate","minecraft:birch_sapling","minecraft:birch_slab","minecraft:birch_stairs","minecraft:birch_trapdoor","minecraft:birch_wood","minecraft:black_banner","minecraft:black_bed","minecraft:black_carpet","minecraft:black_concrete","minecraft:black_concrete_powder","minecraft:black_glazed_terracotta","minecraft:black_shulker_box","minecraft:black_stained_glass","minecraft:black_stained_glass_pane","minecraft:black_terracotta","minecraft:black_wool","minecraft:blaze_powder","minecraft:blaze_rod","minecraft:blaze_spawn_egg","minecraft:blue_banner","minecraft:blue_bed","minecraft:blue_carpet","minecraft:blue_concrete","minecraft:blue_concrete_powder","minecraft:blue_glazed_terracotta","minecraft:blue_ice","minecraft:blue_orchid","minecraft:blue_shulker_box","minecraft:blue_stained_glass","minecraft:blue_stained_glass_pane","minecraft:blue_terracotta","minecraft:blue_wool","minecraft:bone","minecraft:bone_block","minecraft:bone_meal","minecraft:book","minecraft:bookshelf","minecraft:bow","minecraft:bowl","minecraft:brain_coral","minecraft:brain_coral_block","minecraft:brain_coral_fan","minecraft:bread","minecraft:brewing_stand","minecraft:brick","minecraft:brick_slab","minecraft:brick_stairs","minecraft:bricks","minecraft:brown_banner","minecraft:brown_bed","minecraft:brown_carpet","minecraft:brown_concrete","minecraft:brown_concrete_powder","minecraft:brown_glazed_terracotta","minecraft:brown_mushroom","minecraft:brown_mushroom_block","minecraft:brown_shulker_box","minecraft:brown_stained_glass","minecraft:brown_stained_glass_pane","minecraft:brown_terracotta","minecraft:brown_wool","minecraft:bubble_coral","minecraft:bubble_coral_block","minecraft:bubble_coral_fan","minecraft:bucket","minecraft:cactus","minecraft:cactus_green","minecraft:cake","minecraft:carrot","minecraft:carrot_on_a_stick","minecraft:carved_pumpkin","minecraft:cauldron","minecraft:cave_spider_spawn_egg","minecraft:chain_command_block","minecraft:chainmail_boots","minecraft:chainmail_chestplate","minecraft:chainmail_helmet","minecraft:chainmail_leggings","minecraft:charcoal","minecraft:chest","minecraft:chest_minecart","minecraft:chicken","minecraft:chicken_spawn_egg","minecraft:chipped_anvil","minecraft:chiseled_quartz_block","minecraft:chiseled_red_sandstone","minecraft:chiseled_sandstone","minecraft:chiseled_stone_bricks","minecraft:chorus_flower","minecraft:chorus_fruit","minecraft:chorus_plant","minecraft:clay","minecraft:clay_ball","minecraft:clock","minecraft:coal","minecraft:coal_block","minecraft:coal_ore","minecraft:coarse_dirt","minecraft:cobblestone","minecraft:cobblestone_slab","minecraft:cobblestone_stairs","minecraft:cobblestone_wall","minecraft:cobweb","minecraft:cocoa_beans","minecraft:cod","minecraft:cod_bucket","minecraft:cod_spawn_egg","minecraft:command_block","minecraft:command_block_minecart","minecraft:comparator","minecraft:compass","minecraft:conduit","minecraft:cooked_beef","minecraft:cooked_chicken","minecraft:cooked_cod","minecraft:cooked_mutton","minecraft:cooked_porkchop","minecraft:cooked_rabbit","minecraft:cooked_salmon","minecraft:cookie","minecraft:cow_spawn_egg","minecraft:cracked_stone_bricks","minecraft:crafting_table","minecraft:creeper_head","minecraft:creeper_spawn_egg","minecraft:cut_red_sandstone","minecraft:cut_sandstone","minecraft:cyan_banner","minecraft:cyan_bed","minecraft:cyan_carpet","minecraft:cyan_concrete","minecraft:cyan_concrete_powder","minecraft:cyan_dye","minecraft:cyan_glazed_terracotta","minecraft:cyan_shulker_box","minecraft:cyan_stained_glass","minecraft:cyan_stained_glass_pane","minecraft:cyan_terracotta","minecraft:cyan_wool","minecraft:damaged_anvil","minecraft:dandelion","minecraft:dandelion_yellow","minecraft:dark_oak_boat","minecraft:dark_oak_button","minecraft:dark_oak_door","minecraft:dark_oak_fence","minecraft:dark_oak_fence_gate","minecraft:dark_oak_leaves","minecraft:dark_oak_log","minecraft:dark_oak_planks","minecraft:dark_oak_pressure_plate","minecraft:dark_oak_sapling","minecraft:dark_oak_slab","minecraft:dark_oak_stairs","minecraft:dark_oak_trapdoor","minecraft:dark_oak_wood","minecraft:dark_prismarine","minecraft:dark_prismarine_slab","minecraft:dark_prismarine_stairs","minecraft:daylight_detector","minecraft:dead_brain_coral","minecraft:dead_brain_coral_block","minecraft:dead_brain_coral_fan","minecraft:dead_bubble_coral","minecraft:dead_bubble_coral_block","minecraft:dead_bubble_coral_fan","minecraft:dead_bush","minecraft:dead_fire_coral","minecraft:dead_fire_coral_block","minecraft:dead_fire_coral_fan","minecraft:dead_horn_coral","minecraft:dead_horn_coral_block","minecraft:dead_horn_coral_fan","minecraft:dead_tube_coral","minecraft:dead_tube_coral_block","minecraft:dead_tube_coral_fan","minecraft:debug_stick","minecraft:detector_rail","minecraft:diamond","minecraft:diamond_axe","minecraft:diamond_block","minecraft:diamond_boots","minecraft:diamond_chestplate","minecraft:diamond_helmet","minecraft:diamond_hoe","minecraft:diamond_horse_armor","minecraft:diamond_leggings","minecraft:diamond_ore","minecraft:diamond_pickaxe","minecraft:diamond_shovel","minecraft:diamond_sword","minecraft:diorite","minecraft:dirt","minecraft:dispenser","minecraft:dolphin_spawn_egg","minecraft:donkey_spawn_egg","minecraft:dragon_breath","minecraft:dragon_egg","minecraft:dragon_head","minecraft:dried_kelp","minecraft:dried_kelp_block","minecraft:dropper","minecraft:drowned_spawn_egg","minecraft:egg","minecraft:elder_guardian_spawn_egg","minecraft:elytra","minecraft:emerald","minecraft:emerald_block","minecraft:emerald_ore","minecraft:enchanted_book","minecraft:enchanted_golden_apple","minecraft:enchanting_table","minecraft:end_crystal","minecraft:end_portal_frame","minecraft:end_rod","minecraft:end_stone","minecraft:end_stone_bricks","minecraft:ender_chest","minecraft:ender_eye","minecraft:ender_pearl","minecraft:enderman_spawn_egg","minecraft:endermite_spawn_egg","minecraft:evoker_spawn_egg","minecraft:experience_bottle","minecraft:farmland","minecraft:feather","minecraft:fermented_spider_eye","minecraft:fern","minecraft:filled_map","minecraft:fire_charge","minecraft:fire_coral","minecraft:fire_coral_block","minecraft:fire_coral_fan","minecraft:firework_rocket","minecraft:firework_star","minecraft:fishing_rod","minecraft:flint","minecraft:flint_and_steel","minecraft:flower_pot","minecraft:furnace","minecraft:furnace_minecart","minecraft:ghast_spawn_egg","minecraft:ghast_tear","minecraft:glass","minecraft:glass_bottle","minecraft:glass_pane","minecraft:glistering_melon_slice","minecraft:glowstone","minecraft:glowstone_dust","minecraft:gold_block","minecraft:gold_ingot","minecraft:gold_nugget","minecraft:gold_ore","minecraft:golden_apple","minecraft:golden_axe","minecraft:golden_boots","minecraft:golden_carrot","minecraft:golden_chestplate","minecraft:golden_helmet","minecraft:golden_hoe","minecraft:golden_horse_armor","minecraft:golden_leggings","minecraft:golden_pickaxe","minecraft:golden_shovel","minecraft:golden_sword","minecraft:granite","minecraft:grass","minecraft:grass_block","minecraft:grass_path","minecraft:gravel","minecraft:gray_banner","minecraft:gray_bed","minecraft:gray_carpet","minecraft:gray_concrete","minecraft:gray_concrete_powder","minecraft:gray_dye","minecraft:gray_glazed_terracotta","minecraft:gray_shulker_box","minecraft:gray_stained_glass","minecraft:gray_stained_glass_pane","minecraft:gray_terracotta","minecraft:gray_wool","minecraft:green_banner","minecraft:green_bed","minecraft:green_carpet","minecraft:green_concrete","minecraft:green_concrete_powder","minecraft:green_glazed_terracotta","minecraft:green_shulker_box","minecraft:green_stained_glass","minecraft:green_stained_glass_pane","minecraft:green_terracotta","minecraft:green_wool","minecraft:guardian_spawn_egg","minecraft:gunpowder","minecraft:hay_block","minecraft:heart_of_the_sea","minecraft:heavy_weighted_pressure_plate","minecraft:hopper","minecraft:hopper_minecart","minecraft:horn_coral","minecraft:horn_coral_block","minecraft:horn_coral_fan","minecraft:horse_spawn_egg","minecraft:husk_spawn_egg","minecraft:ice","minecraft:infested_chiseled_stone_bricks","minecraft:infested_cobblestone","minecraft:infested_cracked_stone_bricks","minecraft:infested_mossy_stone_bricks","minecraft:infested_stone","minecraft:infested_stone_bricks","minecraft:ink_sac","minecraft:iron_axe","minecraft:iron_bars","minecraft:iron_block","minecraft:iron_boots","minecraft:iron_chestplate","minecraft:iron_door","minecraft:iron_helmet","minecraft:iron_hoe","minecraft:iron_horse_armor","minecraft:iron_ingot","minecraft:iron_leggings","minecraft:iron_nugget","minecraft:iron_ore","minecraft:iron_pickaxe","minecraft:iron_shovel","minecraft:iron_sword","minecraft:iron_trapdoor","minecraft:item_frame","minecraft:jack_o_lantern","minecraft:jukebox","minecraft:jungle_boat","minecraft:jungle_button","minecraft:jungle_door","minecraft:jungle_fence","minecraft:jungle_fence_gate","minecraft:jungle_leaves","minecraft:jungle_log","minecraft:jungle_planks","minecraft:jungle_pressure_plate","minecraft:jungle_sapling","minecraft:jungle_slab","minecraft:jungle_stairs","minecraft:jungle_trapdoor","minecraft:jungle_wood","minecraft:kelp","minecraft:knowledge_book","minecraft:ladder","minecraft:lapis_block","minecraft:lapis_lazuli","minecraft:lapis_ore","minecraft:large_fern","minecraft:lava_bucket","minecraft:lead","minecraft:leather","minecraft:leather_boots","minecraft:leather_chestplate","minecraft:leather_helmet","minecraft:leather_leggings","minecraft:lever","minecraft:light_blue_banner","minecraft:light_blue_bed","minecraft:light_blue_carpet","minecraft:light_blue_concrete","minecraft:light_blue_concrete_powder","minecraft:light_blue_dye","minecraft:light_blue_glazed_terracotta","minecraft:light_blue_shulker_box","minecraft:light_blue_stained_glass","minecraft:light_blue_stained_glass_pane","minecraft:light_blue_terracotta","minecraft:light_blue_wool","minecraft:light_gray_banner","minecraft:light_gray_bed","minecraft:light_gray_carpet","minecraft:light_gray_concrete","minecraft:light_gray_concrete_powder","minecraft:light_gray_dye","minecraft:light_gray_glazed_terracotta","minecraft:light_gray_shulker_box","minecraft:light_gray_stained_glass","minecraft:light_gray_stained_glass_pane","minecraft:light_gray_terracotta","minecraft:light_gray_wool","minecraft:light_weighted_pressure_plate","minecraft:lilac","minecraft:lily_pad","minecraft:lime_banner","minecraft:lime_bed","minecraft:lime_carpet","minecraft:lime_concrete","minecraft:lime_concrete_powder","minecraft:lime_dye","minecraft:lime_glazed_terracotta","minecraft:lime_shulker_box","minecraft:lime_stained_glass","minecraft:lime_stained_glass_pane","minecraft:lime_terracotta","minecraft:lime_wool","minecraft:lingering_potion","minecraft:llama_spawn_egg","minecraft:magenta_banner","minecraft:magenta_bed","minecraft:magenta_carpet","minecraft:magenta_concrete","minecraft:magenta_concrete_powder","minecraft:magenta_dye","minecraft:magenta_glazed_terracotta","minecraft:magenta_shulker_box","minecraft:magenta_stained_glass","minecraft:magenta_stained_glass_pane","minecraft:magenta_terracotta","minecraft:magenta_wool","minecraft:magma_block","minecraft:magma_cream","minecraft:magma_cube_spawn_egg","minecraft:map","minecraft:melon","minecraft:melon_seeds","minecraft:melon_slice","minecraft:milk_bucket","minecraft:minecart","minecraft:mooshroom_spawn_egg","minecraft:mossy_cobblestone","minecraft:mossy_cobblestone_wall","minecraft:mossy_stone_bricks","minecraft:mule_spawn_egg","minecraft:mushroom_stem","minecraft:mushroom_stew","minecraft:music_disc_11","minecraft:music_disc_13","minecraft:music_disc_blocks","minecraft:music_disc_cat","minecraft:music_disc_chirp","minecraft:music_disc_far","minecraft:music_disc_mall","minecraft:music_disc_mellohi","minecraft:music_disc_stal","minecraft:music_disc_strad","minecraft:music_disc_wait","minecraft:music_disc_ward","minecraft:mutton","minecraft:mycelium","minecraft:name_tag","minecraft:nautilus_shell","minecraft:nether_brick","minecraft:nether_brick_fence","minecraft:nether_brick_slab","minecraft:nether_brick_stairs","minecraft:nether_bricks","minecraft:nether_quartz_ore","minecraft:nether_star","minecraft:nether_wart","minecraft:nether_wart_block","minecraft:netherrack","minecraft:note_block","minecraft:oak_boat","minecraft:oak_button","minecraft:oak_door","minecraft:oak_fence","minecraft:oak_fence_gate","minecraft:oak_leaves","minecraft:oak_log","minecraft:oak_planks","minecraft:oak_pressure_plate","minecraft:oak_sapling","minecraft:oak_slab","minecraft:oak_stairs","minecraft:oak_trapdoor","minecraft:oak_wood","minecraft:observer","minecraft:obsidian","minecraft:ocelot_spawn_egg","minecraft:orange_banner","minecraft:orange_bed","minecraft:orange_carpet","minecraft:orange_concrete","minecraft:orange_concrete_powder","minecraft:orange_dye","minecraft:orange_glazed_terracotta","minecraft:orange_shulker_box","minecraft:orange_stained_glass","minecraft:orange_stained_glass_pane","minecraft:orange_terracotta","minecraft:orange_tulip","minecraft:orange_wool","minecraft:oxeye_daisy","minecraft:packed_ice","minecraft:painting","minecraft:paper","minecraft:parrot_spawn_egg","minecraft:peony","minecraft:petrified_oak_slab","minecraft:phantom_membrane","minecraft:phantom_spawn_egg","minecraft:pig_spawn_egg","minecraft:pink_banner","minecraft:pink_bed","minecraft:pink_carpet","minecraft:pink_concrete","minecraft:pink_concrete_powder","minecraft:pink_dye","minecraft:pink_glazed_terracotta","minecraft:pink_shulker_box","minecraft:pink_stained_glass","minecraft:pink_stained_glass_pane","minecraft:pink_terracotta","minecraft:pink_tulip","minecraft:pink_wool","minecraft:piston","minecraft:player_head","minecraft:podzol","minecraft:poisonous_potato","minecraft:polar_bear_spawn_egg","minecraft:polished_andesite","minecraft:polished_diorite","minecraft:polished_granite","minecraft:popped_chorus_fruit","minecraft:poppy","minecraft:porkchop","minecraft:potato","minecraft:potion","minecraft:powered_rail","minecraft:prismarine","minecraft:prismarine_brick_slab","minecraft:prismarine_brick_stairs","minecraft:prismarine_bricks","minecraft:prismarine_crystals","minecraft:prismarine_shard","minecraft:prismarine_slab","minecraft:prismarine_stairs","minecraft:pufferfish","minecraft:pufferfish_bucket","minecraft:pufferfish_spawn_egg","minecraft:pumpkin","minecraft:pumpkin_pie","minecraft:pumpkin_seeds","minecraft:purple_banner","minecraft:purple_bed","minecraft:purple_carpet","minecraft:purple_concrete","minecraft:purple_concrete_powder","minecraft:purple_dye","minecraft:purple_glazed_terracotta","minecraft:purple_shulker_box","minecraft:purple_stained_glass","minecraft:purple_stained_glass_pane","minecraft:purple_terracotta","minecraft:purple_wool","minecraft:purpur_block","minecraft:purpur_pillar","minecraft:purpur_slab","minecraft:purpur_stairs","minecraft:quartz","minecraft:quartz_block","minecraft:quartz_pillar","minecraft:quartz_slab","minecraft:quartz_stairs","minecraft:rabbit","minecraft:rabbit_foot","minecraft:rabbit_hide","minecraft:rabbit_spawn_egg","minecraft:rabbit_stew","minecraft:rail","minecraft:red_banner","minecraft:red_bed","minecraft:red_carpet","minecraft:red_concrete","minecraft:red_concrete_powder","minecraft:red_glazed_terracotta","minecraft:red_mushroom","minecraft:red_mushroom_block","minecraft:red_nether_bricks","minecraft:red_sand","minecraft:red_sandstone","minecraft:red_sandstone_slab","minecraft:red_sandstone_stairs","minecraft:red_shulker_box","minecraft:red_stained_glass","minecraft:red_stained_glass_pane","minecraft:red_terracotta","minecraft:red_tulip","minecraft:red_wool","minecraft:redstone","minecraft:redstone_block","minecraft:redstone_lamp","minecraft:redstone_ore","minecraft:redstone_torch","minecraft:repeater","minecraft:repeating_command_block","minecraft:rose_bush","minecraft:rose_red","minecraft:rotten_flesh","minecraft:saddle","minecraft:salmon","minecraft:salmon_bucket","minecraft:salmon_spawn_egg","minecraft:sand","minecraft:sandstone","minecraft:sandstone_slab","minecraft:sandstone_stairs","minecraft:scute","minecraft:sea_lantern","minecraft:sea_pickle","minecraft:seagrass","minecraft:shears","minecraft:sheep_spawn_egg","minecraft:shield","minecraft:shulker_box","minecraft:shulker_shell","minecraft:shulker_spawn_egg","minecraft:sign","minecraft:silverfish_spawn_egg","minecraft:skeleton_horse_spawn_egg","minecraft:skeleton_skull","minecraft:skeleton_spawn_egg","minecraft:slime_ball","minecraft:slime_block","minecraft:slime_spawn_egg","minecraft:smooth_quartz","minecraft:smooth_red_sandstone","minecraft:smooth_sandstone","minecraft:smooth_stone","minecraft:snow","minecraft:snow_block","minecraft:snowball","minecraft:soul_sand","minecraft:spawner","minecraft:spectral_arrow","minecraft:spider_eye","minecraft:spider_spawn_egg","minecraft:splash_potion","minecraft:sponge","minecraft:spruce_boat","minecraft:spruce_button","minecraft:spruce_door","minecraft:spruce_fence","minecraft:spruce_fence_gate","minecraft:spruce_leaves","minecraft:spruce_log","minecraft:spruce_planks","minecraft:spruce_pressure_plate","minecraft:spruce_sapling","minecraft:spruce_slab","minecraft:spruce_stairs","minecraft:spruce_trapdoor","minecraft:spruce_wood","minecraft:squid_spawn_egg","minecraft:stick","minecraft:sticky_piston","minecraft:stone","minecraft:stone_axe","minecraft:stone_brick_slab","minecraft:stone_brick_stairs","minecraft:stone_bricks","minecraft:stone_button","minecraft:stone_hoe","minecraft:stone_pickaxe","minecraft:stone_pressure_plate","minecraft:stone_shovel","minecraft:stone_slab","minecraft:stone_sword","minecraft:stray_spawn_egg","minecraft:string","minecraft:stripped_acacia_log","minecraft:stripped_acacia_wood","minecraft:stripped_birch_log","minecraft:stripped_birch_wood","minecraft:stripped_dark_oak_log","minecraft:stripped_dark_oak_wood","minecraft:stripped_jungle_log","minecraft:stripped_jungle_wood","minecraft:stripped_oak_log","minecraft:stripped_oak_wood","minecraft:stripped_spruce_log","minecraft:stripped_spruce_wood","minecraft:structure_block","minecraft:structure_void","minecraft:sugar","minecraft:sugar_cane","minecraft:sunflower","minecraft:tall_grass","minecraft:terracotta","minecraft:tipped_arrow","minecraft:tnt","minecraft:tnt_minecart","minecraft:torch","minecraft:totem_of_undying","minecraft:trapped_chest","minecraft:trident","minecraft:tripwire_hook","minecraft:tropical_fish","minecraft:tropical_fish_bucket","minecraft:tropical_fish_spawn_egg","minecraft:tube_coral","minecraft:tube_coral_block","minecraft:tube_coral_fan","minecraft:turtle_egg","minecraft:turtle_helmet","minecraft:turtle_spawn_egg","minecraft:vex_spawn_egg","minecraft:villager_spawn_egg","minecraft:vindicator_spawn_egg","minecraft:vine","minecraft:water_bucket","minecraft:wet_sponge","minecraft:wheat","minecraft:wheat_seeds","minecraft:white_banner","minecraft:white_bed","minecraft:white_carpet","minecraft:white_concrete","minecraft:white_concrete_powder","minecraft:white_glazed_terracotta","minecraft:white_shulker_box","minecraft:white_stained_glass","minecraft:white_stained_glass_pane","minecraft:white_terracotta","minecraft:white_tulip","minecraft:white_wool","minecraft:witch_spawn_egg","minecraft:wither_skeleton_skull","minecraft:wither_skeleton_spawn_egg","minecraft:wolf_spawn_egg","minecraft:wooden_axe","minecraft:wooden_hoe","minecraft:wooden_pickaxe","minecraft:wooden_shovel","minecraft:wooden_sword","minecraft:writable_book","minecraft:written_book","minecraft:yellow_banner","minecraft:yellow_bed","minecraft:yellow_carpet","minecraft:yellow_concrete","minecraft:yellow_concrete_powder","minecraft:yellow_glazed_terracotta","minecraft:yellow_shulker_box","minecraft:yellow_stained_glass","minecraft:yellow_stained_glass_pane","minecraft:yellow_terracotta","minecraft:yellow_wool","minecraft:zombie_head","minecraft:zombie_horse_spawn_egg","minecraft:zombie_pigman_spawn_egg","minecraft:zombie_spawn_egg","minecraft:zombie_villager_spawn_egg"],"entities":["minecraft:area_effect_cloud","minecraft:armor_stand","minecraft:arrow","minecraft:bat","minecraft:blaze","minecraft:boat","minecraft:cave_spider","minecraft:chest_minecart","minecraft:chicken","minecraft:cod","minecraft:command_block_minecart","minecraft:cow","minecraft:creeper","minecraft:dolphin","minecraft:donkey","minecraft:dragon_fireball","minecraft:drowned","minecraft:egg","minecraft:elder_guardian","minecraft:end_crystal","minecraft:ender_dragon","minecraft:ender_pearl","minecraft:enderman","minecraft:endermite","minecraft:evoker","minecraft:evoker_fangs","minecraft:experience_bottle","minecraft:experience_orb","minecraft:eye_of_ender","minecraft:falling_block","minecraft:fireball","minecraft:firework_rocket","minecraft:fishing_bobber","minecraft:furnace_minecart","minecraft:ghast","minecraft:giant","minecraft:guardian","minecraft:hopper_minecart","minecraft:horse","minecraft:husk","minecraft:illusioner","minecraft:iron_golem","minecraft:item","minecraft:item_frame","minecraft:leash_knot","minecraft:lightning_bolt","minecraft:llama","minecraft:llama_spit","minecraft:magma_cube","minecraft:minecart","minecraft:mooshroom","minecraft:mule","minecraft:ocelot","minecraft:painting","minecraft:parrot","minecraft:phantom","minecraft:pig","minecraft:player","minecraft:polar_bear","minecraft:potion","minecraft:pufferfish","minecraft:rabbit","minecraft:salmon","minecraft:sheep","minecraft:shulker","minecraft:shulker_bullet","minecraft:silverfish","minecraft:skeleton","minecraft:skeleton_horse","minecraft:slime","minecraft:small_fireball","minecraft:snow_golem","minecraft:snowball","minecraft:spawner_minecart","minecraft:spectral_arrow","minecraft:spider","minecraft:squid","minecraft:stray","minecraft:tnt","minecraft:tnt_minecart","minecraft:trident","minecraft:tropical_fish","minecraft:turtle","minecraft:vex","minecraft:villager","minecraft:vindicator","minecraft:witch","minecraft:wither","minecraft:wither_skeleton","minecraft:wither_skull","minecraft:wolf","minecraft:zombie","minecraft:zombie_horse","minecraft:zombie_pigman","minecraft:zombie_villager"],"biomes":["minecraft:badlands","minecraft:badlands_plateau","minecraft:beach","minecraft:birch_forest","minecraft:birch_forest_hills","minecraft:cold_ocean","minecraft:dark_forest","minecraft:dark_forest_hills","minecraft:deep_cold_ocean","minecraft:deep_frozen_ocean","minecraft:deep_lukewarm_ocean","minecraft:deep_ocean","minecraft:deep_warm_ocean","minecraft:desert","minecraft:desert_hills","minecraft:desert_lakes","minecraft:end_barrens","minecraft:end_highlands","minecraft:end_midlands","minecraft:eroded_badlands","minecraft:flower_forest","minecraft:forest","minecraft:frozen_ocean","minecraft:frozen_river","minecraft:giant_spruce_taiga","minecraft:giant_spruce_taiga_hills","minecraft:giant_tree_taiga","minecraft:giant_tree_taiga_hills","minecraft:gravelly_mountains","minecraft:ice_spikes","minecraft:jungle","minecraft:jungle_edge","minecraft:jungle_hills","minecraft:lukewarm_ocean","minecraft:modified_badlands_plateau","minecraft:modified_gravelly_mountains","minecraft:modified_jungle","minecraft:modified_jungle_edge","minecraft:modified_wooded_badlands_plateau","minecraft:mountain_edge","minecraft:mountains","minecraft:mushroom_field_shore","minecraft:mushroom_fields","minecraft:nether","minecraft:ocean","minecraft:plains","minecraft:river","minecraft:savanna","minecraft:savanna_plateau","minecraft:shattered_savanna","minecraft:shattered_savanna_plateau","minecraft:small_end_islands","minecraft:snowy_beach","minecraft:snowy_mountains","minecraft:snowy_taiga","minecraft:snowy_taiga_hills","minecraft:snowy_taiga_mountains","minecraft:snowy_tundra","minecraft:stone_shore","minecraft:sunflower_plains","minecraft:swamp","minecraft:swamp_hills","minecraft:taiga","minecraft:taiga_hills","minecraft:taiga_mountains","minecraft:tall_birch_forest","minecraft:tall_birch_hills","minecraft:the_end","minecraft:the_void","minecraft:warm_ocean","minecraft:wooded_badlands_plateau","minecraft:wooded_hills","minecraft:wooded_mountains"],"blocktags":{"minecraft:wool":["minecraft:white_wool","minecraft:orange_wool","minecraft:magenta_wool","minecraft:light_blue_wool","minecraft:yellow_wool","minecraft:lime_wool","minecraft:pink_wool","minecraft:gray_wool","minecraft:light_gray_wool","minecraft:cyan_wool","minecraft:purple_wool","minecraft:blue_wool","minecraft:brown_wool","minecraft:green_wool","minecraft:red_wool","minecraft:black_wool"],"minecraft:planks":["minecraft:oak_planks","minecraft:spruce_planks","minecraft:birch_planks","minecraft:jungle_planks","minecraft:acacia_planks","minecraft:dark_oak_planks"],"minecraft:stone_bricks":["minecraft:stone_bricks","minecraft:mossy_stone_bricks","minecraft:cracked_stone_bricks","minecraft:chiseled_stone_bricks"],"minecraft:wooden_buttons":["minecraft:oak_button","minecraft:spruce_button","minecraft:birch_button","minecraft:jungle_button","minecraft:acacia_button","minecraft:dark_oak_button"],"minecraft:buttons":["minecraft:stone_button","minecraft:oak_button","minecraft:spruce_button","minecraft:birch_button","minecraft:jungle_button","minecraft:acacia_button","minecraft:dark_oak_button"],"minecraft:carpets":["minecraft:white_carpet","minecraft:orange_carpet","minecraft:magenta_carpet","minecraft:light_blue_carpet","minecraft:yellow_carpet","minecraft:lime_carpet","minecraft:pink_carpet","minecraft:gray_carpet","minecraft:light_gray_carpet","minecraft:cyan_carpet","minecraft:purple_carpet","minecraft:blue_carpet","minecraft:brown_carpet","minecraft:green_carpet","minecraft:red_carpet","minecraft:black_carpet"],"minecraft:wooden_doors":["minecraft:oak_door","minecraft:spruce_door","minecraft:birch_door","minecraft:jungle_door","minecraft:acacia_door","minecraft:dark_oak_door"],"minecraft:wooden_stairs":["minecraft:oak_stairs","minecraft:spruce_stairs","minecraft:birch_stairs","minecraft:jungle_stairs","minecraft:acacia_stairs","minecraft:dark_oak_stairs"],"minecraft:wooden_slabs":["minecraft:oak_slab","minecraft:spruce_slab","minecraft:birch_slab","minecraft:jungle_slab","minecraft:acacia_slab","minecraft:dark_oak_slab"],"minecraft:doors":["minecraft:iron_door","minecraft:oak_door","minecraft:spruce_door","minecraft:birch_door","minecraft:jungle_door","minecraft:acacia_door","minecraft:dark_oak_door"],"minecraft:saplings":["minecraft:oak_sapling","minecraft:spruce_sapling","minecraft:birch_sapling","minecraft:jungle_sapling","minecraft:acacia_sapling","minecraft:dark_oak_sapling"],"minecraft:dark_oak_logs":["minecraft:dark_oak_log","minecraft:dark_oak_wood","minecraft:stripped_dark_oak_log","minecraft:stripped_dark_oak_wood"],"minecraft:oak_logs":["minecraft:oak_log","minecraft:oak_wood","minecraft:stripped_oak_log","minecraft:stripped_oak_wood"],"minecraft:acacia_logs":["minecraft:acacia_log","minecraft:acacia_wood","minecraft:stripped_acacia_log","minecraft:stripped_acacia_wood"],"minecraft:birch_logs":["minecraft:birch_log","minecraft:birch_wood","minecraft:stripped_birch_log","minecraft:stripped_birch_wood"],"minecraft:jungle_logs":["minecraft:jungle_log","minecraft:jungle_wood","minecraft:stripped_jungle_log","minecraft:stripped_jungle_wood"],"minecraft:spruce_logs":["minecraft:spruce_log","minecraft:spruce_wood","minecraft:stripped_spruce_log","minecraft:stripped_spruce_wood"],"minecraft:anvil":["minecraft:anvil","minecraft:chipped_anvil","minecraft:damaged_anvil"],"minecraft:enderman_holdable":["minecraft:grass_block","minecraft:dirt","minecraft:coarse_dirt","minecraft:podzol","minecraft:sand","minecraft:red_sand","minecraft:gravel","minecraft:dandelion","minecraft:poppy","minecraft:blue_orchid","minecraft:allium","minecraft:azure_bluet","minecraft:red_tulip","minecraft:orange_tulip","minecraft:white_tulip","minecraft:pink_tulip","minecraft:oxeye_daisy","minecraft:brown_mushroom","minecraft:red_mushroom","minecraft:tnt","minecraft:cactus","minecraft:clay","minecraft:pumpkin","minecraft:carved_pumpkin","minecraft:melon","minecraft:mycelium","minecraft:netherrack"],"minecraft:flower_pots":["minecraft:flower_pot","minecraft:potted_poppy","minecraft:potted_blue_orchid","minecraft:potted_allium","minecraft:potted_azure_bluet","minecraft:potted_red_tulip","minecraft:potted_orange_tulip","minecraft:potted_white_tulip","minecraft:potted_pink_tulip","minecraft:potted_oxeye_daisy","minecraft:potted_dandelion","minecraft:potted_oak_sapling","minecraft:potted_spruce_sapling","minecraft:potted_birch_sapling","minecraft:potted_jungle_sapling","minecraft:potted_acacia_sapling","minecraft:potted_dark_oak_sapling","minecraft:potted_red_mushroom","minecraft:potted_brown_mushroom","minecraft:potted_dead_bush","minecraft:potted_fern","minecraft:potted_cactus"],"minecraft:banners":["minecraft:white_banner","minecraft:orange_banner","minecraft:magenta_banner","minecraft:light_blue_banner","minecraft:yellow_banner","minecraft:lime_banner","minecraft:pink_banner","minecraft:gray_banner","minecraft:light_gray_banner","minecraft:cyan_banner","minecraft:purple_banner","minecraft:blue_banner","minecraft:brown_banner","minecraft:green_banner","minecraft:red_banner","minecraft:black_banner","minecraft:white_wall_banner","minecraft:orange_wall_banner","minecraft:magenta_wall_banner","minecraft:light_blue_wall_banner","minecraft:yellow_wall_banner","minecraft:lime_wall_banner","minecraft:pink_wall_banner","minecraft:gray_wall_banner","minecraft:light_gray_wall_banner","minecraft:cyan_wall_banner","minecraft:purple_wall_banner","minecraft:blue_wall_banner","minecraft:brown_wall_banner","minecraft:green_wall_banner","minecraft:red_wall_banner","minecraft:black_wall_banner"],"minecraft:wooden_pressure_plates":["minecraft:oak_pressure_plate","minecraft:spruce_pressure_plate","minecraft:birch_pressure_plate","minecraft:jungle_pressure_plate","minecraft:acacia_pressure_plate","minecraft:dark_oak_pressure_plate"],"minecraft:stairs":["minecraft:oak_stairs","minecraft:cobblestone_stairs","minecraft:spruce_stairs","minecraft:sandstone_stairs","minecraft:acacia_stairs","minecraft:jungle_stairs","minecraft:birch_stairs","minecraft:dark_oak_stairs","minecraft:nether_brick_stairs","minecraft:stone_brick_stairs","minecraft:brick_stairs","minecraft:purpur_stairs","minecraft:quartz_stairs","minecraft:red_sandstone_stairs","minecraft:prismarine_brick_stairs","minecraft:prismarine_stairs","minecraft:dark_prismarine_stairs"],"minecraft:slabs":["minecraft:stone_slab","minecraft:stone_brick_slab","minecraft:sandstone_slab","minecraft:acacia_slab","minecraft:birch_slab","minecraft:dark_oak_slab","minecraft:jungle_slab","minecraft:oak_slab","minecraft:spruce_slab","minecraft:purpur_slab","minecraft:quartz_slab","minecraft:red_sandstone_slab","minecraft:brick_slab","minecraft:cobblestone_slab","minecraft:nether_brick_slab","minecraft:petrified_oak_slab","minecraft:prismarine_slab","minecraft:prismarine_brick_slab","minecraft:dark_prismarine_slab"],"minecraft:coral_plants":["minecraft:tube_coral","minecraft:brain_coral","minecraft:bubble_coral","minecraft:fire_coral","minecraft:horn_coral"],"minecraft:corals":["minecraft:tube_coral_fan","minecraft:brain_coral_fan","minecraft:bubble_coral_fan","minecraft:fire_coral_fan","minecraft:horn_coral_fan","minecraft:tube_coral","minecraft:brain_coral","minecraft:bubble_coral","minecraft:fire_coral","minecraft:horn_coral"],"minecraft:wall_corals":["minecraft:tube_coral_wall_fan","minecraft:brain_coral_wall_fan","minecraft:bubble_coral_wall_fan","minecraft:fire_coral_wall_fan","minecraft:horn_coral_wall_fan"],"minecraft:sand":["minecraft:sand","minecraft:red_sand"],"minecraft:rails":["minecraft:rail","minecraft:powered_rail","minecraft:detector_rail","minecraft:activator_rail"],"minecraft:coral_blocks":["minecraft:tube_coral_block","minecraft:brain_coral_block","minecraft:bubble_coral_block","minecraft:fire_coral_block","minecraft:horn_coral_block"],"minecraft:ice":["minecraft:ice","minecraft:packed_ice","minecraft:blue_ice","minecraft:frosted_ice"],"minecraft:valid_spawn":["minecraft:grass_block","minecraft:podzol"],"minecraft:leaves":["minecraft:jungle_leaves","minecraft:oak_leaves","minecraft:spruce_leaves","minecraft:dark_oak_leaves","minecraft:acacia_leaves","minecraft:birch_leaves"],"minecraft:impermeable":["minecraft:glass","minecraft:white_stained_glass","minecraft:orange_stained_glass","minecraft:magenta_stained_glass","minecraft:light_blue_stained_glass","minecraft:yellow_stained_glass","minecraft:lime_stained_glass","minecraft:pink_stained_glass","minecraft:gray_stained_glass","minecraft:light_gray_stained_glass","minecraft:cyan_stained_glass","minecraft:purple_stained_glass","minecraft:blue_stained_glass","minecraft:brown_stained_glass","minecraft:green_stained_glass","minecraft:red_stained_glass","minecraft:black_stained_glass"],"minecraft:wooden_trapdoors":["minecraft:acacia_trapdoor","minecraft:birch_trapdoor","minecraft:dark_oak_trapdoor","minecraft:jungle_trapdoor","minecraft:oak_trapdoor","minecraft:spruce_trapdoor"],"minecraft:trapdoors":["minecraft:iron_trapdoor","minecraft:acacia_trapdoor","minecraft:birch_trapdoor","minecraft:dark_oak_trapdoor","minecraft:jungle_trapdoor","minecraft:oak_trapdoor","minecraft:spruce_trapdoor"],"minecraft:underwater_bonemeals":["minecraft:seagrass","minecraft:tube_coral_fan","minecraft:brain_coral_fan","minecraft:bubble_coral_fan","minecraft:fire_coral_fan","minecraft:horn_coral_fan","minecraft:tube_coral","minecraft:brain_coral","minecraft:bubble_coral","minecraft:fire_coral","minecraft:horn_coral","minecraft:tube_coral_wall_fan","minecraft:brain_coral_wall_fan","minecraft:bubble_coral_wall_fan","minecraft:fire_coral_wall_fan","minecraft:horn_coral_wall_fan"],"minecraft:logs":["minecraft:dark_oak_log","minecraft:dark_oak_wood","minecraft:stripped_dark_oak_log","minecraft:stripped_dark_oak_wood","minecraft:oak_log","minecraft:oak_wood","minecraft:stripped_oak_log","minecraft:stripped_oak_wood","minecraft:acacia_log","minecraft:acacia_wood","minecraft:stripped_acacia_log","minecraft:stripped_acacia_wood","minecraft:birch_log","minecraft:birch_wood","minecraft:stripped_birch_log","minecraft:stripped_birch_wood","minecraft:jungle_log","minecraft:jungle_wood","minecraft:stripped_jungle_log","minecraft:stripped_jungle_wood","minecraft:spruce_log","minecraft:spruce_wood","minecraft:stripped_spruce_log","minecraft:stripped_spruce_wood"]},"itemtags":{"minecraft:banners":["minecraft:white_banner","minecraft:orange_banner","minecraft:magenta_banner","minecraft:light_blue_banner","minecraft:yellow_banner","minecraft:lime_banner","minecraft:pink_banner","minecraft:gray_banner","minecraft:light_gray_banner","minecraft:cyan_banner","minecraft:purple_banner","minecraft:blue_banner","minecraft:brown_banner","minecraft:green_banner","minecraft:red_banner","minecraft:black_banner"],"minecraft:boats":["minecraft:oak_boat","minecraft:spruce_boat","minecraft:birch_boat","minecraft:jungle_boat","minecraft:acacia_boat","minecraft:dark_oak_boat"],"minecraft:fishes":["minecraft:cod","minecraft:cooked_cod","minecraft:salmon","minecraft:cooked_salmon","minecraft:pufferfish","minecraft:tropical_fish"]},"entitytags":{}} \ No newline at end of file +{ + "blocks": { + "minecraft:acacia_button": { + "properties": { + "face": { + "values": [ + "floor", + "wall", + "ceiling" + ], + "type": "enum" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:acacia_button[face=wall,facing=north,powered=false]" + }, + "minecraft:acacia_door": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + }, + "hinge": { + "values": [ + "left", + "right" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:acacia_door[facing=north,half=lower,hinge=left,open=false,powered=false]" + }, + "minecraft:acacia_fence": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:acacia_fence[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:acacia_fence_gate": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "in_wall": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:acacia_fence_gate[facing=north,in_wall=false,open=false,powered=false]" + }, + "minecraft:acacia_leaves": { + "properties": { + "distance": { + "values": [ + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ], + "type": "int" + }, + "persistent": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:acacia_leaves[distance=7,persistent=false]" + }, + "minecraft:acacia_log": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:acacia_log[axis=y]" + }, + "minecraft:acacia_planks": { + "properties": {}, + "defaultstate": "minecraft:acacia_planks" + }, + "minecraft:acacia_pressure_plate": { + "properties": { + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:acacia_pressure_plate[powered=false]" + }, + "minecraft:acacia_sapling": { + "properties": { + "stage": { + "values": [ + "0", + "1" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:acacia_sapling[stage=0]" + }, + "minecraft:acacia_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:acacia_slab[type=bottom,waterlogged=false]" + }, + "minecraft:acacia_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:acacia_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:acacia_trapdoor": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:acacia_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]" + }, + "minecraft:acacia_wood": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:acacia_wood[axis=y]" + }, + "minecraft:activator_rail": { + "properties": { + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "shape": { + "values": [ + "north_south", + "east_west", + "ascending_east", + "ascending_west", + "ascending_north", + "ascending_south" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:activator_rail[powered=false,shape=north_south]" + }, + "minecraft:air": { + "properties": {}, + "defaultstate": "minecraft:air" + }, + "minecraft:allium": { + "properties": {}, + "defaultstate": "minecraft:allium" + }, + "minecraft:andesite": { + "properties": {}, + "defaultstate": "minecraft:andesite" + }, + "minecraft:anvil": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:anvil[facing=north]" + }, + "minecraft:attached_melon_stem": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:attached_melon_stem[facing=north]" + }, + "minecraft:attached_pumpkin_stem": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:attached_pumpkin_stem[facing=north]" + }, + "minecraft:azure_bluet": { + "properties": {}, + "defaultstate": "minecraft:azure_bluet" + }, + "minecraft:barrier": { + "properties": {}, + "defaultstate": "minecraft:barrier" + }, + "minecraft:beacon": { + "properties": {}, + "defaultstate": "minecraft:beacon" + }, + "minecraft:bedrock": { + "properties": {}, + "defaultstate": "minecraft:bedrock" + }, + "minecraft:beetroots": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:beetroots[age=0]" + }, + "minecraft:birch_button": { + "properties": { + "face": { + "values": [ + "floor", + "wall", + "ceiling" + ], + "type": "enum" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:birch_button[face=wall,facing=north,powered=false]" + }, + "minecraft:birch_door": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + }, + "hinge": { + "values": [ + "left", + "right" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:birch_door[facing=north,half=lower,hinge=left,open=false,powered=false]" + }, + "minecraft:birch_fence": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:birch_fence[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:birch_fence_gate": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "in_wall": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:birch_fence_gate[facing=north,in_wall=false,open=false,powered=false]" + }, + "minecraft:birch_leaves": { + "properties": { + "distance": { + "values": [ + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ], + "type": "int" + }, + "persistent": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:birch_leaves[distance=7,persistent=false]" + }, + "minecraft:birch_log": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:birch_log[axis=y]" + }, + "minecraft:birch_planks": { + "properties": {}, + "defaultstate": "minecraft:birch_planks" + }, + "minecraft:birch_pressure_plate": { + "properties": { + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:birch_pressure_plate[powered=false]" + }, + "minecraft:birch_sapling": { + "properties": { + "stage": { + "values": [ + "0", + "1" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:birch_sapling[stage=0]" + }, + "minecraft:birch_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:birch_slab[type=bottom,waterlogged=false]" + }, + "minecraft:birch_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:birch_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:birch_trapdoor": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:birch_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]" + }, + "minecraft:birch_wood": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:birch_wood[axis=y]" + }, + "minecraft:black_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:black_banner[rotation=0]" + }, + "minecraft:black_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:black_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:black_carpet": { + "properties": {}, + "defaultstate": "minecraft:black_carpet" + }, + "minecraft:black_concrete": { + "properties": {}, + "defaultstate": "minecraft:black_concrete" + }, + "minecraft:black_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:black_concrete_powder" + }, + "minecraft:black_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:black_glazed_terracotta[facing=north]" + }, + "minecraft:black_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:black_shulker_box[facing=up]" + }, + "minecraft:black_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:black_stained_glass" + }, + "minecraft:black_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:black_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:black_terracotta": { + "properties": {}, + "defaultstate": "minecraft:black_terracotta" + }, + "minecraft:black_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:black_wall_banner[facing=north]" + }, + "minecraft:black_wool": { + "properties": {}, + "defaultstate": "minecraft:black_wool" + }, + "minecraft:blue_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:blue_banner[rotation=0]" + }, + "minecraft:blue_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:blue_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:blue_carpet": { + "properties": {}, + "defaultstate": "minecraft:blue_carpet" + }, + "minecraft:blue_concrete": { + "properties": {}, + "defaultstate": "minecraft:blue_concrete" + }, + "minecraft:blue_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:blue_concrete_powder" + }, + "minecraft:blue_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:blue_glazed_terracotta[facing=north]" + }, + "minecraft:blue_ice": { + "properties": {}, + "defaultstate": "minecraft:blue_ice" + }, + "minecraft:blue_orchid": { + "properties": {}, + "defaultstate": "minecraft:blue_orchid" + }, + "minecraft:blue_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:blue_shulker_box[facing=up]" + }, + "minecraft:blue_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:blue_stained_glass" + }, + "minecraft:blue_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:blue_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:blue_terracotta": { + "properties": {}, + "defaultstate": "minecraft:blue_terracotta" + }, + "minecraft:blue_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:blue_wall_banner[facing=north]" + }, + "minecraft:blue_wool": { + "properties": {}, + "defaultstate": "minecraft:blue_wool" + }, + "minecraft:bone_block": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:bone_block[axis=y]" + }, + "minecraft:bookshelf": { + "properties": {}, + "defaultstate": "minecraft:bookshelf" + }, + "minecraft:brain_coral": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:brain_coral[waterlogged=true]" + }, + "minecraft:brain_coral_block": { + "properties": {}, + "defaultstate": "minecraft:brain_coral_block" + }, + "minecraft:brain_coral_fan": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:brain_coral_fan[waterlogged=true]" + }, + "minecraft:brain_coral_wall_fan": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:brain_coral_wall_fan[facing=north,waterlogged=true]" + }, + "minecraft:brewing_stand": { + "properties": { + "has_bottle_0": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "has_bottle_1": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "has_bottle_2": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:brewing_stand[has_bottle_0=false,has_bottle_1=false,has_bottle_2=false]" + }, + "minecraft:brick_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:brick_slab[type=bottom,waterlogged=false]" + }, + "minecraft:brick_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:bricks": { + "properties": {}, + "defaultstate": "minecraft:bricks" + }, + "minecraft:brown_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:brown_banner[rotation=0]" + }, + "minecraft:brown_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:brown_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:brown_carpet": { + "properties": {}, + "defaultstate": "minecraft:brown_carpet" + }, + "minecraft:brown_concrete": { + "properties": {}, + "defaultstate": "minecraft:brown_concrete" + }, + "minecraft:brown_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:brown_concrete_powder" + }, + "minecraft:brown_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:brown_glazed_terracotta[facing=north]" + }, + "minecraft:brown_mushroom": { + "properties": {}, + "defaultstate": "minecraft:brown_mushroom" + }, + "minecraft:brown_mushroom_block": { + "properties": { + "down": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:brown_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true]" + }, + "minecraft:brown_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:brown_shulker_box[facing=up]" + }, + "minecraft:brown_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:brown_stained_glass" + }, + "minecraft:brown_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:brown_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:brown_terracotta": { + "properties": {}, + "defaultstate": "minecraft:brown_terracotta" + }, + "minecraft:brown_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:brown_wall_banner[facing=north]" + }, + "minecraft:brown_wool": { + "properties": {}, + "defaultstate": "minecraft:brown_wool" + }, + "minecraft:bubble_column": { + "properties": { + "drag": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:bubble_column[drag=true]" + }, + "minecraft:bubble_coral": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:bubble_coral[waterlogged=true]" + }, + "minecraft:bubble_coral_block": { + "properties": {}, + "defaultstate": "minecraft:bubble_coral_block" + }, + "minecraft:bubble_coral_fan": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:bubble_coral_fan[waterlogged=true]" + }, + "minecraft:bubble_coral_wall_fan": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:bubble_coral_wall_fan[facing=north,waterlogged=true]" + }, + "minecraft:cactus": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:cactus[age=0]" + }, + "minecraft:cake": { + "properties": { + "bites": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:cake[bites=0]" + }, + "minecraft:carrots": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:carrots[age=0]" + }, + "minecraft:carved_pumpkin": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:carved_pumpkin[facing=north]" + }, + "minecraft:cauldron": { + "properties": { + "level": { + "values": [ + "0", + "1", + "2", + "3" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:cauldron[level=0]" + }, + "minecraft:cave_air": { + "properties": {}, + "defaultstate": "minecraft:cave_air" + }, + "minecraft:chain_command_block": { + "properties": { + "conditional": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:chain_command_block[conditional=false,facing=north]" + }, + "minecraft:chest": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "type": { + "values": [ + "single", + "left", + "right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:chest[facing=north,type=single,waterlogged=false]" + }, + "minecraft:chipped_anvil": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:chipped_anvil[facing=north]" + }, + "minecraft:chiseled_quartz_block": { + "properties": {}, + "defaultstate": "minecraft:chiseled_quartz_block" + }, + "minecraft:chiseled_red_sandstone": { + "properties": {}, + "defaultstate": "minecraft:chiseled_red_sandstone" + }, + "minecraft:chiseled_sandstone": { + "properties": {}, + "defaultstate": "minecraft:chiseled_sandstone" + }, + "minecraft:chiseled_stone_bricks": { + "properties": {}, + "defaultstate": "minecraft:chiseled_stone_bricks" + }, + "minecraft:chorus_flower": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:chorus_flower[age=0]" + }, + "minecraft:chorus_plant": { + "properties": { + "down": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:chorus_plant[down=false,east=false,north=false,south=false,up=false,west=false]" + }, + "minecraft:clay": { + "properties": {}, + "defaultstate": "minecraft:clay" + }, + "minecraft:coal_block": { + "properties": {}, + "defaultstate": "minecraft:coal_block" + }, + "minecraft:coal_ore": { + "properties": {}, + "defaultstate": "minecraft:coal_ore" + }, + "minecraft:coarse_dirt": { + "properties": {}, + "defaultstate": "minecraft:coarse_dirt" + }, + "minecraft:cobblestone": { + "properties": {}, + "defaultstate": "minecraft:cobblestone" + }, + "minecraft:cobblestone_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:cobblestone_slab[type=bottom,waterlogged=false]" + }, + "minecraft:cobblestone_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:cobblestone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:cobblestone_wall": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:cobblestone_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]" + }, + "minecraft:cobweb": { + "properties": {}, + "defaultstate": "minecraft:cobweb" + }, + "minecraft:cocoa": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2" + ], + "type": "int" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:cocoa[age=0,facing=north]" + }, + "minecraft:command_block": { + "properties": { + "conditional": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:command_block[conditional=false,facing=north]" + }, + "minecraft:comparator": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "mode": { + "values": [ + "compare", + "subtract" + ], + "type": "enum" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:comparator[facing=north,mode=compare,powered=false]" + }, + "minecraft:conduit": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:conduit[waterlogged=true]" + }, + "minecraft:cracked_stone_bricks": { + "properties": {}, + "defaultstate": "minecraft:cracked_stone_bricks" + }, + "minecraft:crafting_table": { + "properties": {}, + "defaultstate": "minecraft:crafting_table" + }, + "minecraft:creeper_head": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:creeper_head[rotation=0]" + }, + "minecraft:creeper_wall_head": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:creeper_wall_head[facing=north]" + }, + "minecraft:cut_red_sandstone": { + "properties": {}, + "defaultstate": "minecraft:cut_red_sandstone" + }, + "minecraft:cut_sandstone": { + "properties": {}, + "defaultstate": "minecraft:cut_sandstone" + }, + "minecraft:cyan_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:cyan_banner[rotation=0]" + }, + "minecraft:cyan_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:cyan_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:cyan_carpet": { + "properties": {}, + "defaultstate": "minecraft:cyan_carpet" + }, + "minecraft:cyan_concrete": { + "properties": {}, + "defaultstate": "minecraft:cyan_concrete" + }, + "minecraft:cyan_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:cyan_concrete_powder" + }, + "minecraft:cyan_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:cyan_glazed_terracotta[facing=north]" + }, + "minecraft:cyan_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:cyan_shulker_box[facing=up]" + }, + "minecraft:cyan_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:cyan_stained_glass" + }, + "minecraft:cyan_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:cyan_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:cyan_terracotta": { + "properties": {}, + "defaultstate": "minecraft:cyan_terracotta" + }, + "minecraft:cyan_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:cyan_wall_banner[facing=north]" + }, + "minecraft:cyan_wool": { + "properties": {}, + "defaultstate": "minecraft:cyan_wool" + }, + "minecraft:damaged_anvil": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:damaged_anvil[facing=north]" + }, + "minecraft:dandelion": { + "properties": {}, + "defaultstate": "minecraft:dandelion" + }, + "minecraft:dark_oak_button": { + "properties": { + "face": { + "values": [ + "floor", + "wall", + "ceiling" + ], + "type": "enum" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dark_oak_button[face=wall,facing=north,powered=false]" + }, + "minecraft:dark_oak_door": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + }, + "hinge": { + "values": [ + "left", + "right" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dark_oak_door[facing=north,half=lower,hinge=left,open=false,powered=false]" + }, + "minecraft:dark_oak_fence": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dark_oak_fence[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:dark_oak_fence_gate": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "in_wall": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dark_oak_fence_gate[facing=north,in_wall=false,open=false,powered=false]" + }, + "minecraft:dark_oak_leaves": { + "properties": { + "distance": { + "values": [ + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ], + "type": "int" + }, + "persistent": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dark_oak_leaves[distance=7,persistent=false]" + }, + "minecraft:dark_oak_log": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:dark_oak_log[axis=y]" + }, + "minecraft:dark_oak_planks": { + "properties": {}, + "defaultstate": "minecraft:dark_oak_planks" + }, + "minecraft:dark_oak_pressure_plate": { + "properties": { + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dark_oak_pressure_plate[powered=false]" + }, + "minecraft:dark_oak_sapling": { + "properties": { + "stage": { + "values": [ + "0", + "1" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:dark_oak_sapling[stage=0]" + }, + "minecraft:dark_oak_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dark_oak_slab[type=bottom,waterlogged=false]" + }, + "minecraft:dark_oak_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dark_oak_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:dark_oak_trapdoor": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dark_oak_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]" + }, + "minecraft:dark_oak_wood": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:dark_oak_wood[axis=y]" + }, + "minecraft:dark_prismarine": { + "properties": {}, + "defaultstate": "minecraft:dark_prismarine" + }, + "minecraft:dark_prismarine_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dark_prismarine_slab[type=bottom,waterlogged=false]" + }, + "minecraft:dark_prismarine_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dark_prismarine_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:daylight_detector": { + "properties": { + "inverted": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "power": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:daylight_detector[inverted=false,power=0]" + }, + "minecraft:dead_brain_coral": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_brain_coral[waterlogged=true]" + }, + "minecraft:dead_brain_coral_block": { + "properties": {}, + "defaultstate": "minecraft:dead_brain_coral_block" + }, + "minecraft:dead_brain_coral_fan": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_brain_coral_fan[waterlogged=true]" + }, + "minecraft:dead_brain_coral_wall_fan": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_brain_coral_wall_fan[facing=north,waterlogged=true]" + }, + "minecraft:dead_bubble_coral": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_bubble_coral[waterlogged=true]" + }, + "minecraft:dead_bubble_coral_block": { + "properties": {}, + "defaultstate": "minecraft:dead_bubble_coral_block" + }, + "minecraft:dead_bubble_coral_fan": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_bubble_coral_fan[waterlogged=true]" + }, + "minecraft:dead_bubble_coral_wall_fan": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_bubble_coral_wall_fan[facing=north,waterlogged=true]" + }, + "minecraft:dead_bush": { + "properties": {}, + "defaultstate": "minecraft:dead_bush" + }, + "minecraft:dead_fire_coral": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_fire_coral[waterlogged=true]" + }, + "minecraft:dead_fire_coral_block": { + "properties": {}, + "defaultstate": "minecraft:dead_fire_coral_block" + }, + "minecraft:dead_fire_coral_fan": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_fire_coral_fan[waterlogged=true]" + }, + "minecraft:dead_fire_coral_wall_fan": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_fire_coral_wall_fan[facing=north,waterlogged=true]" + }, + "minecraft:dead_horn_coral": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_horn_coral[waterlogged=true]" + }, + "minecraft:dead_horn_coral_block": { + "properties": {}, + "defaultstate": "minecraft:dead_horn_coral_block" + }, + "minecraft:dead_horn_coral_fan": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_horn_coral_fan[waterlogged=true]" + }, + "minecraft:dead_horn_coral_wall_fan": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_horn_coral_wall_fan[facing=north,waterlogged=true]" + }, + "minecraft:dead_tube_coral": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_tube_coral[waterlogged=true]" + }, + "minecraft:dead_tube_coral_block": { + "properties": {}, + "defaultstate": "minecraft:dead_tube_coral_block" + }, + "minecraft:dead_tube_coral_fan": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_tube_coral_fan[waterlogged=true]" + }, + "minecraft:dead_tube_coral_wall_fan": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_tube_coral_wall_fan[facing=north,waterlogged=true]" + }, + "minecraft:detector_rail": { + "properties": { + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "shape": { + "values": [ + "north_south", + "east_west", + "ascending_east", + "ascending_west", + "ascending_north", + "ascending_south" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:detector_rail[powered=false,shape=north_south]" + }, + "minecraft:diamond_block": { + "properties": {}, + "defaultstate": "minecraft:diamond_block" + }, + "minecraft:diamond_ore": { + "properties": {}, + "defaultstate": "minecraft:diamond_ore" + }, + "minecraft:diorite": { + "properties": {}, + "defaultstate": "minecraft:diorite" + }, + "minecraft:dirt": { + "properties": {}, + "defaultstate": "minecraft:dirt" + }, + "minecraft:dispenser": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + }, + "triggered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dispenser[facing=north,triggered=false]" + }, + "minecraft:dragon_egg": { + "properties": {}, + "defaultstate": "minecraft:dragon_egg" + }, + "minecraft:dragon_head": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:dragon_head[rotation=0]" + }, + "minecraft:dragon_wall_head": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:dragon_wall_head[facing=north]" + }, + "minecraft:dried_kelp_block": { + "properties": {}, + "defaultstate": "minecraft:dried_kelp_block" + }, + "minecraft:dropper": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + }, + "triggered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dropper[facing=north,triggered=false]" + }, + "minecraft:emerald_block": { + "properties": {}, + "defaultstate": "minecraft:emerald_block" + }, + "minecraft:emerald_ore": { + "properties": {}, + "defaultstate": "minecraft:emerald_ore" + }, + "minecraft:enchanting_table": { + "properties": {}, + "defaultstate": "minecraft:enchanting_table" + }, + "minecraft:end_gateway": { + "properties": {}, + "defaultstate": "minecraft:end_gateway" + }, + "minecraft:end_portal": { + "properties": {}, + "defaultstate": "minecraft:end_portal" + }, + "minecraft:end_portal_frame": { + "properties": { + "eye": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:end_portal_frame[eye=false,facing=north]" + }, + "minecraft:end_rod": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:end_rod[facing=up]" + }, + "minecraft:end_stone": { + "properties": {}, + "defaultstate": "minecraft:end_stone" + }, + "minecraft:end_stone_bricks": { + "properties": {}, + "defaultstate": "minecraft:end_stone_bricks" + }, + "minecraft:ender_chest": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:ender_chest[facing=north,waterlogged=false]" + }, + "minecraft:farmland": { + "properties": { + "moisture": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:farmland[moisture=0]" + }, + "minecraft:fern": { + "properties": {}, + "defaultstate": "minecraft:fern" + }, + "minecraft:fire": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + }, + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:fire[age=0,east=false,north=false,south=false,up=false,west=false]" + }, + "minecraft:fire_coral": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:fire_coral[waterlogged=true]" + }, + "minecraft:fire_coral_block": { + "properties": {}, + "defaultstate": "minecraft:fire_coral_block" + }, + "minecraft:fire_coral_fan": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:fire_coral_fan[waterlogged=true]" + }, + "minecraft:fire_coral_wall_fan": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:fire_coral_wall_fan[facing=north,waterlogged=true]" + }, + "minecraft:flower_pot": { + "properties": {}, + "defaultstate": "minecraft:flower_pot" + }, + "minecraft:frosted_ice": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:frosted_ice[age=0]" + }, + "minecraft:furnace": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "lit": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:furnace[facing=north,lit=false]" + }, + "minecraft:glass": { + "properties": {}, + "defaultstate": "minecraft:glass" + }, + "minecraft:glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:glowstone": { + "properties": {}, + "defaultstate": "minecraft:glowstone" + }, + "minecraft:gold_block": { + "properties": {}, + "defaultstate": "minecraft:gold_block" + }, + "minecraft:gold_ore": { + "properties": {}, + "defaultstate": "minecraft:gold_ore" + }, + "minecraft:granite": { + "properties": {}, + "defaultstate": "minecraft:granite" + }, + "minecraft:grass": { + "properties": {}, + "defaultstate": "minecraft:grass" + }, + "minecraft:grass_block": { + "properties": { + "snowy": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:grass_block[snowy=false]" + }, + "minecraft:grass_path": { + "properties": {}, + "defaultstate": "minecraft:grass_path" + }, + "minecraft:gravel": { + "properties": {}, + "defaultstate": "minecraft:gravel" + }, + "minecraft:gray_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:gray_banner[rotation=0]" + }, + "minecraft:gray_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:gray_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:gray_carpet": { + "properties": {}, + "defaultstate": "minecraft:gray_carpet" + }, + "minecraft:gray_concrete": { + "properties": {}, + "defaultstate": "minecraft:gray_concrete" + }, + "minecraft:gray_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:gray_concrete_powder" + }, + "minecraft:gray_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:gray_glazed_terracotta[facing=north]" + }, + "minecraft:gray_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:gray_shulker_box[facing=up]" + }, + "minecraft:gray_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:gray_stained_glass" + }, + "minecraft:gray_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:gray_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:gray_terracotta": { + "properties": {}, + "defaultstate": "minecraft:gray_terracotta" + }, + "minecraft:gray_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:gray_wall_banner[facing=north]" + }, + "minecraft:gray_wool": { + "properties": {}, + "defaultstate": "minecraft:gray_wool" + }, + "minecraft:green_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:green_banner[rotation=0]" + }, + "minecraft:green_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:green_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:green_carpet": { + "properties": {}, + "defaultstate": "minecraft:green_carpet" + }, + "minecraft:green_concrete": { + "properties": {}, + "defaultstate": "minecraft:green_concrete" + }, + "minecraft:green_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:green_concrete_powder" + }, + "minecraft:green_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:green_glazed_terracotta[facing=north]" + }, + "minecraft:green_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:green_shulker_box[facing=up]" + }, + "minecraft:green_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:green_stained_glass" + }, + "minecraft:green_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:green_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:green_terracotta": { + "properties": {}, + "defaultstate": "minecraft:green_terracotta" + }, + "minecraft:green_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:green_wall_banner[facing=north]" + }, + "minecraft:green_wool": { + "properties": {}, + "defaultstate": "minecraft:green_wool" + }, + "minecraft:hay_block": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:hay_block[axis=y]" + }, + "minecraft:heavy_weighted_pressure_plate": { + "properties": { + "power": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:heavy_weighted_pressure_plate[power=0]" + }, + "minecraft:hopper": { + "properties": { + "enabled": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "facing": { + "values": [ + "down", + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:hopper[enabled=true,facing=down]" + }, + "minecraft:horn_coral": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:horn_coral[waterlogged=true]" + }, + "minecraft:horn_coral_block": { + "properties": {}, + "defaultstate": "minecraft:horn_coral_block" + }, + "minecraft:horn_coral_fan": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:horn_coral_fan[waterlogged=true]" + }, + "minecraft:horn_coral_wall_fan": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:horn_coral_wall_fan[facing=north,waterlogged=true]" + }, + "minecraft:ice": { + "properties": {}, + "defaultstate": "minecraft:ice" + }, + "minecraft:infested_chiseled_stone_bricks": { + "properties": {}, + "defaultstate": "minecraft:infested_chiseled_stone_bricks" + }, + "minecraft:infested_cobblestone": { + "properties": {}, + "defaultstate": "minecraft:infested_cobblestone" + }, + "minecraft:infested_cracked_stone_bricks": { + "properties": {}, + "defaultstate": "minecraft:infested_cracked_stone_bricks" + }, + "minecraft:infested_mossy_stone_bricks": { + "properties": {}, + "defaultstate": "minecraft:infested_mossy_stone_bricks" + }, + "minecraft:infested_stone": { + "properties": {}, + "defaultstate": "minecraft:infested_stone" + }, + "minecraft:infested_stone_bricks": { + "properties": {}, + "defaultstate": "minecraft:infested_stone_bricks" + }, + "minecraft:iron_bars": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:iron_bars[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:iron_block": { + "properties": {}, + "defaultstate": "minecraft:iron_block" + }, + "minecraft:iron_door": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + }, + "hinge": { + "values": [ + "left", + "right" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:iron_door[facing=north,half=lower,hinge=left,open=false,powered=false]" + }, + "minecraft:iron_ore": { + "properties": {}, + "defaultstate": "minecraft:iron_ore" + }, + "minecraft:iron_trapdoor": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:iron_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]" + }, + "minecraft:jack_o_lantern": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:jack_o_lantern[facing=north]" + }, + "minecraft:jukebox": { + "properties": { + "has_record": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:jukebox[has_record=false]" + }, + "minecraft:jungle_button": { + "properties": { + "face": { + "values": [ + "floor", + "wall", + "ceiling" + ], + "type": "enum" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:jungle_button[face=wall,facing=north,powered=false]" + }, + "minecraft:jungle_door": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + }, + "hinge": { + "values": [ + "left", + "right" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:jungle_door[facing=north,half=lower,hinge=left,open=false,powered=false]" + }, + "minecraft:jungle_fence": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:jungle_fence[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:jungle_fence_gate": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "in_wall": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:jungle_fence_gate[facing=north,in_wall=false,open=false,powered=false]" + }, + "minecraft:jungle_leaves": { + "properties": { + "distance": { + "values": [ + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ], + "type": "int" + }, + "persistent": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:jungle_leaves[distance=7,persistent=false]" + }, + "minecraft:jungle_log": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:jungle_log[axis=y]" + }, + "minecraft:jungle_planks": { + "properties": {}, + "defaultstate": "minecraft:jungle_planks" + }, + "minecraft:jungle_pressure_plate": { + "properties": { + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:jungle_pressure_plate[powered=false]" + }, + "minecraft:jungle_sapling": { + "properties": { + "stage": { + "values": [ + "0", + "1" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:jungle_sapling[stage=0]" + }, + "minecraft:jungle_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:jungle_slab[type=bottom,waterlogged=false]" + }, + "minecraft:jungle_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:jungle_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:jungle_trapdoor": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:jungle_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]" + }, + "minecraft:jungle_wood": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:jungle_wood[axis=y]" + }, + "minecraft:kelp": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15", + "16", + "17", + "18", + "19", + "20", + "21", + "22", + "23", + "24", + "25" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:kelp[age=0]" + }, + "minecraft:kelp_plant": { + "properties": {}, + "defaultstate": "minecraft:kelp_plant" + }, + "minecraft:ladder": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:ladder[facing=north,waterlogged=false]" + }, + "minecraft:lapis_block": { + "properties": {}, + "defaultstate": "minecraft:lapis_block" + }, + "minecraft:lapis_ore": { + "properties": {}, + "defaultstate": "minecraft:lapis_ore" + }, + "minecraft:large_fern": { + "properties": { + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:large_fern[half=lower]" + }, + "minecraft:lava": { + "properties": { + "level": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:lava[level=0]" + }, + "minecraft:lever": { + "properties": { + "face": { + "values": [ + "floor", + "wall", + "ceiling" + ], + "type": "enum" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:lever[face=wall,facing=north,powered=false]" + }, + "minecraft:light_blue_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:light_blue_banner[rotation=0]" + }, + "minecraft:light_blue_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:light_blue_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:light_blue_carpet": { + "properties": {}, + "defaultstate": "minecraft:light_blue_carpet" + }, + "minecraft:light_blue_concrete": { + "properties": {}, + "defaultstate": "minecraft:light_blue_concrete" + }, + "minecraft:light_blue_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:light_blue_concrete_powder" + }, + "minecraft:light_blue_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:light_blue_glazed_terracotta[facing=north]" + }, + "minecraft:light_blue_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:light_blue_shulker_box[facing=up]" + }, + "minecraft:light_blue_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:light_blue_stained_glass" + }, + "minecraft:light_blue_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:light_blue_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:light_blue_terracotta": { + "properties": {}, + "defaultstate": "minecraft:light_blue_terracotta" + }, + "minecraft:light_blue_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:light_blue_wall_banner[facing=north]" + }, + "minecraft:light_blue_wool": { + "properties": {}, + "defaultstate": "minecraft:light_blue_wool" + }, + "minecraft:light_gray_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:light_gray_banner[rotation=0]" + }, + "minecraft:light_gray_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:light_gray_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:light_gray_carpet": { + "properties": {}, + "defaultstate": "minecraft:light_gray_carpet" + }, + "minecraft:light_gray_concrete": { + "properties": {}, + "defaultstate": "minecraft:light_gray_concrete" + }, + "minecraft:light_gray_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:light_gray_concrete_powder" + }, + "minecraft:light_gray_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:light_gray_glazed_terracotta[facing=north]" + }, + "minecraft:light_gray_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:light_gray_shulker_box[facing=up]" + }, + "minecraft:light_gray_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:light_gray_stained_glass" + }, + "minecraft:light_gray_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:light_gray_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:light_gray_terracotta": { + "properties": {}, + "defaultstate": "minecraft:light_gray_terracotta" + }, + "minecraft:light_gray_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:light_gray_wall_banner[facing=north]" + }, + "minecraft:light_gray_wool": { + "properties": {}, + "defaultstate": "minecraft:light_gray_wool" + }, + "minecraft:light_weighted_pressure_plate": { + "properties": { + "power": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:light_weighted_pressure_plate[power=0]" + }, + "minecraft:lilac": { + "properties": { + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:lilac[half=lower]" + }, + "minecraft:lily_pad": { + "properties": {}, + "defaultstate": "minecraft:lily_pad" + }, + "minecraft:lime_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:lime_banner[rotation=0]" + }, + "minecraft:lime_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:lime_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:lime_carpet": { + "properties": {}, + "defaultstate": "minecraft:lime_carpet" + }, + "minecraft:lime_concrete": { + "properties": {}, + "defaultstate": "minecraft:lime_concrete" + }, + "minecraft:lime_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:lime_concrete_powder" + }, + "minecraft:lime_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:lime_glazed_terracotta[facing=north]" + }, + "minecraft:lime_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:lime_shulker_box[facing=up]" + }, + "minecraft:lime_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:lime_stained_glass" + }, + "minecraft:lime_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:lime_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:lime_terracotta": { + "properties": {}, + "defaultstate": "minecraft:lime_terracotta" + }, + "minecraft:lime_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:lime_wall_banner[facing=north]" + }, + "minecraft:lime_wool": { + "properties": {}, + "defaultstate": "minecraft:lime_wool" + }, + "minecraft:magenta_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:magenta_banner[rotation=0]" + }, + "minecraft:magenta_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:magenta_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:magenta_carpet": { + "properties": {}, + "defaultstate": "minecraft:magenta_carpet" + }, + "minecraft:magenta_concrete": { + "properties": {}, + "defaultstate": "minecraft:magenta_concrete" + }, + "minecraft:magenta_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:magenta_concrete_powder" + }, + "minecraft:magenta_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:magenta_glazed_terracotta[facing=north]" + }, + "minecraft:magenta_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:magenta_shulker_box[facing=up]" + }, + "minecraft:magenta_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:magenta_stained_glass" + }, + "minecraft:magenta_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:magenta_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:magenta_terracotta": { + "properties": {}, + "defaultstate": "minecraft:magenta_terracotta" + }, + "minecraft:magenta_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:magenta_wall_banner[facing=north]" + }, + "minecraft:magenta_wool": { + "properties": {}, + "defaultstate": "minecraft:magenta_wool" + }, + "minecraft:magma_block": { + "properties": {}, + "defaultstate": "minecraft:magma_block" + }, + "minecraft:melon": { + "properties": {}, + "defaultstate": "minecraft:melon" + }, + "minecraft:melon_stem": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:melon_stem[age=0]" + }, + "minecraft:mossy_cobblestone": { + "properties": {}, + "defaultstate": "minecraft:mossy_cobblestone" + }, + "minecraft:mossy_cobblestone_wall": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:mossy_cobblestone_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]" + }, + "minecraft:mossy_stone_bricks": { + "properties": {}, + "defaultstate": "minecraft:mossy_stone_bricks" + }, + "minecraft:moving_piston": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + }, + "type": { + "values": [ + "normal", + "sticky" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:moving_piston[facing=north,type=normal]" + }, + "minecraft:mushroom_stem": { + "properties": { + "down": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:mushroom_stem[down=true,east=true,north=true,south=true,up=true,west=true]" + }, + "minecraft:mycelium": { + "properties": { + "snowy": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:mycelium[snowy=false]" + }, + "minecraft:nether_brick_fence": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:nether_brick_fence[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:nether_brick_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:nether_brick_slab[type=bottom,waterlogged=false]" + }, + "minecraft:nether_brick_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:nether_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:nether_bricks": { + "properties": {}, + "defaultstate": "minecraft:nether_bricks" + }, + "minecraft:nether_portal": { + "properties": { + "axis": { + "values": [ + "x", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:nether_portal[axis=x]" + }, + "minecraft:nether_quartz_ore": { + "properties": {}, + "defaultstate": "minecraft:nether_quartz_ore" + }, + "minecraft:nether_wart": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:nether_wart[age=0]" + }, + "minecraft:nether_wart_block": { + "properties": {}, + "defaultstate": "minecraft:nether_wart_block" + }, + "minecraft:netherrack": { + "properties": {}, + "defaultstate": "minecraft:netherrack" + }, + "minecraft:note_block": { + "properties": { + "instrument": { + "values": [ + "harp", + "basedrum", + "snare", + "hat", + "bass", + "flute", + "bell", + "guitar", + "chime", + "xylophone" + ], + "type": "enum" + }, + "note": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15", + "16", + "17", + "18", + "19", + "20", + "21", + "22", + "23", + "24" + ], + "type": "int" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:note_block[instrument=harp,note=0,powered=false]" + }, + "minecraft:oak_button": { + "properties": { + "face": { + "values": [ + "floor", + "wall", + "ceiling" + ], + "type": "enum" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:oak_button[face=wall,facing=north,powered=false]" + }, + "minecraft:oak_door": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + }, + "hinge": { + "values": [ + "left", + "right" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:oak_door[facing=north,half=lower,hinge=left,open=false,powered=false]" + }, + "minecraft:oak_fence": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:oak_fence[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:oak_fence_gate": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "in_wall": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:oak_fence_gate[facing=north,in_wall=false,open=false,powered=false]" + }, + "minecraft:oak_leaves": { + "properties": { + "distance": { + "values": [ + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ], + "type": "int" + }, + "persistent": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:oak_leaves[distance=7,persistent=false]" + }, + "minecraft:oak_log": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:oak_log[axis=y]" + }, + "minecraft:oak_planks": { + "properties": {}, + "defaultstate": "minecraft:oak_planks" + }, + "minecraft:oak_pressure_plate": { + "properties": { + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:oak_pressure_plate[powered=false]" + }, + "minecraft:oak_sapling": { + "properties": { + "stage": { + "values": [ + "0", + "1" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:oak_sapling[stage=0]" + }, + "minecraft:oak_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:oak_slab[type=bottom,waterlogged=false]" + }, + "minecraft:oak_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:oak_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:oak_trapdoor": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:oak_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]" + }, + "minecraft:oak_wood": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:oak_wood[axis=y]" + }, + "minecraft:observer": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:observer[facing=south,powered=false]" + }, + "minecraft:obsidian": { + "properties": {}, + "defaultstate": "minecraft:obsidian" + }, + "minecraft:orange_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:orange_banner[rotation=0]" + }, + "minecraft:orange_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:orange_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:orange_carpet": { + "properties": {}, + "defaultstate": "minecraft:orange_carpet" + }, + "minecraft:orange_concrete": { + "properties": {}, + "defaultstate": "minecraft:orange_concrete" + }, + "minecraft:orange_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:orange_concrete_powder" + }, + "minecraft:orange_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:orange_glazed_terracotta[facing=north]" + }, + "minecraft:orange_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:orange_shulker_box[facing=up]" + }, + "minecraft:orange_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:orange_stained_glass" + }, + "minecraft:orange_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:orange_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:orange_terracotta": { + "properties": {}, + "defaultstate": "minecraft:orange_terracotta" + }, + "minecraft:orange_tulip": { + "properties": {}, + "defaultstate": "minecraft:orange_tulip" + }, + "minecraft:orange_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:orange_wall_banner[facing=north]" + }, + "minecraft:orange_wool": { + "properties": {}, + "defaultstate": "minecraft:orange_wool" + }, + "minecraft:oxeye_daisy": { + "properties": {}, + "defaultstate": "minecraft:oxeye_daisy" + }, + "minecraft:packed_ice": { + "properties": {}, + "defaultstate": "minecraft:packed_ice" + }, + "minecraft:peony": { + "properties": { + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:peony[half=lower]" + }, + "minecraft:petrified_oak_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:petrified_oak_slab[type=bottom,waterlogged=false]" + }, + "minecraft:pink_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:pink_banner[rotation=0]" + }, + "minecraft:pink_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:pink_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:pink_carpet": { + "properties": {}, + "defaultstate": "minecraft:pink_carpet" + }, + "minecraft:pink_concrete": { + "properties": {}, + "defaultstate": "minecraft:pink_concrete" + }, + "minecraft:pink_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:pink_concrete_powder" + }, + "minecraft:pink_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:pink_glazed_terracotta[facing=north]" + }, + "minecraft:pink_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:pink_shulker_box[facing=up]" + }, + "minecraft:pink_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:pink_stained_glass" + }, + "minecraft:pink_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:pink_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:pink_terracotta": { + "properties": {}, + "defaultstate": "minecraft:pink_terracotta" + }, + "minecraft:pink_tulip": { + "properties": {}, + "defaultstate": "minecraft:pink_tulip" + }, + "minecraft:pink_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:pink_wall_banner[facing=north]" + }, + "minecraft:pink_wool": { + "properties": {}, + "defaultstate": "minecraft:pink_wool" + }, + "minecraft:piston": { + "properties": { + "extended": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:piston[extended=false,facing=north]" + }, + "minecraft:piston_head": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + }, + "short": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "type": { + "values": [ + "normal", + "sticky" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:piston_head[facing=north,short=false,type=normal]" + }, + "minecraft:player_head": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:player_head[rotation=0]" + }, + "minecraft:player_wall_head": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:player_wall_head[facing=north]" + }, + "minecraft:podzol": { + "properties": { + "snowy": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:podzol[snowy=false]" + }, + "minecraft:polished_andesite": { + "properties": {}, + "defaultstate": "minecraft:polished_andesite" + }, + "minecraft:polished_diorite": { + "properties": {}, + "defaultstate": "minecraft:polished_diorite" + }, + "minecraft:polished_granite": { + "properties": {}, + "defaultstate": "minecraft:polished_granite" + }, + "minecraft:poppy": { + "properties": {}, + "defaultstate": "minecraft:poppy" + }, + "minecraft:potatoes": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:potatoes[age=0]" + }, + "minecraft:potted_acacia_sapling": { + "properties": {}, + "defaultstate": "minecraft:potted_acacia_sapling" + }, + "minecraft:potted_allium": { + "properties": {}, + "defaultstate": "minecraft:potted_allium" + }, + "minecraft:potted_azure_bluet": { + "properties": {}, + "defaultstate": "minecraft:potted_azure_bluet" + }, + "minecraft:potted_birch_sapling": { + "properties": {}, + "defaultstate": "minecraft:potted_birch_sapling" + }, + "minecraft:potted_blue_orchid": { + "properties": {}, + "defaultstate": "minecraft:potted_blue_orchid" + }, + "minecraft:potted_brown_mushroom": { + "properties": {}, + "defaultstate": "minecraft:potted_brown_mushroom" + }, + "minecraft:potted_cactus": { + "properties": {}, + "defaultstate": "minecraft:potted_cactus" + }, + "minecraft:potted_dandelion": { + "properties": {}, + "defaultstate": "minecraft:potted_dandelion" + }, + "minecraft:potted_dark_oak_sapling": { + "properties": {}, + "defaultstate": "minecraft:potted_dark_oak_sapling" + }, + "minecraft:potted_dead_bush": { + "properties": {}, + "defaultstate": "minecraft:potted_dead_bush" + }, + "minecraft:potted_fern": { + "properties": {}, + "defaultstate": "minecraft:potted_fern" + }, + "minecraft:potted_jungle_sapling": { + "properties": {}, + "defaultstate": "minecraft:potted_jungle_sapling" + }, + "minecraft:potted_oak_sapling": { + "properties": {}, + "defaultstate": "minecraft:potted_oak_sapling" + }, + "minecraft:potted_orange_tulip": { + "properties": {}, + "defaultstate": "minecraft:potted_orange_tulip" + }, + "minecraft:potted_oxeye_daisy": { + "properties": {}, + "defaultstate": "minecraft:potted_oxeye_daisy" + }, + "minecraft:potted_pink_tulip": { + "properties": {}, + "defaultstate": "minecraft:potted_pink_tulip" + }, + "minecraft:potted_poppy": { + "properties": {}, + "defaultstate": "minecraft:potted_poppy" + }, + "minecraft:potted_red_mushroom": { + "properties": {}, + "defaultstate": "minecraft:potted_red_mushroom" + }, + "minecraft:potted_red_tulip": { + "properties": {}, + "defaultstate": "minecraft:potted_red_tulip" + }, + "minecraft:potted_spruce_sapling": { + "properties": {}, + "defaultstate": "minecraft:potted_spruce_sapling" + }, + "minecraft:potted_white_tulip": { + "properties": {}, + "defaultstate": "minecraft:potted_white_tulip" + }, + "minecraft:powered_rail": { + "properties": { + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "shape": { + "values": [ + "north_south", + "east_west", + "ascending_east", + "ascending_west", + "ascending_north", + "ascending_south" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:powered_rail[powered=false,shape=north_south]" + }, + "minecraft:prismarine": { + "properties": {}, + "defaultstate": "minecraft:prismarine" + }, + "minecraft:prismarine_brick_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:prismarine_brick_slab[type=bottom,waterlogged=false]" + }, + "minecraft:prismarine_brick_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:prismarine_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:prismarine_bricks": { + "properties": {}, + "defaultstate": "minecraft:prismarine_bricks" + }, + "minecraft:prismarine_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:prismarine_slab[type=bottom,waterlogged=false]" + }, + "minecraft:prismarine_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:prismarine_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:pumpkin": { + "properties": {}, + "defaultstate": "minecraft:pumpkin" + }, + "minecraft:pumpkin_stem": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:pumpkin_stem[age=0]" + }, + "minecraft:purple_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:purple_banner[rotation=0]" + }, + "minecraft:purple_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:purple_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:purple_carpet": { + "properties": {}, + "defaultstate": "minecraft:purple_carpet" + }, + "minecraft:purple_concrete": { + "properties": {}, + "defaultstate": "minecraft:purple_concrete" + }, + "minecraft:purple_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:purple_concrete_powder" + }, + "minecraft:purple_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:purple_glazed_terracotta[facing=north]" + }, + "minecraft:purple_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:purple_shulker_box[facing=up]" + }, + "minecraft:purple_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:purple_stained_glass" + }, + "minecraft:purple_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:purple_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:purple_terracotta": { + "properties": {}, + "defaultstate": "minecraft:purple_terracotta" + }, + "minecraft:purple_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:purple_wall_banner[facing=north]" + }, + "minecraft:purple_wool": { + "properties": {}, + "defaultstate": "minecraft:purple_wool" + }, + "minecraft:purpur_block": { + "properties": {}, + "defaultstate": "minecraft:purpur_block" + }, + "minecraft:purpur_pillar": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:purpur_pillar[axis=y]" + }, + "minecraft:purpur_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:purpur_slab[type=bottom,waterlogged=false]" + }, + "minecraft:purpur_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:purpur_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:quartz_block": { + "properties": {}, + "defaultstate": "minecraft:quartz_block" + }, + "minecraft:quartz_pillar": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:quartz_pillar[axis=y]" + }, + "minecraft:quartz_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:quartz_slab[type=bottom,waterlogged=false]" + }, + "minecraft:quartz_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:quartz_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:rail": { + "properties": { + "shape": { + "values": [ + "north_south", + "east_west", + "ascending_east", + "ascending_west", + "ascending_north", + "ascending_south", + "south_east", + "south_west", + "north_west", + "north_east" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:rail[shape=north_south]" + }, + "minecraft:red_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:red_banner[rotation=0]" + }, + "minecraft:red_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:red_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:red_carpet": { + "properties": {}, + "defaultstate": "minecraft:red_carpet" + }, + "minecraft:red_concrete": { + "properties": {}, + "defaultstate": "minecraft:red_concrete" + }, + "minecraft:red_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:red_concrete_powder" + }, + "minecraft:red_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:red_glazed_terracotta[facing=north]" + }, + "minecraft:red_mushroom": { + "properties": {}, + "defaultstate": "minecraft:red_mushroom" + }, + "minecraft:red_mushroom_block": { + "properties": { + "down": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:red_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true]" + }, + "minecraft:red_nether_bricks": { + "properties": {}, + "defaultstate": "minecraft:red_nether_bricks" + }, + "minecraft:red_sand": { + "properties": {}, + "defaultstate": "minecraft:red_sand" + }, + "minecraft:red_sandstone": { + "properties": {}, + "defaultstate": "minecraft:red_sandstone" + }, + "minecraft:red_sandstone_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:red_sandstone_slab[type=bottom,waterlogged=false]" + }, + "minecraft:red_sandstone_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:red_sandstone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:red_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:red_shulker_box[facing=up]" + }, + "minecraft:red_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:red_stained_glass" + }, + "minecraft:red_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:red_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:red_terracotta": { + "properties": {}, + "defaultstate": "minecraft:red_terracotta" + }, + "minecraft:red_tulip": { + "properties": {}, + "defaultstate": "minecraft:red_tulip" + }, + "minecraft:red_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:red_wall_banner[facing=north]" + }, + "minecraft:red_wool": { + "properties": {}, + "defaultstate": "minecraft:red_wool" + }, + "minecraft:redstone_block": { + "properties": {}, + "defaultstate": "minecraft:redstone_block" + }, + "minecraft:redstone_lamp": { + "properties": { + "lit": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:redstone_lamp[lit=false]" + }, + "minecraft:redstone_ore": { + "properties": { + "lit": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:redstone_ore[lit=false]" + }, + "minecraft:redstone_torch": { + "properties": { + "lit": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:redstone_torch[lit=true]" + }, + "minecraft:redstone_wall_torch": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "lit": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:redstone_wall_torch[facing=north,lit=true]" + }, + "minecraft:redstone_wire": { + "properties": { + "east": { + "values": [ + "up", + "side", + "none" + ], + "type": "enum" + }, + "north": { + "values": [ + "up", + "side", + "none" + ], + "type": "enum" + }, + "power": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + }, + "south": { + "values": [ + "up", + "side", + "none" + ], + "type": "enum" + }, + "west": { + "values": [ + "up", + "side", + "none" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:redstone_wire[east=none,north=none,power=0,south=none,west=none]" + }, + "minecraft:repeater": { + "properties": { + "delay": { + "values": [ + "1", + "2", + "3", + "4" + ], + "type": "int" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "locked": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:repeater[delay=1,facing=north,locked=false,powered=false]" + }, + "minecraft:repeating_command_block": { + "properties": { + "conditional": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:repeating_command_block[conditional=false,facing=north]" + }, + "minecraft:rose_bush": { + "properties": { + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:rose_bush[half=lower]" + }, + "minecraft:sand": { + "properties": {}, + "defaultstate": "minecraft:sand" + }, + "minecraft:sandstone": { + "properties": {}, + "defaultstate": "minecraft:sandstone" + }, + "minecraft:sandstone_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:sandstone_slab[type=bottom,waterlogged=false]" + }, + "minecraft:sandstone_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:sandstone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:sea_lantern": { + "properties": {}, + "defaultstate": "minecraft:sea_lantern" + }, + "minecraft:sea_pickle": { + "properties": { + "pickles": { + "values": [ + "1", + "2", + "3", + "4" + ], + "type": "int" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:sea_pickle[pickles=1,waterlogged=true]" + }, + "minecraft:seagrass": { + "properties": {}, + "defaultstate": "minecraft:seagrass" + }, + "minecraft:shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:shulker_box[facing=up]" + }, + "minecraft:sign": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:sign[rotation=0,waterlogged=false]" + }, + "minecraft:skeleton_skull": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:skeleton_skull[rotation=0]" + }, + "minecraft:skeleton_wall_skull": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:skeleton_wall_skull[facing=north]" + }, + "minecraft:slime_block": { + "properties": {}, + "defaultstate": "minecraft:slime_block" + }, + "minecraft:smooth_quartz": { + "properties": {}, + "defaultstate": "minecraft:smooth_quartz" + }, + "minecraft:smooth_red_sandstone": { + "properties": {}, + "defaultstate": "minecraft:smooth_red_sandstone" + }, + "minecraft:smooth_sandstone": { + "properties": {}, + "defaultstate": "minecraft:smooth_sandstone" + }, + "minecraft:smooth_stone": { + "properties": {}, + "defaultstate": "minecraft:smooth_stone" + }, + "minecraft:snow": { + "properties": { + "layers": { + "values": [ + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:snow[layers=1]" + }, + "minecraft:snow_block": { + "properties": {}, + "defaultstate": "minecraft:snow_block" + }, + "minecraft:soul_sand": { + "properties": {}, + "defaultstate": "minecraft:soul_sand" + }, + "minecraft:spawner": { + "properties": {}, + "defaultstate": "minecraft:spawner" + }, + "minecraft:sponge": { + "properties": {}, + "defaultstate": "minecraft:sponge" + }, + "minecraft:spruce_button": { + "properties": { + "face": { + "values": [ + "floor", + "wall", + "ceiling" + ], + "type": "enum" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:spruce_button[face=wall,facing=north,powered=false]" + }, + "minecraft:spruce_door": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + }, + "hinge": { + "values": [ + "left", + "right" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:spruce_door[facing=north,half=lower,hinge=left,open=false,powered=false]" + }, + "minecraft:spruce_fence": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:spruce_fence[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:spruce_fence_gate": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "in_wall": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:spruce_fence_gate[facing=north,in_wall=false,open=false,powered=false]" + }, + "minecraft:spruce_leaves": { + "properties": { + "distance": { + "values": [ + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ], + "type": "int" + }, + "persistent": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:spruce_leaves[distance=7,persistent=false]" + }, + "minecraft:spruce_log": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:spruce_log[axis=y]" + }, + "minecraft:spruce_planks": { + "properties": {}, + "defaultstate": "minecraft:spruce_planks" + }, + "minecraft:spruce_pressure_plate": { + "properties": { + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:spruce_pressure_plate[powered=false]" + }, + "minecraft:spruce_sapling": { + "properties": { + "stage": { + "values": [ + "0", + "1" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:spruce_sapling[stage=0]" + }, + "minecraft:spruce_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:spruce_slab[type=bottom,waterlogged=false]" + }, + "minecraft:spruce_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:spruce_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:spruce_trapdoor": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:spruce_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]" + }, + "minecraft:spruce_wood": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:spruce_wood[axis=y]" + }, + "minecraft:sticky_piston": { + "properties": { + "extended": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:sticky_piston[extended=false,facing=north]" + }, + "minecraft:stone": { + "properties": {}, + "defaultstate": "minecraft:stone" + }, + "minecraft:stone_brick_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:stone_brick_slab[type=bottom,waterlogged=false]" + }, + "minecraft:stone_brick_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:stone_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:stone_bricks": { + "properties": {}, + "defaultstate": "minecraft:stone_bricks" + }, + "minecraft:stone_button": { + "properties": { + "face": { + "values": [ + "floor", + "wall", + "ceiling" + ], + "type": "enum" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:stone_button[face=wall,facing=north,powered=false]" + }, + "minecraft:stone_pressure_plate": { + "properties": { + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:stone_pressure_plate[powered=false]" + }, + "minecraft:stone_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:stone_slab[type=bottom,waterlogged=false]" + }, + "minecraft:stripped_acacia_log": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:stripped_acacia_log[axis=y]" + }, + "minecraft:stripped_acacia_wood": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:stripped_acacia_wood[axis=y]" + }, + "minecraft:stripped_birch_log": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:stripped_birch_log[axis=y]" + }, + "minecraft:stripped_birch_wood": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:stripped_birch_wood[axis=y]" + }, + "minecraft:stripped_dark_oak_log": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:stripped_dark_oak_log[axis=y]" + }, + "minecraft:stripped_dark_oak_wood": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:stripped_dark_oak_wood[axis=y]" + }, + "minecraft:stripped_jungle_log": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:stripped_jungle_log[axis=y]" + }, + "minecraft:stripped_jungle_wood": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:stripped_jungle_wood[axis=y]" + }, + "minecraft:stripped_oak_log": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:stripped_oak_log[axis=y]" + }, + "minecraft:stripped_oak_wood": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:stripped_oak_wood[axis=y]" + }, + "minecraft:stripped_spruce_log": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:stripped_spruce_log[axis=y]" + }, + "minecraft:stripped_spruce_wood": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:stripped_spruce_wood[axis=y]" + }, + "minecraft:structure_block": { + "properties": { + "mode": { + "values": [ + "save", + "load", + "corner", + "data" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:structure_block[mode=save]" + }, + "minecraft:structure_void": { + "properties": {}, + "defaultstate": "minecraft:structure_void" + }, + "minecraft:sugar_cane": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:sugar_cane[age=0]" + }, + "minecraft:sunflower": { + "properties": { + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:sunflower[half=lower]" + }, + "minecraft:tall_grass": { + "properties": { + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:tall_grass[half=lower]" + }, + "minecraft:tall_seagrass": { + "properties": { + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:tall_seagrass[half=lower]" + }, + "minecraft:terracotta": { + "properties": {}, + "defaultstate": "minecraft:terracotta" + }, + "minecraft:tnt": { + "properties": { + "unstable": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:tnt[unstable=false]" + }, + "minecraft:torch": { + "properties": {}, + "defaultstate": "minecraft:torch" + }, + "minecraft:trapped_chest": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "type": { + "values": [ + "single", + "left", + "right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:trapped_chest[facing=north,type=single,waterlogged=false]" + }, + "minecraft:tripwire": { + "properties": { + "attached": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "disarmed": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:tripwire[attached=false,disarmed=false,east=false,north=false,powered=false,south=false,west=false]" + }, + "minecraft:tripwire_hook": { + "properties": { + "attached": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:tripwire_hook[attached=false,facing=north,powered=false]" + }, + "minecraft:tube_coral": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:tube_coral[waterlogged=true]" + }, + "minecraft:tube_coral_block": { + "properties": {}, + "defaultstate": "minecraft:tube_coral_block" + }, + "minecraft:tube_coral_fan": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:tube_coral_fan[waterlogged=true]" + }, + "minecraft:tube_coral_wall_fan": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:tube_coral_wall_fan[facing=north,waterlogged=true]" + }, + "minecraft:turtle_egg": { + "properties": { + "eggs": { + "values": [ + "1", + "2", + "3", + "4" + ], + "type": "int" + }, + "hatch": { + "values": [ + "0", + "1", + "2" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:turtle_egg[eggs=1,hatch=0]" + }, + "minecraft:vine": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:vine[east=false,north=false,south=false,up=false,west=false]" + }, + "minecraft:void_air": { + "properties": {}, + "defaultstate": "minecraft:void_air" + }, + "minecraft:wall_sign": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:wall_sign[facing=north,waterlogged=false]" + }, + "minecraft:wall_torch": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:wall_torch[facing=north]" + }, + "minecraft:water": { + "properties": { + "level": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:water[level=0]" + }, + "minecraft:wet_sponge": { + "properties": {}, + "defaultstate": "minecraft:wet_sponge" + }, + "minecraft:wheat": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:wheat[age=0]" + }, + "minecraft:white_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:white_banner[rotation=0]" + }, + "minecraft:white_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:white_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:white_carpet": { + "properties": {}, + "defaultstate": "minecraft:white_carpet" + }, + "minecraft:white_concrete": { + "properties": {}, + "defaultstate": "minecraft:white_concrete" + }, + "minecraft:white_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:white_concrete_powder" + }, + "minecraft:white_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:white_glazed_terracotta[facing=north]" + }, + "minecraft:white_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:white_shulker_box[facing=up]" + }, + "minecraft:white_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:white_stained_glass" + }, + "minecraft:white_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:white_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:white_terracotta": { + "properties": {}, + "defaultstate": "minecraft:white_terracotta" + }, + "minecraft:white_tulip": { + "properties": {}, + "defaultstate": "minecraft:white_tulip" + }, + "minecraft:white_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:white_wall_banner[facing=north]" + }, + "minecraft:white_wool": { + "properties": {}, + "defaultstate": "minecraft:white_wool" + }, + "minecraft:wither_skeleton_skull": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:wither_skeleton_skull[rotation=0]" + }, + "minecraft:wither_skeleton_wall_skull": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:wither_skeleton_wall_skull[facing=north]" + }, + "minecraft:yellow_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:yellow_banner[rotation=0]" + }, + "minecraft:yellow_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:yellow_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:yellow_carpet": { + "properties": {}, + "defaultstate": "minecraft:yellow_carpet" + }, + "minecraft:yellow_concrete": { + "properties": {}, + "defaultstate": "minecraft:yellow_concrete" + }, + "minecraft:yellow_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:yellow_concrete_powder" + }, + "minecraft:yellow_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:yellow_glazed_terracotta[facing=north]" + }, + "minecraft:yellow_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:yellow_shulker_box[facing=up]" + }, + "minecraft:yellow_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:yellow_stained_glass" + }, + "minecraft:yellow_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:yellow_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:yellow_terracotta": { + "properties": {}, + "defaultstate": "minecraft:yellow_terracotta" + }, + "minecraft:yellow_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:yellow_wall_banner[facing=north]" + }, + "minecraft:yellow_wool": { + "properties": {}, + "defaultstate": "minecraft:yellow_wool" + }, + "minecraft:zombie_head": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:zombie_head[rotation=0]" + }, + "minecraft:zombie_wall_head": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:zombie_wall_head[facing=north]" + } + }, + "items": [ + "minecraft:acacia_boat", + "minecraft:acacia_button", + "minecraft:acacia_door", + "minecraft:acacia_fence", + "minecraft:acacia_fence_gate", + "minecraft:acacia_leaves", + "minecraft:acacia_log", + "minecraft:acacia_planks", + "minecraft:acacia_pressure_plate", + "minecraft:acacia_sapling", + "minecraft:acacia_slab", + "minecraft:acacia_stairs", + "minecraft:acacia_trapdoor", + "minecraft:acacia_wood", + "minecraft:activator_rail", + "minecraft:air", + "minecraft:allium", + "minecraft:andesite", + "minecraft:anvil", + "minecraft:apple", + "minecraft:armor_stand", + "minecraft:arrow", + "minecraft:azure_bluet", + "minecraft:baked_potato", + "minecraft:barrier", + "minecraft:bat_spawn_egg", + "minecraft:beacon", + "minecraft:bedrock", + "minecraft:beef", + "minecraft:beetroot", + "minecraft:beetroot_seeds", + "minecraft:beetroot_soup", + "minecraft:birch_boat", + "minecraft:birch_button", + "minecraft:birch_door", + "minecraft:birch_fence", + "minecraft:birch_fence_gate", + "minecraft:birch_leaves", + "minecraft:birch_log", + "minecraft:birch_planks", + "minecraft:birch_pressure_plate", + "minecraft:birch_sapling", + "minecraft:birch_slab", + "minecraft:birch_stairs", + "minecraft:birch_trapdoor", + "minecraft:birch_wood", + "minecraft:black_banner", + "minecraft:black_bed", + "minecraft:black_carpet", + "minecraft:black_concrete", + "minecraft:black_concrete_powder", + "minecraft:black_glazed_terracotta", + "minecraft:black_shulker_box", + "minecraft:black_stained_glass", + "minecraft:black_stained_glass_pane", + "minecraft:black_terracotta", + "minecraft:black_wool", + "minecraft:blaze_powder", + "minecraft:blaze_rod", + "minecraft:blaze_spawn_egg", + "minecraft:blue_banner", + "minecraft:blue_bed", + "minecraft:blue_carpet", + "minecraft:blue_concrete", + "minecraft:blue_concrete_powder", + "minecraft:blue_glazed_terracotta", + "minecraft:blue_ice", + "minecraft:blue_orchid", + "minecraft:blue_shulker_box", + "minecraft:blue_stained_glass", + "minecraft:blue_stained_glass_pane", + "minecraft:blue_terracotta", + "minecraft:blue_wool", + "minecraft:bone", + "minecraft:bone_block", + "minecraft:bone_meal", + "minecraft:book", + "minecraft:bookshelf", + "minecraft:bow", + "minecraft:bowl", + "minecraft:brain_coral", + "minecraft:brain_coral_block", + "minecraft:brain_coral_fan", + "minecraft:bread", + "minecraft:brewing_stand", + "minecraft:brick", + "minecraft:brick_slab", + "minecraft:brick_stairs", + "minecraft:bricks", + "minecraft:brown_banner", + "minecraft:brown_bed", + "minecraft:brown_carpet", + "minecraft:brown_concrete", + "minecraft:brown_concrete_powder", + "minecraft:brown_glazed_terracotta", + "minecraft:brown_mushroom", + "minecraft:brown_mushroom_block", + "minecraft:brown_shulker_box", + "minecraft:brown_stained_glass", + "minecraft:brown_stained_glass_pane", + "minecraft:brown_terracotta", + "minecraft:brown_wool", + "minecraft:bubble_coral", + "minecraft:bubble_coral_block", + "minecraft:bubble_coral_fan", + "minecraft:bucket", + "minecraft:cactus", + "minecraft:cactus_green", + "minecraft:cake", + "minecraft:carrot", + "minecraft:carrot_on_a_stick", + "minecraft:carved_pumpkin", + "minecraft:cauldron", + "minecraft:cave_spider_spawn_egg", + "minecraft:chain_command_block", + "minecraft:chainmail_boots", + "minecraft:chainmail_chestplate", + "minecraft:chainmail_helmet", + "minecraft:chainmail_leggings", + "minecraft:charcoal", + "minecraft:chest", + "minecraft:chest_minecart", + "minecraft:chicken", + "minecraft:chicken_spawn_egg", + "minecraft:chipped_anvil", + "minecraft:chiseled_quartz_block", + "minecraft:chiseled_red_sandstone", + "minecraft:chiseled_sandstone", + "minecraft:chiseled_stone_bricks", + "minecraft:chorus_flower", + "minecraft:chorus_fruit", + "minecraft:chorus_plant", + "minecraft:clay", + "minecraft:clay_ball", + "minecraft:clock", + "minecraft:coal", + "minecraft:coal_block", + "minecraft:coal_ore", + "minecraft:coarse_dirt", + "minecraft:cobblestone", + "minecraft:cobblestone_slab", + "minecraft:cobblestone_stairs", + "minecraft:cobblestone_wall", + "minecraft:cobweb", + "minecraft:cocoa_beans", + "minecraft:cod", + "minecraft:cod_bucket", + "minecraft:cod_spawn_egg", + "minecraft:command_block", + "minecraft:command_block_minecart", + "minecraft:comparator", + "minecraft:compass", + "minecraft:conduit", + "minecraft:cooked_beef", + "minecraft:cooked_chicken", + "minecraft:cooked_cod", + "minecraft:cooked_mutton", + "minecraft:cooked_porkchop", + "minecraft:cooked_rabbit", + "minecraft:cooked_salmon", + "minecraft:cookie", + "minecraft:cow_spawn_egg", + "minecraft:cracked_stone_bricks", + "minecraft:crafting_table", + "minecraft:creeper_head", + "minecraft:creeper_spawn_egg", + "minecraft:cut_red_sandstone", + "minecraft:cut_sandstone", + "minecraft:cyan_banner", + "minecraft:cyan_bed", + "minecraft:cyan_carpet", + "minecraft:cyan_concrete", + "minecraft:cyan_concrete_powder", + "minecraft:cyan_dye", + "minecraft:cyan_glazed_terracotta", + "minecraft:cyan_shulker_box", + "minecraft:cyan_stained_glass", + "minecraft:cyan_stained_glass_pane", + "minecraft:cyan_terracotta", + "minecraft:cyan_wool", + "minecraft:damaged_anvil", + "minecraft:dandelion", + "minecraft:dandelion_yellow", + "minecraft:dark_oak_boat", + "minecraft:dark_oak_button", + "minecraft:dark_oak_door", + "minecraft:dark_oak_fence", + "minecraft:dark_oak_fence_gate", + "minecraft:dark_oak_leaves", + "minecraft:dark_oak_log", + "minecraft:dark_oak_planks", + "minecraft:dark_oak_pressure_plate", + "minecraft:dark_oak_sapling", + "minecraft:dark_oak_slab", + "minecraft:dark_oak_stairs", + "minecraft:dark_oak_trapdoor", + "minecraft:dark_oak_wood", + "minecraft:dark_prismarine", + "minecraft:dark_prismarine_slab", + "minecraft:dark_prismarine_stairs", + "minecraft:daylight_detector", + "minecraft:dead_brain_coral", + "minecraft:dead_brain_coral_block", + "minecraft:dead_brain_coral_fan", + "minecraft:dead_bubble_coral", + "minecraft:dead_bubble_coral_block", + "minecraft:dead_bubble_coral_fan", + "minecraft:dead_bush", + "minecraft:dead_fire_coral", + "minecraft:dead_fire_coral_block", + "minecraft:dead_fire_coral_fan", + "minecraft:dead_horn_coral", + "minecraft:dead_horn_coral_block", + "minecraft:dead_horn_coral_fan", + "minecraft:dead_tube_coral", + "minecraft:dead_tube_coral_block", + "minecraft:dead_tube_coral_fan", + "minecraft:debug_stick", + "minecraft:detector_rail", + "minecraft:diamond", + "minecraft:diamond_axe", + "minecraft:diamond_block", + "minecraft:diamond_boots", + "minecraft:diamond_chestplate", + "minecraft:diamond_helmet", + "minecraft:diamond_hoe", + "minecraft:diamond_horse_armor", + "minecraft:diamond_leggings", + "minecraft:diamond_ore", + "minecraft:diamond_pickaxe", + "minecraft:diamond_shovel", + "minecraft:diamond_sword", + "minecraft:diorite", + "minecraft:dirt", + "minecraft:dispenser", + "minecraft:dolphin_spawn_egg", + "minecraft:donkey_spawn_egg", + "minecraft:dragon_breath", + "minecraft:dragon_egg", + "minecraft:dragon_head", + "minecraft:dried_kelp", + "minecraft:dried_kelp_block", + "minecraft:dropper", + "minecraft:drowned_spawn_egg", + "minecraft:egg", + "minecraft:elder_guardian_spawn_egg", + "minecraft:elytra", + "minecraft:emerald", + "minecraft:emerald_block", + "minecraft:emerald_ore", + "minecraft:enchanted_book", + "minecraft:enchanted_golden_apple", + "minecraft:enchanting_table", + "minecraft:end_crystal", + "minecraft:end_portal_frame", + "minecraft:end_rod", + "minecraft:end_stone", + "minecraft:end_stone_bricks", + "minecraft:ender_chest", + "minecraft:ender_eye", + "minecraft:ender_pearl", + "minecraft:enderman_spawn_egg", + "minecraft:endermite_spawn_egg", + "minecraft:evoker_spawn_egg", + "minecraft:experience_bottle", + "minecraft:farmland", + "minecraft:feather", + "minecraft:fermented_spider_eye", + "minecraft:fern", + "minecraft:filled_map", + "minecraft:fire_charge", + "minecraft:fire_coral", + "minecraft:fire_coral_block", + "minecraft:fire_coral_fan", + "minecraft:firework_rocket", + "minecraft:firework_star", + "minecraft:fishing_rod", + "minecraft:flint", + "minecraft:flint_and_steel", + "minecraft:flower_pot", + "minecraft:furnace", + "minecraft:furnace_minecart", + "minecraft:ghast_spawn_egg", + "minecraft:ghast_tear", + "minecraft:glass", + "minecraft:glass_bottle", + "minecraft:glass_pane", + "minecraft:glistering_melon_slice", + "minecraft:glowstone", + "minecraft:glowstone_dust", + "minecraft:gold_block", + "minecraft:gold_ingot", + "minecraft:gold_nugget", + "minecraft:gold_ore", + "minecraft:golden_apple", + "minecraft:golden_axe", + "minecraft:golden_boots", + "minecraft:golden_carrot", + "minecraft:golden_chestplate", + "minecraft:golden_helmet", + "minecraft:golden_hoe", + "minecraft:golden_horse_armor", + "minecraft:golden_leggings", + "minecraft:golden_pickaxe", + "minecraft:golden_shovel", + "minecraft:golden_sword", + "minecraft:granite", + "minecraft:grass", + "minecraft:grass_block", + "minecraft:grass_path", + "minecraft:gravel", + "minecraft:gray_banner", + "minecraft:gray_bed", + "minecraft:gray_carpet", + "minecraft:gray_concrete", + "minecraft:gray_concrete_powder", + "minecraft:gray_dye", + "minecraft:gray_glazed_terracotta", + "minecraft:gray_shulker_box", + "minecraft:gray_stained_glass", + "minecraft:gray_stained_glass_pane", + "minecraft:gray_terracotta", + "minecraft:gray_wool", + "minecraft:green_banner", + "minecraft:green_bed", + "minecraft:green_carpet", + "minecraft:green_concrete", + "minecraft:green_concrete_powder", + "minecraft:green_glazed_terracotta", + "minecraft:green_shulker_box", + "minecraft:green_stained_glass", + "minecraft:green_stained_glass_pane", + "minecraft:green_terracotta", + "minecraft:green_wool", + "minecraft:guardian_spawn_egg", + "minecraft:gunpowder", + "minecraft:hay_block", + "minecraft:heart_of_the_sea", + "minecraft:heavy_weighted_pressure_plate", + "minecraft:hopper", + "minecraft:hopper_minecart", + "minecraft:horn_coral", + "minecraft:horn_coral_block", + "minecraft:horn_coral_fan", + "minecraft:horse_spawn_egg", + "minecraft:husk_spawn_egg", + "minecraft:ice", + "minecraft:infested_chiseled_stone_bricks", + "minecraft:infested_cobblestone", + "minecraft:infested_cracked_stone_bricks", + "minecraft:infested_mossy_stone_bricks", + "minecraft:infested_stone", + "minecraft:infested_stone_bricks", + "minecraft:ink_sac", + "minecraft:iron_axe", + "minecraft:iron_bars", + "minecraft:iron_block", + "minecraft:iron_boots", + "minecraft:iron_chestplate", + "minecraft:iron_door", + "minecraft:iron_helmet", + "minecraft:iron_hoe", + "minecraft:iron_horse_armor", + "minecraft:iron_ingot", + "minecraft:iron_leggings", + "minecraft:iron_nugget", + "minecraft:iron_ore", + "minecraft:iron_pickaxe", + "minecraft:iron_shovel", + "minecraft:iron_sword", + "minecraft:iron_trapdoor", + "minecraft:item_frame", + "minecraft:jack_o_lantern", + "minecraft:jukebox", + "minecraft:jungle_boat", + "minecraft:jungle_button", + "minecraft:jungle_door", + "minecraft:jungle_fence", + "minecraft:jungle_fence_gate", + "minecraft:jungle_leaves", + "minecraft:jungle_log", + "minecraft:jungle_planks", + "minecraft:jungle_pressure_plate", + "minecraft:jungle_sapling", + "minecraft:jungle_slab", + "minecraft:jungle_stairs", + "minecraft:jungle_trapdoor", + "minecraft:jungle_wood", + "minecraft:kelp", + "minecraft:knowledge_book", + "minecraft:ladder", + "minecraft:lapis_block", + "minecraft:lapis_lazuli", + "minecraft:lapis_ore", + "minecraft:large_fern", + "minecraft:lava_bucket", + "minecraft:lead", + "minecraft:leather", + "minecraft:leather_boots", + "minecraft:leather_chestplate", + "minecraft:leather_helmet", + "minecraft:leather_leggings", + "minecraft:lever", + "minecraft:light_blue_banner", + "minecraft:light_blue_bed", + "minecraft:light_blue_carpet", + "minecraft:light_blue_concrete", + "minecraft:light_blue_concrete_powder", + "minecraft:light_blue_dye", + "minecraft:light_blue_glazed_terracotta", + "minecraft:light_blue_shulker_box", + "minecraft:light_blue_stained_glass", + "minecraft:light_blue_stained_glass_pane", + "minecraft:light_blue_terracotta", + "minecraft:light_blue_wool", + "minecraft:light_gray_banner", + "minecraft:light_gray_bed", + "minecraft:light_gray_carpet", + "minecraft:light_gray_concrete", + "minecraft:light_gray_concrete_powder", + "minecraft:light_gray_dye", + "minecraft:light_gray_glazed_terracotta", + "minecraft:light_gray_shulker_box", + "minecraft:light_gray_stained_glass", + "minecraft:light_gray_stained_glass_pane", + "minecraft:light_gray_terracotta", + "minecraft:light_gray_wool", + "minecraft:light_weighted_pressure_plate", + "minecraft:lilac", + "minecraft:lily_pad", + "minecraft:lime_banner", + "minecraft:lime_bed", + "minecraft:lime_carpet", + "minecraft:lime_concrete", + "minecraft:lime_concrete_powder", + "minecraft:lime_dye", + "minecraft:lime_glazed_terracotta", + "minecraft:lime_shulker_box", + "minecraft:lime_stained_glass", + "minecraft:lime_stained_glass_pane", + "minecraft:lime_terracotta", + "minecraft:lime_wool", + "minecraft:lingering_potion", + "minecraft:llama_spawn_egg", + "minecraft:magenta_banner", + "minecraft:magenta_bed", + "minecraft:magenta_carpet", + "minecraft:magenta_concrete", + "minecraft:magenta_concrete_powder", + "minecraft:magenta_dye", + "minecraft:magenta_glazed_terracotta", + "minecraft:magenta_shulker_box", + "minecraft:magenta_stained_glass", + "minecraft:magenta_stained_glass_pane", + "minecraft:magenta_terracotta", + "minecraft:magenta_wool", + "minecraft:magma_block", + "minecraft:magma_cream", + "minecraft:magma_cube_spawn_egg", + "minecraft:map", + "minecraft:melon", + "minecraft:melon_seeds", + "minecraft:melon_slice", + "minecraft:milk_bucket", + "minecraft:minecart", + "minecraft:mooshroom_spawn_egg", + "minecraft:mossy_cobblestone", + "minecraft:mossy_cobblestone_wall", + "minecraft:mossy_stone_bricks", + "minecraft:mule_spawn_egg", + "minecraft:mushroom_stem", + "minecraft:mushroom_stew", + "minecraft:music_disc_11", + "minecraft:music_disc_13", + "minecraft:music_disc_blocks", + "minecraft:music_disc_cat", + "minecraft:music_disc_chirp", + "minecraft:music_disc_far", + "minecraft:music_disc_mall", + "minecraft:music_disc_mellohi", + "minecraft:music_disc_stal", + "minecraft:music_disc_strad", + "minecraft:music_disc_wait", + "minecraft:music_disc_ward", + "minecraft:mutton", + "minecraft:mycelium", + "minecraft:name_tag", + "minecraft:nautilus_shell", + "minecraft:nether_brick", + "minecraft:nether_brick_fence", + "minecraft:nether_brick_slab", + "minecraft:nether_brick_stairs", + "minecraft:nether_bricks", + "minecraft:nether_quartz_ore", + "minecraft:nether_star", + "minecraft:nether_wart", + "minecraft:nether_wart_block", + "minecraft:netherrack", + "minecraft:note_block", + "minecraft:oak_boat", + "minecraft:oak_button", + "minecraft:oak_door", + "minecraft:oak_fence", + "minecraft:oak_fence_gate", + "minecraft:oak_leaves", + "minecraft:oak_log", + "minecraft:oak_planks", + "minecraft:oak_pressure_plate", + "minecraft:oak_sapling", + "minecraft:oak_slab", + "minecraft:oak_stairs", + "minecraft:oak_trapdoor", + "minecraft:oak_wood", + "minecraft:observer", + "minecraft:obsidian", + "minecraft:ocelot_spawn_egg", + "minecraft:orange_banner", + "minecraft:orange_bed", + "minecraft:orange_carpet", + "minecraft:orange_concrete", + "minecraft:orange_concrete_powder", + "minecraft:orange_dye", + "minecraft:orange_glazed_terracotta", + "minecraft:orange_shulker_box", + "minecraft:orange_stained_glass", + "minecraft:orange_stained_glass_pane", + "minecraft:orange_terracotta", + "minecraft:orange_tulip", + "minecraft:orange_wool", + "minecraft:oxeye_daisy", + "minecraft:packed_ice", + "minecraft:painting", + "minecraft:paper", + "minecraft:parrot_spawn_egg", + "minecraft:peony", + "minecraft:petrified_oak_slab", + "minecraft:phantom_membrane", + "minecraft:phantom_spawn_egg", + "minecraft:pig_spawn_egg", + "minecraft:pink_banner", + "minecraft:pink_bed", + "minecraft:pink_carpet", + "minecraft:pink_concrete", + "minecraft:pink_concrete_powder", + "minecraft:pink_dye", + "minecraft:pink_glazed_terracotta", + "minecraft:pink_shulker_box", + "minecraft:pink_stained_glass", + "minecraft:pink_stained_glass_pane", + "minecraft:pink_terracotta", + "minecraft:pink_tulip", + "minecraft:pink_wool", + "minecraft:piston", + "minecraft:player_head", + "minecraft:podzol", + "minecraft:poisonous_potato", + "minecraft:polar_bear_spawn_egg", + "minecraft:polished_andesite", + "minecraft:polished_diorite", + "minecraft:polished_granite", + "minecraft:popped_chorus_fruit", + "minecraft:poppy", + "minecraft:porkchop", + "minecraft:potato", + "minecraft:potion", + "minecraft:powered_rail", + "minecraft:prismarine", + "minecraft:prismarine_brick_slab", + "minecraft:prismarine_brick_stairs", + "minecraft:prismarine_bricks", + "minecraft:prismarine_crystals", + "minecraft:prismarine_shard", + "minecraft:prismarine_slab", + "minecraft:prismarine_stairs", + "minecraft:pufferfish", + "minecraft:pufferfish_bucket", + "minecraft:pufferfish_spawn_egg", + "minecraft:pumpkin", + "minecraft:pumpkin_pie", + "minecraft:pumpkin_seeds", + "minecraft:purple_banner", + "minecraft:purple_bed", + "minecraft:purple_carpet", + "minecraft:purple_concrete", + "minecraft:purple_concrete_powder", + "minecraft:purple_dye", + "minecraft:purple_glazed_terracotta", + "minecraft:purple_shulker_box", + "minecraft:purple_stained_glass", + "minecraft:purple_stained_glass_pane", + "minecraft:purple_terracotta", + "minecraft:purple_wool", + "minecraft:purpur_block", + "minecraft:purpur_pillar", + "minecraft:purpur_slab", + "minecraft:purpur_stairs", + "minecraft:quartz", + "minecraft:quartz_block", + "minecraft:quartz_pillar", + "minecraft:quartz_slab", + "minecraft:quartz_stairs", + "minecraft:rabbit", + "minecraft:rabbit_foot", + "minecraft:rabbit_hide", + "minecraft:rabbit_spawn_egg", + "minecraft:rabbit_stew", + "minecraft:rail", + "minecraft:red_banner", + "minecraft:red_bed", + "minecraft:red_carpet", + "minecraft:red_concrete", + "minecraft:red_concrete_powder", + "minecraft:red_glazed_terracotta", + "minecraft:red_mushroom", + "minecraft:red_mushroom_block", + "minecraft:red_nether_bricks", + "minecraft:red_sand", + "minecraft:red_sandstone", + "minecraft:red_sandstone_slab", + "minecraft:red_sandstone_stairs", + "minecraft:red_shulker_box", + "minecraft:red_stained_glass", + "minecraft:red_stained_glass_pane", + "minecraft:red_terracotta", + "minecraft:red_tulip", + "minecraft:red_wool", + "minecraft:redstone", + "minecraft:redstone_block", + "minecraft:redstone_lamp", + "minecraft:redstone_ore", + "minecraft:redstone_torch", + "minecraft:repeater", + "minecraft:repeating_command_block", + "minecraft:rose_bush", + "minecraft:rose_red", + "minecraft:rotten_flesh", + "minecraft:saddle", + "minecraft:salmon", + "minecraft:salmon_bucket", + "minecraft:salmon_spawn_egg", + "minecraft:sand", + "minecraft:sandstone", + "minecraft:sandstone_slab", + "minecraft:sandstone_stairs", + "minecraft:scute", + "minecraft:sea_lantern", + "minecraft:sea_pickle", + "minecraft:seagrass", + "minecraft:shears", + "minecraft:sheep_spawn_egg", + "minecraft:shield", + "minecraft:shulker_box", + "minecraft:shulker_shell", + "minecraft:shulker_spawn_egg", + "minecraft:sign", + "minecraft:silverfish_spawn_egg", + "minecraft:skeleton_horse_spawn_egg", + "minecraft:skeleton_skull", + "minecraft:skeleton_spawn_egg", + "minecraft:slime_ball", + "minecraft:slime_block", + "minecraft:slime_spawn_egg", + "minecraft:smooth_quartz", + "minecraft:smooth_red_sandstone", + "minecraft:smooth_sandstone", + "minecraft:smooth_stone", + "minecraft:snow", + "minecraft:snow_block", + "minecraft:snowball", + "minecraft:soul_sand", + "minecraft:spawner", + "minecraft:spectral_arrow", + "minecraft:spider_eye", + "minecraft:spider_spawn_egg", + "minecraft:splash_potion", + "minecraft:sponge", + "minecraft:spruce_boat", + "minecraft:spruce_button", + "minecraft:spruce_door", + "minecraft:spruce_fence", + "minecraft:spruce_fence_gate", + "minecraft:spruce_leaves", + "minecraft:spruce_log", + "minecraft:spruce_planks", + "minecraft:spruce_pressure_plate", + "minecraft:spruce_sapling", + "minecraft:spruce_slab", + "minecraft:spruce_stairs", + "minecraft:spruce_trapdoor", + "minecraft:spruce_wood", + "minecraft:squid_spawn_egg", + "minecraft:stick", + "minecraft:sticky_piston", + "minecraft:stone", + "minecraft:stone_axe", + "minecraft:stone_brick_slab", + "minecraft:stone_brick_stairs", + "minecraft:stone_bricks", + "minecraft:stone_button", + "minecraft:stone_hoe", + "minecraft:stone_pickaxe", + "minecraft:stone_pressure_plate", + "minecraft:stone_shovel", + "minecraft:stone_slab", + "minecraft:stone_sword", + "minecraft:stray_spawn_egg", + "minecraft:string", + "minecraft:stripped_acacia_log", + "minecraft:stripped_acacia_wood", + "minecraft:stripped_birch_log", + "minecraft:stripped_birch_wood", + "minecraft:stripped_dark_oak_log", + "minecraft:stripped_dark_oak_wood", + "minecraft:stripped_jungle_log", + "minecraft:stripped_jungle_wood", + "minecraft:stripped_oak_log", + "minecraft:stripped_oak_wood", + "minecraft:stripped_spruce_log", + "minecraft:stripped_spruce_wood", + "minecraft:structure_block", + "minecraft:structure_void", + "minecraft:sugar", + "minecraft:sugar_cane", + "minecraft:sunflower", + "minecraft:tall_grass", + "minecraft:terracotta", + "minecraft:tipped_arrow", + "minecraft:tnt", + "minecraft:tnt_minecart", + "minecraft:torch", + "minecraft:totem_of_undying", + "minecraft:trapped_chest", + "minecraft:trident", + "minecraft:tripwire_hook", + "minecraft:tropical_fish", + "minecraft:tropical_fish_bucket", + "minecraft:tropical_fish_spawn_egg", + "minecraft:tube_coral", + "minecraft:tube_coral_block", + "minecraft:tube_coral_fan", + "minecraft:turtle_egg", + "minecraft:turtle_helmet", + "minecraft:turtle_spawn_egg", + "minecraft:vex_spawn_egg", + "minecraft:villager_spawn_egg", + "minecraft:vindicator_spawn_egg", + "minecraft:vine", + "minecraft:water_bucket", + "minecraft:wet_sponge", + "minecraft:wheat", + "minecraft:wheat_seeds", + "minecraft:white_banner", + "minecraft:white_bed", + "minecraft:white_carpet", + "minecraft:white_concrete", + "minecraft:white_concrete_powder", + "minecraft:white_glazed_terracotta", + "minecraft:white_shulker_box", + "minecraft:white_stained_glass", + "minecraft:white_stained_glass_pane", + "minecraft:white_terracotta", + "minecraft:white_tulip", + "minecraft:white_wool", + "minecraft:witch_spawn_egg", + "minecraft:wither_skeleton_skull", + "minecraft:wither_skeleton_spawn_egg", + "minecraft:wolf_spawn_egg", + "minecraft:wooden_axe", + "minecraft:wooden_hoe", + "minecraft:wooden_pickaxe", + "minecraft:wooden_shovel", + "minecraft:wooden_sword", + "minecraft:writable_book", + "minecraft:written_book", + "minecraft:yellow_banner", + "minecraft:yellow_bed", + "minecraft:yellow_carpet", + "minecraft:yellow_concrete", + "minecraft:yellow_concrete_powder", + "minecraft:yellow_glazed_terracotta", + "minecraft:yellow_shulker_box", + "minecraft:yellow_stained_glass", + "minecraft:yellow_stained_glass_pane", + "minecraft:yellow_terracotta", + "minecraft:yellow_wool", + "minecraft:zombie_head", + "minecraft:zombie_horse_spawn_egg", + "minecraft:zombie_pigman_spawn_egg", + "minecraft:zombie_spawn_egg", + "minecraft:zombie_villager_spawn_egg" + ], + "entities": [ + "minecraft:area_effect_cloud", + "minecraft:armor_stand", + "minecraft:arrow", + "minecraft:bat", + "minecraft:blaze", + "minecraft:boat", + "minecraft:cave_spider", + "minecraft:chest_minecart", + "minecraft:chicken", + "minecraft:cod", + "minecraft:command_block_minecart", + "minecraft:cow", + "minecraft:creeper", + "minecraft:dolphin", + "minecraft:donkey", + "minecraft:dragon_fireball", + "minecraft:drowned", + "minecraft:egg", + "minecraft:elder_guardian", + "minecraft:end_crystal", + "minecraft:ender_dragon", + "minecraft:ender_pearl", + "minecraft:enderman", + "minecraft:endermite", + "minecraft:evoker", + "minecraft:evoker_fangs", + "minecraft:experience_bottle", + "minecraft:experience_orb", + "minecraft:eye_of_ender", + "minecraft:falling_block", + "minecraft:fireball", + "minecraft:firework_rocket", + "minecraft:fishing_bobber", + "minecraft:furnace_minecart", + "minecraft:ghast", + "minecraft:giant", + "minecraft:guardian", + "minecraft:hopper_minecart", + "minecraft:horse", + "minecraft:husk", + "minecraft:illusioner", + "minecraft:iron_golem", + "minecraft:item", + "minecraft:item_frame", + "minecraft:leash_knot", + "minecraft:lightning_bolt", + "minecraft:llama", + "minecraft:llama_spit", + "minecraft:magma_cube", + "minecraft:minecart", + "minecraft:mooshroom", + "minecraft:mule", + "minecraft:ocelot", + "minecraft:painting", + "minecraft:parrot", + "minecraft:phantom", + "minecraft:pig", + "minecraft:player", + "minecraft:polar_bear", + "minecraft:potion", + "minecraft:pufferfish", + "minecraft:rabbit", + "minecraft:salmon", + "minecraft:sheep", + "minecraft:shulker", + "minecraft:shulker_bullet", + "minecraft:silverfish", + "minecraft:skeleton", + "minecraft:skeleton_horse", + "minecraft:slime", + "minecraft:small_fireball", + "minecraft:snow_golem", + "minecraft:snowball", + "minecraft:spawner_minecart", + "minecraft:spectral_arrow", + "minecraft:spider", + "minecraft:squid", + "minecraft:stray", + "minecraft:tnt", + "minecraft:tnt_minecart", + "minecraft:trident", + "minecraft:tropical_fish", + "minecraft:turtle", + "minecraft:vex", + "minecraft:villager", + "minecraft:vindicator", + "minecraft:witch", + "minecraft:wither", + "minecraft:wither_skeleton", + "minecraft:wither_skull", + "minecraft:wolf", + "minecraft:zombie", + "minecraft:zombie_horse", + "minecraft:zombie_pigman", + "minecraft:zombie_villager" + ], + "biomes": [ + "minecraft:badlands", + "minecraft:badlands_plateau", + "minecraft:beach", + "minecraft:birch_forest", + "minecraft:birch_forest_hills", + "minecraft:cold_ocean", + "minecraft:dark_forest", + "minecraft:dark_forest_hills", + "minecraft:deep_cold_ocean", + "minecraft:deep_frozen_ocean", + "minecraft:deep_lukewarm_ocean", + "minecraft:deep_ocean", + "minecraft:deep_warm_ocean", + "minecraft:desert", + "minecraft:desert_hills", + "minecraft:desert_lakes", + "minecraft:end_barrens", + "minecraft:end_highlands", + "minecraft:end_midlands", + "minecraft:eroded_badlands", + "minecraft:flower_forest", + "minecraft:forest", + "minecraft:frozen_ocean", + "minecraft:frozen_river", + "minecraft:giant_spruce_taiga", + "minecraft:giant_spruce_taiga_hills", + "minecraft:giant_tree_taiga", + "minecraft:giant_tree_taiga_hills", + "minecraft:gravelly_mountains", + "minecraft:ice_spikes", + "minecraft:jungle", + "minecraft:jungle_edge", + "minecraft:jungle_hills", + "minecraft:lukewarm_ocean", + "minecraft:modified_badlands_plateau", + "minecraft:modified_gravelly_mountains", + "minecraft:modified_jungle", + "minecraft:modified_jungle_edge", + "minecraft:modified_wooded_badlands_plateau", + "minecraft:mountain_edge", + "minecraft:mountains", + "minecraft:mushroom_field_shore", + "minecraft:mushroom_fields", + "minecraft:nether", + "minecraft:ocean", + "minecraft:plains", + "minecraft:river", + "minecraft:savanna", + "minecraft:savanna_plateau", + "minecraft:shattered_savanna", + "minecraft:shattered_savanna_plateau", + "minecraft:small_end_islands", + "minecraft:snowy_beach", + "minecraft:snowy_mountains", + "minecraft:snowy_taiga", + "minecraft:snowy_taiga_hills", + "minecraft:snowy_taiga_mountains", + "minecraft:snowy_tundra", + "minecraft:stone_shore", + "minecraft:sunflower_plains", + "minecraft:swamp", + "minecraft:swamp_hills", + "minecraft:taiga", + "minecraft:taiga_hills", + "minecraft:taiga_mountains", + "minecraft:tall_birch_forest", + "minecraft:tall_birch_hills", + "minecraft:the_end", + "minecraft:the_void", + "minecraft:warm_ocean", + "minecraft:wooded_badlands_plateau", + "minecraft:wooded_hills", + "minecraft:wooded_mountains" + ], + "blocktags": { + "minecraft:wool": [ + "minecraft:white_wool", + "minecraft:orange_wool", + "minecraft:magenta_wool", + "minecraft:light_blue_wool", + "minecraft:yellow_wool", + "minecraft:lime_wool", + "minecraft:pink_wool", + "minecraft:gray_wool", + "minecraft:light_gray_wool", + "minecraft:cyan_wool", + "minecraft:purple_wool", + "minecraft:blue_wool", + "minecraft:brown_wool", + "minecraft:green_wool", + "minecraft:red_wool", + "minecraft:black_wool" + ], + "minecraft:planks": [ + "minecraft:oak_planks", + "minecraft:spruce_planks", + "minecraft:birch_planks", + "minecraft:jungle_planks", + "minecraft:acacia_planks", + "minecraft:dark_oak_planks" + ], + "minecraft:stone_bricks": [ + "minecraft:stone_bricks", + "minecraft:mossy_stone_bricks", + "minecraft:cracked_stone_bricks", + "minecraft:chiseled_stone_bricks" + ], + "minecraft:wooden_buttons": [ + "minecraft:oak_button", + "minecraft:spruce_button", + "minecraft:birch_button", + "minecraft:jungle_button", + "minecraft:acacia_button", + "minecraft:dark_oak_button" + ], + "minecraft:buttons": [ + "minecraft:stone_button", + "minecraft:oak_button", + "minecraft:spruce_button", + "minecraft:birch_button", + "minecraft:jungle_button", + "minecraft:acacia_button", + "minecraft:dark_oak_button" + ], + "minecraft:carpets": [ + "minecraft:white_carpet", + "minecraft:orange_carpet", + "minecraft:magenta_carpet", + "minecraft:light_blue_carpet", + "minecraft:yellow_carpet", + "minecraft:lime_carpet", + "minecraft:pink_carpet", + "minecraft:gray_carpet", + "minecraft:light_gray_carpet", + "minecraft:cyan_carpet", + "minecraft:purple_carpet", + "minecraft:blue_carpet", + "minecraft:brown_carpet", + "minecraft:green_carpet", + "minecraft:red_carpet", + "minecraft:black_carpet" + ], + "minecraft:wooden_doors": [ + "minecraft:oak_door", + "minecraft:spruce_door", + "minecraft:birch_door", + "minecraft:jungle_door", + "minecraft:acacia_door", + "minecraft:dark_oak_door" + ], + "minecraft:wooden_stairs": [ + "minecraft:oak_stairs", + "minecraft:spruce_stairs", + "minecraft:birch_stairs", + "minecraft:jungle_stairs", + "minecraft:acacia_stairs", + "minecraft:dark_oak_stairs" + ], + "minecraft:wooden_slabs": [ + "minecraft:oak_slab", + "minecraft:spruce_slab", + "minecraft:birch_slab", + "minecraft:jungle_slab", + "minecraft:acacia_slab", + "minecraft:dark_oak_slab" + ], + "minecraft:doors": [ + "minecraft:iron_door", + "minecraft:oak_door", + "minecraft:spruce_door", + "minecraft:birch_door", + "minecraft:jungle_door", + "minecraft:acacia_door", + "minecraft:dark_oak_door" + ], + "minecraft:saplings": [ + "minecraft:oak_sapling", + "minecraft:spruce_sapling", + "minecraft:birch_sapling", + "minecraft:jungle_sapling", + "minecraft:acacia_sapling", + "minecraft:dark_oak_sapling" + ], + "minecraft:dark_oak_logs": [ + "minecraft:dark_oak_log", + "minecraft:dark_oak_wood", + "minecraft:stripped_dark_oak_log", + "minecraft:stripped_dark_oak_wood" + ], + "minecraft:oak_logs": [ + "minecraft:oak_log", + "minecraft:oak_wood", + "minecraft:stripped_oak_log", + "minecraft:stripped_oak_wood" + ], + "minecraft:acacia_logs": [ + "minecraft:acacia_log", + "minecraft:acacia_wood", + "minecraft:stripped_acacia_log", + "minecraft:stripped_acacia_wood" + ], + "minecraft:birch_logs": [ + "minecraft:birch_log", + "minecraft:birch_wood", + "minecraft:stripped_birch_log", + "minecraft:stripped_birch_wood" + ], + "minecraft:jungle_logs": [ + "minecraft:jungle_log", + "minecraft:jungle_wood", + "minecraft:stripped_jungle_log", + "minecraft:stripped_jungle_wood" + ], + "minecraft:spruce_logs": [ + "minecraft:spruce_log", + "minecraft:spruce_wood", + "minecraft:stripped_spruce_log", + "minecraft:stripped_spruce_wood" + ], + "minecraft:anvil": [ + "minecraft:anvil", + "minecraft:chipped_anvil", + "minecraft:damaged_anvil" + ], + "minecraft:enderman_holdable": [ + "minecraft:grass_block", + "minecraft:dirt", + "minecraft:coarse_dirt", + "minecraft:podzol", + "minecraft:sand", + "minecraft:red_sand", + "minecraft:gravel", + "minecraft:dandelion", + "minecraft:poppy", + "minecraft:blue_orchid", + "minecraft:allium", + "minecraft:azure_bluet", + "minecraft:red_tulip", + "minecraft:orange_tulip", + "minecraft:white_tulip", + "minecraft:pink_tulip", + "minecraft:oxeye_daisy", + "minecraft:brown_mushroom", + "minecraft:red_mushroom", + "minecraft:tnt", + "minecraft:cactus", + "minecraft:clay", + "minecraft:pumpkin", + "minecraft:carved_pumpkin", + "minecraft:melon", + "minecraft:mycelium", + "minecraft:netherrack" + ], + "minecraft:flower_pots": [ + "minecraft:flower_pot", + "minecraft:potted_poppy", + "minecraft:potted_blue_orchid", + "minecraft:potted_allium", + "minecraft:potted_azure_bluet", + "minecraft:potted_red_tulip", + "minecraft:potted_orange_tulip", + "minecraft:potted_white_tulip", + "minecraft:potted_pink_tulip", + "minecraft:potted_oxeye_daisy", + "minecraft:potted_dandelion", + "minecraft:potted_oak_sapling", + "minecraft:potted_spruce_sapling", + "minecraft:potted_birch_sapling", + "minecraft:potted_jungle_sapling", + "minecraft:potted_acacia_sapling", + "minecraft:potted_dark_oak_sapling", + "minecraft:potted_red_mushroom", + "minecraft:potted_brown_mushroom", + "minecraft:potted_dead_bush", + "minecraft:potted_fern", + "minecraft:potted_cactus" + ], + "minecraft:banners": [ + "minecraft:white_banner", + "minecraft:orange_banner", + "minecraft:magenta_banner", + "minecraft:light_blue_banner", + "minecraft:yellow_banner", + "minecraft:lime_banner", + "minecraft:pink_banner", + "minecraft:gray_banner", + "minecraft:light_gray_banner", + "minecraft:cyan_banner", + "minecraft:purple_banner", + "minecraft:blue_banner", + "minecraft:brown_banner", + "minecraft:green_banner", + "minecraft:red_banner", + "minecraft:black_banner", + "minecraft:white_wall_banner", + "minecraft:orange_wall_banner", + "minecraft:magenta_wall_banner", + "minecraft:light_blue_wall_banner", + "minecraft:yellow_wall_banner", + "minecraft:lime_wall_banner", + "minecraft:pink_wall_banner", + "minecraft:gray_wall_banner", + "minecraft:light_gray_wall_banner", + "minecraft:cyan_wall_banner", + "minecraft:purple_wall_banner", + "minecraft:blue_wall_banner", + "minecraft:brown_wall_banner", + "minecraft:green_wall_banner", + "minecraft:red_wall_banner", + "minecraft:black_wall_banner" + ], + "minecraft:wooden_pressure_plates": [ + "minecraft:oak_pressure_plate", + "minecraft:spruce_pressure_plate", + "minecraft:birch_pressure_plate", + "minecraft:jungle_pressure_plate", + "minecraft:acacia_pressure_plate", + "minecraft:dark_oak_pressure_plate" + ], + "minecraft:stairs": [ + "minecraft:oak_stairs", + "minecraft:cobblestone_stairs", + "minecraft:spruce_stairs", + "minecraft:sandstone_stairs", + "minecraft:acacia_stairs", + "minecraft:jungle_stairs", + "minecraft:birch_stairs", + "minecraft:dark_oak_stairs", + "minecraft:nether_brick_stairs", + "minecraft:stone_brick_stairs", + "minecraft:brick_stairs", + "minecraft:purpur_stairs", + "minecraft:quartz_stairs", + "minecraft:red_sandstone_stairs", + "minecraft:prismarine_brick_stairs", + "minecraft:prismarine_stairs", + "minecraft:dark_prismarine_stairs" + ], + "minecraft:slabs": [ + "minecraft:stone_slab", + "minecraft:stone_brick_slab", + "minecraft:sandstone_slab", + "minecraft:acacia_slab", + "minecraft:birch_slab", + "minecraft:dark_oak_slab", + "minecraft:jungle_slab", + "minecraft:oak_slab", + "minecraft:spruce_slab", + "minecraft:purpur_slab", + "minecraft:quartz_slab", + "minecraft:red_sandstone_slab", + "minecraft:brick_slab", + "minecraft:cobblestone_slab", + "minecraft:nether_brick_slab", + "minecraft:petrified_oak_slab", + "minecraft:prismarine_slab", + "minecraft:prismarine_brick_slab", + "minecraft:dark_prismarine_slab" + ], + "minecraft:coral_plants": [ + "minecraft:tube_coral", + "minecraft:brain_coral", + "minecraft:bubble_coral", + "minecraft:fire_coral", + "minecraft:horn_coral" + ], + "minecraft:corals": [ + "minecraft:tube_coral_fan", + "minecraft:brain_coral_fan", + "minecraft:bubble_coral_fan", + "minecraft:fire_coral_fan", + "minecraft:horn_coral_fan", + "minecraft:tube_coral", + "minecraft:brain_coral", + "minecraft:bubble_coral", + "minecraft:fire_coral", + "minecraft:horn_coral" + ], + "minecraft:wall_corals": [ + "minecraft:tube_coral_wall_fan", + "minecraft:brain_coral_wall_fan", + "minecraft:bubble_coral_wall_fan", + "minecraft:fire_coral_wall_fan", + "minecraft:horn_coral_wall_fan" + ], + "minecraft:sand": [ + "minecraft:sand", + "minecraft:red_sand" + ], + "minecraft:rails": [ + "minecraft:rail", + "minecraft:powered_rail", + "minecraft:detector_rail", + "minecraft:activator_rail" + ], + "minecraft:coral_blocks": [ + "minecraft:tube_coral_block", + "minecraft:brain_coral_block", + "minecraft:bubble_coral_block", + "minecraft:fire_coral_block", + "minecraft:horn_coral_block" + ], + "minecraft:ice": [ + "minecraft:ice", + "minecraft:packed_ice", + "minecraft:blue_ice", + "minecraft:frosted_ice" + ], + "minecraft:valid_spawn": [ + "minecraft:grass_block", + "minecraft:podzol" + ], + "minecraft:leaves": [ + "minecraft:jungle_leaves", + "minecraft:oak_leaves", + "minecraft:spruce_leaves", + "minecraft:dark_oak_leaves", + "minecraft:acacia_leaves", + "minecraft:birch_leaves" + ], + "minecraft:impermeable": [ + "minecraft:glass", + "minecraft:white_stained_glass", + "minecraft:orange_stained_glass", + "minecraft:magenta_stained_glass", + "minecraft:light_blue_stained_glass", + "minecraft:yellow_stained_glass", + "minecraft:lime_stained_glass", + "minecraft:pink_stained_glass", + "minecraft:gray_stained_glass", + "minecraft:light_gray_stained_glass", + "minecraft:cyan_stained_glass", + "minecraft:purple_stained_glass", + "minecraft:blue_stained_glass", + "minecraft:brown_stained_glass", + "minecraft:green_stained_glass", + "minecraft:red_stained_glass", + "minecraft:black_stained_glass" + ], + "minecraft:wooden_trapdoors": [ + "minecraft:acacia_trapdoor", + "minecraft:birch_trapdoor", + "minecraft:dark_oak_trapdoor", + "minecraft:jungle_trapdoor", + "minecraft:oak_trapdoor", + "minecraft:spruce_trapdoor" + ], + "minecraft:trapdoors": [ + "minecraft:iron_trapdoor", + "minecraft:acacia_trapdoor", + "minecraft:birch_trapdoor", + "minecraft:dark_oak_trapdoor", + "minecraft:jungle_trapdoor", + "minecraft:oak_trapdoor", + "minecraft:spruce_trapdoor" + ], + "minecraft:underwater_bonemeals": [ + "minecraft:seagrass", + "minecraft:tube_coral_fan", + "minecraft:brain_coral_fan", + "minecraft:bubble_coral_fan", + "minecraft:fire_coral_fan", + "minecraft:horn_coral_fan", + "minecraft:tube_coral", + "minecraft:brain_coral", + "minecraft:bubble_coral", + "minecraft:fire_coral", + "minecraft:horn_coral", + "minecraft:tube_coral_wall_fan", + "minecraft:brain_coral_wall_fan", + "minecraft:bubble_coral_wall_fan", + "minecraft:fire_coral_wall_fan", + "minecraft:horn_coral_wall_fan" + ], + "minecraft:logs": [ + "minecraft:dark_oak_log", + "minecraft:dark_oak_wood", + "minecraft:stripped_dark_oak_log", + "minecraft:stripped_dark_oak_wood", + "minecraft:oak_log", + "minecraft:oak_wood", + "minecraft:stripped_oak_log", + "minecraft:stripped_oak_wood", + "minecraft:acacia_log", + "minecraft:acacia_wood", + "minecraft:stripped_acacia_log", + "minecraft:stripped_acacia_wood", + "minecraft:birch_log", + "minecraft:birch_wood", + "minecraft:stripped_birch_log", + "minecraft:stripped_birch_wood", + "minecraft:jungle_log", + "minecraft:jungle_wood", + "minecraft:stripped_jungle_log", + "minecraft:stripped_jungle_wood", + "minecraft:spruce_log", + "minecraft:spruce_wood", + "minecraft:stripped_spruce_log", + "minecraft:stripped_spruce_wood" + ] + }, + "itemtags": { + "minecraft:banners": [ + "minecraft:white_banner", + "minecraft:orange_banner", + "minecraft:magenta_banner", + "minecraft:light_blue_banner", + "minecraft:yellow_banner", + "minecraft:lime_banner", + "minecraft:pink_banner", + "minecraft:gray_banner", + "minecraft:light_gray_banner", + "minecraft:cyan_banner", + "minecraft:purple_banner", + "minecraft:blue_banner", + "minecraft:brown_banner", + "minecraft:green_banner", + "minecraft:red_banner", + "minecraft:black_banner" + ], + "minecraft:boats": [ + "minecraft:oak_boat", + "minecraft:spruce_boat", + "minecraft:birch_boat", + "minecraft:jungle_boat", + "minecraft:acacia_boat", + "minecraft:dark_oak_boat" + ], + "minecraft:fishes": [ + "minecraft:cod", + "minecraft:cooked_cod", + "minecraft:salmon", + "minecraft:cooked_salmon", + "minecraft:pufferfish", + "minecraft:tropical_fish" + ] + }, + "entitytags": {} +} diff --git a/worldedit-cli/src/main/resources/com/sk89q/worldedit/cli/data/1963.json b/worldedit-cli/src/main/resources/com/sk89q/worldedit/cli/data/1963.json index f99217273..3396367cc 100644 --- a/worldedit-cli/src/main/resources/com/sk89q/worldedit/cli/data/1963.json +++ b/worldedit-cli/src/main/resources/com/sk89q/worldedit/cli/data/1963.json @@ -1 +1,12888 @@ -{"blocks":{"minecraft:acacia_button":{"properties":{"face":{"values":["floor","wall","ceiling"],"type":"enum"},"facing":{"values":["north","south","west","east"],"type":"direction"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:acacia_button[face=wall,facing=north,powered=false]"},"minecraft:acacia_door":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["upper","lower"],"type":"enum"},"hinge":{"values":["left","right"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:acacia_door[facing=north,half=lower,hinge=left,open=false,powered=false]"},"minecraft:acacia_fence":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:acacia_fence[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:acacia_fence_gate":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"in_wall":{"values":["true","false"],"type":"bool"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:acacia_fence_gate[facing=north,in_wall=false,open=false,powered=false]"},"minecraft:acacia_leaves":{"properties":{"distance":{"values":["1","2","3","4","5","6","7"],"type":"int"},"persistent":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:acacia_leaves[distance=7,persistent=false]"},"minecraft:acacia_log":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:acacia_log[axis=y]"},"minecraft:acacia_planks":{"properties":{},"defaultstate":"minecraft:acacia_planks"},"minecraft:acacia_pressure_plate":{"properties":{"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:acacia_pressure_plate[powered=false]"},"minecraft:acacia_sapling":{"properties":{"stage":{"values":["0","1"],"type":"int"}},"defaultstate":"minecraft:acacia_sapling[stage=0]"},"minecraft:acacia_sign":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:acacia_sign[rotation=0,waterlogged=false]"},"minecraft:acacia_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:acacia_slab[type=bottom,waterlogged=false]"},"minecraft:acacia_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:acacia_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:acacia_trapdoor":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:acacia_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]"},"minecraft:acacia_wall_sign":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:acacia_wall_sign[facing=north,waterlogged=false]"},"minecraft:acacia_wood":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:acacia_wood[axis=y]"},"minecraft:activator_rail":{"properties":{"powered":{"values":["true","false"],"type":"bool"},"shape":{"values":["north_south","east_west","ascending_east","ascending_west","ascending_north","ascending_south"],"type":"enum"}},"defaultstate":"minecraft:activator_rail[powered=false,shape=north_south]"},"minecraft:air":{"properties":{},"defaultstate":"minecraft:air"},"minecraft:allium":{"properties":{},"defaultstate":"minecraft:allium"},"minecraft:andesite":{"properties":{},"defaultstate":"minecraft:andesite"},"minecraft:andesite_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:andesite_slab[type=bottom,waterlogged=false]"},"minecraft:andesite_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:andesite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:andesite_wall":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:andesite_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]"},"minecraft:anvil":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:anvil[facing=north]"},"minecraft:attached_melon_stem":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:attached_melon_stem[facing=north]"},"minecraft:attached_pumpkin_stem":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:attached_pumpkin_stem[facing=north]"},"minecraft:azure_bluet":{"properties":{},"defaultstate":"minecraft:azure_bluet"},"minecraft:bamboo":{"properties":{"age":{"values":["0","1"],"type":"int"},"leaves":{"values":["none","small","large"],"type":"enum"},"stage":{"values":["0","1"],"type":"int"}},"defaultstate":"minecraft:bamboo[age=0,leaves=none,stage=0]"},"minecraft:bamboo_sapling":{"properties":{},"defaultstate":"minecraft:bamboo_sapling"},"minecraft:barrel":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"},"open":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:barrel[facing=north,open=false]"},"minecraft:barrier":{"properties":{},"defaultstate":"minecraft:barrier"},"minecraft:beacon":{"properties":{},"defaultstate":"minecraft:beacon"},"minecraft:bedrock":{"properties":{},"defaultstate":"minecraft:bedrock"},"minecraft:beetroots":{"properties":{"age":{"values":["0","1","2","3"],"type":"int"}},"defaultstate":"minecraft:beetroots[age=0]"},"minecraft:bell":{"properties":{"attachment":{"values":["floor","ceiling","single_wall","double_wall"],"type":"enum"},"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:bell[attachment=floor,facing=north]"},"minecraft:birch_button":{"properties":{"face":{"values":["floor","wall","ceiling"],"type":"enum"},"facing":{"values":["north","south","west","east"],"type":"direction"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:birch_button[face=wall,facing=north,powered=false]"},"minecraft:birch_door":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["upper","lower"],"type":"enum"},"hinge":{"values":["left","right"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:birch_door[facing=north,half=lower,hinge=left,open=false,powered=false]"},"minecraft:birch_fence":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:birch_fence[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:birch_fence_gate":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"in_wall":{"values":["true","false"],"type":"bool"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:birch_fence_gate[facing=north,in_wall=false,open=false,powered=false]"},"minecraft:birch_leaves":{"properties":{"distance":{"values":["1","2","3","4","5","6","7"],"type":"int"},"persistent":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:birch_leaves[distance=7,persistent=false]"},"minecraft:birch_log":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:birch_log[axis=y]"},"minecraft:birch_planks":{"properties":{},"defaultstate":"minecraft:birch_planks"},"minecraft:birch_pressure_plate":{"properties":{"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:birch_pressure_plate[powered=false]"},"minecraft:birch_sapling":{"properties":{"stage":{"values":["0","1"],"type":"int"}},"defaultstate":"minecraft:birch_sapling[stage=0]"},"minecraft:birch_sign":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:birch_sign[rotation=0,waterlogged=false]"},"minecraft:birch_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:birch_slab[type=bottom,waterlogged=false]"},"minecraft:birch_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:birch_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:birch_trapdoor":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:birch_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]"},"minecraft:birch_wall_sign":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:birch_wall_sign[facing=north,waterlogged=false]"},"minecraft:birch_wood":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:birch_wood[axis=y]"},"minecraft:black_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:black_banner[rotation=0]"},"minecraft:black_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:black_bed[facing=north,occupied=false,part=foot]"},"minecraft:black_carpet":{"properties":{},"defaultstate":"minecraft:black_carpet"},"minecraft:black_concrete":{"properties":{},"defaultstate":"minecraft:black_concrete"},"minecraft:black_concrete_powder":{"properties":{},"defaultstate":"minecraft:black_concrete_powder"},"minecraft:black_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:black_glazed_terracotta[facing=north]"},"minecraft:black_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:black_shulker_box[facing=up]"},"minecraft:black_stained_glass":{"properties":{},"defaultstate":"minecraft:black_stained_glass"},"minecraft:black_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:black_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:black_terracotta":{"properties":{},"defaultstate":"minecraft:black_terracotta"},"minecraft:black_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:black_wall_banner[facing=north]"},"minecraft:black_wool":{"properties":{},"defaultstate":"minecraft:black_wool"},"minecraft:blast_furnace":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"lit":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:blast_furnace[facing=north,lit=false]"},"minecraft:blue_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:blue_banner[rotation=0]"},"minecraft:blue_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:blue_bed[facing=north,occupied=false,part=foot]"},"minecraft:blue_carpet":{"properties":{},"defaultstate":"minecraft:blue_carpet"},"minecraft:blue_concrete":{"properties":{},"defaultstate":"minecraft:blue_concrete"},"minecraft:blue_concrete_powder":{"properties":{},"defaultstate":"minecraft:blue_concrete_powder"},"minecraft:blue_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:blue_glazed_terracotta[facing=north]"},"minecraft:blue_ice":{"properties":{},"defaultstate":"minecraft:blue_ice"},"minecraft:blue_orchid":{"properties":{},"defaultstate":"minecraft:blue_orchid"},"minecraft:blue_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:blue_shulker_box[facing=up]"},"minecraft:blue_stained_glass":{"properties":{},"defaultstate":"minecraft:blue_stained_glass"},"minecraft:blue_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:blue_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:blue_terracotta":{"properties":{},"defaultstate":"minecraft:blue_terracotta"},"minecraft:blue_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:blue_wall_banner[facing=north]"},"minecraft:blue_wool":{"properties":{},"defaultstate":"minecraft:blue_wool"},"minecraft:bone_block":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:bone_block[axis=y]"},"minecraft:bookshelf":{"properties":{},"defaultstate":"minecraft:bookshelf"},"minecraft:brain_coral":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:brain_coral[waterlogged=true]"},"minecraft:brain_coral_block":{"properties":{},"defaultstate":"minecraft:brain_coral_block"},"minecraft:brain_coral_fan":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:brain_coral_fan[waterlogged=true]"},"minecraft:brain_coral_wall_fan":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:brain_coral_wall_fan[facing=north,waterlogged=true]"},"minecraft:brewing_stand":{"properties":{"has_bottle_0":{"values":["true","false"],"type":"bool"},"has_bottle_1":{"values":["true","false"],"type":"bool"},"has_bottle_2":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:brewing_stand[has_bottle_0=false,has_bottle_1=false,has_bottle_2=false]"},"minecraft:brick_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:brick_slab[type=bottom,waterlogged=false]"},"minecraft:brick_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:brick_wall":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:brick_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]"},"minecraft:bricks":{"properties":{},"defaultstate":"minecraft:bricks"},"minecraft:brown_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:brown_banner[rotation=0]"},"minecraft:brown_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:brown_bed[facing=north,occupied=false,part=foot]"},"minecraft:brown_carpet":{"properties":{},"defaultstate":"minecraft:brown_carpet"},"minecraft:brown_concrete":{"properties":{},"defaultstate":"minecraft:brown_concrete"},"minecraft:brown_concrete_powder":{"properties":{},"defaultstate":"minecraft:brown_concrete_powder"},"minecraft:brown_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:brown_glazed_terracotta[facing=north]"},"minecraft:brown_mushroom":{"properties":{},"defaultstate":"minecraft:brown_mushroom"},"minecraft:brown_mushroom_block":{"properties":{"down":{"values":["true","false"],"type":"bool"},"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:brown_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true]"},"minecraft:brown_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:brown_shulker_box[facing=up]"},"minecraft:brown_stained_glass":{"properties":{},"defaultstate":"minecraft:brown_stained_glass"},"minecraft:brown_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:brown_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:brown_terracotta":{"properties":{},"defaultstate":"minecraft:brown_terracotta"},"minecraft:brown_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:brown_wall_banner[facing=north]"},"minecraft:brown_wool":{"properties":{},"defaultstate":"minecraft:brown_wool"},"minecraft:bubble_column":{"properties":{"drag":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:bubble_column[drag=true]"},"minecraft:bubble_coral":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:bubble_coral[waterlogged=true]"},"minecraft:bubble_coral_block":{"properties":{},"defaultstate":"minecraft:bubble_coral_block"},"minecraft:bubble_coral_fan":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:bubble_coral_fan[waterlogged=true]"},"minecraft:bubble_coral_wall_fan":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:bubble_coral_wall_fan[facing=north,waterlogged=true]"},"minecraft:cactus":{"properties":{"age":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:cactus[age=0]"},"minecraft:cake":{"properties":{"bites":{"values":["0","1","2","3","4","5","6"],"type":"int"}},"defaultstate":"minecraft:cake[bites=0]"},"minecraft:campfire":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"lit":{"values":["true","false"],"type":"bool"},"signal_fire":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:campfire[facing=north,lit=true,signal_fire=false,waterlogged=false]"},"minecraft:carrots":{"properties":{"age":{"values":["0","1","2","3","4","5","6","7"],"type":"int"}},"defaultstate":"minecraft:carrots[age=0]"},"minecraft:cartography_table":{"properties":{},"defaultstate":"minecraft:cartography_table"},"minecraft:carved_pumpkin":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:carved_pumpkin[facing=north]"},"minecraft:cauldron":{"properties":{"level":{"values":["0","1","2","3"],"type":"int"}},"defaultstate":"minecraft:cauldron[level=0]"},"minecraft:cave_air":{"properties":{},"defaultstate":"minecraft:cave_air"},"minecraft:chain_command_block":{"properties":{"conditional":{"values":["true","false"],"type":"bool"},"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:chain_command_block[conditional=false,facing=north]"},"minecraft:chest":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"type":{"values":["single","left","right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:chest[facing=north,type=single,waterlogged=false]"},"minecraft:chipped_anvil":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:chipped_anvil[facing=north]"},"minecraft:chiseled_quartz_block":{"properties":{},"defaultstate":"minecraft:chiseled_quartz_block"},"minecraft:chiseled_red_sandstone":{"properties":{},"defaultstate":"minecraft:chiseled_red_sandstone"},"minecraft:chiseled_sandstone":{"properties":{},"defaultstate":"minecraft:chiseled_sandstone"},"minecraft:chiseled_stone_bricks":{"properties":{},"defaultstate":"minecraft:chiseled_stone_bricks"},"minecraft:chorus_flower":{"properties":{"age":{"values":["0","1","2","3","4","5"],"type":"int"}},"defaultstate":"minecraft:chorus_flower[age=0]"},"minecraft:chorus_plant":{"properties":{"down":{"values":["true","false"],"type":"bool"},"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:chorus_plant[down=false,east=false,north=false,south=false,up=false,west=false]"},"minecraft:clay":{"properties":{},"defaultstate":"minecraft:clay"},"minecraft:coal_block":{"properties":{},"defaultstate":"minecraft:coal_block"},"minecraft:coal_ore":{"properties":{},"defaultstate":"minecraft:coal_ore"},"minecraft:coarse_dirt":{"properties":{},"defaultstate":"minecraft:coarse_dirt"},"minecraft:cobblestone":{"properties":{},"defaultstate":"minecraft:cobblestone"},"minecraft:cobblestone_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:cobblestone_slab[type=bottom,waterlogged=false]"},"minecraft:cobblestone_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:cobblestone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:cobblestone_wall":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:cobblestone_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]"},"minecraft:cobweb":{"properties":{},"defaultstate":"minecraft:cobweb"},"minecraft:cocoa":{"properties":{"age":{"values":["0","1","2"],"type":"int"},"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:cocoa[age=0,facing=north]"},"minecraft:command_block":{"properties":{"conditional":{"values":["true","false"],"type":"bool"},"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:command_block[conditional=false,facing=north]"},"minecraft:comparator":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"mode":{"values":["compare","subtract"],"type":"enum"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:comparator[facing=north,mode=compare,powered=false]"},"minecraft:composter":{"properties":{"level":{"values":["0","1","2","3","4","5","6","7","8"],"type":"int"}},"defaultstate":"minecraft:composter[level=0]"},"minecraft:conduit":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:conduit[waterlogged=true]"},"minecraft:cornflower":{"properties":{},"defaultstate":"minecraft:cornflower"},"minecraft:cracked_stone_bricks":{"properties":{},"defaultstate":"minecraft:cracked_stone_bricks"},"minecraft:crafting_table":{"properties":{},"defaultstate":"minecraft:crafting_table"},"minecraft:creeper_head":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:creeper_head[rotation=0]"},"minecraft:creeper_wall_head":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:creeper_wall_head[facing=north]"},"minecraft:cut_red_sandstone":{"properties":{},"defaultstate":"minecraft:cut_red_sandstone"},"minecraft:cut_red_sandstone_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:cut_red_sandstone_slab[type=bottom,waterlogged=false]"},"minecraft:cut_sandstone":{"properties":{},"defaultstate":"minecraft:cut_sandstone"},"minecraft:cut_sandstone_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:cut_sandstone_slab[type=bottom,waterlogged=false]"},"minecraft:cyan_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:cyan_banner[rotation=0]"},"minecraft:cyan_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:cyan_bed[facing=north,occupied=false,part=foot]"},"minecraft:cyan_carpet":{"properties":{},"defaultstate":"minecraft:cyan_carpet"},"minecraft:cyan_concrete":{"properties":{},"defaultstate":"minecraft:cyan_concrete"},"minecraft:cyan_concrete_powder":{"properties":{},"defaultstate":"minecraft:cyan_concrete_powder"},"minecraft:cyan_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:cyan_glazed_terracotta[facing=north]"},"minecraft:cyan_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:cyan_shulker_box[facing=up]"},"minecraft:cyan_stained_glass":{"properties":{},"defaultstate":"minecraft:cyan_stained_glass"},"minecraft:cyan_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:cyan_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:cyan_terracotta":{"properties":{},"defaultstate":"minecraft:cyan_terracotta"},"minecraft:cyan_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:cyan_wall_banner[facing=north]"},"minecraft:cyan_wool":{"properties":{},"defaultstate":"minecraft:cyan_wool"},"minecraft:damaged_anvil":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:damaged_anvil[facing=north]"},"minecraft:dandelion":{"properties":{},"defaultstate":"minecraft:dandelion"},"minecraft:dark_oak_button":{"properties":{"face":{"values":["floor","wall","ceiling"],"type":"enum"},"facing":{"values":["north","south","west","east"],"type":"direction"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dark_oak_button[face=wall,facing=north,powered=false]"},"minecraft:dark_oak_door":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["upper","lower"],"type":"enum"},"hinge":{"values":["left","right"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dark_oak_door[facing=north,half=lower,hinge=left,open=false,powered=false]"},"minecraft:dark_oak_fence":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dark_oak_fence[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:dark_oak_fence_gate":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"in_wall":{"values":["true","false"],"type":"bool"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dark_oak_fence_gate[facing=north,in_wall=false,open=false,powered=false]"},"minecraft:dark_oak_leaves":{"properties":{"distance":{"values":["1","2","3","4","5","6","7"],"type":"int"},"persistent":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dark_oak_leaves[distance=7,persistent=false]"},"minecraft:dark_oak_log":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:dark_oak_log[axis=y]"},"minecraft:dark_oak_planks":{"properties":{},"defaultstate":"minecraft:dark_oak_planks"},"minecraft:dark_oak_pressure_plate":{"properties":{"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dark_oak_pressure_plate[powered=false]"},"minecraft:dark_oak_sapling":{"properties":{"stage":{"values":["0","1"],"type":"int"}},"defaultstate":"minecraft:dark_oak_sapling[stage=0]"},"minecraft:dark_oak_sign":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dark_oak_sign[rotation=0,waterlogged=false]"},"minecraft:dark_oak_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dark_oak_slab[type=bottom,waterlogged=false]"},"minecraft:dark_oak_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dark_oak_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:dark_oak_trapdoor":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dark_oak_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]"},"minecraft:dark_oak_wall_sign":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dark_oak_wall_sign[facing=north,waterlogged=false]"},"minecraft:dark_oak_wood":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:dark_oak_wood[axis=y]"},"minecraft:dark_prismarine":{"properties":{},"defaultstate":"minecraft:dark_prismarine"},"minecraft:dark_prismarine_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dark_prismarine_slab[type=bottom,waterlogged=false]"},"minecraft:dark_prismarine_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dark_prismarine_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:daylight_detector":{"properties":{"inverted":{"values":["true","false"],"type":"bool"},"power":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:daylight_detector[inverted=false,power=0]"},"minecraft:dead_brain_coral":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_brain_coral[waterlogged=true]"},"minecraft:dead_brain_coral_block":{"properties":{},"defaultstate":"minecraft:dead_brain_coral_block"},"minecraft:dead_brain_coral_fan":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_brain_coral_fan[waterlogged=true]"},"minecraft:dead_brain_coral_wall_fan":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_brain_coral_wall_fan[facing=north,waterlogged=true]"},"minecraft:dead_bubble_coral":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_bubble_coral[waterlogged=true]"},"minecraft:dead_bubble_coral_block":{"properties":{},"defaultstate":"minecraft:dead_bubble_coral_block"},"minecraft:dead_bubble_coral_fan":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_bubble_coral_fan[waterlogged=true]"},"minecraft:dead_bubble_coral_wall_fan":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_bubble_coral_wall_fan[facing=north,waterlogged=true]"},"minecraft:dead_bush":{"properties":{},"defaultstate":"minecraft:dead_bush"},"minecraft:dead_fire_coral":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_fire_coral[waterlogged=true]"},"minecraft:dead_fire_coral_block":{"properties":{},"defaultstate":"minecraft:dead_fire_coral_block"},"minecraft:dead_fire_coral_fan":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_fire_coral_fan[waterlogged=true]"},"minecraft:dead_fire_coral_wall_fan":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_fire_coral_wall_fan[facing=north,waterlogged=true]"},"minecraft:dead_horn_coral":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_horn_coral[waterlogged=true]"},"minecraft:dead_horn_coral_block":{"properties":{},"defaultstate":"minecraft:dead_horn_coral_block"},"minecraft:dead_horn_coral_fan":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_horn_coral_fan[waterlogged=true]"},"minecraft:dead_horn_coral_wall_fan":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_horn_coral_wall_fan[facing=north,waterlogged=true]"},"minecraft:dead_tube_coral":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_tube_coral[waterlogged=true]"},"minecraft:dead_tube_coral_block":{"properties":{},"defaultstate":"minecraft:dead_tube_coral_block"},"minecraft:dead_tube_coral_fan":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_tube_coral_fan[waterlogged=true]"},"minecraft:dead_tube_coral_wall_fan":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_tube_coral_wall_fan[facing=north,waterlogged=true]"},"minecraft:detector_rail":{"properties":{"powered":{"values":["true","false"],"type":"bool"},"shape":{"values":["north_south","east_west","ascending_east","ascending_west","ascending_north","ascending_south"],"type":"enum"}},"defaultstate":"minecraft:detector_rail[powered=false,shape=north_south]"},"minecraft:diamond_block":{"properties":{},"defaultstate":"minecraft:diamond_block"},"minecraft:diamond_ore":{"properties":{},"defaultstate":"minecraft:diamond_ore"},"minecraft:diorite":{"properties":{},"defaultstate":"minecraft:diorite"},"minecraft:diorite_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:diorite_slab[type=bottom,waterlogged=false]"},"minecraft:diorite_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:diorite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:diorite_wall":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:diorite_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]"},"minecraft:dirt":{"properties":{},"defaultstate":"minecraft:dirt"},"minecraft:dispenser":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"},"triggered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dispenser[facing=north,triggered=false]"},"minecraft:dragon_egg":{"properties":{},"defaultstate":"minecraft:dragon_egg"},"minecraft:dragon_head":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:dragon_head[rotation=0]"},"minecraft:dragon_wall_head":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:dragon_wall_head[facing=north]"},"minecraft:dried_kelp_block":{"properties":{},"defaultstate":"minecraft:dried_kelp_block"},"minecraft:dropper":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"},"triggered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dropper[facing=north,triggered=false]"},"minecraft:emerald_block":{"properties":{},"defaultstate":"minecraft:emerald_block"},"minecraft:emerald_ore":{"properties":{},"defaultstate":"minecraft:emerald_ore"},"minecraft:enchanting_table":{"properties":{},"defaultstate":"minecraft:enchanting_table"},"minecraft:end_gateway":{"properties":{},"defaultstate":"minecraft:end_gateway"},"minecraft:end_portal":{"properties":{},"defaultstate":"minecraft:end_portal"},"minecraft:end_portal_frame":{"properties":{"eye":{"values":["true","false"],"type":"bool"},"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:end_portal_frame[eye=false,facing=north]"},"minecraft:end_rod":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:end_rod[facing=up]"},"minecraft:end_stone":{"properties":{},"defaultstate":"minecraft:end_stone"},"minecraft:end_stone_brick_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:end_stone_brick_slab[type=bottom,waterlogged=false]"},"minecraft:end_stone_brick_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:end_stone_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:end_stone_brick_wall":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:end_stone_brick_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]"},"minecraft:end_stone_bricks":{"properties":{},"defaultstate":"minecraft:end_stone_bricks"},"minecraft:ender_chest":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:ender_chest[facing=north,waterlogged=false]"},"minecraft:farmland":{"properties":{"moisture":{"values":["0","1","2","3","4","5","6","7"],"type":"int"}},"defaultstate":"minecraft:farmland[moisture=0]"},"minecraft:fern":{"properties":{},"defaultstate":"minecraft:fern"},"minecraft:fire":{"properties":{"age":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"},"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:fire[age=0,east=false,north=false,south=false,up=false,west=false]"},"minecraft:fire_coral":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:fire_coral[waterlogged=true]"},"minecraft:fire_coral_block":{"properties":{},"defaultstate":"minecraft:fire_coral_block"},"minecraft:fire_coral_fan":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:fire_coral_fan[waterlogged=true]"},"minecraft:fire_coral_wall_fan":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:fire_coral_wall_fan[facing=north,waterlogged=true]"},"minecraft:fletching_table":{"properties":{},"defaultstate":"minecraft:fletching_table"},"minecraft:flower_pot":{"properties":{},"defaultstate":"minecraft:flower_pot"},"minecraft:frosted_ice":{"properties":{"age":{"values":["0","1","2","3"],"type":"int"}},"defaultstate":"minecraft:frosted_ice[age=0]"},"minecraft:furnace":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"lit":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:furnace[facing=north,lit=false]"},"minecraft:glass":{"properties":{},"defaultstate":"minecraft:glass"},"minecraft:glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:glowstone":{"properties":{},"defaultstate":"minecraft:glowstone"},"minecraft:gold_block":{"properties":{},"defaultstate":"minecraft:gold_block"},"minecraft:gold_ore":{"properties":{},"defaultstate":"minecraft:gold_ore"},"minecraft:granite":{"properties":{},"defaultstate":"minecraft:granite"},"minecraft:granite_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:granite_slab[type=bottom,waterlogged=false]"},"minecraft:granite_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:granite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:granite_wall":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:granite_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]"},"minecraft:grass":{"properties":{},"defaultstate":"minecraft:grass"},"minecraft:grass_block":{"properties":{"snowy":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:grass_block[snowy=false]"},"minecraft:grass_path":{"properties":{},"defaultstate":"minecraft:grass_path"},"minecraft:gravel":{"properties":{},"defaultstate":"minecraft:gravel"},"minecraft:gray_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:gray_banner[rotation=0]"},"minecraft:gray_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:gray_bed[facing=north,occupied=false,part=foot]"},"minecraft:gray_carpet":{"properties":{},"defaultstate":"minecraft:gray_carpet"},"minecraft:gray_concrete":{"properties":{},"defaultstate":"minecraft:gray_concrete"},"minecraft:gray_concrete_powder":{"properties":{},"defaultstate":"minecraft:gray_concrete_powder"},"minecraft:gray_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:gray_glazed_terracotta[facing=north]"},"minecraft:gray_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:gray_shulker_box[facing=up]"},"minecraft:gray_stained_glass":{"properties":{},"defaultstate":"minecraft:gray_stained_glass"},"minecraft:gray_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:gray_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:gray_terracotta":{"properties":{},"defaultstate":"minecraft:gray_terracotta"},"minecraft:gray_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:gray_wall_banner[facing=north]"},"minecraft:gray_wool":{"properties":{},"defaultstate":"minecraft:gray_wool"},"minecraft:green_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:green_banner[rotation=0]"},"minecraft:green_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:green_bed[facing=north,occupied=false,part=foot]"},"minecraft:green_carpet":{"properties":{},"defaultstate":"minecraft:green_carpet"},"minecraft:green_concrete":{"properties":{},"defaultstate":"minecraft:green_concrete"},"minecraft:green_concrete_powder":{"properties":{},"defaultstate":"minecraft:green_concrete_powder"},"minecraft:green_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:green_glazed_terracotta[facing=north]"},"minecraft:green_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:green_shulker_box[facing=up]"},"minecraft:green_stained_glass":{"properties":{},"defaultstate":"minecraft:green_stained_glass"},"minecraft:green_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:green_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:green_terracotta":{"properties":{},"defaultstate":"minecraft:green_terracotta"},"minecraft:green_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:green_wall_banner[facing=north]"},"minecraft:green_wool":{"properties":{},"defaultstate":"minecraft:green_wool"},"minecraft:grindstone":{"properties":{"face":{"values":["floor","wall","ceiling"],"type":"enum"},"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:grindstone[face=wall,facing=north]"},"minecraft:hay_block":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:hay_block[axis=y]"},"minecraft:heavy_weighted_pressure_plate":{"properties":{"power":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:heavy_weighted_pressure_plate[power=0]"},"minecraft:hopper":{"properties":{"enabled":{"values":["true","false"],"type":"bool"},"facing":{"values":["down","north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:hopper[enabled=true,facing=down]"},"minecraft:horn_coral":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:horn_coral[waterlogged=true]"},"minecraft:horn_coral_block":{"properties":{},"defaultstate":"minecraft:horn_coral_block"},"minecraft:horn_coral_fan":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:horn_coral_fan[waterlogged=true]"},"minecraft:horn_coral_wall_fan":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:horn_coral_wall_fan[facing=north,waterlogged=true]"},"minecraft:ice":{"properties":{},"defaultstate":"minecraft:ice"},"minecraft:infested_chiseled_stone_bricks":{"properties":{},"defaultstate":"minecraft:infested_chiseled_stone_bricks"},"minecraft:infested_cobblestone":{"properties":{},"defaultstate":"minecraft:infested_cobblestone"},"minecraft:infested_cracked_stone_bricks":{"properties":{},"defaultstate":"minecraft:infested_cracked_stone_bricks"},"minecraft:infested_mossy_stone_bricks":{"properties":{},"defaultstate":"minecraft:infested_mossy_stone_bricks"},"minecraft:infested_stone":{"properties":{},"defaultstate":"minecraft:infested_stone"},"minecraft:infested_stone_bricks":{"properties":{},"defaultstate":"minecraft:infested_stone_bricks"},"minecraft:iron_bars":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:iron_bars[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:iron_block":{"properties":{},"defaultstate":"minecraft:iron_block"},"minecraft:iron_door":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["upper","lower"],"type":"enum"},"hinge":{"values":["left","right"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:iron_door[facing=north,half=lower,hinge=left,open=false,powered=false]"},"minecraft:iron_ore":{"properties":{},"defaultstate":"minecraft:iron_ore"},"minecraft:iron_trapdoor":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:iron_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]"},"minecraft:jack_o_lantern":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:jack_o_lantern[facing=north]"},"minecraft:jigsaw":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:jigsaw[facing=up]"},"minecraft:jukebox":{"properties":{"has_record":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:jukebox[has_record=false]"},"minecraft:jungle_button":{"properties":{"face":{"values":["floor","wall","ceiling"],"type":"enum"},"facing":{"values":["north","south","west","east"],"type":"direction"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:jungle_button[face=wall,facing=north,powered=false]"},"minecraft:jungle_door":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["upper","lower"],"type":"enum"},"hinge":{"values":["left","right"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:jungle_door[facing=north,half=lower,hinge=left,open=false,powered=false]"},"minecraft:jungle_fence":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:jungle_fence[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:jungle_fence_gate":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"in_wall":{"values":["true","false"],"type":"bool"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:jungle_fence_gate[facing=north,in_wall=false,open=false,powered=false]"},"minecraft:jungle_leaves":{"properties":{"distance":{"values":["1","2","3","4","5","6","7"],"type":"int"},"persistent":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:jungle_leaves[distance=7,persistent=false]"},"minecraft:jungle_log":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:jungle_log[axis=y]"},"minecraft:jungle_planks":{"properties":{},"defaultstate":"minecraft:jungle_planks"},"minecraft:jungle_pressure_plate":{"properties":{"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:jungle_pressure_plate[powered=false]"},"minecraft:jungle_sapling":{"properties":{"stage":{"values":["0","1"],"type":"int"}},"defaultstate":"minecraft:jungle_sapling[stage=0]"},"minecraft:jungle_sign":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:jungle_sign[rotation=0,waterlogged=false]"},"minecraft:jungle_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:jungle_slab[type=bottom,waterlogged=false]"},"minecraft:jungle_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:jungle_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:jungle_trapdoor":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:jungle_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]"},"minecraft:jungle_wall_sign":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:jungle_wall_sign[facing=north,waterlogged=false]"},"minecraft:jungle_wood":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:jungle_wood[axis=y]"},"minecraft:kelp":{"properties":{"age":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25"],"type":"int"}},"defaultstate":"minecraft:kelp[age=0]"},"minecraft:kelp_plant":{"properties":{},"defaultstate":"minecraft:kelp_plant"},"minecraft:ladder":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:ladder[facing=north,waterlogged=false]"},"minecraft:lantern":{"properties":{"hanging":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:lantern[hanging=false]"},"minecraft:lapis_block":{"properties":{},"defaultstate":"minecraft:lapis_block"},"minecraft:lapis_ore":{"properties":{},"defaultstate":"minecraft:lapis_ore"},"minecraft:large_fern":{"properties":{"half":{"values":["upper","lower"],"type":"enum"}},"defaultstate":"minecraft:large_fern[half=lower]"},"minecraft:lava":{"properties":{"level":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:lava[level=0]"},"minecraft:lectern":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"has_book":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:lectern[facing=north,has_book=false,powered=false]"},"minecraft:lever":{"properties":{"face":{"values":["floor","wall","ceiling"],"type":"enum"},"facing":{"values":["north","south","west","east"],"type":"direction"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:lever[face=wall,facing=north,powered=false]"},"minecraft:light_blue_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:light_blue_banner[rotation=0]"},"minecraft:light_blue_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:light_blue_bed[facing=north,occupied=false,part=foot]"},"minecraft:light_blue_carpet":{"properties":{},"defaultstate":"minecraft:light_blue_carpet"},"minecraft:light_blue_concrete":{"properties":{},"defaultstate":"minecraft:light_blue_concrete"},"minecraft:light_blue_concrete_powder":{"properties":{},"defaultstate":"minecraft:light_blue_concrete_powder"},"minecraft:light_blue_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:light_blue_glazed_terracotta[facing=north]"},"minecraft:light_blue_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:light_blue_shulker_box[facing=up]"},"minecraft:light_blue_stained_glass":{"properties":{},"defaultstate":"minecraft:light_blue_stained_glass"},"minecraft:light_blue_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:light_blue_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:light_blue_terracotta":{"properties":{},"defaultstate":"minecraft:light_blue_terracotta"},"minecraft:light_blue_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:light_blue_wall_banner[facing=north]"},"minecraft:light_blue_wool":{"properties":{},"defaultstate":"minecraft:light_blue_wool"},"minecraft:light_gray_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:light_gray_banner[rotation=0]"},"minecraft:light_gray_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:light_gray_bed[facing=north,occupied=false,part=foot]"},"minecraft:light_gray_carpet":{"properties":{},"defaultstate":"minecraft:light_gray_carpet"},"minecraft:light_gray_concrete":{"properties":{},"defaultstate":"minecraft:light_gray_concrete"},"minecraft:light_gray_concrete_powder":{"properties":{},"defaultstate":"minecraft:light_gray_concrete_powder"},"minecraft:light_gray_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:light_gray_glazed_terracotta[facing=north]"},"minecraft:light_gray_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:light_gray_shulker_box[facing=up]"},"minecraft:light_gray_stained_glass":{"properties":{},"defaultstate":"minecraft:light_gray_stained_glass"},"minecraft:light_gray_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:light_gray_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:light_gray_terracotta":{"properties":{},"defaultstate":"minecraft:light_gray_terracotta"},"minecraft:light_gray_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:light_gray_wall_banner[facing=north]"},"minecraft:light_gray_wool":{"properties":{},"defaultstate":"minecraft:light_gray_wool"},"minecraft:light_weighted_pressure_plate":{"properties":{"power":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:light_weighted_pressure_plate[power=0]"},"minecraft:lilac":{"properties":{"half":{"values":["upper","lower"],"type":"enum"}},"defaultstate":"minecraft:lilac[half=lower]"},"minecraft:lily_of_the_valley":{"properties":{},"defaultstate":"minecraft:lily_of_the_valley"},"minecraft:lily_pad":{"properties":{},"defaultstate":"minecraft:lily_pad"},"minecraft:lime_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:lime_banner[rotation=0]"},"minecraft:lime_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:lime_bed[facing=north,occupied=false,part=foot]"},"minecraft:lime_carpet":{"properties":{},"defaultstate":"minecraft:lime_carpet"},"minecraft:lime_concrete":{"properties":{},"defaultstate":"minecraft:lime_concrete"},"minecraft:lime_concrete_powder":{"properties":{},"defaultstate":"minecraft:lime_concrete_powder"},"minecraft:lime_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:lime_glazed_terracotta[facing=north]"},"minecraft:lime_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:lime_shulker_box[facing=up]"},"minecraft:lime_stained_glass":{"properties":{},"defaultstate":"minecraft:lime_stained_glass"},"minecraft:lime_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:lime_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:lime_terracotta":{"properties":{},"defaultstate":"minecraft:lime_terracotta"},"minecraft:lime_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:lime_wall_banner[facing=north]"},"minecraft:lime_wool":{"properties":{},"defaultstate":"minecraft:lime_wool"},"minecraft:loom":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:loom[facing=north]"},"minecraft:magenta_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:magenta_banner[rotation=0]"},"minecraft:magenta_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:magenta_bed[facing=north,occupied=false,part=foot]"},"minecraft:magenta_carpet":{"properties":{},"defaultstate":"minecraft:magenta_carpet"},"minecraft:magenta_concrete":{"properties":{},"defaultstate":"minecraft:magenta_concrete"},"minecraft:magenta_concrete_powder":{"properties":{},"defaultstate":"minecraft:magenta_concrete_powder"},"minecraft:magenta_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:magenta_glazed_terracotta[facing=north]"},"minecraft:magenta_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:magenta_shulker_box[facing=up]"},"minecraft:magenta_stained_glass":{"properties":{},"defaultstate":"minecraft:magenta_stained_glass"},"minecraft:magenta_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:magenta_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:magenta_terracotta":{"properties":{},"defaultstate":"minecraft:magenta_terracotta"},"minecraft:magenta_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:magenta_wall_banner[facing=north]"},"minecraft:magenta_wool":{"properties":{},"defaultstate":"minecraft:magenta_wool"},"minecraft:magma_block":{"properties":{},"defaultstate":"minecraft:magma_block"},"minecraft:melon":{"properties":{},"defaultstate":"minecraft:melon"},"minecraft:melon_stem":{"properties":{"age":{"values":["0","1","2","3","4","5","6","7"],"type":"int"}},"defaultstate":"minecraft:melon_stem[age=0]"},"minecraft:mossy_cobblestone":{"properties":{},"defaultstate":"minecraft:mossy_cobblestone"},"minecraft:mossy_cobblestone_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:mossy_cobblestone_slab[type=bottom,waterlogged=false]"},"minecraft:mossy_cobblestone_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:mossy_cobblestone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:mossy_cobblestone_wall":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:mossy_cobblestone_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]"},"minecraft:mossy_stone_brick_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:mossy_stone_brick_slab[type=bottom,waterlogged=false]"},"minecraft:mossy_stone_brick_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:mossy_stone_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:mossy_stone_brick_wall":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:mossy_stone_brick_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]"},"minecraft:mossy_stone_bricks":{"properties":{},"defaultstate":"minecraft:mossy_stone_bricks"},"minecraft:moving_piston":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"},"type":{"values":["normal","sticky"],"type":"enum"}},"defaultstate":"minecraft:moving_piston[facing=north,type=normal]"},"minecraft:mushroom_stem":{"properties":{"down":{"values":["true","false"],"type":"bool"},"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:mushroom_stem[down=true,east=true,north=true,south=true,up=true,west=true]"},"minecraft:mycelium":{"properties":{"snowy":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:mycelium[snowy=false]"},"minecraft:nether_brick_fence":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:nether_brick_fence[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:nether_brick_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:nether_brick_slab[type=bottom,waterlogged=false]"},"minecraft:nether_brick_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:nether_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:nether_brick_wall":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:nether_brick_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]"},"minecraft:nether_bricks":{"properties":{},"defaultstate":"minecraft:nether_bricks"},"minecraft:nether_portal":{"properties":{"axis":{"values":["x","z"],"type":"enum"}},"defaultstate":"minecraft:nether_portal[axis=x]"},"minecraft:nether_quartz_ore":{"properties":{},"defaultstate":"minecraft:nether_quartz_ore"},"minecraft:nether_wart":{"properties":{"age":{"values":["0","1","2","3"],"type":"int"}},"defaultstate":"minecraft:nether_wart[age=0]"},"minecraft:nether_wart_block":{"properties":{},"defaultstate":"minecraft:nether_wart_block"},"minecraft:netherrack":{"properties":{},"defaultstate":"minecraft:netherrack"},"minecraft:note_block":{"properties":{"instrument":{"values":["harp","basedrum","snare","hat","bass","flute","bell","guitar","chime","xylophone","iron_xylophone","cow_bell","didgeridoo","bit","banjo","pling"],"type":"enum"},"note":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24"],"type":"int"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:note_block[instrument=harp,note=0,powered=false]"},"minecraft:oak_button":{"properties":{"face":{"values":["floor","wall","ceiling"],"type":"enum"},"facing":{"values":["north","south","west","east"],"type":"direction"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:oak_button[face=wall,facing=north,powered=false]"},"minecraft:oak_door":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["upper","lower"],"type":"enum"},"hinge":{"values":["left","right"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:oak_door[facing=north,half=lower,hinge=left,open=false,powered=false]"},"minecraft:oak_fence":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:oak_fence[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:oak_fence_gate":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"in_wall":{"values":["true","false"],"type":"bool"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:oak_fence_gate[facing=north,in_wall=false,open=false,powered=false]"},"minecraft:oak_leaves":{"properties":{"distance":{"values":["1","2","3","4","5","6","7"],"type":"int"},"persistent":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:oak_leaves[distance=7,persistent=false]"},"minecraft:oak_log":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:oak_log[axis=y]"},"minecraft:oak_planks":{"properties":{},"defaultstate":"minecraft:oak_planks"},"minecraft:oak_pressure_plate":{"properties":{"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:oak_pressure_plate[powered=false]"},"minecraft:oak_sapling":{"properties":{"stage":{"values":["0","1"],"type":"int"}},"defaultstate":"minecraft:oak_sapling[stage=0]"},"minecraft:oak_sign":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:oak_sign[rotation=0,waterlogged=false]"},"minecraft:oak_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:oak_slab[type=bottom,waterlogged=false]"},"minecraft:oak_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:oak_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:oak_trapdoor":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:oak_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]"},"minecraft:oak_wall_sign":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:oak_wall_sign[facing=north,waterlogged=false]"},"minecraft:oak_wood":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:oak_wood[axis=y]"},"minecraft:observer":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:observer[facing=south,powered=false]"},"minecraft:obsidian":{"properties":{},"defaultstate":"minecraft:obsidian"},"minecraft:orange_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:orange_banner[rotation=0]"},"minecraft:orange_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:orange_bed[facing=north,occupied=false,part=foot]"},"minecraft:orange_carpet":{"properties":{},"defaultstate":"minecraft:orange_carpet"},"minecraft:orange_concrete":{"properties":{},"defaultstate":"minecraft:orange_concrete"},"minecraft:orange_concrete_powder":{"properties":{},"defaultstate":"minecraft:orange_concrete_powder"},"minecraft:orange_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:orange_glazed_terracotta[facing=north]"},"minecraft:orange_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:orange_shulker_box[facing=up]"},"minecraft:orange_stained_glass":{"properties":{},"defaultstate":"minecraft:orange_stained_glass"},"minecraft:orange_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:orange_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:orange_terracotta":{"properties":{},"defaultstate":"minecraft:orange_terracotta"},"minecraft:orange_tulip":{"properties":{},"defaultstate":"minecraft:orange_tulip"},"minecraft:orange_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:orange_wall_banner[facing=north]"},"minecraft:orange_wool":{"properties":{},"defaultstate":"minecraft:orange_wool"},"minecraft:oxeye_daisy":{"properties":{},"defaultstate":"minecraft:oxeye_daisy"},"minecraft:packed_ice":{"properties":{},"defaultstate":"minecraft:packed_ice"},"minecraft:peony":{"properties":{"half":{"values":["upper","lower"],"type":"enum"}},"defaultstate":"minecraft:peony[half=lower]"},"minecraft:petrified_oak_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:petrified_oak_slab[type=bottom,waterlogged=false]"},"minecraft:pink_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:pink_banner[rotation=0]"},"minecraft:pink_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:pink_bed[facing=north,occupied=false,part=foot]"},"minecraft:pink_carpet":{"properties":{},"defaultstate":"minecraft:pink_carpet"},"minecraft:pink_concrete":{"properties":{},"defaultstate":"minecraft:pink_concrete"},"minecraft:pink_concrete_powder":{"properties":{},"defaultstate":"minecraft:pink_concrete_powder"},"minecraft:pink_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:pink_glazed_terracotta[facing=north]"},"minecraft:pink_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:pink_shulker_box[facing=up]"},"minecraft:pink_stained_glass":{"properties":{},"defaultstate":"minecraft:pink_stained_glass"},"minecraft:pink_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:pink_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:pink_terracotta":{"properties":{},"defaultstate":"minecraft:pink_terracotta"},"minecraft:pink_tulip":{"properties":{},"defaultstate":"minecraft:pink_tulip"},"minecraft:pink_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:pink_wall_banner[facing=north]"},"minecraft:pink_wool":{"properties":{},"defaultstate":"minecraft:pink_wool"},"minecraft:piston":{"properties":{"extended":{"values":["true","false"],"type":"bool"},"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:piston[extended=false,facing=north]"},"minecraft:piston_head":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"},"short":{"values":["true","false"],"type":"bool"},"type":{"values":["normal","sticky"],"type":"enum"}},"defaultstate":"minecraft:piston_head[facing=north,short=false,type=normal]"},"minecraft:player_head":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:player_head[rotation=0]"},"minecraft:player_wall_head":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:player_wall_head[facing=north]"},"minecraft:podzol":{"properties":{"snowy":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:podzol[snowy=false]"},"minecraft:polished_andesite":{"properties":{},"defaultstate":"minecraft:polished_andesite"},"minecraft:polished_andesite_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:polished_andesite_slab[type=bottom,waterlogged=false]"},"minecraft:polished_andesite_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:polished_andesite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:polished_diorite":{"properties":{},"defaultstate":"minecraft:polished_diorite"},"minecraft:polished_diorite_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:polished_diorite_slab[type=bottom,waterlogged=false]"},"minecraft:polished_diorite_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:polished_diorite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:polished_granite":{"properties":{},"defaultstate":"minecraft:polished_granite"},"minecraft:polished_granite_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:polished_granite_slab[type=bottom,waterlogged=false]"},"minecraft:polished_granite_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:polished_granite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:poppy":{"properties":{},"defaultstate":"minecraft:poppy"},"minecraft:potatoes":{"properties":{"age":{"values":["0","1","2","3","4","5","6","7"],"type":"int"}},"defaultstate":"minecraft:potatoes[age=0]"},"minecraft:potted_acacia_sapling":{"properties":{},"defaultstate":"minecraft:potted_acacia_sapling"},"minecraft:potted_allium":{"properties":{},"defaultstate":"minecraft:potted_allium"},"minecraft:potted_azure_bluet":{"properties":{},"defaultstate":"minecraft:potted_azure_bluet"},"minecraft:potted_bamboo":{"properties":{},"defaultstate":"minecraft:potted_bamboo"},"minecraft:potted_birch_sapling":{"properties":{},"defaultstate":"minecraft:potted_birch_sapling"},"minecraft:potted_blue_orchid":{"properties":{},"defaultstate":"minecraft:potted_blue_orchid"},"minecraft:potted_brown_mushroom":{"properties":{},"defaultstate":"minecraft:potted_brown_mushroom"},"minecraft:potted_cactus":{"properties":{},"defaultstate":"minecraft:potted_cactus"},"minecraft:potted_cornflower":{"properties":{},"defaultstate":"minecraft:potted_cornflower"},"minecraft:potted_dandelion":{"properties":{},"defaultstate":"minecraft:potted_dandelion"},"minecraft:potted_dark_oak_sapling":{"properties":{},"defaultstate":"minecraft:potted_dark_oak_sapling"},"minecraft:potted_dead_bush":{"properties":{},"defaultstate":"minecraft:potted_dead_bush"},"minecraft:potted_fern":{"properties":{},"defaultstate":"minecraft:potted_fern"},"minecraft:potted_jungle_sapling":{"properties":{},"defaultstate":"minecraft:potted_jungle_sapling"},"minecraft:potted_lily_of_the_valley":{"properties":{},"defaultstate":"minecraft:potted_lily_of_the_valley"},"minecraft:potted_oak_sapling":{"properties":{},"defaultstate":"minecraft:potted_oak_sapling"},"minecraft:potted_orange_tulip":{"properties":{},"defaultstate":"minecraft:potted_orange_tulip"},"minecraft:potted_oxeye_daisy":{"properties":{},"defaultstate":"minecraft:potted_oxeye_daisy"},"minecraft:potted_pink_tulip":{"properties":{},"defaultstate":"minecraft:potted_pink_tulip"},"minecraft:potted_poppy":{"properties":{},"defaultstate":"minecraft:potted_poppy"},"minecraft:potted_red_mushroom":{"properties":{},"defaultstate":"minecraft:potted_red_mushroom"},"minecraft:potted_red_tulip":{"properties":{},"defaultstate":"minecraft:potted_red_tulip"},"minecraft:potted_spruce_sapling":{"properties":{},"defaultstate":"minecraft:potted_spruce_sapling"},"minecraft:potted_white_tulip":{"properties":{},"defaultstate":"minecraft:potted_white_tulip"},"minecraft:potted_wither_rose":{"properties":{},"defaultstate":"minecraft:potted_wither_rose"},"minecraft:powered_rail":{"properties":{"powered":{"values":["true","false"],"type":"bool"},"shape":{"values":["north_south","east_west","ascending_east","ascending_west","ascending_north","ascending_south"],"type":"enum"}},"defaultstate":"minecraft:powered_rail[powered=false,shape=north_south]"},"minecraft:prismarine":{"properties":{},"defaultstate":"minecraft:prismarine"},"minecraft:prismarine_brick_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:prismarine_brick_slab[type=bottom,waterlogged=false]"},"minecraft:prismarine_brick_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:prismarine_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:prismarine_bricks":{"properties":{},"defaultstate":"minecraft:prismarine_bricks"},"minecraft:prismarine_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:prismarine_slab[type=bottom,waterlogged=false]"},"minecraft:prismarine_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:prismarine_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:prismarine_wall":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:prismarine_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]"},"minecraft:pumpkin":{"properties":{},"defaultstate":"minecraft:pumpkin"},"minecraft:pumpkin_stem":{"properties":{"age":{"values":["0","1","2","3","4","5","6","7"],"type":"int"}},"defaultstate":"minecraft:pumpkin_stem[age=0]"},"minecraft:purple_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:purple_banner[rotation=0]"},"minecraft:purple_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:purple_bed[facing=north,occupied=false,part=foot]"},"minecraft:purple_carpet":{"properties":{},"defaultstate":"minecraft:purple_carpet"},"minecraft:purple_concrete":{"properties":{},"defaultstate":"minecraft:purple_concrete"},"minecraft:purple_concrete_powder":{"properties":{},"defaultstate":"minecraft:purple_concrete_powder"},"minecraft:purple_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:purple_glazed_terracotta[facing=north]"},"minecraft:purple_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:purple_shulker_box[facing=up]"},"minecraft:purple_stained_glass":{"properties":{},"defaultstate":"minecraft:purple_stained_glass"},"minecraft:purple_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:purple_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:purple_terracotta":{"properties":{},"defaultstate":"minecraft:purple_terracotta"},"minecraft:purple_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:purple_wall_banner[facing=north]"},"minecraft:purple_wool":{"properties":{},"defaultstate":"minecraft:purple_wool"},"minecraft:purpur_block":{"properties":{},"defaultstate":"minecraft:purpur_block"},"minecraft:purpur_pillar":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:purpur_pillar[axis=y]"},"minecraft:purpur_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:purpur_slab[type=bottom,waterlogged=false]"},"minecraft:purpur_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:purpur_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:quartz_block":{"properties":{},"defaultstate":"minecraft:quartz_block"},"minecraft:quartz_pillar":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:quartz_pillar[axis=y]"},"minecraft:quartz_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:quartz_slab[type=bottom,waterlogged=false]"},"minecraft:quartz_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:quartz_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:rail":{"properties":{"shape":{"values":["north_south","east_west","ascending_east","ascending_west","ascending_north","ascending_south","south_east","south_west","north_west","north_east"],"type":"enum"}},"defaultstate":"minecraft:rail[shape=north_south]"},"minecraft:red_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:red_banner[rotation=0]"},"minecraft:red_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:red_bed[facing=north,occupied=false,part=foot]"},"minecraft:red_carpet":{"properties":{},"defaultstate":"minecraft:red_carpet"},"minecraft:red_concrete":{"properties":{},"defaultstate":"minecraft:red_concrete"},"minecraft:red_concrete_powder":{"properties":{},"defaultstate":"minecraft:red_concrete_powder"},"minecraft:red_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:red_glazed_terracotta[facing=north]"},"minecraft:red_mushroom":{"properties":{},"defaultstate":"minecraft:red_mushroom"},"minecraft:red_mushroom_block":{"properties":{"down":{"values":["true","false"],"type":"bool"},"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:red_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true]"},"minecraft:red_nether_brick_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:red_nether_brick_slab[type=bottom,waterlogged=false]"},"minecraft:red_nether_brick_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:red_nether_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:red_nether_brick_wall":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:red_nether_brick_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]"},"minecraft:red_nether_bricks":{"properties":{},"defaultstate":"minecraft:red_nether_bricks"},"minecraft:red_sand":{"properties":{},"defaultstate":"minecraft:red_sand"},"minecraft:red_sandstone":{"properties":{},"defaultstate":"minecraft:red_sandstone"},"minecraft:red_sandstone_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:red_sandstone_slab[type=bottom,waterlogged=false]"},"minecraft:red_sandstone_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:red_sandstone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:red_sandstone_wall":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:red_sandstone_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]"},"minecraft:red_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:red_shulker_box[facing=up]"},"minecraft:red_stained_glass":{"properties":{},"defaultstate":"minecraft:red_stained_glass"},"minecraft:red_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:red_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:red_terracotta":{"properties":{},"defaultstate":"minecraft:red_terracotta"},"minecraft:red_tulip":{"properties":{},"defaultstate":"minecraft:red_tulip"},"minecraft:red_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:red_wall_banner[facing=north]"},"minecraft:red_wool":{"properties":{},"defaultstate":"minecraft:red_wool"},"minecraft:redstone_block":{"properties":{},"defaultstate":"minecraft:redstone_block"},"minecraft:redstone_lamp":{"properties":{"lit":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:redstone_lamp[lit=false]"},"minecraft:redstone_ore":{"properties":{"lit":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:redstone_ore[lit=false]"},"minecraft:redstone_torch":{"properties":{"lit":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:redstone_torch[lit=true]"},"minecraft:redstone_wall_torch":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"lit":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:redstone_wall_torch[facing=north,lit=true]"},"minecraft:redstone_wire":{"properties":{"east":{"values":["up","side","none"],"type":"enum"},"north":{"values":["up","side","none"],"type":"enum"},"power":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"},"south":{"values":["up","side","none"],"type":"enum"},"west":{"values":["up","side","none"],"type":"enum"}},"defaultstate":"minecraft:redstone_wire[east=none,north=none,power=0,south=none,west=none]"},"minecraft:repeater":{"properties":{"delay":{"values":["1","2","3","4"],"type":"int"},"facing":{"values":["north","south","west","east"],"type":"direction"},"locked":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:repeater[delay=1,facing=north,locked=false,powered=false]"},"minecraft:repeating_command_block":{"properties":{"conditional":{"values":["true","false"],"type":"bool"},"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:repeating_command_block[conditional=false,facing=north]"},"minecraft:rose_bush":{"properties":{"half":{"values":["upper","lower"],"type":"enum"}},"defaultstate":"minecraft:rose_bush[half=lower]"},"minecraft:sand":{"properties":{},"defaultstate":"minecraft:sand"},"minecraft:sandstone":{"properties":{},"defaultstate":"minecraft:sandstone"},"minecraft:sandstone_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:sandstone_slab[type=bottom,waterlogged=false]"},"minecraft:sandstone_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:sandstone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:sandstone_wall":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:sandstone_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]"},"minecraft:scaffolding":{"properties":{"bottom":{"values":["true","false"],"type":"bool"},"distance":{"values":["0","1","2","3","4","5","6","7"],"type":"int"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:scaffolding[bottom=false,distance=7,waterlogged=false]"},"minecraft:sea_lantern":{"properties":{},"defaultstate":"minecraft:sea_lantern"},"minecraft:sea_pickle":{"properties":{"pickles":{"values":["1","2","3","4"],"type":"int"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:sea_pickle[pickles=1,waterlogged=true]"},"minecraft:seagrass":{"properties":{},"defaultstate":"minecraft:seagrass"},"minecraft:shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:shulker_box[facing=up]"},"minecraft:skeleton_skull":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:skeleton_skull[rotation=0]"},"minecraft:skeleton_wall_skull":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:skeleton_wall_skull[facing=north]"},"minecraft:slime_block":{"properties":{},"defaultstate":"minecraft:slime_block"},"minecraft:smithing_table":{"properties":{},"defaultstate":"minecraft:smithing_table"},"minecraft:smoker":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"lit":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:smoker[facing=north,lit=false]"},"minecraft:smooth_quartz":{"properties":{},"defaultstate":"minecraft:smooth_quartz"},"minecraft:smooth_quartz_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:smooth_quartz_slab[type=bottom,waterlogged=false]"},"minecraft:smooth_quartz_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:smooth_quartz_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:smooth_red_sandstone":{"properties":{},"defaultstate":"minecraft:smooth_red_sandstone"},"minecraft:smooth_red_sandstone_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:smooth_red_sandstone_slab[type=bottom,waterlogged=false]"},"minecraft:smooth_red_sandstone_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:smooth_red_sandstone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:smooth_sandstone":{"properties":{},"defaultstate":"minecraft:smooth_sandstone"},"minecraft:smooth_sandstone_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:smooth_sandstone_slab[type=bottom,waterlogged=false]"},"minecraft:smooth_sandstone_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:smooth_sandstone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:smooth_stone":{"properties":{},"defaultstate":"minecraft:smooth_stone"},"minecraft:smooth_stone_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:smooth_stone_slab[type=bottom,waterlogged=false]"},"minecraft:snow":{"properties":{"layers":{"values":["1","2","3","4","5","6","7","8"],"type":"int"}},"defaultstate":"minecraft:snow[layers=1]"},"minecraft:snow_block":{"properties":{},"defaultstate":"minecraft:snow_block"},"minecraft:soul_sand":{"properties":{},"defaultstate":"minecraft:soul_sand"},"minecraft:spawner":{"properties":{},"defaultstate":"minecraft:spawner"},"minecraft:sponge":{"properties":{},"defaultstate":"minecraft:sponge"},"minecraft:spruce_button":{"properties":{"face":{"values":["floor","wall","ceiling"],"type":"enum"},"facing":{"values":["north","south","west","east"],"type":"direction"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:spruce_button[face=wall,facing=north,powered=false]"},"minecraft:spruce_door":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["upper","lower"],"type":"enum"},"hinge":{"values":["left","right"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:spruce_door[facing=north,half=lower,hinge=left,open=false,powered=false]"},"minecraft:spruce_fence":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:spruce_fence[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:spruce_fence_gate":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"in_wall":{"values":["true","false"],"type":"bool"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:spruce_fence_gate[facing=north,in_wall=false,open=false,powered=false]"},"minecraft:spruce_leaves":{"properties":{"distance":{"values":["1","2","3","4","5","6","7"],"type":"int"},"persistent":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:spruce_leaves[distance=7,persistent=false]"},"minecraft:spruce_log":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:spruce_log[axis=y]"},"minecraft:spruce_planks":{"properties":{},"defaultstate":"minecraft:spruce_planks"},"minecraft:spruce_pressure_plate":{"properties":{"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:spruce_pressure_plate[powered=false]"},"minecraft:spruce_sapling":{"properties":{"stage":{"values":["0","1"],"type":"int"}},"defaultstate":"minecraft:spruce_sapling[stage=0]"},"minecraft:spruce_sign":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:spruce_sign[rotation=0,waterlogged=false]"},"minecraft:spruce_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:spruce_slab[type=bottom,waterlogged=false]"},"minecraft:spruce_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:spruce_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:spruce_trapdoor":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:spruce_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]"},"minecraft:spruce_wall_sign":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:spruce_wall_sign[facing=north,waterlogged=false]"},"minecraft:spruce_wood":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:spruce_wood[axis=y]"},"minecraft:sticky_piston":{"properties":{"extended":{"values":["true","false"],"type":"bool"},"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:sticky_piston[extended=false,facing=north]"},"minecraft:stone":{"properties":{},"defaultstate":"minecraft:stone"},"minecraft:stone_brick_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:stone_brick_slab[type=bottom,waterlogged=false]"},"minecraft:stone_brick_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:stone_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:stone_brick_wall":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:stone_brick_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]"},"minecraft:stone_bricks":{"properties":{},"defaultstate":"minecraft:stone_bricks"},"minecraft:stone_button":{"properties":{"face":{"values":["floor","wall","ceiling"],"type":"enum"},"facing":{"values":["north","south","west","east"],"type":"direction"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:stone_button[face=wall,facing=north,powered=false]"},"minecraft:stone_pressure_plate":{"properties":{"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:stone_pressure_plate[powered=false]"},"minecraft:stone_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:stone_slab[type=bottom,waterlogged=false]"},"minecraft:stone_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:stone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:stonecutter":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:stonecutter[facing=north]"},"minecraft:stripped_acacia_log":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:stripped_acacia_log[axis=y]"},"minecraft:stripped_acacia_wood":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:stripped_acacia_wood[axis=y]"},"minecraft:stripped_birch_log":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:stripped_birch_log[axis=y]"},"minecraft:stripped_birch_wood":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:stripped_birch_wood[axis=y]"},"minecraft:stripped_dark_oak_log":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:stripped_dark_oak_log[axis=y]"},"minecraft:stripped_dark_oak_wood":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:stripped_dark_oak_wood[axis=y]"},"minecraft:stripped_jungle_log":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:stripped_jungle_log[axis=y]"},"minecraft:stripped_jungle_wood":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:stripped_jungle_wood[axis=y]"},"minecraft:stripped_oak_log":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:stripped_oak_log[axis=y]"},"minecraft:stripped_oak_wood":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:stripped_oak_wood[axis=y]"},"minecraft:stripped_spruce_log":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:stripped_spruce_log[axis=y]"},"minecraft:stripped_spruce_wood":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:stripped_spruce_wood[axis=y]"},"minecraft:structure_block":{"properties":{"mode":{"values":["save","load","corner","data"],"type":"enum"}},"defaultstate":"minecraft:structure_block[mode=save]"},"minecraft:structure_void":{"properties":{},"defaultstate":"minecraft:structure_void"},"minecraft:sugar_cane":{"properties":{"age":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:sugar_cane[age=0]"},"minecraft:sunflower":{"properties":{"half":{"values":["upper","lower"],"type":"enum"}},"defaultstate":"minecraft:sunflower[half=lower]"},"minecraft:sweet_berry_bush":{"properties":{"age":{"values":["0","1","2","3"],"type":"int"}},"defaultstate":"minecraft:sweet_berry_bush[age=0]"},"minecraft:tall_grass":{"properties":{"half":{"values":["upper","lower"],"type":"enum"}},"defaultstate":"minecraft:tall_grass[half=lower]"},"minecraft:tall_seagrass":{"properties":{"half":{"values":["upper","lower"],"type":"enum"}},"defaultstate":"minecraft:tall_seagrass[half=lower]"},"minecraft:terracotta":{"properties":{},"defaultstate":"minecraft:terracotta"},"minecraft:tnt":{"properties":{"unstable":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:tnt[unstable=false]"},"minecraft:torch":{"properties":{},"defaultstate":"minecraft:torch"},"minecraft:trapped_chest":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"type":{"values":["single","left","right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:trapped_chest[facing=north,type=single,waterlogged=false]"},"minecraft:tripwire":{"properties":{"attached":{"values":["true","false"],"type":"bool"},"disarmed":{"values":["true","false"],"type":"bool"},"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:tripwire[attached=false,disarmed=false,east=false,north=false,powered=false,south=false,west=false]"},"minecraft:tripwire_hook":{"properties":{"attached":{"values":["true","false"],"type":"bool"},"facing":{"values":["north","south","west","east"],"type":"direction"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:tripwire_hook[attached=false,facing=north,powered=false]"},"minecraft:tube_coral":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:tube_coral[waterlogged=true]"},"minecraft:tube_coral_block":{"properties":{},"defaultstate":"minecraft:tube_coral_block"},"minecraft:tube_coral_fan":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:tube_coral_fan[waterlogged=true]"},"minecraft:tube_coral_wall_fan":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:tube_coral_wall_fan[facing=north,waterlogged=true]"},"minecraft:turtle_egg":{"properties":{"eggs":{"values":["1","2","3","4"],"type":"int"},"hatch":{"values":["0","1","2"],"type":"int"}},"defaultstate":"minecraft:turtle_egg[eggs=1,hatch=0]"},"minecraft:vine":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:vine[east=false,north=false,south=false,up=false,west=false]"},"minecraft:void_air":{"properties":{},"defaultstate":"minecraft:void_air"},"minecraft:wall_torch":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:wall_torch[facing=north]"},"minecraft:water":{"properties":{"level":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:water[level=0]"},"minecraft:wet_sponge":{"properties":{},"defaultstate":"minecraft:wet_sponge"},"minecraft:wheat":{"properties":{"age":{"values":["0","1","2","3","4","5","6","7"],"type":"int"}},"defaultstate":"minecraft:wheat[age=0]"},"minecraft:white_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:white_banner[rotation=0]"},"minecraft:white_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:white_bed[facing=north,occupied=false,part=foot]"},"minecraft:white_carpet":{"properties":{},"defaultstate":"minecraft:white_carpet"},"minecraft:white_concrete":{"properties":{},"defaultstate":"minecraft:white_concrete"},"minecraft:white_concrete_powder":{"properties":{},"defaultstate":"minecraft:white_concrete_powder"},"minecraft:white_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:white_glazed_terracotta[facing=north]"},"minecraft:white_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:white_shulker_box[facing=up]"},"minecraft:white_stained_glass":{"properties":{},"defaultstate":"minecraft:white_stained_glass"},"minecraft:white_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:white_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:white_terracotta":{"properties":{},"defaultstate":"minecraft:white_terracotta"},"minecraft:white_tulip":{"properties":{},"defaultstate":"minecraft:white_tulip"},"minecraft:white_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:white_wall_banner[facing=north]"},"minecraft:white_wool":{"properties":{},"defaultstate":"minecraft:white_wool"},"minecraft:wither_rose":{"properties":{},"defaultstate":"minecraft:wither_rose"},"minecraft:wither_skeleton_skull":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:wither_skeleton_skull[rotation=0]"},"minecraft:wither_skeleton_wall_skull":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:wither_skeleton_wall_skull[facing=north]"},"minecraft:yellow_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:yellow_banner[rotation=0]"},"minecraft:yellow_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:yellow_bed[facing=north,occupied=false,part=foot]"},"minecraft:yellow_carpet":{"properties":{},"defaultstate":"minecraft:yellow_carpet"},"minecraft:yellow_concrete":{"properties":{},"defaultstate":"minecraft:yellow_concrete"},"minecraft:yellow_concrete_powder":{"properties":{},"defaultstate":"minecraft:yellow_concrete_powder"},"minecraft:yellow_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:yellow_glazed_terracotta[facing=north]"},"minecraft:yellow_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:yellow_shulker_box[facing=up]"},"minecraft:yellow_stained_glass":{"properties":{},"defaultstate":"minecraft:yellow_stained_glass"},"minecraft:yellow_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:yellow_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:yellow_terracotta":{"properties":{},"defaultstate":"minecraft:yellow_terracotta"},"minecraft:yellow_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:yellow_wall_banner[facing=north]"},"minecraft:yellow_wool":{"properties":{},"defaultstate":"minecraft:yellow_wool"},"minecraft:zombie_head":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:zombie_head[rotation=0]"},"minecraft:zombie_wall_head":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:zombie_wall_head[facing=north]"}},"items":["minecraft:acacia_boat","minecraft:acacia_button","minecraft:acacia_door","minecraft:acacia_fence","minecraft:acacia_fence_gate","minecraft:acacia_leaves","minecraft:acacia_log","minecraft:acacia_planks","minecraft:acacia_pressure_plate","minecraft:acacia_sapling","minecraft:acacia_sign","minecraft:acacia_slab","minecraft:acacia_stairs","minecraft:acacia_trapdoor","minecraft:acacia_wood","minecraft:activator_rail","minecraft:air","minecraft:allium","minecraft:andesite","minecraft:andesite_slab","minecraft:andesite_stairs","minecraft:andesite_wall","minecraft:anvil","minecraft:apple","minecraft:armor_stand","minecraft:arrow","minecraft:azure_bluet","minecraft:baked_potato","minecraft:bamboo","minecraft:barrel","minecraft:barrier","minecraft:bat_spawn_egg","minecraft:beacon","minecraft:bedrock","minecraft:beef","minecraft:beetroot","minecraft:beetroot_seeds","minecraft:beetroot_soup","minecraft:bell","minecraft:birch_boat","minecraft:birch_button","minecraft:birch_door","minecraft:birch_fence","minecraft:birch_fence_gate","minecraft:birch_leaves","minecraft:birch_log","minecraft:birch_planks","minecraft:birch_pressure_plate","minecraft:birch_sapling","minecraft:birch_sign","minecraft:birch_slab","minecraft:birch_stairs","minecraft:birch_trapdoor","minecraft:birch_wood","minecraft:black_banner","minecraft:black_bed","minecraft:black_carpet","minecraft:black_concrete","minecraft:black_concrete_powder","minecraft:black_dye","minecraft:black_glazed_terracotta","minecraft:black_shulker_box","minecraft:black_stained_glass","minecraft:black_stained_glass_pane","minecraft:black_terracotta","minecraft:black_wool","minecraft:blast_furnace","minecraft:blaze_powder","minecraft:blaze_rod","minecraft:blaze_spawn_egg","minecraft:blue_banner","minecraft:blue_bed","minecraft:blue_carpet","minecraft:blue_concrete","minecraft:blue_concrete_powder","minecraft:blue_dye","minecraft:blue_glazed_terracotta","minecraft:blue_ice","minecraft:blue_orchid","minecraft:blue_shulker_box","minecraft:blue_stained_glass","minecraft:blue_stained_glass_pane","minecraft:blue_terracotta","minecraft:blue_wool","minecraft:bone","minecraft:bone_block","minecraft:bone_meal","minecraft:book","minecraft:bookshelf","minecraft:bow","minecraft:bowl","minecraft:brain_coral","minecraft:brain_coral_block","minecraft:brain_coral_fan","minecraft:bread","minecraft:brewing_stand","minecraft:brick","minecraft:brick_slab","minecraft:brick_stairs","minecraft:brick_wall","minecraft:bricks","minecraft:brown_banner","minecraft:brown_bed","minecraft:brown_carpet","minecraft:brown_concrete","minecraft:brown_concrete_powder","minecraft:brown_dye","minecraft:brown_glazed_terracotta","minecraft:brown_mushroom","minecraft:brown_mushroom_block","minecraft:brown_shulker_box","minecraft:brown_stained_glass","minecraft:brown_stained_glass_pane","minecraft:brown_terracotta","minecraft:brown_wool","minecraft:bubble_coral","minecraft:bubble_coral_block","minecraft:bubble_coral_fan","minecraft:bucket","minecraft:cactus","minecraft:cake","minecraft:campfire","minecraft:carrot","minecraft:carrot_on_a_stick","minecraft:cartography_table","minecraft:carved_pumpkin","minecraft:cat_spawn_egg","minecraft:cauldron","minecraft:cave_spider_spawn_egg","minecraft:chain_command_block","minecraft:chainmail_boots","minecraft:chainmail_chestplate","minecraft:chainmail_helmet","minecraft:chainmail_leggings","minecraft:charcoal","minecraft:chest","minecraft:chest_minecart","minecraft:chicken","minecraft:chicken_spawn_egg","minecraft:chipped_anvil","minecraft:chiseled_quartz_block","minecraft:chiseled_red_sandstone","minecraft:chiseled_sandstone","minecraft:chiseled_stone_bricks","minecraft:chorus_flower","minecraft:chorus_fruit","minecraft:chorus_plant","minecraft:clay","minecraft:clay_ball","minecraft:clock","minecraft:coal","minecraft:coal_block","minecraft:coal_ore","minecraft:coarse_dirt","minecraft:cobblestone","minecraft:cobblestone_slab","minecraft:cobblestone_stairs","minecraft:cobblestone_wall","minecraft:cobweb","minecraft:cocoa_beans","minecraft:cod","minecraft:cod_bucket","minecraft:cod_spawn_egg","minecraft:command_block","minecraft:command_block_minecart","minecraft:comparator","minecraft:compass","minecraft:composter","minecraft:conduit","minecraft:cooked_beef","minecraft:cooked_chicken","minecraft:cooked_cod","minecraft:cooked_mutton","minecraft:cooked_porkchop","minecraft:cooked_rabbit","minecraft:cooked_salmon","minecraft:cookie","minecraft:cornflower","minecraft:cow_spawn_egg","minecraft:cracked_stone_bricks","minecraft:crafting_table","minecraft:creeper_banner_pattern","minecraft:creeper_head","minecraft:creeper_spawn_egg","minecraft:crossbow","minecraft:cut_red_sandstone","minecraft:cut_red_sandstone_slab","minecraft:cut_sandstone","minecraft:cut_sandstone_slab","minecraft:cyan_banner","minecraft:cyan_bed","minecraft:cyan_carpet","minecraft:cyan_concrete","minecraft:cyan_concrete_powder","minecraft:cyan_dye","minecraft:cyan_glazed_terracotta","minecraft:cyan_shulker_box","minecraft:cyan_stained_glass","minecraft:cyan_stained_glass_pane","minecraft:cyan_terracotta","minecraft:cyan_wool","minecraft:damaged_anvil","minecraft:dandelion","minecraft:dark_oak_boat","minecraft:dark_oak_button","minecraft:dark_oak_door","minecraft:dark_oak_fence","minecraft:dark_oak_fence_gate","minecraft:dark_oak_leaves","minecraft:dark_oak_log","minecraft:dark_oak_planks","minecraft:dark_oak_pressure_plate","minecraft:dark_oak_sapling","minecraft:dark_oak_sign","minecraft:dark_oak_slab","minecraft:dark_oak_stairs","minecraft:dark_oak_trapdoor","minecraft:dark_oak_wood","minecraft:dark_prismarine","minecraft:dark_prismarine_slab","minecraft:dark_prismarine_stairs","minecraft:daylight_detector","minecraft:dead_brain_coral","minecraft:dead_brain_coral_block","minecraft:dead_brain_coral_fan","minecraft:dead_bubble_coral","minecraft:dead_bubble_coral_block","minecraft:dead_bubble_coral_fan","minecraft:dead_bush","minecraft:dead_fire_coral","minecraft:dead_fire_coral_block","minecraft:dead_fire_coral_fan","minecraft:dead_horn_coral","minecraft:dead_horn_coral_block","minecraft:dead_horn_coral_fan","minecraft:dead_tube_coral","minecraft:dead_tube_coral_block","minecraft:dead_tube_coral_fan","minecraft:debug_stick","minecraft:detector_rail","minecraft:diamond","minecraft:diamond_axe","minecraft:diamond_block","minecraft:diamond_boots","minecraft:diamond_chestplate","minecraft:diamond_helmet","minecraft:diamond_hoe","minecraft:diamond_horse_armor","minecraft:diamond_leggings","minecraft:diamond_ore","minecraft:diamond_pickaxe","minecraft:diamond_shovel","minecraft:diamond_sword","minecraft:diorite","minecraft:diorite_slab","minecraft:diorite_stairs","minecraft:diorite_wall","minecraft:dirt","minecraft:dispenser","minecraft:dolphin_spawn_egg","minecraft:donkey_spawn_egg","minecraft:dragon_breath","minecraft:dragon_egg","minecraft:dragon_head","minecraft:dried_kelp","minecraft:dried_kelp_block","minecraft:dropper","minecraft:drowned_spawn_egg","minecraft:egg","minecraft:elder_guardian_spawn_egg","minecraft:elytra","minecraft:emerald","minecraft:emerald_block","minecraft:emerald_ore","minecraft:enchanted_book","minecraft:enchanted_golden_apple","minecraft:enchanting_table","minecraft:end_crystal","minecraft:end_portal_frame","minecraft:end_rod","minecraft:end_stone","minecraft:end_stone_brick_slab","minecraft:end_stone_brick_stairs","minecraft:end_stone_brick_wall","minecraft:end_stone_bricks","minecraft:ender_chest","minecraft:ender_eye","minecraft:ender_pearl","minecraft:enderman_spawn_egg","minecraft:endermite_spawn_egg","minecraft:evoker_spawn_egg","minecraft:experience_bottle","minecraft:farmland","minecraft:feather","minecraft:fermented_spider_eye","minecraft:fern","minecraft:filled_map","minecraft:fire_charge","minecraft:fire_coral","minecraft:fire_coral_block","minecraft:fire_coral_fan","minecraft:firework_rocket","minecraft:firework_star","minecraft:fishing_rod","minecraft:fletching_table","minecraft:flint","minecraft:flint_and_steel","minecraft:flower_banner_pattern","minecraft:flower_pot","minecraft:fox_spawn_egg","minecraft:furnace","minecraft:furnace_minecart","minecraft:ghast_spawn_egg","minecraft:ghast_tear","minecraft:glass","minecraft:glass_bottle","minecraft:glass_pane","minecraft:glistering_melon_slice","minecraft:globe_banner_pattern","minecraft:glowstone","minecraft:glowstone_dust","minecraft:gold_block","minecraft:gold_ingot","minecraft:gold_nugget","minecraft:gold_ore","minecraft:golden_apple","minecraft:golden_axe","minecraft:golden_boots","minecraft:golden_carrot","minecraft:golden_chestplate","minecraft:golden_helmet","minecraft:golden_hoe","minecraft:golden_horse_armor","minecraft:golden_leggings","minecraft:golden_pickaxe","minecraft:golden_shovel","minecraft:golden_sword","minecraft:granite","minecraft:granite_slab","minecraft:granite_stairs","minecraft:granite_wall","minecraft:grass","minecraft:grass_block","minecraft:grass_path","minecraft:gravel","minecraft:gray_banner","minecraft:gray_bed","minecraft:gray_carpet","minecraft:gray_concrete","minecraft:gray_concrete_powder","minecraft:gray_dye","minecraft:gray_glazed_terracotta","minecraft:gray_shulker_box","minecraft:gray_stained_glass","minecraft:gray_stained_glass_pane","minecraft:gray_terracotta","minecraft:gray_wool","minecraft:green_banner","minecraft:green_bed","minecraft:green_carpet","minecraft:green_concrete","minecraft:green_concrete_powder","minecraft:green_dye","minecraft:green_glazed_terracotta","minecraft:green_shulker_box","minecraft:green_stained_glass","minecraft:green_stained_glass_pane","minecraft:green_terracotta","minecraft:green_wool","minecraft:grindstone","minecraft:guardian_spawn_egg","minecraft:gunpowder","minecraft:hay_block","minecraft:heart_of_the_sea","minecraft:heavy_weighted_pressure_plate","minecraft:hopper","minecraft:hopper_minecart","minecraft:horn_coral","minecraft:horn_coral_block","minecraft:horn_coral_fan","minecraft:horse_spawn_egg","minecraft:husk_spawn_egg","minecraft:ice","minecraft:infested_chiseled_stone_bricks","minecraft:infested_cobblestone","minecraft:infested_cracked_stone_bricks","minecraft:infested_mossy_stone_bricks","minecraft:infested_stone","minecraft:infested_stone_bricks","minecraft:ink_sac","minecraft:iron_axe","minecraft:iron_bars","minecraft:iron_block","minecraft:iron_boots","minecraft:iron_chestplate","minecraft:iron_door","minecraft:iron_helmet","minecraft:iron_hoe","minecraft:iron_horse_armor","minecraft:iron_ingot","minecraft:iron_leggings","minecraft:iron_nugget","minecraft:iron_ore","minecraft:iron_pickaxe","minecraft:iron_shovel","minecraft:iron_sword","minecraft:iron_trapdoor","minecraft:item_frame","minecraft:jack_o_lantern","minecraft:jigsaw","minecraft:jukebox","minecraft:jungle_boat","minecraft:jungle_button","minecraft:jungle_door","minecraft:jungle_fence","minecraft:jungle_fence_gate","minecraft:jungle_leaves","minecraft:jungle_log","minecraft:jungle_planks","minecraft:jungle_pressure_plate","minecraft:jungle_sapling","minecraft:jungle_sign","minecraft:jungle_slab","minecraft:jungle_stairs","minecraft:jungle_trapdoor","minecraft:jungle_wood","minecraft:kelp","minecraft:knowledge_book","minecraft:ladder","minecraft:lantern","minecraft:lapis_block","minecraft:lapis_lazuli","minecraft:lapis_ore","minecraft:large_fern","minecraft:lava_bucket","minecraft:lead","minecraft:leather","minecraft:leather_boots","minecraft:leather_chestplate","minecraft:leather_helmet","minecraft:leather_horse_armor","minecraft:leather_leggings","minecraft:lectern","minecraft:lever","minecraft:light_blue_banner","minecraft:light_blue_bed","minecraft:light_blue_carpet","minecraft:light_blue_concrete","minecraft:light_blue_concrete_powder","minecraft:light_blue_dye","minecraft:light_blue_glazed_terracotta","minecraft:light_blue_shulker_box","minecraft:light_blue_stained_glass","minecraft:light_blue_stained_glass_pane","minecraft:light_blue_terracotta","minecraft:light_blue_wool","minecraft:light_gray_banner","minecraft:light_gray_bed","minecraft:light_gray_carpet","minecraft:light_gray_concrete","minecraft:light_gray_concrete_powder","minecraft:light_gray_dye","minecraft:light_gray_glazed_terracotta","minecraft:light_gray_shulker_box","minecraft:light_gray_stained_glass","minecraft:light_gray_stained_glass_pane","minecraft:light_gray_terracotta","minecraft:light_gray_wool","minecraft:light_weighted_pressure_plate","minecraft:lilac","minecraft:lily_of_the_valley","minecraft:lily_pad","minecraft:lime_banner","minecraft:lime_bed","minecraft:lime_carpet","minecraft:lime_concrete","minecraft:lime_concrete_powder","minecraft:lime_dye","minecraft:lime_glazed_terracotta","minecraft:lime_shulker_box","minecraft:lime_stained_glass","minecraft:lime_stained_glass_pane","minecraft:lime_terracotta","minecraft:lime_wool","minecraft:lingering_potion","minecraft:llama_spawn_egg","minecraft:loom","minecraft:magenta_banner","minecraft:magenta_bed","minecraft:magenta_carpet","minecraft:magenta_concrete","minecraft:magenta_concrete_powder","minecraft:magenta_dye","minecraft:magenta_glazed_terracotta","minecraft:magenta_shulker_box","minecraft:magenta_stained_glass","minecraft:magenta_stained_glass_pane","minecraft:magenta_terracotta","minecraft:magenta_wool","minecraft:magma_block","minecraft:magma_cream","minecraft:magma_cube_spawn_egg","minecraft:map","minecraft:melon","minecraft:melon_seeds","minecraft:melon_slice","minecraft:milk_bucket","minecraft:minecart","minecraft:mojang_banner_pattern","minecraft:mooshroom_spawn_egg","minecraft:mossy_cobblestone","minecraft:mossy_cobblestone_slab","minecraft:mossy_cobblestone_stairs","minecraft:mossy_cobblestone_wall","minecraft:mossy_stone_brick_slab","minecraft:mossy_stone_brick_stairs","minecraft:mossy_stone_brick_wall","minecraft:mossy_stone_bricks","minecraft:mule_spawn_egg","minecraft:mushroom_stem","minecraft:mushroom_stew","minecraft:music_disc_11","minecraft:music_disc_13","minecraft:music_disc_blocks","minecraft:music_disc_cat","minecraft:music_disc_chirp","minecraft:music_disc_far","minecraft:music_disc_mall","minecraft:music_disc_mellohi","minecraft:music_disc_stal","minecraft:music_disc_strad","minecraft:music_disc_wait","minecraft:music_disc_ward","minecraft:mutton","minecraft:mycelium","minecraft:name_tag","minecraft:nautilus_shell","minecraft:nether_brick","minecraft:nether_brick_fence","minecraft:nether_brick_slab","minecraft:nether_brick_stairs","minecraft:nether_brick_wall","minecraft:nether_bricks","minecraft:nether_quartz_ore","minecraft:nether_star","minecraft:nether_wart","minecraft:nether_wart_block","minecraft:netherrack","minecraft:note_block","minecraft:oak_boat","minecraft:oak_button","minecraft:oak_door","minecraft:oak_fence","minecraft:oak_fence_gate","minecraft:oak_leaves","minecraft:oak_log","minecraft:oak_planks","minecraft:oak_pressure_plate","minecraft:oak_sapling","minecraft:oak_sign","minecraft:oak_slab","minecraft:oak_stairs","minecraft:oak_trapdoor","minecraft:oak_wood","minecraft:observer","minecraft:obsidian","minecraft:ocelot_spawn_egg","minecraft:orange_banner","minecraft:orange_bed","minecraft:orange_carpet","minecraft:orange_concrete","minecraft:orange_concrete_powder","minecraft:orange_dye","minecraft:orange_glazed_terracotta","minecraft:orange_shulker_box","minecraft:orange_stained_glass","minecraft:orange_stained_glass_pane","minecraft:orange_terracotta","minecraft:orange_tulip","minecraft:orange_wool","minecraft:oxeye_daisy","minecraft:packed_ice","minecraft:painting","minecraft:panda_spawn_egg","minecraft:paper","minecraft:parrot_spawn_egg","minecraft:peony","minecraft:petrified_oak_slab","minecraft:phantom_membrane","minecraft:phantom_spawn_egg","minecraft:pig_spawn_egg","minecraft:pillager_spawn_egg","minecraft:pink_banner","minecraft:pink_bed","minecraft:pink_carpet","minecraft:pink_concrete","minecraft:pink_concrete_powder","minecraft:pink_dye","minecraft:pink_glazed_terracotta","minecraft:pink_shulker_box","minecraft:pink_stained_glass","minecraft:pink_stained_glass_pane","minecraft:pink_terracotta","minecraft:pink_tulip","minecraft:pink_wool","minecraft:piston","minecraft:player_head","minecraft:podzol","minecraft:poisonous_potato","minecraft:polar_bear_spawn_egg","minecraft:polished_andesite","minecraft:polished_andesite_slab","minecraft:polished_andesite_stairs","minecraft:polished_diorite","minecraft:polished_diorite_slab","minecraft:polished_diorite_stairs","minecraft:polished_granite","minecraft:polished_granite_slab","minecraft:polished_granite_stairs","minecraft:popped_chorus_fruit","minecraft:poppy","minecraft:porkchop","minecraft:potato","minecraft:potion","minecraft:powered_rail","minecraft:prismarine","minecraft:prismarine_brick_slab","minecraft:prismarine_brick_stairs","minecraft:prismarine_bricks","minecraft:prismarine_crystals","minecraft:prismarine_shard","minecraft:prismarine_slab","minecraft:prismarine_stairs","minecraft:prismarine_wall","minecraft:pufferfish","minecraft:pufferfish_bucket","minecraft:pufferfish_spawn_egg","minecraft:pumpkin","minecraft:pumpkin_pie","minecraft:pumpkin_seeds","minecraft:purple_banner","minecraft:purple_bed","minecraft:purple_carpet","minecraft:purple_concrete","minecraft:purple_concrete_powder","minecraft:purple_dye","minecraft:purple_glazed_terracotta","minecraft:purple_shulker_box","minecraft:purple_stained_glass","minecraft:purple_stained_glass_pane","minecraft:purple_terracotta","minecraft:purple_wool","minecraft:purpur_block","minecraft:purpur_pillar","minecraft:purpur_slab","minecraft:purpur_stairs","minecraft:quartz","minecraft:quartz_block","minecraft:quartz_pillar","minecraft:quartz_slab","minecraft:quartz_stairs","minecraft:rabbit","minecraft:rabbit_foot","minecraft:rabbit_hide","minecraft:rabbit_spawn_egg","minecraft:rabbit_stew","minecraft:rail","minecraft:ravager_spawn_egg","minecraft:red_banner","minecraft:red_bed","minecraft:red_carpet","minecraft:red_concrete","minecraft:red_concrete_powder","minecraft:red_dye","minecraft:red_glazed_terracotta","minecraft:red_mushroom","minecraft:red_mushroom_block","minecraft:red_nether_brick_slab","minecraft:red_nether_brick_stairs","minecraft:red_nether_brick_wall","minecraft:red_nether_bricks","minecraft:red_sand","minecraft:red_sandstone","minecraft:red_sandstone_slab","minecraft:red_sandstone_stairs","minecraft:red_sandstone_wall","minecraft:red_shulker_box","minecraft:red_stained_glass","minecraft:red_stained_glass_pane","minecraft:red_terracotta","minecraft:red_tulip","minecraft:red_wool","minecraft:redstone","minecraft:redstone_block","minecraft:redstone_lamp","minecraft:redstone_ore","minecraft:redstone_torch","minecraft:repeater","minecraft:repeating_command_block","minecraft:rose_bush","minecraft:rotten_flesh","minecraft:saddle","minecraft:salmon","minecraft:salmon_bucket","minecraft:salmon_spawn_egg","minecraft:sand","minecraft:sandstone","minecraft:sandstone_slab","minecraft:sandstone_stairs","minecraft:sandstone_wall","minecraft:scaffolding","minecraft:scute","minecraft:sea_lantern","minecraft:sea_pickle","minecraft:seagrass","minecraft:shears","minecraft:sheep_spawn_egg","minecraft:shield","minecraft:shulker_box","minecraft:shulker_shell","minecraft:shulker_spawn_egg","minecraft:silverfish_spawn_egg","minecraft:skeleton_horse_spawn_egg","minecraft:skeleton_skull","minecraft:skeleton_spawn_egg","minecraft:skull_banner_pattern","minecraft:slime_ball","minecraft:slime_block","minecraft:slime_spawn_egg","minecraft:smithing_table","minecraft:smoker","minecraft:smooth_quartz","minecraft:smooth_quartz_slab","minecraft:smooth_quartz_stairs","minecraft:smooth_red_sandstone","minecraft:smooth_red_sandstone_slab","minecraft:smooth_red_sandstone_stairs","minecraft:smooth_sandstone","minecraft:smooth_sandstone_slab","minecraft:smooth_sandstone_stairs","minecraft:smooth_stone","minecraft:smooth_stone_slab","minecraft:snow","minecraft:snow_block","minecraft:snowball","minecraft:soul_sand","minecraft:spawner","minecraft:spectral_arrow","minecraft:spider_eye","minecraft:spider_spawn_egg","minecraft:splash_potion","minecraft:sponge","minecraft:spruce_boat","minecraft:spruce_button","minecraft:spruce_door","minecraft:spruce_fence","minecraft:spruce_fence_gate","minecraft:spruce_leaves","minecraft:spruce_log","minecraft:spruce_planks","minecraft:spruce_pressure_plate","minecraft:spruce_sapling","minecraft:spruce_sign","minecraft:spruce_slab","minecraft:spruce_stairs","minecraft:spruce_trapdoor","minecraft:spruce_wood","minecraft:squid_spawn_egg","minecraft:stick","minecraft:sticky_piston","minecraft:stone","minecraft:stone_axe","minecraft:stone_brick_slab","minecraft:stone_brick_stairs","minecraft:stone_brick_wall","minecraft:stone_bricks","minecraft:stone_button","minecraft:stone_hoe","minecraft:stone_pickaxe","minecraft:stone_pressure_plate","minecraft:stone_shovel","minecraft:stone_slab","minecraft:stone_stairs","minecraft:stone_sword","minecraft:stonecutter","minecraft:stray_spawn_egg","minecraft:string","minecraft:stripped_acacia_log","minecraft:stripped_acacia_wood","minecraft:stripped_birch_log","minecraft:stripped_birch_wood","minecraft:stripped_dark_oak_log","minecraft:stripped_dark_oak_wood","minecraft:stripped_jungle_log","minecraft:stripped_jungle_wood","minecraft:stripped_oak_log","minecraft:stripped_oak_wood","minecraft:stripped_spruce_log","minecraft:stripped_spruce_wood","minecraft:structure_block","minecraft:structure_void","minecraft:sugar","minecraft:sugar_cane","minecraft:sunflower","minecraft:suspicious_stew","minecraft:sweet_berries","minecraft:tall_grass","minecraft:terracotta","minecraft:tipped_arrow","minecraft:tnt","minecraft:tnt_minecart","minecraft:torch","minecraft:totem_of_undying","minecraft:trader_llama_spawn_egg","minecraft:trapped_chest","minecraft:trident","minecraft:tripwire_hook","minecraft:tropical_fish","minecraft:tropical_fish_bucket","minecraft:tropical_fish_spawn_egg","minecraft:tube_coral","minecraft:tube_coral_block","minecraft:tube_coral_fan","minecraft:turtle_egg","minecraft:turtle_helmet","minecraft:turtle_spawn_egg","minecraft:vex_spawn_egg","minecraft:villager_spawn_egg","minecraft:vindicator_spawn_egg","minecraft:vine","minecraft:wandering_trader_spawn_egg","minecraft:water_bucket","minecraft:wet_sponge","minecraft:wheat","minecraft:wheat_seeds","minecraft:white_banner","minecraft:white_bed","minecraft:white_carpet","minecraft:white_concrete","minecraft:white_concrete_powder","minecraft:white_dye","minecraft:white_glazed_terracotta","minecraft:white_shulker_box","minecraft:white_stained_glass","minecraft:white_stained_glass_pane","minecraft:white_terracotta","minecraft:white_tulip","minecraft:white_wool","minecraft:witch_spawn_egg","minecraft:wither_rose","minecraft:wither_skeleton_skull","minecraft:wither_skeleton_spawn_egg","minecraft:wolf_spawn_egg","minecraft:wooden_axe","minecraft:wooden_hoe","minecraft:wooden_pickaxe","minecraft:wooden_shovel","minecraft:wooden_sword","minecraft:writable_book","minecraft:written_book","minecraft:yellow_banner","minecraft:yellow_bed","minecraft:yellow_carpet","minecraft:yellow_concrete","minecraft:yellow_concrete_powder","minecraft:yellow_dye","minecraft:yellow_glazed_terracotta","minecraft:yellow_shulker_box","minecraft:yellow_stained_glass","minecraft:yellow_stained_glass_pane","minecraft:yellow_terracotta","minecraft:yellow_wool","minecraft:zombie_head","minecraft:zombie_horse_spawn_egg","minecraft:zombie_pigman_spawn_egg","minecraft:zombie_spawn_egg","minecraft:zombie_villager_spawn_egg"],"entities":["minecraft:area_effect_cloud","minecraft:armor_stand","minecraft:arrow","minecraft:bat","minecraft:blaze","minecraft:boat","minecraft:cat","minecraft:cave_spider","minecraft:chest_minecart","minecraft:chicken","minecraft:cod","minecraft:command_block_minecart","minecraft:cow","minecraft:creeper","minecraft:dolphin","minecraft:donkey","minecraft:dragon_fireball","minecraft:drowned","minecraft:egg","minecraft:elder_guardian","minecraft:end_crystal","minecraft:ender_dragon","minecraft:ender_pearl","minecraft:enderman","minecraft:endermite","minecraft:evoker","minecraft:evoker_fangs","minecraft:experience_bottle","minecraft:experience_orb","minecraft:eye_of_ender","minecraft:falling_block","minecraft:fireball","minecraft:firework_rocket","minecraft:fishing_bobber","minecraft:fox","minecraft:furnace_minecart","minecraft:ghast","minecraft:giant","minecraft:guardian","minecraft:hopper_minecart","minecraft:horse","minecraft:husk","minecraft:illusioner","minecraft:iron_golem","minecraft:item","minecraft:item_frame","minecraft:leash_knot","minecraft:lightning_bolt","minecraft:llama","minecraft:llama_spit","minecraft:magma_cube","minecraft:minecart","minecraft:mooshroom","minecraft:mule","minecraft:ocelot","minecraft:painting","minecraft:panda","minecraft:parrot","minecraft:phantom","minecraft:pig","minecraft:pillager","minecraft:player","minecraft:polar_bear","minecraft:potion","minecraft:pufferfish","minecraft:rabbit","minecraft:ravager","minecraft:salmon","minecraft:sheep","minecraft:shulker","minecraft:shulker_bullet","minecraft:silverfish","minecraft:skeleton","minecraft:skeleton_horse","minecraft:slime","minecraft:small_fireball","minecraft:snow_golem","minecraft:snowball","minecraft:spawner_minecart","minecraft:spectral_arrow","minecraft:spider","minecraft:squid","minecraft:stray","minecraft:tnt","minecraft:tnt_minecart","minecraft:trader_llama","minecraft:trident","minecraft:tropical_fish","minecraft:turtle","minecraft:vex","minecraft:villager","minecraft:vindicator","minecraft:wandering_trader","minecraft:witch","minecraft:wither","minecraft:wither_skeleton","minecraft:wither_skull","minecraft:wolf","minecraft:zombie","minecraft:zombie_horse","minecraft:zombie_pigman","minecraft:zombie_villager"],"biomes":["minecraft:badlands","minecraft:badlands_plateau","minecraft:bamboo_jungle","minecraft:bamboo_jungle_hills","minecraft:beach","minecraft:birch_forest","minecraft:birch_forest_hills","minecraft:cold_ocean","minecraft:dark_forest","minecraft:dark_forest_hills","minecraft:deep_cold_ocean","minecraft:deep_frozen_ocean","minecraft:deep_lukewarm_ocean","minecraft:deep_ocean","minecraft:deep_warm_ocean","minecraft:desert","minecraft:desert_hills","minecraft:desert_lakes","minecraft:end_barrens","minecraft:end_highlands","minecraft:end_midlands","minecraft:eroded_badlands","minecraft:flower_forest","minecraft:forest","minecraft:frozen_ocean","minecraft:frozen_river","minecraft:giant_spruce_taiga","minecraft:giant_spruce_taiga_hills","minecraft:giant_tree_taiga","minecraft:giant_tree_taiga_hills","minecraft:gravelly_mountains","minecraft:ice_spikes","minecraft:jungle","minecraft:jungle_edge","minecraft:jungle_hills","minecraft:lukewarm_ocean","minecraft:modified_badlands_plateau","minecraft:modified_gravelly_mountains","minecraft:modified_jungle","minecraft:modified_jungle_edge","minecraft:modified_wooded_badlands_plateau","minecraft:mountain_edge","minecraft:mountains","minecraft:mushroom_field_shore","minecraft:mushroom_fields","minecraft:nether","minecraft:ocean","minecraft:plains","minecraft:river","minecraft:savanna","minecraft:savanna_plateau","minecraft:shattered_savanna","minecraft:shattered_savanna_plateau","minecraft:small_end_islands","minecraft:snowy_beach","minecraft:snowy_mountains","minecraft:snowy_taiga","minecraft:snowy_taiga_hills","minecraft:snowy_taiga_mountains","minecraft:snowy_tundra","minecraft:stone_shore","minecraft:sunflower_plains","minecraft:swamp","minecraft:swamp_hills","minecraft:taiga","minecraft:taiga_hills","minecraft:taiga_mountains","minecraft:tall_birch_forest","minecraft:tall_birch_hills","minecraft:the_end","minecraft:the_void","minecraft:warm_ocean","minecraft:wooded_badlands_plateau","minecraft:wooded_hills","minecraft:wooded_mountains"],"blocktags":{"minecraft:slabs":["minecraft:stone_slab","minecraft:smooth_stone_slab","minecraft:stone_brick_slab","minecraft:sandstone_slab","minecraft:acacia_slab","minecraft:birch_slab","minecraft:dark_oak_slab","minecraft:jungle_slab","minecraft:oak_slab","minecraft:spruce_slab","minecraft:purpur_slab","minecraft:quartz_slab","minecraft:red_sandstone_slab","minecraft:brick_slab","minecraft:cobblestone_slab","minecraft:nether_brick_slab","minecraft:petrified_oak_slab","minecraft:prismarine_slab","minecraft:prismarine_brick_slab","minecraft:dark_prismarine_slab","minecraft:polished_granite_slab","minecraft:smooth_red_sandstone_slab","minecraft:mossy_stone_brick_slab","minecraft:polished_diorite_slab","minecraft:mossy_cobblestone_slab","minecraft:end_stone_brick_slab","minecraft:smooth_sandstone_slab","minecraft:smooth_quartz_slab","minecraft:granite_slab","minecraft:andesite_slab","minecraft:red_nether_brick_slab","minecraft:polished_andesite_slab","minecraft:diorite_slab","minecraft:cut_sandstone_slab","minecraft:cut_red_sandstone_slab"],"minecraft:carpets":["minecraft:white_carpet","minecraft:orange_carpet","minecraft:magenta_carpet","minecraft:light_blue_carpet","minecraft:yellow_carpet","minecraft:lime_carpet","minecraft:pink_carpet","minecraft:gray_carpet","minecraft:light_gray_carpet","minecraft:cyan_carpet","minecraft:purple_carpet","minecraft:blue_carpet","minecraft:brown_carpet","minecraft:green_carpet","minecraft:red_carpet","minecraft:black_carpet"],"minecraft:stairs":["minecraft:oak_stairs","minecraft:cobblestone_stairs","minecraft:spruce_stairs","minecraft:sandstone_stairs","minecraft:acacia_stairs","minecraft:jungle_stairs","minecraft:birch_stairs","minecraft:dark_oak_stairs","minecraft:nether_brick_stairs","minecraft:stone_brick_stairs","minecraft:brick_stairs","minecraft:purpur_stairs","minecraft:quartz_stairs","minecraft:red_sandstone_stairs","minecraft:prismarine_brick_stairs","minecraft:prismarine_stairs","minecraft:dark_prismarine_stairs","minecraft:polished_granite_stairs","minecraft:smooth_red_sandstone_stairs","minecraft:mossy_stone_brick_stairs","minecraft:polished_diorite_stairs","minecraft:mossy_cobblestone_stairs","minecraft:end_stone_brick_stairs","minecraft:stone_stairs","minecraft:smooth_sandstone_stairs","minecraft:smooth_quartz_stairs","minecraft:granite_stairs","minecraft:andesite_stairs","minecraft:red_nether_brick_stairs","minecraft:polished_andesite_stairs","minecraft:diorite_stairs"],"minecraft:wooden_doors":["minecraft:oak_door","minecraft:spruce_door","minecraft:birch_door","minecraft:jungle_door","minecraft:acacia_door","minecraft:dark_oak_door"],"minecraft:jungle_logs":["minecraft:jungle_log","minecraft:jungle_wood","minecraft:stripped_jungle_log","minecraft:stripped_jungle_wood"],"minecraft:planks":["minecraft:oak_planks","minecraft:spruce_planks","minecraft:birch_planks","minecraft:jungle_planks","minecraft:acacia_planks","minecraft:dark_oak_planks"],"minecraft:wall_corals":["minecraft:tube_coral_wall_fan","minecraft:brain_coral_wall_fan","minecraft:bubble_coral_wall_fan","minecraft:fire_coral_wall_fan","minecraft:horn_coral_wall_fan"],"minecraft:acacia_logs":["minecraft:acacia_log","minecraft:acacia_wood","minecraft:stripped_acacia_log","minecraft:stripped_acacia_wood"],"minecraft:wither_immune":["minecraft:barrier","minecraft:bedrock","minecraft:end_portal","minecraft:end_portal_frame","minecraft:end_gateway","minecraft:command_block","minecraft:repeating_command_block","minecraft:chain_command_block","minecraft:structure_block","minecraft:jigsaw","minecraft:moving_piston"],"minecraft:flower_pots":["minecraft:flower_pot","minecraft:potted_poppy","minecraft:potted_blue_orchid","minecraft:potted_allium","minecraft:potted_azure_bluet","minecraft:potted_red_tulip","minecraft:potted_orange_tulip","minecraft:potted_white_tulip","minecraft:potted_pink_tulip","minecraft:potted_oxeye_daisy","minecraft:potted_dandelion","minecraft:potted_oak_sapling","minecraft:potted_spruce_sapling","minecraft:potted_birch_sapling","minecraft:potted_jungle_sapling","minecraft:potted_acacia_sapling","minecraft:potted_dark_oak_sapling","minecraft:potted_red_mushroom","minecraft:potted_brown_mushroom","minecraft:potted_dead_bush","minecraft:potted_fern","minecraft:potted_cactus","minecraft:potted_cornflower","minecraft:potted_lily_of_the_valley","minecraft:potted_wither_rose","minecraft:potted_bamboo"],"minecraft:stone_bricks":["minecraft:stone_bricks","minecraft:mossy_stone_bricks","minecraft:cracked_stone_bricks","minecraft:chiseled_stone_bricks"],"minecraft:enderman_holdable":["minecraft:grass_block","minecraft:dirt","minecraft:coarse_dirt","minecraft:podzol","minecraft:sand","minecraft:red_sand","minecraft:gravel","minecraft:brown_mushroom","minecraft:red_mushroom","minecraft:tnt","minecraft:cactus","minecraft:clay","minecraft:pumpkin","minecraft:carved_pumpkin","minecraft:melon","minecraft:mycelium","minecraft:netherrack","minecraft:dandelion","minecraft:poppy","minecraft:blue_orchid","minecraft:allium","minecraft:azure_bluet","minecraft:red_tulip","minecraft:orange_tulip","minecraft:white_tulip","minecraft:pink_tulip","minecraft:oxeye_daisy","minecraft:cornflower","minecraft:lily_of_the_valley","minecraft:wither_rose"],"minecraft:spruce_logs":["minecraft:spruce_log","minecraft:spruce_wood","minecraft:stripped_spruce_log","minecraft:stripped_spruce_wood"],"minecraft:wooden_slabs":["minecraft:oak_slab","minecraft:spruce_slab","minecraft:birch_slab","minecraft:jungle_slab","minecraft:acacia_slab","minecraft:dark_oak_slab"],"minecraft:coral_blocks":["minecraft:tube_coral_block","minecraft:brain_coral_block","minecraft:bubble_coral_block","minecraft:fire_coral_block","minecraft:horn_coral_block"],"minecraft:signs":["minecraft:oak_sign","minecraft:spruce_sign","minecraft:birch_sign","minecraft:acacia_sign","minecraft:jungle_sign","minecraft:dark_oak_sign","minecraft:oak_wall_sign","minecraft:spruce_wall_sign","minecraft:birch_wall_sign","minecraft:acacia_wall_sign","minecraft:jungle_wall_sign","minecraft:dark_oak_wall_sign"],"minecraft:dark_oak_logs":["minecraft:dark_oak_log","minecraft:dark_oak_wood","minecraft:stripped_dark_oak_log","minecraft:stripped_dark_oak_wood"],"minecraft:sand":["minecraft:sand","minecraft:red_sand"],"minecraft:valid_spawn":["minecraft:grass_block","minecraft:podzol"],"minecraft:underwater_bonemeals":["minecraft:seagrass","minecraft:tube_coral_fan","minecraft:brain_coral_fan","minecraft:bubble_coral_fan","minecraft:fire_coral_fan","minecraft:horn_coral_fan","minecraft:tube_coral","minecraft:brain_coral","minecraft:bubble_coral","minecraft:fire_coral","minecraft:horn_coral","minecraft:tube_coral_wall_fan","minecraft:brain_coral_wall_fan","minecraft:bubble_coral_wall_fan","minecraft:fire_coral_wall_fan","minecraft:horn_coral_wall_fan"],"minecraft:oak_logs":["minecraft:oak_log","minecraft:oak_wood","minecraft:stripped_oak_log","minecraft:stripped_oak_wood"],"minecraft:buttons":["minecraft:stone_button","minecraft:oak_button","minecraft:spruce_button","minecraft:birch_button","minecraft:jungle_button","minecraft:acacia_button","minecraft:dark_oak_button"],"minecraft:wooden_pressure_plates":["minecraft:oak_pressure_plate","minecraft:spruce_pressure_plate","minecraft:birch_pressure_plate","minecraft:jungle_pressure_plate","minecraft:acacia_pressure_plate","minecraft:dark_oak_pressure_plate"],"minecraft:beds":["minecraft:red_bed","minecraft:black_bed","minecraft:blue_bed","minecraft:brown_bed","minecraft:cyan_bed","minecraft:gray_bed","minecraft:green_bed","minecraft:light_blue_bed","minecraft:light_gray_bed","minecraft:lime_bed","minecraft:magenta_bed","minecraft:orange_bed","minecraft:pink_bed","minecraft:purple_bed","minecraft:white_bed","minecraft:yellow_bed"],"minecraft:walls":["minecraft:cobblestone_wall","minecraft:mossy_cobblestone_wall","minecraft:brick_wall","minecraft:prismarine_wall","minecraft:red_sandstone_wall","minecraft:mossy_stone_brick_wall","minecraft:granite_wall","minecraft:stone_brick_wall","minecraft:nether_brick_wall","minecraft:andesite_wall","minecraft:red_nether_brick_wall","minecraft:sandstone_wall","minecraft:end_stone_brick_wall","minecraft:diorite_wall"],"minecraft:rails":["minecraft:rail","minecraft:powered_rail","minecraft:detector_rail","minecraft:activator_rail"],"minecraft:birch_logs":["minecraft:birch_log","minecraft:birch_wood","minecraft:stripped_birch_log","minecraft:stripped_birch_wood"],"minecraft:wooden_trapdoors":["minecraft:acacia_trapdoor","minecraft:birch_trapdoor","minecraft:dark_oak_trapdoor","minecraft:jungle_trapdoor","minecraft:oak_trapdoor","minecraft:spruce_trapdoor"],"minecraft:wooden_fences":["minecraft:oak_fence","minecraft:acacia_fence","minecraft:dark_oak_fence","minecraft:spruce_fence","minecraft:birch_fence","minecraft:jungle_fence"],"minecraft:saplings":["minecraft:oak_sapling","minecraft:spruce_sapling","minecraft:birch_sapling","minecraft:jungle_sapling","minecraft:acacia_sapling","minecraft:dark_oak_sapling"],"minecraft:small_flowers":["minecraft:dandelion","minecraft:poppy","minecraft:blue_orchid","minecraft:allium","minecraft:azure_bluet","minecraft:red_tulip","minecraft:orange_tulip","minecraft:white_tulip","minecraft:pink_tulip","minecraft:oxeye_daisy","minecraft:cornflower","minecraft:lily_of_the_valley","minecraft:wither_rose"],"minecraft:bamboo_plantable_on":["minecraft:bamboo","minecraft:bamboo_sapling","minecraft:gravel","minecraft:sand","minecraft:red_sand","minecraft:dirt","minecraft:grass_block","minecraft:podzol","minecraft:coarse_dirt","minecraft:mycelium"],"minecraft:ice":["minecraft:ice","minecraft:packed_ice","minecraft:blue_ice","minecraft:frosted_ice"],"minecraft:wooden_stairs":["minecraft:oak_stairs","minecraft:spruce_stairs","minecraft:birch_stairs","minecraft:jungle_stairs","minecraft:acacia_stairs","minecraft:dark_oak_stairs"],"minecraft:anvil":["minecraft:anvil","minecraft:chipped_anvil","minecraft:damaged_anvil"],"minecraft:logs":["minecraft:dark_oak_log","minecraft:dark_oak_wood","minecraft:stripped_dark_oak_log","minecraft:stripped_dark_oak_wood","minecraft:oak_log","minecraft:oak_wood","minecraft:stripped_oak_log","minecraft:stripped_oak_wood","minecraft:acacia_log","minecraft:acacia_wood","minecraft:stripped_acacia_log","minecraft:stripped_acacia_wood","minecraft:birch_log","minecraft:birch_wood","minecraft:stripped_birch_log","minecraft:stripped_birch_wood","minecraft:jungle_log","minecraft:jungle_wood","minecraft:stripped_jungle_log","minecraft:stripped_jungle_wood","minecraft:spruce_log","minecraft:spruce_wood","minecraft:stripped_spruce_log","minecraft:stripped_spruce_wood"],"minecraft:corals":["minecraft:tube_coral_fan","minecraft:brain_coral_fan","minecraft:bubble_coral_fan","minecraft:fire_coral_fan","minecraft:horn_coral_fan","minecraft:tube_coral","minecraft:brain_coral","minecraft:bubble_coral","minecraft:fire_coral","minecraft:horn_coral"],"minecraft:wooden_buttons":["minecraft:oak_button","minecraft:spruce_button","minecraft:birch_button","minecraft:jungle_button","minecraft:acacia_button","minecraft:dark_oak_button"],"minecraft:wool":["minecraft:white_wool","minecraft:orange_wool","minecraft:magenta_wool","minecraft:light_blue_wool","minecraft:yellow_wool","minecraft:lime_wool","minecraft:pink_wool","minecraft:gray_wool","minecraft:light_gray_wool","minecraft:cyan_wool","minecraft:purple_wool","minecraft:blue_wool","minecraft:brown_wool","minecraft:green_wool","minecraft:red_wool","minecraft:black_wool"],"minecraft:coral_plants":["minecraft:tube_coral","minecraft:brain_coral","minecraft:bubble_coral","minecraft:fire_coral","minecraft:horn_coral"],"minecraft:banners":["minecraft:white_banner","minecraft:orange_banner","minecraft:magenta_banner","minecraft:light_blue_banner","minecraft:yellow_banner","minecraft:lime_banner","minecraft:pink_banner","minecraft:gray_banner","minecraft:light_gray_banner","minecraft:cyan_banner","minecraft:purple_banner","minecraft:blue_banner","minecraft:brown_banner","minecraft:green_banner","minecraft:red_banner","minecraft:black_banner","minecraft:white_wall_banner","minecraft:orange_wall_banner","minecraft:magenta_wall_banner","minecraft:light_blue_wall_banner","minecraft:yellow_wall_banner","minecraft:lime_wall_banner","minecraft:pink_wall_banner","minecraft:gray_wall_banner","minecraft:light_gray_wall_banner","minecraft:cyan_wall_banner","minecraft:purple_wall_banner","minecraft:blue_wall_banner","minecraft:brown_wall_banner","minecraft:green_wall_banner","minecraft:red_wall_banner","minecraft:black_wall_banner"],"minecraft:dragon_immune":["minecraft:barrier","minecraft:bedrock","minecraft:end_portal","minecraft:end_portal_frame","minecraft:end_gateway","minecraft:command_block","minecraft:repeating_command_block","minecraft:chain_command_block","minecraft:structure_block","minecraft:jigsaw","minecraft:moving_piston","minecraft:obsidian","minecraft:end_stone","minecraft:iron_bars"],"minecraft:doors":["minecraft:iron_door","minecraft:oak_door","minecraft:spruce_door","minecraft:birch_door","minecraft:jungle_door","minecraft:acacia_door","minecraft:dark_oak_door"],"minecraft:fences":["minecraft:nether_brick_fence","minecraft:oak_fence","minecraft:acacia_fence","minecraft:dark_oak_fence","minecraft:spruce_fence","minecraft:birch_fence","minecraft:jungle_fence"],"minecraft:wall_signs":["minecraft:oak_wall_sign","minecraft:spruce_wall_sign","minecraft:birch_wall_sign","minecraft:acacia_wall_sign","minecraft:jungle_wall_sign","minecraft:dark_oak_wall_sign"],"minecraft:standing_signs":["minecraft:oak_sign","minecraft:spruce_sign","minecraft:birch_sign","minecraft:acacia_sign","minecraft:jungle_sign","minecraft:dark_oak_sign"],"minecraft:dirt_like":["minecraft:dirt","minecraft:grass_block","minecraft:podzol","minecraft:coarse_dirt","minecraft:mycelium"],"minecraft:impermeable":["minecraft:glass","minecraft:white_stained_glass","minecraft:orange_stained_glass","minecraft:magenta_stained_glass","minecraft:light_blue_stained_glass","minecraft:yellow_stained_glass","minecraft:lime_stained_glass","minecraft:pink_stained_glass","minecraft:gray_stained_glass","minecraft:light_gray_stained_glass","minecraft:cyan_stained_glass","minecraft:purple_stained_glass","minecraft:blue_stained_glass","minecraft:brown_stained_glass","minecraft:green_stained_glass","minecraft:red_stained_glass","minecraft:black_stained_glass"],"minecraft:trapdoors":["minecraft:iron_trapdoor","minecraft:acacia_trapdoor","minecraft:birch_trapdoor","minecraft:dark_oak_trapdoor","minecraft:jungle_trapdoor","minecraft:oak_trapdoor","minecraft:spruce_trapdoor"],"minecraft:leaves":["minecraft:jungle_leaves","minecraft:oak_leaves","minecraft:spruce_leaves","minecraft:dark_oak_leaves","minecraft:acacia_leaves","minecraft:birch_leaves"]},"itemtags":{"minecraft:boats":["minecraft:oak_boat","minecraft:spruce_boat","minecraft:birch_boat","minecraft:jungle_boat","minecraft:acacia_boat","minecraft:dark_oak_boat"],"minecraft:banners":["minecraft:white_banner","minecraft:orange_banner","minecraft:magenta_banner","minecraft:light_blue_banner","minecraft:yellow_banner","minecraft:lime_banner","minecraft:pink_banner","minecraft:gray_banner","minecraft:light_gray_banner","minecraft:cyan_banner","minecraft:purple_banner","minecraft:blue_banner","minecraft:brown_banner","minecraft:green_banner","minecraft:red_banner","minecraft:black_banner"],"minecraft:arrows":["minecraft:arrow","minecraft:tipped_arrow","minecraft:spectral_arrow"],"minecraft:coals":["minecraft:coal","minecraft:charcoal"],"minecraft:music_discs":["minecraft:music_disc_13","minecraft:music_disc_cat","minecraft:music_disc_blocks","minecraft:music_disc_chirp","minecraft:music_disc_far","minecraft:music_disc_mall","minecraft:music_disc_mellohi","minecraft:music_disc_stal","minecraft:music_disc_strad","minecraft:music_disc_ward","minecraft:music_disc_11","minecraft:music_disc_wait"],"minecraft:fishes":["minecraft:cod","minecraft:cooked_cod","minecraft:salmon","minecraft:cooked_salmon","minecraft:pufferfish","minecraft:tropical_fish"]},"entitytags":{"minecraft:raiders":["minecraft:evoker","minecraft:pillager","minecraft:ravager","minecraft:vindicator","minecraft:illusioner","minecraft:witch"],"minecraft:skeletons":["minecraft:skeleton","minecraft:stray","minecraft:wither_skeleton"]}} \ No newline at end of file +{ + "blocks": { + "minecraft:acacia_button": { + "properties": { + "face": { + "values": [ + "floor", + "wall", + "ceiling" + ], + "type": "enum" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:acacia_button[face=wall,facing=north,powered=false]" + }, + "minecraft:acacia_door": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + }, + "hinge": { + "values": [ + "left", + "right" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:acacia_door[facing=north,half=lower,hinge=left,open=false,powered=false]" + }, + "minecraft:acacia_fence": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:acacia_fence[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:acacia_fence_gate": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "in_wall": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:acacia_fence_gate[facing=north,in_wall=false,open=false,powered=false]" + }, + "minecraft:acacia_leaves": { + "properties": { + "distance": { + "values": [ + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ], + "type": "int" + }, + "persistent": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:acacia_leaves[distance=7,persistent=false]" + }, + "minecraft:acacia_log": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:acacia_log[axis=y]" + }, + "minecraft:acacia_planks": { + "properties": {}, + "defaultstate": "minecraft:acacia_planks" + }, + "minecraft:acacia_pressure_plate": { + "properties": { + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:acacia_pressure_plate[powered=false]" + }, + "minecraft:acacia_sapling": { + "properties": { + "stage": { + "values": [ + "0", + "1" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:acacia_sapling[stage=0]" + }, + "minecraft:acacia_sign": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:acacia_sign[rotation=0,waterlogged=false]" + }, + "minecraft:acacia_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:acacia_slab[type=bottom,waterlogged=false]" + }, + "minecraft:acacia_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:acacia_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:acacia_trapdoor": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:acacia_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]" + }, + "minecraft:acacia_wall_sign": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:acacia_wall_sign[facing=north,waterlogged=false]" + }, + "minecraft:acacia_wood": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:acacia_wood[axis=y]" + }, + "minecraft:activator_rail": { + "properties": { + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "shape": { + "values": [ + "north_south", + "east_west", + "ascending_east", + "ascending_west", + "ascending_north", + "ascending_south" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:activator_rail[powered=false,shape=north_south]" + }, + "minecraft:air": { + "properties": {}, + "defaultstate": "minecraft:air" + }, + "minecraft:allium": { + "properties": {}, + "defaultstate": "minecraft:allium" + }, + "minecraft:andesite": { + "properties": {}, + "defaultstate": "minecraft:andesite" + }, + "minecraft:andesite_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:andesite_slab[type=bottom,waterlogged=false]" + }, + "minecraft:andesite_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:andesite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:andesite_wall": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:andesite_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]" + }, + "minecraft:anvil": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:anvil[facing=north]" + }, + "minecraft:attached_melon_stem": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:attached_melon_stem[facing=north]" + }, + "minecraft:attached_pumpkin_stem": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:attached_pumpkin_stem[facing=north]" + }, + "minecraft:azure_bluet": { + "properties": {}, + "defaultstate": "minecraft:azure_bluet" + }, + "minecraft:bamboo": { + "properties": { + "age": { + "values": [ + "0", + "1" + ], + "type": "int" + }, + "leaves": { + "values": [ + "none", + "small", + "large" + ], + "type": "enum" + }, + "stage": { + "values": [ + "0", + "1" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:bamboo[age=0,leaves=none,stage=0]" + }, + "minecraft:bamboo_sapling": { + "properties": {}, + "defaultstate": "minecraft:bamboo_sapling" + }, + "minecraft:barrel": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:barrel[facing=north,open=false]" + }, + "minecraft:barrier": { + "properties": {}, + "defaultstate": "minecraft:barrier" + }, + "minecraft:beacon": { + "properties": {}, + "defaultstate": "minecraft:beacon" + }, + "minecraft:bedrock": { + "properties": {}, + "defaultstate": "minecraft:bedrock" + }, + "minecraft:beetroots": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:beetroots[age=0]" + }, + "minecraft:bell": { + "properties": { + "attachment": { + "values": [ + "floor", + "ceiling", + "single_wall", + "double_wall" + ], + "type": "enum" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:bell[attachment=floor,facing=north]" + }, + "minecraft:birch_button": { + "properties": { + "face": { + "values": [ + "floor", + "wall", + "ceiling" + ], + "type": "enum" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:birch_button[face=wall,facing=north,powered=false]" + }, + "minecraft:birch_door": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + }, + "hinge": { + "values": [ + "left", + "right" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:birch_door[facing=north,half=lower,hinge=left,open=false,powered=false]" + }, + "minecraft:birch_fence": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:birch_fence[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:birch_fence_gate": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "in_wall": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:birch_fence_gate[facing=north,in_wall=false,open=false,powered=false]" + }, + "minecraft:birch_leaves": { + "properties": { + "distance": { + "values": [ + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ], + "type": "int" + }, + "persistent": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:birch_leaves[distance=7,persistent=false]" + }, + "minecraft:birch_log": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:birch_log[axis=y]" + }, + "minecraft:birch_planks": { + "properties": {}, + "defaultstate": "minecraft:birch_planks" + }, + "minecraft:birch_pressure_plate": { + "properties": { + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:birch_pressure_plate[powered=false]" + }, + "minecraft:birch_sapling": { + "properties": { + "stage": { + "values": [ + "0", + "1" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:birch_sapling[stage=0]" + }, + "minecraft:birch_sign": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:birch_sign[rotation=0,waterlogged=false]" + }, + "minecraft:birch_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:birch_slab[type=bottom,waterlogged=false]" + }, + "minecraft:birch_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:birch_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:birch_trapdoor": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:birch_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]" + }, + "minecraft:birch_wall_sign": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:birch_wall_sign[facing=north,waterlogged=false]" + }, + "minecraft:birch_wood": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:birch_wood[axis=y]" + }, + "minecraft:black_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:black_banner[rotation=0]" + }, + "minecraft:black_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:black_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:black_carpet": { + "properties": {}, + "defaultstate": "minecraft:black_carpet" + }, + "minecraft:black_concrete": { + "properties": {}, + "defaultstate": "minecraft:black_concrete" + }, + "minecraft:black_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:black_concrete_powder" + }, + "minecraft:black_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:black_glazed_terracotta[facing=north]" + }, + "minecraft:black_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:black_shulker_box[facing=up]" + }, + "minecraft:black_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:black_stained_glass" + }, + "minecraft:black_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:black_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:black_terracotta": { + "properties": {}, + "defaultstate": "minecraft:black_terracotta" + }, + "minecraft:black_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:black_wall_banner[facing=north]" + }, + "minecraft:black_wool": { + "properties": {}, + "defaultstate": "minecraft:black_wool" + }, + "minecraft:blast_furnace": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "lit": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:blast_furnace[facing=north,lit=false]" + }, + "minecraft:blue_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:blue_banner[rotation=0]" + }, + "minecraft:blue_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:blue_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:blue_carpet": { + "properties": {}, + "defaultstate": "minecraft:blue_carpet" + }, + "minecraft:blue_concrete": { + "properties": {}, + "defaultstate": "minecraft:blue_concrete" + }, + "minecraft:blue_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:blue_concrete_powder" + }, + "minecraft:blue_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:blue_glazed_terracotta[facing=north]" + }, + "minecraft:blue_ice": { + "properties": {}, + "defaultstate": "minecraft:blue_ice" + }, + "minecraft:blue_orchid": { + "properties": {}, + "defaultstate": "minecraft:blue_orchid" + }, + "minecraft:blue_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:blue_shulker_box[facing=up]" + }, + "minecraft:blue_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:blue_stained_glass" + }, + "minecraft:blue_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:blue_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:blue_terracotta": { + "properties": {}, + "defaultstate": "minecraft:blue_terracotta" + }, + "minecraft:blue_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:blue_wall_banner[facing=north]" + }, + "minecraft:blue_wool": { + "properties": {}, + "defaultstate": "minecraft:blue_wool" + }, + "minecraft:bone_block": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:bone_block[axis=y]" + }, + "minecraft:bookshelf": { + "properties": {}, + "defaultstate": "minecraft:bookshelf" + }, + "minecraft:brain_coral": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:brain_coral[waterlogged=true]" + }, + "minecraft:brain_coral_block": { + "properties": {}, + "defaultstate": "minecraft:brain_coral_block" + }, + "minecraft:brain_coral_fan": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:brain_coral_fan[waterlogged=true]" + }, + "minecraft:brain_coral_wall_fan": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:brain_coral_wall_fan[facing=north,waterlogged=true]" + }, + "minecraft:brewing_stand": { + "properties": { + "has_bottle_0": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "has_bottle_1": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "has_bottle_2": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:brewing_stand[has_bottle_0=false,has_bottle_1=false,has_bottle_2=false]" + }, + "minecraft:brick_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:brick_slab[type=bottom,waterlogged=false]" + }, + "minecraft:brick_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:brick_wall": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:brick_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]" + }, + "minecraft:bricks": { + "properties": {}, + "defaultstate": "minecraft:bricks" + }, + "minecraft:brown_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:brown_banner[rotation=0]" + }, + "minecraft:brown_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:brown_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:brown_carpet": { + "properties": {}, + "defaultstate": "minecraft:brown_carpet" + }, + "minecraft:brown_concrete": { + "properties": {}, + "defaultstate": "minecraft:brown_concrete" + }, + "minecraft:brown_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:brown_concrete_powder" + }, + "minecraft:brown_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:brown_glazed_terracotta[facing=north]" + }, + "minecraft:brown_mushroom": { + "properties": {}, + "defaultstate": "minecraft:brown_mushroom" + }, + "minecraft:brown_mushroom_block": { + "properties": { + "down": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:brown_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true]" + }, + "minecraft:brown_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:brown_shulker_box[facing=up]" + }, + "minecraft:brown_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:brown_stained_glass" + }, + "minecraft:brown_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:brown_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:brown_terracotta": { + "properties": {}, + "defaultstate": "minecraft:brown_terracotta" + }, + "minecraft:brown_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:brown_wall_banner[facing=north]" + }, + "minecraft:brown_wool": { + "properties": {}, + "defaultstate": "minecraft:brown_wool" + }, + "minecraft:bubble_column": { + "properties": { + "drag": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:bubble_column[drag=true]" + }, + "minecraft:bubble_coral": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:bubble_coral[waterlogged=true]" + }, + "minecraft:bubble_coral_block": { + "properties": {}, + "defaultstate": "minecraft:bubble_coral_block" + }, + "minecraft:bubble_coral_fan": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:bubble_coral_fan[waterlogged=true]" + }, + "minecraft:bubble_coral_wall_fan": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:bubble_coral_wall_fan[facing=north,waterlogged=true]" + }, + "minecraft:cactus": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:cactus[age=0]" + }, + "minecraft:cake": { + "properties": { + "bites": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:cake[bites=0]" + }, + "minecraft:campfire": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "lit": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "signal_fire": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:campfire[facing=north,lit=true,signal_fire=false,waterlogged=false]" + }, + "minecraft:carrots": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:carrots[age=0]" + }, + "minecraft:cartography_table": { + "properties": {}, + "defaultstate": "minecraft:cartography_table" + }, + "minecraft:carved_pumpkin": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:carved_pumpkin[facing=north]" + }, + "minecraft:cauldron": { + "properties": { + "level": { + "values": [ + "0", + "1", + "2", + "3" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:cauldron[level=0]" + }, + "minecraft:cave_air": { + "properties": {}, + "defaultstate": "minecraft:cave_air" + }, + "minecraft:chain_command_block": { + "properties": { + "conditional": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:chain_command_block[conditional=false,facing=north]" + }, + "minecraft:chest": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "type": { + "values": [ + "single", + "left", + "right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:chest[facing=north,type=single,waterlogged=false]" + }, + "minecraft:chipped_anvil": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:chipped_anvil[facing=north]" + }, + "minecraft:chiseled_quartz_block": { + "properties": {}, + "defaultstate": "minecraft:chiseled_quartz_block" + }, + "minecraft:chiseled_red_sandstone": { + "properties": {}, + "defaultstate": "minecraft:chiseled_red_sandstone" + }, + "minecraft:chiseled_sandstone": { + "properties": {}, + "defaultstate": "minecraft:chiseled_sandstone" + }, + "minecraft:chiseled_stone_bricks": { + "properties": {}, + "defaultstate": "minecraft:chiseled_stone_bricks" + }, + "minecraft:chorus_flower": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:chorus_flower[age=0]" + }, + "minecraft:chorus_plant": { + "properties": { + "down": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:chorus_plant[down=false,east=false,north=false,south=false,up=false,west=false]" + }, + "minecraft:clay": { + "properties": {}, + "defaultstate": "minecraft:clay" + }, + "minecraft:coal_block": { + "properties": {}, + "defaultstate": "minecraft:coal_block" + }, + "minecraft:coal_ore": { + "properties": {}, + "defaultstate": "minecraft:coal_ore" + }, + "minecraft:coarse_dirt": { + "properties": {}, + "defaultstate": "minecraft:coarse_dirt" + }, + "minecraft:cobblestone": { + "properties": {}, + "defaultstate": "minecraft:cobblestone" + }, + "minecraft:cobblestone_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:cobblestone_slab[type=bottom,waterlogged=false]" + }, + "minecraft:cobblestone_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:cobblestone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:cobblestone_wall": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:cobblestone_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]" + }, + "minecraft:cobweb": { + "properties": {}, + "defaultstate": "minecraft:cobweb" + }, + "minecraft:cocoa": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2" + ], + "type": "int" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:cocoa[age=0,facing=north]" + }, + "minecraft:command_block": { + "properties": { + "conditional": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:command_block[conditional=false,facing=north]" + }, + "minecraft:comparator": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "mode": { + "values": [ + "compare", + "subtract" + ], + "type": "enum" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:comparator[facing=north,mode=compare,powered=false]" + }, + "minecraft:composter": { + "properties": { + "level": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:composter[level=0]" + }, + "minecraft:conduit": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:conduit[waterlogged=true]" + }, + "minecraft:cornflower": { + "properties": {}, + "defaultstate": "minecraft:cornflower" + }, + "minecraft:cracked_stone_bricks": { + "properties": {}, + "defaultstate": "minecraft:cracked_stone_bricks" + }, + "minecraft:crafting_table": { + "properties": {}, + "defaultstate": "minecraft:crafting_table" + }, + "minecraft:creeper_head": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:creeper_head[rotation=0]" + }, + "minecraft:creeper_wall_head": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:creeper_wall_head[facing=north]" + }, + "minecraft:cut_red_sandstone": { + "properties": {}, + "defaultstate": "minecraft:cut_red_sandstone" + }, + "minecraft:cut_red_sandstone_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:cut_red_sandstone_slab[type=bottom,waterlogged=false]" + }, + "minecraft:cut_sandstone": { + "properties": {}, + "defaultstate": "minecraft:cut_sandstone" + }, + "minecraft:cut_sandstone_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:cut_sandstone_slab[type=bottom,waterlogged=false]" + }, + "minecraft:cyan_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:cyan_banner[rotation=0]" + }, + "minecraft:cyan_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:cyan_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:cyan_carpet": { + "properties": {}, + "defaultstate": "minecraft:cyan_carpet" + }, + "minecraft:cyan_concrete": { + "properties": {}, + "defaultstate": "minecraft:cyan_concrete" + }, + "minecraft:cyan_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:cyan_concrete_powder" + }, + "minecraft:cyan_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:cyan_glazed_terracotta[facing=north]" + }, + "minecraft:cyan_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:cyan_shulker_box[facing=up]" + }, + "minecraft:cyan_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:cyan_stained_glass" + }, + "minecraft:cyan_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:cyan_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:cyan_terracotta": { + "properties": {}, + "defaultstate": "minecraft:cyan_terracotta" + }, + "minecraft:cyan_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:cyan_wall_banner[facing=north]" + }, + "minecraft:cyan_wool": { + "properties": {}, + "defaultstate": "minecraft:cyan_wool" + }, + "minecraft:damaged_anvil": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:damaged_anvil[facing=north]" + }, + "minecraft:dandelion": { + "properties": {}, + "defaultstate": "minecraft:dandelion" + }, + "minecraft:dark_oak_button": { + "properties": { + "face": { + "values": [ + "floor", + "wall", + "ceiling" + ], + "type": "enum" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dark_oak_button[face=wall,facing=north,powered=false]" + }, + "minecraft:dark_oak_door": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + }, + "hinge": { + "values": [ + "left", + "right" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dark_oak_door[facing=north,half=lower,hinge=left,open=false,powered=false]" + }, + "minecraft:dark_oak_fence": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dark_oak_fence[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:dark_oak_fence_gate": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "in_wall": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dark_oak_fence_gate[facing=north,in_wall=false,open=false,powered=false]" + }, + "minecraft:dark_oak_leaves": { + "properties": { + "distance": { + "values": [ + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ], + "type": "int" + }, + "persistent": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dark_oak_leaves[distance=7,persistent=false]" + }, + "minecraft:dark_oak_log": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:dark_oak_log[axis=y]" + }, + "minecraft:dark_oak_planks": { + "properties": {}, + "defaultstate": "minecraft:dark_oak_planks" + }, + "minecraft:dark_oak_pressure_plate": { + "properties": { + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dark_oak_pressure_plate[powered=false]" + }, + "minecraft:dark_oak_sapling": { + "properties": { + "stage": { + "values": [ + "0", + "1" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:dark_oak_sapling[stage=0]" + }, + "minecraft:dark_oak_sign": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dark_oak_sign[rotation=0,waterlogged=false]" + }, + "minecraft:dark_oak_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dark_oak_slab[type=bottom,waterlogged=false]" + }, + "minecraft:dark_oak_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dark_oak_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:dark_oak_trapdoor": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dark_oak_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]" + }, + "minecraft:dark_oak_wall_sign": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dark_oak_wall_sign[facing=north,waterlogged=false]" + }, + "minecraft:dark_oak_wood": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:dark_oak_wood[axis=y]" + }, + "minecraft:dark_prismarine": { + "properties": {}, + "defaultstate": "minecraft:dark_prismarine" + }, + "minecraft:dark_prismarine_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dark_prismarine_slab[type=bottom,waterlogged=false]" + }, + "minecraft:dark_prismarine_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dark_prismarine_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:daylight_detector": { + "properties": { + "inverted": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "power": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:daylight_detector[inverted=false,power=0]" + }, + "minecraft:dead_brain_coral": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_brain_coral[waterlogged=true]" + }, + "minecraft:dead_brain_coral_block": { + "properties": {}, + "defaultstate": "minecraft:dead_brain_coral_block" + }, + "minecraft:dead_brain_coral_fan": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_brain_coral_fan[waterlogged=true]" + }, + "minecraft:dead_brain_coral_wall_fan": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_brain_coral_wall_fan[facing=north,waterlogged=true]" + }, + "minecraft:dead_bubble_coral": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_bubble_coral[waterlogged=true]" + }, + "minecraft:dead_bubble_coral_block": { + "properties": {}, + "defaultstate": "minecraft:dead_bubble_coral_block" + }, + "minecraft:dead_bubble_coral_fan": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_bubble_coral_fan[waterlogged=true]" + }, + "minecraft:dead_bubble_coral_wall_fan": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_bubble_coral_wall_fan[facing=north,waterlogged=true]" + }, + "minecraft:dead_bush": { + "properties": {}, + "defaultstate": "minecraft:dead_bush" + }, + "minecraft:dead_fire_coral": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_fire_coral[waterlogged=true]" + }, + "minecraft:dead_fire_coral_block": { + "properties": {}, + "defaultstate": "minecraft:dead_fire_coral_block" + }, + "minecraft:dead_fire_coral_fan": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_fire_coral_fan[waterlogged=true]" + }, + "minecraft:dead_fire_coral_wall_fan": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_fire_coral_wall_fan[facing=north,waterlogged=true]" + }, + "minecraft:dead_horn_coral": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_horn_coral[waterlogged=true]" + }, + "minecraft:dead_horn_coral_block": { + "properties": {}, + "defaultstate": "minecraft:dead_horn_coral_block" + }, + "minecraft:dead_horn_coral_fan": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_horn_coral_fan[waterlogged=true]" + }, + "minecraft:dead_horn_coral_wall_fan": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_horn_coral_wall_fan[facing=north,waterlogged=true]" + }, + "minecraft:dead_tube_coral": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_tube_coral[waterlogged=true]" + }, + "minecraft:dead_tube_coral_block": { + "properties": {}, + "defaultstate": "minecraft:dead_tube_coral_block" + }, + "minecraft:dead_tube_coral_fan": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_tube_coral_fan[waterlogged=true]" + }, + "minecraft:dead_tube_coral_wall_fan": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_tube_coral_wall_fan[facing=north,waterlogged=true]" + }, + "minecraft:detector_rail": { + "properties": { + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "shape": { + "values": [ + "north_south", + "east_west", + "ascending_east", + "ascending_west", + "ascending_north", + "ascending_south" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:detector_rail[powered=false,shape=north_south]" + }, + "minecraft:diamond_block": { + "properties": {}, + "defaultstate": "minecraft:diamond_block" + }, + "minecraft:diamond_ore": { + "properties": {}, + "defaultstate": "minecraft:diamond_ore" + }, + "minecraft:diorite": { + "properties": {}, + "defaultstate": "minecraft:diorite" + }, + "minecraft:diorite_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:diorite_slab[type=bottom,waterlogged=false]" + }, + "minecraft:diorite_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:diorite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:diorite_wall": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:diorite_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]" + }, + "minecraft:dirt": { + "properties": {}, + "defaultstate": "minecraft:dirt" + }, + "minecraft:dispenser": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + }, + "triggered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dispenser[facing=north,triggered=false]" + }, + "minecraft:dragon_egg": { + "properties": {}, + "defaultstate": "minecraft:dragon_egg" + }, + "minecraft:dragon_head": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:dragon_head[rotation=0]" + }, + "minecraft:dragon_wall_head": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:dragon_wall_head[facing=north]" + }, + "minecraft:dried_kelp_block": { + "properties": {}, + "defaultstate": "minecraft:dried_kelp_block" + }, + "minecraft:dropper": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + }, + "triggered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dropper[facing=north,triggered=false]" + }, + "minecraft:emerald_block": { + "properties": {}, + "defaultstate": "minecraft:emerald_block" + }, + "minecraft:emerald_ore": { + "properties": {}, + "defaultstate": "minecraft:emerald_ore" + }, + "minecraft:enchanting_table": { + "properties": {}, + "defaultstate": "minecraft:enchanting_table" + }, + "minecraft:end_gateway": { + "properties": {}, + "defaultstate": "minecraft:end_gateway" + }, + "minecraft:end_portal": { + "properties": {}, + "defaultstate": "minecraft:end_portal" + }, + "minecraft:end_portal_frame": { + "properties": { + "eye": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:end_portal_frame[eye=false,facing=north]" + }, + "minecraft:end_rod": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:end_rod[facing=up]" + }, + "minecraft:end_stone": { + "properties": {}, + "defaultstate": "minecraft:end_stone" + }, + "minecraft:end_stone_brick_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:end_stone_brick_slab[type=bottom,waterlogged=false]" + }, + "minecraft:end_stone_brick_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:end_stone_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:end_stone_brick_wall": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:end_stone_brick_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]" + }, + "minecraft:end_stone_bricks": { + "properties": {}, + "defaultstate": "minecraft:end_stone_bricks" + }, + "minecraft:ender_chest": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:ender_chest[facing=north,waterlogged=false]" + }, + "minecraft:farmland": { + "properties": { + "moisture": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:farmland[moisture=0]" + }, + "minecraft:fern": { + "properties": {}, + "defaultstate": "minecraft:fern" + }, + "minecraft:fire": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + }, + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:fire[age=0,east=false,north=false,south=false,up=false,west=false]" + }, + "minecraft:fire_coral": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:fire_coral[waterlogged=true]" + }, + "minecraft:fire_coral_block": { + "properties": {}, + "defaultstate": "minecraft:fire_coral_block" + }, + "minecraft:fire_coral_fan": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:fire_coral_fan[waterlogged=true]" + }, + "minecraft:fire_coral_wall_fan": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:fire_coral_wall_fan[facing=north,waterlogged=true]" + }, + "minecraft:fletching_table": { + "properties": {}, + "defaultstate": "minecraft:fletching_table" + }, + "minecraft:flower_pot": { + "properties": {}, + "defaultstate": "minecraft:flower_pot" + }, + "minecraft:frosted_ice": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:frosted_ice[age=0]" + }, + "minecraft:furnace": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "lit": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:furnace[facing=north,lit=false]" + }, + "minecraft:glass": { + "properties": {}, + "defaultstate": "minecraft:glass" + }, + "minecraft:glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:glowstone": { + "properties": {}, + "defaultstate": "minecraft:glowstone" + }, + "minecraft:gold_block": { + "properties": {}, + "defaultstate": "minecraft:gold_block" + }, + "minecraft:gold_ore": { + "properties": {}, + "defaultstate": "minecraft:gold_ore" + }, + "minecraft:granite": { + "properties": {}, + "defaultstate": "minecraft:granite" + }, + "minecraft:granite_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:granite_slab[type=bottom,waterlogged=false]" + }, + "minecraft:granite_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:granite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:granite_wall": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:granite_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]" + }, + "minecraft:grass": { + "properties": {}, + "defaultstate": "minecraft:grass" + }, + "minecraft:grass_block": { + "properties": { + "snowy": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:grass_block[snowy=false]" + }, + "minecraft:grass_path": { + "properties": {}, + "defaultstate": "minecraft:grass_path" + }, + "minecraft:gravel": { + "properties": {}, + "defaultstate": "minecraft:gravel" + }, + "minecraft:gray_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:gray_banner[rotation=0]" + }, + "minecraft:gray_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:gray_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:gray_carpet": { + "properties": {}, + "defaultstate": "minecraft:gray_carpet" + }, + "minecraft:gray_concrete": { + "properties": {}, + "defaultstate": "minecraft:gray_concrete" + }, + "minecraft:gray_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:gray_concrete_powder" + }, + "minecraft:gray_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:gray_glazed_terracotta[facing=north]" + }, + "minecraft:gray_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:gray_shulker_box[facing=up]" + }, + "minecraft:gray_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:gray_stained_glass" + }, + "minecraft:gray_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:gray_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:gray_terracotta": { + "properties": {}, + "defaultstate": "minecraft:gray_terracotta" + }, + "minecraft:gray_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:gray_wall_banner[facing=north]" + }, + "minecraft:gray_wool": { + "properties": {}, + "defaultstate": "minecraft:gray_wool" + }, + "minecraft:green_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:green_banner[rotation=0]" + }, + "minecraft:green_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:green_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:green_carpet": { + "properties": {}, + "defaultstate": "minecraft:green_carpet" + }, + "minecraft:green_concrete": { + "properties": {}, + "defaultstate": "minecraft:green_concrete" + }, + "minecraft:green_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:green_concrete_powder" + }, + "minecraft:green_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:green_glazed_terracotta[facing=north]" + }, + "minecraft:green_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:green_shulker_box[facing=up]" + }, + "minecraft:green_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:green_stained_glass" + }, + "minecraft:green_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:green_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:green_terracotta": { + "properties": {}, + "defaultstate": "minecraft:green_terracotta" + }, + "minecraft:green_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:green_wall_banner[facing=north]" + }, + "minecraft:green_wool": { + "properties": {}, + "defaultstate": "minecraft:green_wool" + }, + "minecraft:grindstone": { + "properties": { + "face": { + "values": [ + "floor", + "wall", + "ceiling" + ], + "type": "enum" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:grindstone[face=wall,facing=north]" + }, + "minecraft:hay_block": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:hay_block[axis=y]" + }, + "minecraft:heavy_weighted_pressure_plate": { + "properties": { + "power": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:heavy_weighted_pressure_plate[power=0]" + }, + "minecraft:hopper": { + "properties": { + "enabled": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "facing": { + "values": [ + "down", + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:hopper[enabled=true,facing=down]" + }, + "minecraft:horn_coral": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:horn_coral[waterlogged=true]" + }, + "minecraft:horn_coral_block": { + "properties": {}, + "defaultstate": "minecraft:horn_coral_block" + }, + "minecraft:horn_coral_fan": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:horn_coral_fan[waterlogged=true]" + }, + "minecraft:horn_coral_wall_fan": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:horn_coral_wall_fan[facing=north,waterlogged=true]" + }, + "minecraft:ice": { + "properties": {}, + "defaultstate": "minecraft:ice" + }, + "minecraft:infested_chiseled_stone_bricks": { + "properties": {}, + "defaultstate": "minecraft:infested_chiseled_stone_bricks" + }, + "minecraft:infested_cobblestone": { + "properties": {}, + "defaultstate": "minecraft:infested_cobblestone" + }, + "minecraft:infested_cracked_stone_bricks": { + "properties": {}, + "defaultstate": "minecraft:infested_cracked_stone_bricks" + }, + "minecraft:infested_mossy_stone_bricks": { + "properties": {}, + "defaultstate": "minecraft:infested_mossy_stone_bricks" + }, + "minecraft:infested_stone": { + "properties": {}, + "defaultstate": "minecraft:infested_stone" + }, + "minecraft:infested_stone_bricks": { + "properties": {}, + "defaultstate": "minecraft:infested_stone_bricks" + }, + "minecraft:iron_bars": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:iron_bars[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:iron_block": { + "properties": {}, + "defaultstate": "minecraft:iron_block" + }, + "minecraft:iron_door": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + }, + "hinge": { + "values": [ + "left", + "right" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:iron_door[facing=north,half=lower,hinge=left,open=false,powered=false]" + }, + "minecraft:iron_ore": { + "properties": {}, + "defaultstate": "minecraft:iron_ore" + }, + "minecraft:iron_trapdoor": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:iron_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]" + }, + "minecraft:jack_o_lantern": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:jack_o_lantern[facing=north]" + }, + "minecraft:jigsaw": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:jigsaw[facing=up]" + }, + "minecraft:jukebox": { + "properties": { + "has_record": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:jukebox[has_record=false]" + }, + "minecraft:jungle_button": { + "properties": { + "face": { + "values": [ + "floor", + "wall", + "ceiling" + ], + "type": "enum" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:jungle_button[face=wall,facing=north,powered=false]" + }, + "minecraft:jungle_door": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + }, + "hinge": { + "values": [ + "left", + "right" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:jungle_door[facing=north,half=lower,hinge=left,open=false,powered=false]" + }, + "minecraft:jungle_fence": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:jungle_fence[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:jungle_fence_gate": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "in_wall": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:jungle_fence_gate[facing=north,in_wall=false,open=false,powered=false]" + }, + "minecraft:jungle_leaves": { + "properties": { + "distance": { + "values": [ + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ], + "type": "int" + }, + "persistent": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:jungle_leaves[distance=7,persistent=false]" + }, + "minecraft:jungle_log": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:jungle_log[axis=y]" + }, + "minecraft:jungle_planks": { + "properties": {}, + "defaultstate": "minecraft:jungle_planks" + }, + "minecraft:jungle_pressure_plate": { + "properties": { + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:jungle_pressure_plate[powered=false]" + }, + "minecraft:jungle_sapling": { + "properties": { + "stage": { + "values": [ + "0", + "1" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:jungle_sapling[stage=0]" + }, + "minecraft:jungle_sign": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:jungle_sign[rotation=0,waterlogged=false]" + }, + "minecraft:jungle_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:jungle_slab[type=bottom,waterlogged=false]" + }, + "minecraft:jungle_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:jungle_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:jungle_trapdoor": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:jungle_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]" + }, + "minecraft:jungle_wall_sign": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:jungle_wall_sign[facing=north,waterlogged=false]" + }, + "minecraft:jungle_wood": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:jungle_wood[axis=y]" + }, + "minecraft:kelp": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15", + "16", + "17", + "18", + "19", + "20", + "21", + "22", + "23", + "24", + "25" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:kelp[age=0]" + }, + "minecraft:kelp_plant": { + "properties": {}, + "defaultstate": "minecraft:kelp_plant" + }, + "minecraft:ladder": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:ladder[facing=north,waterlogged=false]" + }, + "minecraft:lantern": { + "properties": { + "hanging": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:lantern[hanging=false]" + }, + "minecraft:lapis_block": { + "properties": {}, + "defaultstate": "minecraft:lapis_block" + }, + "minecraft:lapis_ore": { + "properties": {}, + "defaultstate": "minecraft:lapis_ore" + }, + "minecraft:large_fern": { + "properties": { + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:large_fern[half=lower]" + }, + "minecraft:lava": { + "properties": { + "level": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:lava[level=0]" + }, + "minecraft:lectern": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "has_book": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:lectern[facing=north,has_book=false,powered=false]" + }, + "minecraft:lever": { + "properties": { + "face": { + "values": [ + "floor", + "wall", + "ceiling" + ], + "type": "enum" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:lever[face=wall,facing=north,powered=false]" + }, + "minecraft:light_blue_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:light_blue_banner[rotation=0]" + }, + "minecraft:light_blue_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:light_blue_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:light_blue_carpet": { + "properties": {}, + "defaultstate": "minecraft:light_blue_carpet" + }, + "minecraft:light_blue_concrete": { + "properties": {}, + "defaultstate": "minecraft:light_blue_concrete" + }, + "minecraft:light_blue_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:light_blue_concrete_powder" + }, + "minecraft:light_blue_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:light_blue_glazed_terracotta[facing=north]" + }, + "minecraft:light_blue_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:light_blue_shulker_box[facing=up]" + }, + "minecraft:light_blue_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:light_blue_stained_glass" + }, + "minecraft:light_blue_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:light_blue_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:light_blue_terracotta": { + "properties": {}, + "defaultstate": "minecraft:light_blue_terracotta" + }, + "minecraft:light_blue_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:light_blue_wall_banner[facing=north]" + }, + "minecraft:light_blue_wool": { + "properties": {}, + "defaultstate": "minecraft:light_blue_wool" + }, + "minecraft:light_gray_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:light_gray_banner[rotation=0]" + }, + "minecraft:light_gray_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:light_gray_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:light_gray_carpet": { + "properties": {}, + "defaultstate": "minecraft:light_gray_carpet" + }, + "minecraft:light_gray_concrete": { + "properties": {}, + "defaultstate": "minecraft:light_gray_concrete" + }, + "minecraft:light_gray_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:light_gray_concrete_powder" + }, + "minecraft:light_gray_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:light_gray_glazed_terracotta[facing=north]" + }, + "minecraft:light_gray_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:light_gray_shulker_box[facing=up]" + }, + "minecraft:light_gray_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:light_gray_stained_glass" + }, + "minecraft:light_gray_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:light_gray_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:light_gray_terracotta": { + "properties": {}, + "defaultstate": "minecraft:light_gray_terracotta" + }, + "minecraft:light_gray_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:light_gray_wall_banner[facing=north]" + }, + "minecraft:light_gray_wool": { + "properties": {}, + "defaultstate": "minecraft:light_gray_wool" + }, + "minecraft:light_weighted_pressure_plate": { + "properties": { + "power": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:light_weighted_pressure_plate[power=0]" + }, + "minecraft:lilac": { + "properties": { + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:lilac[half=lower]" + }, + "minecraft:lily_of_the_valley": { + "properties": {}, + "defaultstate": "minecraft:lily_of_the_valley" + }, + "minecraft:lily_pad": { + "properties": {}, + "defaultstate": "minecraft:lily_pad" + }, + "minecraft:lime_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:lime_banner[rotation=0]" + }, + "minecraft:lime_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:lime_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:lime_carpet": { + "properties": {}, + "defaultstate": "minecraft:lime_carpet" + }, + "minecraft:lime_concrete": { + "properties": {}, + "defaultstate": "minecraft:lime_concrete" + }, + "minecraft:lime_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:lime_concrete_powder" + }, + "minecraft:lime_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:lime_glazed_terracotta[facing=north]" + }, + "minecraft:lime_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:lime_shulker_box[facing=up]" + }, + "minecraft:lime_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:lime_stained_glass" + }, + "minecraft:lime_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:lime_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:lime_terracotta": { + "properties": {}, + "defaultstate": "minecraft:lime_terracotta" + }, + "minecraft:lime_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:lime_wall_banner[facing=north]" + }, + "minecraft:lime_wool": { + "properties": {}, + "defaultstate": "minecraft:lime_wool" + }, + "minecraft:loom": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:loom[facing=north]" + }, + "minecraft:magenta_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:magenta_banner[rotation=0]" + }, + "minecraft:magenta_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:magenta_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:magenta_carpet": { + "properties": {}, + "defaultstate": "minecraft:magenta_carpet" + }, + "minecraft:magenta_concrete": { + "properties": {}, + "defaultstate": "minecraft:magenta_concrete" + }, + "minecraft:magenta_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:magenta_concrete_powder" + }, + "minecraft:magenta_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:magenta_glazed_terracotta[facing=north]" + }, + "minecraft:magenta_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:magenta_shulker_box[facing=up]" + }, + "minecraft:magenta_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:magenta_stained_glass" + }, + "minecraft:magenta_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:magenta_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:magenta_terracotta": { + "properties": {}, + "defaultstate": "minecraft:magenta_terracotta" + }, + "minecraft:magenta_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:magenta_wall_banner[facing=north]" + }, + "minecraft:magenta_wool": { + "properties": {}, + "defaultstate": "minecraft:magenta_wool" + }, + "minecraft:magma_block": { + "properties": {}, + "defaultstate": "minecraft:magma_block" + }, + "minecraft:melon": { + "properties": {}, + "defaultstate": "minecraft:melon" + }, + "minecraft:melon_stem": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:melon_stem[age=0]" + }, + "minecraft:mossy_cobblestone": { + "properties": {}, + "defaultstate": "minecraft:mossy_cobblestone" + }, + "minecraft:mossy_cobblestone_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:mossy_cobblestone_slab[type=bottom,waterlogged=false]" + }, + "minecraft:mossy_cobblestone_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:mossy_cobblestone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:mossy_cobblestone_wall": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:mossy_cobblestone_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]" + }, + "minecraft:mossy_stone_brick_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:mossy_stone_brick_slab[type=bottom,waterlogged=false]" + }, + "minecraft:mossy_stone_brick_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:mossy_stone_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:mossy_stone_brick_wall": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:mossy_stone_brick_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]" + }, + "minecraft:mossy_stone_bricks": { + "properties": {}, + "defaultstate": "minecraft:mossy_stone_bricks" + }, + "minecraft:moving_piston": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + }, + "type": { + "values": [ + "normal", + "sticky" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:moving_piston[facing=north,type=normal]" + }, + "minecraft:mushroom_stem": { + "properties": { + "down": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:mushroom_stem[down=true,east=true,north=true,south=true,up=true,west=true]" + }, + "minecraft:mycelium": { + "properties": { + "snowy": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:mycelium[snowy=false]" + }, + "minecraft:nether_brick_fence": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:nether_brick_fence[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:nether_brick_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:nether_brick_slab[type=bottom,waterlogged=false]" + }, + "minecraft:nether_brick_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:nether_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:nether_brick_wall": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:nether_brick_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]" + }, + "minecraft:nether_bricks": { + "properties": {}, + "defaultstate": "minecraft:nether_bricks" + }, + "minecraft:nether_portal": { + "properties": { + "axis": { + "values": [ + "x", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:nether_portal[axis=x]" + }, + "minecraft:nether_quartz_ore": { + "properties": {}, + "defaultstate": "minecraft:nether_quartz_ore" + }, + "minecraft:nether_wart": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:nether_wart[age=0]" + }, + "minecraft:nether_wart_block": { + "properties": {}, + "defaultstate": "minecraft:nether_wart_block" + }, + "minecraft:netherrack": { + "properties": {}, + "defaultstate": "minecraft:netherrack" + }, + "minecraft:note_block": { + "properties": { + "instrument": { + "values": [ + "harp", + "basedrum", + "snare", + "hat", + "bass", + "flute", + "bell", + "guitar", + "chime", + "xylophone", + "iron_xylophone", + "cow_bell", + "didgeridoo", + "bit", + "banjo", + "pling" + ], + "type": "enum" + }, + "note": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15", + "16", + "17", + "18", + "19", + "20", + "21", + "22", + "23", + "24" + ], + "type": "int" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:note_block[instrument=harp,note=0,powered=false]" + }, + "minecraft:oak_button": { + "properties": { + "face": { + "values": [ + "floor", + "wall", + "ceiling" + ], + "type": "enum" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:oak_button[face=wall,facing=north,powered=false]" + }, + "minecraft:oak_door": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + }, + "hinge": { + "values": [ + "left", + "right" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:oak_door[facing=north,half=lower,hinge=left,open=false,powered=false]" + }, + "minecraft:oak_fence": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:oak_fence[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:oak_fence_gate": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "in_wall": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:oak_fence_gate[facing=north,in_wall=false,open=false,powered=false]" + }, + "minecraft:oak_leaves": { + "properties": { + "distance": { + "values": [ + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ], + "type": "int" + }, + "persistent": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:oak_leaves[distance=7,persistent=false]" + }, + "minecraft:oak_log": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:oak_log[axis=y]" + }, + "minecraft:oak_planks": { + "properties": {}, + "defaultstate": "minecraft:oak_planks" + }, + "minecraft:oak_pressure_plate": { + "properties": { + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:oak_pressure_plate[powered=false]" + }, + "minecraft:oak_sapling": { + "properties": { + "stage": { + "values": [ + "0", + "1" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:oak_sapling[stage=0]" + }, + "minecraft:oak_sign": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:oak_sign[rotation=0,waterlogged=false]" + }, + "minecraft:oak_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:oak_slab[type=bottom,waterlogged=false]" + }, + "minecraft:oak_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:oak_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:oak_trapdoor": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:oak_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]" + }, + "minecraft:oak_wall_sign": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:oak_wall_sign[facing=north,waterlogged=false]" + }, + "minecraft:oak_wood": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:oak_wood[axis=y]" + }, + "minecraft:observer": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:observer[facing=south,powered=false]" + }, + "minecraft:obsidian": { + "properties": {}, + "defaultstate": "minecraft:obsidian" + }, + "minecraft:orange_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:orange_banner[rotation=0]" + }, + "minecraft:orange_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:orange_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:orange_carpet": { + "properties": {}, + "defaultstate": "minecraft:orange_carpet" + }, + "minecraft:orange_concrete": { + "properties": {}, + "defaultstate": "minecraft:orange_concrete" + }, + "minecraft:orange_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:orange_concrete_powder" + }, + "minecraft:orange_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:orange_glazed_terracotta[facing=north]" + }, + "minecraft:orange_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:orange_shulker_box[facing=up]" + }, + "minecraft:orange_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:orange_stained_glass" + }, + "minecraft:orange_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:orange_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:orange_terracotta": { + "properties": {}, + "defaultstate": "minecraft:orange_terracotta" + }, + "minecraft:orange_tulip": { + "properties": {}, + "defaultstate": "minecraft:orange_tulip" + }, + "minecraft:orange_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:orange_wall_banner[facing=north]" + }, + "minecraft:orange_wool": { + "properties": {}, + "defaultstate": "minecraft:orange_wool" + }, + "minecraft:oxeye_daisy": { + "properties": {}, + "defaultstate": "minecraft:oxeye_daisy" + }, + "minecraft:packed_ice": { + "properties": {}, + "defaultstate": "minecraft:packed_ice" + }, + "minecraft:peony": { + "properties": { + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:peony[half=lower]" + }, + "minecraft:petrified_oak_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:petrified_oak_slab[type=bottom,waterlogged=false]" + }, + "minecraft:pink_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:pink_banner[rotation=0]" + }, + "minecraft:pink_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:pink_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:pink_carpet": { + "properties": {}, + "defaultstate": "minecraft:pink_carpet" + }, + "minecraft:pink_concrete": { + "properties": {}, + "defaultstate": "minecraft:pink_concrete" + }, + "minecraft:pink_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:pink_concrete_powder" + }, + "minecraft:pink_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:pink_glazed_terracotta[facing=north]" + }, + "minecraft:pink_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:pink_shulker_box[facing=up]" + }, + "minecraft:pink_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:pink_stained_glass" + }, + "minecraft:pink_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:pink_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:pink_terracotta": { + "properties": {}, + "defaultstate": "minecraft:pink_terracotta" + }, + "minecraft:pink_tulip": { + "properties": {}, + "defaultstate": "minecraft:pink_tulip" + }, + "minecraft:pink_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:pink_wall_banner[facing=north]" + }, + "minecraft:pink_wool": { + "properties": {}, + "defaultstate": "minecraft:pink_wool" + }, + "minecraft:piston": { + "properties": { + "extended": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:piston[extended=false,facing=north]" + }, + "minecraft:piston_head": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + }, + "short": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "type": { + "values": [ + "normal", + "sticky" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:piston_head[facing=north,short=false,type=normal]" + }, + "minecraft:player_head": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:player_head[rotation=0]" + }, + "minecraft:player_wall_head": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:player_wall_head[facing=north]" + }, + "minecraft:podzol": { + "properties": { + "snowy": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:podzol[snowy=false]" + }, + "minecraft:polished_andesite": { + "properties": {}, + "defaultstate": "minecraft:polished_andesite" + }, + "minecraft:polished_andesite_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:polished_andesite_slab[type=bottom,waterlogged=false]" + }, + "minecraft:polished_andesite_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:polished_andesite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:polished_diorite": { + "properties": {}, + "defaultstate": "minecraft:polished_diorite" + }, + "minecraft:polished_diorite_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:polished_diorite_slab[type=bottom,waterlogged=false]" + }, + "minecraft:polished_diorite_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:polished_diorite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:polished_granite": { + "properties": {}, + "defaultstate": "minecraft:polished_granite" + }, + "minecraft:polished_granite_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:polished_granite_slab[type=bottom,waterlogged=false]" + }, + "minecraft:polished_granite_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:polished_granite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:poppy": { + "properties": {}, + "defaultstate": "minecraft:poppy" + }, + "minecraft:potatoes": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:potatoes[age=0]" + }, + "minecraft:potted_acacia_sapling": { + "properties": {}, + "defaultstate": "minecraft:potted_acacia_sapling" + }, + "minecraft:potted_allium": { + "properties": {}, + "defaultstate": "minecraft:potted_allium" + }, + "minecraft:potted_azure_bluet": { + "properties": {}, + "defaultstate": "minecraft:potted_azure_bluet" + }, + "minecraft:potted_bamboo": { + "properties": {}, + "defaultstate": "minecraft:potted_bamboo" + }, + "minecraft:potted_birch_sapling": { + "properties": {}, + "defaultstate": "minecraft:potted_birch_sapling" + }, + "minecraft:potted_blue_orchid": { + "properties": {}, + "defaultstate": "minecraft:potted_blue_orchid" + }, + "minecraft:potted_brown_mushroom": { + "properties": {}, + "defaultstate": "minecraft:potted_brown_mushroom" + }, + "minecraft:potted_cactus": { + "properties": {}, + "defaultstate": "minecraft:potted_cactus" + }, + "minecraft:potted_cornflower": { + "properties": {}, + "defaultstate": "minecraft:potted_cornflower" + }, + "minecraft:potted_dandelion": { + "properties": {}, + "defaultstate": "minecraft:potted_dandelion" + }, + "minecraft:potted_dark_oak_sapling": { + "properties": {}, + "defaultstate": "minecraft:potted_dark_oak_sapling" + }, + "minecraft:potted_dead_bush": { + "properties": {}, + "defaultstate": "minecraft:potted_dead_bush" + }, + "minecraft:potted_fern": { + "properties": {}, + "defaultstate": "minecraft:potted_fern" + }, + "minecraft:potted_jungle_sapling": { + "properties": {}, + "defaultstate": "minecraft:potted_jungle_sapling" + }, + "minecraft:potted_lily_of_the_valley": { + "properties": {}, + "defaultstate": "minecraft:potted_lily_of_the_valley" + }, + "minecraft:potted_oak_sapling": { + "properties": {}, + "defaultstate": "minecraft:potted_oak_sapling" + }, + "minecraft:potted_orange_tulip": { + "properties": {}, + "defaultstate": "minecraft:potted_orange_tulip" + }, + "minecraft:potted_oxeye_daisy": { + "properties": {}, + "defaultstate": "minecraft:potted_oxeye_daisy" + }, + "minecraft:potted_pink_tulip": { + "properties": {}, + "defaultstate": "minecraft:potted_pink_tulip" + }, + "minecraft:potted_poppy": { + "properties": {}, + "defaultstate": "minecraft:potted_poppy" + }, + "minecraft:potted_red_mushroom": { + "properties": {}, + "defaultstate": "minecraft:potted_red_mushroom" + }, + "minecraft:potted_red_tulip": { + "properties": {}, + "defaultstate": "minecraft:potted_red_tulip" + }, + "minecraft:potted_spruce_sapling": { + "properties": {}, + "defaultstate": "minecraft:potted_spruce_sapling" + }, + "minecraft:potted_white_tulip": { + "properties": {}, + "defaultstate": "minecraft:potted_white_tulip" + }, + "minecraft:potted_wither_rose": { + "properties": {}, + "defaultstate": "minecraft:potted_wither_rose" + }, + "minecraft:powered_rail": { + "properties": { + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "shape": { + "values": [ + "north_south", + "east_west", + "ascending_east", + "ascending_west", + "ascending_north", + "ascending_south" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:powered_rail[powered=false,shape=north_south]" + }, + "minecraft:prismarine": { + "properties": {}, + "defaultstate": "minecraft:prismarine" + }, + "minecraft:prismarine_brick_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:prismarine_brick_slab[type=bottom,waterlogged=false]" + }, + "minecraft:prismarine_brick_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:prismarine_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:prismarine_bricks": { + "properties": {}, + "defaultstate": "minecraft:prismarine_bricks" + }, + "minecraft:prismarine_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:prismarine_slab[type=bottom,waterlogged=false]" + }, + "minecraft:prismarine_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:prismarine_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:prismarine_wall": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:prismarine_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]" + }, + "minecraft:pumpkin": { + "properties": {}, + "defaultstate": "minecraft:pumpkin" + }, + "minecraft:pumpkin_stem": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:pumpkin_stem[age=0]" + }, + "minecraft:purple_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:purple_banner[rotation=0]" + }, + "minecraft:purple_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:purple_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:purple_carpet": { + "properties": {}, + "defaultstate": "minecraft:purple_carpet" + }, + "minecraft:purple_concrete": { + "properties": {}, + "defaultstate": "minecraft:purple_concrete" + }, + "minecraft:purple_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:purple_concrete_powder" + }, + "minecraft:purple_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:purple_glazed_terracotta[facing=north]" + }, + "minecraft:purple_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:purple_shulker_box[facing=up]" + }, + "minecraft:purple_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:purple_stained_glass" + }, + "minecraft:purple_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:purple_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:purple_terracotta": { + "properties": {}, + "defaultstate": "minecraft:purple_terracotta" + }, + "minecraft:purple_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:purple_wall_banner[facing=north]" + }, + "minecraft:purple_wool": { + "properties": {}, + "defaultstate": "minecraft:purple_wool" + }, + "minecraft:purpur_block": { + "properties": {}, + "defaultstate": "minecraft:purpur_block" + }, + "minecraft:purpur_pillar": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:purpur_pillar[axis=y]" + }, + "minecraft:purpur_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:purpur_slab[type=bottom,waterlogged=false]" + }, + "minecraft:purpur_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:purpur_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:quartz_block": { + "properties": {}, + "defaultstate": "minecraft:quartz_block" + }, + "minecraft:quartz_pillar": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:quartz_pillar[axis=y]" + }, + "minecraft:quartz_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:quartz_slab[type=bottom,waterlogged=false]" + }, + "minecraft:quartz_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:quartz_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:rail": { + "properties": { + "shape": { + "values": [ + "north_south", + "east_west", + "ascending_east", + "ascending_west", + "ascending_north", + "ascending_south", + "south_east", + "south_west", + "north_west", + "north_east" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:rail[shape=north_south]" + }, + "minecraft:red_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:red_banner[rotation=0]" + }, + "minecraft:red_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:red_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:red_carpet": { + "properties": {}, + "defaultstate": "minecraft:red_carpet" + }, + "minecraft:red_concrete": { + "properties": {}, + "defaultstate": "minecraft:red_concrete" + }, + "minecraft:red_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:red_concrete_powder" + }, + "minecraft:red_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:red_glazed_terracotta[facing=north]" + }, + "minecraft:red_mushroom": { + "properties": {}, + "defaultstate": "minecraft:red_mushroom" + }, + "minecraft:red_mushroom_block": { + "properties": { + "down": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:red_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true]" + }, + "minecraft:red_nether_brick_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:red_nether_brick_slab[type=bottom,waterlogged=false]" + }, + "minecraft:red_nether_brick_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:red_nether_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:red_nether_brick_wall": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:red_nether_brick_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]" + }, + "minecraft:red_nether_bricks": { + "properties": {}, + "defaultstate": "minecraft:red_nether_bricks" + }, + "minecraft:red_sand": { + "properties": {}, + "defaultstate": "minecraft:red_sand" + }, + "minecraft:red_sandstone": { + "properties": {}, + "defaultstate": "minecraft:red_sandstone" + }, + "minecraft:red_sandstone_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:red_sandstone_slab[type=bottom,waterlogged=false]" + }, + "minecraft:red_sandstone_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:red_sandstone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:red_sandstone_wall": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:red_sandstone_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]" + }, + "minecraft:red_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:red_shulker_box[facing=up]" + }, + "minecraft:red_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:red_stained_glass" + }, + "minecraft:red_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:red_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:red_terracotta": { + "properties": {}, + "defaultstate": "minecraft:red_terracotta" + }, + "minecraft:red_tulip": { + "properties": {}, + "defaultstate": "minecraft:red_tulip" + }, + "minecraft:red_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:red_wall_banner[facing=north]" + }, + "minecraft:red_wool": { + "properties": {}, + "defaultstate": "minecraft:red_wool" + }, + "minecraft:redstone_block": { + "properties": {}, + "defaultstate": "minecraft:redstone_block" + }, + "minecraft:redstone_lamp": { + "properties": { + "lit": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:redstone_lamp[lit=false]" + }, + "minecraft:redstone_ore": { + "properties": { + "lit": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:redstone_ore[lit=false]" + }, + "minecraft:redstone_torch": { + "properties": { + "lit": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:redstone_torch[lit=true]" + }, + "minecraft:redstone_wall_torch": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "lit": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:redstone_wall_torch[facing=north,lit=true]" + }, + "minecraft:redstone_wire": { + "properties": { + "east": { + "values": [ + "up", + "side", + "none" + ], + "type": "enum" + }, + "north": { + "values": [ + "up", + "side", + "none" + ], + "type": "enum" + }, + "power": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + }, + "south": { + "values": [ + "up", + "side", + "none" + ], + "type": "enum" + }, + "west": { + "values": [ + "up", + "side", + "none" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:redstone_wire[east=none,north=none,power=0,south=none,west=none]" + }, + "minecraft:repeater": { + "properties": { + "delay": { + "values": [ + "1", + "2", + "3", + "4" + ], + "type": "int" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "locked": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:repeater[delay=1,facing=north,locked=false,powered=false]" + }, + "minecraft:repeating_command_block": { + "properties": { + "conditional": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:repeating_command_block[conditional=false,facing=north]" + }, + "minecraft:rose_bush": { + "properties": { + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:rose_bush[half=lower]" + }, + "minecraft:sand": { + "properties": {}, + "defaultstate": "minecraft:sand" + }, + "minecraft:sandstone": { + "properties": {}, + "defaultstate": "minecraft:sandstone" + }, + "minecraft:sandstone_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:sandstone_slab[type=bottom,waterlogged=false]" + }, + "minecraft:sandstone_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:sandstone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:sandstone_wall": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:sandstone_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]" + }, + "minecraft:scaffolding": { + "properties": { + "bottom": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "distance": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ], + "type": "int" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:scaffolding[bottom=false,distance=7,waterlogged=false]" + }, + "minecraft:sea_lantern": { + "properties": {}, + "defaultstate": "minecraft:sea_lantern" + }, + "minecraft:sea_pickle": { + "properties": { + "pickles": { + "values": [ + "1", + "2", + "3", + "4" + ], + "type": "int" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:sea_pickle[pickles=1,waterlogged=true]" + }, + "minecraft:seagrass": { + "properties": {}, + "defaultstate": "minecraft:seagrass" + }, + "minecraft:shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:shulker_box[facing=up]" + }, + "minecraft:skeleton_skull": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:skeleton_skull[rotation=0]" + }, + "minecraft:skeleton_wall_skull": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:skeleton_wall_skull[facing=north]" + }, + "minecraft:slime_block": { + "properties": {}, + "defaultstate": "minecraft:slime_block" + }, + "minecraft:smithing_table": { + "properties": {}, + "defaultstate": "minecraft:smithing_table" + }, + "minecraft:smoker": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "lit": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:smoker[facing=north,lit=false]" + }, + "minecraft:smooth_quartz": { + "properties": {}, + "defaultstate": "minecraft:smooth_quartz" + }, + "minecraft:smooth_quartz_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:smooth_quartz_slab[type=bottom,waterlogged=false]" + }, + "minecraft:smooth_quartz_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:smooth_quartz_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:smooth_red_sandstone": { + "properties": {}, + "defaultstate": "minecraft:smooth_red_sandstone" + }, + "minecraft:smooth_red_sandstone_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:smooth_red_sandstone_slab[type=bottom,waterlogged=false]" + }, + "minecraft:smooth_red_sandstone_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:smooth_red_sandstone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:smooth_sandstone": { + "properties": {}, + "defaultstate": "minecraft:smooth_sandstone" + }, + "minecraft:smooth_sandstone_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:smooth_sandstone_slab[type=bottom,waterlogged=false]" + }, + "minecraft:smooth_sandstone_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:smooth_sandstone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:smooth_stone": { + "properties": {}, + "defaultstate": "minecraft:smooth_stone" + }, + "minecraft:smooth_stone_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:smooth_stone_slab[type=bottom,waterlogged=false]" + }, + "minecraft:snow": { + "properties": { + "layers": { + "values": [ + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:snow[layers=1]" + }, + "minecraft:snow_block": { + "properties": {}, + "defaultstate": "minecraft:snow_block" + }, + "minecraft:soul_sand": { + "properties": {}, + "defaultstate": "minecraft:soul_sand" + }, + "minecraft:spawner": { + "properties": {}, + "defaultstate": "minecraft:spawner" + }, + "minecraft:sponge": { + "properties": {}, + "defaultstate": "minecraft:sponge" + }, + "minecraft:spruce_button": { + "properties": { + "face": { + "values": [ + "floor", + "wall", + "ceiling" + ], + "type": "enum" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:spruce_button[face=wall,facing=north,powered=false]" + }, + "minecraft:spruce_door": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + }, + "hinge": { + "values": [ + "left", + "right" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:spruce_door[facing=north,half=lower,hinge=left,open=false,powered=false]" + }, + "minecraft:spruce_fence": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:spruce_fence[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:spruce_fence_gate": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "in_wall": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:spruce_fence_gate[facing=north,in_wall=false,open=false,powered=false]" + }, + "minecraft:spruce_leaves": { + "properties": { + "distance": { + "values": [ + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ], + "type": "int" + }, + "persistent": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:spruce_leaves[distance=7,persistent=false]" + }, + "minecraft:spruce_log": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:spruce_log[axis=y]" + }, + "minecraft:spruce_planks": { + "properties": {}, + "defaultstate": "minecraft:spruce_planks" + }, + "minecraft:spruce_pressure_plate": { + "properties": { + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:spruce_pressure_plate[powered=false]" + }, + "minecraft:spruce_sapling": { + "properties": { + "stage": { + "values": [ + "0", + "1" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:spruce_sapling[stage=0]" + }, + "minecraft:spruce_sign": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:spruce_sign[rotation=0,waterlogged=false]" + }, + "minecraft:spruce_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:spruce_slab[type=bottom,waterlogged=false]" + }, + "minecraft:spruce_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:spruce_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:spruce_trapdoor": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:spruce_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]" + }, + "minecraft:spruce_wall_sign": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:spruce_wall_sign[facing=north,waterlogged=false]" + }, + "minecraft:spruce_wood": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:spruce_wood[axis=y]" + }, + "minecraft:sticky_piston": { + "properties": { + "extended": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:sticky_piston[extended=false,facing=north]" + }, + "minecraft:stone": { + "properties": {}, + "defaultstate": "minecraft:stone" + }, + "minecraft:stone_brick_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:stone_brick_slab[type=bottom,waterlogged=false]" + }, + "minecraft:stone_brick_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:stone_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:stone_brick_wall": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:stone_brick_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]" + }, + "minecraft:stone_bricks": { + "properties": {}, + "defaultstate": "minecraft:stone_bricks" + }, + "minecraft:stone_button": { + "properties": { + "face": { + "values": [ + "floor", + "wall", + "ceiling" + ], + "type": "enum" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:stone_button[face=wall,facing=north,powered=false]" + }, + "minecraft:stone_pressure_plate": { + "properties": { + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:stone_pressure_plate[powered=false]" + }, + "minecraft:stone_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:stone_slab[type=bottom,waterlogged=false]" + }, + "minecraft:stone_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:stone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:stonecutter": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:stonecutter[facing=north]" + }, + "minecraft:stripped_acacia_log": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:stripped_acacia_log[axis=y]" + }, + "minecraft:stripped_acacia_wood": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:stripped_acacia_wood[axis=y]" + }, + "minecraft:stripped_birch_log": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:stripped_birch_log[axis=y]" + }, + "minecraft:stripped_birch_wood": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:stripped_birch_wood[axis=y]" + }, + "minecraft:stripped_dark_oak_log": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:stripped_dark_oak_log[axis=y]" + }, + "minecraft:stripped_dark_oak_wood": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:stripped_dark_oak_wood[axis=y]" + }, + "minecraft:stripped_jungle_log": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:stripped_jungle_log[axis=y]" + }, + "minecraft:stripped_jungle_wood": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:stripped_jungle_wood[axis=y]" + }, + "minecraft:stripped_oak_log": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:stripped_oak_log[axis=y]" + }, + "minecraft:stripped_oak_wood": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:stripped_oak_wood[axis=y]" + }, + "minecraft:stripped_spruce_log": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:stripped_spruce_log[axis=y]" + }, + "minecraft:stripped_spruce_wood": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:stripped_spruce_wood[axis=y]" + }, + "minecraft:structure_block": { + "properties": { + "mode": { + "values": [ + "save", + "load", + "corner", + "data" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:structure_block[mode=save]" + }, + "minecraft:structure_void": { + "properties": {}, + "defaultstate": "minecraft:structure_void" + }, + "minecraft:sugar_cane": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:sugar_cane[age=0]" + }, + "minecraft:sunflower": { + "properties": { + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:sunflower[half=lower]" + }, + "minecraft:sweet_berry_bush": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:sweet_berry_bush[age=0]" + }, + "minecraft:tall_grass": { + "properties": { + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:tall_grass[half=lower]" + }, + "minecraft:tall_seagrass": { + "properties": { + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:tall_seagrass[half=lower]" + }, + "minecraft:terracotta": { + "properties": {}, + "defaultstate": "minecraft:terracotta" + }, + "minecraft:tnt": { + "properties": { + "unstable": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:tnt[unstable=false]" + }, + "minecraft:torch": { + "properties": {}, + "defaultstate": "minecraft:torch" + }, + "minecraft:trapped_chest": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "type": { + "values": [ + "single", + "left", + "right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:trapped_chest[facing=north,type=single,waterlogged=false]" + }, + "minecraft:tripwire": { + "properties": { + "attached": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "disarmed": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:tripwire[attached=false,disarmed=false,east=false,north=false,powered=false,south=false,west=false]" + }, + "minecraft:tripwire_hook": { + "properties": { + "attached": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:tripwire_hook[attached=false,facing=north,powered=false]" + }, + "minecraft:tube_coral": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:tube_coral[waterlogged=true]" + }, + "minecraft:tube_coral_block": { + "properties": {}, + "defaultstate": "minecraft:tube_coral_block" + }, + "minecraft:tube_coral_fan": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:tube_coral_fan[waterlogged=true]" + }, + "minecraft:tube_coral_wall_fan": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:tube_coral_wall_fan[facing=north,waterlogged=true]" + }, + "minecraft:turtle_egg": { + "properties": { + "eggs": { + "values": [ + "1", + "2", + "3", + "4" + ], + "type": "int" + }, + "hatch": { + "values": [ + "0", + "1", + "2" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:turtle_egg[eggs=1,hatch=0]" + }, + "minecraft:vine": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:vine[east=false,north=false,south=false,up=false,west=false]" + }, + "minecraft:void_air": { + "properties": {}, + "defaultstate": "minecraft:void_air" + }, + "minecraft:wall_torch": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:wall_torch[facing=north]" + }, + "minecraft:water": { + "properties": { + "level": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:water[level=0]" + }, + "minecraft:wet_sponge": { + "properties": {}, + "defaultstate": "minecraft:wet_sponge" + }, + "minecraft:wheat": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:wheat[age=0]" + }, + "minecraft:white_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:white_banner[rotation=0]" + }, + "minecraft:white_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:white_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:white_carpet": { + "properties": {}, + "defaultstate": "minecraft:white_carpet" + }, + "minecraft:white_concrete": { + "properties": {}, + "defaultstate": "minecraft:white_concrete" + }, + "minecraft:white_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:white_concrete_powder" + }, + "minecraft:white_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:white_glazed_terracotta[facing=north]" + }, + "minecraft:white_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:white_shulker_box[facing=up]" + }, + "minecraft:white_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:white_stained_glass" + }, + "minecraft:white_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:white_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:white_terracotta": { + "properties": {}, + "defaultstate": "minecraft:white_terracotta" + }, + "minecraft:white_tulip": { + "properties": {}, + "defaultstate": "minecraft:white_tulip" + }, + "minecraft:white_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:white_wall_banner[facing=north]" + }, + "minecraft:white_wool": { + "properties": {}, + "defaultstate": "minecraft:white_wool" + }, + "minecraft:wither_rose": { + "properties": {}, + "defaultstate": "minecraft:wither_rose" + }, + "minecraft:wither_skeleton_skull": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:wither_skeleton_skull[rotation=0]" + }, + "minecraft:wither_skeleton_wall_skull": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:wither_skeleton_wall_skull[facing=north]" + }, + "minecraft:yellow_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:yellow_banner[rotation=0]" + }, + "minecraft:yellow_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:yellow_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:yellow_carpet": { + "properties": {}, + "defaultstate": "minecraft:yellow_carpet" + }, + "minecraft:yellow_concrete": { + "properties": {}, + "defaultstate": "minecraft:yellow_concrete" + }, + "minecraft:yellow_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:yellow_concrete_powder" + }, + "minecraft:yellow_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:yellow_glazed_terracotta[facing=north]" + }, + "minecraft:yellow_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:yellow_shulker_box[facing=up]" + }, + "minecraft:yellow_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:yellow_stained_glass" + }, + "minecraft:yellow_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:yellow_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:yellow_terracotta": { + "properties": {}, + "defaultstate": "minecraft:yellow_terracotta" + }, + "minecraft:yellow_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:yellow_wall_banner[facing=north]" + }, + "minecraft:yellow_wool": { + "properties": {}, + "defaultstate": "minecraft:yellow_wool" + }, + "minecraft:zombie_head": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:zombie_head[rotation=0]" + }, + "minecraft:zombie_wall_head": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:zombie_wall_head[facing=north]" + } + }, + "items": [ + "minecraft:acacia_boat", + "minecraft:acacia_button", + "minecraft:acacia_door", + "minecraft:acacia_fence", + "minecraft:acacia_fence_gate", + "minecraft:acacia_leaves", + "minecraft:acacia_log", + "minecraft:acacia_planks", + "minecraft:acacia_pressure_plate", + "minecraft:acacia_sapling", + "minecraft:acacia_sign", + "minecraft:acacia_slab", + "minecraft:acacia_stairs", + "minecraft:acacia_trapdoor", + "minecraft:acacia_wood", + "minecraft:activator_rail", + "minecraft:air", + "minecraft:allium", + "minecraft:andesite", + "minecraft:andesite_slab", + "minecraft:andesite_stairs", + "minecraft:andesite_wall", + "minecraft:anvil", + "minecraft:apple", + "minecraft:armor_stand", + "minecraft:arrow", + "minecraft:azure_bluet", + "minecraft:baked_potato", + "minecraft:bamboo", + "minecraft:barrel", + "minecraft:barrier", + "minecraft:bat_spawn_egg", + "minecraft:beacon", + "minecraft:bedrock", + "minecraft:beef", + "minecraft:beetroot", + "minecraft:beetroot_seeds", + "minecraft:beetroot_soup", + "minecraft:bell", + "minecraft:birch_boat", + "minecraft:birch_button", + "minecraft:birch_door", + "minecraft:birch_fence", + "minecraft:birch_fence_gate", + "minecraft:birch_leaves", + "minecraft:birch_log", + "minecraft:birch_planks", + "minecraft:birch_pressure_plate", + "minecraft:birch_sapling", + "minecraft:birch_sign", + "minecraft:birch_slab", + "minecraft:birch_stairs", + "minecraft:birch_trapdoor", + "minecraft:birch_wood", + "minecraft:black_banner", + "minecraft:black_bed", + "minecraft:black_carpet", + "minecraft:black_concrete", + "minecraft:black_concrete_powder", + "minecraft:black_dye", + "minecraft:black_glazed_terracotta", + "minecraft:black_shulker_box", + "minecraft:black_stained_glass", + "minecraft:black_stained_glass_pane", + "minecraft:black_terracotta", + "minecraft:black_wool", + "minecraft:blast_furnace", + "minecraft:blaze_powder", + "minecraft:blaze_rod", + "minecraft:blaze_spawn_egg", + "minecraft:blue_banner", + "minecraft:blue_bed", + "minecraft:blue_carpet", + "minecraft:blue_concrete", + "minecraft:blue_concrete_powder", + "minecraft:blue_dye", + "minecraft:blue_glazed_terracotta", + "minecraft:blue_ice", + "minecraft:blue_orchid", + "minecraft:blue_shulker_box", + "minecraft:blue_stained_glass", + "minecraft:blue_stained_glass_pane", + "minecraft:blue_terracotta", + "minecraft:blue_wool", + "minecraft:bone", + "minecraft:bone_block", + "minecraft:bone_meal", + "minecraft:book", + "minecraft:bookshelf", + "minecraft:bow", + "minecraft:bowl", + "minecraft:brain_coral", + "minecraft:brain_coral_block", + "minecraft:brain_coral_fan", + "minecraft:bread", + "minecraft:brewing_stand", + "minecraft:brick", + "minecraft:brick_slab", + "minecraft:brick_stairs", + "minecraft:brick_wall", + "minecraft:bricks", + "minecraft:brown_banner", + "minecraft:brown_bed", + "minecraft:brown_carpet", + "minecraft:brown_concrete", + "minecraft:brown_concrete_powder", + "minecraft:brown_dye", + "minecraft:brown_glazed_terracotta", + "minecraft:brown_mushroom", + "minecraft:brown_mushroom_block", + "minecraft:brown_shulker_box", + "minecraft:brown_stained_glass", + "minecraft:brown_stained_glass_pane", + "minecraft:brown_terracotta", + "minecraft:brown_wool", + "minecraft:bubble_coral", + "minecraft:bubble_coral_block", + "minecraft:bubble_coral_fan", + "minecraft:bucket", + "minecraft:cactus", + "minecraft:cake", + "minecraft:campfire", + "minecraft:carrot", + "minecraft:carrot_on_a_stick", + "minecraft:cartography_table", + "minecraft:carved_pumpkin", + "minecraft:cat_spawn_egg", + "minecraft:cauldron", + "minecraft:cave_spider_spawn_egg", + "minecraft:chain_command_block", + "minecraft:chainmail_boots", + "minecraft:chainmail_chestplate", + "minecraft:chainmail_helmet", + "minecraft:chainmail_leggings", + "minecraft:charcoal", + "minecraft:chest", + "minecraft:chest_minecart", + "minecraft:chicken", + "minecraft:chicken_spawn_egg", + "minecraft:chipped_anvil", + "minecraft:chiseled_quartz_block", + "minecraft:chiseled_red_sandstone", + "minecraft:chiseled_sandstone", + "minecraft:chiseled_stone_bricks", + "minecraft:chorus_flower", + "minecraft:chorus_fruit", + "minecraft:chorus_plant", + "minecraft:clay", + "minecraft:clay_ball", + "minecraft:clock", + "minecraft:coal", + "minecraft:coal_block", + "minecraft:coal_ore", + "minecraft:coarse_dirt", + "minecraft:cobblestone", + "minecraft:cobblestone_slab", + "minecraft:cobblestone_stairs", + "minecraft:cobblestone_wall", + "minecraft:cobweb", + "minecraft:cocoa_beans", + "minecraft:cod", + "minecraft:cod_bucket", + "minecraft:cod_spawn_egg", + "minecraft:command_block", + "minecraft:command_block_minecart", + "minecraft:comparator", + "minecraft:compass", + "minecraft:composter", + "minecraft:conduit", + "minecraft:cooked_beef", + "minecraft:cooked_chicken", + "minecraft:cooked_cod", + "minecraft:cooked_mutton", + "minecraft:cooked_porkchop", + "minecraft:cooked_rabbit", + "minecraft:cooked_salmon", + "minecraft:cookie", + "minecraft:cornflower", + "minecraft:cow_spawn_egg", + "minecraft:cracked_stone_bricks", + "minecraft:crafting_table", + "minecraft:creeper_banner_pattern", + "minecraft:creeper_head", + "minecraft:creeper_spawn_egg", + "minecraft:crossbow", + "minecraft:cut_red_sandstone", + "minecraft:cut_red_sandstone_slab", + "minecraft:cut_sandstone", + "minecraft:cut_sandstone_slab", + "minecraft:cyan_banner", + "minecraft:cyan_bed", + "minecraft:cyan_carpet", + "minecraft:cyan_concrete", + "minecraft:cyan_concrete_powder", + "minecraft:cyan_dye", + "minecraft:cyan_glazed_terracotta", + "minecraft:cyan_shulker_box", + "minecraft:cyan_stained_glass", + "minecraft:cyan_stained_glass_pane", + "minecraft:cyan_terracotta", + "minecraft:cyan_wool", + "minecraft:damaged_anvil", + "minecraft:dandelion", + "minecraft:dark_oak_boat", + "minecraft:dark_oak_button", + "minecraft:dark_oak_door", + "minecraft:dark_oak_fence", + "minecraft:dark_oak_fence_gate", + "minecraft:dark_oak_leaves", + "minecraft:dark_oak_log", + "minecraft:dark_oak_planks", + "minecraft:dark_oak_pressure_plate", + "minecraft:dark_oak_sapling", + "minecraft:dark_oak_sign", + "minecraft:dark_oak_slab", + "minecraft:dark_oak_stairs", + "minecraft:dark_oak_trapdoor", + "minecraft:dark_oak_wood", + "minecraft:dark_prismarine", + "minecraft:dark_prismarine_slab", + "minecraft:dark_prismarine_stairs", + "minecraft:daylight_detector", + "minecraft:dead_brain_coral", + "minecraft:dead_brain_coral_block", + "minecraft:dead_brain_coral_fan", + "minecraft:dead_bubble_coral", + "minecraft:dead_bubble_coral_block", + "minecraft:dead_bubble_coral_fan", + "minecraft:dead_bush", + "minecraft:dead_fire_coral", + "minecraft:dead_fire_coral_block", + "minecraft:dead_fire_coral_fan", + "minecraft:dead_horn_coral", + "minecraft:dead_horn_coral_block", + "minecraft:dead_horn_coral_fan", + "minecraft:dead_tube_coral", + "minecraft:dead_tube_coral_block", + "minecraft:dead_tube_coral_fan", + "minecraft:debug_stick", + "minecraft:detector_rail", + "minecraft:diamond", + "minecraft:diamond_axe", + "minecraft:diamond_block", + "minecraft:diamond_boots", + "minecraft:diamond_chestplate", + "minecraft:diamond_helmet", + "minecraft:diamond_hoe", + "minecraft:diamond_horse_armor", + "minecraft:diamond_leggings", + "minecraft:diamond_ore", + "minecraft:diamond_pickaxe", + "minecraft:diamond_shovel", + "minecraft:diamond_sword", + "minecraft:diorite", + "minecraft:diorite_slab", + "minecraft:diorite_stairs", + "minecraft:diorite_wall", + "minecraft:dirt", + "minecraft:dispenser", + "minecraft:dolphin_spawn_egg", + "minecraft:donkey_spawn_egg", + "minecraft:dragon_breath", + "minecraft:dragon_egg", + "minecraft:dragon_head", + "minecraft:dried_kelp", + "minecraft:dried_kelp_block", + "minecraft:dropper", + "minecraft:drowned_spawn_egg", + "minecraft:egg", + "minecraft:elder_guardian_spawn_egg", + "minecraft:elytra", + "minecraft:emerald", + "minecraft:emerald_block", + "minecraft:emerald_ore", + "minecraft:enchanted_book", + "minecraft:enchanted_golden_apple", + "minecraft:enchanting_table", + "minecraft:end_crystal", + "minecraft:end_portal_frame", + "minecraft:end_rod", + "minecraft:end_stone", + "minecraft:end_stone_brick_slab", + "minecraft:end_stone_brick_stairs", + "minecraft:end_stone_brick_wall", + "minecraft:end_stone_bricks", + "minecraft:ender_chest", + "minecraft:ender_eye", + "minecraft:ender_pearl", + "minecraft:enderman_spawn_egg", + "minecraft:endermite_spawn_egg", + "minecraft:evoker_spawn_egg", + "minecraft:experience_bottle", + "minecraft:farmland", + "minecraft:feather", + "minecraft:fermented_spider_eye", + "minecraft:fern", + "minecraft:filled_map", + "minecraft:fire_charge", + "minecraft:fire_coral", + "minecraft:fire_coral_block", + "minecraft:fire_coral_fan", + "minecraft:firework_rocket", + "minecraft:firework_star", + "minecraft:fishing_rod", + "minecraft:fletching_table", + "minecraft:flint", + "minecraft:flint_and_steel", + "minecraft:flower_banner_pattern", + "minecraft:flower_pot", + "minecraft:fox_spawn_egg", + "minecraft:furnace", + "minecraft:furnace_minecart", + "minecraft:ghast_spawn_egg", + "minecraft:ghast_tear", + "minecraft:glass", + "minecraft:glass_bottle", + "minecraft:glass_pane", + "minecraft:glistering_melon_slice", + "minecraft:globe_banner_pattern", + "minecraft:glowstone", + "minecraft:glowstone_dust", + "minecraft:gold_block", + "minecraft:gold_ingot", + "minecraft:gold_nugget", + "minecraft:gold_ore", + "minecraft:golden_apple", + "minecraft:golden_axe", + "minecraft:golden_boots", + "minecraft:golden_carrot", + "minecraft:golden_chestplate", + "minecraft:golden_helmet", + "minecraft:golden_hoe", + "minecraft:golden_horse_armor", + "minecraft:golden_leggings", + "minecraft:golden_pickaxe", + "minecraft:golden_shovel", + "minecraft:golden_sword", + "minecraft:granite", + "minecraft:granite_slab", + "minecraft:granite_stairs", + "minecraft:granite_wall", + "minecraft:grass", + "minecraft:grass_block", + "minecraft:grass_path", + "minecraft:gravel", + "minecraft:gray_banner", + "minecraft:gray_bed", + "minecraft:gray_carpet", + "minecraft:gray_concrete", + "minecraft:gray_concrete_powder", + "minecraft:gray_dye", + "minecraft:gray_glazed_terracotta", + "minecraft:gray_shulker_box", + "minecraft:gray_stained_glass", + "minecraft:gray_stained_glass_pane", + "minecraft:gray_terracotta", + "minecraft:gray_wool", + "minecraft:green_banner", + "minecraft:green_bed", + "minecraft:green_carpet", + "minecraft:green_concrete", + "minecraft:green_concrete_powder", + "minecraft:green_dye", + "minecraft:green_glazed_terracotta", + "minecraft:green_shulker_box", + "minecraft:green_stained_glass", + "minecraft:green_stained_glass_pane", + "minecraft:green_terracotta", + "minecraft:green_wool", + "minecraft:grindstone", + "minecraft:guardian_spawn_egg", + "minecraft:gunpowder", + "minecraft:hay_block", + "minecraft:heart_of_the_sea", + "minecraft:heavy_weighted_pressure_plate", + "minecraft:hopper", + "minecraft:hopper_minecart", + "minecraft:horn_coral", + "minecraft:horn_coral_block", + "minecraft:horn_coral_fan", + "minecraft:horse_spawn_egg", + "minecraft:husk_spawn_egg", + "minecraft:ice", + "minecraft:infested_chiseled_stone_bricks", + "minecraft:infested_cobblestone", + "minecraft:infested_cracked_stone_bricks", + "minecraft:infested_mossy_stone_bricks", + "minecraft:infested_stone", + "minecraft:infested_stone_bricks", + "minecraft:ink_sac", + "minecraft:iron_axe", + "minecraft:iron_bars", + "minecraft:iron_block", + "minecraft:iron_boots", + "minecraft:iron_chestplate", + "minecraft:iron_door", + "minecraft:iron_helmet", + "minecraft:iron_hoe", + "minecraft:iron_horse_armor", + "minecraft:iron_ingot", + "minecraft:iron_leggings", + "minecraft:iron_nugget", + "minecraft:iron_ore", + "minecraft:iron_pickaxe", + "minecraft:iron_shovel", + "minecraft:iron_sword", + "minecraft:iron_trapdoor", + "minecraft:item_frame", + "minecraft:jack_o_lantern", + "minecraft:jigsaw", + "minecraft:jukebox", + "minecraft:jungle_boat", + "minecraft:jungle_button", + "minecraft:jungle_door", + "minecraft:jungle_fence", + "minecraft:jungle_fence_gate", + "minecraft:jungle_leaves", + "minecraft:jungle_log", + "minecraft:jungle_planks", + "minecraft:jungle_pressure_plate", + "minecraft:jungle_sapling", + "minecraft:jungle_sign", + "minecraft:jungle_slab", + "minecraft:jungle_stairs", + "minecraft:jungle_trapdoor", + "minecraft:jungle_wood", + "minecraft:kelp", + "minecraft:knowledge_book", + "minecraft:ladder", + "minecraft:lantern", + "minecraft:lapis_block", + "minecraft:lapis_lazuli", + "minecraft:lapis_ore", + "minecraft:large_fern", + "minecraft:lava_bucket", + "minecraft:lead", + "minecraft:leather", + "minecraft:leather_boots", + "minecraft:leather_chestplate", + "minecraft:leather_helmet", + "minecraft:leather_horse_armor", + "minecraft:leather_leggings", + "minecraft:lectern", + "minecraft:lever", + "minecraft:light_blue_banner", + "minecraft:light_blue_bed", + "minecraft:light_blue_carpet", + "minecraft:light_blue_concrete", + "minecraft:light_blue_concrete_powder", + "minecraft:light_blue_dye", + "minecraft:light_blue_glazed_terracotta", + "minecraft:light_blue_shulker_box", + "minecraft:light_blue_stained_glass", + "minecraft:light_blue_stained_glass_pane", + "minecraft:light_blue_terracotta", + "minecraft:light_blue_wool", + "minecraft:light_gray_banner", + "minecraft:light_gray_bed", + "minecraft:light_gray_carpet", + "minecraft:light_gray_concrete", + "minecraft:light_gray_concrete_powder", + "minecraft:light_gray_dye", + "minecraft:light_gray_glazed_terracotta", + "minecraft:light_gray_shulker_box", + "minecraft:light_gray_stained_glass", + "minecraft:light_gray_stained_glass_pane", + "minecraft:light_gray_terracotta", + "minecraft:light_gray_wool", + "minecraft:light_weighted_pressure_plate", + "minecraft:lilac", + "minecraft:lily_of_the_valley", + "minecraft:lily_pad", + "minecraft:lime_banner", + "minecraft:lime_bed", + "minecraft:lime_carpet", + "minecraft:lime_concrete", + "minecraft:lime_concrete_powder", + "minecraft:lime_dye", + "minecraft:lime_glazed_terracotta", + "minecraft:lime_shulker_box", + "minecraft:lime_stained_glass", + "minecraft:lime_stained_glass_pane", + "minecraft:lime_terracotta", + "minecraft:lime_wool", + "minecraft:lingering_potion", + "minecraft:llama_spawn_egg", + "minecraft:loom", + "minecraft:magenta_banner", + "minecraft:magenta_bed", + "minecraft:magenta_carpet", + "minecraft:magenta_concrete", + "minecraft:magenta_concrete_powder", + "minecraft:magenta_dye", + "minecraft:magenta_glazed_terracotta", + "minecraft:magenta_shulker_box", + "minecraft:magenta_stained_glass", + "minecraft:magenta_stained_glass_pane", + "minecraft:magenta_terracotta", + "minecraft:magenta_wool", + "minecraft:magma_block", + "minecraft:magma_cream", + "minecraft:magma_cube_spawn_egg", + "minecraft:map", + "minecraft:melon", + "minecraft:melon_seeds", + "minecraft:melon_slice", + "minecraft:milk_bucket", + "minecraft:minecart", + "minecraft:mojang_banner_pattern", + "minecraft:mooshroom_spawn_egg", + "minecraft:mossy_cobblestone", + "minecraft:mossy_cobblestone_slab", + "minecraft:mossy_cobblestone_stairs", + "minecraft:mossy_cobblestone_wall", + "minecraft:mossy_stone_brick_slab", + "minecraft:mossy_stone_brick_stairs", + "minecraft:mossy_stone_brick_wall", + "minecraft:mossy_stone_bricks", + "minecraft:mule_spawn_egg", + "minecraft:mushroom_stem", + "minecraft:mushroom_stew", + "minecraft:music_disc_11", + "minecraft:music_disc_13", + "minecraft:music_disc_blocks", + "minecraft:music_disc_cat", + "minecraft:music_disc_chirp", + "minecraft:music_disc_far", + "minecraft:music_disc_mall", + "minecraft:music_disc_mellohi", + "minecraft:music_disc_stal", + "minecraft:music_disc_strad", + "minecraft:music_disc_wait", + "minecraft:music_disc_ward", + "minecraft:mutton", + "minecraft:mycelium", + "minecraft:name_tag", + "minecraft:nautilus_shell", + "minecraft:nether_brick", + "minecraft:nether_brick_fence", + "minecraft:nether_brick_slab", + "minecraft:nether_brick_stairs", + "minecraft:nether_brick_wall", + "minecraft:nether_bricks", + "minecraft:nether_quartz_ore", + "minecraft:nether_star", + "minecraft:nether_wart", + "minecraft:nether_wart_block", + "minecraft:netherrack", + "minecraft:note_block", + "minecraft:oak_boat", + "minecraft:oak_button", + "minecraft:oak_door", + "minecraft:oak_fence", + "minecraft:oak_fence_gate", + "minecraft:oak_leaves", + "minecraft:oak_log", + "minecraft:oak_planks", + "minecraft:oak_pressure_plate", + "minecraft:oak_sapling", + "minecraft:oak_sign", + "minecraft:oak_slab", + "minecraft:oak_stairs", + "minecraft:oak_trapdoor", + "minecraft:oak_wood", + "minecraft:observer", + "minecraft:obsidian", + "minecraft:ocelot_spawn_egg", + "minecraft:orange_banner", + "minecraft:orange_bed", + "minecraft:orange_carpet", + "minecraft:orange_concrete", + "minecraft:orange_concrete_powder", + "minecraft:orange_dye", + "minecraft:orange_glazed_terracotta", + "minecraft:orange_shulker_box", + "minecraft:orange_stained_glass", + "minecraft:orange_stained_glass_pane", + "minecraft:orange_terracotta", + "minecraft:orange_tulip", + "minecraft:orange_wool", + "minecraft:oxeye_daisy", + "minecraft:packed_ice", + "minecraft:painting", + "minecraft:panda_spawn_egg", + "minecraft:paper", + "minecraft:parrot_spawn_egg", + "minecraft:peony", + "minecraft:petrified_oak_slab", + "minecraft:phantom_membrane", + "minecraft:phantom_spawn_egg", + "minecraft:pig_spawn_egg", + "minecraft:pillager_spawn_egg", + "minecraft:pink_banner", + "minecraft:pink_bed", + "minecraft:pink_carpet", + "minecraft:pink_concrete", + "minecraft:pink_concrete_powder", + "minecraft:pink_dye", + "minecraft:pink_glazed_terracotta", + "minecraft:pink_shulker_box", + "minecraft:pink_stained_glass", + "minecraft:pink_stained_glass_pane", + "minecraft:pink_terracotta", + "minecraft:pink_tulip", + "minecraft:pink_wool", + "minecraft:piston", + "minecraft:player_head", + "minecraft:podzol", + "minecraft:poisonous_potato", + "minecraft:polar_bear_spawn_egg", + "minecraft:polished_andesite", + "minecraft:polished_andesite_slab", + "minecraft:polished_andesite_stairs", + "minecraft:polished_diorite", + "minecraft:polished_diorite_slab", + "minecraft:polished_diorite_stairs", + "minecraft:polished_granite", + "minecraft:polished_granite_slab", + "minecraft:polished_granite_stairs", + "minecraft:popped_chorus_fruit", + "minecraft:poppy", + "minecraft:porkchop", + "minecraft:potato", + "minecraft:potion", + "minecraft:powered_rail", + "minecraft:prismarine", + "minecraft:prismarine_brick_slab", + "minecraft:prismarine_brick_stairs", + "minecraft:prismarine_bricks", + "minecraft:prismarine_crystals", + "minecraft:prismarine_shard", + "minecraft:prismarine_slab", + "minecraft:prismarine_stairs", + "minecraft:prismarine_wall", + "minecraft:pufferfish", + "minecraft:pufferfish_bucket", + "minecraft:pufferfish_spawn_egg", + "minecraft:pumpkin", + "minecraft:pumpkin_pie", + "minecraft:pumpkin_seeds", + "minecraft:purple_banner", + "minecraft:purple_bed", + "minecraft:purple_carpet", + "minecraft:purple_concrete", + "minecraft:purple_concrete_powder", + "minecraft:purple_dye", + "minecraft:purple_glazed_terracotta", + "minecraft:purple_shulker_box", + "minecraft:purple_stained_glass", + "minecraft:purple_stained_glass_pane", + "minecraft:purple_terracotta", + "minecraft:purple_wool", + "minecraft:purpur_block", + "minecraft:purpur_pillar", + "minecraft:purpur_slab", + "minecraft:purpur_stairs", + "minecraft:quartz", + "minecraft:quartz_block", + "minecraft:quartz_pillar", + "minecraft:quartz_slab", + "minecraft:quartz_stairs", + "minecraft:rabbit", + "minecraft:rabbit_foot", + "minecraft:rabbit_hide", + "minecraft:rabbit_spawn_egg", + "minecraft:rabbit_stew", + "minecraft:rail", + "minecraft:ravager_spawn_egg", + "minecraft:red_banner", + "minecraft:red_bed", + "minecraft:red_carpet", + "minecraft:red_concrete", + "minecraft:red_concrete_powder", + "minecraft:red_dye", + "minecraft:red_glazed_terracotta", + "minecraft:red_mushroom", + "minecraft:red_mushroom_block", + "minecraft:red_nether_brick_slab", + "minecraft:red_nether_brick_stairs", + "minecraft:red_nether_brick_wall", + "minecraft:red_nether_bricks", + "minecraft:red_sand", + "minecraft:red_sandstone", + "minecraft:red_sandstone_slab", + "minecraft:red_sandstone_stairs", + "minecraft:red_sandstone_wall", + "minecraft:red_shulker_box", + "minecraft:red_stained_glass", + "minecraft:red_stained_glass_pane", + "minecraft:red_terracotta", + "minecraft:red_tulip", + "minecraft:red_wool", + "minecraft:redstone", + "minecraft:redstone_block", + "minecraft:redstone_lamp", + "minecraft:redstone_ore", + "minecraft:redstone_torch", + "minecraft:repeater", + "minecraft:repeating_command_block", + "minecraft:rose_bush", + "minecraft:rotten_flesh", + "minecraft:saddle", + "minecraft:salmon", + "minecraft:salmon_bucket", + "minecraft:salmon_spawn_egg", + "minecraft:sand", + "minecraft:sandstone", + "minecraft:sandstone_slab", + "minecraft:sandstone_stairs", + "minecraft:sandstone_wall", + "minecraft:scaffolding", + "minecraft:scute", + "minecraft:sea_lantern", + "minecraft:sea_pickle", + "minecraft:seagrass", + "minecraft:shears", + "minecraft:sheep_spawn_egg", + "minecraft:shield", + "minecraft:shulker_box", + "minecraft:shulker_shell", + "minecraft:shulker_spawn_egg", + "minecraft:silverfish_spawn_egg", + "minecraft:skeleton_horse_spawn_egg", + "minecraft:skeleton_skull", + "minecraft:skeleton_spawn_egg", + "minecraft:skull_banner_pattern", + "minecraft:slime_ball", + "minecraft:slime_block", + "minecraft:slime_spawn_egg", + "minecraft:smithing_table", + "minecraft:smoker", + "minecraft:smooth_quartz", + "minecraft:smooth_quartz_slab", + "minecraft:smooth_quartz_stairs", + "minecraft:smooth_red_sandstone", + "minecraft:smooth_red_sandstone_slab", + "minecraft:smooth_red_sandstone_stairs", + "minecraft:smooth_sandstone", + "minecraft:smooth_sandstone_slab", + "minecraft:smooth_sandstone_stairs", + "minecraft:smooth_stone", + "minecraft:smooth_stone_slab", + "minecraft:snow", + "minecraft:snow_block", + "minecraft:snowball", + "minecraft:soul_sand", + "minecraft:spawner", + "minecraft:spectral_arrow", + "minecraft:spider_eye", + "minecraft:spider_spawn_egg", + "minecraft:splash_potion", + "minecraft:sponge", + "minecraft:spruce_boat", + "minecraft:spruce_button", + "minecraft:spruce_door", + "minecraft:spruce_fence", + "minecraft:spruce_fence_gate", + "minecraft:spruce_leaves", + "minecraft:spruce_log", + "minecraft:spruce_planks", + "minecraft:spruce_pressure_plate", + "minecraft:spruce_sapling", + "minecraft:spruce_sign", + "minecraft:spruce_slab", + "minecraft:spruce_stairs", + "minecraft:spruce_trapdoor", + "minecraft:spruce_wood", + "minecraft:squid_spawn_egg", + "minecraft:stick", + "minecraft:sticky_piston", + "minecraft:stone", + "minecraft:stone_axe", + "minecraft:stone_brick_slab", + "minecraft:stone_brick_stairs", + "minecraft:stone_brick_wall", + "minecraft:stone_bricks", + "minecraft:stone_button", + "minecraft:stone_hoe", + "minecraft:stone_pickaxe", + "minecraft:stone_pressure_plate", + "minecraft:stone_shovel", + "minecraft:stone_slab", + "minecraft:stone_stairs", + "minecraft:stone_sword", + "minecraft:stonecutter", + "minecraft:stray_spawn_egg", + "minecraft:string", + "minecraft:stripped_acacia_log", + "minecraft:stripped_acacia_wood", + "minecraft:stripped_birch_log", + "minecraft:stripped_birch_wood", + "minecraft:stripped_dark_oak_log", + "minecraft:stripped_dark_oak_wood", + "minecraft:stripped_jungle_log", + "minecraft:stripped_jungle_wood", + "minecraft:stripped_oak_log", + "minecraft:stripped_oak_wood", + "minecraft:stripped_spruce_log", + "minecraft:stripped_spruce_wood", + "minecraft:structure_block", + "minecraft:structure_void", + "minecraft:sugar", + "minecraft:sugar_cane", + "minecraft:sunflower", + "minecraft:suspicious_stew", + "minecraft:sweet_berries", + "minecraft:tall_grass", + "minecraft:terracotta", + "minecraft:tipped_arrow", + "minecraft:tnt", + "minecraft:tnt_minecart", + "minecraft:torch", + "minecraft:totem_of_undying", + "minecraft:trader_llama_spawn_egg", + "minecraft:trapped_chest", + "minecraft:trident", + "minecraft:tripwire_hook", + "minecraft:tropical_fish", + "minecraft:tropical_fish_bucket", + "minecraft:tropical_fish_spawn_egg", + "minecraft:tube_coral", + "minecraft:tube_coral_block", + "minecraft:tube_coral_fan", + "minecraft:turtle_egg", + "minecraft:turtle_helmet", + "minecraft:turtle_spawn_egg", + "minecraft:vex_spawn_egg", + "minecraft:villager_spawn_egg", + "minecraft:vindicator_spawn_egg", + "minecraft:vine", + "minecraft:wandering_trader_spawn_egg", + "minecraft:water_bucket", + "minecraft:wet_sponge", + "minecraft:wheat", + "minecraft:wheat_seeds", + "minecraft:white_banner", + "minecraft:white_bed", + "minecraft:white_carpet", + "minecraft:white_concrete", + "minecraft:white_concrete_powder", + "minecraft:white_dye", + "minecraft:white_glazed_terracotta", + "minecraft:white_shulker_box", + "minecraft:white_stained_glass", + "minecraft:white_stained_glass_pane", + "minecraft:white_terracotta", + "minecraft:white_tulip", + "minecraft:white_wool", + "minecraft:witch_spawn_egg", + "minecraft:wither_rose", + "minecraft:wither_skeleton_skull", + "minecraft:wither_skeleton_spawn_egg", + "minecraft:wolf_spawn_egg", + "minecraft:wooden_axe", + "minecraft:wooden_hoe", + "minecraft:wooden_pickaxe", + "minecraft:wooden_shovel", + "minecraft:wooden_sword", + "minecraft:writable_book", + "minecraft:written_book", + "minecraft:yellow_banner", + "minecraft:yellow_bed", + "minecraft:yellow_carpet", + "minecraft:yellow_concrete", + "minecraft:yellow_concrete_powder", + "minecraft:yellow_dye", + "minecraft:yellow_glazed_terracotta", + "minecraft:yellow_shulker_box", + "minecraft:yellow_stained_glass", + "minecraft:yellow_stained_glass_pane", + "minecraft:yellow_terracotta", + "minecraft:yellow_wool", + "minecraft:zombie_head", + "minecraft:zombie_horse_spawn_egg", + "minecraft:zombie_pigman_spawn_egg", + "minecraft:zombie_spawn_egg", + "minecraft:zombie_villager_spawn_egg" + ], + "entities": [ + "minecraft:area_effect_cloud", + "minecraft:armor_stand", + "minecraft:arrow", + "minecraft:bat", + "minecraft:blaze", + "minecraft:boat", + "minecraft:cat", + "minecraft:cave_spider", + "minecraft:chest_minecart", + "minecraft:chicken", + "minecraft:cod", + "minecraft:command_block_minecart", + "minecraft:cow", + "minecraft:creeper", + "minecraft:dolphin", + "minecraft:donkey", + "minecraft:dragon_fireball", + "minecraft:drowned", + "minecraft:egg", + "minecraft:elder_guardian", + "minecraft:end_crystal", + "minecraft:ender_dragon", + "minecraft:ender_pearl", + "minecraft:enderman", + "minecraft:endermite", + "minecraft:evoker", + "minecraft:evoker_fangs", + "minecraft:experience_bottle", + "minecraft:experience_orb", + "minecraft:eye_of_ender", + "minecraft:falling_block", + "minecraft:fireball", + "minecraft:firework_rocket", + "minecraft:fishing_bobber", + "minecraft:fox", + "minecraft:furnace_minecart", + "minecraft:ghast", + "minecraft:giant", + "minecraft:guardian", + "minecraft:hopper_minecart", + "minecraft:horse", + "minecraft:husk", + "minecraft:illusioner", + "minecraft:iron_golem", + "minecraft:item", + "minecraft:item_frame", + "minecraft:leash_knot", + "minecraft:lightning_bolt", + "minecraft:llama", + "minecraft:llama_spit", + "minecraft:magma_cube", + "minecraft:minecart", + "minecraft:mooshroom", + "minecraft:mule", + "minecraft:ocelot", + "minecraft:painting", + "minecraft:panda", + "minecraft:parrot", + "minecraft:phantom", + "minecraft:pig", + "minecraft:pillager", + "minecraft:player", + "minecraft:polar_bear", + "minecraft:potion", + "minecraft:pufferfish", + "minecraft:rabbit", + "minecraft:ravager", + "minecraft:salmon", + "minecraft:sheep", + "minecraft:shulker", + "minecraft:shulker_bullet", + "minecraft:silverfish", + "minecraft:skeleton", + "minecraft:skeleton_horse", + "minecraft:slime", + "minecraft:small_fireball", + "minecraft:snow_golem", + "minecraft:snowball", + "minecraft:spawner_minecart", + "minecraft:spectral_arrow", + "minecraft:spider", + "minecraft:squid", + "minecraft:stray", + "minecraft:tnt", + "minecraft:tnt_minecart", + "minecraft:trader_llama", + "minecraft:trident", + "minecraft:tropical_fish", + "minecraft:turtle", + "minecraft:vex", + "minecraft:villager", + "minecraft:vindicator", + "minecraft:wandering_trader", + "minecraft:witch", + "minecraft:wither", + "minecraft:wither_skeleton", + "minecraft:wither_skull", + "minecraft:wolf", + "minecraft:zombie", + "minecraft:zombie_horse", + "minecraft:zombie_pigman", + "minecraft:zombie_villager" + ], + "biomes": [ + "minecraft:badlands", + "minecraft:badlands_plateau", + "minecraft:bamboo_jungle", + "minecraft:bamboo_jungle_hills", + "minecraft:beach", + "minecraft:birch_forest", + "minecraft:birch_forest_hills", + "minecraft:cold_ocean", + "minecraft:dark_forest", + "minecraft:dark_forest_hills", + "minecraft:deep_cold_ocean", + "minecraft:deep_frozen_ocean", + "minecraft:deep_lukewarm_ocean", + "minecraft:deep_ocean", + "minecraft:deep_warm_ocean", + "minecraft:desert", + "minecraft:desert_hills", + "minecraft:desert_lakes", + "minecraft:end_barrens", + "minecraft:end_highlands", + "minecraft:end_midlands", + "minecraft:eroded_badlands", + "minecraft:flower_forest", + "minecraft:forest", + "minecraft:frozen_ocean", + "minecraft:frozen_river", + "minecraft:giant_spruce_taiga", + "minecraft:giant_spruce_taiga_hills", + "minecraft:giant_tree_taiga", + "minecraft:giant_tree_taiga_hills", + "minecraft:gravelly_mountains", + "minecraft:ice_spikes", + "minecraft:jungle", + "minecraft:jungle_edge", + "minecraft:jungle_hills", + "minecraft:lukewarm_ocean", + "minecraft:modified_badlands_plateau", + "minecraft:modified_gravelly_mountains", + "minecraft:modified_jungle", + "minecraft:modified_jungle_edge", + "minecraft:modified_wooded_badlands_plateau", + "minecraft:mountain_edge", + "minecraft:mountains", + "minecraft:mushroom_field_shore", + "minecraft:mushroom_fields", + "minecraft:nether", + "minecraft:ocean", + "minecraft:plains", + "minecraft:river", + "minecraft:savanna", + "minecraft:savanna_plateau", + "minecraft:shattered_savanna", + "minecraft:shattered_savanna_plateau", + "minecraft:small_end_islands", + "minecraft:snowy_beach", + "minecraft:snowy_mountains", + "minecraft:snowy_taiga", + "minecraft:snowy_taiga_hills", + "minecraft:snowy_taiga_mountains", + "minecraft:snowy_tundra", + "minecraft:stone_shore", + "minecraft:sunflower_plains", + "minecraft:swamp", + "minecraft:swamp_hills", + "minecraft:taiga", + "minecraft:taiga_hills", + "minecraft:taiga_mountains", + "minecraft:tall_birch_forest", + "minecraft:tall_birch_hills", + "minecraft:the_end", + "minecraft:the_void", + "minecraft:warm_ocean", + "minecraft:wooded_badlands_plateau", + "minecraft:wooded_hills", + "minecraft:wooded_mountains" + ], + "blocktags": { + "minecraft:slabs": [ + "minecraft:stone_slab", + "minecraft:smooth_stone_slab", + "minecraft:stone_brick_slab", + "minecraft:sandstone_slab", + "minecraft:acacia_slab", + "minecraft:birch_slab", + "minecraft:dark_oak_slab", + "minecraft:jungle_slab", + "minecraft:oak_slab", + "minecraft:spruce_slab", + "minecraft:purpur_slab", + "minecraft:quartz_slab", + "minecraft:red_sandstone_slab", + "minecraft:brick_slab", + "minecraft:cobblestone_slab", + "minecraft:nether_brick_slab", + "minecraft:petrified_oak_slab", + "minecraft:prismarine_slab", + "minecraft:prismarine_brick_slab", + "minecraft:dark_prismarine_slab", + "minecraft:polished_granite_slab", + "minecraft:smooth_red_sandstone_slab", + "minecraft:mossy_stone_brick_slab", + "minecraft:polished_diorite_slab", + "minecraft:mossy_cobblestone_slab", + "minecraft:end_stone_brick_slab", + "minecraft:smooth_sandstone_slab", + "minecraft:smooth_quartz_slab", + "minecraft:granite_slab", + "minecraft:andesite_slab", + "minecraft:red_nether_brick_slab", + "minecraft:polished_andesite_slab", + "minecraft:diorite_slab", + "minecraft:cut_sandstone_slab", + "minecraft:cut_red_sandstone_slab" + ], + "minecraft:carpets": [ + "minecraft:white_carpet", + "minecraft:orange_carpet", + "minecraft:magenta_carpet", + "minecraft:light_blue_carpet", + "minecraft:yellow_carpet", + "minecraft:lime_carpet", + "minecraft:pink_carpet", + "minecraft:gray_carpet", + "minecraft:light_gray_carpet", + "minecraft:cyan_carpet", + "minecraft:purple_carpet", + "minecraft:blue_carpet", + "minecraft:brown_carpet", + "minecraft:green_carpet", + "minecraft:red_carpet", + "minecraft:black_carpet" + ], + "minecraft:stairs": [ + "minecraft:oak_stairs", + "minecraft:cobblestone_stairs", + "minecraft:spruce_stairs", + "minecraft:sandstone_stairs", + "minecraft:acacia_stairs", + "minecraft:jungle_stairs", + "minecraft:birch_stairs", + "minecraft:dark_oak_stairs", + "minecraft:nether_brick_stairs", + "minecraft:stone_brick_stairs", + "minecraft:brick_stairs", + "minecraft:purpur_stairs", + "minecraft:quartz_stairs", + "minecraft:red_sandstone_stairs", + "minecraft:prismarine_brick_stairs", + "minecraft:prismarine_stairs", + "minecraft:dark_prismarine_stairs", + "minecraft:polished_granite_stairs", + "minecraft:smooth_red_sandstone_stairs", + "minecraft:mossy_stone_brick_stairs", + "minecraft:polished_diorite_stairs", + "minecraft:mossy_cobblestone_stairs", + "minecraft:end_stone_brick_stairs", + "minecraft:stone_stairs", + "minecraft:smooth_sandstone_stairs", + "minecraft:smooth_quartz_stairs", + "minecraft:granite_stairs", + "minecraft:andesite_stairs", + "minecraft:red_nether_brick_stairs", + "minecraft:polished_andesite_stairs", + "minecraft:diorite_stairs" + ], + "minecraft:wooden_doors": [ + "minecraft:oak_door", + "minecraft:spruce_door", + "minecraft:birch_door", + "minecraft:jungle_door", + "minecraft:acacia_door", + "minecraft:dark_oak_door" + ], + "minecraft:jungle_logs": [ + "minecraft:jungle_log", + "minecraft:jungle_wood", + "minecraft:stripped_jungle_log", + "minecraft:stripped_jungle_wood" + ], + "minecraft:planks": [ + "minecraft:oak_planks", + "minecraft:spruce_planks", + "minecraft:birch_planks", + "minecraft:jungle_planks", + "minecraft:acacia_planks", + "minecraft:dark_oak_planks" + ], + "minecraft:wall_corals": [ + "minecraft:tube_coral_wall_fan", + "minecraft:brain_coral_wall_fan", + "minecraft:bubble_coral_wall_fan", + "minecraft:fire_coral_wall_fan", + "minecraft:horn_coral_wall_fan" + ], + "minecraft:acacia_logs": [ + "minecraft:acacia_log", + "minecraft:acacia_wood", + "minecraft:stripped_acacia_log", + "minecraft:stripped_acacia_wood" + ], + "minecraft:wither_immune": [ + "minecraft:barrier", + "minecraft:bedrock", + "minecraft:end_portal", + "minecraft:end_portal_frame", + "minecraft:end_gateway", + "minecraft:command_block", + "minecraft:repeating_command_block", + "minecraft:chain_command_block", + "minecraft:structure_block", + "minecraft:jigsaw", + "minecraft:moving_piston" + ], + "minecraft:flower_pots": [ + "minecraft:flower_pot", + "minecraft:potted_poppy", + "minecraft:potted_blue_orchid", + "minecraft:potted_allium", + "minecraft:potted_azure_bluet", + "minecraft:potted_red_tulip", + "minecraft:potted_orange_tulip", + "minecraft:potted_white_tulip", + "minecraft:potted_pink_tulip", + "minecraft:potted_oxeye_daisy", + "minecraft:potted_dandelion", + "minecraft:potted_oak_sapling", + "minecraft:potted_spruce_sapling", + "minecraft:potted_birch_sapling", + "minecraft:potted_jungle_sapling", + "minecraft:potted_acacia_sapling", + "minecraft:potted_dark_oak_sapling", + "minecraft:potted_red_mushroom", + "minecraft:potted_brown_mushroom", + "minecraft:potted_dead_bush", + "minecraft:potted_fern", + "minecraft:potted_cactus", + "minecraft:potted_cornflower", + "minecraft:potted_lily_of_the_valley", + "minecraft:potted_wither_rose", + "minecraft:potted_bamboo" + ], + "minecraft:stone_bricks": [ + "minecraft:stone_bricks", + "minecraft:mossy_stone_bricks", + "minecraft:cracked_stone_bricks", + "minecraft:chiseled_stone_bricks" + ], + "minecraft:enderman_holdable": [ + "minecraft:grass_block", + "minecraft:dirt", + "minecraft:coarse_dirt", + "minecraft:podzol", + "minecraft:sand", + "minecraft:red_sand", + "minecraft:gravel", + "minecraft:brown_mushroom", + "minecraft:red_mushroom", + "minecraft:tnt", + "minecraft:cactus", + "minecraft:clay", + "minecraft:pumpkin", + "minecraft:carved_pumpkin", + "minecraft:melon", + "minecraft:mycelium", + "minecraft:netherrack", + "minecraft:dandelion", + "minecraft:poppy", + "minecraft:blue_orchid", + "minecraft:allium", + "minecraft:azure_bluet", + "minecraft:red_tulip", + "minecraft:orange_tulip", + "minecraft:white_tulip", + "minecraft:pink_tulip", + "minecraft:oxeye_daisy", + "minecraft:cornflower", + "minecraft:lily_of_the_valley", + "minecraft:wither_rose" + ], + "minecraft:spruce_logs": [ + "minecraft:spruce_log", + "minecraft:spruce_wood", + "minecraft:stripped_spruce_log", + "minecraft:stripped_spruce_wood" + ], + "minecraft:wooden_slabs": [ + "minecraft:oak_slab", + "minecraft:spruce_slab", + "minecraft:birch_slab", + "minecraft:jungle_slab", + "minecraft:acacia_slab", + "minecraft:dark_oak_slab" + ], + "minecraft:coral_blocks": [ + "minecraft:tube_coral_block", + "minecraft:brain_coral_block", + "minecraft:bubble_coral_block", + "minecraft:fire_coral_block", + "minecraft:horn_coral_block" + ], + "minecraft:signs": [ + "minecraft:oak_sign", + "minecraft:spruce_sign", + "minecraft:birch_sign", + "minecraft:acacia_sign", + "minecraft:jungle_sign", + "minecraft:dark_oak_sign", + "minecraft:oak_wall_sign", + "minecraft:spruce_wall_sign", + "minecraft:birch_wall_sign", + "minecraft:acacia_wall_sign", + "minecraft:jungle_wall_sign", + "minecraft:dark_oak_wall_sign" + ], + "minecraft:dark_oak_logs": [ + "minecraft:dark_oak_log", + "minecraft:dark_oak_wood", + "minecraft:stripped_dark_oak_log", + "minecraft:stripped_dark_oak_wood" + ], + "minecraft:sand": [ + "minecraft:sand", + "minecraft:red_sand" + ], + "minecraft:valid_spawn": [ + "minecraft:grass_block", + "minecraft:podzol" + ], + "minecraft:underwater_bonemeals": [ + "minecraft:seagrass", + "minecraft:tube_coral_fan", + "minecraft:brain_coral_fan", + "minecraft:bubble_coral_fan", + "minecraft:fire_coral_fan", + "minecraft:horn_coral_fan", + "minecraft:tube_coral", + "minecraft:brain_coral", + "minecraft:bubble_coral", + "minecraft:fire_coral", + "minecraft:horn_coral", + "minecraft:tube_coral_wall_fan", + "minecraft:brain_coral_wall_fan", + "minecraft:bubble_coral_wall_fan", + "minecraft:fire_coral_wall_fan", + "minecraft:horn_coral_wall_fan" + ], + "minecraft:oak_logs": [ + "minecraft:oak_log", + "minecraft:oak_wood", + "minecraft:stripped_oak_log", + "minecraft:stripped_oak_wood" + ], + "minecraft:buttons": [ + "minecraft:stone_button", + "minecraft:oak_button", + "minecraft:spruce_button", + "minecraft:birch_button", + "minecraft:jungle_button", + "minecraft:acacia_button", + "minecraft:dark_oak_button" + ], + "minecraft:wooden_pressure_plates": [ + "minecraft:oak_pressure_plate", + "minecraft:spruce_pressure_plate", + "minecraft:birch_pressure_plate", + "minecraft:jungle_pressure_plate", + "minecraft:acacia_pressure_plate", + "minecraft:dark_oak_pressure_plate" + ], + "minecraft:beds": [ + "minecraft:red_bed", + "minecraft:black_bed", + "minecraft:blue_bed", + "minecraft:brown_bed", + "minecraft:cyan_bed", + "minecraft:gray_bed", + "minecraft:green_bed", + "minecraft:light_blue_bed", + "minecraft:light_gray_bed", + "minecraft:lime_bed", + "minecraft:magenta_bed", + "minecraft:orange_bed", + "minecraft:pink_bed", + "minecraft:purple_bed", + "minecraft:white_bed", + "minecraft:yellow_bed" + ], + "minecraft:walls": [ + "minecraft:cobblestone_wall", + "minecraft:mossy_cobblestone_wall", + "minecraft:brick_wall", + "minecraft:prismarine_wall", + "minecraft:red_sandstone_wall", + "minecraft:mossy_stone_brick_wall", + "minecraft:granite_wall", + "minecraft:stone_brick_wall", + "minecraft:nether_brick_wall", + "minecraft:andesite_wall", + "minecraft:red_nether_brick_wall", + "minecraft:sandstone_wall", + "minecraft:end_stone_brick_wall", + "minecraft:diorite_wall" + ], + "minecraft:rails": [ + "minecraft:rail", + "minecraft:powered_rail", + "minecraft:detector_rail", + "minecraft:activator_rail" + ], + "minecraft:birch_logs": [ + "minecraft:birch_log", + "minecraft:birch_wood", + "minecraft:stripped_birch_log", + "minecraft:stripped_birch_wood" + ], + "minecraft:wooden_trapdoors": [ + "minecraft:acacia_trapdoor", + "minecraft:birch_trapdoor", + "minecraft:dark_oak_trapdoor", + "minecraft:jungle_trapdoor", + "minecraft:oak_trapdoor", + "minecraft:spruce_trapdoor" + ], + "minecraft:wooden_fences": [ + "minecraft:oak_fence", + "minecraft:acacia_fence", + "minecraft:dark_oak_fence", + "minecraft:spruce_fence", + "minecraft:birch_fence", + "minecraft:jungle_fence" + ], + "minecraft:saplings": [ + "minecraft:oak_sapling", + "minecraft:spruce_sapling", + "minecraft:birch_sapling", + "minecraft:jungle_sapling", + "minecraft:acacia_sapling", + "minecraft:dark_oak_sapling" + ], + "minecraft:small_flowers": [ + "minecraft:dandelion", + "minecraft:poppy", + "minecraft:blue_orchid", + "minecraft:allium", + "minecraft:azure_bluet", + "minecraft:red_tulip", + "minecraft:orange_tulip", + "minecraft:white_tulip", + "minecraft:pink_tulip", + "minecraft:oxeye_daisy", + "minecraft:cornflower", + "minecraft:lily_of_the_valley", + "minecraft:wither_rose" + ], + "minecraft:bamboo_plantable_on": [ + "minecraft:bamboo", + "minecraft:bamboo_sapling", + "minecraft:gravel", + "minecraft:sand", + "minecraft:red_sand", + "minecraft:dirt", + "minecraft:grass_block", + "minecraft:podzol", + "minecraft:coarse_dirt", + "minecraft:mycelium" + ], + "minecraft:ice": [ + "minecraft:ice", + "minecraft:packed_ice", + "minecraft:blue_ice", + "minecraft:frosted_ice" + ], + "minecraft:wooden_stairs": [ + "minecraft:oak_stairs", + "minecraft:spruce_stairs", + "minecraft:birch_stairs", + "minecraft:jungle_stairs", + "minecraft:acacia_stairs", + "minecraft:dark_oak_stairs" + ], + "minecraft:anvil": [ + "minecraft:anvil", + "minecraft:chipped_anvil", + "minecraft:damaged_anvil" + ], + "minecraft:logs": [ + "minecraft:dark_oak_log", + "minecraft:dark_oak_wood", + "minecraft:stripped_dark_oak_log", + "minecraft:stripped_dark_oak_wood", + "minecraft:oak_log", + "minecraft:oak_wood", + "minecraft:stripped_oak_log", + "minecraft:stripped_oak_wood", + "minecraft:acacia_log", + "minecraft:acacia_wood", + "minecraft:stripped_acacia_log", + "minecraft:stripped_acacia_wood", + "minecraft:birch_log", + "minecraft:birch_wood", + "minecraft:stripped_birch_log", + "minecraft:stripped_birch_wood", + "minecraft:jungle_log", + "minecraft:jungle_wood", + "minecraft:stripped_jungle_log", + "minecraft:stripped_jungle_wood", + "minecraft:spruce_log", + "minecraft:spruce_wood", + "minecraft:stripped_spruce_log", + "minecraft:stripped_spruce_wood" + ], + "minecraft:corals": [ + "minecraft:tube_coral_fan", + "minecraft:brain_coral_fan", + "minecraft:bubble_coral_fan", + "minecraft:fire_coral_fan", + "minecraft:horn_coral_fan", + "minecraft:tube_coral", + "minecraft:brain_coral", + "minecraft:bubble_coral", + "minecraft:fire_coral", + "minecraft:horn_coral" + ], + "minecraft:wooden_buttons": [ + "minecraft:oak_button", + "minecraft:spruce_button", + "minecraft:birch_button", + "minecraft:jungle_button", + "minecraft:acacia_button", + "minecraft:dark_oak_button" + ], + "minecraft:wool": [ + "minecraft:white_wool", + "minecraft:orange_wool", + "minecraft:magenta_wool", + "minecraft:light_blue_wool", + "minecraft:yellow_wool", + "minecraft:lime_wool", + "minecraft:pink_wool", + "minecraft:gray_wool", + "minecraft:light_gray_wool", + "minecraft:cyan_wool", + "minecraft:purple_wool", + "minecraft:blue_wool", + "minecraft:brown_wool", + "minecraft:green_wool", + "minecraft:red_wool", + "minecraft:black_wool" + ], + "minecraft:coral_plants": [ + "minecraft:tube_coral", + "minecraft:brain_coral", + "minecraft:bubble_coral", + "minecraft:fire_coral", + "minecraft:horn_coral" + ], + "minecraft:banners": [ + "minecraft:white_banner", + "minecraft:orange_banner", + "minecraft:magenta_banner", + "minecraft:light_blue_banner", + "minecraft:yellow_banner", + "minecraft:lime_banner", + "minecraft:pink_banner", + "minecraft:gray_banner", + "minecraft:light_gray_banner", + "minecraft:cyan_banner", + "minecraft:purple_banner", + "minecraft:blue_banner", + "minecraft:brown_banner", + "minecraft:green_banner", + "minecraft:red_banner", + "minecraft:black_banner", + "minecraft:white_wall_banner", + "minecraft:orange_wall_banner", + "minecraft:magenta_wall_banner", + "minecraft:light_blue_wall_banner", + "minecraft:yellow_wall_banner", + "minecraft:lime_wall_banner", + "minecraft:pink_wall_banner", + "minecraft:gray_wall_banner", + "minecraft:light_gray_wall_banner", + "minecraft:cyan_wall_banner", + "minecraft:purple_wall_banner", + "minecraft:blue_wall_banner", + "minecraft:brown_wall_banner", + "minecraft:green_wall_banner", + "minecraft:red_wall_banner", + "minecraft:black_wall_banner" + ], + "minecraft:dragon_immune": [ + "minecraft:barrier", + "minecraft:bedrock", + "minecraft:end_portal", + "minecraft:end_portal_frame", + "minecraft:end_gateway", + "minecraft:command_block", + "minecraft:repeating_command_block", + "minecraft:chain_command_block", + "minecraft:structure_block", + "minecraft:jigsaw", + "minecraft:moving_piston", + "minecraft:obsidian", + "minecraft:end_stone", + "minecraft:iron_bars" + ], + "minecraft:doors": [ + "minecraft:iron_door", + "minecraft:oak_door", + "minecraft:spruce_door", + "minecraft:birch_door", + "minecraft:jungle_door", + "minecraft:acacia_door", + "minecraft:dark_oak_door" + ], + "minecraft:fences": [ + "minecraft:nether_brick_fence", + "minecraft:oak_fence", + "minecraft:acacia_fence", + "minecraft:dark_oak_fence", + "minecraft:spruce_fence", + "minecraft:birch_fence", + "minecraft:jungle_fence" + ], + "minecraft:wall_signs": [ + "minecraft:oak_wall_sign", + "minecraft:spruce_wall_sign", + "minecraft:birch_wall_sign", + "minecraft:acacia_wall_sign", + "minecraft:jungle_wall_sign", + "minecraft:dark_oak_wall_sign" + ], + "minecraft:standing_signs": [ + "minecraft:oak_sign", + "minecraft:spruce_sign", + "minecraft:birch_sign", + "minecraft:acacia_sign", + "minecraft:jungle_sign", + "minecraft:dark_oak_sign" + ], + "minecraft:dirt_like": [ + "minecraft:dirt", + "minecraft:grass_block", + "minecraft:podzol", + "minecraft:coarse_dirt", + "minecraft:mycelium" + ], + "minecraft:impermeable": [ + "minecraft:glass", + "minecraft:white_stained_glass", + "minecraft:orange_stained_glass", + "minecraft:magenta_stained_glass", + "minecraft:light_blue_stained_glass", + "minecraft:yellow_stained_glass", + "minecraft:lime_stained_glass", + "minecraft:pink_stained_glass", + "minecraft:gray_stained_glass", + "minecraft:light_gray_stained_glass", + "minecraft:cyan_stained_glass", + "minecraft:purple_stained_glass", + "minecraft:blue_stained_glass", + "minecraft:brown_stained_glass", + "minecraft:green_stained_glass", + "minecraft:red_stained_glass", + "minecraft:black_stained_glass" + ], + "minecraft:trapdoors": [ + "minecraft:iron_trapdoor", + "minecraft:acacia_trapdoor", + "minecraft:birch_trapdoor", + "minecraft:dark_oak_trapdoor", + "minecraft:jungle_trapdoor", + "minecraft:oak_trapdoor", + "minecraft:spruce_trapdoor" + ], + "minecraft:leaves": [ + "minecraft:jungle_leaves", + "minecraft:oak_leaves", + "minecraft:spruce_leaves", + "minecraft:dark_oak_leaves", + "minecraft:acacia_leaves", + "minecraft:birch_leaves" + ] + }, + "itemtags": { + "minecraft:boats": [ + "minecraft:oak_boat", + "minecraft:spruce_boat", + "minecraft:birch_boat", + "minecraft:jungle_boat", + "minecraft:acacia_boat", + "minecraft:dark_oak_boat" + ], + "minecraft:banners": [ + "minecraft:white_banner", + "minecraft:orange_banner", + "minecraft:magenta_banner", + "minecraft:light_blue_banner", + "minecraft:yellow_banner", + "minecraft:lime_banner", + "minecraft:pink_banner", + "minecraft:gray_banner", + "minecraft:light_gray_banner", + "minecraft:cyan_banner", + "minecraft:purple_banner", + "minecraft:blue_banner", + "minecraft:brown_banner", + "minecraft:green_banner", + "minecraft:red_banner", + "minecraft:black_banner" + ], + "minecraft:arrows": [ + "minecraft:arrow", + "minecraft:tipped_arrow", + "minecraft:spectral_arrow" + ], + "minecraft:coals": [ + "minecraft:coal", + "minecraft:charcoal" + ], + "minecraft:music_discs": [ + "minecraft:music_disc_13", + "minecraft:music_disc_cat", + "minecraft:music_disc_blocks", + "minecraft:music_disc_chirp", + "minecraft:music_disc_far", + "minecraft:music_disc_mall", + "minecraft:music_disc_mellohi", + "minecraft:music_disc_stal", + "minecraft:music_disc_strad", + "minecraft:music_disc_ward", + "minecraft:music_disc_11", + "minecraft:music_disc_wait" + ], + "minecraft:fishes": [ + "minecraft:cod", + "minecraft:cooked_cod", + "minecraft:salmon", + "minecraft:cooked_salmon", + "minecraft:pufferfish", + "minecraft:tropical_fish" + ] + }, + "entitytags": { + "minecraft:raiders": [ + "minecraft:evoker", + "minecraft:pillager", + "minecraft:ravager", + "minecraft:vindicator", + "minecraft:illusioner", + "minecraft:witch" + ], + "minecraft:skeletons": [ + "minecraft:skeleton", + "minecraft:stray", + "minecraft:wither_skeleton" + ] + } +} diff --git a/worldedit-cli/src/main/resources/com/sk89q/worldedit/cli/data/1968.json b/worldedit-cli/src/main/resources/com/sk89q/worldedit/cli/data/1968.json index f99217273..3396367cc 100644 --- a/worldedit-cli/src/main/resources/com/sk89q/worldedit/cli/data/1968.json +++ b/worldedit-cli/src/main/resources/com/sk89q/worldedit/cli/data/1968.json @@ -1 +1,12888 @@ -{"blocks":{"minecraft:acacia_button":{"properties":{"face":{"values":["floor","wall","ceiling"],"type":"enum"},"facing":{"values":["north","south","west","east"],"type":"direction"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:acacia_button[face=wall,facing=north,powered=false]"},"minecraft:acacia_door":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["upper","lower"],"type":"enum"},"hinge":{"values":["left","right"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:acacia_door[facing=north,half=lower,hinge=left,open=false,powered=false]"},"minecraft:acacia_fence":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:acacia_fence[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:acacia_fence_gate":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"in_wall":{"values":["true","false"],"type":"bool"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:acacia_fence_gate[facing=north,in_wall=false,open=false,powered=false]"},"minecraft:acacia_leaves":{"properties":{"distance":{"values":["1","2","3","4","5","6","7"],"type":"int"},"persistent":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:acacia_leaves[distance=7,persistent=false]"},"minecraft:acacia_log":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:acacia_log[axis=y]"},"minecraft:acacia_planks":{"properties":{},"defaultstate":"minecraft:acacia_planks"},"minecraft:acacia_pressure_plate":{"properties":{"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:acacia_pressure_plate[powered=false]"},"minecraft:acacia_sapling":{"properties":{"stage":{"values":["0","1"],"type":"int"}},"defaultstate":"minecraft:acacia_sapling[stage=0]"},"minecraft:acacia_sign":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:acacia_sign[rotation=0,waterlogged=false]"},"minecraft:acacia_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:acacia_slab[type=bottom,waterlogged=false]"},"minecraft:acacia_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:acacia_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:acacia_trapdoor":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:acacia_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]"},"minecraft:acacia_wall_sign":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:acacia_wall_sign[facing=north,waterlogged=false]"},"minecraft:acacia_wood":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:acacia_wood[axis=y]"},"minecraft:activator_rail":{"properties":{"powered":{"values":["true","false"],"type":"bool"},"shape":{"values":["north_south","east_west","ascending_east","ascending_west","ascending_north","ascending_south"],"type":"enum"}},"defaultstate":"minecraft:activator_rail[powered=false,shape=north_south]"},"minecraft:air":{"properties":{},"defaultstate":"minecraft:air"},"minecraft:allium":{"properties":{},"defaultstate":"minecraft:allium"},"minecraft:andesite":{"properties":{},"defaultstate":"minecraft:andesite"},"minecraft:andesite_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:andesite_slab[type=bottom,waterlogged=false]"},"minecraft:andesite_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:andesite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:andesite_wall":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:andesite_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]"},"minecraft:anvil":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:anvil[facing=north]"},"minecraft:attached_melon_stem":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:attached_melon_stem[facing=north]"},"minecraft:attached_pumpkin_stem":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:attached_pumpkin_stem[facing=north]"},"minecraft:azure_bluet":{"properties":{},"defaultstate":"minecraft:azure_bluet"},"minecraft:bamboo":{"properties":{"age":{"values":["0","1"],"type":"int"},"leaves":{"values":["none","small","large"],"type":"enum"},"stage":{"values":["0","1"],"type":"int"}},"defaultstate":"minecraft:bamboo[age=0,leaves=none,stage=0]"},"minecraft:bamboo_sapling":{"properties":{},"defaultstate":"minecraft:bamboo_sapling"},"minecraft:barrel":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"},"open":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:barrel[facing=north,open=false]"},"minecraft:barrier":{"properties":{},"defaultstate":"minecraft:barrier"},"minecraft:beacon":{"properties":{},"defaultstate":"minecraft:beacon"},"minecraft:bedrock":{"properties":{},"defaultstate":"minecraft:bedrock"},"minecraft:beetroots":{"properties":{"age":{"values":["0","1","2","3"],"type":"int"}},"defaultstate":"minecraft:beetroots[age=0]"},"minecraft:bell":{"properties":{"attachment":{"values":["floor","ceiling","single_wall","double_wall"],"type":"enum"},"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:bell[attachment=floor,facing=north]"},"minecraft:birch_button":{"properties":{"face":{"values":["floor","wall","ceiling"],"type":"enum"},"facing":{"values":["north","south","west","east"],"type":"direction"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:birch_button[face=wall,facing=north,powered=false]"},"minecraft:birch_door":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["upper","lower"],"type":"enum"},"hinge":{"values":["left","right"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:birch_door[facing=north,half=lower,hinge=left,open=false,powered=false]"},"minecraft:birch_fence":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:birch_fence[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:birch_fence_gate":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"in_wall":{"values":["true","false"],"type":"bool"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:birch_fence_gate[facing=north,in_wall=false,open=false,powered=false]"},"minecraft:birch_leaves":{"properties":{"distance":{"values":["1","2","3","4","5","6","7"],"type":"int"},"persistent":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:birch_leaves[distance=7,persistent=false]"},"minecraft:birch_log":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:birch_log[axis=y]"},"minecraft:birch_planks":{"properties":{},"defaultstate":"minecraft:birch_planks"},"minecraft:birch_pressure_plate":{"properties":{"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:birch_pressure_plate[powered=false]"},"minecraft:birch_sapling":{"properties":{"stage":{"values":["0","1"],"type":"int"}},"defaultstate":"minecraft:birch_sapling[stage=0]"},"minecraft:birch_sign":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:birch_sign[rotation=0,waterlogged=false]"},"minecraft:birch_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:birch_slab[type=bottom,waterlogged=false]"},"minecraft:birch_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:birch_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:birch_trapdoor":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:birch_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]"},"minecraft:birch_wall_sign":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:birch_wall_sign[facing=north,waterlogged=false]"},"minecraft:birch_wood":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:birch_wood[axis=y]"},"minecraft:black_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:black_banner[rotation=0]"},"minecraft:black_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:black_bed[facing=north,occupied=false,part=foot]"},"minecraft:black_carpet":{"properties":{},"defaultstate":"minecraft:black_carpet"},"minecraft:black_concrete":{"properties":{},"defaultstate":"minecraft:black_concrete"},"minecraft:black_concrete_powder":{"properties":{},"defaultstate":"minecraft:black_concrete_powder"},"minecraft:black_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:black_glazed_terracotta[facing=north]"},"minecraft:black_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:black_shulker_box[facing=up]"},"minecraft:black_stained_glass":{"properties":{},"defaultstate":"minecraft:black_stained_glass"},"minecraft:black_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:black_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:black_terracotta":{"properties":{},"defaultstate":"minecraft:black_terracotta"},"minecraft:black_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:black_wall_banner[facing=north]"},"minecraft:black_wool":{"properties":{},"defaultstate":"minecraft:black_wool"},"minecraft:blast_furnace":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"lit":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:blast_furnace[facing=north,lit=false]"},"minecraft:blue_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:blue_banner[rotation=0]"},"minecraft:blue_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:blue_bed[facing=north,occupied=false,part=foot]"},"minecraft:blue_carpet":{"properties":{},"defaultstate":"minecraft:blue_carpet"},"minecraft:blue_concrete":{"properties":{},"defaultstate":"minecraft:blue_concrete"},"minecraft:blue_concrete_powder":{"properties":{},"defaultstate":"minecraft:blue_concrete_powder"},"minecraft:blue_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:blue_glazed_terracotta[facing=north]"},"minecraft:blue_ice":{"properties":{},"defaultstate":"minecraft:blue_ice"},"minecraft:blue_orchid":{"properties":{},"defaultstate":"minecraft:blue_orchid"},"minecraft:blue_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:blue_shulker_box[facing=up]"},"minecraft:blue_stained_glass":{"properties":{},"defaultstate":"minecraft:blue_stained_glass"},"minecraft:blue_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:blue_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:blue_terracotta":{"properties":{},"defaultstate":"minecraft:blue_terracotta"},"minecraft:blue_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:blue_wall_banner[facing=north]"},"minecraft:blue_wool":{"properties":{},"defaultstate":"minecraft:blue_wool"},"minecraft:bone_block":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:bone_block[axis=y]"},"minecraft:bookshelf":{"properties":{},"defaultstate":"minecraft:bookshelf"},"minecraft:brain_coral":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:brain_coral[waterlogged=true]"},"minecraft:brain_coral_block":{"properties":{},"defaultstate":"minecraft:brain_coral_block"},"minecraft:brain_coral_fan":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:brain_coral_fan[waterlogged=true]"},"minecraft:brain_coral_wall_fan":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:brain_coral_wall_fan[facing=north,waterlogged=true]"},"minecraft:brewing_stand":{"properties":{"has_bottle_0":{"values":["true","false"],"type":"bool"},"has_bottle_1":{"values":["true","false"],"type":"bool"},"has_bottle_2":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:brewing_stand[has_bottle_0=false,has_bottle_1=false,has_bottle_2=false]"},"minecraft:brick_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:brick_slab[type=bottom,waterlogged=false]"},"minecraft:brick_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:brick_wall":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:brick_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]"},"minecraft:bricks":{"properties":{},"defaultstate":"minecraft:bricks"},"minecraft:brown_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:brown_banner[rotation=0]"},"minecraft:brown_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:brown_bed[facing=north,occupied=false,part=foot]"},"minecraft:brown_carpet":{"properties":{},"defaultstate":"minecraft:brown_carpet"},"minecraft:brown_concrete":{"properties":{},"defaultstate":"minecraft:brown_concrete"},"minecraft:brown_concrete_powder":{"properties":{},"defaultstate":"minecraft:brown_concrete_powder"},"minecraft:brown_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:brown_glazed_terracotta[facing=north]"},"minecraft:brown_mushroom":{"properties":{},"defaultstate":"minecraft:brown_mushroom"},"minecraft:brown_mushroom_block":{"properties":{"down":{"values":["true","false"],"type":"bool"},"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:brown_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true]"},"minecraft:brown_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:brown_shulker_box[facing=up]"},"minecraft:brown_stained_glass":{"properties":{},"defaultstate":"minecraft:brown_stained_glass"},"minecraft:brown_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:brown_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:brown_terracotta":{"properties":{},"defaultstate":"minecraft:brown_terracotta"},"minecraft:brown_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:brown_wall_banner[facing=north]"},"minecraft:brown_wool":{"properties":{},"defaultstate":"minecraft:brown_wool"},"minecraft:bubble_column":{"properties":{"drag":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:bubble_column[drag=true]"},"minecraft:bubble_coral":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:bubble_coral[waterlogged=true]"},"minecraft:bubble_coral_block":{"properties":{},"defaultstate":"minecraft:bubble_coral_block"},"minecraft:bubble_coral_fan":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:bubble_coral_fan[waterlogged=true]"},"minecraft:bubble_coral_wall_fan":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:bubble_coral_wall_fan[facing=north,waterlogged=true]"},"minecraft:cactus":{"properties":{"age":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:cactus[age=0]"},"minecraft:cake":{"properties":{"bites":{"values":["0","1","2","3","4","5","6"],"type":"int"}},"defaultstate":"minecraft:cake[bites=0]"},"minecraft:campfire":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"lit":{"values":["true","false"],"type":"bool"},"signal_fire":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:campfire[facing=north,lit=true,signal_fire=false,waterlogged=false]"},"minecraft:carrots":{"properties":{"age":{"values":["0","1","2","3","4","5","6","7"],"type":"int"}},"defaultstate":"minecraft:carrots[age=0]"},"minecraft:cartography_table":{"properties":{},"defaultstate":"minecraft:cartography_table"},"minecraft:carved_pumpkin":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:carved_pumpkin[facing=north]"},"minecraft:cauldron":{"properties":{"level":{"values":["0","1","2","3"],"type":"int"}},"defaultstate":"minecraft:cauldron[level=0]"},"minecraft:cave_air":{"properties":{},"defaultstate":"minecraft:cave_air"},"minecraft:chain_command_block":{"properties":{"conditional":{"values":["true","false"],"type":"bool"},"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:chain_command_block[conditional=false,facing=north]"},"minecraft:chest":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"type":{"values":["single","left","right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:chest[facing=north,type=single,waterlogged=false]"},"minecraft:chipped_anvil":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:chipped_anvil[facing=north]"},"minecraft:chiseled_quartz_block":{"properties":{},"defaultstate":"minecraft:chiseled_quartz_block"},"minecraft:chiseled_red_sandstone":{"properties":{},"defaultstate":"minecraft:chiseled_red_sandstone"},"minecraft:chiseled_sandstone":{"properties":{},"defaultstate":"minecraft:chiseled_sandstone"},"minecraft:chiseled_stone_bricks":{"properties":{},"defaultstate":"minecraft:chiseled_stone_bricks"},"minecraft:chorus_flower":{"properties":{"age":{"values":["0","1","2","3","4","5"],"type":"int"}},"defaultstate":"minecraft:chorus_flower[age=0]"},"minecraft:chorus_plant":{"properties":{"down":{"values":["true","false"],"type":"bool"},"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:chorus_plant[down=false,east=false,north=false,south=false,up=false,west=false]"},"minecraft:clay":{"properties":{},"defaultstate":"minecraft:clay"},"minecraft:coal_block":{"properties":{},"defaultstate":"minecraft:coal_block"},"minecraft:coal_ore":{"properties":{},"defaultstate":"minecraft:coal_ore"},"minecraft:coarse_dirt":{"properties":{},"defaultstate":"minecraft:coarse_dirt"},"minecraft:cobblestone":{"properties":{},"defaultstate":"minecraft:cobblestone"},"minecraft:cobblestone_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:cobblestone_slab[type=bottom,waterlogged=false]"},"minecraft:cobblestone_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:cobblestone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:cobblestone_wall":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:cobblestone_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]"},"minecraft:cobweb":{"properties":{},"defaultstate":"minecraft:cobweb"},"minecraft:cocoa":{"properties":{"age":{"values":["0","1","2"],"type":"int"},"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:cocoa[age=0,facing=north]"},"minecraft:command_block":{"properties":{"conditional":{"values":["true","false"],"type":"bool"},"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:command_block[conditional=false,facing=north]"},"minecraft:comparator":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"mode":{"values":["compare","subtract"],"type":"enum"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:comparator[facing=north,mode=compare,powered=false]"},"minecraft:composter":{"properties":{"level":{"values":["0","1","2","3","4","5","6","7","8"],"type":"int"}},"defaultstate":"minecraft:composter[level=0]"},"minecraft:conduit":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:conduit[waterlogged=true]"},"minecraft:cornflower":{"properties":{},"defaultstate":"minecraft:cornflower"},"minecraft:cracked_stone_bricks":{"properties":{},"defaultstate":"minecraft:cracked_stone_bricks"},"minecraft:crafting_table":{"properties":{},"defaultstate":"minecraft:crafting_table"},"minecraft:creeper_head":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:creeper_head[rotation=0]"},"minecraft:creeper_wall_head":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:creeper_wall_head[facing=north]"},"minecraft:cut_red_sandstone":{"properties":{},"defaultstate":"minecraft:cut_red_sandstone"},"minecraft:cut_red_sandstone_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:cut_red_sandstone_slab[type=bottom,waterlogged=false]"},"minecraft:cut_sandstone":{"properties":{},"defaultstate":"minecraft:cut_sandstone"},"minecraft:cut_sandstone_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:cut_sandstone_slab[type=bottom,waterlogged=false]"},"minecraft:cyan_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:cyan_banner[rotation=0]"},"minecraft:cyan_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:cyan_bed[facing=north,occupied=false,part=foot]"},"minecraft:cyan_carpet":{"properties":{},"defaultstate":"minecraft:cyan_carpet"},"minecraft:cyan_concrete":{"properties":{},"defaultstate":"minecraft:cyan_concrete"},"minecraft:cyan_concrete_powder":{"properties":{},"defaultstate":"minecraft:cyan_concrete_powder"},"minecraft:cyan_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:cyan_glazed_terracotta[facing=north]"},"minecraft:cyan_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:cyan_shulker_box[facing=up]"},"minecraft:cyan_stained_glass":{"properties":{},"defaultstate":"minecraft:cyan_stained_glass"},"minecraft:cyan_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:cyan_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:cyan_terracotta":{"properties":{},"defaultstate":"minecraft:cyan_terracotta"},"minecraft:cyan_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:cyan_wall_banner[facing=north]"},"minecraft:cyan_wool":{"properties":{},"defaultstate":"minecraft:cyan_wool"},"minecraft:damaged_anvil":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:damaged_anvil[facing=north]"},"minecraft:dandelion":{"properties":{},"defaultstate":"minecraft:dandelion"},"minecraft:dark_oak_button":{"properties":{"face":{"values":["floor","wall","ceiling"],"type":"enum"},"facing":{"values":["north","south","west","east"],"type":"direction"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dark_oak_button[face=wall,facing=north,powered=false]"},"minecraft:dark_oak_door":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["upper","lower"],"type":"enum"},"hinge":{"values":["left","right"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dark_oak_door[facing=north,half=lower,hinge=left,open=false,powered=false]"},"minecraft:dark_oak_fence":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dark_oak_fence[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:dark_oak_fence_gate":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"in_wall":{"values":["true","false"],"type":"bool"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dark_oak_fence_gate[facing=north,in_wall=false,open=false,powered=false]"},"minecraft:dark_oak_leaves":{"properties":{"distance":{"values":["1","2","3","4","5","6","7"],"type":"int"},"persistent":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dark_oak_leaves[distance=7,persistent=false]"},"minecraft:dark_oak_log":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:dark_oak_log[axis=y]"},"minecraft:dark_oak_planks":{"properties":{},"defaultstate":"minecraft:dark_oak_planks"},"minecraft:dark_oak_pressure_plate":{"properties":{"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dark_oak_pressure_plate[powered=false]"},"minecraft:dark_oak_sapling":{"properties":{"stage":{"values":["0","1"],"type":"int"}},"defaultstate":"minecraft:dark_oak_sapling[stage=0]"},"minecraft:dark_oak_sign":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dark_oak_sign[rotation=0,waterlogged=false]"},"minecraft:dark_oak_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dark_oak_slab[type=bottom,waterlogged=false]"},"minecraft:dark_oak_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dark_oak_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:dark_oak_trapdoor":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dark_oak_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]"},"minecraft:dark_oak_wall_sign":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dark_oak_wall_sign[facing=north,waterlogged=false]"},"minecraft:dark_oak_wood":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:dark_oak_wood[axis=y]"},"minecraft:dark_prismarine":{"properties":{},"defaultstate":"minecraft:dark_prismarine"},"minecraft:dark_prismarine_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dark_prismarine_slab[type=bottom,waterlogged=false]"},"minecraft:dark_prismarine_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dark_prismarine_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:daylight_detector":{"properties":{"inverted":{"values":["true","false"],"type":"bool"},"power":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:daylight_detector[inverted=false,power=0]"},"minecraft:dead_brain_coral":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_brain_coral[waterlogged=true]"},"minecraft:dead_brain_coral_block":{"properties":{},"defaultstate":"minecraft:dead_brain_coral_block"},"minecraft:dead_brain_coral_fan":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_brain_coral_fan[waterlogged=true]"},"minecraft:dead_brain_coral_wall_fan":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_brain_coral_wall_fan[facing=north,waterlogged=true]"},"minecraft:dead_bubble_coral":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_bubble_coral[waterlogged=true]"},"minecraft:dead_bubble_coral_block":{"properties":{},"defaultstate":"minecraft:dead_bubble_coral_block"},"minecraft:dead_bubble_coral_fan":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_bubble_coral_fan[waterlogged=true]"},"minecraft:dead_bubble_coral_wall_fan":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_bubble_coral_wall_fan[facing=north,waterlogged=true]"},"minecraft:dead_bush":{"properties":{},"defaultstate":"minecraft:dead_bush"},"minecraft:dead_fire_coral":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_fire_coral[waterlogged=true]"},"minecraft:dead_fire_coral_block":{"properties":{},"defaultstate":"minecraft:dead_fire_coral_block"},"minecraft:dead_fire_coral_fan":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_fire_coral_fan[waterlogged=true]"},"minecraft:dead_fire_coral_wall_fan":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_fire_coral_wall_fan[facing=north,waterlogged=true]"},"minecraft:dead_horn_coral":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_horn_coral[waterlogged=true]"},"minecraft:dead_horn_coral_block":{"properties":{},"defaultstate":"minecraft:dead_horn_coral_block"},"minecraft:dead_horn_coral_fan":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_horn_coral_fan[waterlogged=true]"},"minecraft:dead_horn_coral_wall_fan":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_horn_coral_wall_fan[facing=north,waterlogged=true]"},"minecraft:dead_tube_coral":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_tube_coral[waterlogged=true]"},"minecraft:dead_tube_coral_block":{"properties":{},"defaultstate":"minecraft:dead_tube_coral_block"},"minecraft:dead_tube_coral_fan":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_tube_coral_fan[waterlogged=true]"},"minecraft:dead_tube_coral_wall_fan":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_tube_coral_wall_fan[facing=north,waterlogged=true]"},"minecraft:detector_rail":{"properties":{"powered":{"values":["true","false"],"type":"bool"},"shape":{"values":["north_south","east_west","ascending_east","ascending_west","ascending_north","ascending_south"],"type":"enum"}},"defaultstate":"minecraft:detector_rail[powered=false,shape=north_south]"},"minecraft:diamond_block":{"properties":{},"defaultstate":"minecraft:diamond_block"},"minecraft:diamond_ore":{"properties":{},"defaultstate":"minecraft:diamond_ore"},"minecraft:diorite":{"properties":{},"defaultstate":"minecraft:diorite"},"minecraft:diorite_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:diorite_slab[type=bottom,waterlogged=false]"},"minecraft:diorite_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:diorite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:diorite_wall":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:diorite_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]"},"minecraft:dirt":{"properties":{},"defaultstate":"minecraft:dirt"},"minecraft:dispenser":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"},"triggered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dispenser[facing=north,triggered=false]"},"minecraft:dragon_egg":{"properties":{},"defaultstate":"minecraft:dragon_egg"},"minecraft:dragon_head":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:dragon_head[rotation=0]"},"minecraft:dragon_wall_head":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:dragon_wall_head[facing=north]"},"minecraft:dried_kelp_block":{"properties":{},"defaultstate":"minecraft:dried_kelp_block"},"minecraft:dropper":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"},"triggered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dropper[facing=north,triggered=false]"},"minecraft:emerald_block":{"properties":{},"defaultstate":"minecraft:emerald_block"},"minecraft:emerald_ore":{"properties":{},"defaultstate":"minecraft:emerald_ore"},"minecraft:enchanting_table":{"properties":{},"defaultstate":"minecraft:enchanting_table"},"minecraft:end_gateway":{"properties":{},"defaultstate":"minecraft:end_gateway"},"minecraft:end_portal":{"properties":{},"defaultstate":"minecraft:end_portal"},"minecraft:end_portal_frame":{"properties":{"eye":{"values":["true","false"],"type":"bool"},"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:end_portal_frame[eye=false,facing=north]"},"minecraft:end_rod":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:end_rod[facing=up]"},"minecraft:end_stone":{"properties":{},"defaultstate":"minecraft:end_stone"},"minecraft:end_stone_brick_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:end_stone_brick_slab[type=bottom,waterlogged=false]"},"minecraft:end_stone_brick_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:end_stone_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:end_stone_brick_wall":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:end_stone_brick_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]"},"minecraft:end_stone_bricks":{"properties":{},"defaultstate":"minecraft:end_stone_bricks"},"minecraft:ender_chest":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:ender_chest[facing=north,waterlogged=false]"},"minecraft:farmland":{"properties":{"moisture":{"values":["0","1","2","3","4","5","6","7"],"type":"int"}},"defaultstate":"minecraft:farmland[moisture=0]"},"minecraft:fern":{"properties":{},"defaultstate":"minecraft:fern"},"minecraft:fire":{"properties":{"age":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"},"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:fire[age=0,east=false,north=false,south=false,up=false,west=false]"},"minecraft:fire_coral":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:fire_coral[waterlogged=true]"},"minecraft:fire_coral_block":{"properties":{},"defaultstate":"minecraft:fire_coral_block"},"minecraft:fire_coral_fan":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:fire_coral_fan[waterlogged=true]"},"minecraft:fire_coral_wall_fan":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:fire_coral_wall_fan[facing=north,waterlogged=true]"},"minecraft:fletching_table":{"properties":{},"defaultstate":"minecraft:fletching_table"},"minecraft:flower_pot":{"properties":{},"defaultstate":"minecraft:flower_pot"},"minecraft:frosted_ice":{"properties":{"age":{"values":["0","1","2","3"],"type":"int"}},"defaultstate":"minecraft:frosted_ice[age=0]"},"minecraft:furnace":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"lit":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:furnace[facing=north,lit=false]"},"minecraft:glass":{"properties":{},"defaultstate":"minecraft:glass"},"minecraft:glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:glowstone":{"properties":{},"defaultstate":"minecraft:glowstone"},"minecraft:gold_block":{"properties":{},"defaultstate":"minecraft:gold_block"},"minecraft:gold_ore":{"properties":{},"defaultstate":"minecraft:gold_ore"},"minecraft:granite":{"properties":{},"defaultstate":"minecraft:granite"},"minecraft:granite_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:granite_slab[type=bottom,waterlogged=false]"},"minecraft:granite_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:granite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:granite_wall":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:granite_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]"},"minecraft:grass":{"properties":{},"defaultstate":"minecraft:grass"},"minecraft:grass_block":{"properties":{"snowy":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:grass_block[snowy=false]"},"minecraft:grass_path":{"properties":{},"defaultstate":"minecraft:grass_path"},"minecraft:gravel":{"properties":{},"defaultstate":"minecraft:gravel"},"minecraft:gray_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:gray_banner[rotation=0]"},"minecraft:gray_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:gray_bed[facing=north,occupied=false,part=foot]"},"minecraft:gray_carpet":{"properties":{},"defaultstate":"minecraft:gray_carpet"},"minecraft:gray_concrete":{"properties":{},"defaultstate":"minecraft:gray_concrete"},"minecraft:gray_concrete_powder":{"properties":{},"defaultstate":"minecraft:gray_concrete_powder"},"minecraft:gray_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:gray_glazed_terracotta[facing=north]"},"minecraft:gray_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:gray_shulker_box[facing=up]"},"minecraft:gray_stained_glass":{"properties":{},"defaultstate":"minecraft:gray_stained_glass"},"minecraft:gray_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:gray_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:gray_terracotta":{"properties":{},"defaultstate":"minecraft:gray_terracotta"},"minecraft:gray_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:gray_wall_banner[facing=north]"},"minecraft:gray_wool":{"properties":{},"defaultstate":"minecraft:gray_wool"},"minecraft:green_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:green_banner[rotation=0]"},"minecraft:green_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:green_bed[facing=north,occupied=false,part=foot]"},"minecraft:green_carpet":{"properties":{},"defaultstate":"minecraft:green_carpet"},"minecraft:green_concrete":{"properties":{},"defaultstate":"minecraft:green_concrete"},"minecraft:green_concrete_powder":{"properties":{},"defaultstate":"minecraft:green_concrete_powder"},"minecraft:green_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:green_glazed_terracotta[facing=north]"},"minecraft:green_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:green_shulker_box[facing=up]"},"minecraft:green_stained_glass":{"properties":{},"defaultstate":"minecraft:green_stained_glass"},"minecraft:green_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:green_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:green_terracotta":{"properties":{},"defaultstate":"minecraft:green_terracotta"},"minecraft:green_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:green_wall_banner[facing=north]"},"minecraft:green_wool":{"properties":{},"defaultstate":"minecraft:green_wool"},"minecraft:grindstone":{"properties":{"face":{"values":["floor","wall","ceiling"],"type":"enum"},"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:grindstone[face=wall,facing=north]"},"minecraft:hay_block":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:hay_block[axis=y]"},"minecraft:heavy_weighted_pressure_plate":{"properties":{"power":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:heavy_weighted_pressure_plate[power=0]"},"minecraft:hopper":{"properties":{"enabled":{"values":["true","false"],"type":"bool"},"facing":{"values":["down","north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:hopper[enabled=true,facing=down]"},"minecraft:horn_coral":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:horn_coral[waterlogged=true]"},"minecraft:horn_coral_block":{"properties":{},"defaultstate":"minecraft:horn_coral_block"},"minecraft:horn_coral_fan":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:horn_coral_fan[waterlogged=true]"},"minecraft:horn_coral_wall_fan":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:horn_coral_wall_fan[facing=north,waterlogged=true]"},"minecraft:ice":{"properties":{},"defaultstate":"minecraft:ice"},"minecraft:infested_chiseled_stone_bricks":{"properties":{},"defaultstate":"minecraft:infested_chiseled_stone_bricks"},"minecraft:infested_cobblestone":{"properties":{},"defaultstate":"minecraft:infested_cobblestone"},"minecraft:infested_cracked_stone_bricks":{"properties":{},"defaultstate":"minecraft:infested_cracked_stone_bricks"},"minecraft:infested_mossy_stone_bricks":{"properties":{},"defaultstate":"minecraft:infested_mossy_stone_bricks"},"minecraft:infested_stone":{"properties":{},"defaultstate":"minecraft:infested_stone"},"minecraft:infested_stone_bricks":{"properties":{},"defaultstate":"minecraft:infested_stone_bricks"},"minecraft:iron_bars":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:iron_bars[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:iron_block":{"properties":{},"defaultstate":"minecraft:iron_block"},"minecraft:iron_door":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["upper","lower"],"type":"enum"},"hinge":{"values":["left","right"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:iron_door[facing=north,half=lower,hinge=left,open=false,powered=false]"},"minecraft:iron_ore":{"properties":{},"defaultstate":"minecraft:iron_ore"},"minecraft:iron_trapdoor":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:iron_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]"},"minecraft:jack_o_lantern":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:jack_o_lantern[facing=north]"},"minecraft:jigsaw":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:jigsaw[facing=up]"},"minecraft:jukebox":{"properties":{"has_record":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:jukebox[has_record=false]"},"minecraft:jungle_button":{"properties":{"face":{"values":["floor","wall","ceiling"],"type":"enum"},"facing":{"values":["north","south","west","east"],"type":"direction"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:jungle_button[face=wall,facing=north,powered=false]"},"minecraft:jungle_door":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["upper","lower"],"type":"enum"},"hinge":{"values":["left","right"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:jungle_door[facing=north,half=lower,hinge=left,open=false,powered=false]"},"minecraft:jungle_fence":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:jungle_fence[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:jungle_fence_gate":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"in_wall":{"values":["true","false"],"type":"bool"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:jungle_fence_gate[facing=north,in_wall=false,open=false,powered=false]"},"minecraft:jungle_leaves":{"properties":{"distance":{"values":["1","2","3","4","5","6","7"],"type":"int"},"persistent":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:jungle_leaves[distance=7,persistent=false]"},"minecraft:jungle_log":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:jungle_log[axis=y]"},"minecraft:jungle_planks":{"properties":{},"defaultstate":"minecraft:jungle_planks"},"minecraft:jungle_pressure_plate":{"properties":{"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:jungle_pressure_plate[powered=false]"},"minecraft:jungle_sapling":{"properties":{"stage":{"values":["0","1"],"type":"int"}},"defaultstate":"minecraft:jungle_sapling[stage=0]"},"minecraft:jungle_sign":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:jungle_sign[rotation=0,waterlogged=false]"},"minecraft:jungle_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:jungle_slab[type=bottom,waterlogged=false]"},"minecraft:jungle_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:jungle_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:jungle_trapdoor":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:jungle_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]"},"minecraft:jungle_wall_sign":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:jungle_wall_sign[facing=north,waterlogged=false]"},"minecraft:jungle_wood":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:jungle_wood[axis=y]"},"minecraft:kelp":{"properties":{"age":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25"],"type":"int"}},"defaultstate":"minecraft:kelp[age=0]"},"minecraft:kelp_plant":{"properties":{},"defaultstate":"minecraft:kelp_plant"},"minecraft:ladder":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:ladder[facing=north,waterlogged=false]"},"minecraft:lantern":{"properties":{"hanging":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:lantern[hanging=false]"},"minecraft:lapis_block":{"properties":{},"defaultstate":"minecraft:lapis_block"},"minecraft:lapis_ore":{"properties":{},"defaultstate":"minecraft:lapis_ore"},"minecraft:large_fern":{"properties":{"half":{"values":["upper","lower"],"type":"enum"}},"defaultstate":"minecraft:large_fern[half=lower]"},"minecraft:lava":{"properties":{"level":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:lava[level=0]"},"minecraft:lectern":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"has_book":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:lectern[facing=north,has_book=false,powered=false]"},"minecraft:lever":{"properties":{"face":{"values":["floor","wall","ceiling"],"type":"enum"},"facing":{"values":["north","south","west","east"],"type":"direction"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:lever[face=wall,facing=north,powered=false]"},"minecraft:light_blue_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:light_blue_banner[rotation=0]"},"minecraft:light_blue_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:light_blue_bed[facing=north,occupied=false,part=foot]"},"minecraft:light_blue_carpet":{"properties":{},"defaultstate":"minecraft:light_blue_carpet"},"minecraft:light_blue_concrete":{"properties":{},"defaultstate":"minecraft:light_blue_concrete"},"minecraft:light_blue_concrete_powder":{"properties":{},"defaultstate":"minecraft:light_blue_concrete_powder"},"minecraft:light_blue_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:light_blue_glazed_terracotta[facing=north]"},"minecraft:light_blue_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:light_blue_shulker_box[facing=up]"},"minecraft:light_blue_stained_glass":{"properties":{},"defaultstate":"minecraft:light_blue_stained_glass"},"minecraft:light_blue_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:light_blue_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:light_blue_terracotta":{"properties":{},"defaultstate":"minecraft:light_blue_terracotta"},"minecraft:light_blue_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:light_blue_wall_banner[facing=north]"},"minecraft:light_blue_wool":{"properties":{},"defaultstate":"minecraft:light_blue_wool"},"minecraft:light_gray_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:light_gray_banner[rotation=0]"},"minecraft:light_gray_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:light_gray_bed[facing=north,occupied=false,part=foot]"},"minecraft:light_gray_carpet":{"properties":{},"defaultstate":"minecraft:light_gray_carpet"},"minecraft:light_gray_concrete":{"properties":{},"defaultstate":"minecraft:light_gray_concrete"},"minecraft:light_gray_concrete_powder":{"properties":{},"defaultstate":"minecraft:light_gray_concrete_powder"},"minecraft:light_gray_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:light_gray_glazed_terracotta[facing=north]"},"minecraft:light_gray_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:light_gray_shulker_box[facing=up]"},"minecraft:light_gray_stained_glass":{"properties":{},"defaultstate":"minecraft:light_gray_stained_glass"},"minecraft:light_gray_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:light_gray_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:light_gray_terracotta":{"properties":{},"defaultstate":"minecraft:light_gray_terracotta"},"minecraft:light_gray_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:light_gray_wall_banner[facing=north]"},"minecraft:light_gray_wool":{"properties":{},"defaultstate":"minecraft:light_gray_wool"},"minecraft:light_weighted_pressure_plate":{"properties":{"power":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:light_weighted_pressure_plate[power=0]"},"minecraft:lilac":{"properties":{"half":{"values":["upper","lower"],"type":"enum"}},"defaultstate":"minecraft:lilac[half=lower]"},"minecraft:lily_of_the_valley":{"properties":{},"defaultstate":"minecraft:lily_of_the_valley"},"minecraft:lily_pad":{"properties":{},"defaultstate":"minecraft:lily_pad"},"minecraft:lime_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:lime_banner[rotation=0]"},"minecraft:lime_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:lime_bed[facing=north,occupied=false,part=foot]"},"minecraft:lime_carpet":{"properties":{},"defaultstate":"minecraft:lime_carpet"},"minecraft:lime_concrete":{"properties":{},"defaultstate":"minecraft:lime_concrete"},"minecraft:lime_concrete_powder":{"properties":{},"defaultstate":"minecraft:lime_concrete_powder"},"minecraft:lime_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:lime_glazed_terracotta[facing=north]"},"minecraft:lime_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:lime_shulker_box[facing=up]"},"minecraft:lime_stained_glass":{"properties":{},"defaultstate":"minecraft:lime_stained_glass"},"minecraft:lime_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:lime_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:lime_terracotta":{"properties":{},"defaultstate":"minecraft:lime_terracotta"},"minecraft:lime_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:lime_wall_banner[facing=north]"},"minecraft:lime_wool":{"properties":{},"defaultstate":"minecraft:lime_wool"},"minecraft:loom":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:loom[facing=north]"},"minecraft:magenta_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:magenta_banner[rotation=0]"},"minecraft:magenta_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:magenta_bed[facing=north,occupied=false,part=foot]"},"minecraft:magenta_carpet":{"properties":{},"defaultstate":"minecraft:magenta_carpet"},"minecraft:magenta_concrete":{"properties":{},"defaultstate":"minecraft:magenta_concrete"},"minecraft:magenta_concrete_powder":{"properties":{},"defaultstate":"minecraft:magenta_concrete_powder"},"minecraft:magenta_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:magenta_glazed_terracotta[facing=north]"},"minecraft:magenta_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:magenta_shulker_box[facing=up]"},"minecraft:magenta_stained_glass":{"properties":{},"defaultstate":"minecraft:magenta_stained_glass"},"minecraft:magenta_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:magenta_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:magenta_terracotta":{"properties":{},"defaultstate":"minecraft:magenta_terracotta"},"minecraft:magenta_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:magenta_wall_banner[facing=north]"},"minecraft:magenta_wool":{"properties":{},"defaultstate":"minecraft:magenta_wool"},"minecraft:magma_block":{"properties":{},"defaultstate":"minecraft:magma_block"},"minecraft:melon":{"properties":{},"defaultstate":"minecraft:melon"},"minecraft:melon_stem":{"properties":{"age":{"values":["0","1","2","3","4","5","6","7"],"type":"int"}},"defaultstate":"minecraft:melon_stem[age=0]"},"minecraft:mossy_cobblestone":{"properties":{},"defaultstate":"minecraft:mossy_cobblestone"},"minecraft:mossy_cobblestone_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:mossy_cobblestone_slab[type=bottom,waterlogged=false]"},"minecraft:mossy_cobblestone_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:mossy_cobblestone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:mossy_cobblestone_wall":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:mossy_cobblestone_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]"},"minecraft:mossy_stone_brick_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:mossy_stone_brick_slab[type=bottom,waterlogged=false]"},"minecraft:mossy_stone_brick_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:mossy_stone_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:mossy_stone_brick_wall":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:mossy_stone_brick_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]"},"minecraft:mossy_stone_bricks":{"properties":{},"defaultstate":"minecraft:mossy_stone_bricks"},"minecraft:moving_piston":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"},"type":{"values":["normal","sticky"],"type":"enum"}},"defaultstate":"minecraft:moving_piston[facing=north,type=normal]"},"minecraft:mushroom_stem":{"properties":{"down":{"values":["true","false"],"type":"bool"},"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:mushroom_stem[down=true,east=true,north=true,south=true,up=true,west=true]"},"minecraft:mycelium":{"properties":{"snowy":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:mycelium[snowy=false]"},"minecraft:nether_brick_fence":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:nether_brick_fence[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:nether_brick_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:nether_brick_slab[type=bottom,waterlogged=false]"},"minecraft:nether_brick_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:nether_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:nether_brick_wall":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:nether_brick_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]"},"minecraft:nether_bricks":{"properties":{},"defaultstate":"minecraft:nether_bricks"},"minecraft:nether_portal":{"properties":{"axis":{"values":["x","z"],"type":"enum"}},"defaultstate":"minecraft:nether_portal[axis=x]"},"minecraft:nether_quartz_ore":{"properties":{},"defaultstate":"minecraft:nether_quartz_ore"},"minecraft:nether_wart":{"properties":{"age":{"values":["0","1","2","3"],"type":"int"}},"defaultstate":"minecraft:nether_wart[age=0]"},"minecraft:nether_wart_block":{"properties":{},"defaultstate":"minecraft:nether_wart_block"},"minecraft:netherrack":{"properties":{},"defaultstate":"minecraft:netherrack"},"minecraft:note_block":{"properties":{"instrument":{"values":["harp","basedrum","snare","hat","bass","flute","bell","guitar","chime","xylophone","iron_xylophone","cow_bell","didgeridoo","bit","banjo","pling"],"type":"enum"},"note":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24"],"type":"int"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:note_block[instrument=harp,note=0,powered=false]"},"minecraft:oak_button":{"properties":{"face":{"values":["floor","wall","ceiling"],"type":"enum"},"facing":{"values":["north","south","west","east"],"type":"direction"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:oak_button[face=wall,facing=north,powered=false]"},"minecraft:oak_door":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["upper","lower"],"type":"enum"},"hinge":{"values":["left","right"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:oak_door[facing=north,half=lower,hinge=left,open=false,powered=false]"},"minecraft:oak_fence":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:oak_fence[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:oak_fence_gate":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"in_wall":{"values":["true","false"],"type":"bool"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:oak_fence_gate[facing=north,in_wall=false,open=false,powered=false]"},"minecraft:oak_leaves":{"properties":{"distance":{"values":["1","2","3","4","5","6","7"],"type":"int"},"persistent":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:oak_leaves[distance=7,persistent=false]"},"minecraft:oak_log":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:oak_log[axis=y]"},"minecraft:oak_planks":{"properties":{},"defaultstate":"minecraft:oak_planks"},"minecraft:oak_pressure_plate":{"properties":{"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:oak_pressure_plate[powered=false]"},"minecraft:oak_sapling":{"properties":{"stage":{"values":["0","1"],"type":"int"}},"defaultstate":"minecraft:oak_sapling[stage=0]"},"minecraft:oak_sign":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:oak_sign[rotation=0,waterlogged=false]"},"minecraft:oak_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:oak_slab[type=bottom,waterlogged=false]"},"minecraft:oak_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:oak_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:oak_trapdoor":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:oak_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]"},"minecraft:oak_wall_sign":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:oak_wall_sign[facing=north,waterlogged=false]"},"minecraft:oak_wood":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:oak_wood[axis=y]"},"minecraft:observer":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:observer[facing=south,powered=false]"},"minecraft:obsidian":{"properties":{},"defaultstate":"minecraft:obsidian"},"minecraft:orange_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:orange_banner[rotation=0]"},"minecraft:orange_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:orange_bed[facing=north,occupied=false,part=foot]"},"minecraft:orange_carpet":{"properties":{},"defaultstate":"minecraft:orange_carpet"},"minecraft:orange_concrete":{"properties":{},"defaultstate":"minecraft:orange_concrete"},"minecraft:orange_concrete_powder":{"properties":{},"defaultstate":"minecraft:orange_concrete_powder"},"minecraft:orange_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:orange_glazed_terracotta[facing=north]"},"minecraft:orange_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:orange_shulker_box[facing=up]"},"minecraft:orange_stained_glass":{"properties":{},"defaultstate":"minecraft:orange_stained_glass"},"minecraft:orange_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:orange_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:orange_terracotta":{"properties":{},"defaultstate":"minecraft:orange_terracotta"},"minecraft:orange_tulip":{"properties":{},"defaultstate":"minecraft:orange_tulip"},"minecraft:orange_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:orange_wall_banner[facing=north]"},"minecraft:orange_wool":{"properties":{},"defaultstate":"minecraft:orange_wool"},"minecraft:oxeye_daisy":{"properties":{},"defaultstate":"minecraft:oxeye_daisy"},"minecraft:packed_ice":{"properties":{},"defaultstate":"minecraft:packed_ice"},"minecraft:peony":{"properties":{"half":{"values":["upper","lower"],"type":"enum"}},"defaultstate":"minecraft:peony[half=lower]"},"minecraft:petrified_oak_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:petrified_oak_slab[type=bottom,waterlogged=false]"},"minecraft:pink_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:pink_banner[rotation=0]"},"minecraft:pink_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:pink_bed[facing=north,occupied=false,part=foot]"},"minecraft:pink_carpet":{"properties":{},"defaultstate":"minecraft:pink_carpet"},"minecraft:pink_concrete":{"properties":{},"defaultstate":"minecraft:pink_concrete"},"minecraft:pink_concrete_powder":{"properties":{},"defaultstate":"minecraft:pink_concrete_powder"},"minecraft:pink_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:pink_glazed_terracotta[facing=north]"},"minecraft:pink_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:pink_shulker_box[facing=up]"},"minecraft:pink_stained_glass":{"properties":{},"defaultstate":"minecraft:pink_stained_glass"},"minecraft:pink_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:pink_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:pink_terracotta":{"properties":{},"defaultstate":"minecraft:pink_terracotta"},"minecraft:pink_tulip":{"properties":{},"defaultstate":"minecraft:pink_tulip"},"minecraft:pink_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:pink_wall_banner[facing=north]"},"minecraft:pink_wool":{"properties":{},"defaultstate":"minecraft:pink_wool"},"minecraft:piston":{"properties":{"extended":{"values":["true","false"],"type":"bool"},"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:piston[extended=false,facing=north]"},"minecraft:piston_head":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"},"short":{"values":["true","false"],"type":"bool"},"type":{"values":["normal","sticky"],"type":"enum"}},"defaultstate":"minecraft:piston_head[facing=north,short=false,type=normal]"},"minecraft:player_head":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:player_head[rotation=0]"},"minecraft:player_wall_head":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:player_wall_head[facing=north]"},"minecraft:podzol":{"properties":{"snowy":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:podzol[snowy=false]"},"minecraft:polished_andesite":{"properties":{},"defaultstate":"minecraft:polished_andesite"},"minecraft:polished_andesite_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:polished_andesite_slab[type=bottom,waterlogged=false]"},"minecraft:polished_andesite_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:polished_andesite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:polished_diorite":{"properties":{},"defaultstate":"minecraft:polished_diorite"},"minecraft:polished_diorite_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:polished_diorite_slab[type=bottom,waterlogged=false]"},"minecraft:polished_diorite_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:polished_diorite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:polished_granite":{"properties":{},"defaultstate":"minecraft:polished_granite"},"minecraft:polished_granite_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:polished_granite_slab[type=bottom,waterlogged=false]"},"minecraft:polished_granite_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:polished_granite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:poppy":{"properties":{},"defaultstate":"minecraft:poppy"},"minecraft:potatoes":{"properties":{"age":{"values":["0","1","2","3","4","5","6","7"],"type":"int"}},"defaultstate":"minecraft:potatoes[age=0]"},"minecraft:potted_acacia_sapling":{"properties":{},"defaultstate":"minecraft:potted_acacia_sapling"},"minecraft:potted_allium":{"properties":{},"defaultstate":"minecraft:potted_allium"},"minecraft:potted_azure_bluet":{"properties":{},"defaultstate":"minecraft:potted_azure_bluet"},"minecraft:potted_bamboo":{"properties":{},"defaultstate":"minecraft:potted_bamboo"},"minecraft:potted_birch_sapling":{"properties":{},"defaultstate":"minecraft:potted_birch_sapling"},"minecraft:potted_blue_orchid":{"properties":{},"defaultstate":"minecraft:potted_blue_orchid"},"minecraft:potted_brown_mushroom":{"properties":{},"defaultstate":"minecraft:potted_brown_mushroom"},"minecraft:potted_cactus":{"properties":{},"defaultstate":"minecraft:potted_cactus"},"minecraft:potted_cornflower":{"properties":{},"defaultstate":"minecraft:potted_cornflower"},"minecraft:potted_dandelion":{"properties":{},"defaultstate":"minecraft:potted_dandelion"},"minecraft:potted_dark_oak_sapling":{"properties":{},"defaultstate":"minecraft:potted_dark_oak_sapling"},"minecraft:potted_dead_bush":{"properties":{},"defaultstate":"minecraft:potted_dead_bush"},"minecraft:potted_fern":{"properties":{},"defaultstate":"minecraft:potted_fern"},"minecraft:potted_jungle_sapling":{"properties":{},"defaultstate":"minecraft:potted_jungle_sapling"},"minecraft:potted_lily_of_the_valley":{"properties":{},"defaultstate":"minecraft:potted_lily_of_the_valley"},"minecraft:potted_oak_sapling":{"properties":{},"defaultstate":"minecraft:potted_oak_sapling"},"minecraft:potted_orange_tulip":{"properties":{},"defaultstate":"minecraft:potted_orange_tulip"},"minecraft:potted_oxeye_daisy":{"properties":{},"defaultstate":"minecraft:potted_oxeye_daisy"},"minecraft:potted_pink_tulip":{"properties":{},"defaultstate":"minecraft:potted_pink_tulip"},"minecraft:potted_poppy":{"properties":{},"defaultstate":"minecraft:potted_poppy"},"minecraft:potted_red_mushroom":{"properties":{},"defaultstate":"minecraft:potted_red_mushroom"},"minecraft:potted_red_tulip":{"properties":{},"defaultstate":"minecraft:potted_red_tulip"},"minecraft:potted_spruce_sapling":{"properties":{},"defaultstate":"minecraft:potted_spruce_sapling"},"minecraft:potted_white_tulip":{"properties":{},"defaultstate":"minecraft:potted_white_tulip"},"minecraft:potted_wither_rose":{"properties":{},"defaultstate":"minecraft:potted_wither_rose"},"minecraft:powered_rail":{"properties":{"powered":{"values":["true","false"],"type":"bool"},"shape":{"values":["north_south","east_west","ascending_east","ascending_west","ascending_north","ascending_south"],"type":"enum"}},"defaultstate":"minecraft:powered_rail[powered=false,shape=north_south]"},"minecraft:prismarine":{"properties":{},"defaultstate":"minecraft:prismarine"},"minecraft:prismarine_brick_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:prismarine_brick_slab[type=bottom,waterlogged=false]"},"minecraft:prismarine_brick_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:prismarine_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:prismarine_bricks":{"properties":{},"defaultstate":"minecraft:prismarine_bricks"},"minecraft:prismarine_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:prismarine_slab[type=bottom,waterlogged=false]"},"minecraft:prismarine_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:prismarine_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:prismarine_wall":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:prismarine_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]"},"minecraft:pumpkin":{"properties":{},"defaultstate":"minecraft:pumpkin"},"minecraft:pumpkin_stem":{"properties":{"age":{"values":["0","1","2","3","4","5","6","7"],"type":"int"}},"defaultstate":"minecraft:pumpkin_stem[age=0]"},"minecraft:purple_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:purple_banner[rotation=0]"},"minecraft:purple_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:purple_bed[facing=north,occupied=false,part=foot]"},"minecraft:purple_carpet":{"properties":{},"defaultstate":"minecraft:purple_carpet"},"minecraft:purple_concrete":{"properties":{},"defaultstate":"minecraft:purple_concrete"},"minecraft:purple_concrete_powder":{"properties":{},"defaultstate":"minecraft:purple_concrete_powder"},"minecraft:purple_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:purple_glazed_terracotta[facing=north]"},"minecraft:purple_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:purple_shulker_box[facing=up]"},"minecraft:purple_stained_glass":{"properties":{},"defaultstate":"minecraft:purple_stained_glass"},"minecraft:purple_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:purple_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:purple_terracotta":{"properties":{},"defaultstate":"minecraft:purple_terracotta"},"minecraft:purple_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:purple_wall_banner[facing=north]"},"minecraft:purple_wool":{"properties":{},"defaultstate":"minecraft:purple_wool"},"minecraft:purpur_block":{"properties":{},"defaultstate":"minecraft:purpur_block"},"minecraft:purpur_pillar":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:purpur_pillar[axis=y]"},"minecraft:purpur_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:purpur_slab[type=bottom,waterlogged=false]"},"minecraft:purpur_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:purpur_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:quartz_block":{"properties":{},"defaultstate":"minecraft:quartz_block"},"minecraft:quartz_pillar":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:quartz_pillar[axis=y]"},"minecraft:quartz_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:quartz_slab[type=bottom,waterlogged=false]"},"minecraft:quartz_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:quartz_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:rail":{"properties":{"shape":{"values":["north_south","east_west","ascending_east","ascending_west","ascending_north","ascending_south","south_east","south_west","north_west","north_east"],"type":"enum"}},"defaultstate":"minecraft:rail[shape=north_south]"},"minecraft:red_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:red_banner[rotation=0]"},"minecraft:red_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:red_bed[facing=north,occupied=false,part=foot]"},"minecraft:red_carpet":{"properties":{},"defaultstate":"minecraft:red_carpet"},"minecraft:red_concrete":{"properties":{},"defaultstate":"minecraft:red_concrete"},"minecraft:red_concrete_powder":{"properties":{},"defaultstate":"minecraft:red_concrete_powder"},"minecraft:red_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:red_glazed_terracotta[facing=north]"},"minecraft:red_mushroom":{"properties":{},"defaultstate":"minecraft:red_mushroom"},"minecraft:red_mushroom_block":{"properties":{"down":{"values":["true","false"],"type":"bool"},"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:red_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true]"},"minecraft:red_nether_brick_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:red_nether_brick_slab[type=bottom,waterlogged=false]"},"minecraft:red_nether_brick_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:red_nether_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:red_nether_brick_wall":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:red_nether_brick_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]"},"minecraft:red_nether_bricks":{"properties":{},"defaultstate":"minecraft:red_nether_bricks"},"minecraft:red_sand":{"properties":{},"defaultstate":"minecraft:red_sand"},"minecraft:red_sandstone":{"properties":{},"defaultstate":"minecraft:red_sandstone"},"minecraft:red_sandstone_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:red_sandstone_slab[type=bottom,waterlogged=false]"},"minecraft:red_sandstone_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:red_sandstone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:red_sandstone_wall":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:red_sandstone_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]"},"minecraft:red_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:red_shulker_box[facing=up]"},"minecraft:red_stained_glass":{"properties":{},"defaultstate":"minecraft:red_stained_glass"},"minecraft:red_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:red_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:red_terracotta":{"properties":{},"defaultstate":"minecraft:red_terracotta"},"minecraft:red_tulip":{"properties":{},"defaultstate":"minecraft:red_tulip"},"minecraft:red_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:red_wall_banner[facing=north]"},"minecraft:red_wool":{"properties":{},"defaultstate":"minecraft:red_wool"},"minecraft:redstone_block":{"properties":{},"defaultstate":"minecraft:redstone_block"},"minecraft:redstone_lamp":{"properties":{"lit":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:redstone_lamp[lit=false]"},"minecraft:redstone_ore":{"properties":{"lit":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:redstone_ore[lit=false]"},"minecraft:redstone_torch":{"properties":{"lit":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:redstone_torch[lit=true]"},"minecraft:redstone_wall_torch":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"lit":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:redstone_wall_torch[facing=north,lit=true]"},"minecraft:redstone_wire":{"properties":{"east":{"values":["up","side","none"],"type":"enum"},"north":{"values":["up","side","none"],"type":"enum"},"power":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"},"south":{"values":["up","side","none"],"type":"enum"},"west":{"values":["up","side","none"],"type":"enum"}},"defaultstate":"minecraft:redstone_wire[east=none,north=none,power=0,south=none,west=none]"},"minecraft:repeater":{"properties":{"delay":{"values":["1","2","3","4"],"type":"int"},"facing":{"values":["north","south","west","east"],"type":"direction"},"locked":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:repeater[delay=1,facing=north,locked=false,powered=false]"},"minecraft:repeating_command_block":{"properties":{"conditional":{"values":["true","false"],"type":"bool"},"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:repeating_command_block[conditional=false,facing=north]"},"minecraft:rose_bush":{"properties":{"half":{"values":["upper","lower"],"type":"enum"}},"defaultstate":"minecraft:rose_bush[half=lower]"},"minecraft:sand":{"properties":{},"defaultstate":"minecraft:sand"},"minecraft:sandstone":{"properties":{},"defaultstate":"minecraft:sandstone"},"minecraft:sandstone_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:sandstone_slab[type=bottom,waterlogged=false]"},"minecraft:sandstone_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:sandstone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:sandstone_wall":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:sandstone_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]"},"minecraft:scaffolding":{"properties":{"bottom":{"values":["true","false"],"type":"bool"},"distance":{"values":["0","1","2","3","4","5","6","7"],"type":"int"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:scaffolding[bottom=false,distance=7,waterlogged=false]"},"minecraft:sea_lantern":{"properties":{},"defaultstate":"minecraft:sea_lantern"},"minecraft:sea_pickle":{"properties":{"pickles":{"values":["1","2","3","4"],"type":"int"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:sea_pickle[pickles=1,waterlogged=true]"},"minecraft:seagrass":{"properties":{},"defaultstate":"minecraft:seagrass"},"minecraft:shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:shulker_box[facing=up]"},"minecraft:skeleton_skull":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:skeleton_skull[rotation=0]"},"minecraft:skeleton_wall_skull":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:skeleton_wall_skull[facing=north]"},"minecraft:slime_block":{"properties":{},"defaultstate":"minecraft:slime_block"},"minecraft:smithing_table":{"properties":{},"defaultstate":"minecraft:smithing_table"},"minecraft:smoker":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"lit":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:smoker[facing=north,lit=false]"},"minecraft:smooth_quartz":{"properties":{},"defaultstate":"minecraft:smooth_quartz"},"minecraft:smooth_quartz_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:smooth_quartz_slab[type=bottom,waterlogged=false]"},"minecraft:smooth_quartz_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:smooth_quartz_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:smooth_red_sandstone":{"properties":{},"defaultstate":"minecraft:smooth_red_sandstone"},"minecraft:smooth_red_sandstone_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:smooth_red_sandstone_slab[type=bottom,waterlogged=false]"},"minecraft:smooth_red_sandstone_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:smooth_red_sandstone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:smooth_sandstone":{"properties":{},"defaultstate":"minecraft:smooth_sandstone"},"minecraft:smooth_sandstone_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:smooth_sandstone_slab[type=bottom,waterlogged=false]"},"minecraft:smooth_sandstone_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:smooth_sandstone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:smooth_stone":{"properties":{},"defaultstate":"minecraft:smooth_stone"},"minecraft:smooth_stone_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:smooth_stone_slab[type=bottom,waterlogged=false]"},"minecraft:snow":{"properties":{"layers":{"values":["1","2","3","4","5","6","7","8"],"type":"int"}},"defaultstate":"minecraft:snow[layers=1]"},"minecraft:snow_block":{"properties":{},"defaultstate":"minecraft:snow_block"},"minecraft:soul_sand":{"properties":{},"defaultstate":"minecraft:soul_sand"},"minecraft:spawner":{"properties":{},"defaultstate":"minecraft:spawner"},"minecraft:sponge":{"properties":{},"defaultstate":"minecraft:sponge"},"minecraft:spruce_button":{"properties":{"face":{"values":["floor","wall","ceiling"],"type":"enum"},"facing":{"values":["north","south","west","east"],"type":"direction"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:spruce_button[face=wall,facing=north,powered=false]"},"minecraft:spruce_door":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["upper","lower"],"type":"enum"},"hinge":{"values":["left","right"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:spruce_door[facing=north,half=lower,hinge=left,open=false,powered=false]"},"minecraft:spruce_fence":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:spruce_fence[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:spruce_fence_gate":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"in_wall":{"values":["true","false"],"type":"bool"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:spruce_fence_gate[facing=north,in_wall=false,open=false,powered=false]"},"minecraft:spruce_leaves":{"properties":{"distance":{"values":["1","2","3","4","5","6","7"],"type":"int"},"persistent":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:spruce_leaves[distance=7,persistent=false]"},"minecraft:spruce_log":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:spruce_log[axis=y]"},"minecraft:spruce_planks":{"properties":{},"defaultstate":"minecraft:spruce_planks"},"minecraft:spruce_pressure_plate":{"properties":{"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:spruce_pressure_plate[powered=false]"},"minecraft:spruce_sapling":{"properties":{"stage":{"values":["0","1"],"type":"int"}},"defaultstate":"minecraft:spruce_sapling[stage=0]"},"minecraft:spruce_sign":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:spruce_sign[rotation=0,waterlogged=false]"},"minecraft:spruce_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:spruce_slab[type=bottom,waterlogged=false]"},"minecraft:spruce_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:spruce_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:spruce_trapdoor":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:spruce_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]"},"minecraft:spruce_wall_sign":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:spruce_wall_sign[facing=north,waterlogged=false]"},"minecraft:spruce_wood":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:spruce_wood[axis=y]"},"minecraft:sticky_piston":{"properties":{"extended":{"values":["true","false"],"type":"bool"},"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:sticky_piston[extended=false,facing=north]"},"minecraft:stone":{"properties":{},"defaultstate":"minecraft:stone"},"minecraft:stone_brick_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:stone_brick_slab[type=bottom,waterlogged=false]"},"minecraft:stone_brick_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:stone_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:stone_brick_wall":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:stone_brick_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]"},"minecraft:stone_bricks":{"properties":{},"defaultstate":"minecraft:stone_bricks"},"minecraft:stone_button":{"properties":{"face":{"values":["floor","wall","ceiling"],"type":"enum"},"facing":{"values":["north","south","west","east"],"type":"direction"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:stone_button[face=wall,facing=north,powered=false]"},"minecraft:stone_pressure_plate":{"properties":{"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:stone_pressure_plate[powered=false]"},"minecraft:stone_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:stone_slab[type=bottom,waterlogged=false]"},"minecraft:stone_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:stone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:stonecutter":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:stonecutter[facing=north]"},"minecraft:stripped_acacia_log":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:stripped_acacia_log[axis=y]"},"minecraft:stripped_acacia_wood":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:stripped_acacia_wood[axis=y]"},"minecraft:stripped_birch_log":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:stripped_birch_log[axis=y]"},"minecraft:stripped_birch_wood":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:stripped_birch_wood[axis=y]"},"minecraft:stripped_dark_oak_log":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:stripped_dark_oak_log[axis=y]"},"minecraft:stripped_dark_oak_wood":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:stripped_dark_oak_wood[axis=y]"},"minecraft:stripped_jungle_log":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:stripped_jungle_log[axis=y]"},"minecraft:stripped_jungle_wood":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:stripped_jungle_wood[axis=y]"},"minecraft:stripped_oak_log":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:stripped_oak_log[axis=y]"},"minecraft:stripped_oak_wood":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:stripped_oak_wood[axis=y]"},"minecraft:stripped_spruce_log":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:stripped_spruce_log[axis=y]"},"minecraft:stripped_spruce_wood":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:stripped_spruce_wood[axis=y]"},"minecraft:structure_block":{"properties":{"mode":{"values":["save","load","corner","data"],"type":"enum"}},"defaultstate":"minecraft:structure_block[mode=save]"},"minecraft:structure_void":{"properties":{},"defaultstate":"minecraft:structure_void"},"minecraft:sugar_cane":{"properties":{"age":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:sugar_cane[age=0]"},"minecraft:sunflower":{"properties":{"half":{"values":["upper","lower"],"type":"enum"}},"defaultstate":"minecraft:sunflower[half=lower]"},"minecraft:sweet_berry_bush":{"properties":{"age":{"values":["0","1","2","3"],"type":"int"}},"defaultstate":"minecraft:sweet_berry_bush[age=0]"},"minecraft:tall_grass":{"properties":{"half":{"values":["upper","lower"],"type":"enum"}},"defaultstate":"minecraft:tall_grass[half=lower]"},"minecraft:tall_seagrass":{"properties":{"half":{"values":["upper","lower"],"type":"enum"}},"defaultstate":"minecraft:tall_seagrass[half=lower]"},"minecraft:terracotta":{"properties":{},"defaultstate":"minecraft:terracotta"},"minecraft:tnt":{"properties":{"unstable":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:tnt[unstable=false]"},"minecraft:torch":{"properties":{},"defaultstate":"minecraft:torch"},"minecraft:trapped_chest":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"type":{"values":["single","left","right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:trapped_chest[facing=north,type=single,waterlogged=false]"},"minecraft:tripwire":{"properties":{"attached":{"values":["true","false"],"type":"bool"},"disarmed":{"values":["true","false"],"type":"bool"},"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:tripwire[attached=false,disarmed=false,east=false,north=false,powered=false,south=false,west=false]"},"minecraft:tripwire_hook":{"properties":{"attached":{"values":["true","false"],"type":"bool"},"facing":{"values":["north","south","west","east"],"type":"direction"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:tripwire_hook[attached=false,facing=north,powered=false]"},"minecraft:tube_coral":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:tube_coral[waterlogged=true]"},"minecraft:tube_coral_block":{"properties":{},"defaultstate":"minecraft:tube_coral_block"},"minecraft:tube_coral_fan":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:tube_coral_fan[waterlogged=true]"},"minecraft:tube_coral_wall_fan":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:tube_coral_wall_fan[facing=north,waterlogged=true]"},"minecraft:turtle_egg":{"properties":{"eggs":{"values":["1","2","3","4"],"type":"int"},"hatch":{"values":["0","1","2"],"type":"int"}},"defaultstate":"minecraft:turtle_egg[eggs=1,hatch=0]"},"minecraft:vine":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:vine[east=false,north=false,south=false,up=false,west=false]"},"minecraft:void_air":{"properties":{},"defaultstate":"minecraft:void_air"},"minecraft:wall_torch":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:wall_torch[facing=north]"},"minecraft:water":{"properties":{"level":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:water[level=0]"},"minecraft:wet_sponge":{"properties":{},"defaultstate":"minecraft:wet_sponge"},"minecraft:wheat":{"properties":{"age":{"values":["0","1","2","3","4","5","6","7"],"type":"int"}},"defaultstate":"minecraft:wheat[age=0]"},"minecraft:white_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:white_banner[rotation=0]"},"minecraft:white_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:white_bed[facing=north,occupied=false,part=foot]"},"minecraft:white_carpet":{"properties":{},"defaultstate":"minecraft:white_carpet"},"minecraft:white_concrete":{"properties":{},"defaultstate":"minecraft:white_concrete"},"minecraft:white_concrete_powder":{"properties":{},"defaultstate":"minecraft:white_concrete_powder"},"minecraft:white_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:white_glazed_terracotta[facing=north]"},"minecraft:white_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:white_shulker_box[facing=up]"},"minecraft:white_stained_glass":{"properties":{},"defaultstate":"minecraft:white_stained_glass"},"minecraft:white_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:white_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:white_terracotta":{"properties":{},"defaultstate":"minecraft:white_terracotta"},"minecraft:white_tulip":{"properties":{},"defaultstate":"minecraft:white_tulip"},"minecraft:white_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:white_wall_banner[facing=north]"},"minecraft:white_wool":{"properties":{},"defaultstate":"minecraft:white_wool"},"minecraft:wither_rose":{"properties":{},"defaultstate":"minecraft:wither_rose"},"minecraft:wither_skeleton_skull":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:wither_skeleton_skull[rotation=0]"},"minecraft:wither_skeleton_wall_skull":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:wither_skeleton_wall_skull[facing=north]"},"minecraft:yellow_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:yellow_banner[rotation=0]"},"minecraft:yellow_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:yellow_bed[facing=north,occupied=false,part=foot]"},"minecraft:yellow_carpet":{"properties":{},"defaultstate":"minecraft:yellow_carpet"},"minecraft:yellow_concrete":{"properties":{},"defaultstate":"minecraft:yellow_concrete"},"minecraft:yellow_concrete_powder":{"properties":{},"defaultstate":"minecraft:yellow_concrete_powder"},"minecraft:yellow_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:yellow_glazed_terracotta[facing=north]"},"minecraft:yellow_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:yellow_shulker_box[facing=up]"},"minecraft:yellow_stained_glass":{"properties":{},"defaultstate":"minecraft:yellow_stained_glass"},"minecraft:yellow_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:yellow_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:yellow_terracotta":{"properties":{},"defaultstate":"minecraft:yellow_terracotta"},"minecraft:yellow_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:yellow_wall_banner[facing=north]"},"minecraft:yellow_wool":{"properties":{},"defaultstate":"minecraft:yellow_wool"},"minecraft:zombie_head":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:zombie_head[rotation=0]"},"minecraft:zombie_wall_head":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:zombie_wall_head[facing=north]"}},"items":["minecraft:acacia_boat","minecraft:acacia_button","minecraft:acacia_door","minecraft:acacia_fence","minecraft:acacia_fence_gate","minecraft:acacia_leaves","minecraft:acacia_log","minecraft:acacia_planks","minecraft:acacia_pressure_plate","minecraft:acacia_sapling","minecraft:acacia_sign","minecraft:acacia_slab","minecraft:acacia_stairs","minecraft:acacia_trapdoor","minecraft:acacia_wood","minecraft:activator_rail","minecraft:air","minecraft:allium","minecraft:andesite","minecraft:andesite_slab","minecraft:andesite_stairs","minecraft:andesite_wall","minecraft:anvil","minecraft:apple","minecraft:armor_stand","minecraft:arrow","minecraft:azure_bluet","minecraft:baked_potato","minecraft:bamboo","minecraft:barrel","minecraft:barrier","minecraft:bat_spawn_egg","minecraft:beacon","minecraft:bedrock","minecraft:beef","minecraft:beetroot","minecraft:beetroot_seeds","minecraft:beetroot_soup","minecraft:bell","minecraft:birch_boat","minecraft:birch_button","minecraft:birch_door","minecraft:birch_fence","minecraft:birch_fence_gate","minecraft:birch_leaves","minecraft:birch_log","minecraft:birch_planks","minecraft:birch_pressure_plate","minecraft:birch_sapling","minecraft:birch_sign","minecraft:birch_slab","minecraft:birch_stairs","minecraft:birch_trapdoor","minecraft:birch_wood","minecraft:black_banner","minecraft:black_bed","minecraft:black_carpet","minecraft:black_concrete","minecraft:black_concrete_powder","minecraft:black_dye","minecraft:black_glazed_terracotta","minecraft:black_shulker_box","minecraft:black_stained_glass","minecraft:black_stained_glass_pane","minecraft:black_terracotta","minecraft:black_wool","minecraft:blast_furnace","minecraft:blaze_powder","minecraft:blaze_rod","minecraft:blaze_spawn_egg","minecraft:blue_banner","minecraft:blue_bed","minecraft:blue_carpet","minecraft:blue_concrete","minecraft:blue_concrete_powder","minecraft:blue_dye","minecraft:blue_glazed_terracotta","minecraft:blue_ice","minecraft:blue_orchid","minecraft:blue_shulker_box","minecraft:blue_stained_glass","minecraft:blue_stained_glass_pane","minecraft:blue_terracotta","minecraft:blue_wool","minecraft:bone","minecraft:bone_block","minecraft:bone_meal","minecraft:book","minecraft:bookshelf","minecraft:bow","minecraft:bowl","minecraft:brain_coral","minecraft:brain_coral_block","minecraft:brain_coral_fan","minecraft:bread","minecraft:brewing_stand","minecraft:brick","minecraft:brick_slab","minecraft:brick_stairs","minecraft:brick_wall","minecraft:bricks","minecraft:brown_banner","minecraft:brown_bed","minecraft:brown_carpet","minecraft:brown_concrete","minecraft:brown_concrete_powder","minecraft:brown_dye","minecraft:brown_glazed_terracotta","minecraft:brown_mushroom","minecraft:brown_mushroom_block","minecraft:brown_shulker_box","minecraft:brown_stained_glass","minecraft:brown_stained_glass_pane","minecraft:brown_terracotta","minecraft:brown_wool","minecraft:bubble_coral","minecraft:bubble_coral_block","minecraft:bubble_coral_fan","minecraft:bucket","minecraft:cactus","minecraft:cake","minecraft:campfire","minecraft:carrot","minecraft:carrot_on_a_stick","minecraft:cartography_table","minecraft:carved_pumpkin","minecraft:cat_spawn_egg","minecraft:cauldron","minecraft:cave_spider_spawn_egg","minecraft:chain_command_block","minecraft:chainmail_boots","minecraft:chainmail_chestplate","minecraft:chainmail_helmet","minecraft:chainmail_leggings","minecraft:charcoal","minecraft:chest","minecraft:chest_minecart","minecraft:chicken","minecraft:chicken_spawn_egg","minecraft:chipped_anvil","minecraft:chiseled_quartz_block","minecraft:chiseled_red_sandstone","minecraft:chiseled_sandstone","minecraft:chiseled_stone_bricks","minecraft:chorus_flower","minecraft:chorus_fruit","minecraft:chorus_plant","minecraft:clay","minecraft:clay_ball","minecraft:clock","minecraft:coal","minecraft:coal_block","minecraft:coal_ore","minecraft:coarse_dirt","minecraft:cobblestone","minecraft:cobblestone_slab","minecraft:cobblestone_stairs","minecraft:cobblestone_wall","minecraft:cobweb","minecraft:cocoa_beans","minecraft:cod","minecraft:cod_bucket","minecraft:cod_spawn_egg","minecraft:command_block","minecraft:command_block_minecart","minecraft:comparator","minecraft:compass","minecraft:composter","minecraft:conduit","minecraft:cooked_beef","minecraft:cooked_chicken","minecraft:cooked_cod","minecraft:cooked_mutton","minecraft:cooked_porkchop","minecraft:cooked_rabbit","minecraft:cooked_salmon","minecraft:cookie","minecraft:cornflower","minecraft:cow_spawn_egg","minecraft:cracked_stone_bricks","minecraft:crafting_table","minecraft:creeper_banner_pattern","minecraft:creeper_head","minecraft:creeper_spawn_egg","minecraft:crossbow","minecraft:cut_red_sandstone","minecraft:cut_red_sandstone_slab","minecraft:cut_sandstone","minecraft:cut_sandstone_slab","minecraft:cyan_banner","minecraft:cyan_bed","minecraft:cyan_carpet","minecraft:cyan_concrete","minecraft:cyan_concrete_powder","minecraft:cyan_dye","minecraft:cyan_glazed_terracotta","minecraft:cyan_shulker_box","minecraft:cyan_stained_glass","minecraft:cyan_stained_glass_pane","minecraft:cyan_terracotta","minecraft:cyan_wool","minecraft:damaged_anvil","minecraft:dandelion","minecraft:dark_oak_boat","minecraft:dark_oak_button","minecraft:dark_oak_door","minecraft:dark_oak_fence","minecraft:dark_oak_fence_gate","minecraft:dark_oak_leaves","minecraft:dark_oak_log","minecraft:dark_oak_planks","minecraft:dark_oak_pressure_plate","minecraft:dark_oak_sapling","minecraft:dark_oak_sign","minecraft:dark_oak_slab","minecraft:dark_oak_stairs","minecraft:dark_oak_trapdoor","minecraft:dark_oak_wood","minecraft:dark_prismarine","minecraft:dark_prismarine_slab","minecraft:dark_prismarine_stairs","minecraft:daylight_detector","minecraft:dead_brain_coral","minecraft:dead_brain_coral_block","minecraft:dead_brain_coral_fan","minecraft:dead_bubble_coral","minecraft:dead_bubble_coral_block","minecraft:dead_bubble_coral_fan","minecraft:dead_bush","minecraft:dead_fire_coral","minecraft:dead_fire_coral_block","minecraft:dead_fire_coral_fan","minecraft:dead_horn_coral","minecraft:dead_horn_coral_block","minecraft:dead_horn_coral_fan","minecraft:dead_tube_coral","minecraft:dead_tube_coral_block","minecraft:dead_tube_coral_fan","minecraft:debug_stick","minecraft:detector_rail","minecraft:diamond","minecraft:diamond_axe","minecraft:diamond_block","minecraft:diamond_boots","minecraft:diamond_chestplate","minecraft:diamond_helmet","minecraft:diamond_hoe","minecraft:diamond_horse_armor","minecraft:diamond_leggings","minecraft:diamond_ore","minecraft:diamond_pickaxe","minecraft:diamond_shovel","minecraft:diamond_sword","minecraft:diorite","minecraft:diorite_slab","minecraft:diorite_stairs","minecraft:diorite_wall","minecraft:dirt","minecraft:dispenser","minecraft:dolphin_spawn_egg","minecraft:donkey_spawn_egg","minecraft:dragon_breath","minecraft:dragon_egg","minecraft:dragon_head","minecraft:dried_kelp","minecraft:dried_kelp_block","minecraft:dropper","minecraft:drowned_spawn_egg","minecraft:egg","minecraft:elder_guardian_spawn_egg","minecraft:elytra","minecraft:emerald","minecraft:emerald_block","minecraft:emerald_ore","minecraft:enchanted_book","minecraft:enchanted_golden_apple","minecraft:enchanting_table","minecraft:end_crystal","minecraft:end_portal_frame","minecraft:end_rod","minecraft:end_stone","minecraft:end_stone_brick_slab","minecraft:end_stone_brick_stairs","minecraft:end_stone_brick_wall","minecraft:end_stone_bricks","minecraft:ender_chest","minecraft:ender_eye","minecraft:ender_pearl","minecraft:enderman_spawn_egg","minecraft:endermite_spawn_egg","minecraft:evoker_spawn_egg","minecraft:experience_bottle","minecraft:farmland","minecraft:feather","minecraft:fermented_spider_eye","minecraft:fern","minecraft:filled_map","minecraft:fire_charge","minecraft:fire_coral","minecraft:fire_coral_block","minecraft:fire_coral_fan","minecraft:firework_rocket","minecraft:firework_star","minecraft:fishing_rod","minecraft:fletching_table","minecraft:flint","minecraft:flint_and_steel","minecraft:flower_banner_pattern","minecraft:flower_pot","minecraft:fox_spawn_egg","minecraft:furnace","minecraft:furnace_minecart","minecraft:ghast_spawn_egg","minecraft:ghast_tear","minecraft:glass","minecraft:glass_bottle","minecraft:glass_pane","minecraft:glistering_melon_slice","minecraft:globe_banner_pattern","minecraft:glowstone","minecraft:glowstone_dust","minecraft:gold_block","minecraft:gold_ingot","minecraft:gold_nugget","minecraft:gold_ore","minecraft:golden_apple","minecraft:golden_axe","minecraft:golden_boots","minecraft:golden_carrot","minecraft:golden_chestplate","minecraft:golden_helmet","minecraft:golden_hoe","minecraft:golden_horse_armor","minecraft:golden_leggings","minecraft:golden_pickaxe","minecraft:golden_shovel","minecraft:golden_sword","minecraft:granite","minecraft:granite_slab","minecraft:granite_stairs","minecraft:granite_wall","minecraft:grass","minecraft:grass_block","minecraft:grass_path","minecraft:gravel","minecraft:gray_banner","minecraft:gray_bed","minecraft:gray_carpet","minecraft:gray_concrete","minecraft:gray_concrete_powder","minecraft:gray_dye","minecraft:gray_glazed_terracotta","minecraft:gray_shulker_box","minecraft:gray_stained_glass","minecraft:gray_stained_glass_pane","minecraft:gray_terracotta","minecraft:gray_wool","minecraft:green_banner","minecraft:green_bed","minecraft:green_carpet","minecraft:green_concrete","minecraft:green_concrete_powder","minecraft:green_dye","minecraft:green_glazed_terracotta","minecraft:green_shulker_box","minecraft:green_stained_glass","minecraft:green_stained_glass_pane","minecraft:green_terracotta","minecraft:green_wool","minecraft:grindstone","minecraft:guardian_spawn_egg","minecraft:gunpowder","minecraft:hay_block","minecraft:heart_of_the_sea","minecraft:heavy_weighted_pressure_plate","minecraft:hopper","minecraft:hopper_minecart","minecraft:horn_coral","minecraft:horn_coral_block","minecraft:horn_coral_fan","minecraft:horse_spawn_egg","minecraft:husk_spawn_egg","minecraft:ice","minecraft:infested_chiseled_stone_bricks","minecraft:infested_cobblestone","minecraft:infested_cracked_stone_bricks","minecraft:infested_mossy_stone_bricks","minecraft:infested_stone","minecraft:infested_stone_bricks","minecraft:ink_sac","minecraft:iron_axe","minecraft:iron_bars","minecraft:iron_block","minecraft:iron_boots","minecraft:iron_chestplate","minecraft:iron_door","minecraft:iron_helmet","minecraft:iron_hoe","minecraft:iron_horse_armor","minecraft:iron_ingot","minecraft:iron_leggings","minecraft:iron_nugget","minecraft:iron_ore","minecraft:iron_pickaxe","minecraft:iron_shovel","minecraft:iron_sword","minecraft:iron_trapdoor","minecraft:item_frame","minecraft:jack_o_lantern","minecraft:jigsaw","minecraft:jukebox","minecraft:jungle_boat","minecraft:jungle_button","minecraft:jungle_door","minecraft:jungle_fence","minecraft:jungle_fence_gate","minecraft:jungle_leaves","minecraft:jungle_log","minecraft:jungle_planks","minecraft:jungle_pressure_plate","minecraft:jungle_sapling","minecraft:jungle_sign","minecraft:jungle_slab","minecraft:jungle_stairs","minecraft:jungle_trapdoor","minecraft:jungle_wood","minecraft:kelp","minecraft:knowledge_book","minecraft:ladder","minecraft:lantern","minecraft:lapis_block","minecraft:lapis_lazuli","minecraft:lapis_ore","minecraft:large_fern","minecraft:lava_bucket","minecraft:lead","minecraft:leather","minecraft:leather_boots","minecraft:leather_chestplate","minecraft:leather_helmet","minecraft:leather_horse_armor","minecraft:leather_leggings","minecraft:lectern","minecraft:lever","minecraft:light_blue_banner","minecraft:light_blue_bed","minecraft:light_blue_carpet","minecraft:light_blue_concrete","minecraft:light_blue_concrete_powder","minecraft:light_blue_dye","minecraft:light_blue_glazed_terracotta","minecraft:light_blue_shulker_box","minecraft:light_blue_stained_glass","minecraft:light_blue_stained_glass_pane","minecraft:light_blue_terracotta","minecraft:light_blue_wool","minecraft:light_gray_banner","minecraft:light_gray_bed","minecraft:light_gray_carpet","minecraft:light_gray_concrete","minecraft:light_gray_concrete_powder","minecraft:light_gray_dye","minecraft:light_gray_glazed_terracotta","minecraft:light_gray_shulker_box","minecraft:light_gray_stained_glass","minecraft:light_gray_stained_glass_pane","minecraft:light_gray_terracotta","minecraft:light_gray_wool","minecraft:light_weighted_pressure_plate","minecraft:lilac","minecraft:lily_of_the_valley","minecraft:lily_pad","minecraft:lime_banner","minecraft:lime_bed","minecraft:lime_carpet","minecraft:lime_concrete","minecraft:lime_concrete_powder","minecraft:lime_dye","minecraft:lime_glazed_terracotta","minecraft:lime_shulker_box","minecraft:lime_stained_glass","minecraft:lime_stained_glass_pane","minecraft:lime_terracotta","minecraft:lime_wool","minecraft:lingering_potion","minecraft:llama_spawn_egg","minecraft:loom","minecraft:magenta_banner","minecraft:magenta_bed","minecraft:magenta_carpet","minecraft:magenta_concrete","minecraft:magenta_concrete_powder","minecraft:magenta_dye","minecraft:magenta_glazed_terracotta","minecraft:magenta_shulker_box","minecraft:magenta_stained_glass","minecraft:magenta_stained_glass_pane","minecraft:magenta_terracotta","minecraft:magenta_wool","minecraft:magma_block","minecraft:magma_cream","minecraft:magma_cube_spawn_egg","minecraft:map","minecraft:melon","minecraft:melon_seeds","minecraft:melon_slice","minecraft:milk_bucket","minecraft:minecart","minecraft:mojang_banner_pattern","minecraft:mooshroom_spawn_egg","minecraft:mossy_cobblestone","minecraft:mossy_cobblestone_slab","minecraft:mossy_cobblestone_stairs","minecraft:mossy_cobblestone_wall","minecraft:mossy_stone_brick_slab","minecraft:mossy_stone_brick_stairs","minecraft:mossy_stone_brick_wall","minecraft:mossy_stone_bricks","minecraft:mule_spawn_egg","minecraft:mushroom_stem","minecraft:mushroom_stew","minecraft:music_disc_11","minecraft:music_disc_13","minecraft:music_disc_blocks","minecraft:music_disc_cat","minecraft:music_disc_chirp","minecraft:music_disc_far","minecraft:music_disc_mall","minecraft:music_disc_mellohi","minecraft:music_disc_stal","minecraft:music_disc_strad","minecraft:music_disc_wait","minecraft:music_disc_ward","minecraft:mutton","minecraft:mycelium","minecraft:name_tag","minecraft:nautilus_shell","minecraft:nether_brick","minecraft:nether_brick_fence","minecraft:nether_brick_slab","minecraft:nether_brick_stairs","minecraft:nether_brick_wall","minecraft:nether_bricks","minecraft:nether_quartz_ore","minecraft:nether_star","minecraft:nether_wart","minecraft:nether_wart_block","minecraft:netherrack","minecraft:note_block","minecraft:oak_boat","minecraft:oak_button","minecraft:oak_door","minecraft:oak_fence","minecraft:oak_fence_gate","minecraft:oak_leaves","minecraft:oak_log","minecraft:oak_planks","minecraft:oak_pressure_plate","minecraft:oak_sapling","minecraft:oak_sign","minecraft:oak_slab","minecraft:oak_stairs","minecraft:oak_trapdoor","minecraft:oak_wood","minecraft:observer","minecraft:obsidian","minecraft:ocelot_spawn_egg","minecraft:orange_banner","minecraft:orange_bed","minecraft:orange_carpet","minecraft:orange_concrete","minecraft:orange_concrete_powder","minecraft:orange_dye","minecraft:orange_glazed_terracotta","minecraft:orange_shulker_box","minecraft:orange_stained_glass","minecraft:orange_stained_glass_pane","minecraft:orange_terracotta","minecraft:orange_tulip","minecraft:orange_wool","minecraft:oxeye_daisy","minecraft:packed_ice","minecraft:painting","minecraft:panda_spawn_egg","minecraft:paper","minecraft:parrot_spawn_egg","minecraft:peony","minecraft:petrified_oak_slab","minecraft:phantom_membrane","minecraft:phantom_spawn_egg","minecraft:pig_spawn_egg","minecraft:pillager_spawn_egg","minecraft:pink_banner","minecraft:pink_bed","minecraft:pink_carpet","minecraft:pink_concrete","minecraft:pink_concrete_powder","minecraft:pink_dye","minecraft:pink_glazed_terracotta","minecraft:pink_shulker_box","minecraft:pink_stained_glass","minecraft:pink_stained_glass_pane","minecraft:pink_terracotta","minecraft:pink_tulip","minecraft:pink_wool","minecraft:piston","minecraft:player_head","minecraft:podzol","minecraft:poisonous_potato","minecraft:polar_bear_spawn_egg","minecraft:polished_andesite","minecraft:polished_andesite_slab","minecraft:polished_andesite_stairs","minecraft:polished_diorite","minecraft:polished_diorite_slab","minecraft:polished_diorite_stairs","minecraft:polished_granite","minecraft:polished_granite_slab","minecraft:polished_granite_stairs","minecraft:popped_chorus_fruit","minecraft:poppy","minecraft:porkchop","minecraft:potato","minecraft:potion","minecraft:powered_rail","minecraft:prismarine","minecraft:prismarine_brick_slab","minecraft:prismarine_brick_stairs","minecraft:prismarine_bricks","minecraft:prismarine_crystals","minecraft:prismarine_shard","minecraft:prismarine_slab","minecraft:prismarine_stairs","minecraft:prismarine_wall","minecraft:pufferfish","minecraft:pufferfish_bucket","minecraft:pufferfish_spawn_egg","minecraft:pumpkin","minecraft:pumpkin_pie","minecraft:pumpkin_seeds","minecraft:purple_banner","minecraft:purple_bed","minecraft:purple_carpet","minecraft:purple_concrete","minecraft:purple_concrete_powder","minecraft:purple_dye","minecraft:purple_glazed_terracotta","minecraft:purple_shulker_box","minecraft:purple_stained_glass","minecraft:purple_stained_glass_pane","minecraft:purple_terracotta","minecraft:purple_wool","minecraft:purpur_block","minecraft:purpur_pillar","minecraft:purpur_slab","minecraft:purpur_stairs","minecraft:quartz","minecraft:quartz_block","minecraft:quartz_pillar","minecraft:quartz_slab","minecraft:quartz_stairs","minecraft:rabbit","minecraft:rabbit_foot","minecraft:rabbit_hide","minecraft:rabbit_spawn_egg","minecraft:rabbit_stew","minecraft:rail","minecraft:ravager_spawn_egg","minecraft:red_banner","minecraft:red_bed","minecraft:red_carpet","minecraft:red_concrete","minecraft:red_concrete_powder","minecraft:red_dye","minecraft:red_glazed_terracotta","minecraft:red_mushroom","minecraft:red_mushroom_block","minecraft:red_nether_brick_slab","minecraft:red_nether_brick_stairs","minecraft:red_nether_brick_wall","minecraft:red_nether_bricks","minecraft:red_sand","minecraft:red_sandstone","minecraft:red_sandstone_slab","minecraft:red_sandstone_stairs","minecraft:red_sandstone_wall","minecraft:red_shulker_box","minecraft:red_stained_glass","minecraft:red_stained_glass_pane","minecraft:red_terracotta","minecraft:red_tulip","minecraft:red_wool","minecraft:redstone","minecraft:redstone_block","minecraft:redstone_lamp","minecraft:redstone_ore","minecraft:redstone_torch","minecraft:repeater","minecraft:repeating_command_block","minecraft:rose_bush","minecraft:rotten_flesh","minecraft:saddle","minecraft:salmon","minecraft:salmon_bucket","minecraft:salmon_spawn_egg","minecraft:sand","minecraft:sandstone","minecraft:sandstone_slab","minecraft:sandstone_stairs","minecraft:sandstone_wall","minecraft:scaffolding","minecraft:scute","minecraft:sea_lantern","minecraft:sea_pickle","minecraft:seagrass","minecraft:shears","minecraft:sheep_spawn_egg","minecraft:shield","minecraft:shulker_box","minecraft:shulker_shell","minecraft:shulker_spawn_egg","minecraft:silverfish_spawn_egg","minecraft:skeleton_horse_spawn_egg","minecraft:skeleton_skull","minecraft:skeleton_spawn_egg","minecraft:skull_banner_pattern","minecraft:slime_ball","minecraft:slime_block","minecraft:slime_spawn_egg","minecraft:smithing_table","minecraft:smoker","minecraft:smooth_quartz","minecraft:smooth_quartz_slab","minecraft:smooth_quartz_stairs","minecraft:smooth_red_sandstone","minecraft:smooth_red_sandstone_slab","minecraft:smooth_red_sandstone_stairs","minecraft:smooth_sandstone","minecraft:smooth_sandstone_slab","minecraft:smooth_sandstone_stairs","minecraft:smooth_stone","minecraft:smooth_stone_slab","minecraft:snow","minecraft:snow_block","minecraft:snowball","minecraft:soul_sand","minecraft:spawner","minecraft:spectral_arrow","minecraft:spider_eye","minecraft:spider_spawn_egg","minecraft:splash_potion","minecraft:sponge","minecraft:spruce_boat","minecraft:spruce_button","minecraft:spruce_door","minecraft:spruce_fence","minecraft:spruce_fence_gate","minecraft:spruce_leaves","minecraft:spruce_log","minecraft:spruce_planks","minecraft:spruce_pressure_plate","minecraft:spruce_sapling","minecraft:spruce_sign","minecraft:spruce_slab","minecraft:spruce_stairs","minecraft:spruce_trapdoor","minecraft:spruce_wood","minecraft:squid_spawn_egg","minecraft:stick","minecraft:sticky_piston","minecraft:stone","minecraft:stone_axe","minecraft:stone_brick_slab","minecraft:stone_brick_stairs","minecraft:stone_brick_wall","minecraft:stone_bricks","minecraft:stone_button","minecraft:stone_hoe","minecraft:stone_pickaxe","minecraft:stone_pressure_plate","minecraft:stone_shovel","minecraft:stone_slab","minecraft:stone_stairs","minecraft:stone_sword","minecraft:stonecutter","minecraft:stray_spawn_egg","minecraft:string","minecraft:stripped_acacia_log","minecraft:stripped_acacia_wood","minecraft:stripped_birch_log","minecraft:stripped_birch_wood","minecraft:stripped_dark_oak_log","minecraft:stripped_dark_oak_wood","minecraft:stripped_jungle_log","minecraft:stripped_jungle_wood","minecraft:stripped_oak_log","minecraft:stripped_oak_wood","minecraft:stripped_spruce_log","minecraft:stripped_spruce_wood","minecraft:structure_block","minecraft:structure_void","minecraft:sugar","minecraft:sugar_cane","minecraft:sunflower","minecraft:suspicious_stew","minecraft:sweet_berries","minecraft:tall_grass","minecraft:terracotta","minecraft:tipped_arrow","minecraft:tnt","minecraft:tnt_minecart","minecraft:torch","minecraft:totem_of_undying","minecraft:trader_llama_spawn_egg","minecraft:trapped_chest","minecraft:trident","minecraft:tripwire_hook","minecraft:tropical_fish","minecraft:tropical_fish_bucket","minecraft:tropical_fish_spawn_egg","minecraft:tube_coral","minecraft:tube_coral_block","minecraft:tube_coral_fan","minecraft:turtle_egg","minecraft:turtle_helmet","minecraft:turtle_spawn_egg","minecraft:vex_spawn_egg","minecraft:villager_spawn_egg","minecraft:vindicator_spawn_egg","minecraft:vine","minecraft:wandering_trader_spawn_egg","minecraft:water_bucket","minecraft:wet_sponge","minecraft:wheat","minecraft:wheat_seeds","minecraft:white_banner","minecraft:white_bed","minecraft:white_carpet","minecraft:white_concrete","minecraft:white_concrete_powder","minecraft:white_dye","minecraft:white_glazed_terracotta","minecraft:white_shulker_box","minecraft:white_stained_glass","minecraft:white_stained_glass_pane","minecraft:white_terracotta","minecraft:white_tulip","minecraft:white_wool","minecraft:witch_spawn_egg","minecraft:wither_rose","minecraft:wither_skeleton_skull","minecraft:wither_skeleton_spawn_egg","minecraft:wolf_spawn_egg","minecraft:wooden_axe","minecraft:wooden_hoe","minecraft:wooden_pickaxe","minecraft:wooden_shovel","minecraft:wooden_sword","minecraft:writable_book","minecraft:written_book","minecraft:yellow_banner","minecraft:yellow_bed","minecraft:yellow_carpet","minecraft:yellow_concrete","minecraft:yellow_concrete_powder","minecraft:yellow_dye","minecraft:yellow_glazed_terracotta","minecraft:yellow_shulker_box","minecraft:yellow_stained_glass","minecraft:yellow_stained_glass_pane","minecraft:yellow_terracotta","minecraft:yellow_wool","minecraft:zombie_head","minecraft:zombie_horse_spawn_egg","minecraft:zombie_pigman_spawn_egg","minecraft:zombie_spawn_egg","minecraft:zombie_villager_spawn_egg"],"entities":["minecraft:area_effect_cloud","minecraft:armor_stand","minecraft:arrow","minecraft:bat","minecraft:blaze","minecraft:boat","minecraft:cat","minecraft:cave_spider","minecraft:chest_minecart","minecraft:chicken","minecraft:cod","minecraft:command_block_minecart","minecraft:cow","minecraft:creeper","minecraft:dolphin","minecraft:donkey","minecraft:dragon_fireball","minecraft:drowned","minecraft:egg","minecraft:elder_guardian","minecraft:end_crystal","minecraft:ender_dragon","minecraft:ender_pearl","minecraft:enderman","minecraft:endermite","minecraft:evoker","minecraft:evoker_fangs","minecraft:experience_bottle","minecraft:experience_orb","minecraft:eye_of_ender","minecraft:falling_block","minecraft:fireball","minecraft:firework_rocket","minecraft:fishing_bobber","minecraft:fox","minecraft:furnace_minecart","minecraft:ghast","minecraft:giant","minecraft:guardian","minecraft:hopper_minecart","minecraft:horse","minecraft:husk","minecraft:illusioner","minecraft:iron_golem","minecraft:item","minecraft:item_frame","minecraft:leash_knot","minecraft:lightning_bolt","minecraft:llama","minecraft:llama_spit","minecraft:magma_cube","minecraft:minecart","minecraft:mooshroom","minecraft:mule","minecraft:ocelot","minecraft:painting","minecraft:panda","minecraft:parrot","minecraft:phantom","minecraft:pig","minecraft:pillager","minecraft:player","minecraft:polar_bear","minecraft:potion","minecraft:pufferfish","minecraft:rabbit","minecraft:ravager","minecraft:salmon","minecraft:sheep","minecraft:shulker","minecraft:shulker_bullet","minecraft:silverfish","minecraft:skeleton","minecraft:skeleton_horse","minecraft:slime","minecraft:small_fireball","minecraft:snow_golem","minecraft:snowball","minecraft:spawner_minecart","minecraft:spectral_arrow","minecraft:spider","minecraft:squid","minecraft:stray","minecraft:tnt","minecraft:tnt_minecart","minecraft:trader_llama","minecraft:trident","minecraft:tropical_fish","minecraft:turtle","minecraft:vex","minecraft:villager","minecraft:vindicator","minecraft:wandering_trader","minecraft:witch","minecraft:wither","minecraft:wither_skeleton","minecraft:wither_skull","minecraft:wolf","minecraft:zombie","minecraft:zombie_horse","minecraft:zombie_pigman","minecraft:zombie_villager"],"biomes":["minecraft:badlands","minecraft:badlands_plateau","minecraft:bamboo_jungle","minecraft:bamboo_jungle_hills","minecraft:beach","minecraft:birch_forest","minecraft:birch_forest_hills","minecraft:cold_ocean","minecraft:dark_forest","minecraft:dark_forest_hills","minecraft:deep_cold_ocean","minecraft:deep_frozen_ocean","minecraft:deep_lukewarm_ocean","minecraft:deep_ocean","minecraft:deep_warm_ocean","minecraft:desert","minecraft:desert_hills","minecraft:desert_lakes","minecraft:end_barrens","minecraft:end_highlands","minecraft:end_midlands","minecraft:eroded_badlands","minecraft:flower_forest","minecraft:forest","minecraft:frozen_ocean","minecraft:frozen_river","minecraft:giant_spruce_taiga","minecraft:giant_spruce_taiga_hills","minecraft:giant_tree_taiga","minecraft:giant_tree_taiga_hills","minecraft:gravelly_mountains","minecraft:ice_spikes","minecraft:jungle","minecraft:jungle_edge","minecraft:jungle_hills","minecraft:lukewarm_ocean","minecraft:modified_badlands_plateau","minecraft:modified_gravelly_mountains","minecraft:modified_jungle","minecraft:modified_jungle_edge","minecraft:modified_wooded_badlands_plateau","minecraft:mountain_edge","minecraft:mountains","minecraft:mushroom_field_shore","minecraft:mushroom_fields","minecraft:nether","minecraft:ocean","minecraft:plains","minecraft:river","minecraft:savanna","minecraft:savanna_plateau","minecraft:shattered_savanna","minecraft:shattered_savanna_plateau","minecraft:small_end_islands","minecraft:snowy_beach","minecraft:snowy_mountains","minecraft:snowy_taiga","minecraft:snowy_taiga_hills","minecraft:snowy_taiga_mountains","minecraft:snowy_tundra","minecraft:stone_shore","minecraft:sunflower_plains","minecraft:swamp","minecraft:swamp_hills","minecraft:taiga","minecraft:taiga_hills","minecraft:taiga_mountains","minecraft:tall_birch_forest","minecraft:tall_birch_hills","minecraft:the_end","minecraft:the_void","minecraft:warm_ocean","minecraft:wooded_badlands_plateau","minecraft:wooded_hills","minecraft:wooded_mountains"],"blocktags":{"minecraft:slabs":["minecraft:stone_slab","minecraft:smooth_stone_slab","minecraft:stone_brick_slab","minecraft:sandstone_slab","minecraft:acacia_slab","minecraft:birch_slab","minecraft:dark_oak_slab","minecraft:jungle_slab","minecraft:oak_slab","minecraft:spruce_slab","minecraft:purpur_slab","minecraft:quartz_slab","minecraft:red_sandstone_slab","minecraft:brick_slab","minecraft:cobblestone_slab","minecraft:nether_brick_slab","minecraft:petrified_oak_slab","minecraft:prismarine_slab","minecraft:prismarine_brick_slab","minecraft:dark_prismarine_slab","minecraft:polished_granite_slab","minecraft:smooth_red_sandstone_slab","minecraft:mossy_stone_brick_slab","minecraft:polished_diorite_slab","minecraft:mossy_cobblestone_slab","minecraft:end_stone_brick_slab","minecraft:smooth_sandstone_slab","minecraft:smooth_quartz_slab","minecraft:granite_slab","minecraft:andesite_slab","minecraft:red_nether_brick_slab","minecraft:polished_andesite_slab","minecraft:diorite_slab","minecraft:cut_sandstone_slab","minecraft:cut_red_sandstone_slab"],"minecraft:carpets":["minecraft:white_carpet","minecraft:orange_carpet","minecraft:magenta_carpet","minecraft:light_blue_carpet","minecraft:yellow_carpet","minecraft:lime_carpet","minecraft:pink_carpet","minecraft:gray_carpet","minecraft:light_gray_carpet","minecraft:cyan_carpet","minecraft:purple_carpet","minecraft:blue_carpet","minecraft:brown_carpet","minecraft:green_carpet","minecraft:red_carpet","minecraft:black_carpet"],"minecraft:stairs":["minecraft:oak_stairs","minecraft:cobblestone_stairs","minecraft:spruce_stairs","minecraft:sandstone_stairs","minecraft:acacia_stairs","minecraft:jungle_stairs","minecraft:birch_stairs","minecraft:dark_oak_stairs","minecraft:nether_brick_stairs","minecraft:stone_brick_stairs","minecraft:brick_stairs","minecraft:purpur_stairs","minecraft:quartz_stairs","minecraft:red_sandstone_stairs","minecraft:prismarine_brick_stairs","minecraft:prismarine_stairs","minecraft:dark_prismarine_stairs","minecraft:polished_granite_stairs","minecraft:smooth_red_sandstone_stairs","minecraft:mossy_stone_brick_stairs","minecraft:polished_diorite_stairs","minecraft:mossy_cobblestone_stairs","minecraft:end_stone_brick_stairs","minecraft:stone_stairs","minecraft:smooth_sandstone_stairs","minecraft:smooth_quartz_stairs","minecraft:granite_stairs","minecraft:andesite_stairs","minecraft:red_nether_brick_stairs","minecraft:polished_andesite_stairs","minecraft:diorite_stairs"],"minecraft:wooden_doors":["minecraft:oak_door","minecraft:spruce_door","minecraft:birch_door","minecraft:jungle_door","minecraft:acacia_door","minecraft:dark_oak_door"],"minecraft:jungle_logs":["minecraft:jungle_log","minecraft:jungle_wood","minecraft:stripped_jungle_log","minecraft:stripped_jungle_wood"],"minecraft:planks":["minecraft:oak_planks","minecraft:spruce_planks","minecraft:birch_planks","minecraft:jungle_planks","minecraft:acacia_planks","minecraft:dark_oak_planks"],"minecraft:wall_corals":["minecraft:tube_coral_wall_fan","minecraft:brain_coral_wall_fan","minecraft:bubble_coral_wall_fan","minecraft:fire_coral_wall_fan","minecraft:horn_coral_wall_fan"],"minecraft:acacia_logs":["minecraft:acacia_log","minecraft:acacia_wood","minecraft:stripped_acacia_log","minecraft:stripped_acacia_wood"],"minecraft:wither_immune":["minecraft:barrier","minecraft:bedrock","minecraft:end_portal","minecraft:end_portal_frame","minecraft:end_gateway","minecraft:command_block","minecraft:repeating_command_block","minecraft:chain_command_block","minecraft:structure_block","minecraft:jigsaw","minecraft:moving_piston"],"minecraft:flower_pots":["minecraft:flower_pot","minecraft:potted_poppy","minecraft:potted_blue_orchid","minecraft:potted_allium","minecraft:potted_azure_bluet","minecraft:potted_red_tulip","minecraft:potted_orange_tulip","minecraft:potted_white_tulip","minecraft:potted_pink_tulip","minecraft:potted_oxeye_daisy","minecraft:potted_dandelion","minecraft:potted_oak_sapling","minecraft:potted_spruce_sapling","minecraft:potted_birch_sapling","minecraft:potted_jungle_sapling","minecraft:potted_acacia_sapling","minecraft:potted_dark_oak_sapling","minecraft:potted_red_mushroom","minecraft:potted_brown_mushroom","minecraft:potted_dead_bush","minecraft:potted_fern","minecraft:potted_cactus","minecraft:potted_cornflower","minecraft:potted_lily_of_the_valley","minecraft:potted_wither_rose","minecraft:potted_bamboo"],"minecraft:stone_bricks":["minecraft:stone_bricks","minecraft:mossy_stone_bricks","minecraft:cracked_stone_bricks","minecraft:chiseled_stone_bricks"],"minecraft:enderman_holdable":["minecraft:grass_block","minecraft:dirt","minecraft:coarse_dirt","minecraft:podzol","minecraft:sand","minecraft:red_sand","minecraft:gravel","minecraft:brown_mushroom","minecraft:red_mushroom","minecraft:tnt","minecraft:cactus","minecraft:clay","minecraft:pumpkin","minecraft:carved_pumpkin","minecraft:melon","minecraft:mycelium","minecraft:netherrack","minecraft:dandelion","minecraft:poppy","minecraft:blue_orchid","minecraft:allium","minecraft:azure_bluet","minecraft:red_tulip","minecraft:orange_tulip","minecraft:white_tulip","minecraft:pink_tulip","minecraft:oxeye_daisy","minecraft:cornflower","minecraft:lily_of_the_valley","minecraft:wither_rose"],"minecraft:spruce_logs":["minecraft:spruce_log","minecraft:spruce_wood","minecraft:stripped_spruce_log","minecraft:stripped_spruce_wood"],"minecraft:wooden_slabs":["minecraft:oak_slab","minecraft:spruce_slab","minecraft:birch_slab","minecraft:jungle_slab","minecraft:acacia_slab","minecraft:dark_oak_slab"],"minecraft:coral_blocks":["minecraft:tube_coral_block","minecraft:brain_coral_block","minecraft:bubble_coral_block","minecraft:fire_coral_block","minecraft:horn_coral_block"],"minecraft:signs":["minecraft:oak_sign","minecraft:spruce_sign","minecraft:birch_sign","minecraft:acacia_sign","minecraft:jungle_sign","minecraft:dark_oak_sign","minecraft:oak_wall_sign","minecraft:spruce_wall_sign","minecraft:birch_wall_sign","minecraft:acacia_wall_sign","minecraft:jungle_wall_sign","minecraft:dark_oak_wall_sign"],"minecraft:dark_oak_logs":["minecraft:dark_oak_log","minecraft:dark_oak_wood","minecraft:stripped_dark_oak_log","minecraft:stripped_dark_oak_wood"],"minecraft:sand":["minecraft:sand","minecraft:red_sand"],"minecraft:valid_spawn":["minecraft:grass_block","minecraft:podzol"],"minecraft:underwater_bonemeals":["minecraft:seagrass","minecraft:tube_coral_fan","minecraft:brain_coral_fan","minecraft:bubble_coral_fan","minecraft:fire_coral_fan","minecraft:horn_coral_fan","minecraft:tube_coral","minecraft:brain_coral","minecraft:bubble_coral","minecraft:fire_coral","minecraft:horn_coral","minecraft:tube_coral_wall_fan","minecraft:brain_coral_wall_fan","minecraft:bubble_coral_wall_fan","minecraft:fire_coral_wall_fan","minecraft:horn_coral_wall_fan"],"minecraft:oak_logs":["minecraft:oak_log","minecraft:oak_wood","minecraft:stripped_oak_log","minecraft:stripped_oak_wood"],"minecraft:buttons":["minecraft:stone_button","minecraft:oak_button","minecraft:spruce_button","minecraft:birch_button","minecraft:jungle_button","minecraft:acacia_button","minecraft:dark_oak_button"],"minecraft:wooden_pressure_plates":["minecraft:oak_pressure_plate","minecraft:spruce_pressure_plate","minecraft:birch_pressure_plate","minecraft:jungle_pressure_plate","minecraft:acacia_pressure_plate","minecraft:dark_oak_pressure_plate"],"minecraft:beds":["minecraft:red_bed","minecraft:black_bed","minecraft:blue_bed","minecraft:brown_bed","minecraft:cyan_bed","minecraft:gray_bed","minecraft:green_bed","minecraft:light_blue_bed","minecraft:light_gray_bed","minecraft:lime_bed","minecraft:magenta_bed","minecraft:orange_bed","minecraft:pink_bed","minecraft:purple_bed","minecraft:white_bed","minecraft:yellow_bed"],"minecraft:walls":["minecraft:cobblestone_wall","minecraft:mossy_cobblestone_wall","minecraft:brick_wall","minecraft:prismarine_wall","minecraft:red_sandstone_wall","minecraft:mossy_stone_brick_wall","minecraft:granite_wall","minecraft:stone_brick_wall","minecraft:nether_brick_wall","minecraft:andesite_wall","minecraft:red_nether_brick_wall","minecraft:sandstone_wall","minecraft:end_stone_brick_wall","minecraft:diorite_wall"],"minecraft:rails":["minecraft:rail","minecraft:powered_rail","minecraft:detector_rail","minecraft:activator_rail"],"minecraft:birch_logs":["minecraft:birch_log","minecraft:birch_wood","minecraft:stripped_birch_log","minecraft:stripped_birch_wood"],"minecraft:wooden_trapdoors":["minecraft:acacia_trapdoor","minecraft:birch_trapdoor","minecraft:dark_oak_trapdoor","minecraft:jungle_trapdoor","minecraft:oak_trapdoor","minecraft:spruce_trapdoor"],"minecraft:wooden_fences":["minecraft:oak_fence","minecraft:acacia_fence","minecraft:dark_oak_fence","minecraft:spruce_fence","minecraft:birch_fence","minecraft:jungle_fence"],"minecraft:saplings":["minecraft:oak_sapling","minecraft:spruce_sapling","minecraft:birch_sapling","minecraft:jungle_sapling","minecraft:acacia_sapling","minecraft:dark_oak_sapling"],"minecraft:small_flowers":["minecraft:dandelion","minecraft:poppy","minecraft:blue_orchid","minecraft:allium","minecraft:azure_bluet","minecraft:red_tulip","minecraft:orange_tulip","minecraft:white_tulip","minecraft:pink_tulip","minecraft:oxeye_daisy","minecraft:cornflower","minecraft:lily_of_the_valley","minecraft:wither_rose"],"minecraft:bamboo_plantable_on":["minecraft:bamboo","minecraft:bamboo_sapling","minecraft:gravel","minecraft:sand","minecraft:red_sand","minecraft:dirt","minecraft:grass_block","minecraft:podzol","minecraft:coarse_dirt","minecraft:mycelium"],"minecraft:ice":["minecraft:ice","minecraft:packed_ice","minecraft:blue_ice","minecraft:frosted_ice"],"minecraft:wooden_stairs":["minecraft:oak_stairs","minecraft:spruce_stairs","minecraft:birch_stairs","minecraft:jungle_stairs","minecraft:acacia_stairs","minecraft:dark_oak_stairs"],"minecraft:anvil":["minecraft:anvil","minecraft:chipped_anvil","minecraft:damaged_anvil"],"minecraft:logs":["minecraft:dark_oak_log","minecraft:dark_oak_wood","minecraft:stripped_dark_oak_log","minecraft:stripped_dark_oak_wood","minecraft:oak_log","minecraft:oak_wood","minecraft:stripped_oak_log","minecraft:stripped_oak_wood","minecraft:acacia_log","minecraft:acacia_wood","minecraft:stripped_acacia_log","minecraft:stripped_acacia_wood","minecraft:birch_log","minecraft:birch_wood","minecraft:stripped_birch_log","minecraft:stripped_birch_wood","minecraft:jungle_log","minecraft:jungle_wood","minecraft:stripped_jungle_log","minecraft:stripped_jungle_wood","minecraft:spruce_log","minecraft:spruce_wood","minecraft:stripped_spruce_log","minecraft:stripped_spruce_wood"],"minecraft:corals":["minecraft:tube_coral_fan","minecraft:brain_coral_fan","minecraft:bubble_coral_fan","minecraft:fire_coral_fan","minecraft:horn_coral_fan","minecraft:tube_coral","minecraft:brain_coral","minecraft:bubble_coral","minecraft:fire_coral","minecraft:horn_coral"],"minecraft:wooden_buttons":["minecraft:oak_button","minecraft:spruce_button","minecraft:birch_button","minecraft:jungle_button","minecraft:acacia_button","minecraft:dark_oak_button"],"minecraft:wool":["minecraft:white_wool","minecraft:orange_wool","minecraft:magenta_wool","minecraft:light_blue_wool","minecraft:yellow_wool","minecraft:lime_wool","minecraft:pink_wool","minecraft:gray_wool","minecraft:light_gray_wool","minecraft:cyan_wool","minecraft:purple_wool","minecraft:blue_wool","minecraft:brown_wool","minecraft:green_wool","minecraft:red_wool","minecraft:black_wool"],"minecraft:coral_plants":["minecraft:tube_coral","minecraft:brain_coral","minecraft:bubble_coral","minecraft:fire_coral","minecraft:horn_coral"],"minecraft:banners":["minecraft:white_banner","minecraft:orange_banner","minecraft:magenta_banner","minecraft:light_blue_banner","minecraft:yellow_banner","minecraft:lime_banner","minecraft:pink_banner","minecraft:gray_banner","minecraft:light_gray_banner","minecraft:cyan_banner","minecraft:purple_banner","minecraft:blue_banner","minecraft:brown_banner","minecraft:green_banner","minecraft:red_banner","minecraft:black_banner","minecraft:white_wall_banner","minecraft:orange_wall_banner","minecraft:magenta_wall_banner","minecraft:light_blue_wall_banner","minecraft:yellow_wall_banner","minecraft:lime_wall_banner","minecraft:pink_wall_banner","minecraft:gray_wall_banner","minecraft:light_gray_wall_banner","minecraft:cyan_wall_banner","minecraft:purple_wall_banner","minecraft:blue_wall_banner","minecraft:brown_wall_banner","minecraft:green_wall_banner","minecraft:red_wall_banner","minecraft:black_wall_banner"],"minecraft:dragon_immune":["minecraft:barrier","minecraft:bedrock","minecraft:end_portal","minecraft:end_portal_frame","minecraft:end_gateway","minecraft:command_block","minecraft:repeating_command_block","minecraft:chain_command_block","minecraft:structure_block","minecraft:jigsaw","minecraft:moving_piston","minecraft:obsidian","minecraft:end_stone","minecraft:iron_bars"],"minecraft:doors":["minecraft:iron_door","minecraft:oak_door","minecraft:spruce_door","minecraft:birch_door","minecraft:jungle_door","minecraft:acacia_door","minecraft:dark_oak_door"],"minecraft:fences":["minecraft:nether_brick_fence","minecraft:oak_fence","minecraft:acacia_fence","minecraft:dark_oak_fence","minecraft:spruce_fence","minecraft:birch_fence","minecraft:jungle_fence"],"minecraft:wall_signs":["minecraft:oak_wall_sign","minecraft:spruce_wall_sign","minecraft:birch_wall_sign","minecraft:acacia_wall_sign","minecraft:jungle_wall_sign","minecraft:dark_oak_wall_sign"],"minecraft:standing_signs":["minecraft:oak_sign","minecraft:spruce_sign","minecraft:birch_sign","minecraft:acacia_sign","minecraft:jungle_sign","minecraft:dark_oak_sign"],"minecraft:dirt_like":["minecraft:dirt","minecraft:grass_block","minecraft:podzol","minecraft:coarse_dirt","minecraft:mycelium"],"minecraft:impermeable":["minecraft:glass","minecraft:white_stained_glass","minecraft:orange_stained_glass","minecraft:magenta_stained_glass","minecraft:light_blue_stained_glass","minecraft:yellow_stained_glass","minecraft:lime_stained_glass","minecraft:pink_stained_glass","minecraft:gray_stained_glass","minecraft:light_gray_stained_glass","minecraft:cyan_stained_glass","minecraft:purple_stained_glass","minecraft:blue_stained_glass","minecraft:brown_stained_glass","minecraft:green_stained_glass","minecraft:red_stained_glass","minecraft:black_stained_glass"],"minecraft:trapdoors":["minecraft:iron_trapdoor","minecraft:acacia_trapdoor","minecraft:birch_trapdoor","minecraft:dark_oak_trapdoor","minecraft:jungle_trapdoor","minecraft:oak_trapdoor","minecraft:spruce_trapdoor"],"minecraft:leaves":["minecraft:jungle_leaves","minecraft:oak_leaves","minecraft:spruce_leaves","minecraft:dark_oak_leaves","minecraft:acacia_leaves","minecraft:birch_leaves"]},"itemtags":{"minecraft:boats":["minecraft:oak_boat","minecraft:spruce_boat","minecraft:birch_boat","minecraft:jungle_boat","minecraft:acacia_boat","minecraft:dark_oak_boat"],"minecraft:banners":["minecraft:white_banner","minecraft:orange_banner","minecraft:magenta_banner","minecraft:light_blue_banner","minecraft:yellow_banner","minecraft:lime_banner","minecraft:pink_banner","minecraft:gray_banner","minecraft:light_gray_banner","minecraft:cyan_banner","minecraft:purple_banner","minecraft:blue_banner","minecraft:brown_banner","minecraft:green_banner","minecraft:red_banner","minecraft:black_banner"],"minecraft:arrows":["minecraft:arrow","minecraft:tipped_arrow","minecraft:spectral_arrow"],"minecraft:coals":["minecraft:coal","minecraft:charcoal"],"minecraft:music_discs":["minecraft:music_disc_13","minecraft:music_disc_cat","minecraft:music_disc_blocks","minecraft:music_disc_chirp","minecraft:music_disc_far","minecraft:music_disc_mall","minecraft:music_disc_mellohi","minecraft:music_disc_stal","minecraft:music_disc_strad","minecraft:music_disc_ward","minecraft:music_disc_11","minecraft:music_disc_wait"],"minecraft:fishes":["minecraft:cod","minecraft:cooked_cod","minecraft:salmon","minecraft:cooked_salmon","minecraft:pufferfish","minecraft:tropical_fish"]},"entitytags":{"minecraft:raiders":["minecraft:evoker","minecraft:pillager","minecraft:ravager","minecraft:vindicator","minecraft:illusioner","minecraft:witch"],"minecraft:skeletons":["minecraft:skeleton","minecraft:stray","minecraft:wither_skeleton"]}} \ No newline at end of file +{ + "blocks": { + "minecraft:acacia_button": { + "properties": { + "face": { + "values": [ + "floor", + "wall", + "ceiling" + ], + "type": "enum" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:acacia_button[face=wall,facing=north,powered=false]" + }, + "minecraft:acacia_door": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + }, + "hinge": { + "values": [ + "left", + "right" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:acacia_door[facing=north,half=lower,hinge=left,open=false,powered=false]" + }, + "minecraft:acacia_fence": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:acacia_fence[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:acacia_fence_gate": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "in_wall": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:acacia_fence_gate[facing=north,in_wall=false,open=false,powered=false]" + }, + "minecraft:acacia_leaves": { + "properties": { + "distance": { + "values": [ + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ], + "type": "int" + }, + "persistent": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:acacia_leaves[distance=7,persistent=false]" + }, + "minecraft:acacia_log": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:acacia_log[axis=y]" + }, + "minecraft:acacia_planks": { + "properties": {}, + "defaultstate": "minecraft:acacia_planks" + }, + "minecraft:acacia_pressure_plate": { + "properties": { + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:acacia_pressure_plate[powered=false]" + }, + "minecraft:acacia_sapling": { + "properties": { + "stage": { + "values": [ + "0", + "1" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:acacia_sapling[stage=0]" + }, + "minecraft:acacia_sign": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:acacia_sign[rotation=0,waterlogged=false]" + }, + "minecraft:acacia_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:acacia_slab[type=bottom,waterlogged=false]" + }, + "minecraft:acacia_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:acacia_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:acacia_trapdoor": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:acacia_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]" + }, + "minecraft:acacia_wall_sign": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:acacia_wall_sign[facing=north,waterlogged=false]" + }, + "minecraft:acacia_wood": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:acacia_wood[axis=y]" + }, + "minecraft:activator_rail": { + "properties": { + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "shape": { + "values": [ + "north_south", + "east_west", + "ascending_east", + "ascending_west", + "ascending_north", + "ascending_south" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:activator_rail[powered=false,shape=north_south]" + }, + "minecraft:air": { + "properties": {}, + "defaultstate": "minecraft:air" + }, + "minecraft:allium": { + "properties": {}, + "defaultstate": "minecraft:allium" + }, + "minecraft:andesite": { + "properties": {}, + "defaultstate": "minecraft:andesite" + }, + "minecraft:andesite_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:andesite_slab[type=bottom,waterlogged=false]" + }, + "minecraft:andesite_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:andesite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:andesite_wall": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:andesite_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]" + }, + "minecraft:anvil": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:anvil[facing=north]" + }, + "minecraft:attached_melon_stem": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:attached_melon_stem[facing=north]" + }, + "minecraft:attached_pumpkin_stem": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:attached_pumpkin_stem[facing=north]" + }, + "minecraft:azure_bluet": { + "properties": {}, + "defaultstate": "minecraft:azure_bluet" + }, + "minecraft:bamboo": { + "properties": { + "age": { + "values": [ + "0", + "1" + ], + "type": "int" + }, + "leaves": { + "values": [ + "none", + "small", + "large" + ], + "type": "enum" + }, + "stage": { + "values": [ + "0", + "1" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:bamboo[age=0,leaves=none,stage=0]" + }, + "minecraft:bamboo_sapling": { + "properties": {}, + "defaultstate": "minecraft:bamboo_sapling" + }, + "minecraft:barrel": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:barrel[facing=north,open=false]" + }, + "minecraft:barrier": { + "properties": {}, + "defaultstate": "minecraft:barrier" + }, + "minecraft:beacon": { + "properties": {}, + "defaultstate": "minecraft:beacon" + }, + "minecraft:bedrock": { + "properties": {}, + "defaultstate": "minecraft:bedrock" + }, + "minecraft:beetroots": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:beetroots[age=0]" + }, + "minecraft:bell": { + "properties": { + "attachment": { + "values": [ + "floor", + "ceiling", + "single_wall", + "double_wall" + ], + "type": "enum" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:bell[attachment=floor,facing=north]" + }, + "minecraft:birch_button": { + "properties": { + "face": { + "values": [ + "floor", + "wall", + "ceiling" + ], + "type": "enum" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:birch_button[face=wall,facing=north,powered=false]" + }, + "minecraft:birch_door": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + }, + "hinge": { + "values": [ + "left", + "right" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:birch_door[facing=north,half=lower,hinge=left,open=false,powered=false]" + }, + "minecraft:birch_fence": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:birch_fence[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:birch_fence_gate": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "in_wall": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:birch_fence_gate[facing=north,in_wall=false,open=false,powered=false]" + }, + "minecraft:birch_leaves": { + "properties": { + "distance": { + "values": [ + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ], + "type": "int" + }, + "persistent": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:birch_leaves[distance=7,persistent=false]" + }, + "minecraft:birch_log": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:birch_log[axis=y]" + }, + "minecraft:birch_planks": { + "properties": {}, + "defaultstate": "minecraft:birch_planks" + }, + "minecraft:birch_pressure_plate": { + "properties": { + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:birch_pressure_plate[powered=false]" + }, + "minecraft:birch_sapling": { + "properties": { + "stage": { + "values": [ + "0", + "1" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:birch_sapling[stage=0]" + }, + "minecraft:birch_sign": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:birch_sign[rotation=0,waterlogged=false]" + }, + "minecraft:birch_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:birch_slab[type=bottom,waterlogged=false]" + }, + "minecraft:birch_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:birch_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:birch_trapdoor": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:birch_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]" + }, + "minecraft:birch_wall_sign": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:birch_wall_sign[facing=north,waterlogged=false]" + }, + "minecraft:birch_wood": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:birch_wood[axis=y]" + }, + "minecraft:black_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:black_banner[rotation=0]" + }, + "minecraft:black_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:black_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:black_carpet": { + "properties": {}, + "defaultstate": "minecraft:black_carpet" + }, + "minecraft:black_concrete": { + "properties": {}, + "defaultstate": "minecraft:black_concrete" + }, + "minecraft:black_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:black_concrete_powder" + }, + "minecraft:black_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:black_glazed_terracotta[facing=north]" + }, + "minecraft:black_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:black_shulker_box[facing=up]" + }, + "minecraft:black_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:black_stained_glass" + }, + "minecraft:black_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:black_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:black_terracotta": { + "properties": {}, + "defaultstate": "minecraft:black_terracotta" + }, + "minecraft:black_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:black_wall_banner[facing=north]" + }, + "minecraft:black_wool": { + "properties": {}, + "defaultstate": "minecraft:black_wool" + }, + "minecraft:blast_furnace": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "lit": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:blast_furnace[facing=north,lit=false]" + }, + "minecraft:blue_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:blue_banner[rotation=0]" + }, + "minecraft:blue_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:blue_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:blue_carpet": { + "properties": {}, + "defaultstate": "minecraft:blue_carpet" + }, + "minecraft:blue_concrete": { + "properties": {}, + "defaultstate": "minecraft:blue_concrete" + }, + "minecraft:blue_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:blue_concrete_powder" + }, + "minecraft:blue_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:blue_glazed_terracotta[facing=north]" + }, + "minecraft:blue_ice": { + "properties": {}, + "defaultstate": "minecraft:blue_ice" + }, + "minecraft:blue_orchid": { + "properties": {}, + "defaultstate": "minecraft:blue_orchid" + }, + "minecraft:blue_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:blue_shulker_box[facing=up]" + }, + "minecraft:blue_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:blue_stained_glass" + }, + "minecraft:blue_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:blue_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:blue_terracotta": { + "properties": {}, + "defaultstate": "minecraft:blue_terracotta" + }, + "minecraft:blue_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:blue_wall_banner[facing=north]" + }, + "minecraft:blue_wool": { + "properties": {}, + "defaultstate": "minecraft:blue_wool" + }, + "minecraft:bone_block": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:bone_block[axis=y]" + }, + "minecraft:bookshelf": { + "properties": {}, + "defaultstate": "minecraft:bookshelf" + }, + "minecraft:brain_coral": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:brain_coral[waterlogged=true]" + }, + "minecraft:brain_coral_block": { + "properties": {}, + "defaultstate": "minecraft:brain_coral_block" + }, + "minecraft:brain_coral_fan": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:brain_coral_fan[waterlogged=true]" + }, + "minecraft:brain_coral_wall_fan": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:brain_coral_wall_fan[facing=north,waterlogged=true]" + }, + "minecraft:brewing_stand": { + "properties": { + "has_bottle_0": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "has_bottle_1": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "has_bottle_2": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:brewing_stand[has_bottle_0=false,has_bottle_1=false,has_bottle_2=false]" + }, + "minecraft:brick_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:brick_slab[type=bottom,waterlogged=false]" + }, + "minecraft:brick_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:brick_wall": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:brick_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]" + }, + "minecraft:bricks": { + "properties": {}, + "defaultstate": "minecraft:bricks" + }, + "minecraft:brown_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:brown_banner[rotation=0]" + }, + "minecraft:brown_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:brown_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:brown_carpet": { + "properties": {}, + "defaultstate": "minecraft:brown_carpet" + }, + "minecraft:brown_concrete": { + "properties": {}, + "defaultstate": "minecraft:brown_concrete" + }, + "minecraft:brown_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:brown_concrete_powder" + }, + "minecraft:brown_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:brown_glazed_terracotta[facing=north]" + }, + "minecraft:brown_mushroom": { + "properties": {}, + "defaultstate": "minecraft:brown_mushroom" + }, + "minecraft:brown_mushroom_block": { + "properties": { + "down": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:brown_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true]" + }, + "minecraft:brown_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:brown_shulker_box[facing=up]" + }, + "minecraft:brown_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:brown_stained_glass" + }, + "minecraft:brown_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:brown_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:brown_terracotta": { + "properties": {}, + "defaultstate": "minecraft:brown_terracotta" + }, + "minecraft:brown_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:brown_wall_banner[facing=north]" + }, + "minecraft:brown_wool": { + "properties": {}, + "defaultstate": "minecraft:brown_wool" + }, + "minecraft:bubble_column": { + "properties": { + "drag": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:bubble_column[drag=true]" + }, + "minecraft:bubble_coral": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:bubble_coral[waterlogged=true]" + }, + "minecraft:bubble_coral_block": { + "properties": {}, + "defaultstate": "minecraft:bubble_coral_block" + }, + "minecraft:bubble_coral_fan": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:bubble_coral_fan[waterlogged=true]" + }, + "minecraft:bubble_coral_wall_fan": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:bubble_coral_wall_fan[facing=north,waterlogged=true]" + }, + "minecraft:cactus": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:cactus[age=0]" + }, + "minecraft:cake": { + "properties": { + "bites": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:cake[bites=0]" + }, + "minecraft:campfire": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "lit": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "signal_fire": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:campfire[facing=north,lit=true,signal_fire=false,waterlogged=false]" + }, + "minecraft:carrots": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:carrots[age=0]" + }, + "minecraft:cartography_table": { + "properties": {}, + "defaultstate": "minecraft:cartography_table" + }, + "minecraft:carved_pumpkin": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:carved_pumpkin[facing=north]" + }, + "minecraft:cauldron": { + "properties": { + "level": { + "values": [ + "0", + "1", + "2", + "3" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:cauldron[level=0]" + }, + "minecraft:cave_air": { + "properties": {}, + "defaultstate": "minecraft:cave_air" + }, + "minecraft:chain_command_block": { + "properties": { + "conditional": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:chain_command_block[conditional=false,facing=north]" + }, + "minecraft:chest": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "type": { + "values": [ + "single", + "left", + "right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:chest[facing=north,type=single,waterlogged=false]" + }, + "minecraft:chipped_anvil": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:chipped_anvil[facing=north]" + }, + "minecraft:chiseled_quartz_block": { + "properties": {}, + "defaultstate": "minecraft:chiseled_quartz_block" + }, + "minecraft:chiseled_red_sandstone": { + "properties": {}, + "defaultstate": "minecraft:chiseled_red_sandstone" + }, + "minecraft:chiseled_sandstone": { + "properties": {}, + "defaultstate": "minecraft:chiseled_sandstone" + }, + "minecraft:chiseled_stone_bricks": { + "properties": {}, + "defaultstate": "minecraft:chiseled_stone_bricks" + }, + "minecraft:chorus_flower": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:chorus_flower[age=0]" + }, + "minecraft:chorus_plant": { + "properties": { + "down": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:chorus_plant[down=false,east=false,north=false,south=false,up=false,west=false]" + }, + "minecraft:clay": { + "properties": {}, + "defaultstate": "minecraft:clay" + }, + "minecraft:coal_block": { + "properties": {}, + "defaultstate": "minecraft:coal_block" + }, + "minecraft:coal_ore": { + "properties": {}, + "defaultstate": "minecraft:coal_ore" + }, + "minecraft:coarse_dirt": { + "properties": {}, + "defaultstate": "minecraft:coarse_dirt" + }, + "minecraft:cobblestone": { + "properties": {}, + "defaultstate": "minecraft:cobblestone" + }, + "minecraft:cobblestone_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:cobblestone_slab[type=bottom,waterlogged=false]" + }, + "minecraft:cobblestone_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:cobblestone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:cobblestone_wall": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:cobblestone_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]" + }, + "minecraft:cobweb": { + "properties": {}, + "defaultstate": "minecraft:cobweb" + }, + "minecraft:cocoa": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2" + ], + "type": "int" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:cocoa[age=0,facing=north]" + }, + "minecraft:command_block": { + "properties": { + "conditional": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:command_block[conditional=false,facing=north]" + }, + "minecraft:comparator": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "mode": { + "values": [ + "compare", + "subtract" + ], + "type": "enum" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:comparator[facing=north,mode=compare,powered=false]" + }, + "minecraft:composter": { + "properties": { + "level": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:composter[level=0]" + }, + "minecraft:conduit": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:conduit[waterlogged=true]" + }, + "minecraft:cornflower": { + "properties": {}, + "defaultstate": "minecraft:cornflower" + }, + "minecraft:cracked_stone_bricks": { + "properties": {}, + "defaultstate": "minecraft:cracked_stone_bricks" + }, + "minecraft:crafting_table": { + "properties": {}, + "defaultstate": "minecraft:crafting_table" + }, + "minecraft:creeper_head": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:creeper_head[rotation=0]" + }, + "minecraft:creeper_wall_head": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:creeper_wall_head[facing=north]" + }, + "minecraft:cut_red_sandstone": { + "properties": {}, + "defaultstate": "minecraft:cut_red_sandstone" + }, + "minecraft:cut_red_sandstone_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:cut_red_sandstone_slab[type=bottom,waterlogged=false]" + }, + "minecraft:cut_sandstone": { + "properties": {}, + "defaultstate": "minecraft:cut_sandstone" + }, + "minecraft:cut_sandstone_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:cut_sandstone_slab[type=bottom,waterlogged=false]" + }, + "minecraft:cyan_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:cyan_banner[rotation=0]" + }, + "minecraft:cyan_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:cyan_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:cyan_carpet": { + "properties": {}, + "defaultstate": "minecraft:cyan_carpet" + }, + "minecraft:cyan_concrete": { + "properties": {}, + "defaultstate": "minecraft:cyan_concrete" + }, + "minecraft:cyan_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:cyan_concrete_powder" + }, + "minecraft:cyan_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:cyan_glazed_terracotta[facing=north]" + }, + "minecraft:cyan_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:cyan_shulker_box[facing=up]" + }, + "minecraft:cyan_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:cyan_stained_glass" + }, + "minecraft:cyan_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:cyan_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:cyan_terracotta": { + "properties": {}, + "defaultstate": "minecraft:cyan_terracotta" + }, + "minecraft:cyan_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:cyan_wall_banner[facing=north]" + }, + "minecraft:cyan_wool": { + "properties": {}, + "defaultstate": "minecraft:cyan_wool" + }, + "minecraft:damaged_anvil": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:damaged_anvil[facing=north]" + }, + "minecraft:dandelion": { + "properties": {}, + "defaultstate": "minecraft:dandelion" + }, + "minecraft:dark_oak_button": { + "properties": { + "face": { + "values": [ + "floor", + "wall", + "ceiling" + ], + "type": "enum" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dark_oak_button[face=wall,facing=north,powered=false]" + }, + "minecraft:dark_oak_door": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + }, + "hinge": { + "values": [ + "left", + "right" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dark_oak_door[facing=north,half=lower,hinge=left,open=false,powered=false]" + }, + "minecraft:dark_oak_fence": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dark_oak_fence[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:dark_oak_fence_gate": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "in_wall": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dark_oak_fence_gate[facing=north,in_wall=false,open=false,powered=false]" + }, + "minecraft:dark_oak_leaves": { + "properties": { + "distance": { + "values": [ + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ], + "type": "int" + }, + "persistent": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dark_oak_leaves[distance=7,persistent=false]" + }, + "minecraft:dark_oak_log": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:dark_oak_log[axis=y]" + }, + "minecraft:dark_oak_planks": { + "properties": {}, + "defaultstate": "minecraft:dark_oak_planks" + }, + "minecraft:dark_oak_pressure_plate": { + "properties": { + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dark_oak_pressure_plate[powered=false]" + }, + "minecraft:dark_oak_sapling": { + "properties": { + "stage": { + "values": [ + "0", + "1" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:dark_oak_sapling[stage=0]" + }, + "minecraft:dark_oak_sign": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dark_oak_sign[rotation=0,waterlogged=false]" + }, + "minecraft:dark_oak_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dark_oak_slab[type=bottom,waterlogged=false]" + }, + "minecraft:dark_oak_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dark_oak_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:dark_oak_trapdoor": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dark_oak_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]" + }, + "minecraft:dark_oak_wall_sign": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dark_oak_wall_sign[facing=north,waterlogged=false]" + }, + "minecraft:dark_oak_wood": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:dark_oak_wood[axis=y]" + }, + "minecraft:dark_prismarine": { + "properties": {}, + "defaultstate": "minecraft:dark_prismarine" + }, + "minecraft:dark_prismarine_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dark_prismarine_slab[type=bottom,waterlogged=false]" + }, + "minecraft:dark_prismarine_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dark_prismarine_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:daylight_detector": { + "properties": { + "inverted": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "power": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:daylight_detector[inverted=false,power=0]" + }, + "minecraft:dead_brain_coral": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_brain_coral[waterlogged=true]" + }, + "minecraft:dead_brain_coral_block": { + "properties": {}, + "defaultstate": "minecraft:dead_brain_coral_block" + }, + "minecraft:dead_brain_coral_fan": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_brain_coral_fan[waterlogged=true]" + }, + "minecraft:dead_brain_coral_wall_fan": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_brain_coral_wall_fan[facing=north,waterlogged=true]" + }, + "minecraft:dead_bubble_coral": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_bubble_coral[waterlogged=true]" + }, + "minecraft:dead_bubble_coral_block": { + "properties": {}, + "defaultstate": "minecraft:dead_bubble_coral_block" + }, + "minecraft:dead_bubble_coral_fan": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_bubble_coral_fan[waterlogged=true]" + }, + "minecraft:dead_bubble_coral_wall_fan": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_bubble_coral_wall_fan[facing=north,waterlogged=true]" + }, + "minecraft:dead_bush": { + "properties": {}, + "defaultstate": "minecraft:dead_bush" + }, + "minecraft:dead_fire_coral": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_fire_coral[waterlogged=true]" + }, + "minecraft:dead_fire_coral_block": { + "properties": {}, + "defaultstate": "minecraft:dead_fire_coral_block" + }, + "minecraft:dead_fire_coral_fan": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_fire_coral_fan[waterlogged=true]" + }, + "minecraft:dead_fire_coral_wall_fan": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_fire_coral_wall_fan[facing=north,waterlogged=true]" + }, + "minecraft:dead_horn_coral": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_horn_coral[waterlogged=true]" + }, + "minecraft:dead_horn_coral_block": { + "properties": {}, + "defaultstate": "minecraft:dead_horn_coral_block" + }, + "minecraft:dead_horn_coral_fan": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_horn_coral_fan[waterlogged=true]" + }, + "minecraft:dead_horn_coral_wall_fan": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_horn_coral_wall_fan[facing=north,waterlogged=true]" + }, + "minecraft:dead_tube_coral": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_tube_coral[waterlogged=true]" + }, + "minecraft:dead_tube_coral_block": { + "properties": {}, + "defaultstate": "minecraft:dead_tube_coral_block" + }, + "minecraft:dead_tube_coral_fan": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_tube_coral_fan[waterlogged=true]" + }, + "minecraft:dead_tube_coral_wall_fan": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_tube_coral_wall_fan[facing=north,waterlogged=true]" + }, + "minecraft:detector_rail": { + "properties": { + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "shape": { + "values": [ + "north_south", + "east_west", + "ascending_east", + "ascending_west", + "ascending_north", + "ascending_south" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:detector_rail[powered=false,shape=north_south]" + }, + "minecraft:diamond_block": { + "properties": {}, + "defaultstate": "minecraft:diamond_block" + }, + "minecraft:diamond_ore": { + "properties": {}, + "defaultstate": "minecraft:diamond_ore" + }, + "minecraft:diorite": { + "properties": {}, + "defaultstate": "minecraft:diorite" + }, + "minecraft:diorite_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:diorite_slab[type=bottom,waterlogged=false]" + }, + "minecraft:diorite_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:diorite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:diorite_wall": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:diorite_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]" + }, + "minecraft:dirt": { + "properties": {}, + "defaultstate": "minecraft:dirt" + }, + "minecraft:dispenser": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + }, + "triggered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dispenser[facing=north,triggered=false]" + }, + "minecraft:dragon_egg": { + "properties": {}, + "defaultstate": "minecraft:dragon_egg" + }, + "minecraft:dragon_head": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:dragon_head[rotation=0]" + }, + "minecraft:dragon_wall_head": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:dragon_wall_head[facing=north]" + }, + "minecraft:dried_kelp_block": { + "properties": {}, + "defaultstate": "minecraft:dried_kelp_block" + }, + "minecraft:dropper": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + }, + "triggered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dropper[facing=north,triggered=false]" + }, + "minecraft:emerald_block": { + "properties": {}, + "defaultstate": "minecraft:emerald_block" + }, + "minecraft:emerald_ore": { + "properties": {}, + "defaultstate": "minecraft:emerald_ore" + }, + "minecraft:enchanting_table": { + "properties": {}, + "defaultstate": "minecraft:enchanting_table" + }, + "minecraft:end_gateway": { + "properties": {}, + "defaultstate": "minecraft:end_gateway" + }, + "minecraft:end_portal": { + "properties": {}, + "defaultstate": "minecraft:end_portal" + }, + "minecraft:end_portal_frame": { + "properties": { + "eye": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:end_portal_frame[eye=false,facing=north]" + }, + "minecraft:end_rod": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:end_rod[facing=up]" + }, + "minecraft:end_stone": { + "properties": {}, + "defaultstate": "minecraft:end_stone" + }, + "minecraft:end_stone_brick_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:end_stone_brick_slab[type=bottom,waterlogged=false]" + }, + "minecraft:end_stone_brick_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:end_stone_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:end_stone_brick_wall": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:end_stone_brick_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]" + }, + "minecraft:end_stone_bricks": { + "properties": {}, + "defaultstate": "minecraft:end_stone_bricks" + }, + "minecraft:ender_chest": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:ender_chest[facing=north,waterlogged=false]" + }, + "minecraft:farmland": { + "properties": { + "moisture": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:farmland[moisture=0]" + }, + "minecraft:fern": { + "properties": {}, + "defaultstate": "minecraft:fern" + }, + "minecraft:fire": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + }, + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:fire[age=0,east=false,north=false,south=false,up=false,west=false]" + }, + "minecraft:fire_coral": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:fire_coral[waterlogged=true]" + }, + "minecraft:fire_coral_block": { + "properties": {}, + "defaultstate": "minecraft:fire_coral_block" + }, + "minecraft:fire_coral_fan": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:fire_coral_fan[waterlogged=true]" + }, + "minecraft:fire_coral_wall_fan": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:fire_coral_wall_fan[facing=north,waterlogged=true]" + }, + "minecraft:fletching_table": { + "properties": {}, + "defaultstate": "minecraft:fletching_table" + }, + "minecraft:flower_pot": { + "properties": {}, + "defaultstate": "minecraft:flower_pot" + }, + "minecraft:frosted_ice": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:frosted_ice[age=0]" + }, + "minecraft:furnace": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "lit": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:furnace[facing=north,lit=false]" + }, + "minecraft:glass": { + "properties": {}, + "defaultstate": "minecraft:glass" + }, + "minecraft:glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:glowstone": { + "properties": {}, + "defaultstate": "minecraft:glowstone" + }, + "minecraft:gold_block": { + "properties": {}, + "defaultstate": "minecraft:gold_block" + }, + "minecraft:gold_ore": { + "properties": {}, + "defaultstate": "minecraft:gold_ore" + }, + "minecraft:granite": { + "properties": {}, + "defaultstate": "minecraft:granite" + }, + "minecraft:granite_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:granite_slab[type=bottom,waterlogged=false]" + }, + "minecraft:granite_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:granite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:granite_wall": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:granite_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]" + }, + "minecraft:grass": { + "properties": {}, + "defaultstate": "minecraft:grass" + }, + "minecraft:grass_block": { + "properties": { + "snowy": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:grass_block[snowy=false]" + }, + "minecraft:grass_path": { + "properties": {}, + "defaultstate": "minecraft:grass_path" + }, + "minecraft:gravel": { + "properties": {}, + "defaultstate": "minecraft:gravel" + }, + "minecraft:gray_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:gray_banner[rotation=0]" + }, + "minecraft:gray_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:gray_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:gray_carpet": { + "properties": {}, + "defaultstate": "minecraft:gray_carpet" + }, + "minecraft:gray_concrete": { + "properties": {}, + "defaultstate": "minecraft:gray_concrete" + }, + "minecraft:gray_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:gray_concrete_powder" + }, + "minecraft:gray_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:gray_glazed_terracotta[facing=north]" + }, + "minecraft:gray_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:gray_shulker_box[facing=up]" + }, + "minecraft:gray_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:gray_stained_glass" + }, + "minecraft:gray_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:gray_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:gray_terracotta": { + "properties": {}, + "defaultstate": "minecraft:gray_terracotta" + }, + "minecraft:gray_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:gray_wall_banner[facing=north]" + }, + "minecraft:gray_wool": { + "properties": {}, + "defaultstate": "minecraft:gray_wool" + }, + "minecraft:green_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:green_banner[rotation=0]" + }, + "minecraft:green_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:green_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:green_carpet": { + "properties": {}, + "defaultstate": "minecraft:green_carpet" + }, + "minecraft:green_concrete": { + "properties": {}, + "defaultstate": "minecraft:green_concrete" + }, + "minecraft:green_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:green_concrete_powder" + }, + "minecraft:green_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:green_glazed_terracotta[facing=north]" + }, + "minecraft:green_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:green_shulker_box[facing=up]" + }, + "minecraft:green_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:green_stained_glass" + }, + "minecraft:green_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:green_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:green_terracotta": { + "properties": {}, + "defaultstate": "minecraft:green_terracotta" + }, + "minecraft:green_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:green_wall_banner[facing=north]" + }, + "minecraft:green_wool": { + "properties": {}, + "defaultstate": "minecraft:green_wool" + }, + "minecraft:grindstone": { + "properties": { + "face": { + "values": [ + "floor", + "wall", + "ceiling" + ], + "type": "enum" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:grindstone[face=wall,facing=north]" + }, + "minecraft:hay_block": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:hay_block[axis=y]" + }, + "minecraft:heavy_weighted_pressure_plate": { + "properties": { + "power": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:heavy_weighted_pressure_plate[power=0]" + }, + "minecraft:hopper": { + "properties": { + "enabled": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "facing": { + "values": [ + "down", + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:hopper[enabled=true,facing=down]" + }, + "minecraft:horn_coral": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:horn_coral[waterlogged=true]" + }, + "minecraft:horn_coral_block": { + "properties": {}, + "defaultstate": "minecraft:horn_coral_block" + }, + "minecraft:horn_coral_fan": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:horn_coral_fan[waterlogged=true]" + }, + "minecraft:horn_coral_wall_fan": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:horn_coral_wall_fan[facing=north,waterlogged=true]" + }, + "minecraft:ice": { + "properties": {}, + "defaultstate": "minecraft:ice" + }, + "minecraft:infested_chiseled_stone_bricks": { + "properties": {}, + "defaultstate": "minecraft:infested_chiseled_stone_bricks" + }, + "minecraft:infested_cobblestone": { + "properties": {}, + "defaultstate": "minecraft:infested_cobblestone" + }, + "minecraft:infested_cracked_stone_bricks": { + "properties": {}, + "defaultstate": "minecraft:infested_cracked_stone_bricks" + }, + "minecraft:infested_mossy_stone_bricks": { + "properties": {}, + "defaultstate": "minecraft:infested_mossy_stone_bricks" + }, + "minecraft:infested_stone": { + "properties": {}, + "defaultstate": "minecraft:infested_stone" + }, + "minecraft:infested_stone_bricks": { + "properties": {}, + "defaultstate": "minecraft:infested_stone_bricks" + }, + "minecraft:iron_bars": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:iron_bars[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:iron_block": { + "properties": {}, + "defaultstate": "minecraft:iron_block" + }, + "minecraft:iron_door": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + }, + "hinge": { + "values": [ + "left", + "right" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:iron_door[facing=north,half=lower,hinge=left,open=false,powered=false]" + }, + "minecraft:iron_ore": { + "properties": {}, + "defaultstate": "minecraft:iron_ore" + }, + "minecraft:iron_trapdoor": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:iron_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]" + }, + "minecraft:jack_o_lantern": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:jack_o_lantern[facing=north]" + }, + "minecraft:jigsaw": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:jigsaw[facing=up]" + }, + "minecraft:jukebox": { + "properties": { + "has_record": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:jukebox[has_record=false]" + }, + "minecraft:jungle_button": { + "properties": { + "face": { + "values": [ + "floor", + "wall", + "ceiling" + ], + "type": "enum" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:jungle_button[face=wall,facing=north,powered=false]" + }, + "minecraft:jungle_door": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + }, + "hinge": { + "values": [ + "left", + "right" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:jungle_door[facing=north,half=lower,hinge=left,open=false,powered=false]" + }, + "minecraft:jungle_fence": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:jungle_fence[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:jungle_fence_gate": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "in_wall": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:jungle_fence_gate[facing=north,in_wall=false,open=false,powered=false]" + }, + "minecraft:jungle_leaves": { + "properties": { + "distance": { + "values": [ + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ], + "type": "int" + }, + "persistent": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:jungle_leaves[distance=7,persistent=false]" + }, + "minecraft:jungle_log": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:jungle_log[axis=y]" + }, + "minecraft:jungle_planks": { + "properties": {}, + "defaultstate": "minecraft:jungle_planks" + }, + "minecraft:jungle_pressure_plate": { + "properties": { + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:jungle_pressure_plate[powered=false]" + }, + "minecraft:jungle_sapling": { + "properties": { + "stage": { + "values": [ + "0", + "1" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:jungle_sapling[stage=0]" + }, + "minecraft:jungle_sign": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:jungle_sign[rotation=0,waterlogged=false]" + }, + "minecraft:jungle_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:jungle_slab[type=bottom,waterlogged=false]" + }, + "minecraft:jungle_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:jungle_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:jungle_trapdoor": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:jungle_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]" + }, + "minecraft:jungle_wall_sign": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:jungle_wall_sign[facing=north,waterlogged=false]" + }, + "minecraft:jungle_wood": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:jungle_wood[axis=y]" + }, + "minecraft:kelp": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15", + "16", + "17", + "18", + "19", + "20", + "21", + "22", + "23", + "24", + "25" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:kelp[age=0]" + }, + "minecraft:kelp_plant": { + "properties": {}, + "defaultstate": "minecraft:kelp_plant" + }, + "minecraft:ladder": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:ladder[facing=north,waterlogged=false]" + }, + "minecraft:lantern": { + "properties": { + "hanging": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:lantern[hanging=false]" + }, + "minecraft:lapis_block": { + "properties": {}, + "defaultstate": "minecraft:lapis_block" + }, + "minecraft:lapis_ore": { + "properties": {}, + "defaultstate": "minecraft:lapis_ore" + }, + "minecraft:large_fern": { + "properties": { + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:large_fern[half=lower]" + }, + "minecraft:lava": { + "properties": { + "level": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:lava[level=0]" + }, + "minecraft:lectern": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "has_book": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:lectern[facing=north,has_book=false,powered=false]" + }, + "minecraft:lever": { + "properties": { + "face": { + "values": [ + "floor", + "wall", + "ceiling" + ], + "type": "enum" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:lever[face=wall,facing=north,powered=false]" + }, + "minecraft:light_blue_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:light_blue_banner[rotation=0]" + }, + "minecraft:light_blue_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:light_blue_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:light_blue_carpet": { + "properties": {}, + "defaultstate": "minecraft:light_blue_carpet" + }, + "minecraft:light_blue_concrete": { + "properties": {}, + "defaultstate": "minecraft:light_blue_concrete" + }, + "minecraft:light_blue_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:light_blue_concrete_powder" + }, + "minecraft:light_blue_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:light_blue_glazed_terracotta[facing=north]" + }, + "minecraft:light_blue_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:light_blue_shulker_box[facing=up]" + }, + "minecraft:light_blue_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:light_blue_stained_glass" + }, + "minecraft:light_blue_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:light_blue_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:light_blue_terracotta": { + "properties": {}, + "defaultstate": "minecraft:light_blue_terracotta" + }, + "minecraft:light_blue_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:light_blue_wall_banner[facing=north]" + }, + "minecraft:light_blue_wool": { + "properties": {}, + "defaultstate": "minecraft:light_blue_wool" + }, + "minecraft:light_gray_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:light_gray_banner[rotation=0]" + }, + "minecraft:light_gray_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:light_gray_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:light_gray_carpet": { + "properties": {}, + "defaultstate": "minecraft:light_gray_carpet" + }, + "minecraft:light_gray_concrete": { + "properties": {}, + "defaultstate": "minecraft:light_gray_concrete" + }, + "minecraft:light_gray_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:light_gray_concrete_powder" + }, + "minecraft:light_gray_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:light_gray_glazed_terracotta[facing=north]" + }, + "minecraft:light_gray_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:light_gray_shulker_box[facing=up]" + }, + "minecraft:light_gray_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:light_gray_stained_glass" + }, + "minecraft:light_gray_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:light_gray_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:light_gray_terracotta": { + "properties": {}, + "defaultstate": "minecraft:light_gray_terracotta" + }, + "minecraft:light_gray_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:light_gray_wall_banner[facing=north]" + }, + "minecraft:light_gray_wool": { + "properties": {}, + "defaultstate": "minecraft:light_gray_wool" + }, + "minecraft:light_weighted_pressure_plate": { + "properties": { + "power": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:light_weighted_pressure_plate[power=0]" + }, + "minecraft:lilac": { + "properties": { + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:lilac[half=lower]" + }, + "minecraft:lily_of_the_valley": { + "properties": {}, + "defaultstate": "minecraft:lily_of_the_valley" + }, + "minecraft:lily_pad": { + "properties": {}, + "defaultstate": "minecraft:lily_pad" + }, + "minecraft:lime_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:lime_banner[rotation=0]" + }, + "minecraft:lime_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:lime_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:lime_carpet": { + "properties": {}, + "defaultstate": "minecraft:lime_carpet" + }, + "minecraft:lime_concrete": { + "properties": {}, + "defaultstate": "minecraft:lime_concrete" + }, + "minecraft:lime_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:lime_concrete_powder" + }, + "minecraft:lime_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:lime_glazed_terracotta[facing=north]" + }, + "minecraft:lime_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:lime_shulker_box[facing=up]" + }, + "minecraft:lime_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:lime_stained_glass" + }, + "minecraft:lime_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:lime_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:lime_terracotta": { + "properties": {}, + "defaultstate": "minecraft:lime_terracotta" + }, + "minecraft:lime_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:lime_wall_banner[facing=north]" + }, + "minecraft:lime_wool": { + "properties": {}, + "defaultstate": "minecraft:lime_wool" + }, + "minecraft:loom": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:loom[facing=north]" + }, + "minecraft:magenta_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:magenta_banner[rotation=0]" + }, + "minecraft:magenta_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:magenta_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:magenta_carpet": { + "properties": {}, + "defaultstate": "minecraft:magenta_carpet" + }, + "minecraft:magenta_concrete": { + "properties": {}, + "defaultstate": "minecraft:magenta_concrete" + }, + "minecraft:magenta_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:magenta_concrete_powder" + }, + "minecraft:magenta_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:magenta_glazed_terracotta[facing=north]" + }, + "minecraft:magenta_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:magenta_shulker_box[facing=up]" + }, + "minecraft:magenta_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:magenta_stained_glass" + }, + "minecraft:magenta_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:magenta_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:magenta_terracotta": { + "properties": {}, + "defaultstate": "minecraft:magenta_terracotta" + }, + "minecraft:magenta_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:magenta_wall_banner[facing=north]" + }, + "minecraft:magenta_wool": { + "properties": {}, + "defaultstate": "minecraft:magenta_wool" + }, + "minecraft:magma_block": { + "properties": {}, + "defaultstate": "minecraft:magma_block" + }, + "minecraft:melon": { + "properties": {}, + "defaultstate": "minecraft:melon" + }, + "minecraft:melon_stem": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:melon_stem[age=0]" + }, + "minecraft:mossy_cobblestone": { + "properties": {}, + "defaultstate": "minecraft:mossy_cobblestone" + }, + "minecraft:mossy_cobblestone_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:mossy_cobblestone_slab[type=bottom,waterlogged=false]" + }, + "minecraft:mossy_cobblestone_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:mossy_cobblestone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:mossy_cobblestone_wall": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:mossy_cobblestone_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]" + }, + "minecraft:mossy_stone_brick_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:mossy_stone_brick_slab[type=bottom,waterlogged=false]" + }, + "minecraft:mossy_stone_brick_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:mossy_stone_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:mossy_stone_brick_wall": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:mossy_stone_brick_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]" + }, + "minecraft:mossy_stone_bricks": { + "properties": {}, + "defaultstate": "minecraft:mossy_stone_bricks" + }, + "minecraft:moving_piston": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + }, + "type": { + "values": [ + "normal", + "sticky" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:moving_piston[facing=north,type=normal]" + }, + "minecraft:mushroom_stem": { + "properties": { + "down": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:mushroom_stem[down=true,east=true,north=true,south=true,up=true,west=true]" + }, + "minecraft:mycelium": { + "properties": { + "snowy": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:mycelium[snowy=false]" + }, + "minecraft:nether_brick_fence": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:nether_brick_fence[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:nether_brick_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:nether_brick_slab[type=bottom,waterlogged=false]" + }, + "minecraft:nether_brick_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:nether_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:nether_brick_wall": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:nether_brick_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]" + }, + "minecraft:nether_bricks": { + "properties": {}, + "defaultstate": "minecraft:nether_bricks" + }, + "minecraft:nether_portal": { + "properties": { + "axis": { + "values": [ + "x", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:nether_portal[axis=x]" + }, + "minecraft:nether_quartz_ore": { + "properties": {}, + "defaultstate": "minecraft:nether_quartz_ore" + }, + "minecraft:nether_wart": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:nether_wart[age=0]" + }, + "minecraft:nether_wart_block": { + "properties": {}, + "defaultstate": "minecraft:nether_wart_block" + }, + "minecraft:netherrack": { + "properties": {}, + "defaultstate": "minecraft:netherrack" + }, + "minecraft:note_block": { + "properties": { + "instrument": { + "values": [ + "harp", + "basedrum", + "snare", + "hat", + "bass", + "flute", + "bell", + "guitar", + "chime", + "xylophone", + "iron_xylophone", + "cow_bell", + "didgeridoo", + "bit", + "banjo", + "pling" + ], + "type": "enum" + }, + "note": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15", + "16", + "17", + "18", + "19", + "20", + "21", + "22", + "23", + "24" + ], + "type": "int" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:note_block[instrument=harp,note=0,powered=false]" + }, + "minecraft:oak_button": { + "properties": { + "face": { + "values": [ + "floor", + "wall", + "ceiling" + ], + "type": "enum" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:oak_button[face=wall,facing=north,powered=false]" + }, + "minecraft:oak_door": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + }, + "hinge": { + "values": [ + "left", + "right" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:oak_door[facing=north,half=lower,hinge=left,open=false,powered=false]" + }, + "minecraft:oak_fence": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:oak_fence[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:oak_fence_gate": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "in_wall": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:oak_fence_gate[facing=north,in_wall=false,open=false,powered=false]" + }, + "minecraft:oak_leaves": { + "properties": { + "distance": { + "values": [ + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ], + "type": "int" + }, + "persistent": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:oak_leaves[distance=7,persistent=false]" + }, + "minecraft:oak_log": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:oak_log[axis=y]" + }, + "minecraft:oak_planks": { + "properties": {}, + "defaultstate": "minecraft:oak_planks" + }, + "minecraft:oak_pressure_plate": { + "properties": { + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:oak_pressure_plate[powered=false]" + }, + "minecraft:oak_sapling": { + "properties": { + "stage": { + "values": [ + "0", + "1" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:oak_sapling[stage=0]" + }, + "minecraft:oak_sign": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:oak_sign[rotation=0,waterlogged=false]" + }, + "minecraft:oak_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:oak_slab[type=bottom,waterlogged=false]" + }, + "minecraft:oak_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:oak_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:oak_trapdoor": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:oak_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]" + }, + "minecraft:oak_wall_sign": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:oak_wall_sign[facing=north,waterlogged=false]" + }, + "minecraft:oak_wood": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:oak_wood[axis=y]" + }, + "minecraft:observer": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:observer[facing=south,powered=false]" + }, + "minecraft:obsidian": { + "properties": {}, + "defaultstate": "minecraft:obsidian" + }, + "minecraft:orange_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:orange_banner[rotation=0]" + }, + "minecraft:orange_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:orange_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:orange_carpet": { + "properties": {}, + "defaultstate": "minecraft:orange_carpet" + }, + "minecraft:orange_concrete": { + "properties": {}, + "defaultstate": "minecraft:orange_concrete" + }, + "minecraft:orange_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:orange_concrete_powder" + }, + "minecraft:orange_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:orange_glazed_terracotta[facing=north]" + }, + "minecraft:orange_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:orange_shulker_box[facing=up]" + }, + "minecraft:orange_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:orange_stained_glass" + }, + "minecraft:orange_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:orange_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:orange_terracotta": { + "properties": {}, + "defaultstate": "minecraft:orange_terracotta" + }, + "minecraft:orange_tulip": { + "properties": {}, + "defaultstate": "minecraft:orange_tulip" + }, + "minecraft:orange_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:orange_wall_banner[facing=north]" + }, + "minecraft:orange_wool": { + "properties": {}, + "defaultstate": "minecraft:orange_wool" + }, + "minecraft:oxeye_daisy": { + "properties": {}, + "defaultstate": "minecraft:oxeye_daisy" + }, + "minecraft:packed_ice": { + "properties": {}, + "defaultstate": "minecraft:packed_ice" + }, + "minecraft:peony": { + "properties": { + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:peony[half=lower]" + }, + "minecraft:petrified_oak_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:petrified_oak_slab[type=bottom,waterlogged=false]" + }, + "minecraft:pink_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:pink_banner[rotation=0]" + }, + "minecraft:pink_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:pink_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:pink_carpet": { + "properties": {}, + "defaultstate": "minecraft:pink_carpet" + }, + "minecraft:pink_concrete": { + "properties": {}, + "defaultstate": "minecraft:pink_concrete" + }, + "minecraft:pink_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:pink_concrete_powder" + }, + "minecraft:pink_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:pink_glazed_terracotta[facing=north]" + }, + "minecraft:pink_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:pink_shulker_box[facing=up]" + }, + "minecraft:pink_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:pink_stained_glass" + }, + "minecraft:pink_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:pink_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:pink_terracotta": { + "properties": {}, + "defaultstate": "minecraft:pink_terracotta" + }, + "minecraft:pink_tulip": { + "properties": {}, + "defaultstate": "minecraft:pink_tulip" + }, + "minecraft:pink_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:pink_wall_banner[facing=north]" + }, + "minecraft:pink_wool": { + "properties": {}, + "defaultstate": "minecraft:pink_wool" + }, + "minecraft:piston": { + "properties": { + "extended": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:piston[extended=false,facing=north]" + }, + "minecraft:piston_head": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + }, + "short": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "type": { + "values": [ + "normal", + "sticky" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:piston_head[facing=north,short=false,type=normal]" + }, + "minecraft:player_head": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:player_head[rotation=0]" + }, + "minecraft:player_wall_head": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:player_wall_head[facing=north]" + }, + "minecraft:podzol": { + "properties": { + "snowy": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:podzol[snowy=false]" + }, + "minecraft:polished_andesite": { + "properties": {}, + "defaultstate": "minecraft:polished_andesite" + }, + "minecraft:polished_andesite_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:polished_andesite_slab[type=bottom,waterlogged=false]" + }, + "minecraft:polished_andesite_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:polished_andesite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:polished_diorite": { + "properties": {}, + "defaultstate": "minecraft:polished_diorite" + }, + "minecraft:polished_diorite_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:polished_diorite_slab[type=bottom,waterlogged=false]" + }, + "minecraft:polished_diorite_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:polished_diorite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:polished_granite": { + "properties": {}, + "defaultstate": "minecraft:polished_granite" + }, + "minecraft:polished_granite_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:polished_granite_slab[type=bottom,waterlogged=false]" + }, + "minecraft:polished_granite_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:polished_granite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:poppy": { + "properties": {}, + "defaultstate": "minecraft:poppy" + }, + "minecraft:potatoes": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:potatoes[age=0]" + }, + "minecraft:potted_acacia_sapling": { + "properties": {}, + "defaultstate": "minecraft:potted_acacia_sapling" + }, + "minecraft:potted_allium": { + "properties": {}, + "defaultstate": "minecraft:potted_allium" + }, + "minecraft:potted_azure_bluet": { + "properties": {}, + "defaultstate": "minecraft:potted_azure_bluet" + }, + "minecraft:potted_bamboo": { + "properties": {}, + "defaultstate": "minecraft:potted_bamboo" + }, + "minecraft:potted_birch_sapling": { + "properties": {}, + "defaultstate": "minecraft:potted_birch_sapling" + }, + "minecraft:potted_blue_orchid": { + "properties": {}, + "defaultstate": "minecraft:potted_blue_orchid" + }, + "minecraft:potted_brown_mushroom": { + "properties": {}, + "defaultstate": "minecraft:potted_brown_mushroom" + }, + "minecraft:potted_cactus": { + "properties": {}, + "defaultstate": "minecraft:potted_cactus" + }, + "minecraft:potted_cornflower": { + "properties": {}, + "defaultstate": "minecraft:potted_cornflower" + }, + "minecraft:potted_dandelion": { + "properties": {}, + "defaultstate": "minecraft:potted_dandelion" + }, + "minecraft:potted_dark_oak_sapling": { + "properties": {}, + "defaultstate": "minecraft:potted_dark_oak_sapling" + }, + "minecraft:potted_dead_bush": { + "properties": {}, + "defaultstate": "minecraft:potted_dead_bush" + }, + "minecraft:potted_fern": { + "properties": {}, + "defaultstate": "minecraft:potted_fern" + }, + "minecraft:potted_jungle_sapling": { + "properties": {}, + "defaultstate": "minecraft:potted_jungle_sapling" + }, + "minecraft:potted_lily_of_the_valley": { + "properties": {}, + "defaultstate": "minecraft:potted_lily_of_the_valley" + }, + "minecraft:potted_oak_sapling": { + "properties": {}, + "defaultstate": "minecraft:potted_oak_sapling" + }, + "minecraft:potted_orange_tulip": { + "properties": {}, + "defaultstate": "minecraft:potted_orange_tulip" + }, + "minecraft:potted_oxeye_daisy": { + "properties": {}, + "defaultstate": "minecraft:potted_oxeye_daisy" + }, + "minecraft:potted_pink_tulip": { + "properties": {}, + "defaultstate": "minecraft:potted_pink_tulip" + }, + "minecraft:potted_poppy": { + "properties": {}, + "defaultstate": "minecraft:potted_poppy" + }, + "minecraft:potted_red_mushroom": { + "properties": {}, + "defaultstate": "minecraft:potted_red_mushroom" + }, + "minecraft:potted_red_tulip": { + "properties": {}, + "defaultstate": "minecraft:potted_red_tulip" + }, + "minecraft:potted_spruce_sapling": { + "properties": {}, + "defaultstate": "minecraft:potted_spruce_sapling" + }, + "minecraft:potted_white_tulip": { + "properties": {}, + "defaultstate": "minecraft:potted_white_tulip" + }, + "minecraft:potted_wither_rose": { + "properties": {}, + "defaultstate": "minecraft:potted_wither_rose" + }, + "minecraft:powered_rail": { + "properties": { + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "shape": { + "values": [ + "north_south", + "east_west", + "ascending_east", + "ascending_west", + "ascending_north", + "ascending_south" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:powered_rail[powered=false,shape=north_south]" + }, + "minecraft:prismarine": { + "properties": {}, + "defaultstate": "minecraft:prismarine" + }, + "minecraft:prismarine_brick_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:prismarine_brick_slab[type=bottom,waterlogged=false]" + }, + "minecraft:prismarine_brick_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:prismarine_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:prismarine_bricks": { + "properties": {}, + "defaultstate": "minecraft:prismarine_bricks" + }, + "minecraft:prismarine_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:prismarine_slab[type=bottom,waterlogged=false]" + }, + "minecraft:prismarine_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:prismarine_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:prismarine_wall": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:prismarine_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]" + }, + "minecraft:pumpkin": { + "properties": {}, + "defaultstate": "minecraft:pumpkin" + }, + "minecraft:pumpkin_stem": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:pumpkin_stem[age=0]" + }, + "minecraft:purple_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:purple_banner[rotation=0]" + }, + "minecraft:purple_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:purple_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:purple_carpet": { + "properties": {}, + "defaultstate": "minecraft:purple_carpet" + }, + "minecraft:purple_concrete": { + "properties": {}, + "defaultstate": "minecraft:purple_concrete" + }, + "minecraft:purple_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:purple_concrete_powder" + }, + "minecraft:purple_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:purple_glazed_terracotta[facing=north]" + }, + "minecraft:purple_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:purple_shulker_box[facing=up]" + }, + "minecraft:purple_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:purple_stained_glass" + }, + "minecraft:purple_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:purple_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:purple_terracotta": { + "properties": {}, + "defaultstate": "minecraft:purple_terracotta" + }, + "minecraft:purple_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:purple_wall_banner[facing=north]" + }, + "minecraft:purple_wool": { + "properties": {}, + "defaultstate": "minecraft:purple_wool" + }, + "minecraft:purpur_block": { + "properties": {}, + "defaultstate": "minecraft:purpur_block" + }, + "minecraft:purpur_pillar": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:purpur_pillar[axis=y]" + }, + "minecraft:purpur_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:purpur_slab[type=bottom,waterlogged=false]" + }, + "minecraft:purpur_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:purpur_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:quartz_block": { + "properties": {}, + "defaultstate": "minecraft:quartz_block" + }, + "minecraft:quartz_pillar": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:quartz_pillar[axis=y]" + }, + "minecraft:quartz_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:quartz_slab[type=bottom,waterlogged=false]" + }, + "minecraft:quartz_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:quartz_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:rail": { + "properties": { + "shape": { + "values": [ + "north_south", + "east_west", + "ascending_east", + "ascending_west", + "ascending_north", + "ascending_south", + "south_east", + "south_west", + "north_west", + "north_east" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:rail[shape=north_south]" + }, + "minecraft:red_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:red_banner[rotation=0]" + }, + "minecraft:red_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:red_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:red_carpet": { + "properties": {}, + "defaultstate": "minecraft:red_carpet" + }, + "minecraft:red_concrete": { + "properties": {}, + "defaultstate": "minecraft:red_concrete" + }, + "minecraft:red_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:red_concrete_powder" + }, + "minecraft:red_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:red_glazed_terracotta[facing=north]" + }, + "minecraft:red_mushroom": { + "properties": {}, + "defaultstate": "minecraft:red_mushroom" + }, + "minecraft:red_mushroom_block": { + "properties": { + "down": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:red_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true]" + }, + "minecraft:red_nether_brick_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:red_nether_brick_slab[type=bottom,waterlogged=false]" + }, + "minecraft:red_nether_brick_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:red_nether_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:red_nether_brick_wall": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:red_nether_brick_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]" + }, + "minecraft:red_nether_bricks": { + "properties": {}, + "defaultstate": "minecraft:red_nether_bricks" + }, + "minecraft:red_sand": { + "properties": {}, + "defaultstate": "minecraft:red_sand" + }, + "minecraft:red_sandstone": { + "properties": {}, + "defaultstate": "minecraft:red_sandstone" + }, + "minecraft:red_sandstone_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:red_sandstone_slab[type=bottom,waterlogged=false]" + }, + "minecraft:red_sandstone_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:red_sandstone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:red_sandstone_wall": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:red_sandstone_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]" + }, + "minecraft:red_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:red_shulker_box[facing=up]" + }, + "minecraft:red_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:red_stained_glass" + }, + "minecraft:red_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:red_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:red_terracotta": { + "properties": {}, + "defaultstate": "minecraft:red_terracotta" + }, + "minecraft:red_tulip": { + "properties": {}, + "defaultstate": "minecraft:red_tulip" + }, + "minecraft:red_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:red_wall_banner[facing=north]" + }, + "minecraft:red_wool": { + "properties": {}, + "defaultstate": "minecraft:red_wool" + }, + "minecraft:redstone_block": { + "properties": {}, + "defaultstate": "minecraft:redstone_block" + }, + "minecraft:redstone_lamp": { + "properties": { + "lit": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:redstone_lamp[lit=false]" + }, + "minecraft:redstone_ore": { + "properties": { + "lit": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:redstone_ore[lit=false]" + }, + "minecraft:redstone_torch": { + "properties": { + "lit": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:redstone_torch[lit=true]" + }, + "minecraft:redstone_wall_torch": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "lit": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:redstone_wall_torch[facing=north,lit=true]" + }, + "minecraft:redstone_wire": { + "properties": { + "east": { + "values": [ + "up", + "side", + "none" + ], + "type": "enum" + }, + "north": { + "values": [ + "up", + "side", + "none" + ], + "type": "enum" + }, + "power": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + }, + "south": { + "values": [ + "up", + "side", + "none" + ], + "type": "enum" + }, + "west": { + "values": [ + "up", + "side", + "none" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:redstone_wire[east=none,north=none,power=0,south=none,west=none]" + }, + "minecraft:repeater": { + "properties": { + "delay": { + "values": [ + "1", + "2", + "3", + "4" + ], + "type": "int" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "locked": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:repeater[delay=1,facing=north,locked=false,powered=false]" + }, + "minecraft:repeating_command_block": { + "properties": { + "conditional": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:repeating_command_block[conditional=false,facing=north]" + }, + "minecraft:rose_bush": { + "properties": { + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:rose_bush[half=lower]" + }, + "minecraft:sand": { + "properties": {}, + "defaultstate": "minecraft:sand" + }, + "minecraft:sandstone": { + "properties": {}, + "defaultstate": "minecraft:sandstone" + }, + "minecraft:sandstone_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:sandstone_slab[type=bottom,waterlogged=false]" + }, + "minecraft:sandstone_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:sandstone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:sandstone_wall": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:sandstone_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]" + }, + "minecraft:scaffolding": { + "properties": { + "bottom": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "distance": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ], + "type": "int" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:scaffolding[bottom=false,distance=7,waterlogged=false]" + }, + "minecraft:sea_lantern": { + "properties": {}, + "defaultstate": "minecraft:sea_lantern" + }, + "minecraft:sea_pickle": { + "properties": { + "pickles": { + "values": [ + "1", + "2", + "3", + "4" + ], + "type": "int" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:sea_pickle[pickles=1,waterlogged=true]" + }, + "minecraft:seagrass": { + "properties": {}, + "defaultstate": "minecraft:seagrass" + }, + "minecraft:shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:shulker_box[facing=up]" + }, + "minecraft:skeleton_skull": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:skeleton_skull[rotation=0]" + }, + "minecraft:skeleton_wall_skull": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:skeleton_wall_skull[facing=north]" + }, + "minecraft:slime_block": { + "properties": {}, + "defaultstate": "minecraft:slime_block" + }, + "minecraft:smithing_table": { + "properties": {}, + "defaultstate": "minecraft:smithing_table" + }, + "minecraft:smoker": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "lit": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:smoker[facing=north,lit=false]" + }, + "minecraft:smooth_quartz": { + "properties": {}, + "defaultstate": "minecraft:smooth_quartz" + }, + "minecraft:smooth_quartz_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:smooth_quartz_slab[type=bottom,waterlogged=false]" + }, + "minecraft:smooth_quartz_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:smooth_quartz_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:smooth_red_sandstone": { + "properties": {}, + "defaultstate": "minecraft:smooth_red_sandstone" + }, + "minecraft:smooth_red_sandstone_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:smooth_red_sandstone_slab[type=bottom,waterlogged=false]" + }, + "minecraft:smooth_red_sandstone_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:smooth_red_sandstone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:smooth_sandstone": { + "properties": {}, + "defaultstate": "minecraft:smooth_sandstone" + }, + "minecraft:smooth_sandstone_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:smooth_sandstone_slab[type=bottom,waterlogged=false]" + }, + "minecraft:smooth_sandstone_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:smooth_sandstone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:smooth_stone": { + "properties": {}, + "defaultstate": "minecraft:smooth_stone" + }, + "minecraft:smooth_stone_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:smooth_stone_slab[type=bottom,waterlogged=false]" + }, + "minecraft:snow": { + "properties": { + "layers": { + "values": [ + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:snow[layers=1]" + }, + "minecraft:snow_block": { + "properties": {}, + "defaultstate": "minecraft:snow_block" + }, + "minecraft:soul_sand": { + "properties": {}, + "defaultstate": "minecraft:soul_sand" + }, + "minecraft:spawner": { + "properties": {}, + "defaultstate": "minecraft:spawner" + }, + "minecraft:sponge": { + "properties": {}, + "defaultstate": "minecraft:sponge" + }, + "minecraft:spruce_button": { + "properties": { + "face": { + "values": [ + "floor", + "wall", + "ceiling" + ], + "type": "enum" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:spruce_button[face=wall,facing=north,powered=false]" + }, + "minecraft:spruce_door": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + }, + "hinge": { + "values": [ + "left", + "right" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:spruce_door[facing=north,half=lower,hinge=left,open=false,powered=false]" + }, + "minecraft:spruce_fence": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:spruce_fence[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:spruce_fence_gate": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "in_wall": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:spruce_fence_gate[facing=north,in_wall=false,open=false,powered=false]" + }, + "minecraft:spruce_leaves": { + "properties": { + "distance": { + "values": [ + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ], + "type": "int" + }, + "persistent": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:spruce_leaves[distance=7,persistent=false]" + }, + "minecraft:spruce_log": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:spruce_log[axis=y]" + }, + "minecraft:spruce_planks": { + "properties": {}, + "defaultstate": "minecraft:spruce_planks" + }, + "minecraft:spruce_pressure_plate": { + "properties": { + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:spruce_pressure_plate[powered=false]" + }, + "minecraft:spruce_sapling": { + "properties": { + "stage": { + "values": [ + "0", + "1" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:spruce_sapling[stage=0]" + }, + "minecraft:spruce_sign": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:spruce_sign[rotation=0,waterlogged=false]" + }, + "minecraft:spruce_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:spruce_slab[type=bottom,waterlogged=false]" + }, + "minecraft:spruce_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:spruce_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:spruce_trapdoor": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:spruce_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]" + }, + "minecraft:spruce_wall_sign": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:spruce_wall_sign[facing=north,waterlogged=false]" + }, + "minecraft:spruce_wood": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:spruce_wood[axis=y]" + }, + "minecraft:sticky_piston": { + "properties": { + "extended": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:sticky_piston[extended=false,facing=north]" + }, + "minecraft:stone": { + "properties": {}, + "defaultstate": "minecraft:stone" + }, + "minecraft:stone_brick_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:stone_brick_slab[type=bottom,waterlogged=false]" + }, + "minecraft:stone_brick_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:stone_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:stone_brick_wall": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:stone_brick_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]" + }, + "minecraft:stone_bricks": { + "properties": {}, + "defaultstate": "minecraft:stone_bricks" + }, + "minecraft:stone_button": { + "properties": { + "face": { + "values": [ + "floor", + "wall", + "ceiling" + ], + "type": "enum" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:stone_button[face=wall,facing=north,powered=false]" + }, + "minecraft:stone_pressure_plate": { + "properties": { + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:stone_pressure_plate[powered=false]" + }, + "minecraft:stone_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:stone_slab[type=bottom,waterlogged=false]" + }, + "minecraft:stone_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:stone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:stonecutter": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:stonecutter[facing=north]" + }, + "minecraft:stripped_acacia_log": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:stripped_acacia_log[axis=y]" + }, + "minecraft:stripped_acacia_wood": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:stripped_acacia_wood[axis=y]" + }, + "minecraft:stripped_birch_log": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:stripped_birch_log[axis=y]" + }, + "minecraft:stripped_birch_wood": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:stripped_birch_wood[axis=y]" + }, + "minecraft:stripped_dark_oak_log": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:stripped_dark_oak_log[axis=y]" + }, + "minecraft:stripped_dark_oak_wood": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:stripped_dark_oak_wood[axis=y]" + }, + "minecraft:stripped_jungle_log": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:stripped_jungle_log[axis=y]" + }, + "minecraft:stripped_jungle_wood": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:stripped_jungle_wood[axis=y]" + }, + "minecraft:stripped_oak_log": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:stripped_oak_log[axis=y]" + }, + "minecraft:stripped_oak_wood": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:stripped_oak_wood[axis=y]" + }, + "minecraft:stripped_spruce_log": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:stripped_spruce_log[axis=y]" + }, + "minecraft:stripped_spruce_wood": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:stripped_spruce_wood[axis=y]" + }, + "minecraft:structure_block": { + "properties": { + "mode": { + "values": [ + "save", + "load", + "corner", + "data" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:structure_block[mode=save]" + }, + "minecraft:structure_void": { + "properties": {}, + "defaultstate": "minecraft:structure_void" + }, + "minecraft:sugar_cane": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:sugar_cane[age=0]" + }, + "minecraft:sunflower": { + "properties": { + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:sunflower[half=lower]" + }, + "minecraft:sweet_berry_bush": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:sweet_berry_bush[age=0]" + }, + "minecraft:tall_grass": { + "properties": { + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:tall_grass[half=lower]" + }, + "minecraft:tall_seagrass": { + "properties": { + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:tall_seagrass[half=lower]" + }, + "minecraft:terracotta": { + "properties": {}, + "defaultstate": "minecraft:terracotta" + }, + "minecraft:tnt": { + "properties": { + "unstable": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:tnt[unstable=false]" + }, + "minecraft:torch": { + "properties": {}, + "defaultstate": "minecraft:torch" + }, + "minecraft:trapped_chest": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "type": { + "values": [ + "single", + "left", + "right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:trapped_chest[facing=north,type=single,waterlogged=false]" + }, + "minecraft:tripwire": { + "properties": { + "attached": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "disarmed": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:tripwire[attached=false,disarmed=false,east=false,north=false,powered=false,south=false,west=false]" + }, + "minecraft:tripwire_hook": { + "properties": { + "attached": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:tripwire_hook[attached=false,facing=north,powered=false]" + }, + "minecraft:tube_coral": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:tube_coral[waterlogged=true]" + }, + "minecraft:tube_coral_block": { + "properties": {}, + "defaultstate": "minecraft:tube_coral_block" + }, + "minecraft:tube_coral_fan": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:tube_coral_fan[waterlogged=true]" + }, + "minecraft:tube_coral_wall_fan": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:tube_coral_wall_fan[facing=north,waterlogged=true]" + }, + "minecraft:turtle_egg": { + "properties": { + "eggs": { + "values": [ + "1", + "2", + "3", + "4" + ], + "type": "int" + }, + "hatch": { + "values": [ + "0", + "1", + "2" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:turtle_egg[eggs=1,hatch=0]" + }, + "minecraft:vine": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:vine[east=false,north=false,south=false,up=false,west=false]" + }, + "minecraft:void_air": { + "properties": {}, + "defaultstate": "minecraft:void_air" + }, + "minecraft:wall_torch": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:wall_torch[facing=north]" + }, + "minecraft:water": { + "properties": { + "level": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:water[level=0]" + }, + "minecraft:wet_sponge": { + "properties": {}, + "defaultstate": "minecraft:wet_sponge" + }, + "minecraft:wheat": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:wheat[age=0]" + }, + "minecraft:white_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:white_banner[rotation=0]" + }, + "minecraft:white_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:white_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:white_carpet": { + "properties": {}, + "defaultstate": "minecraft:white_carpet" + }, + "minecraft:white_concrete": { + "properties": {}, + "defaultstate": "minecraft:white_concrete" + }, + "minecraft:white_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:white_concrete_powder" + }, + "minecraft:white_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:white_glazed_terracotta[facing=north]" + }, + "minecraft:white_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:white_shulker_box[facing=up]" + }, + "minecraft:white_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:white_stained_glass" + }, + "minecraft:white_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:white_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:white_terracotta": { + "properties": {}, + "defaultstate": "minecraft:white_terracotta" + }, + "minecraft:white_tulip": { + "properties": {}, + "defaultstate": "minecraft:white_tulip" + }, + "minecraft:white_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:white_wall_banner[facing=north]" + }, + "minecraft:white_wool": { + "properties": {}, + "defaultstate": "minecraft:white_wool" + }, + "minecraft:wither_rose": { + "properties": {}, + "defaultstate": "minecraft:wither_rose" + }, + "minecraft:wither_skeleton_skull": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:wither_skeleton_skull[rotation=0]" + }, + "minecraft:wither_skeleton_wall_skull": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:wither_skeleton_wall_skull[facing=north]" + }, + "minecraft:yellow_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:yellow_banner[rotation=0]" + }, + "minecraft:yellow_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:yellow_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:yellow_carpet": { + "properties": {}, + "defaultstate": "minecraft:yellow_carpet" + }, + "minecraft:yellow_concrete": { + "properties": {}, + "defaultstate": "minecraft:yellow_concrete" + }, + "minecraft:yellow_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:yellow_concrete_powder" + }, + "minecraft:yellow_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:yellow_glazed_terracotta[facing=north]" + }, + "minecraft:yellow_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:yellow_shulker_box[facing=up]" + }, + "minecraft:yellow_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:yellow_stained_glass" + }, + "minecraft:yellow_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:yellow_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:yellow_terracotta": { + "properties": {}, + "defaultstate": "minecraft:yellow_terracotta" + }, + "minecraft:yellow_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:yellow_wall_banner[facing=north]" + }, + "minecraft:yellow_wool": { + "properties": {}, + "defaultstate": "minecraft:yellow_wool" + }, + "minecraft:zombie_head": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:zombie_head[rotation=0]" + }, + "minecraft:zombie_wall_head": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:zombie_wall_head[facing=north]" + } + }, + "items": [ + "minecraft:acacia_boat", + "minecraft:acacia_button", + "minecraft:acacia_door", + "minecraft:acacia_fence", + "minecraft:acacia_fence_gate", + "minecraft:acacia_leaves", + "minecraft:acacia_log", + "minecraft:acacia_planks", + "minecraft:acacia_pressure_plate", + "minecraft:acacia_sapling", + "minecraft:acacia_sign", + "minecraft:acacia_slab", + "minecraft:acacia_stairs", + "minecraft:acacia_trapdoor", + "minecraft:acacia_wood", + "minecraft:activator_rail", + "minecraft:air", + "minecraft:allium", + "minecraft:andesite", + "minecraft:andesite_slab", + "minecraft:andesite_stairs", + "minecraft:andesite_wall", + "minecraft:anvil", + "minecraft:apple", + "minecraft:armor_stand", + "minecraft:arrow", + "minecraft:azure_bluet", + "minecraft:baked_potato", + "minecraft:bamboo", + "minecraft:barrel", + "minecraft:barrier", + "minecraft:bat_spawn_egg", + "minecraft:beacon", + "minecraft:bedrock", + "minecraft:beef", + "minecraft:beetroot", + "minecraft:beetroot_seeds", + "minecraft:beetroot_soup", + "minecraft:bell", + "minecraft:birch_boat", + "minecraft:birch_button", + "minecraft:birch_door", + "minecraft:birch_fence", + "minecraft:birch_fence_gate", + "minecraft:birch_leaves", + "minecraft:birch_log", + "minecraft:birch_planks", + "minecraft:birch_pressure_plate", + "minecraft:birch_sapling", + "minecraft:birch_sign", + "minecraft:birch_slab", + "minecraft:birch_stairs", + "minecraft:birch_trapdoor", + "minecraft:birch_wood", + "minecraft:black_banner", + "minecraft:black_bed", + "minecraft:black_carpet", + "minecraft:black_concrete", + "minecraft:black_concrete_powder", + "minecraft:black_dye", + "minecraft:black_glazed_terracotta", + "minecraft:black_shulker_box", + "minecraft:black_stained_glass", + "minecraft:black_stained_glass_pane", + "minecraft:black_terracotta", + "minecraft:black_wool", + "minecraft:blast_furnace", + "minecraft:blaze_powder", + "minecraft:blaze_rod", + "minecraft:blaze_spawn_egg", + "minecraft:blue_banner", + "minecraft:blue_bed", + "minecraft:blue_carpet", + "minecraft:blue_concrete", + "minecraft:blue_concrete_powder", + "minecraft:blue_dye", + "minecraft:blue_glazed_terracotta", + "minecraft:blue_ice", + "minecraft:blue_orchid", + "minecraft:blue_shulker_box", + "minecraft:blue_stained_glass", + "minecraft:blue_stained_glass_pane", + "minecraft:blue_terracotta", + "minecraft:blue_wool", + "minecraft:bone", + "minecraft:bone_block", + "minecraft:bone_meal", + "minecraft:book", + "minecraft:bookshelf", + "minecraft:bow", + "minecraft:bowl", + "minecraft:brain_coral", + "minecraft:brain_coral_block", + "minecraft:brain_coral_fan", + "minecraft:bread", + "minecraft:brewing_stand", + "minecraft:brick", + "minecraft:brick_slab", + "minecraft:brick_stairs", + "minecraft:brick_wall", + "minecraft:bricks", + "minecraft:brown_banner", + "minecraft:brown_bed", + "minecraft:brown_carpet", + "minecraft:brown_concrete", + "minecraft:brown_concrete_powder", + "minecraft:brown_dye", + "minecraft:brown_glazed_terracotta", + "minecraft:brown_mushroom", + "minecraft:brown_mushroom_block", + "minecraft:brown_shulker_box", + "minecraft:brown_stained_glass", + "minecraft:brown_stained_glass_pane", + "minecraft:brown_terracotta", + "minecraft:brown_wool", + "minecraft:bubble_coral", + "minecraft:bubble_coral_block", + "minecraft:bubble_coral_fan", + "minecraft:bucket", + "minecraft:cactus", + "minecraft:cake", + "minecraft:campfire", + "minecraft:carrot", + "minecraft:carrot_on_a_stick", + "minecraft:cartography_table", + "minecraft:carved_pumpkin", + "minecraft:cat_spawn_egg", + "minecraft:cauldron", + "minecraft:cave_spider_spawn_egg", + "minecraft:chain_command_block", + "minecraft:chainmail_boots", + "minecraft:chainmail_chestplate", + "minecraft:chainmail_helmet", + "minecraft:chainmail_leggings", + "minecraft:charcoal", + "minecraft:chest", + "minecraft:chest_minecart", + "minecraft:chicken", + "minecraft:chicken_spawn_egg", + "minecraft:chipped_anvil", + "minecraft:chiseled_quartz_block", + "minecraft:chiseled_red_sandstone", + "minecraft:chiseled_sandstone", + "minecraft:chiseled_stone_bricks", + "minecraft:chorus_flower", + "minecraft:chorus_fruit", + "minecraft:chorus_plant", + "minecraft:clay", + "minecraft:clay_ball", + "minecraft:clock", + "minecraft:coal", + "minecraft:coal_block", + "minecraft:coal_ore", + "minecraft:coarse_dirt", + "minecraft:cobblestone", + "minecraft:cobblestone_slab", + "minecraft:cobblestone_stairs", + "minecraft:cobblestone_wall", + "minecraft:cobweb", + "minecraft:cocoa_beans", + "minecraft:cod", + "minecraft:cod_bucket", + "minecraft:cod_spawn_egg", + "minecraft:command_block", + "minecraft:command_block_minecart", + "minecraft:comparator", + "minecraft:compass", + "minecraft:composter", + "minecraft:conduit", + "minecraft:cooked_beef", + "minecraft:cooked_chicken", + "minecraft:cooked_cod", + "minecraft:cooked_mutton", + "minecraft:cooked_porkchop", + "minecraft:cooked_rabbit", + "minecraft:cooked_salmon", + "minecraft:cookie", + "minecraft:cornflower", + "minecraft:cow_spawn_egg", + "minecraft:cracked_stone_bricks", + "minecraft:crafting_table", + "minecraft:creeper_banner_pattern", + "minecraft:creeper_head", + "minecraft:creeper_spawn_egg", + "minecraft:crossbow", + "minecraft:cut_red_sandstone", + "minecraft:cut_red_sandstone_slab", + "minecraft:cut_sandstone", + "minecraft:cut_sandstone_slab", + "minecraft:cyan_banner", + "minecraft:cyan_bed", + "minecraft:cyan_carpet", + "minecraft:cyan_concrete", + "minecraft:cyan_concrete_powder", + "minecraft:cyan_dye", + "minecraft:cyan_glazed_terracotta", + "minecraft:cyan_shulker_box", + "minecraft:cyan_stained_glass", + "minecraft:cyan_stained_glass_pane", + "minecraft:cyan_terracotta", + "minecraft:cyan_wool", + "minecraft:damaged_anvil", + "minecraft:dandelion", + "minecraft:dark_oak_boat", + "minecraft:dark_oak_button", + "minecraft:dark_oak_door", + "minecraft:dark_oak_fence", + "minecraft:dark_oak_fence_gate", + "minecraft:dark_oak_leaves", + "minecraft:dark_oak_log", + "minecraft:dark_oak_planks", + "minecraft:dark_oak_pressure_plate", + "minecraft:dark_oak_sapling", + "minecraft:dark_oak_sign", + "minecraft:dark_oak_slab", + "minecraft:dark_oak_stairs", + "minecraft:dark_oak_trapdoor", + "minecraft:dark_oak_wood", + "minecraft:dark_prismarine", + "minecraft:dark_prismarine_slab", + "minecraft:dark_prismarine_stairs", + "minecraft:daylight_detector", + "minecraft:dead_brain_coral", + "minecraft:dead_brain_coral_block", + "minecraft:dead_brain_coral_fan", + "minecraft:dead_bubble_coral", + "minecraft:dead_bubble_coral_block", + "minecraft:dead_bubble_coral_fan", + "minecraft:dead_bush", + "minecraft:dead_fire_coral", + "minecraft:dead_fire_coral_block", + "minecraft:dead_fire_coral_fan", + "minecraft:dead_horn_coral", + "minecraft:dead_horn_coral_block", + "minecraft:dead_horn_coral_fan", + "minecraft:dead_tube_coral", + "minecraft:dead_tube_coral_block", + "minecraft:dead_tube_coral_fan", + "minecraft:debug_stick", + "minecraft:detector_rail", + "minecraft:diamond", + "minecraft:diamond_axe", + "minecraft:diamond_block", + "minecraft:diamond_boots", + "minecraft:diamond_chestplate", + "minecraft:diamond_helmet", + "minecraft:diamond_hoe", + "minecraft:diamond_horse_armor", + "minecraft:diamond_leggings", + "minecraft:diamond_ore", + "minecraft:diamond_pickaxe", + "minecraft:diamond_shovel", + "minecraft:diamond_sword", + "minecraft:diorite", + "minecraft:diorite_slab", + "minecraft:diorite_stairs", + "minecraft:diorite_wall", + "minecraft:dirt", + "minecraft:dispenser", + "minecraft:dolphin_spawn_egg", + "minecraft:donkey_spawn_egg", + "minecraft:dragon_breath", + "minecraft:dragon_egg", + "minecraft:dragon_head", + "minecraft:dried_kelp", + "minecraft:dried_kelp_block", + "minecraft:dropper", + "minecraft:drowned_spawn_egg", + "minecraft:egg", + "minecraft:elder_guardian_spawn_egg", + "minecraft:elytra", + "minecraft:emerald", + "minecraft:emerald_block", + "minecraft:emerald_ore", + "minecraft:enchanted_book", + "minecraft:enchanted_golden_apple", + "minecraft:enchanting_table", + "minecraft:end_crystal", + "minecraft:end_portal_frame", + "minecraft:end_rod", + "minecraft:end_stone", + "minecraft:end_stone_brick_slab", + "minecraft:end_stone_brick_stairs", + "minecraft:end_stone_brick_wall", + "minecraft:end_stone_bricks", + "minecraft:ender_chest", + "minecraft:ender_eye", + "minecraft:ender_pearl", + "minecraft:enderman_spawn_egg", + "minecraft:endermite_spawn_egg", + "minecraft:evoker_spawn_egg", + "minecraft:experience_bottle", + "minecraft:farmland", + "minecraft:feather", + "minecraft:fermented_spider_eye", + "minecraft:fern", + "minecraft:filled_map", + "minecraft:fire_charge", + "minecraft:fire_coral", + "minecraft:fire_coral_block", + "minecraft:fire_coral_fan", + "minecraft:firework_rocket", + "minecraft:firework_star", + "minecraft:fishing_rod", + "minecraft:fletching_table", + "minecraft:flint", + "minecraft:flint_and_steel", + "minecraft:flower_banner_pattern", + "minecraft:flower_pot", + "minecraft:fox_spawn_egg", + "minecraft:furnace", + "minecraft:furnace_minecart", + "minecraft:ghast_spawn_egg", + "minecraft:ghast_tear", + "minecraft:glass", + "minecraft:glass_bottle", + "minecraft:glass_pane", + "minecraft:glistering_melon_slice", + "minecraft:globe_banner_pattern", + "minecraft:glowstone", + "minecraft:glowstone_dust", + "minecraft:gold_block", + "minecraft:gold_ingot", + "minecraft:gold_nugget", + "minecraft:gold_ore", + "minecraft:golden_apple", + "minecraft:golden_axe", + "minecraft:golden_boots", + "minecraft:golden_carrot", + "minecraft:golden_chestplate", + "minecraft:golden_helmet", + "minecraft:golden_hoe", + "minecraft:golden_horse_armor", + "minecraft:golden_leggings", + "minecraft:golden_pickaxe", + "minecraft:golden_shovel", + "minecraft:golden_sword", + "minecraft:granite", + "minecraft:granite_slab", + "minecraft:granite_stairs", + "minecraft:granite_wall", + "minecraft:grass", + "minecraft:grass_block", + "minecraft:grass_path", + "minecraft:gravel", + "minecraft:gray_banner", + "minecraft:gray_bed", + "minecraft:gray_carpet", + "minecraft:gray_concrete", + "minecraft:gray_concrete_powder", + "minecraft:gray_dye", + "minecraft:gray_glazed_terracotta", + "minecraft:gray_shulker_box", + "minecraft:gray_stained_glass", + "minecraft:gray_stained_glass_pane", + "minecraft:gray_terracotta", + "minecraft:gray_wool", + "minecraft:green_banner", + "minecraft:green_bed", + "minecraft:green_carpet", + "minecraft:green_concrete", + "minecraft:green_concrete_powder", + "minecraft:green_dye", + "minecraft:green_glazed_terracotta", + "minecraft:green_shulker_box", + "minecraft:green_stained_glass", + "minecraft:green_stained_glass_pane", + "minecraft:green_terracotta", + "minecraft:green_wool", + "minecraft:grindstone", + "minecraft:guardian_spawn_egg", + "minecraft:gunpowder", + "minecraft:hay_block", + "minecraft:heart_of_the_sea", + "minecraft:heavy_weighted_pressure_plate", + "minecraft:hopper", + "minecraft:hopper_minecart", + "minecraft:horn_coral", + "minecraft:horn_coral_block", + "minecraft:horn_coral_fan", + "minecraft:horse_spawn_egg", + "minecraft:husk_spawn_egg", + "minecraft:ice", + "minecraft:infested_chiseled_stone_bricks", + "minecraft:infested_cobblestone", + "minecraft:infested_cracked_stone_bricks", + "minecraft:infested_mossy_stone_bricks", + "minecraft:infested_stone", + "minecraft:infested_stone_bricks", + "minecraft:ink_sac", + "minecraft:iron_axe", + "minecraft:iron_bars", + "minecraft:iron_block", + "minecraft:iron_boots", + "minecraft:iron_chestplate", + "minecraft:iron_door", + "minecraft:iron_helmet", + "minecraft:iron_hoe", + "minecraft:iron_horse_armor", + "minecraft:iron_ingot", + "minecraft:iron_leggings", + "minecraft:iron_nugget", + "minecraft:iron_ore", + "minecraft:iron_pickaxe", + "minecraft:iron_shovel", + "minecraft:iron_sword", + "minecraft:iron_trapdoor", + "minecraft:item_frame", + "minecraft:jack_o_lantern", + "minecraft:jigsaw", + "minecraft:jukebox", + "minecraft:jungle_boat", + "minecraft:jungle_button", + "minecraft:jungle_door", + "minecraft:jungle_fence", + "minecraft:jungle_fence_gate", + "minecraft:jungle_leaves", + "minecraft:jungle_log", + "minecraft:jungle_planks", + "minecraft:jungle_pressure_plate", + "minecraft:jungle_sapling", + "minecraft:jungle_sign", + "minecraft:jungle_slab", + "minecraft:jungle_stairs", + "minecraft:jungle_trapdoor", + "minecraft:jungle_wood", + "minecraft:kelp", + "minecraft:knowledge_book", + "minecraft:ladder", + "minecraft:lantern", + "minecraft:lapis_block", + "minecraft:lapis_lazuli", + "minecraft:lapis_ore", + "minecraft:large_fern", + "minecraft:lava_bucket", + "minecraft:lead", + "minecraft:leather", + "minecraft:leather_boots", + "minecraft:leather_chestplate", + "minecraft:leather_helmet", + "minecraft:leather_horse_armor", + "minecraft:leather_leggings", + "minecraft:lectern", + "minecraft:lever", + "minecraft:light_blue_banner", + "minecraft:light_blue_bed", + "minecraft:light_blue_carpet", + "minecraft:light_blue_concrete", + "minecraft:light_blue_concrete_powder", + "minecraft:light_blue_dye", + "minecraft:light_blue_glazed_terracotta", + "minecraft:light_blue_shulker_box", + "minecraft:light_blue_stained_glass", + "minecraft:light_blue_stained_glass_pane", + "minecraft:light_blue_terracotta", + "minecraft:light_blue_wool", + "minecraft:light_gray_banner", + "minecraft:light_gray_bed", + "minecraft:light_gray_carpet", + "minecraft:light_gray_concrete", + "minecraft:light_gray_concrete_powder", + "minecraft:light_gray_dye", + "minecraft:light_gray_glazed_terracotta", + "minecraft:light_gray_shulker_box", + "minecraft:light_gray_stained_glass", + "minecraft:light_gray_stained_glass_pane", + "minecraft:light_gray_terracotta", + "minecraft:light_gray_wool", + "minecraft:light_weighted_pressure_plate", + "minecraft:lilac", + "minecraft:lily_of_the_valley", + "minecraft:lily_pad", + "minecraft:lime_banner", + "minecraft:lime_bed", + "minecraft:lime_carpet", + "minecraft:lime_concrete", + "minecraft:lime_concrete_powder", + "minecraft:lime_dye", + "minecraft:lime_glazed_terracotta", + "minecraft:lime_shulker_box", + "minecraft:lime_stained_glass", + "minecraft:lime_stained_glass_pane", + "minecraft:lime_terracotta", + "minecraft:lime_wool", + "minecraft:lingering_potion", + "minecraft:llama_spawn_egg", + "minecraft:loom", + "minecraft:magenta_banner", + "minecraft:magenta_bed", + "minecraft:magenta_carpet", + "minecraft:magenta_concrete", + "minecraft:magenta_concrete_powder", + "minecraft:magenta_dye", + "minecraft:magenta_glazed_terracotta", + "minecraft:magenta_shulker_box", + "minecraft:magenta_stained_glass", + "minecraft:magenta_stained_glass_pane", + "minecraft:magenta_terracotta", + "minecraft:magenta_wool", + "minecraft:magma_block", + "minecraft:magma_cream", + "minecraft:magma_cube_spawn_egg", + "minecraft:map", + "minecraft:melon", + "minecraft:melon_seeds", + "minecraft:melon_slice", + "minecraft:milk_bucket", + "minecraft:minecart", + "minecraft:mojang_banner_pattern", + "minecraft:mooshroom_spawn_egg", + "minecraft:mossy_cobblestone", + "minecraft:mossy_cobblestone_slab", + "minecraft:mossy_cobblestone_stairs", + "minecraft:mossy_cobblestone_wall", + "minecraft:mossy_stone_brick_slab", + "minecraft:mossy_stone_brick_stairs", + "minecraft:mossy_stone_brick_wall", + "minecraft:mossy_stone_bricks", + "minecraft:mule_spawn_egg", + "minecraft:mushroom_stem", + "minecraft:mushroom_stew", + "minecraft:music_disc_11", + "minecraft:music_disc_13", + "minecraft:music_disc_blocks", + "minecraft:music_disc_cat", + "minecraft:music_disc_chirp", + "minecraft:music_disc_far", + "minecraft:music_disc_mall", + "minecraft:music_disc_mellohi", + "minecraft:music_disc_stal", + "minecraft:music_disc_strad", + "minecraft:music_disc_wait", + "minecraft:music_disc_ward", + "minecraft:mutton", + "minecraft:mycelium", + "minecraft:name_tag", + "minecraft:nautilus_shell", + "minecraft:nether_brick", + "minecraft:nether_brick_fence", + "minecraft:nether_brick_slab", + "minecraft:nether_brick_stairs", + "minecraft:nether_brick_wall", + "minecraft:nether_bricks", + "minecraft:nether_quartz_ore", + "minecraft:nether_star", + "minecraft:nether_wart", + "minecraft:nether_wart_block", + "minecraft:netherrack", + "minecraft:note_block", + "minecraft:oak_boat", + "minecraft:oak_button", + "minecraft:oak_door", + "minecraft:oak_fence", + "minecraft:oak_fence_gate", + "minecraft:oak_leaves", + "minecraft:oak_log", + "minecraft:oak_planks", + "minecraft:oak_pressure_plate", + "minecraft:oak_sapling", + "minecraft:oak_sign", + "minecraft:oak_slab", + "minecraft:oak_stairs", + "minecraft:oak_trapdoor", + "minecraft:oak_wood", + "minecraft:observer", + "minecraft:obsidian", + "minecraft:ocelot_spawn_egg", + "minecraft:orange_banner", + "minecraft:orange_bed", + "minecraft:orange_carpet", + "minecraft:orange_concrete", + "minecraft:orange_concrete_powder", + "minecraft:orange_dye", + "minecraft:orange_glazed_terracotta", + "minecraft:orange_shulker_box", + "minecraft:orange_stained_glass", + "minecraft:orange_stained_glass_pane", + "minecraft:orange_terracotta", + "minecraft:orange_tulip", + "minecraft:orange_wool", + "minecraft:oxeye_daisy", + "minecraft:packed_ice", + "minecraft:painting", + "minecraft:panda_spawn_egg", + "minecraft:paper", + "minecraft:parrot_spawn_egg", + "minecraft:peony", + "minecraft:petrified_oak_slab", + "minecraft:phantom_membrane", + "minecraft:phantom_spawn_egg", + "minecraft:pig_spawn_egg", + "minecraft:pillager_spawn_egg", + "minecraft:pink_banner", + "minecraft:pink_bed", + "minecraft:pink_carpet", + "minecraft:pink_concrete", + "minecraft:pink_concrete_powder", + "minecraft:pink_dye", + "minecraft:pink_glazed_terracotta", + "minecraft:pink_shulker_box", + "minecraft:pink_stained_glass", + "minecraft:pink_stained_glass_pane", + "minecraft:pink_terracotta", + "minecraft:pink_tulip", + "minecraft:pink_wool", + "minecraft:piston", + "minecraft:player_head", + "minecraft:podzol", + "minecraft:poisonous_potato", + "minecraft:polar_bear_spawn_egg", + "minecraft:polished_andesite", + "minecraft:polished_andesite_slab", + "minecraft:polished_andesite_stairs", + "minecraft:polished_diorite", + "minecraft:polished_diorite_slab", + "minecraft:polished_diorite_stairs", + "minecraft:polished_granite", + "minecraft:polished_granite_slab", + "minecraft:polished_granite_stairs", + "minecraft:popped_chorus_fruit", + "minecraft:poppy", + "minecraft:porkchop", + "minecraft:potato", + "minecraft:potion", + "minecraft:powered_rail", + "minecraft:prismarine", + "minecraft:prismarine_brick_slab", + "minecraft:prismarine_brick_stairs", + "minecraft:prismarine_bricks", + "minecraft:prismarine_crystals", + "minecraft:prismarine_shard", + "minecraft:prismarine_slab", + "minecraft:prismarine_stairs", + "minecraft:prismarine_wall", + "minecraft:pufferfish", + "minecraft:pufferfish_bucket", + "minecraft:pufferfish_spawn_egg", + "minecraft:pumpkin", + "minecraft:pumpkin_pie", + "minecraft:pumpkin_seeds", + "minecraft:purple_banner", + "minecraft:purple_bed", + "minecraft:purple_carpet", + "minecraft:purple_concrete", + "minecraft:purple_concrete_powder", + "minecraft:purple_dye", + "minecraft:purple_glazed_terracotta", + "minecraft:purple_shulker_box", + "minecraft:purple_stained_glass", + "minecraft:purple_stained_glass_pane", + "minecraft:purple_terracotta", + "minecraft:purple_wool", + "minecraft:purpur_block", + "minecraft:purpur_pillar", + "minecraft:purpur_slab", + "minecraft:purpur_stairs", + "minecraft:quartz", + "minecraft:quartz_block", + "minecraft:quartz_pillar", + "minecraft:quartz_slab", + "minecraft:quartz_stairs", + "minecraft:rabbit", + "minecraft:rabbit_foot", + "minecraft:rabbit_hide", + "minecraft:rabbit_spawn_egg", + "minecraft:rabbit_stew", + "minecraft:rail", + "minecraft:ravager_spawn_egg", + "minecraft:red_banner", + "minecraft:red_bed", + "minecraft:red_carpet", + "minecraft:red_concrete", + "minecraft:red_concrete_powder", + "minecraft:red_dye", + "minecraft:red_glazed_terracotta", + "minecraft:red_mushroom", + "minecraft:red_mushroom_block", + "minecraft:red_nether_brick_slab", + "minecraft:red_nether_brick_stairs", + "minecraft:red_nether_brick_wall", + "minecraft:red_nether_bricks", + "minecraft:red_sand", + "minecraft:red_sandstone", + "minecraft:red_sandstone_slab", + "minecraft:red_sandstone_stairs", + "minecraft:red_sandstone_wall", + "minecraft:red_shulker_box", + "minecraft:red_stained_glass", + "minecraft:red_stained_glass_pane", + "minecraft:red_terracotta", + "minecraft:red_tulip", + "minecraft:red_wool", + "minecraft:redstone", + "minecraft:redstone_block", + "minecraft:redstone_lamp", + "minecraft:redstone_ore", + "minecraft:redstone_torch", + "minecraft:repeater", + "minecraft:repeating_command_block", + "minecraft:rose_bush", + "minecraft:rotten_flesh", + "minecraft:saddle", + "minecraft:salmon", + "minecraft:salmon_bucket", + "minecraft:salmon_spawn_egg", + "minecraft:sand", + "minecraft:sandstone", + "minecraft:sandstone_slab", + "minecraft:sandstone_stairs", + "minecraft:sandstone_wall", + "minecraft:scaffolding", + "minecraft:scute", + "minecraft:sea_lantern", + "minecraft:sea_pickle", + "minecraft:seagrass", + "minecraft:shears", + "minecraft:sheep_spawn_egg", + "minecraft:shield", + "minecraft:shulker_box", + "minecraft:shulker_shell", + "minecraft:shulker_spawn_egg", + "minecraft:silverfish_spawn_egg", + "minecraft:skeleton_horse_spawn_egg", + "minecraft:skeleton_skull", + "minecraft:skeleton_spawn_egg", + "minecraft:skull_banner_pattern", + "minecraft:slime_ball", + "minecraft:slime_block", + "minecraft:slime_spawn_egg", + "minecraft:smithing_table", + "minecraft:smoker", + "minecraft:smooth_quartz", + "minecraft:smooth_quartz_slab", + "minecraft:smooth_quartz_stairs", + "minecraft:smooth_red_sandstone", + "minecraft:smooth_red_sandstone_slab", + "minecraft:smooth_red_sandstone_stairs", + "minecraft:smooth_sandstone", + "minecraft:smooth_sandstone_slab", + "minecraft:smooth_sandstone_stairs", + "minecraft:smooth_stone", + "minecraft:smooth_stone_slab", + "minecraft:snow", + "minecraft:snow_block", + "minecraft:snowball", + "minecraft:soul_sand", + "minecraft:spawner", + "minecraft:spectral_arrow", + "minecraft:spider_eye", + "minecraft:spider_spawn_egg", + "minecraft:splash_potion", + "minecraft:sponge", + "minecraft:spruce_boat", + "minecraft:spruce_button", + "minecraft:spruce_door", + "minecraft:spruce_fence", + "minecraft:spruce_fence_gate", + "minecraft:spruce_leaves", + "minecraft:spruce_log", + "minecraft:spruce_planks", + "minecraft:spruce_pressure_plate", + "minecraft:spruce_sapling", + "minecraft:spruce_sign", + "minecraft:spruce_slab", + "minecraft:spruce_stairs", + "minecraft:spruce_trapdoor", + "minecraft:spruce_wood", + "minecraft:squid_spawn_egg", + "minecraft:stick", + "minecraft:sticky_piston", + "minecraft:stone", + "minecraft:stone_axe", + "minecraft:stone_brick_slab", + "minecraft:stone_brick_stairs", + "minecraft:stone_brick_wall", + "minecraft:stone_bricks", + "minecraft:stone_button", + "minecraft:stone_hoe", + "minecraft:stone_pickaxe", + "minecraft:stone_pressure_plate", + "minecraft:stone_shovel", + "minecraft:stone_slab", + "minecraft:stone_stairs", + "minecraft:stone_sword", + "minecraft:stonecutter", + "minecraft:stray_spawn_egg", + "minecraft:string", + "minecraft:stripped_acacia_log", + "minecraft:stripped_acacia_wood", + "minecraft:stripped_birch_log", + "minecraft:stripped_birch_wood", + "minecraft:stripped_dark_oak_log", + "minecraft:stripped_dark_oak_wood", + "minecraft:stripped_jungle_log", + "minecraft:stripped_jungle_wood", + "minecraft:stripped_oak_log", + "minecraft:stripped_oak_wood", + "minecraft:stripped_spruce_log", + "minecraft:stripped_spruce_wood", + "minecraft:structure_block", + "minecraft:structure_void", + "minecraft:sugar", + "minecraft:sugar_cane", + "minecraft:sunflower", + "minecraft:suspicious_stew", + "minecraft:sweet_berries", + "minecraft:tall_grass", + "minecraft:terracotta", + "minecraft:tipped_arrow", + "minecraft:tnt", + "minecraft:tnt_minecart", + "minecraft:torch", + "minecraft:totem_of_undying", + "minecraft:trader_llama_spawn_egg", + "minecraft:trapped_chest", + "minecraft:trident", + "minecraft:tripwire_hook", + "minecraft:tropical_fish", + "minecraft:tropical_fish_bucket", + "minecraft:tropical_fish_spawn_egg", + "minecraft:tube_coral", + "minecraft:tube_coral_block", + "minecraft:tube_coral_fan", + "minecraft:turtle_egg", + "minecraft:turtle_helmet", + "minecraft:turtle_spawn_egg", + "minecraft:vex_spawn_egg", + "minecraft:villager_spawn_egg", + "minecraft:vindicator_spawn_egg", + "minecraft:vine", + "minecraft:wandering_trader_spawn_egg", + "minecraft:water_bucket", + "minecraft:wet_sponge", + "minecraft:wheat", + "minecraft:wheat_seeds", + "minecraft:white_banner", + "minecraft:white_bed", + "minecraft:white_carpet", + "minecraft:white_concrete", + "minecraft:white_concrete_powder", + "minecraft:white_dye", + "minecraft:white_glazed_terracotta", + "minecraft:white_shulker_box", + "minecraft:white_stained_glass", + "minecraft:white_stained_glass_pane", + "minecraft:white_terracotta", + "minecraft:white_tulip", + "minecraft:white_wool", + "minecraft:witch_spawn_egg", + "minecraft:wither_rose", + "minecraft:wither_skeleton_skull", + "minecraft:wither_skeleton_spawn_egg", + "minecraft:wolf_spawn_egg", + "minecraft:wooden_axe", + "minecraft:wooden_hoe", + "minecraft:wooden_pickaxe", + "minecraft:wooden_shovel", + "minecraft:wooden_sword", + "minecraft:writable_book", + "minecraft:written_book", + "minecraft:yellow_banner", + "minecraft:yellow_bed", + "minecraft:yellow_carpet", + "minecraft:yellow_concrete", + "minecraft:yellow_concrete_powder", + "minecraft:yellow_dye", + "minecraft:yellow_glazed_terracotta", + "minecraft:yellow_shulker_box", + "minecraft:yellow_stained_glass", + "minecraft:yellow_stained_glass_pane", + "minecraft:yellow_terracotta", + "minecraft:yellow_wool", + "minecraft:zombie_head", + "minecraft:zombie_horse_spawn_egg", + "minecraft:zombie_pigman_spawn_egg", + "minecraft:zombie_spawn_egg", + "minecraft:zombie_villager_spawn_egg" + ], + "entities": [ + "minecraft:area_effect_cloud", + "minecraft:armor_stand", + "minecraft:arrow", + "minecraft:bat", + "minecraft:blaze", + "minecraft:boat", + "minecraft:cat", + "minecraft:cave_spider", + "minecraft:chest_minecart", + "minecraft:chicken", + "minecraft:cod", + "minecraft:command_block_minecart", + "minecraft:cow", + "minecraft:creeper", + "minecraft:dolphin", + "minecraft:donkey", + "minecraft:dragon_fireball", + "minecraft:drowned", + "minecraft:egg", + "minecraft:elder_guardian", + "minecraft:end_crystal", + "minecraft:ender_dragon", + "minecraft:ender_pearl", + "minecraft:enderman", + "minecraft:endermite", + "minecraft:evoker", + "minecraft:evoker_fangs", + "minecraft:experience_bottle", + "minecraft:experience_orb", + "minecraft:eye_of_ender", + "minecraft:falling_block", + "minecraft:fireball", + "minecraft:firework_rocket", + "minecraft:fishing_bobber", + "minecraft:fox", + "minecraft:furnace_minecart", + "minecraft:ghast", + "minecraft:giant", + "minecraft:guardian", + "minecraft:hopper_minecart", + "minecraft:horse", + "minecraft:husk", + "minecraft:illusioner", + "minecraft:iron_golem", + "minecraft:item", + "minecraft:item_frame", + "minecraft:leash_knot", + "minecraft:lightning_bolt", + "minecraft:llama", + "minecraft:llama_spit", + "minecraft:magma_cube", + "minecraft:minecart", + "minecraft:mooshroom", + "minecraft:mule", + "minecraft:ocelot", + "minecraft:painting", + "minecraft:panda", + "minecraft:parrot", + "minecraft:phantom", + "minecraft:pig", + "minecraft:pillager", + "minecraft:player", + "minecraft:polar_bear", + "minecraft:potion", + "minecraft:pufferfish", + "minecraft:rabbit", + "minecraft:ravager", + "minecraft:salmon", + "minecraft:sheep", + "minecraft:shulker", + "minecraft:shulker_bullet", + "minecraft:silverfish", + "minecraft:skeleton", + "minecraft:skeleton_horse", + "minecraft:slime", + "minecraft:small_fireball", + "minecraft:snow_golem", + "minecraft:snowball", + "minecraft:spawner_minecart", + "minecraft:spectral_arrow", + "minecraft:spider", + "minecraft:squid", + "minecraft:stray", + "minecraft:tnt", + "minecraft:tnt_minecart", + "minecraft:trader_llama", + "minecraft:trident", + "minecraft:tropical_fish", + "minecraft:turtle", + "minecraft:vex", + "minecraft:villager", + "minecraft:vindicator", + "minecraft:wandering_trader", + "minecraft:witch", + "minecraft:wither", + "minecraft:wither_skeleton", + "minecraft:wither_skull", + "minecraft:wolf", + "minecraft:zombie", + "minecraft:zombie_horse", + "minecraft:zombie_pigman", + "minecraft:zombie_villager" + ], + "biomes": [ + "minecraft:badlands", + "minecraft:badlands_plateau", + "minecraft:bamboo_jungle", + "minecraft:bamboo_jungle_hills", + "minecraft:beach", + "minecraft:birch_forest", + "minecraft:birch_forest_hills", + "minecraft:cold_ocean", + "minecraft:dark_forest", + "minecraft:dark_forest_hills", + "minecraft:deep_cold_ocean", + "minecraft:deep_frozen_ocean", + "minecraft:deep_lukewarm_ocean", + "minecraft:deep_ocean", + "minecraft:deep_warm_ocean", + "minecraft:desert", + "minecraft:desert_hills", + "minecraft:desert_lakes", + "minecraft:end_barrens", + "minecraft:end_highlands", + "minecraft:end_midlands", + "minecraft:eroded_badlands", + "minecraft:flower_forest", + "minecraft:forest", + "minecraft:frozen_ocean", + "minecraft:frozen_river", + "minecraft:giant_spruce_taiga", + "minecraft:giant_spruce_taiga_hills", + "minecraft:giant_tree_taiga", + "minecraft:giant_tree_taiga_hills", + "minecraft:gravelly_mountains", + "minecraft:ice_spikes", + "minecraft:jungle", + "minecraft:jungle_edge", + "minecraft:jungle_hills", + "minecraft:lukewarm_ocean", + "minecraft:modified_badlands_plateau", + "minecraft:modified_gravelly_mountains", + "minecraft:modified_jungle", + "minecraft:modified_jungle_edge", + "minecraft:modified_wooded_badlands_plateau", + "minecraft:mountain_edge", + "minecraft:mountains", + "minecraft:mushroom_field_shore", + "minecraft:mushroom_fields", + "minecraft:nether", + "minecraft:ocean", + "minecraft:plains", + "minecraft:river", + "minecraft:savanna", + "minecraft:savanna_plateau", + "minecraft:shattered_savanna", + "minecraft:shattered_savanna_plateau", + "minecraft:small_end_islands", + "minecraft:snowy_beach", + "minecraft:snowy_mountains", + "minecraft:snowy_taiga", + "minecraft:snowy_taiga_hills", + "minecraft:snowy_taiga_mountains", + "minecraft:snowy_tundra", + "minecraft:stone_shore", + "minecraft:sunflower_plains", + "minecraft:swamp", + "minecraft:swamp_hills", + "minecraft:taiga", + "minecraft:taiga_hills", + "minecraft:taiga_mountains", + "minecraft:tall_birch_forest", + "minecraft:tall_birch_hills", + "minecraft:the_end", + "minecraft:the_void", + "minecraft:warm_ocean", + "minecraft:wooded_badlands_plateau", + "minecraft:wooded_hills", + "minecraft:wooded_mountains" + ], + "blocktags": { + "minecraft:slabs": [ + "minecraft:stone_slab", + "minecraft:smooth_stone_slab", + "minecraft:stone_brick_slab", + "minecraft:sandstone_slab", + "minecraft:acacia_slab", + "minecraft:birch_slab", + "minecraft:dark_oak_slab", + "minecraft:jungle_slab", + "minecraft:oak_slab", + "minecraft:spruce_slab", + "minecraft:purpur_slab", + "minecraft:quartz_slab", + "minecraft:red_sandstone_slab", + "minecraft:brick_slab", + "minecraft:cobblestone_slab", + "minecraft:nether_brick_slab", + "minecraft:petrified_oak_slab", + "minecraft:prismarine_slab", + "minecraft:prismarine_brick_slab", + "minecraft:dark_prismarine_slab", + "minecraft:polished_granite_slab", + "minecraft:smooth_red_sandstone_slab", + "minecraft:mossy_stone_brick_slab", + "minecraft:polished_diorite_slab", + "minecraft:mossy_cobblestone_slab", + "minecraft:end_stone_brick_slab", + "minecraft:smooth_sandstone_slab", + "minecraft:smooth_quartz_slab", + "minecraft:granite_slab", + "minecraft:andesite_slab", + "minecraft:red_nether_brick_slab", + "minecraft:polished_andesite_slab", + "minecraft:diorite_slab", + "minecraft:cut_sandstone_slab", + "minecraft:cut_red_sandstone_slab" + ], + "minecraft:carpets": [ + "minecraft:white_carpet", + "minecraft:orange_carpet", + "minecraft:magenta_carpet", + "minecraft:light_blue_carpet", + "minecraft:yellow_carpet", + "minecraft:lime_carpet", + "minecraft:pink_carpet", + "minecraft:gray_carpet", + "minecraft:light_gray_carpet", + "minecraft:cyan_carpet", + "minecraft:purple_carpet", + "minecraft:blue_carpet", + "minecraft:brown_carpet", + "minecraft:green_carpet", + "minecraft:red_carpet", + "minecraft:black_carpet" + ], + "minecraft:stairs": [ + "minecraft:oak_stairs", + "minecraft:cobblestone_stairs", + "minecraft:spruce_stairs", + "minecraft:sandstone_stairs", + "minecraft:acacia_stairs", + "minecraft:jungle_stairs", + "minecraft:birch_stairs", + "minecraft:dark_oak_stairs", + "minecraft:nether_brick_stairs", + "minecraft:stone_brick_stairs", + "minecraft:brick_stairs", + "minecraft:purpur_stairs", + "minecraft:quartz_stairs", + "minecraft:red_sandstone_stairs", + "minecraft:prismarine_brick_stairs", + "minecraft:prismarine_stairs", + "minecraft:dark_prismarine_stairs", + "minecraft:polished_granite_stairs", + "minecraft:smooth_red_sandstone_stairs", + "minecraft:mossy_stone_brick_stairs", + "minecraft:polished_diorite_stairs", + "minecraft:mossy_cobblestone_stairs", + "minecraft:end_stone_brick_stairs", + "minecraft:stone_stairs", + "minecraft:smooth_sandstone_stairs", + "minecraft:smooth_quartz_stairs", + "minecraft:granite_stairs", + "minecraft:andesite_stairs", + "minecraft:red_nether_brick_stairs", + "minecraft:polished_andesite_stairs", + "minecraft:diorite_stairs" + ], + "minecraft:wooden_doors": [ + "minecraft:oak_door", + "minecraft:spruce_door", + "minecraft:birch_door", + "minecraft:jungle_door", + "minecraft:acacia_door", + "minecraft:dark_oak_door" + ], + "minecraft:jungle_logs": [ + "minecraft:jungle_log", + "minecraft:jungle_wood", + "minecraft:stripped_jungle_log", + "minecraft:stripped_jungle_wood" + ], + "minecraft:planks": [ + "minecraft:oak_planks", + "minecraft:spruce_planks", + "minecraft:birch_planks", + "minecraft:jungle_planks", + "minecraft:acacia_planks", + "minecraft:dark_oak_planks" + ], + "minecraft:wall_corals": [ + "minecraft:tube_coral_wall_fan", + "minecraft:brain_coral_wall_fan", + "minecraft:bubble_coral_wall_fan", + "minecraft:fire_coral_wall_fan", + "minecraft:horn_coral_wall_fan" + ], + "minecraft:acacia_logs": [ + "minecraft:acacia_log", + "minecraft:acacia_wood", + "minecraft:stripped_acacia_log", + "minecraft:stripped_acacia_wood" + ], + "minecraft:wither_immune": [ + "minecraft:barrier", + "minecraft:bedrock", + "minecraft:end_portal", + "minecraft:end_portal_frame", + "minecraft:end_gateway", + "minecraft:command_block", + "minecraft:repeating_command_block", + "minecraft:chain_command_block", + "minecraft:structure_block", + "minecraft:jigsaw", + "minecraft:moving_piston" + ], + "minecraft:flower_pots": [ + "minecraft:flower_pot", + "minecraft:potted_poppy", + "minecraft:potted_blue_orchid", + "minecraft:potted_allium", + "minecraft:potted_azure_bluet", + "minecraft:potted_red_tulip", + "minecraft:potted_orange_tulip", + "minecraft:potted_white_tulip", + "minecraft:potted_pink_tulip", + "minecraft:potted_oxeye_daisy", + "minecraft:potted_dandelion", + "minecraft:potted_oak_sapling", + "minecraft:potted_spruce_sapling", + "minecraft:potted_birch_sapling", + "minecraft:potted_jungle_sapling", + "minecraft:potted_acacia_sapling", + "minecraft:potted_dark_oak_sapling", + "minecraft:potted_red_mushroom", + "minecraft:potted_brown_mushroom", + "minecraft:potted_dead_bush", + "minecraft:potted_fern", + "minecraft:potted_cactus", + "minecraft:potted_cornflower", + "minecraft:potted_lily_of_the_valley", + "minecraft:potted_wither_rose", + "minecraft:potted_bamboo" + ], + "minecraft:stone_bricks": [ + "minecraft:stone_bricks", + "minecraft:mossy_stone_bricks", + "minecraft:cracked_stone_bricks", + "minecraft:chiseled_stone_bricks" + ], + "minecraft:enderman_holdable": [ + "minecraft:grass_block", + "minecraft:dirt", + "minecraft:coarse_dirt", + "minecraft:podzol", + "minecraft:sand", + "minecraft:red_sand", + "minecraft:gravel", + "minecraft:brown_mushroom", + "minecraft:red_mushroom", + "minecraft:tnt", + "minecraft:cactus", + "minecraft:clay", + "minecraft:pumpkin", + "minecraft:carved_pumpkin", + "minecraft:melon", + "minecraft:mycelium", + "minecraft:netherrack", + "minecraft:dandelion", + "minecraft:poppy", + "minecraft:blue_orchid", + "minecraft:allium", + "minecraft:azure_bluet", + "minecraft:red_tulip", + "minecraft:orange_tulip", + "minecraft:white_tulip", + "minecraft:pink_tulip", + "minecraft:oxeye_daisy", + "minecraft:cornflower", + "minecraft:lily_of_the_valley", + "minecraft:wither_rose" + ], + "minecraft:spruce_logs": [ + "minecraft:spruce_log", + "minecraft:spruce_wood", + "minecraft:stripped_spruce_log", + "minecraft:stripped_spruce_wood" + ], + "minecraft:wooden_slabs": [ + "minecraft:oak_slab", + "minecraft:spruce_slab", + "minecraft:birch_slab", + "minecraft:jungle_slab", + "minecraft:acacia_slab", + "minecraft:dark_oak_slab" + ], + "minecraft:coral_blocks": [ + "minecraft:tube_coral_block", + "minecraft:brain_coral_block", + "minecraft:bubble_coral_block", + "minecraft:fire_coral_block", + "minecraft:horn_coral_block" + ], + "minecraft:signs": [ + "minecraft:oak_sign", + "minecraft:spruce_sign", + "minecraft:birch_sign", + "minecraft:acacia_sign", + "minecraft:jungle_sign", + "minecraft:dark_oak_sign", + "minecraft:oak_wall_sign", + "minecraft:spruce_wall_sign", + "minecraft:birch_wall_sign", + "minecraft:acacia_wall_sign", + "minecraft:jungle_wall_sign", + "minecraft:dark_oak_wall_sign" + ], + "minecraft:dark_oak_logs": [ + "minecraft:dark_oak_log", + "minecraft:dark_oak_wood", + "minecraft:stripped_dark_oak_log", + "minecraft:stripped_dark_oak_wood" + ], + "minecraft:sand": [ + "minecraft:sand", + "minecraft:red_sand" + ], + "minecraft:valid_spawn": [ + "minecraft:grass_block", + "minecraft:podzol" + ], + "minecraft:underwater_bonemeals": [ + "minecraft:seagrass", + "minecraft:tube_coral_fan", + "minecraft:brain_coral_fan", + "minecraft:bubble_coral_fan", + "minecraft:fire_coral_fan", + "minecraft:horn_coral_fan", + "minecraft:tube_coral", + "minecraft:brain_coral", + "minecraft:bubble_coral", + "minecraft:fire_coral", + "minecraft:horn_coral", + "minecraft:tube_coral_wall_fan", + "minecraft:brain_coral_wall_fan", + "minecraft:bubble_coral_wall_fan", + "minecraft:fire_coral_wall_fan", + "minecraft:horn_coral_wall_fan" + ], + "minecraft:oak_logs": [ + "minecraft:oak_log", + "minecraft:oak_wood", + "minecraft:stripped_oak_log", + "minecraft:stripped_oak_wood" + ], + "minecraft:buttons": [ + "minecraft:stone_button", + "minecraft:oak_button", + "minecraft:spruce_button", + "minecraft:birch_button", + "minecraft:jungle_button", + "minecraft:acacia_button", + "minecraft:dark_oak_button" + ], + "minecraft:wooden_pressure_plates": [ + "minecraft:oak_pressure_plate", + "minecraft:spruce_pressure_plate", + "minecraft:birch_pressure_plate", + "minecraft:jungle_pressure_plate", + "minecraft:acacia_pressure_plate", + "minecraft:dark_oak_pressure_plate" + ], + "minecraft:beds": [ + "minecraft:red_bed", + "minecraft:black_bed", + "minecraft:blue_bed", + "minecraft:brown_bed", + "minecraft:cyan_bed", + "minecraft:gray_bed", + "minecraft:green_bed", + "minecraft:light_blue_bed", + "minecraft:light_gray_bed", + "minecraft:lime_bed", + "minecraft:magenta_bed", + "minecraft:orange_bed", + "minecraft:pink_bed", + "minecraft:purple_bed", + "minecraft:white_bed", + "minecraft:yellow_bed" + ], + "minecraft:walls": [ + "minecraft:cobblestone_wall", + "minecraft:mossy_cobblestone_wall", + "minecraft:brick_wall", + "minecraft:prismarine_wall", + "minecraft:red_sandstone_wall", + "minecraft:mossy_stone_brick_wall", + "minecraft:granite_wall", + "minecraft:stone_brick_wall", + "minecraft:nether_brick_wall", + "minecraft:andesite_wall", + "minecraft:red_nether_brick_wall", + "minecraft:sandstone_wall", + "minecraft:end_stone_brick_wall", + "minecraft:diorite_wall" + ], + "minecraft:rails": [ + "minecraft:rail", + "minecraft:powered_rail", + "minecraft:detector_rail", + "minecraft:activator_rail" + ], + "minecraft:birch_logs": [ + "minecraft:birch_log", + "minecraft:birch_wood", + "minecraft:stripped_birch_log", + "minecraft:stripped_birch_wood" + ], + "minecraft:wooden_trapdoors": [ + "minecraft:acacia_trapdoor", + "minecraft:birch_trapdoor", + "minecraft:dark_oak_trapdoor", + "minecraft:jungle_trapdoor", + "minecraft:oak_trapdoor", + "minecraft:spruce_trapdoor" + ], + "minecraft:wooden_fences": [ + "minecraft:oak_fence", + "minecraft:acacia_fence", + "minecraft:dark_oak_fence", + "minecraft:spruce_fence", + "minecraft:birch_fence", + "minecraft:jungle_fence" + ], + "minecraft:saplings": [ + "minecraft:oak_sapling", + "minecraft:spruce_sapling", + "minecraft:birch_sapling", + "minecraft:jungle_sapling", + "minecraft:acacia_sapling", + "minecraft:dark_oak_sapling" + ], + "minecraft:small_flowers": [ + "minecraft:dandelion", + "minecraft:poppy", + "minecraft:blue_orchid", + "minecraft:allium", + "minecraft:azure_bluet", + "minecraft:red_tulip", + "minecraft:orange_tulip", + "minecraft:white_tulip", + "minecraft:pink_tulip", + "minecraft:oxeye_daisy", + "minecraft:cornflower", + "minecraft:lily_of_the_valley", + "minecraft:wither_rose" + ], + "minecraft:bamboo_plantable_on": [ + "minecraft:bamboo", + "minecraft:bamboo_sapling", + "minecraft:gravel", + "minecraft:sand", + "minecraft:red_sand", + "minecraft:dirt", + "minecraft:grass_block", + "minecraft:podzol", + "minecraft:coarse_dirt", + "minecraft:mycelium" + ], + "minecraft:ice": [ + "minecraft:ice", + "minecraft:packed_ice", + "minecraft:blue_ice", + "minecraft:frosted_ice" + ], + "minecraft:wooden_stairs": [ + "minecraft:oak_stairs", + "minecraft:spruce_stairs", + "minecraft:birch_stairs", + "minecraft:jungle_stairs", + "minecraft:acacia_stairs", + "minecraft:dark_oak_stairs" + ], + "minecraft:anvil": [ + "minecraft:anvil", + "minecraft:chipped_anvil", + "minecraft:damaged_anvil" + ], + "minecraft:logs": [ + "minecraft:dark_oak_log", + "minecraft:dark_oak_wood", + "minecraft:stripped_dark_oak_log", + "minecraft:stripped_dark_oak_wood", + "minecraft:oak_log", + "minecraft:oak_wood", + "minecraft:stripped_oak_log", + "minecraft:stripped_oak_wood", + "minecraft:acacia_log", + "minecraft:acacia_wood", + "minecraft:stripped_acacia_log", + "minecraft:stripped_acacia_wood", + "minecraft:birch_log", + "minecraft:birch_wood", + "minecraft:stripped_birch_log", + "minecraft:stripped_birch_wood", + "minecraft:jungle_log", + "minecraft:jungle_wood", + "minecraft:stripped_jungle_log", + "minecraft:stripped_jungle_wood", + "minecraft:spruce_log", + "minecraft:spruce_wood", + "minecraft:stripped_spruce_log", + "minecraft:stripped_spruce_wood" + ], + "minecraft:corals": [ + "minecraft:tube_coral_fan", + "minecraft:brain_coral_fan", + "minecraft:bubble_coral_fan", + "minecraft:fire_coral_fan", + "minecraft:horn_coral_fan", + "minecraft:tube_coral", + "minecraft:brain_coral", + "minecraft:bubble_coral", + "minecraft:fire_coral", + "minecraft:horn_coral" + ], + "minecraft:wooden_buttons": [ + "minecraft:oak_button", + "minecraft:spruce_button", + "minecraft:birch_button", + "minecraft:jungle_button", + "minecraft:acacia_button", + "minecraft:dark_oak_button" + ], + "minecraft:wool": [ + "minecraft:white_wool", + "minecraft:orange_wool", + "minecraft:magenta_wool", + "minecraft:light_blue_wool", + "minecraft:yellow_wool", + "minecraft:lime_wool", + "minecraft:pink_wool", + "minecraft:gray_wool", + "minecraft:light_gray_wool", + "minecraft:cyan_wool", + "minecraft:purple_wool", + "minecraft:blue_wool", + "minecraft:brown_wool", + "minecraft:green_wool", + "minecraft:red_wool", + "minecraft:black_wool" + ], + "minecraft:coral_plants": [ + "minecraft:tube_coral", + "minecraft:brain_coral", + "minecraft:bubble_coral", + "minecraft:fire_coral", + "minecraft:horn_coral" + ], + "minecraft:banners": [ + "minecraft:white_banner", + "minecraft:orange_banner", + "minecraft:magenta_banner", + "minecraft:light_blue_banner", + "minecraft:yellow_banner", + "minecraft:lime_banner", + "minecraft:pink_banner", + "minecraft:gray_banner", + "minecraft:light_gray_banner", + "minecraft:cyan_banner", + "minecraft:purple_banner", + "minecraft:blue_banner", + "minecraft:brown_banner", + "minecraft:green_banner", + "minecraft:red_banner", + "minecraft:black_banner", + "minecraft:white_wall_banner", + "minecraft:orange_wall_banner", + "minecraft:magenta_wall_banner", + "minecraft:light_blue_wall_banner", + "minecraft:yellow_wall_banner", + "minecraft:lime_wall_banner", + "minecraft:pink_wall_banner", + "minecraft:gray_wall_banner", + "minecraft:light_gray_wall_banner", + "minecraft:cyan_wall_banner", + "minecraft:purple_wall_banner", + "minecraft:blue_wall_banner", + "minecraft:brown_wall_banner", + "minecraft:green_wall_banner", + "minecraft:red_wall_banner", + "minecraft:black_wall_banner" + ], + "minecraft:dragon_immune": [ + "minecraft:barrier", + "minecraft:bedrock", + "minecraft:end_portal", + "minecraft:end_portal_frame", + "minecraft:end_gateway", + "minecraft:command_block", + "minecraft:repeating_command_block", + "minecraft:chain_command_block", + "minecraft:structure_block", + "minecraft:jigsaw", + "minecraft:moving_piston", + "minecraft:obsidian", + "minecraft:end_stone", + "minecraft:iron_bars" + ], + "minecraft:doors": [ + "minecraft:iron_door", + "minecraft:oak_door", + "minecraft:spruce_door", + "minecraft:birch_door", + "minecraft:jungle_door", + "minecraft:acacia_door", + "minecraft:dark_oak_door" + ], + "minecraft:fences": [ + "minecraft:nether_brick_fence", + "minecraft:oak_fence", + "minecraft:acacia_fence", + "minecraft:dark_oak_fence", + "minecraft:spruce_fence", + "minecraft:birch_fence", + "minecraft:jungle_fence" + ], + "minecraft:wall_signs": [ + "minecraft:oak_wall_sign", + "minecraft:spruce_wall_sign", + "minecraft:birch_wall_sign", + "minecraft:acacia_wall_sign", + "minecraft:jungle_wall_sign", + "minecraft:dark_oak_wall_sign" + ], + "minecraft:standing_signs": [ + "minecraft:oak_sign", + "minecraft:spruce_sign", + "minecraft:birch_sign", + "minecraft:acacia_sign", + "minecraft:jungle_sign", + "minecraft:dark_oak_sign" + ], + "minecraft:dirt_like": [ + "minecraft:dirt", + "minecraft:grass_block", + "minecraft:podzol", + "minecraft:coarse_dirt", + "minecraft:mycelium" + ], + "minecraft:impermeable": [ + "minecraft:glass", + "minecraft:white_stained_glass", + "minecraft:orange_stained_glass", + "minecraft:magenta_stained_glass", + "minecraft:light_blue_stained_glass", + "minecraft:yellow_stained_glass", + "minecraft:lime_stained_glass", + "minecraft:pink_stained_glass", + "minecraft:gray_stained_glass", + "minecraft:light_gray_stained_glass", + "minecraft:cyan_stained_glass", + "minecraft:purple_stained_glass", + "minecraft:blue_stained_glass", + "minecraft:brown_stained_glass", + "minecraft:green_stained_glass", + "minecraft:red_stained_glass", + "minecraft:black_stained_glass" + ], + "minecraft:trapdoors": [ + "minecraft:iron_trapdoor", + "minecraft:acacia_trapdoor", + "minecraft:birch_trapdoor", + "minecraft:dark_oak_trapdoor", + "minecraft:jungle_trapdoor", + "minecraft:oak_trapdoor", + "minecraft:spruce_trapdoor" + ], + "minecraft:leaves": [ + "minecraft:jungle_leaves", + "minecraft:oak_leaves", + "minecraft:spruce_leaves", + "minecraft:dark_oak_leaves", + "minecraft:acacia_leaves", + "minecraft:birch_leaves" + ] + }, + "itemtags": { + "minecraft:boats": [ + "minecraft:oak_boat", + "minecraft:spruce_boat", + "minecraft:birch_boat", + "minecraft:jungle_boat", + "minecraft:acacia_boat", + "minecraft:dark_oak_boat" + ], + "minecraft:banners": [ + "minecraft:white_banner", + "minecraft:orange_banner", + "minecraft:magenta_banner", + "minecraft:light_blue_banner", + "minecraft:yellow_banner", + "minecraft:lime_banner", + "minecraft:pink_banner", + "minecraft:gray_banner", + "minecraft:light_gray_banner", + "minecraft:cyan_banner", + "minecraft:purple_banner", + "minecraft:blue_banner", + "minecraft:brown_banner", + "minecraft:green_banner", + "minecraft:red_banner", + "minecraft:black_banner" + ], + "minecraft:arrows": [ + "minecraft:arrow", + "minecraft:tipped_arrow", + "minecraft:spectral_arrow" + ], + "minecraft:coals": [ + "minecraft:coal", + "minecraft:charcoal" + ], + "minecraft:music_discs": [ + "minecraft:music_disc_13", + "minecraft:music_disc_cat", + "minecraft:music_disc_blocks", + "minecraft:music_disc_chirp", + "minecraft:music_disc_far", + "minecraft:music_disc_mall", + "minecraft:music_disc_mellohi", + "minecraft:music_disc_stal", + "minecraft:music_disc_strad", + "minecraft:music_disc_ward", + "minecraft:music_disc_11", + "minecraft:music_disc_wait" + ], + "minecraft:fishes": [ + "minecraft:cod", + "minecraft:cooked_cod", + "minecraft:salmon", + "minecraft:cooked_salmon", + "minecraft:pufferfish", + "minecraft:tropical_fish" + ] + }, + "entitytags": { + "minecraft:raiders": [ + "minecraft:evoker", + "minecraft:pillager", + "minecraft:ravager", + "minecraft:vindicator", + "minecraft:illusioner", + "minecraft:witch" + ], + "minecraft:skeletons": [ + "minecraft:skeleton", + "minecraft:stray", + "minecraft:wither_skeleton" + ] + } +} diff --git a/worldedit-cli/src/main/resources/com/sk89q/worldedit/cli/data/1976.json b/worldedit-cli/src/main/resources/com/sk89q/worldedit/cli/data/1976.json index f99217273..3396367cc 100644 --- a/worldedit-cli/src/main/resources/com/sk89q/worldedit/cli/data/1976.json +++ b/worldedit-cli/src/main/resources/com/sk89q/worldedit/cli/data/1976.json @@ -1 +1,12888 @@ -{"blocks":{"minecraft:acacia_button":{"properties":{"face":{"values":["floor","wall","ceiling"],"type":"enum"},"facing":{"values":["north","south","west","east"],"type":"direction"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:acacia_button[face=wall,facing=north,powered=false]"},"minecraft:acacia_door":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["upper","lower"],"type":"enum"},"hinge":{"values":["left","right"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:acacia_door[facing=north,half=lower,hinge=left,open=false,powered=false]"},"minecraft:acacia_fence":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:acacia_fence[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:acacia_fence_gate":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"in_wall":{"values":["true","false"],"type":"bool"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:acacia_fence_gate[facing=north,in_wall=false,open=false,powered=false]"},"minecraft:acacia_leaves":{"properties":{"distance":{"values":["1","2","3","4","5","6","7"],"type":"int"},"persistent":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:acacia_leaves[distance=7,persistent=false]"},"minecraft:acacia_log":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:acacia_log[axis=y]"},"minecraft:acacia_planks":{"properties":{},"defaultstate":"minecraft:acacia_planks"},"minecraft:acacia_pressure_plate":{"properties":{"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:acacia_pressure_plate[powered=false]"},"minecraft:acacia_sapling":{"properties":{"stage":{"values":["0","1"],"type":"int"}},"defaultstate":"minecraft:acacia_sapling[stage=0]"},"minecraft:acacia_sign":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:acacia_sign[rotation=0,waterlogged=false]"},"minecraft:acacia_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:acacia_slab[type=bottom,waterlogged=false]"},"minecraft:acacia_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:acacia_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:acacia_trapdoor":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:acacia_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]"},"minecraft:acacia_wall_sign":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:acacia_wall_sign[facing=north,waterlogged=false]"},"minecraft:acacia_wood":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:acacia_wood[axis=y]"},"minecraft:activator_rail":{"properties":{"powered":{"values":["true","false"],"type":"bool"},"shape":{"values":["north_south","east_west","ascending_east","ascending_west","ascending_north","ascending_south"],"type":"enum"}},"defaultstate":"minecraft:activator_rail[powered=false,shape=north_south]"},"minecraft:air":{"properties":{},"defaultstate":"minecraft:air"},"minecraft:allium":{"properties":{},"defaultstate":"minecraft:allium"},"minecraft:andesite":{"properties":{},"defaultstate":"minecraft:andesite"},"minecraft:andesite_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:andesite_slab[type=bottom,waterlogged=false]"},"minecraft:andesite_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:andesite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:andesite_wall":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:andesite_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]"},"minecraft:anvil":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:anvil[facing=north]"},"minecraft:attached_melon_stem":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:attached_melon_stem[facing=north]"},"minecraft:attached_pumpkin_stem":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:attached_pumpkin_stem[facing=north]"},"minecraft:azure_bluet":{"properties":{},"defaultstate":"minecraft:azure_bluet"},"minecraft:bamboo":{"properties":{"age":{"values":["0","1"],"type":"int"},"leaves":{"values":["none","small","large"],"type":"enum"},"stage":{"values":["0","1"],"type":"int"}},"defaultstate":"minecraft:bamboo[age=0,leaves=none,stage=0]"},"minecraft:bamboo_sapling":{"properties":{},"defaultstate":"minecraft:bamboo_sapling"},"minecraft:barrel":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"},"open":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:barrel[facing=north,open=false]"},"minecraft:barrier":{"properties":{},"defaultstate":"minecraft:barrier"},"minecraft:beacon":{"properties":{},"defaultstate":"minecraft:beacon"},"minecraft:bedrock":{"properties":{},"defaultstate":"minecraft:bedrock"},"minecraft:beetroots":{"properties":{"age":{"values":["0","1","2","3"],"type":"int"}},"defaultstate":"minecraft:beetroots[age=0]"},"minecraft:bell":{"properties":{"attachment":{"values":["floor","ceiling","single_wall","double_wall"],"type":"enum"},"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:bell[attachment=floor,facing=north]"},"minecraft:birch_button":{"properties":{"face":{"values":["floor","wall","ceiling"],"type":"enum"},"facing":{"values":["north","south","west","east"],"type":"direction"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:birch_button[face=wall,facing=north,powered=false]"},"minecraft:birch_door":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["upper","lower"],"type":"enum"},"hinge":{"values":["left","right"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:birch_door[facing=north,half=lower,hinge=left,open=false,powered=false]"},"minecraft:birch_fence":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:birch_fence[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:birch_fence_gate":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"in_wall":{"values":["true","false"],"type":"bool"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:birch_fence_gate[facing=north,in_wall=false,open=false,powered=false]"},"minecraft:birch_leaves":{"properties":{"distance":{"values":["1","2","3","4","5","6","7"],"type":"int"},"persistent":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:birch_leaves[distance=7,persistent=false]"},"minecraft:birch_log":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:birch_log[axis=y]"},"minecraft:birch_planks":{"properties":{},"defaultstate":"minecraft:birch_planks"},"minecraft:birch_pressure_plate":{"properties":{"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:birch_pressure_plate[powered=false]"},"minecraft:birch_sapling":{"properties":{"stage":{"values":["0","1"],"type":"int"}},"defaultstate":"minecraft:birch_sapling[stage=0]"},"minecraft:birch_sign":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:birch_sign[rotation=0,waterlogged=false]"},"minecraft:birch_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:birch_slab[type=bottom,waterlogged=false]"},"minecraft:birch_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:birch_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:birch_trapdoor":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:birch_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]"},"minecraft:birch_wall_sign":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:birch_wall_sign[facing=north,waterlogged=false]"},"minecraft:birch_wood":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:birch_wood[axis=y]"},"minecraft:black_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:black_banner[rotation=0]"},"minecraft:black_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:black_bed[facing=north,occupied=false,part=foot]"},"minecraft:black_carpet":{"properties":{},"defaultstate":"minecraft:black_carpet"},"minecraft:black_concrete":{"properties":{},"defaultstate":"minecraft:black_concrete"},"minecraft:black_concrete_powder":{"properties":{},"defaultstate":"minecraft:black_concrete_powder"},"minecraft:black_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:black_glazed_terracotta[facing=north]"},"minecraft:black_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:black_shulker_box[facing=up]"},"minecraft:black_stained_glass":{"properties":{},"defaultstate":"minecraft:black_stained_glass"},"minecraft:black_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:black_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:black_terracotta":{"properties":{},"defaultstate":"minecraft:black_terracotta"},"minecraft:black_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:black_wall_banner[facing=north]"},"minecraft:black_wool":{"properties":{},"defaultstate":"minecraft:black_wool"},"minecraft:blast_furnace":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"lit":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:blast_furnace[facing=north,lit=false]"},"minecraft:blue_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:blue_banner[rotation=0]"},"minecraft:blue_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:blue_bed[facing=north,occupied=false,part=foot]"},"minecraft:blue_carpet":{"properties":{},"defaultstate":"minecraft:blue_carpet"},"minecraft:blue_concrete":{"properties":{},"defaultstate":"minecraft:blue_concrete"},"minecraft:blue_concrete_powder":{"properties":{},"defaultstate":"minecraft:blue_concrete_powder"},"minecraft:blue_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:blue_glazed_terracotta[facing=north]"},"minecraft:blue_ice":{"properties":{},"defaultstate":"minecraft:blue_ice"},"minecraft:blue_orchid":{"properties":{},"defaultstate":"minecraft:blue_orchid"},"minecraft:blue_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:blue_shulker_box[facing=up]"},"minecraft:blue_stained_glass":{"properties":{},"defaultstate":"minecraft:blue_stained_glass"},"minecraft:blue_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:blue_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:blue_terracotta":{"properties":{},"defaultstate":"minecraft:blue_terracotta"},"minecraft:blue_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:blue_wall_banner[facing=north]"},"minecraft:blue_wool":{"properties":{},"defaultstate":"minecraft:blue_wool"},"minecraft:bone_block":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:bone_block[axis=y]"},"minecraft:bookshelf":{"properties":{},"defaultstate":"minecraft:bookshelf"},"minecraft:brain_coral":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:brain_coral[waterlogged=true]"},"minecraft:brain_coral_block":{"properties":{},"defaultstate":"minecraft:brain_coral_block"},"minecraft:brain_coral_fan":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:brain_coral_fan[waterlogged=true]"},"minecraft:brain_coral_wall_fan":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:brain_coral_wall_fan[facing=north,waterlogged=true]"},"minecraft:brewing_stand":{"properties":{"has_bottle_0":{"values":["true","false"],"type":"bool"},"has_bottle_1":{"values":["true","false"],"type":"bool"},"has_bottle_2":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:brewing_stand[has_bottle_0=false,has_bottle_1=false,has_bottle_2=false]"},"minecraft:brick_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:brick_slab[type=bottom,waterlogged=false]"},"minecraft:brick_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:brick_wall":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:brick_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]"},"minecraft:bricks":{"properties":{},"defaultstate":"minecraft:bricks"},"minecraft:brown_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:brown_banner[rotation=0]"},"minecraft:brown_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:brown_bed[facing=north,occupied=false,part=foot]"},"minecraft:brown_carpet":{"properties":{},"defaultstate":"minecraft:brown_carpet"},"minecraft:brown_concrete":{"properties":{},"defaultstate":"minecraft:brown_concrete"},"minecraft:brown_concrete_powder":{"properties":{},"defaultstate":"minecraft:brown_concrete_powder"},"minecraft:brown_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:brown_glazed_terracotta[facing=north]"},"minecraft:brown_mushroom":{"properties":{},"defaultstate":"minecraft:brown_mushroom"},"minecraft:brown_mushroom_block":{"properties":{"down":{"values":["true","false"],"type":"bool"},"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:brown_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true]"},"minecraft:brown_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:brown_shulker_box[facing=up]"},"minecraft:brown_stained_glass":{"properties":{},"defaultstate":"minecraft:brown_stained_glass"},"minecraft:brown_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:brown_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:brown_terracotta":{"properties":{},"defaultstate":"minecraft:brown_terracotta"},"minecraft:brown_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:brown_wall_banner[facing=north]"},"minecraft:brown_wool":{"properties":{},"defaultstate":"minecraft:brown_wool"},"minecraft:bubble_column":{"properties":{"drag":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:bubble_column[drag=true]"},"minecraft:bubble_coral":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:bubble_coral[waterlogged=true]"},"minecraft:bubble_coral_block":{"properties":{},"defaultstate":"minecraft:bubble_coral_block"},"minecraft:bubble_coral_fan":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:bubble_coral_fan[waterlogged=true]"},"minecraft:bubble_coral_wall_fan":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:bubble_coral_wall_fan[facing=north,waterlogged=true]"},"minecraft:cactus":{"properties":{"age":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:cactus[age=0]"},"minecraft:cake":{"properties":{"bites":{"values":["0","1","2","3","4","5","6"],"type":"int"}},"defaultstate":"minecraft:cake[bites=0]"},"minecraft:campfire":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"lit":{"values":["true","false"],"type":"bool"},"signal_fire":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:campfire[facing=north,lit=true,signal_fire=false,waterlogged=false]"},"minecraft:carrots":{"properties":{"age":{"values":["0","1","2","3","4","5","6","7"],"type":"int"}},"defaultstate":"minecraft:carrots[age=0]"},"minecraft:cartography_table":{"properties":{},"defaultstate":"minecraft:cartography_table"},"minecraft:carved_pumpkin":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:carved_pumpkin[facing=north]"},"minecraft:cauldron":{"properties":{"level":{"values":["0","1","2","3"],"type":"int"}},"defaultstate":"minecraft:cauldron[level=0]"},"minecraft:cave_air":{"properties":{},"defaultstate":"minecraft:cave_air"},"minecraft:chain_command_block":{"properties":{"conditional":{"values":["true","false"],"type":"bool"},"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:chain_command_block[conditional=false,facing=north]"},"minecraft:chest":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"type":{"values":["single","left","right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:chest[facing=north,type=single,waterlogged=false]"},"minecraft:chipped_anvil":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:chipped_anvil[facing=north]"},"minecraft:chiseled_quartz_block":{"properties":{},"defaultstate":"minecraft:chiseled_quartz_block"},"minecraft:chiseled_red_sandstone":{"properties":{},"defaultstate":"minecraft:chiseled_red_sandstone"},"minecraft:chiseled_sandstone":{"properties":{},"defaultstate":"minecraft:chiseled_sandstone"},"minecraft:chiseled_stone_bricks":{"properties":{},"defaultstate":"minecraft:chiseled_stone_bricks"},"minecraft:chorus_flower":{"properties":{"age":{"values":["0","1","2","3","4","5"],"type":"int"}},"defaultstate":"minecraft:chorus_flower[age=0]"},"minecraft:chorus_plant":{"properties":{"down":{"values":["true","false"],"type":"bool"},"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:chorus_plant[down=false,east=false,north=false,south=false,up=false,west=false]"},"minecraft:clay":{"properties":{},"defaultstate":"minecraft:clay"},"minecraft:coal_block":{"properties":{},"defaultstate":"minecraft:coal_block"},"minecraft:coal_ore":{"properties":{},"defaultstate":"minecraft:coal_ore"},"minecraft:coarse_dirt":{"properties":{},"defaultstate":"minecraft:coarse_dirt"},"minecraft:cobblestone":{"properties":{},"defaultstate":"minecraft:cobblestone"},"minecraft:cobblestone_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:cobblestone_slab[type=bottom,waterlogged=false]"},"minecraft:cobblestone_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:cobblestone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:cobblestone_wall":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:cobblestone_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]"},"minecraft:cobweb":{"properties":{},"defaultstate":"minecraft:cobweb"},"minecraft:cocoa":{"properties":{"age":{"values":["0","1","2"],"type":"int"},"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:cocoa[age=0,facing=north]"},"minecraft:command_block":{"properties":{"conditional":{"values":["true","false"],"type":"bool"},"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:command_block[conditional=false,facing=north]"},"minecraft:comparator":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"mode":{"values":["compare","subtract"],"type":"enum"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:comparator[facing=north,mode=compare,powered=false]"},"minecraft:composter":{"properties":{"level":{"values":["0","1","2","3","4","5","6","7","8"],"type":"int"}},"defaultstate":"minecraft:composter[level=0]"},"minecraft:conduit":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:conduit[waterlogged=true]"},"minecraft:cornflower":{"properties":{},"defaultstate":"minecraft:cornflower"},"minecraft:cracked_stone_bricks":{"properties":{},"defaultstate":"minecraft:cracked_stone_bricks"},"minecraft:crafting_table":{"properties":{},"defaultstate":"minecraft:crafting_table"},"minecraft:creeper_head":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:creeper_head[rotation=0]"},"minecraft:creeper_wall_head":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:creeper_wall_head[facing=north]"},"minecraft:cut_red_sandstone":{"properties":{},"defaultstate":"minecraft:cut_red_sandstone"},"minecraft:cut_red_sandstone_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:cut_red_sandstone_slab[type=bottom,waterlogged=false]"},"minecraft:cut_sandstone":{"properties":{},"defaultstate":"minecraft:cut_sandstone"},"minecraft:cut_sandstone_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:cut_sandstone_slab[type=bottom,waterlogged=false]"},"minecraft:cyan_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:cyan_banner[rotation=0]"},"minecraft:cyan_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:cyan_bed[facing=north,occupied=false,part=foot]"},"minecraft:cyan_carpet":{"properties":{},"defaultstate":"minecraft:cyan_carpet"},"minecraft:cyan_concrete":{"properties":{},"defaultstate":"minecraft:cyan_concrete"},"minecraft:cyan_concrete_powder":{"properties":{},"defaultstate":"minecraft:cyan_concrete_powder"},"minecraft:cyan_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:cyan_glazed_terracotta[facing=north]"},"minecraft:cyan_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:cyan_shulker_box[facing=up]"},"minecraft:cyan_stained_glass":{"properties":{},"defaultstate":"minecraft:cyan_stained_glass"},"minecraft:cyan_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:cyan_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:cyan_terracotta":{"properties":{},"defaultstate":"minecraft:cyan_terracotta"},"minecraft:cyan_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:cyan_wall_banner[facing=north]"},"minecraft:cyan_wool":{"properties":{},"defaultstate":"minecraft:cyan_wool"},"minecraft:damaged_anvil":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:damaged_anvil[facing=north]"},"minecraft:dandelion":{"properties":{},"defaultstate":"minecraft:dandelion"},"minecraft:dark_oak_button":{"properties":{"face":{"values":["floor","wall","ceiling"],"type":"enum"},"facing":{"values":["north","south","west","east"],"type":"direction"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dark_oak_button[face=wall,facing=north,powered=false]"},"minecraft:dark_oak_door":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["upper","lower"],"type":"enum"},"hinge":{"values":["left","right"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dark_oak_door[facing=north,half=lower,hinge=left,open=false,powered=false]"},"minecraft:dark_oak_fence":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dark_oak_fence[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:dark_oak_fence_gate":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"in_wall":{"values":["true","false"],"type":"bool"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dark_oak_fence_gate[facing=north,in_wall=false,open=false,powered=false]"},"minecraft:dark_oak_leaves":{"properties":{"distance":{"values":["1","2","3","4","5","6","7"],"type":"int"},"persistent":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dark_oak_leaves[distance=7,persistent=false]"},"minecraft:dark_oak_log":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:dark_oak_log[axis=y]"},"minecraft:dark_oak_planks":{"properties":{},"defaultstate":"minecraft:dark_oak_planks"},"minecraft:dark_oak_pressure_plate":{"properties":{"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dark_oak_pressure_plate[powered=false]"},"minecraft:dark_oak_sapling":{"properties":{"stage":{"values":["0","1"],"type":"int"}},"defaultstate":"minecraft:dark_oak_sapling[stage=0]"},"minecraft:dark_oak_sign":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dark_oak_sign[rotation=0,waterlogged=false]"},"minecraft:dark_oak_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dark_oak_slab[type=bottom,waterlogged=false]"},"minecraft:dark_oak_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dark_oak_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:dark_oak_trapdoor":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dark_oak_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]"},"minecraft:dark_oak_wall_sign":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dark_oak_wall_sign[facing=north,waterlogged=false]"},"minecraft:dark_oak_wood":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:dark_oak_wood[axis=y]"},"minecraft:dark_prismarine":{"properties":{},"defaultstate":"minecraft:dark_prismarine"},"minecraft:dark_prismarine_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dark_prismarine_slab[type=bottom,waterlogged=false]"},"minecraft:dark_prismarine_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dark_prismarine_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:daylight_detector":{"properties":{"inverted":{"values":["true","false"],"type":"bool"},"power":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:daylight_detector[inverted=false,power=0]"},"minecraft:dead_brain_coral":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_brain_coral[waterlogged=true]"},"minecraft:dead_brain_coral_block":{"properties":{},"defaultstate":"minecraft:dead_brain_coral_block"},"minecraft:dead_brain_coral_fan":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_brain_coral_fan[waterlogged=true]"},"minecraft:dead_brain_coral_wall_fan":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_brain_coral_wall_fan[facing=north,waterlogged=true]"},"minecraft:dead_bubble_coral":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_bubble_coral[waterlogged=true]"},"minecraft:dead_bubble_coral_block":{"properties":{},"defaultstate":"minecraft:dead_bubble_coral_block"},"minecraft:dead_bubble_coral_fan":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_bubble_coral_fan[waterlogged=true]"},"minecraft:dead_bubble_coral_wall_fan":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_bubble_coral_wall_fan[facing=north,waterlogged=true]"},"minecraft:dead_bush":{"properties":{},"defaultstate":"minecraft:dead_bush"},"minecraft:dead_fire_coral":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_fire_coral[waterlogged=true]"},"minecraft:dead_fire_coral_block":{"properties":{},"defaultstate":"minecraft:dead_fire_coral_block"},"minecraft:dead_fire_coral_fan":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_fire_coral_fan[waterlogged=true]"},"minecraft:dead_fire_coral_wall_fan":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_fire_coral_wall_fan[facing=north,waterlogged=true]"},"minecraft:dead_horn_coral":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_horn_coral[waterlogged=true]"},"minecraft:dead_horn_coral_block":{"properties":{},"defaultstate":"minecraft:dead_horn_coral_block"},"minecraft:dead_horn_coral_fan":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_horn_coral_fan[waterlogged=true]"},"minecraft:dead_horn_coral_wall_fan":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_horn_coral_wall_fan[facing=north,waterlogged=true]"},"minecraft:dead_tube_coral":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_tube_coral[waterlogged=true]"},"minecraft:dead_tube_coral_block":{"properties":{},"defaultstate":"minecraft:dead_tube_coral_block"},"minecraft:dead_tube_coral_fan":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_tube_coral_fan[waterlogged=true]"},"minecraft:dead_tube_coral_wall_fan":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_tube_coral_wall_fan[facing=north,waterlogged=true]"},"minecraft:detector_rail":{"properties":{"powered":{"values":["true","false"],"type":"bool"},"shape":{"values":["north_south","east_west","ascending_east","ascending_west","ascending_north","ascending_south"],"type":"enum"}},"defaultstate":"minecraft:detector_rail[powered=false,shape=north_south]"},"minecraft:diamond_block":{"properties":{},"defaultstate":"minecraft:diamond_block"},"minecraft:diamond_ore":{"properties":{},"defaultstate":"minecraft:diamond_ore"},"minecraft:diorite":{"properties":{},"defaultstate":"minecraft:diorite"},"minecraft:diorite_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:diorite_slab[type=bottom,waterlogged=false]"},"minecraft:diorite_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:diorite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:diorite_wall":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:diorite_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]"},"minecraft:dirt":{"properties":{},"defaultstate":"minecraft:dirt"},"minecraft:dispenser":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"},"triggered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dispenser[facing=north,triggered=false]"},"minecraft:dragon_egg":{"properties":{},"defaultstate":"minecraft:dragon_egg"},"minecraft:dragon_head":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:dragon_head[rotation=0]"},"minecraft:dragon_wall_head":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:dragon_wall_head[facing=north]"},"minecraft:dried_kelp_block":{"properties":{},"defaultstate":"minecraft:dried_kelp_block"},"minecraft:dropper":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"},"triggered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dropper[facing=north,triggered=false]"},"minecraft:emerald_block":{"properties":{},"defaultstate":"minecraft:emerald_block"},"minecraft:emerald_ore":{"properties":{},"defaultstate":"minecraft:emerald_ore"},"minecraft:enchanting_table":{"properties":{},"defaultstate":"minecraft:enchanting_table"},"minecraft:end_gateway":{"properties":{},"defaultstate":"minecraft:end_gateway"},"minecraft:end_portal":{"properties":{},"defaultstate":"minecraft:end_portal"},"minecraft:end_portal_frame":{"properties":{"eye":{"values":["true","false"],"type":"bool"},"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:end_portal_frame[eye=false,facing=north]"},"minecraft:end_rod":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:end_rod[facing=up]"},"minecraft:end_stone":{"properties":{},"defaultstate":"minecraft:end_stone"},"minecraft:end_stone_brick_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:end_stone_brick_slab[type=bottom,waterlogged=false]"},"minecraft:end_stone_brick_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:end_stone_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:end_stone_brick_wall":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:end_stone_brick_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]"},"minecraft:end_stone_bricks":{"properties":{},"defaultstate":"minecraft:end_stone_bricks"},"minecraft:ender_chest":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:ender_chest[facing=north,waterlogged=false]"},"minecraft:farmland":{"properties":{"moisture":{"values":["0","1","2","3","4","5","6","7"],"type":"int"}},"defaultstate":"minecraft:farmland[moisture=0]"},"minecraft:fern":{"properties":{},"defaultstate":"minecraft:fern"},"minecraft:fire":{"properties":{"age":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"},"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:fire[age=0,east=false,north=false,south=false,up=false,west=false]"},"minecraft:fire_coral":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:fire_coral[waterlogged=true]"},"minecraft:fire_coral_block":{"properties":{},"defaultstate":"minecraft:fire_coral_block"},"minecraft:fire_coral_fan":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:fire_coral_fan[waterlogged=true]"},"minecraft:fire_coral_wall_fan":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:fire_coral_wall_fan[facing=north,waterlogged=true]"},"minecraft:fletching_table":{"properties":{},"defaultstate":"minecraft:fletching_table"},"minecraft:flower_pot":{"properties":{},"defaultstate":"minecraft:flower_pot"},"minecraft:frosted_ice":{"properties":{"age":{"values":["0","1","2","3"],"type":"int"}},"defaultstate":"minecraft:frosted_ice[age=0]"},"minecraft:furnace":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"lit":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:furnace[facing=north,lit=false]"},"minecraft:glass":{"properties":{},"defaultstate":"minecraft:glass"},"minecraft:glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:glowstone":{"properties":{},"defaultstate":"minecraft:glowstone"},"minecraft:gold_block":{"properties":{},"defaultstate":"minecraft:gold_block"},"minecraft:gold_ore":{"properties":{},"defaultstate":"minecraft:gold_ore"},"minecraft:granite":{"properties":{},"defaultstate":"minecraft:granite"},"minecraft:granite_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:granite_slab[type=bottom,waterlogged=false]"},"minecraft:granite_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:granite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:granite_wall":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:granite_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]"},"minecraft:grass":{"properties":{},"defaultstate":"minecraft:grass"},"minecraft:grass_block":{"properties":{"snowy":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:grass_block[snowy=false]"},"minecraft:grass_path":{"properties":{},"defaultstate":"minecraft:grass_path"},"minecraft:gravel":{"properties":{},"defaultstate":"minecraft:gravel"},"minecraft:gray_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:gray_banner[rotation=0]"},"minecraft:gray_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:gray_bed[facing=north,occupied=false,part=foot]"},"minecraft:gray_carpet":{"properties":{},"defaultstate":"minecraft:gray_carpet"},"minecraft:gray_concrete":{"properties":{},"defaultstate":"minecraft:gray_concrete"},"minecraft:gray_concrete_powder":{"properties":{},"defaultstate":"minecraft:gray_concrete_powder"},"minecraft:gray_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:gray_glazed_terracotta[facing=north]"},"minecraft:gray_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:gray_shulker_box[facing=up]"},"minecraft:gray_stained_glass":{"properties":{},"defaultstate":"minecraft:gray_stained_glass"},"minecraft:gray_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:gray_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:gray_terracotta":{"properties":{},"defaultstate":"minecraft:gray_terracotta"},"minecraft:gray_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:gray_wall_banner[facing=north]"},"minecraft:gray_wool":{"properties":{},"defaultstate":"minecraft:gray_wool"},"minecraft:green_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:green_banner[rotation=0]"},"minecraft:green_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:green_bed[facing=north,occupied=false,part=foot]"},"minecraft:green_carpet":{"properties":{},"defaultstate":"minecraft:green_carpet"},"minecraft:green_concrete":{"properties":{},"defaultstate":"minecraft:green_concrete"},"minecraft:green_concrete_powder":{"properties":{},"defaultstate":"minecraft:green_concrete_powder"},"minecraft:green_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:green_glazed_terracotta[facing=north]"},"minecraft:green_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:green_shulker_box[facing=up]"},"minecraft:green_stained_glass":{"properties":{},"defaultstate":"minecraft:green_stained_glass"},"minecraft:green_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:green_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:green_terracotta":{"properties":{},"defaultstate":"minecraft:green_terracotta"},"minecraft:green_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:green_wall_banner[facing=north]"},"minecraft:green_wool":{"properties":{},"defaultstate":"minecraft:green_wool"},"minecraft:grindstone":{"properties":{"face":{"values":["floor","wall","ceiling"],"type":"enum"},"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:grindstone[face=wall,facing=north]"},"minecraft:hay_block":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:hay_block[axis=y]"},"minecraft:heavy_weighted_pressure_plate":{"properties":{"power":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:heavy_weighted_pressure_plate[power=0]"},"minecraft:hopper":{"properties":{"enabled":{"values":["true","false"],"type":"bool"},"facing":{"values":["down","north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:hopper[enabled=true,facing=down]"},"minecraft:horn_coral":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:horn_coral[waterlogged=true]"},"minecraft:horn_coral_block":{"properties":{},"defaultstate":"minecraft:horn_coral_block"},"minecraft:horn_coral_fan":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:horn_coral_fan[waterlogged=true]"},"minecraft:horn_coral_wall_fan":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:horn_coral_wall_fan[facing=north,waterlogged=true]"},"minecraft:ice":{"properties":{},"defaultstate":"minecraft:ice"},"minecraft:infested_chiseled_stone_bricks":{"properties":{},"defaultstate":"minecraft:infested_chiseled_stone_bricks"},"minecraft:infested_cobblestone":{"properties":{},"defaultstate":"minecraft:infested_cobblestone"},"minecraft:infested_cracked_stone_bricks":{"properties":{},"defaultstate":"minecraft:infested_cracked_stone_bricks"},"minecraft:infested_mossy_stone_bricks":{"properties":{},"defaultstate":"minecraft:infested_mossy_stone_bricks"},"minecraft:infested_stone":{"properties":{},"defaultstate":"minecraft:infested_stone"},"minecraft:infested_stone_bricks":{"properties":{},"defaultstate":"minecraft:infested_stone_bricks"},"minecraft:iron_bars":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:iron_bars[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:iron_block":{"properties":{},"defaultstate":"minecraft:iron_block"},"minecraft:iron_door":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["upper","lower"],"type":"enum"},"hinge":{"values":["left","right"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:iron_door[facing=north,half=lower,hinge=left,open=false,powered=false]"},"minecraft:iron_ore":{"properties":{},"defaultstate":"minecraft:iron_ore"},"minecraft:iron_trapdoor":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:iron_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]"},"minecraft:jack_o_lantern":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:jack_o_lantern[facing=north]"},"minecraft:jigsaw":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:jigsaw[facing=up]"},"minecraft:jukebox":{"properties":{"has_record":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:jukebox[has_record=false]"},"minecraft:jungle_button":{"properties":{"face":{"values":["floor","wall","ceiling"],"type":"enum"},"facing":{"values":["north","south","west","east"],"type":"direction"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:jungle_button[face=wall,facing=north,powered=false]"},"minecraft:jungle_door":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["upper","lower"],"type":"enum"},"hinge":{"values":["left","right"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:jungle_door[facing=north,half=lower,hinge=left,open=false,powered=false]"},"minecraft:jungle_fence":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:jungle_fence[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:jungle_fence_gate":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"in_wall":{"values":["true","false"],"type":"bool"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:jungle_fence_gate[facing=north,in_wall=false,open=false,powered=false]"},"minecraft:jungle_leaves":{"properties":{"distance":{"values":["1","2","3","4","5","6","7"],"type":"int"},"persistent":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:jungle_leaves[distance=7,persistent=false]"},"minecraft:jungle_log":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:jungle_log[axis=y]"},"minecraft:jungle_planks":{"properties":{},"defaultstate":"minecraft:jungle_planks"},"minecraft:jungle_pressure_plate":{"properties":{"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:jungle_pressure_plate[powered=false]"},"minecraft:jungle_sapling":{"properties":{"stage":{"values":["0","1"],"type":"int"}},"defaultstate":"minecraft:jungle_sapling[stage=0]"},"minecraft:jungle_sign":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:jungle_sign[rotation=0,waterlogged=false]"},"minecraft:jungle_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:jungle_slab[type=bottom,waterlogged=false]"},"minecraft:jungle_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:jungle_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:jungle_trapdoor":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:jungle_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]"},"minecraft:jungle_wall_sign":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:jungle_wall_sign[facing=north,waterlogged=false]"},"minecraft:jungle_wood":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:jungle_wood[axis=y]"},"minecraft:kelp":{"properties":{"age":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25"],"type":"int"}},"defaultstate":"minecraft:kelp[age=0]"},"minecraft:kelp_plant":{"properties":{},"defaultstate":"minecraft:kelp_plant"},"minecraft:ladder":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:ladder[facing=north,waterlogged=false]"},"minecraft:lantern":{"properties":{"hanging":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:lantern[hanging=false]"},"minecraft:lapis_block":{"properties":{},"defaultstate":"minecraft:lapis_block"},"minecraft:lapis_ore":{"properties":{},"defaultstate":"minecraft:lapis_ore"},"minecraft:large_fern":{"properties":{"half":{"values":["upper","lower"],"type":"enum"}},"defaultstate":"minecraft:large_fern[half=lower]"},"minecraft:lava":{"properties":{"level":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:lava[level=0]"},"minecraft:lectern":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"has_book":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:lectern[facing=north,has_book=false,powered=false]"},"minecraft:lever":{"properties":{"face":{"values":["floor","wall","ceiling"],"type":"enum"},"facing":{"values":["north","south","west","east"],"type":"direction"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:lever[face=wall,facing=north,powered=false]"},"minecraft:light_blue_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:light_blue_banner[rotation=0]"},"minecraft:light_blue_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:light_blue_bed[facing=north,occupied=false,part=foot]"},"minecraft:light_blue_carpet":{"properties":{},"defaultstate":"minecraft:light_blue_carpet"},"minecraft:light_blue_concrete":{"properties":{},"defaultstate":"minecraft:light_blue_concrete"},"minecraft:light_blue_concrete_powder":{"properties":{},"defaultstate":"minecraft:light_blue_concrete_powder"},"minecraft:light_blue_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:light_blue_glazed_terracotta[facing=north]"},"minecraft:light_blue_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:light_blue_shulker_box[facing=up]"},"minecraft:light_blue_stained_glass":{"properties":{},"defaultstate":"minecraft:light_blue_stained_glass"},"minecraft:light_blue_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:light_blue_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:light_blue_terracotta":{"properties":{},"defaultstate":"minecraft:light_blue_terracotta"},"minecraft:light_blue_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:light_blue_wall_banner[facing=north]"},"minecraft:light_blue_wool":{"properties":{},"defaultstate":"minecraft:light_blue_wool"},"minecraft:light_gray_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:light_gray_banner[rotation=0]"},"minecraft:light_gray_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:light_gray_bed[facing=north,occupied=false,part=foot]"},"minecraft:light_gray_carpet":{"properties":{},"defaultstate":"minecraft:light_gray_carpet"},"minecraft:light_gray_concrete":{"properties":{},"defaultstate":"minecraft:light_gray_concrete"},"minecraft:light_gray_concrete_powder":{"properties":{},"defaultstate":"minecraft:light_gray_concrete_powder"},"minecraft:light_gray_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:light_gray_glazed_terracotta[facing=north]"},"minecraft:light_gray_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:light_gray_shulker_box[facing=up]"},"minecraft:light_gray_stained_glass":{"properties":{},"defaultstate":"minecraft:light_gray_stained_glass"},"minecraft:light_gray_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:light_gray_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:light_gray_terracotta":{"properties":{},"defaultstate":"minecraft:light_gray_terracotta"},"minecraft:light_gray_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:light_gray_wall_banner[facing=north]"},"minecraft:light_gray_wool":{"properties":{},"defaultstate":"minecraft:light_gray_wool"},"minecraft:light_weighted_pressure_plate":{"properties":{"power":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:light_weighted_pressure_plate[power=0]"},"minecraft:lilac":{"properties":{"half":{"values":["upper","lower"],"type":"enum"}},"defaultstate":"minecraft:lilac[half=lower]"},"minecraft:lily_of_the_valley":{"properties":{},"defaultstate":"minecraft:lily_of_the_valley"},"minecraft:lily_pad":{"properties":{},"defaultstate":"minecraft:lily_pad"},"minecraft:lime_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:lime_banner[rotation=0]"},"minecraft:lime_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:lime_bed[facing=north,occupied=false,part=foot]"},"minecraft:lime_carpet":{"properties":{},"defaultstate":"minecraft:lime_carpet"},"minecraft:lime_concrete":{"properties":{},"defaultstate":"minecraft:lime_concrete"},"minecraft:lime_concrete_powder":{"properties":{},"defaultstate":"minecraft:lime_concrete_powder"},"minecraft:lime_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:lime_glazed_terracotta[facing=north]"},"minecraft:lime_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:lime_shulker_box[facing=up]"},"minecraft:lime_stained_glass":{"properties":{},"defaultstate":"minecraft:lime_stained_glass"},"minecraft:lime_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:lime_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:lime_terracotta":{"properties":{},"defaultstate":"minecraft:lime_terracotta"},"minecraft:lime_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:lime_wall_banner[facing=north]"},"minecraft:lime_wool":{"properties":{},"defaultstate":"minecraft:lime_wool"},"minecraft:loom":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:loom[facing=north]"},"minecraft:magenta_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:magenta_banner[rotation=0]"},"minecraft:magenta_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:magenta_bed[facing=north,occupied=false,part=foot]"},"minecraft:magenta_carpet":{"properties":{},"defaultstate":"minecraft:magenta_carpet"},"minecraft:magenta_concrete":{"properties":{},"defaultstate":"minecraft:magenta_concrete"},"minecraft:magenta_concrete_powder":{"properties":{},"defaultstate":"minecraft:magenta_concrete_powder"},"minecraft:magenta_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:magenta_glazed_terracotta[facing=north]"},"minecraft:magenta_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:magenta_shulker_box[facing=up]"},"minecraft:magenta_stained_glass":{"properties":{},"defaultstate":"minecraft:magenta_stained_glass"},"minecraft:magenta_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:magenta_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:magenta_terracotta":{"properties":{},"defaultstate":"minecraft:magenta_terracotta"},"minecraft:magenta_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:magenta_wall_banner[facing=north]"},"minecraft:magenta_wool":{"properties":{},"defaultstate":"minecraft:magenta_wool"},"minecraft:magma_block":{"properties":{},"defaultstate":"minecraft:magma_block"},"minecraft:melon":{"properties":{},"defaultstate":"minecraft:melon"},"minecraft:melon_stem":{"properties":{"age":{"values":["0","1","2","3","4","5","6","7"],"type":"int"}},"defaultstate":"minecraft:melon_stem[age=0]"},"minecraft:mossy_cobblestone":{"properties":{},"defaultstate":"minecraft:mossy_cobblestone"},"minecraft:mossy_cobblestone_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:mossy_cobblestone_slab[type=bottom,waterlogged=false]"},"minecraft:mossy_cobblestone_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:mossy_cobblestone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:mossy_cobblestone_wall":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:mossy_cobblestone_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]"},"minecraft:mossy_stone_brick_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:mossy_stone_brick_slab[type=bottom,waterlogged=false]"},"minecraft:mossy_stone_brick_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:mossy_stone_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:mossy_stone_brick_wall":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:mossy_stone_brick_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]"},"minecraft:mossy_stone_bricks":{"properties":{},"defaultstate":"minecraft:mossy_stone_bricks"},"minecraft:moving_piston":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"},"type":{"values":["normal","sticky"],"type":"enum"}},"defaultstate":"minecraft:moving_piston[facing=north,type=normal]"},"minecraft:mushroom_stem":{"properties":{"down":{"values":["true","false"],"type":"bool"},"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:mushroom_stem[down=true,east=true,north=true,south=true,up=true,west=true]"},"minecraft:mycelium":{"properties":{"snowy":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:mycelium[snowy=false]"},"minecraft:nether_brick_fence":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:nether_brick_fence[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:nether_brick_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:nether_brick_slab[type=bottom,waterlogged=false]"},"minecraft:nether_brick_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:nether_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:nether_brick_wall":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:nether_brick_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]"},"minecraft:nether_bricks":{"properties":{},"defaultstate":"minecraft:nether_bricks"},"minecraft:nether_portal":{"properties":{"axis":{"values":["x","z"],"type":"enum"}},"defaultstate":"minecraft:nether_portal[axis=x]"},"minecraft:nether_quartz_ore":{"properties":{},"defaultstate":"minecraft:nether_quartz_ore"},"minecraft:nether_wart":{"properties":{"age":{"values":["0","1","2","3"],"type":"int"}},"defaultstate":"minecraft:nether_wart[age=0]"},"minecraft:nether_wart_block":{"properties":{},"defaultstate":"minecraft:nether_wart_block"},"minecraft:netherrack":{"properties":{},"defaultstate":"minecraft:netherrack"},"minecraft:note_block":{"properties":{"instrument":{"values":["harp","basedrum","snare","hat","bass","flute","bell","guitar","chime","xylophone","iron_xylophone","cow_bell","didgeridoo","bit","banjo","pling"],"type":"enum"},"note":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24"],"type":"int"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:note_block[instrument=harp,note=0,powered=false]"},"minecraft:oak_button":{"properties":{"face":{"values":["floor","wall","ceiling"],"type":"enum"},"facing":{"values":["north","south","west","east"],"type":"direction"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:oak_button[face=wall,facing=north,powered=false]"},"minecraft:oak_door":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["upper","lower"],"type":"enum"},"hinge":{"values":["left","right"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:oak_door[facing=north,half=lower,hinge=left,open=false,powered=false]"},"minecraft:oak_fence":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:oak_fence[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:oak_fence_gate":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"in_wall":{"values":["true","false"],"type":"bool"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:oak_fence_gate[facing=north,in_wall=false,open=false,powered=false]"},"minecraft:oak_leaves":{"properties":{"distance":{"values":["1","2","3","4","5","6","7"],"type":"int"},"persistent":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:oak_leaves[distance=7,persistent=false]"},"minecraft:oak_log":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:oak_log[axis=y]"},"minecraft:oak_planks":{"properties":{},"defaultstate":"minecraft:oak_planks"},"minecraft:oak_pressure_plate":{"properties":{"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:oak_pressure_plate[powered=false]"},"minecraft:oak_sapling":{"properties":{"stage":{"values":["0","1"],"type":"int"}},"defaultstate":"minecraft:oak_sapling[stage=0]"},"minecraft:oak_sign":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:oak_sign[rotation=0,waterlogged=false]"},"minecraft:oak_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:oak_slab[type=bottom,waterlogged=false]"},"minecraft:oak_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:oak_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:oak_trapdoor":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:oak_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]"},"minecraft:oak_wall_sign":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:oak_wall_sign[facing=north,waterlogged=false]"},"minecraft:oak_wood":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:oak_wood[axis=y]"},"minecraft:observer":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:observer[facing=south,powered=false]"},"minecraft:obsidian":{"properties":{},"defaultstate":"minecraft:obsidian"},"minecraft:orange_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:orange_banner[rotation=0]"},"minecraft:orange_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:orange_bed[facing=north,occupied=false,part=foot]"},"minecraft:orange_carpet":{"properties":{},"defaultstate":"minecraft:orange_carpet"},"minecraft:orange_concrete":{"properties":{},"defaultstate":"minecraft:orange_concrete"},"minecraft:orange_concrete_powder":{"properties":{},"defaultstate":"minecraft:orange_concrete_powder"},"minecraft:orange_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:orange_glazed_terracotta[facing=north]"},"minecraft:orange_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:orange_shulker_box[facing=up]"},"minecraft:orange_stained_glass":{"properties":{},"defaultstate":"minecraft:orange_stained_glass"},"minecraft:orange_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:orange_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:orange_terracotta":{"properties":{},"defaultstate":"minecraft:orange_terracotta"},"minecraft:orange_tulip":{"properties":{},"defaultstate":"minecraft:orange_tulip"},"minecraft:orange_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:orange_wall_banner[facing=north]"},"minecraft:orange_wool":{"properties":{},"defaultstate":"minecraft:orange_wool"},"minecraft:oxeye_daisy":{"properties":{},"defaultstate":"minecraft:oxeye_daisy"},"minecraft:packed_ice":{"properties":{},"defaultstate":"minecraft:packed_ice"},"minecraft:peony":{"properties":{"half":{"values":["upper","lower"],"type":"enum"}},"defaultstate":"minecraft:peony[half=lower]"},"minecraft:petrified_oak_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:petrified_oak_slab[type=bottom,waterlogged=false]"},"minecraft:pink_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:pink_banner[rotation=0]"},"minecraft:pink_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:pink_bed[facing=north,occupied=false,part=foot]"},"minecraft:pink_carpet":{"properties":{},"defaultstate":"minecraft:pink_carpet"},"minecraft:pink_concrete":{"properties":{},"defaultstate":"minecraft:pink_concrete"},"minecraft:pink_concrete_powder":{"properties":{},"defaultstate":"minecraft:pink_concrete_powder"},"minecraft:pink_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:pink_glazed_terracotta[facing=north]"},"minecraft:pink_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:pink_shulker_box[facing=up]"},"minecraft:pink_stained_glass":{"properties":{},"defaultstate":"minecraft:pink_stained_glass"},"minecraft:pink_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:pink_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:pink_terracotta":{"properties":{},"defaultstate":"minecraft:pink_terracotta"},"minecraft:pink_tulip":{"properties":{},"defaultstate":"minecraft:pink_tulip"},"minecraft:pink_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:pink_wall_banner[facing=north]"},"minecraft:pink_wool":{"properties":{},"defaultstate":"minecraft:pink_wool"},"minecraft:piston":{"properties":{"extended":{"values":["true","false"],"type":"bool"},"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:piston[extended=false,facing=north]"},"minecraft:piston_head":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"},"short":{"values":["true","false"],"type":"bool"},"type":{"values":["normal","sticky"],"type":"enum"}},"defaultstate":"minecraft:piston_head[facing=north,short=false,type=normal]"},"minecraft:player_head":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:player_head[rotation=0]"},"minecraft:player_wall_head":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:player_wall_head[facing=north]"},"minecraft:podzol":{"properties":{"snowy":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:podzol[snowy=false]"},"minecraft:polished_andesite":{"properties":{},"defaultstate":"minecraft:polished_andesite"},"minecraft:polished_andesite_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:polished_andesite_slab[type=bottom,waterlogged=false]"},"minecraft:polished_andesite_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:polished_andesite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:polished_diorite":{"properties":{},"defaultstate":"minecraft:polished_diorite"},"minecraft:polished_diorite_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:polished_diorite_slab[type=bottom,waterlogged=false]"},"minecraft:polished_diorite_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:polished_diorite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:polished_granite":{"properties":{},"defaultstate":"minecraft:polished_granite"},"minecraft:polished_granite_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:polished_granite_slab[type=bottom,waterlogged=false]"},"minecraft:polished_granite_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:polished_granite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:poppy":{"properties":{},"defaultstate":"minecraft:poppy"},"minecraft:potatoes":{"properties":{"age":{"values":["0","1","2","3","4","5","6","7"],"type":"int"}},"defaultstate":"minecraft:potatoes[age=0]"},"minecraft:potted_acacia_sapling":{"properties":{},"defaultstate":"minecraft:potted_acacia_sapling"},"minecraft:potted_allium":{"properties":{},"defaultstate":"minecraft:potted_allium"},"minecraft:potted_azure_bluet":{"properties":{},"defaultstate":"minecraft:potted_azure_bluet"},"minecraft:potted_bamboo":{"properties":{},"defaultstate":"minecraft:potted_bamboo"},"minecraft:potted_birch_sapling":{"properties":{},"defaultstate":"minecraft:potted_birch_sapling"},"minecraft:potted_blue_orchid":{"properties":{},"defaultstate":"minecraft:potted_blue_orchid"},"minecraft:potted_brown_mushroom":{"properties":{},"defaultstate":"minecraft:potted_brown_mushroom"},"minecraft:potted_cactus":{"properties":{},"defaultstate":"minecraft:potted_cactus"},"minecraft:potted_cornflower":{"properties":{},"defaultstate":"minecraft:potted_cornflower"},"minecraft:potted_dandelion":{"properties":{},"defaultstate":"minecraft:potted_dandelion"},"minecraft:potted_dark_oak_sapling":{"properties":{},"defaultstate":"minecraft:potted_dark_oak_sapling"},"minecraft:potted_dead_bush":{"properties":{},"defaultstate":"minecraft:potted_dead_bush"},"minecraft:potted_fern":{"properties":{},"defaultstate":"minecraft:potted_fern"},"minecraft:potted_jungle_sapling":{"properties":{},"defaultstate":"minecraft:potted_jungle_sapling"},"minecraft:potted_lily_of_the_valley":{"properties":{},"defaultstate":"minecraft:potted_lily_of_the_valley"},"minecraft:potted_oak_sapling":{"properties":{},"defaultstate":"minecraft:potted_oak_sapling"},"minecraft:potted_orange_tulip":{"properties":{},"defaultstate":"minecraft:potted_orange_tulip"},"minecraft:potted_oxeye_daisy":{"properties":{},"defaultstate":"minecraft:potted_oxeye_daisy"},"minecraft:potted_pink_tulip":{"properties":{},"defaultstate":"minecraft:potted_pink_tulip"},"minecraft:potted_poppy":{"properties":{},"defaultstate":"minecraft:potted_poppy"},"minecraft:potted_red_mushroom":{"properties":{},"defaultstate":"minecraft:potted_red_mushroom"},"minecraft:potted_red_tulip":{"properties":{},"defaultstate":"minecraft:potted_red_tulip"},"minecraft:potted_spruce_sapling":{"properties":{},"defaultstate":"minecraft:potted_spruce_sapling"},"minecraft:potted_white_tulip":{"properties":{},"defaultstate":"minecraft:potted_white_tulip"},"minecraft:potted_wither_rose":{"properties":{},"defaultstate":"minecraft:potted_wither_rose"},"minecraft:powered_rail":{"properties":{"powered":{"values":["true","false"],"type":"bool"},"shape":{"values":["north_south","east_west","ascending_east","ascending_west","ascending_north","ascending_south"],"type":"enum"}},"defaultstate":"minecraft:powered_rail[powered=false,shape=north_south]"},"minecraft:prismarine":{"properties":{},"defaultstate":"minecraft:prismarine"},"minecraft:prismarine_brick_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:prismarine_brick_slab[type=bottom,waterlogged=false]"},"minecraft:prismarine_brick_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:prismarine_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:prismarine_bricks":{"properties":{},"defaultstate":"minecraft:prismarine_bricks"},"minecraft:prismarine_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:prismarine_slab[type=bottom,waterlogged=false]"},"minecraft:prismarine_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:prismarine_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:prismarine_wall":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:prismarine_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]"},"minecraft:pumpkin":{"properties":{},"defaultstate":"minecraft:pumpkin"},"minecraft:pumpkin_stem":{"properties":{"age":{"values":["0","1","2","3","4","5","6","7"],"type":"int"}},"defaultstate":"minecraft:pumpkin_stem[age=0]"},"minecraft:purple_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:purple_banner[rotation=0]"},"minecraft:purple_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:purple_bed[facing=north,occupied=false,part=foot]"},"minecraft:purple_carpet":{"properties":{},"defaultstate":"minecraft:purple_carpet"},"minecraft:purple_concrete":{"properties":{},"defaultstate":"minecraft:purple_concrete"},"minecraft:purple_concrete_powder":{"properties":{},"defaultstate":"minecraft:purple_concrete_powder"},"minecraft:purple_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:purple_glazed_terracotta[facing=north]"},"minecraft:purple_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:purple_shulker_box[facing=up]"},"minecraft:purple_stained_glass":{"properties":{},"defaultstate":"minecraft:purple_stained_glass"},"minecraft:purple_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:purple_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:purple_terracotta":{"properties":{},"defaultstate":"minecraft:purple_terracotta"},"minecraft:purple_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:purple_wall_banner[facing=north]"},"minecraft:purple_wool":{"properties":{},"defaultstate":"minecraft:purple_wool"},"minecraft:purpur_block":{"properties":{},"defaultstate":"minecraft:purpur_block"},"minecraft:purpur_pillar":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:purpur_pillar[axis=y]"},"minecraft:purpur_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:purpur_slab[type=bottom,waterlogged=false]"},"minecraft:purpur_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:purpur_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:quartz_block":{"properties":{},"defaultstate":"minecraft:quartz_block"},"minecraft:quartz_pillar":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:quartz_pillar[axis=y]"},"minecraft:quartz_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:quartz_slab[type=bottom,waterlogged=false]"},"minecraft:quartz_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:quartz_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:rail":{"properties":{"shape":{"values":["north_south","east_west","ascending_east","ascending_west","ascending_north","ascending_south","south_east","south_west","north_west","north_east"],"type":"enum"}},"defaultstate":"minecraft:rail[shape=north_south]"},"minecraft:red_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:red_banner[rotation=0]"},"minecraft:red_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:red_bed[facing=north,occupied=false,part=foot]"},"minecraft:red_carpet":{"properties":{},"defaultstate":"minecraft:red_carpet"},"minecraft:red_concrete":{"properties":{},"defaultstate":"minecraft:red_concrete"},"minecraft:red_concrete_powder":{"properties":{},"defaultstate":"minecraft:red_concrete_powder"},"minecraft:red_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:red_glazed_terracotta[facing=north]"},"minecraft:red_mushroom":{"properties":{},"defaultstate":"minecraft:red_mushroom"},"minecraft:red_mushroom_block":{"properties":{"down":{"values":["true","false"],"type":"bool"},"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:red_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true]"},"minecraft:red_nether_brick_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:red_nether_brick_slab[type=bottom,waterlogged=false]"},"minecraft:red_nether_brick_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:red_nether_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:red_nether_brick_wall":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:red_nether_brick_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]"},"minecraft:red_nether_bricks":{"properties":{},"defaultstate":"minecraft:red_nether_bricks"},"minecraft:red_sand":{"properties":{},"defaultstate":"minecraft:red_sand"},"minecraft:red_sandstone":{"properties":{},"defaultstate":"minecraft:red_sandstone"},"minecraft:red_sandstone_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:red_sandstone_slab[type=bottom,waterlogged=false]"},"minecraft:red_sandstone_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:red_sandstone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:red_sandstone_wall":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:red_sandstone_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]"},"minecraft:red_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:red_shulker_box[facing=up]"},"minecraft:red_stained_glass":{"properties":{},"defaultstate":"minecraft:red_stained_glass"},"minecraft:red_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:red_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:red_terracotta":{"properties":{},"defaultstate":"minecraft:red_terracotta"},"minecraft:red_tulip":{"properties":{},"defaultstate":"minecraft:red_tulip"},"minecraft:red_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:red_wall_banner[facing=north]"},"minecraft:red_wool":{"properties":{},"defaultstate":"minecraft:red_wool"},"minecraft:redstone_block":{"properties":{},"defaultstate":"minecraft:redstone_block"},"minecraft:redstone_lamp":{"properties":{"lit":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:redstone_lamp[lit=false]"},"minecraft:redstone_ore":{"properties":{"lit":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:redstone_ore[lit=false]"},"minecraft:redstone_torch":{"properties":{"lit":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:redstone_torch[lit=true]"},"minecraft:redstone_wall_torch":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"lit":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:redstone_wall_torch[facing=north,lit=true]"},"minecraft:redstone_wire":{"properties":{"east":{"values":["up","side","none"],"type":"enum"},"north":{"values":["up","side","none"],"type":"enum"},"power":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"},"south":{"values":["up","side","none"],"type":"enum"},"west":{"values":["up","side","none"],"type":"enum"}},"defaultstate":"minecraft:redstone_wire[east=none,north=none,power=0,south=none,west=none]"},"minecraft:repeater":{"properties":{"delay":{"values":["1","2","3","4"],"type":"int"},"facing":{"values":["north","south","west","east"],"type":"direction"},"locked":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:repeater[delay=1,facing=north,locked=false,powered=false]"},"minecraft:repeating_command_block":{"properties":{"conditional":{"values":["true","false"],"type":"bool"},"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:repeating_command_block[conditional=false,facing=north]"},"minecraft:rose_bush":{"properties":{"half":{"values":["upper","lower"],"type":"enum"}},"defaultstate":"minecraft:rose_bush[half=lower]"},"minecraft:sand":{"properties":{},"defaultstate":"minecraft:sand"},"minecraft:sandstone":{"properties":{},"defaultstate":"minecraft:sandstone"},"minecraft:sandstone_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:sandstone_slab[type=bottom,waterlogged=false]"},"minecraft:sandstone_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:sandstone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:sandstone_wall":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:sandstone_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]"},"minecraft:scaffolding":{"properties":{"bottom":{"values":["true","false"],"type":"bool"},"distance":{"values":["0","1","2","3","4","5","6","7"],"type":"int"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:scaffolding[bottom=false,distance=7,waterlogged=false]"},"minecraft:sea_lantern":{"properties":{},"defaultstate":"minecraft:sea_lantern"},"minecraft:sea_pickle":{"properties":{"pickles":{"values":["1","2","3","4"],"type":"int"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:sea_pickle[pickles=1,waterlogged=true]"},"minecraft:seagrass":{"properties":{},"defaultstate":"minecraft:seagrass"},"minecraft:shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:shulker_box[facing=up]"},"minecraft:skeleton_skull":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:skeleton_skull[rotation=0]"},"minecraft:skeleton_wall_skull":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:skeleton_wall_skull[facing=north]"},"minecraft:slime_block":{"properties":{},"defaultstate":"minecraft:slime_block"},"minecraft:smithing_table":{"properties":{},"defaultstate":"minecraft:smithing_table"},"minecraft:smoker":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"lit":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:smoker[facing=north,lit=false]"},"minecraft:smooth_quartz":{"properties":{},"defaultstate":"minecraft:smooth_quartz"},"minecraft:smooth_quartz_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:smooth_quartz_slab[type=bottom,waterlogged=false]"},"minecraft:smooth_quartz_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:smooth_quartz_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:smooth_red_sandstone":{"properties":{},"defaultstate":"minecraft:smooth_red_sandstone"},"minecraft:smooth_red_sandstone_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:smooth_red_sandstone_slab[type=bottom,waterlogged=false]"},"minecraft:smooth_red_sandstone_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:smooth_red_sandstone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:smooth_sandstone":{"properties":{},"defaultstate":"minecraft:smooth_sandstone"},"minecraft:smooth_sandstone_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:smooth_sandstone_slab[type=bottom,waterlogged=false]"},"minecraft:smooth_sandstone_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:smooth_sandstone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:smooth_stone":{"properties":{},"defaultstate":"minecraft:smooth_stone"},"minecraft:smooth_stone_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:smooth_stone_slab[type=bottom,waterlogged=false]"},"minecraft:snow":{"properties":{"layers":{"values":["1","2","3","4","5","6","7","8"],"type":"int"}},"defaultstate":"minecraft:snow[layers=1]"},"minecraft:snow_block":{"properties":{},"defaultstate":"minecraft:snow_block"},"minecraft:soul_sand":{"properties":{},"defaultstate":"minecraft:soul_sand"},"minecraft:spawner":{"properties":{},"defaultstate":"minecraft:spawner"},"minecraft:sponge":{"properties":{},"defaultstate":"minecraft:sponge"},"minecraft:spruce_button":{"properties":{"face":{"values":["floor","wall","ceiling"],"type":"enum"},"facing":{"values":["north","south","west","east"],"type":"direction"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:spruce_button[face=wall,facing=north,powered=false]"},"minecraft:spruce_door":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["upper","lower"],"type":"enum"},"hinge":{"values":["left","right"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:spruce_door[facing=north,half=lower,hinge=left,open=false,powered=false]"},"minecraft:spruce_fence":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:spruce_fence[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:spruce_fence_gate":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"in_wall":{"values":["true","false"],"type":"bool"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:spruce_fence_gate[facing=north,in_wall=false,open=false,powered=false]"},"minecraft:spruce_leaves":{"properties":{"distance":{"values":["1","2","3","4","5","6","7"],"type":"int"},"persistent":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:spruce_leaves[distance=7,persistent=false]"},"minecraft:spruce_log":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:spruce_log[axis=y]"},"minecraft:spruce_planks":{"properties":{},"defaultstate":"minecraft:spruce_planks"},"minecraft:spruce_pressure_plate":{"properties":{"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:spruce_pressure_plate[powered=false]"},"minecraft:spruce_sapling":{"properties":{"stage":{"values":["0","1"],"type":"int"}},"defaultstate":"minecraft:spruce_sapling[stage=0]"},"minecraft:spruce_sign":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:spruce_sign[rotation=0,waterlogged=false]"},"minecraft:spruce_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:spruce_slab[type=bottom,waterlogged=false]"},"minecraft:spruce_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:spruce_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:spruce_trapdoor":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:spruce_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]"},"minecraft:spruce_wall_sign":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:spruce_wall_sign[facing=north,waterlogged=false]"},"minecraft:spruce_wood":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:spruce_wood[axis=y]"},"minecraft:sticky_piston":{"properties":{"extended":{"values":["true","false"],"type":"bool"},"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:sticky_piston[extended=false,facing=north]"},"minecraft:stone":{"properties":{},"defaultstate":"minecraft:stone"},"minecraft:stone_brick_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:stone_brick_slab[type=bottom,waterlogged=false]"},"minecraft:stone_brick_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:stone_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:stone_brick_wall":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:stone_brick_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]"},"minecraft:stone_bricks":{"properties":{},"defaultstate":"minecraft:stone_bricks"},"minecraft:stone_button":{"properties":{"face":{"values":["floor","wall","ceiling"],"type":"enum"},"facing":{"values":["north","south","west","east"],"type":"direction"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:stone_button[face=wall,facing=north,powered=false]"},"minecraft:stone_pressure_plate":{"properties":{"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:stone_pressure_plate[powered=false]"},"minecraft:stone_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:stone_slab[type=bottom,waterlogged=false]"},"minecraft:stone_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:stone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:stonecutter":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:stonecutter[facing=north]"},"minecraft:stripped_acacia_log":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:stripped_acacia_log[axis=y]"},"minecraft:stripped_acacia_wood":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:stripped_acacia_wood[axis=y]"},"minecraft:stripped_birch_log":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:stripped_birch_log[axis=y]"},"minecraft:stripped_birch_wood":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:stripped_birch_wood[axis=y]"},"minecraft:stripped_dark_oak_log":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:stripped_dark_oak_log[axis=y]"},"minecraft:stripped_dark_oak_wood":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:stripped_dark_oak_wood[axis=y]"},"minecraft:stripped_jungle_log":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:stripped_jungle_log[axis=y]"},"minecraft:stripped_jungle_wood":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:stripped_jungle_wood[axis=y]"},"minecraft:stripped_oak_log":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:stripped_oak_log[axis=y]"},"minecraft:stripped_oak_wood":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:stripped_oak_wood[axis=y]"},"minecraft:stripped_spruce_log":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:stripped_spruce_log[axis=y]"},"minecraft:stripped_spruce_wood":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:stripped_spruce_wood[axis=y]"},"minecraft:structure_block":{"properties":{"mode":{"values":["save","load","corner","data"],"type":"enum"}},"defaultstate":"minecraft:structure_block[mode=save]"},"minecraft:structure_void":{"properties":{},"defaultstate":"minecraft:structure_void"},"minecraft:sugar_cane":{"properties":{"age":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:sugar_cane[age=0]"},"minecraft:sunflower":{"properties":{"half":{"values":["upper","lower"],"type":"enum"}},"defaultstate":"minecraft:sunflower[half=lower]"},"minecraft:sweet_berry_bush":{"properties":{"age":{"values":["0","1","2","3"],"type":"int"}},"defaultstate":"minecraft:sweet_berry_bush[age=0]"},"minecraft:tall_grass":{"properties":{"half":{"values":["upper","lower"],"type":"enum"}},"defaultstate":"minecraft:tall_grass[half=lower]"},"minecraft:tall_seagrass":{"properties":{"half":{"values":["upper","lower"],"type":"enum"}},"defaultstate":"minecraft:tall_seagrass[half=lower]"},"minecraft:terracotta":{"properties":{},"defaultstate":"minecraft:terracotta"},"minecraft:tnt":{"properties":{"unstable":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:tnt[unstable=false]"},"minecraft:torch":{"properties":{},"defaultstate":"minecraft:torch"},"minecraft:trapped_chest":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"type":{"values":["single","left","right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:trapped_chest[facing=north,type=single,waterlogged=false]"},"minecraft:tripwire":{"properties":{"attached":{"values":["true","false"],"type":"bool"},"disarmed":{"values":["true","false"],"type":"bool"},"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:tripwire[attached=false,disarmed=false,east=false,north=false,powered=false,south=false,west=false]"},"minecraft:tripwire_hook":{"properties":{"attached":{"values":["true","false"],"type":"bool"},"facing":{"values":["north","south","west","east"],"type":"direction"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:tripwire_hook[attached=false,facing=north,powered=false]"},"minecraft:tube_coral":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:tube_coral[waterlogged=true]"},"minecraft:tube_coral_block":{"properties":{},"defaultstate":"minecraft:tube_coral_block"},"minecraft:tube_coral_fan":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:tube_coral_fan[waterlogged=true]"},"minecraft:tube_coral_wall_fan":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:tube_coral_wall_fan[facing=north,waterlogged=true]"},"minecraft:turtle_egg":{"properties":{"eggs":{"values":["1","2","3","4"],"type":"int"},"hatch":{"values":["0","1","2"],"type":"int"}},"defaultstate":"minecraft:turtle_egg[eggs=1,hatch=0]"},"minecraft:vine":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:vine[east=false,north=false,south=false,up=false,west=false]"},"minecraft:void_air":{"properties":{},"defaultstate":"minecraft:void_air"},"minecraft:wall_torch":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:wall_torch[facing=north]"},"minecraft:water":{"properties":{"level":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:water[level=0]"},"minecraft:wet_sponge":{"properties":{},"defaultstate":"minecraft:wet_sponge"},"minecraft:wheat":{"properties":{"age":{"values":["0","1","2","3","4","5","6","7"],"type":"int"}},"defaultstate":"minecraft:wheat[age=0]"},"minecraft:white_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:white_banner[rotation=0]"},"minecraft:white_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:white_bed[facing=north,occupied=false,part=foot]"},"minecraft:white_carpet":{"properties":{},"defaultstate":"minecraft:white_carpet"},"minecraft:white_concrete":{"properties":{},"defaultstate":"minecraft:white_concrete"},"minecraft:white_concrete_powder":{"properties":{},"defaultstate":"minecraft:white_concrete_powder"},"minecraft:white_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:white_glazed_terracotta[facing=north]"},"minecraft:white_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:white_shulker_box[facing=up]"},"minecraft:white_stained_glass":{"properties":{},"defaultstate":"minecraft:white_stained_glass"},"minecraft:white_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:white_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:white_terracotta":{"properties":{},"defaultstate":"minecraft:white_terracotta"},"minecraft:white_tulip":{"properties":{},"defaultstate":"minecraft:white_tulip"},"minecraft:white_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:white_wall_banner[facing=north]"},"minecraft:white_wool":{"properties":{},"defaultstate":"minecraft:white_wool"},"minecraft:wither_rose":{"properties":{},"defaultstate":"minecraft:wither_rose"},"minecraft:wither_skeleton_skull":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:wither_skeleton_skull[rotation=0]"},"minecraft:wither_skeleton_wall_skull":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:wither_skeleton_wall_skull[facing=north]"},"minecraft:yellow_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:yellow_banner[rotation=0]"},"minecraft:yellow_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:yellow_bed[facing=north,occupied=false,part=foot]"},"minecraft:yellow_carpet":{"properties":{},"defaultstate":"minecraft:yellow_carpet"},"minecraft:yellow_concrete":{"properties":{},"defaultstate":"minecraft:yellow_concrete"},"minecraft:yellow_concrete_powder":{"properties":{},"defaultstate":"minecraft:yellow_concrete_powder"},"minecraft:yellow_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:yellow_glazed_terracotta[facing=north]"},"minecraft:yellow_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:yellow_shulker_box[facing=up]"},"minecraft:yellow_stained_glass":{"properties":{},"defaultstate":"minecraft:yellow_stained_glass"},"minecraft:yellow_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:yellow_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:yellow_terracotta":{"properties":{},"defaultstate":"minecraft:yellow_terracotta"},"minecraft:yellow_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:yellow_wall_banner[facing=north]"},"minecraft:yellow_wool":{"properties":{},"defaultstate":"minecraft:yellow_wool"},"minecraft:zombie_head":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:zombie_head[rotation=0]"},"minecraft:zombie_wall_head":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:zombie_wall_head[facing=north]"}},"items":["minecraft:acacia_boat","minecraft:acacia_button","minecraft:acacia_door","minecraft:acacia_fence","minecraft:acacia_fence_gate","minecraft:acacia_leaves","minecraft:acacia_log","minecraft:acacia_planks","minecraft:acacia_pressure_plate","minecraft:acacia_sapling","minecraft:acacia_sign","minecraft:acacia_slab","minecraft:acacia_stairs","minecraft:acacia_trapdoor","minecraft:acacia_wood","minecraft:activator_rail","minecraft:air","minecraft:allium","minecraft:andesite","minecraft:andesite_slab","minecraft:andesite_stairs","minecraft:andesite_wall","minecraft:anvil","minecraft:apple","minecraft:armor_stand","minecraft:arrow","minecraft:azure_bluet","minecraft:baked_potato","minecraft:bamboo","minecraft:barrel","minecraft:barrier","minecraft:bat_spawn_egg","minecraft:beacon","minecraft:bedrock","minecraft:beef","minecraft:beetroot","minecraft:beetroot_seeds","minecraft:beetroot_soup","minecraft:bell","minecraft:birch_boat","minecraft:birch_button","minecraft:birch_door","minecraft:birch_fence","minecraft:birch_fence_gate","minecraft:birch_leaves","minecraft:birch_log","minecraft:birch_planks","minecraft:birch_pressure_plate","minecraft:birch_sapling","minecraft:birch_sign","minecraft:birch_slab","minecraft:birch_stairs","minecraft:birch_trapdoor","minecraft:birch_wood","minecraft:black_banner","minecraft:black_bed","minecraft:black_carpet","minecraft:black_concrete","minecraft:black_concrete_powder","minecraft:black_dye","minecraft:black_glazed_terracotta","minecraft:black_shulker_box","minecraft:black_stained_glass","minecraft:black_stained_glass_pane","minecraft:black_terracotta","minecraft:black_wool","minecraft:blast_furnace","minecraft:blaze_powder","minecraft:blaze_rod","minecraft:blaze_spawn_egg","minecraft:blue_banner","minecraft:blue_bed","minecraft:blue_carpet","minecraft:blue_concrete","minecraft:blue_concrete_powder","minecraft:blue_dye","minecraft:blue_glazed_terracotta","minecraft:blue_ice","minecraft:blue_orchid","minecraft:blue_shulker_box","minecraft:blue_stained_glass","minecraft:blue_stained_glass_pane","minecraft:blue_terracotta","minecraft:blue_wool","minecraft:bone","minecraft:bone_block","minecraft:bone_meal","minecraft:book","minecraft:bookshelf","minecraft:bow","minecraft:bowl","minecraft:brain_coral","minecraft:brain_coral_block","minecraft:brain_coral_fan","minecraft:bread","minecraft:brewing_stand","minecraft:brick","minecraft:brick_slab","minecraft:brick_stairs","minecraft:brick_wall","minecraft:bricks","minecraft:brown_banner","minecraft:brown_bed","minecraft:brown_carpet","minecraft:brown_concrete","minecraft:brown_concrete_powder","minecraft:brown_dye","minecraft:brown_glazed_terracotta","minecraft:brown_mushroom","minecraft:brown_mushroom_block","minecraft:brown_shulker_box","minecraft:brown_stained_glass","minecraft:brown_stained_glass_pane","minecraft:brown_terracotta","minecraft:brown_wool","minecraft:bubble_coral","minecraft:bubble_coral_block","minecraft:bubble_coral_fan","minecraft:bucket","minecraft:cactus","minecraft:cake","minecraft:campfire","minecraft:carrot","minecraft:carrot_on_a_stick","minecraft:cartography_table","minecraft:carved_pumpkin","minecraft:cat_spawn_egg","minecraft:cauldron","minecraft:cave_spider_spawn_egg","minecraft:chain_command_block","minecraft:chainmail_boots","minecraft:chainmail_chestplate","minecraft:chainmail_helmet","minecraft:chainmail_leggings","minecraft:charcoal","minecraft:chest","minecraft:chest_minecart","minecraft:chicken","minecraft:chicken_spawn_egg","minecraft:chipped_anvil","minecraft:chiseled_quartz_block","minecraft:chiseled_red_sandstone","minecraft:chiseled_sandstone","minecraft:chiseled_stone_bricks","minecraft:chorus_flower","minecraft:chorus_fruit","minecraft:chorus_plant","minecraft:clay","minecraft:clay_ball","minecraft:clock","minecraft:coal","minecraft:coal_block","minecraft:coal_ore","minecraft:coarse_dirt","minecraft:cobblestone","minecraft:cobblestone_slab","minecraft:cobblestone_stairs","minecraft:cobblestone_wall","minecraft:cobweb","minecraft:cocoa_beans","minecraft:cod","minecraft:cod_bucket","minecraft:cod_spawn_egg","minecraft:command_block","minecraft:command_block_minecart","minecraft:comparator","minecraft:compass","minecraft:composter","minecraft:conduit","minecraft:cooked_beef","minecraft:cooked_chicken","minecraft:cooked_cod","minecraft:cooked_mutton","minecraft:cooked_porkchop","minecraft:cooked_rabbit","minecraft:cooked_salmon","minecraft:cookie","minecraft:cornflower","minecraft:cow_spawn_egg","minecraft:cracked_stone_bricks","minecraft:crafting_table","minecraft:creeper_banner_pattern","minecraft:creeper_head","minecraft:creeper_spawn_egg","minecraft:crossbow","minecraft:cut_red_sandstone","minecraft:cut_red_sandstone_slab","minecraft:cut_sandstone","minecraft:cut_sandstone_slab","minecraft:cyan_banner","minecraft:cyan_bed","minecraft:cyan_carpet","minecraft:cyan_concrete","minecraft:cyan_concrete_powder","minecraft:cyan_dye","minecraft:cyan_glazed_terracotta","minecraft:cyan_shulker_box","minecraft:cyan_stained_glass","minecraft:cyan_stained_glass_pane","minecraft:cyan_terracotta","minecraft:cyan_wool","minecraft:damaged_anvil","minecraft:dandelion","minecraft:dark_oak_boat","minecraft:dark_oak_button","minecraft:dark_oak_door","minecraft:dark_oak_fence","minecraft:dark_oak_fence_gate","minecraft:dark_oak_leaves","minecraft:dark_oak_log","minecraft:dark_oak_planks","minecraft:dark_oak_pressure_plate","minecraft:dark_oak_sapling","minecraft:dark_oak_sign","minecraft:dark_oak_slab","minecraft:dark_oak_stairs","minecraft:dark_oak_trapdoor","minecraft:dark_oak_wood","minecraft:dark_prismarine","minecraft:dark_prismarine_slab","minecraft:dark_prismarine_stairs","minecraft:daylight_detector","minecraft:dead_brain_coral","minecraft:dead_brain_coral_block","minecraft:dead_brain_coral_fan","minecraft:dead_bubble_coral","minecraft:dead_bubble_coral_block","minecraft:dead_bubble_coral_fan","minecraft:dead_bush","minecraft:dead_fire_coral","minecraft:dead_fire_coral_block","minecraft:dead_fire_coral_fan","minecraft:dead_horn_coral","minecraft:dead_horn_coral_block","minecraft:dead_horn_coral_fan","minecraft:dead_tube_coral","minecraft:dead_tube_coral_block","minecraft:dead_tube_coral_fan","minecraft:debug_stick","minecraft:detector_rail","minecraft:diamond","minecraft:diamond_axe","minecraft:diamond_block","minecraft:diamond_boots","minecraft:diamond_chestplate","minecraft:diamond_helmet","minecraft:diamond_hoe","minecraft:diamond_horse_armor","minecraft:diamond_leggings","minecraft:diamond_ore","minecraft:diamond_pickaxe","minecraft:diamond_shovel","minecraft:diamond_sword","minecraft:diorite","minecraft:diorite_slab","minecraft:diorite_stairs","minecraft:diorite_wall","minecraft:dirt","minecraft:dispenser","minecraft:dolphin_spawn_egg","minecraft:donkey_spawn_egg","minecraft:dragon_breath","minecraft:dragon_egg","minecraft:dragon_head","minecraft:dried_kelp","minecraft:dried_kelp_block","minecraft:dropper","minecraft:drowned_spawn_egg","minecraft:egg","minecraft:elder_guardian_spawn_egg","minecraft:elytra","minecraft:emerald","minecraft:emerald_block","minecraft:emerald_ore","minecraft:enchanted_book","minecraft:enchanted_golden_apple","minecraft:enchanting_table","minecraft:end_crystal","minecraft:end_portal_frame","minecraft:end_rod","minecraft:end_stone","minecraft:end_stone_brick_slab","minecraft:end_stone_brick_stairs","minecraft:end_stone_brick_wall","minecraft:end_stone_bricks","minecraft:ender_chest","minecraft:ender_eye","minecraft:ender_pearl","minecraft:enderman_spawn_egg","minecraft:endermite_spawn_egg","minecraft:evoker_spawn_egg","minecraft:experience_bottle","minecraft:farmland","minecraft:feather","minecraft:fermented_spider_eye","minecraft:fern","minecraft:filled_map","minecraft:fire_charge","minecraft:fire_coral","minecraft:fire_coral_block","minecraft:fire_coral_fan","minecraft:firework_rocket","minecraft:firework_star","minecraft:fishing_rod","minecraft:fletching_table","minecraft:flint","minecraft:flint_and_steel","minecraft:flower_banner_pattern","minecraft:flower_pot","minecraft:fox_spawn_egg","minecraft:furnace","minecraft:furnace_minecart","minecraft:ghast_spawn_egg","minecraft:ghast_tear","minecraft:glass","minecraft:glass_bottle","minecraft:glass_pane","minecraft:glistering_melon_slice","minecraft:globe_banner_pattern","minecraft:glowstone","minecraft:glowstone_dust","minecraft:gold_block","minecraft:gold_ingot","minecraft:gold_nugget","minecraft:gold_ore","minecraft:golden_apple","minecraft:golden_axe","minecraft:golden_boots","minecraft:golden_carrot","minecraft:golden_chestplate","minecraft:golden_helmet","minecraft:golden_hoe","minecraft:golden_horse_armor","minecraft:golden_leggings","minecraft:golden_pickaxe","minecraft:golden_shovel","minecraft:golden_sword","minecraft:granite","minecraft:granite_slab","minecraft:granite_stairs","minecraft:granite_wall","minecraft:grass","minecraft:grass_block","minecraft:grass_path","minecraft:gravel","minecraft:gray_banner","minecraft:gray_bed","minecraft:gray_carpet","minecraft:gray_concrete","minecraft:gray_concrete_powder","minecraft:gray_dye","minecraft:gray_glazed_terracotta","minecraft:gray_shulker_box","minecraft:gray_stained_glass","minecraft:gray_stained_glass_pane","minecraft:gray_terracotta","minecraft:gray_wool","minecraft:green_banner","minecraft:green_bed","minecraft:green_carpet","minecraft:green_concrete","minecraft:green_concrete_powder","minecraft:green_dye","minecraft:green_glazed_terracotta","minecraft:green_shulker_box","minecraft:green_stained_glass","minecraft:green_stained_glass_pane","minecraft:green_terracotta","minecraft:green_wool","minecraft:grindstone","minecraft:guardian_spawn_egg","minecraft:gunpowder","minecraft:hay_block","minecraft:heart_of_the_sea","minecraft:heavy_weighted_pressure_plate","minecraft:hopper","minecraft:hopper_minecart","minecraft:horn_coral","minecraft:horn_coral_block","minecraft:horn_coral_fan","minecraft:horse_spawn_egg","minecraft:husk_spawn_egg","minecraft:ice","minecraft:infested_chiseled_stone_bricks","minecraft:infested_cobblestone","minecraft:infested_cracked_stone_bricks","minecraft:infested_mossy_stone_bricks","minecraft:infested_stone","minecraft:infested_stone_bricks","minecraft:ink_sac","minecraft:iron_axe","minecraft:iron_bars","minecraft:iron_block","minecraft:iron_boots","minecraft:iron_chestplate","minecraft:iron_door","minecraft:iron_helmet","minecraft:iron_hoe","minecraft:iron_horse_armor","minecraft:iron_ingot","minecraft:iron_leggings","minecraft:iron_nugget","minecraft:iron_ore","minecraft:iron_pickaxe","minecraft:iron_shovel","minecraft:iron_sword","minecraft:iron_trapdoor","minecraft:item_frame","minecraft:jack_o_lantern","minecraft:jigsaw","minecraft:jukebox","minecraft:jungle_boat","minecraft:jungle_button","minecraft:jungle_door","minecraft:jungle_fence","minecraft:jungle_fence_gate","minecraft:jungle_leaves","minecraft:jungle_log","minecraft:jungle_planks","minecraft:jungle_pressure_plate","minecraft:jungle_sapling","minecraft:jungle_sign","minecraft:jungle_slab","minecraft:jungle_stairs","minecraft:jungle_trapdoor","minecraft:jungle_wood","minecraft:kelp","minecraft:knowledge_book","minecraft:ladder","minecraft:lantern","minecraft:lapis_block","minecraft:lapis_lazuli","minecraft:lapis_ore","minecraft:large_fern","minecraft:lava_bucket","minecraft:lead","minecraft:leather","minecraft:leather_boots","minecraft:leather_chestplate","minecraft:leather_helmet","minecraft:leather_horse_armor","minecraft:leather_leggings","minecraft:lectern","minecraft:lever","minecraft:light_blue_banner","minecraft:light_blue_bed","minecraft:light_blue_carpet","minecraft:light_blue_concrete","minecraft:light_blue_concrete_powder","minecraft:light_blue_dye","minecraft:light_blue_glazed_terracotta","minecraft:light_blue_shulker_box","minecraft:light_blue_stained_glass","minecraft:light_blue_stained_glass_pane","minecraft:light_blue_terracotta","minecraft:light_blue_wool","minecraft:light_gray_banner","minecraft:light_gray_bed","minecraft:light_gray_carpet","minecraft:light_gray_concrete","minecraft:light_gray_concrete_powder","minecraft:light_gray_dye","minecraft:light_gray_glazed_terracotta","minecraft:light_gray_shulker_box","minecraft:light_gray_stained_glass","minecraft:light_gray_stained_glass_pane","minecraft:light_gray_terracotta","minecraft:light_gray_wool","minecraft:light_weighted_pressure_plate","minecraft:lilac","minecraft:lily_of_the_valley","minecraft:lily_pad","minecraft:lime_banner","minecraft:lime_bed","minecraft:lime_carpet","minecraft:lime_concrete","minecraft:lime_concrete_powder","minecraft:lime_dye","minecraft:lime_glazed_terracotta","minecraft:lime_shulker_box","minecraft:lime_stained_glass","minecraft:lime_stained_glass_pane","minecraft:lime_terracotta","minecraft:lime_wool","minecraft:lingering_potion","minecraft:llama_spawn_egg","minecraft:loom","minecraft:magenta_banner","minecraft:magenta_bed","minecraft:magenta_carpet","minecraft:magenta_concrete","minecraft:magenta_concrete_powder","minecraft:magenta_dye","minecraft:magenta_glazed_terracotta","minecraft:magenta_shulker_box","minecraft:magenta_stained_glass","minecraft:magenta_stained_glass_pane","minecraft:magenta_terracotta","minecraft:magenta_wool","minecraft:magma_block","minecraft:magma_cream","minecraft:magma_cube_spawn_egg","minecraft:map","minecraft:melon","minecraft:melon_seeds","minecraft:melon_slice","minecraft:milk_bucket","minecraft:minecart","minecraft:mojang_banner_pattern","minecraft:mooshroom_spawn_egg","minecraft:mossy_cobblestone","minecraft:mossy_cobblestone_slab","minecraft:mossy_cobblestone_stairs","minecraft:mossy_cobblestone_wall","minecraft:mossy_stone_brick_slab","minecraft:mossy_stone_brick_stairs","minecraft:mossy_stone_brick_wall","minecraft:mossy_stone_bricks","minecraft:mule_spawn_egg","minecraft:mushroom_stem","minecraft:mushroom_stew","minecraft:music_disc_11","minecraft:music_disc_13","minecraft:music_disc_blocks","minecraft:music_disc_cat","minecraft:music_disc_chirp","minecraft:music_disc_far","minecraft:music_disc_mall","minecraft:music_disc_mellohi","minecraft:music_disc_stal","minecraft:music_disc_strad","minecraft:music_disc_wait","minecraft:music_disc_ward","minecraft:mutton","minecraft:mycelium","minecraft:name_tag","minecraft:nautilus_shell","minecraft:nether_brick","minecraft:nether_brick_fence","minecraft:nether_brick_slab","minecraft:nether_brick_stairs","minecraft:nether_brick_wall","minecraft:nether_bricks","minecraft:nether_quartz_ore","minecraft:nether_star","minecraft:nether_wart","minecraft:nether_wart_block","minecraft:netherrack","minecraft:note_block","minecraft:oak_boat","minecraft:oak_button","minecraft:oak_door","minecraft:oak_fence","minecraft:oak_fence_gate","minecraft:oak_leaves","minecraft:oak_log","minecraft:oak_planks","minecraft:oak_pressure_plate","minecraft:oak_sapling","minecraft:oak_sign","minecraft:oak_slab","minecraft:oak_stairs","minecraft:oak_trapdoor","minecraft:oak_wood","minecraft:observer","minecraft:obsidian","minecraft:ocelot_spawn_egg","minecraft:orange_banner","minecraft:orange_bed","minecraft:orange_carpet","minecraft:orange_concrete","minecraft:orange_concrete_powder","minecraft:orange_dye","minecraft:orange_glazed_terracotta","minecraft:orange_shulker_box","minecraft:orange_stained_glass","minecraft:orange_stained_glass_pane","minecraft:orange_terracotta","minecraft:orange_tulip","minecraft:orange_wool","minecraft:oxeye_daisy","minecraft:packed_ice","minecraft:painting","minecraft:panda_spawn_egg","minecraft:paper","minecraft:parrot_spawn_egg","minecraft:peony","minecraft:petrified_oak_slab","minecraft:phantom_membrane","minecraft:phantom_spawn_egg","minecraft:pig_spawn_egg","minecraft:pillager_spawn_egg","minecraft:pink_banner","minecraft:pink_bed","minecraft:pink_carpet","minecraft:pink_concrete","minecraft:pink_concrete_powder","minecraft:pink_dye","minecraft:pink_glazed_terracotta","minecraft:pink_shulker_box","minecraft:pink_stained_glass","minecraft:pink_stained_glass_pane","minecraft:pink_terracotta","minecraft:pink_tulip","minecraft:pink_wool","minecraft:piston","minecraft:player_head","minecraft:podzol","minecraft:poisonous_potato","minecraft:polar_bear_spawn_egg","minecraft:polished_andesite","minecraft:polished_andesite_slab","minecraft:polished_andesite_stairs","minecraft:polished_diorite","minecraft:polished_diorite_slab","minecraft:polished_diorite_stairs","minecraft:polished_granite","minecraft:polished_granite_slab","minecraft:polished_granite_stairs","minecraft:popped_chorus_fruit","minecraft:poppy","minecraft:porkchop","minecraft:potato","minecraft:potion","minecraft:powered_rail","minecraft:prismarine","minecraft:prismarine_brick_slab","minecraft:prismarine_brick_stairs","minecraft:prismarine_bricks","minecraft:prismarine_crystals","minecraft:prismarine_shard","minecraft:prismarine_slab","minecraft:prismarine_stairs","minecraft:prismarine_wall","minecraft:pufferfish","minecraft:pufferfish_bucket","minecraft:pufferfish_spawn_egg","minecraft:pumpkin","minecraft:pumpkin_pie","minecraft:pumpkin_seeds","minecraft:purple_banner","minecraft:purple_bed","minecraft:purple_carpet","minecraft:purple_concrete","minecraft:purple_concrete_powder","minecraft:purple_dye","minecraft:purple_glazed_terracotta","minecraft:purple_shulker_box","minecraft:purple_stained_glass","minecraft:purple_stained_glass_pane","minecraft:purple_terracotta","minecraft:purple_wool","minecraft:purpur_block","minecraft:purpur_pillar","minecraft:purpur_slab","minecraft:purpur_stairs","minecraft:quartz","minecraft:quartz_block","minecraft:quartz_pillar","minecraft:quartz_slab","minecraft:quartz_stairs","minecraft:rabbit","minecraft:rabbit_foot","minecraft:rabbit_hide","minecraft:rabbit_spawn_egg","minecraft:rabbit_stew","minecraft:rail","minecraft:ravager_spawn_egg","minecraft:red_banner","minecraft:red_bed","minecraft:red_carpet","minecraft:red_concrete","minecraft:red_concrete_powder","minecraft:red_dye","minecraft:red_glazed_terracotta","minecraft:red_mushroom","minecraft:red_mushroom_block","minecraft:red_nether_brick_slab","minecraft:red_nether_brick_stairs","minecraft:red_nether_brick_wall","minecraft:red_nether_bricks","minecraft:red_sand","minecraft:red_sandstone","minecraft:red_sandstone_slab","minecraft:red_sandstone_stairs","minecraft:red_sandstone_wall","minecraft:red_shulker_box","minecraft:red_stained_glass","minecraft:red_stained_glass_pane","minecraft:red_terracotta","minecraft:red_tulip","minecraft:red_wool","minecraft:redstone","minecraft:redstone_block","minecraft:redstone_lamp","minecraft:redstone_ore","minecraft:redstone_torch","minecraft:repeater","minecraft:repeating_command_block","minecraft:rose_bush","minecraft:rotten_flesh","minecraft:saddle","minecraft:salmon","minecraft:salmon_bucket","minecraft:salmon_spawn_egg","minecraft:sand","minecraft:sandstone","minecraft:sandstone_slab","minecraft:sandstone_stairs","minecraft:sandstone_wall","minecraft:scaffolding","minecraft:scute","minecraft:sea_lantern","minecraft:sea_pickle","minecraft:seagrass","minecraft:shears","minecraft:sheep_spawn_egg","minecraft:shield","minecraft:shulker_box","minecraft:shulker_shell","minecraft:shulker_spawn_egg","minecraft:silverfish_spawn_egg","minecraft:skeleton_horse_spawn_egg","minecraft:skeleton_skull","minecraft:skeleton_spawn_egg","minecraft:skull_banner_pattern","minecraft:slime_ball","minecraft:slime_block","minecraft:slime_spawn_egg","minecraft:smithing_table","minecraft:smoker","minecraft:smooth_quartz","minecraft:smooth_quartz_slab","minecraft:smooth_quartz_stairs","minecraft:smooth_red_sandstone","minecraft:smooth_red_sandstone_slab","minecraft:smooth_red_sandstone_stairs","minecraft:smooth_sandstone","minecraft:smooth_sandstone_slab","minecraft:smooth_sandstone_stairs","minecraft:smooth_stone","minecraft:smooth_stone_slab","minecraft:snow","minecraft:snow_block","minecraft:snowball","minecraft:soul_sand","minecraft:spawner","minecraft:spectral_arrow","minecraft:spider_eye","minecraft:spider_spawn_egg","minecraft:splash_potion","minecraft:sponge","minecraft:spruce_boat","minecraft:spruce_button","minecraft:spruce_door","minecraft:spruce_fence","minecraft:spruce_fence_gate","minecraft:spruce_leaves","minecraft:spruce_log","minecraft:spruce_planks","minecraft:spruce_pressure_plate","minecraft:spruce_sapling","minecraft:spruce_sign","minecraft:spruce_slab","minecraft:spruce_stairs","minecraft:spruce_trapdoor","minecraft:spruce_wood","minecraft:squid_spawn_egg","minecraft:stick","minecraft:sticky_piston","minecraft:stone","minecraft:stone_axe","minecraft:stone_brick_slab","minecraft:stone_brick_stairs","minecraft:stone_brick_wall","minecraft:stone_bricks","minecraft:stone_button","minecraft:stone_hoe","minecraft:stone_pickaxe","minecraft:stone_pressure_plate","minecraft:stone_shovel","minecraft:stone_slab","minecraft:stone_stairs","minecraft:stone_sword","minecraft:stonecutter","minecraft:stray_spawn_egg","minecraft:string","minecraft:stripped_acacia_log","minecraft:stripped_acacia_wood","minecraft:stripped_birch_log","minecraft:stripped_birch_wood","minecraft:stripped_dark_oak_log","minecraft:stripped_dark_oak_wood","minecraft:stripped_jungle_log","minecraft:stripped_jungle_wood","minecraft:stripped_oak_log","minecraft:stripped_oak_wood","minecraft:stripped_spruce_log","minecraft:stripped_spruce_wood","minecraft:structure_block","minecraft:structure_void","minecraft:sugar","minecraft:sugar_cane","minecraft:sunflower","minecraft:suspicious_stew","minecraft:sweet_berries","minecraft:tall_grass","minecraft:terracotta","minecraft:tipped_arrow","minecraft:tnt","minecraft:tnt_minecart","minecraft:torch","minecraft:totem_of_undying","minecraft:trader_llama_spawn_egg","minecraft:trapped_chest","minecraft:trident","minecraft:tripwire_hook","minecraft:tropical_fish","minecraft:tropical_fish_bucket","minecraft:tropical_fish_spawn_egg","minecraft:tube_coral","minecraft:tube_coral_block","minecraft:tube_coral_fan","minecraft:turtle_egg","minecraft:turtle_helmet","minecraft:turtle_spawn_egg","minecraft:vex_spawn_egg","minecraft:villager_spawn_egg","minecraft:vindicator_spawn_egg","minecraft:vine","minecraft:wandering_trader_spawn_egg","minecraft:water_bucket","minecraft:wet_sponge","minecraft:wheat","minecraft:wheat_seeds","minecraft:white_banner","minecraft:white_bed","minecraft:white_carpet","minecraft:white_concrete","minecraft:white_concrete_powder","minecraft:white_dye","minecraft:white_glazed_terracotta","minecraft:white_shulker_box","minecraft:white_stained_glass","minecraft:white_stained_glass_pane","minecraft:white_terracotta","minecraft:white_tulip","minecraft:white_wool","minecraft:witch_spawn_egg","minecraft:wither_rose","minecraft:wither_skeleton_skull","minecraft:wither_skeleton_spawn_egg","minecraft:wolf_spawn_egg","minecraft:wooden_axe","minecraft:wooden_hoe","minecraft:wooden_pickaxe","minecraft:wooden_shovel","minecraft:wooden_sword","minecraft:writable_book","minecraft:written_book","minecraft:yellow_banner","minecraft:yellow_bed","minecraft:yellow_carpet","minecraft:yellow_concrete","minecraft:yellow_concrete_powder","minecraft:yellow_dye","minecraft:yellow_glazed_terracotta","minecraft:yellow_shulker_box","minecraft:yellow_stained_glass","minecraft:yellow_stained_glass_pane","minecraft:yellow_terracotta","minecraft:yellow_wool","minecraft:zombie_head","minecraft:zombie_horse_spawn_egg","minecraft:zombie_pigman_spawn_egg","minecraft:zombie_spawn_egg","minecraft:zombie_villager_spawn_egg"],"entities":["minecraft:area_effect_cloud","minecraft:armor_stand","minecraft:arrow","minecraft:bat","minecraft:blaze","minecraft:boat","minecraft:cat","minecraft:cave_spider","minecraft:chest_minecart","minecraft:chicken","minecraft:cod","minecraft:command_block_minecart","minecraft:cow","minecraft:creeper","minecraft:dolphin","minecraft:donkey","minecraft:dragon_fireball","minecraft:drowned","minecraft:egg","minecraft:elder_guardian","minecraft:end_crystal","minecraft:ender_dragon","minecraft:ender_pearl","minecraft:enderman","minecraft:endermite","minecraft:evoker","minecraft:evoker_fangs","minecraft:experience_bottle","minecraft:experience_orb","minecraft:eye_of_ender","minecraft:falling_block","minecraft:fireball","minecraft:firework_rocket","minecraft:fishing_bobber","minecraft:fox","minecraft:furnace_minecart","minecraft:ghast","minecraft:giant","minecraft:guardian","minecraft:hopper_minecart","minecraft:horse","minecraft:husk","minecraft:illusioner","minecraft:iron_golem","minecraft:item","minecraft:item_frame","minecraft:leash_knot","minecraft:lightning_bolt","minecraft:llama","minecraft:llama_spit","minecraft:magma_cube","minecraft:minecart","minecraft:mooshroom","minecraft:mule","minecraft:ocelot","minecraft:painting","minecraft:panda","minecraft:parrot","minecraft:phantom","minecraft:pig","minecraft:pillager","minecraft:player","minecraft:polar_bear","minecraft:potion","minecraft:pufferfish","minecraft:rabbit","minecraft:ravager","minecraft:salmon","minecraft:sheep","minecraft:shulker","minecraft:shulker_bullet","minecraft:silverfish","minecraft:skeleton","minecraft:skeleton_horse","minecraft:slime","minecraft:small_fireball","minecraft:snow_golem","minecraft:snowball","minecraft:spawner_minecart","minecraft:spectral_arrow","minecraft:spider","minecraft:squid","minecraft:stray","minecraft:tnt","minecraft:tnt_minecart","minecraft:trader_llama","minecraft:trident","minecraft:tropical_fish","minecraft:turtle","minecraft:vex","minecraft:villager","minecraft:vindicator","minecraft:wandering_trader","minecraft:witch","minecraft:wither","minecraft:wither_skeleton","minecraft:wither_skull","minecraft:wolf","minecraft:zombie","minecraft:zombie_horse","minecraft:zombie_pigman","minecraft:zombie_villager"],"biomes":["minecraft:badlands","minecraft:badlands_plateau","minecraft:bamboo_jungle","minecraft:bamboo_jungle_hills","minecraft:beach","minecraft:birch_forest","minecraft:birch_forest_hills","minecraft:cold_ocean","minecraft:dark_forest","minecraft:dark_forest_hills","minecraft:deep_cold_ocean","minecraft:deep_frozen_ocean","minecraft:deep_lukewarm_ocean","minecraft:deep_ocean","minecraft:deep_warm_ocean","minecraft:desert","minecraft:desert_hills","minecraft:desert_lakes","minecraft:end_barrens","minecraft:end_highlands","minecraft:end_midlands","minecraft:eroded_badlands","minecraft:flower_forest","minecraft:forest","minecraft:frozen_ocean","minecraft:frozen_river","minecraft:giant_spruce_taiga","minecraft:giant_spruce_taiga_hills","minecraft:giant_tree_taiga","minecraft:giant_tree_taiga_hills","minecraft:gravelly_mountains","minecraft:ice_spikes","minecraft:jungle","minecraft:jungle_edge","minecraft:jungle_hills","minecraft:lukewarm_ocean","minecraft:modified_badlands_plateau","minecraft:modified_gravelly_mountains","minecraft:modified_jungle","minecraft:modified_jungle_edge","minecraft:modified_wooded_badlands_plateau","minecraft:mountain_edge","minecraft:mountains","minecraft:mushroom_field_shore","minecraft:mushroom_fields","minecraft:nether","minecraft:ocean","minecraft:plains","minecraft:river","minecraft:savanna","minecraft:savanna_plateau","minecraft:shattered_savanna","minecraft:shattered_savanna_plateau","minecraft:small_end_islands","minecraft:snowy_beach","minecraft:snowy_mountains","minecraft:snowy_taiga","minecraft:snowy_taiga_hills","minecraft:snowy_taiga_mountains","minecraft:snowy_tundra","minecraft:stone_shore","minecraft:sunflower_plains","minecraft:swamp","minecraft:swamp_hills","minecraft:taiga","minecraft:taiga_hills","minecraft:taiga_mountains","minecraft:tall_birch_forest","minecraft:tall_birch_hills","minecraft:the_end","minecraft:the_void","minecraft:warm_ocean","minecraft:wooded_badlands_plateau","minecraft:wooded_hills","minecraft:wooded_mountains"],"blocktags":{"minecraft:slabs":["minecraft:stone_slab","minecraft:smooth_stone_slab","minecraft:stone_brick_slab","minecraft:sandstone_slab","minecraft:acacia_slab","minecraft:birch_slab","minecraft:dark_oak_slab","minecraft:jungle_slab","minecraft:oak_slab","minecraft:spruce_slab","minecraft:purpur_slab","minecraft:quartz_slab","minecraft:red_sandstone_slab","minecraft:brick_slab","minecraft:cobblestone_slab","minecraft:nether_brick_slab","minecraft:petrified_oak_slab","minecraft:prismarine_slab","minecraft:prismarine_brick_slab","minecraft:dark_prismarine_slab","minecraft:polished_granite_slab","minecraft:smooth_red_sandstone_slab","minecraft:mossy_stone_brick_slab","minecraft:polished_diorite_slab","minecraft:mossy_cobblestone_slab","minecraft:end_stone_brick_slab","minecraft:smooth_sandstone_slab","minecraft:smooth_quartz_slab","minecraft:granite_slab","minecraft:andesite_slab","minecraft:red_nether_brick_slab","minecraft:polished_andesite_slab","minecraft:diorite_slab","minecraft:cut_sandstone_slab","minecraft:cut_red_sandstone_slab"],"minecraft:carpets":["minecraft:white_carpet","minecraft:orange_carpet","minecraft:magenta_carpet","minecraft:light_blue_carpet","minecraft:yellow_carpet","minecraft:lime_carpet","minecraft:pink_carpet","minecraft:gray_carpet","minecraft:light_gray_carpet","minecraft:cyan_carpet","minecraft:purple_carpet","minecraft:blue_carpet","minecraft:brown_carpet","minecraft:green_carpet","minecraft:red_carpet","minecraft:black_carpet"],"minecraft:stairs":["minecraft:oak_stairs","minecraft:cobblestone_stairs","minecraft:spruce_stairs","minecraft:sandstone_stairs","minecraft:acacia_stairs","minecraft:jungle_stairs","minecraft:birch_stairs","minecraft:dark_oak_stairs","minecraft:nether_brick_stairs","minecraft:stone_brick_stairs","minecraft:brick_stairs","minecraft:purpur_stairs","minecraft:quartz_stairs","minecraft:red_sandstone_stairs","minecraft:prismarine_brick_stairs","minecraft:prismarine_stairs","minecraft:dark_prismarine_stairs","minecraft:polished_granite_stairs","minecraft:smooth_red_sandstone_stairs","minecraft:mossy_stone_brick_stairs","minecraft:polished_diorite_stairs","minecraft:mossy_cobblestone_stairs","minecraft:end_stone_brick_stairs","minecraft:stone_stairs","minecraft:smooth_sandstone_stairs","minecraft:smooth_quartz_stairs","minecraft:granite_stairs","minecraft:andesite_stairs","minecraft:red_nether_brick_stairs","minecraft:polished_andesite_stairs","minecraft:diorite_stairs"],"minecraft:wooden_doors":["minecraft:oak_door","minecraft:spruce_door","minecraft:birch_door","minecraft:jungle_door","minecraft:acacia_door","minecraft:dark_oak_door"],"minecraft:jungle_logs":["minecraft:jungle_log","minecraft:jungle_wood","minecraft:stripped_jungle_log","minecraft:stripped_jungle_wood"],"minecraft:planks":["minecraft:oak_planks","minecraft:spruce_planks","minecraft:birch_planks","minecraft:jungle_planks","minecraft:acacia_planks","minecraft:dark_oak_planks"],"minecraft:wall_corals":["minecraft:tube_coral_wall_fan","minecraft:brain_coral_wall_fan","minecraft:bubble_coral_wall_fan","minecraft:fire_coral_wall_fan","minecraft:horn_coral_wall_fan"],"minecraft:acacia_logs":["minecraft:acacia_log","minecraft:acacia_wood","minecraft:stripped_acacia_log","minecraft:stripped_acacia_wood"],"minecraft:wither_immune":["minecraft:barrier","minecraft:bedrock","minecraft:end_portal","minecraft:end_portal_frame","minecraft:end_gateway","minecraft:command_block","minecraft:repeating_command_block","minecraft:chain_command_block","minecraft:structure_block","minecraft:jigsaw","minecraft:moving_piston"],"minecraft:flower_pots":["minecraft:flower_pot","minecraft:potted_poppy","minecraft:potted_blue_orchid","minecraft:potted_allium","minecraft:potted_azure_bluet","minecraft:potted_red_tulip","minecraft:potted_orange_tulip","minecraft:potted_white_tulip","minecraft:potted_pink_tulip","minecraft:potted_oxeye_daisy","minecraft:potted_dandelion","minecraft:potted_oak_sapling","minecraft:potted_spruce_sapling","minecraft:potted_birch_sapling","minecraft:potted_jungle_sapling","minecraft:potted_acacia_sapling","minecraft:potted_dark_oak_sapling","minecraft:potted_red_mushroom","minecraft:potted_brown_mushroom","minecraft:potted_dead_bush","minecraft:potted_fern","minecraft:potted_cactus","minecraft:potted_cornflower","minecraft:potted_lily_of_the_valley","minecraft:potted_wither_rose","minecraft:potted_bamboo"],"minecraft:stone_bricks":["minecraft:stone_bricks","minecraft:mossy_stone_bricks","minecraft:cracked_stone_bricks","minecraft:chiseled_stone_bricks"],"minecraft:enderman_holdable":["minecraft:grass_block","minecraft:dirt","minecraft:coarse_dirt","minecraft:podzol","minecraft:sand","minecraft:red_sand","minecraft:gravel","minecraft:brown_mushroom","minecraft:red_mushroom","minecraft:tnt","minecraft:cactus","minecraft:clay","minecraft:pumpkin","minecraft:carved_pumpkin","minecraft:melon","minecraft:mycelium","minecraft:netherrack","minecraft:dandelion","minecraft:poppy","minecraft:blue_orchid","minecraft:allium","minecraft:azure_bluet","minecraft:red_tulip","minecraft:orange_tulip","minecraft:white_tulip","minecraft:pink_tulip","minecraft:oxeye_daisy","minecraft:cornflower","minecraft:lily_of_the_valley","minecraft:wither_rose"],"minecraft:spruce_logs":["minecraft:spruce_log","minecraft:spruce_wood","minecraft:stripped_spruce_log","minecraft:stripped_spruce_wood"],"minecraft:wooden_slabs":["minecraft:oak_slab","minecraft:spruce_slab","minecraft:birch_slab","minecraft:jungle_slab","minecraft:acacia_slab","minecraft:dark_oak_slab"],"minecraft:coral_blocks":["minecraft:tube_coral_block","minecraft:brain_coral_block","minecraft:bubble_coral_block","minecraft:fire_coral_block","minecraft:horn_coral_block"],"minecraft:signs":["minecraft:oak_sign","minecraft:spruce_sign","minecraft:birch_sign","minecraft:acacia_sign","minecraft:jungle_sign","minecraft:dark_oak_sign","minecraft:oak_wall_sign","minecraft:spruce_wall_sign","minecraft:birch_wall_sign","minecraft:acacia_wall_sign","minecraft:jungle_wall_sign","minecraft:dark_oak_wall_sign"],"minecraft:dark_oak_logs":["minecraft:dark_oak_log","minecraft:dark_oak_wood","minecraft:stripped_dark_oak_log","minecraft:stripped_dark_oak_wood"],"minecraft:sand":["minecraft:sand","minecraft:red_sand"],"minecraft:valid_spawn":["minecraft:grass_block","minecraft:podzol"],"minecraft:underwater_bonemeals":["minecraft:seagrass","minecraft:tube_coral_fan","minecraft:brain_coral_fan","minecraft:bubble_coral_fan","minecraft:fire_coral_fan","minecraft:horn_coral_fan","minecraft:tube_coral","minecraft:brain_coral","minecraft:bubble_coral","minecraft:fire_coral","minecraft:horn_coral","minecraft:tube_coral_wall_fan","minecraft:brain_coral_wall_fan","minecraft:bubble_coral_wall_fan","minecraft:fire_coral_wall_fan","minecraft:horn_coral_wall_fan"],"minecraft:oak_logs":["minecraft:oak_log","minecraft:oak_wood","minecraft:stripped_oak_log","minecraft:stripped_oak_wood"],"minecraft:buttons":["minecraft:stone_button","minecraft:oak_button","minecraft:spruce_button","minecraft:birch_button","minecraft:jungle_button","minecraft:acacia_button","minecraft:dark_oak_button"],"minecraft:wooden_pressure_plates":["minecraft:oak_pressure_plate","minecraft:spruce_pressure_plate","minecraft:birch_pressure_plate","minecraft:jungle_pressure_plate","minecraft:acacia_pressure_plate","minecraft:dark_oak_pressure_plate"],"minecraft:beds":["minecraft:red_bed","minecraft:black_bed","minecraft:blue_bed","minecraft:brown_bed","minecraft:cyan_bed","minecraft:gray_bed","minecraft:green_bed","minecraft:light_blue_bed","minecraft:light_gray_bed","minecraft:lime_bed","minecraft:magenta_bed","minecraft:orange_bed","minecraft:pink_bed","minecraft:purple_bed","minecraft:white_bed","minecraft:yellow_bed"],"minecraft:walls":["minecraft:cobblestone_wall","minecraft:mossy_cobblestone_wall","minecraft:brick_wall","minecraft:prismarine_wall","minecraft:red_sandstone_wall","minecraft:mossy_stone_brick_wall","minecraft:granite_wall","minecraft:stone_brick_wall","minecraft:nether_brick_wall","minecraft:andesite_wall","minecraft:red_nether_brick_wall","minecraft:sandstone_wall","minecraft:end_stone_brick_wall","minecraft:diorite_wall"],"minecraft:rails":["minecraft:rail","minecraft:powered_rail","minecraft:detector_rail","minecraft:activator_rail"],"minecraft:birch_logs":["minecraft:birch_log","minecraft:birch_wood","minecraft:stripped_birch_log","minecraft:stripped_birch_wood"],"minecraft:wooden_trapdoors":["minecraft:acacia_trapdoor","minecraft:birch_trapdoor","minecraft:dark_oak_trapdoor","minecraft:jungle_trapdoor","minecraft:oak_trapdoor","minecraft:spruce_trapdoor"],"minecraft:wooden_fences":["minecraft:oak_fence","minecraft:acacia_fence","minecraft:dark_oak_fence","minecraft:spruce_fence","minecraft:birch_fence","minecraft:jungle_fence"],"minecraft:saplings":["minecraft:oak_sapling","minecraft:spruce_sapling","minecraft:birch_sapling","minecraft:jungle_sapling","minecraft:acacia_sapling","minecraft:dark_oak_sapling"],"minecraft:small_flowers":["minecraft:dandelion","minecraft:poppy","minecraft:blue_orchid","minecraft:allium","minecraft:azure_bluet","minecraft:red_tulip","minecraft:orange_tulip","minecraft:white_tulip","minecraft:pink_tulip","minecraft:oxeye_daisy","minecraft:cornflower","minecraft:lily_of_the_valley","minecraft:wither_rose"],"minecraft:bamboo_plantable_on":["minecraft:bamboo","minecraft:bamboo_sapling","minecraft:gravel","minecraft:sand","minecraft:red_sand","minecraft:dirt","minecraft:grass_block","minecraft:podzol","minecraft:coarse_dirt","minecraft:mycelium"],"minecraft:ice":["minecraft:ice","minecraft:packed_ice","minecraft:blue_ice","minecraft:frosted_ice"],"minecraft:wooden_stairs":["minecraft:oak_stairs","minecraft:spruce_stairs","minecraft:birch_stairs","minecraft:jungle_stairs","minecraft:acacia_stairs","minecraft:dark_oak_stairs"],"minecraft:anvil":["minecraft:anvil","minecraft:chipped_anvil","minecraft:damaged_anvil"],"minecraft:logs":["minecraft:dark_oak_log","minecraft:dark_oak_wood","minecraft:stripped_dark_oak_log","minecraft:stripped_dark_oak_wood","minecraft:oak_log","minecraft:oak_wood","minecraft:stripped_oak_log","minecraft:stripped_oak_wood","minecraft:acacia_log","minecraft:acacia_wood","minecraft:stripped_acacia_log","minecraft:stripped_acacia_wood","minecraft:birch_log","minecraft:birch_wood","minecraft:stripped_birch_log","minecraft:stripped_birch_wood","minecraft:jungle_log","minecraft:jungle_wood","minecraft:stripped_jungle_log","minecraft:stripped_jungle_wood","minecraft:spruce_log","minecraft:spruce_wood","minecraft:stripped_spruce_log","minecraft:stripped_spruce_wood"],"minecraft:corals":["minecraft:tube_coral_fan","minecraft:brain_coral_fan","minecraft:bubble_coral_fan","minecraft:fire_coral_fan","minecraft:horn_coral_fan","minecraft:tube_coral","minecraft:brain_coral","minecraft:bubble_coral","minecraft:fire_coral","minecraft:horn_coral"],"minecraft:wooden_buttons":["minecraft:oak_button","minecraft:spruce_button","minecraft:birch_button","minecraft:jungle_button","minecraft:acacia_button","minecraft:dark_oak_button"],"minecraft:wool":["minecraft:white_wool","minecraft:orange_wool","minecraft:magenta_wool","minecraft:light_blue_wool","minecraft:yellow_wool","minecraft:lime_wool","minecraft:pink_wool","minecraft:gray_wool","minecraft:light_gray_wool","minecraft:cyan_wool","minecraft:purple_wool","minecraft:blue_wool","minecraft:brown_wool","minecraft:green_wool","minecraft:red_wool","minecraft:black_wool"],"minecraft:coral_plants":["minecraft:tube_coral","minecraft:brain_coral","minecraft:bubble_coral","minecraft:fire_coral","minecraft:horn_coral"],"minecraft:banners":["minecraft:white_banner","minecraft:orange_banner","minecraft:magenta_banner","minecraft:light_blue_banner","minecraft:yellow_banner","minecraft:lime_banner","minecraft:pink_banner","minecraft:gray_banner","minecraft:light_gray_banner","minecraft:cyan_banner","minecraft:purple_banner","minecraft:blue_banner","minecraft:brown_banner","minecraft:green_banner","minecraft:red_banner","minecraft:black_banner","minecraft:white_wall_banner","minecraft:orange_wall_banner","minecraft:magenta_wall_banner","minecraft:light_blue_wall_banner","minecraft:yellow_wall_banner","minecraft:lime_wall_banner","minecraft:pink_wall_banner","minecraft:gray_wall_banner","minecraft:light_gray_wall_banner","minecraft:cyan_wall_banner","minecraft:purple_wall_banner","minecraft:blue_wall_banner","minecraft:brown_wall_banner","minecraft:green_wall_banner","minecraft:red_wall_banner","minecraft:black_wall_banner"],"minecraft:dragon_immune":["minecraft:barrier","minecraft:bedrock","minecraft:end_portal","minecraft:end_portal_frame","minecraft:end_gateway","minecraft:command_block","minecraft:repeating_command_block","minecraft:chain_command_block","minecraft:structure_block","minecraft:jigsaw","minecraft:moving_piston","minecraft:obsidian","minecraft:end_stone","minecraft:iron_bars"],"minecraft:doors":["minecraft:iron_door","minecraft:oak_door","minecraft:spruce_door","minecraft:birch_door","minecraft:jungle_door","minecraft:acacia_door","minecraft:dark_oak_door"],"minecraft:fences":["minecraft:nether_brick_fence","minecraft:oak_fence","minecraft:acacia_fence","minecraft:dark_oak_fence","minecraft:spruce_fence","minecraft:birch_fence","minecraft:jungle_fence"],"minecraft:wall_signs":["minecraft:oak_wall_sign","minecraft:spruce_wall_sign","minecraft:birch_wall_sign","minecraft:acacia_wall_sign","minecraft:jungle_wall_sign","minecraft:dark_oak_wall_sign"],"minecraft:standing_signs":["minecraft:oak_sign","minecraft:spruce_sign","minecraft:birch_sign","minecraft:acacia_sign","minecraft:jungle_sign","minecraft:dark_oak_sign"],"minecraft:dirt_like":["minecraft:dirt","minecraft:grass_block","minecraft:podzol","minecraft:coarse_dirt","minecraft:mycelium"],"minecraft:impermeable":["minecraft:glass","minecraft:white_stained_glass","minecraft:orange_stained_glass","minecraft:magenta_stained_glass","minecraft:light_blue_stained_glass","minecraft:yellow_stained_glass","minecraft:lime_stained_glass","minecraft:pink_stained_glass","minecraft:gray_stained_glass","minecraft:light_gray_stained_glass","minecraft:cyan_stained_glass","minecraft:purple_stained_glass","minecraft:blue_stained_glass","minecraft:brown_stained_glass","minecraft:green_stained_glass","minecraft:red_stained_glass","minecraft:black_stained_glass"],"minecraft:trapdoors":["minecraft:iron_trapdoor","minecraft:acacia_trapdoor","minecraft:birch_trapdoor","minecraft:dark_oak_trapdoor","minecraft:jungle_trapdoor","minecraft:oak_trapdoor","minecraft:spruce_trapdoor"],"minecraft:leaves":["minecraft:jungle_leaves","minecraft:oak_leaves","minecraft:spruce_leaves","minecraft:dark_oak_leaves","minecraft:acacia_leaves","minecraft:birch_leaves"]},"itemtags":{"minecraft:boats":["minecraft:oak_boat","minecraft:spruce_boat","minecraft:birch_boat","minecraft:jungle_boat","minecraft:acacia_boat","minecraft:dark_oak_boat"],"minecraft:banners":["minecraft:white_banner","minecraft:orange_banner","minecraft:magenta_banner","minecraft:light_blue_banner","minecraft:yellow_banner","minecraft:lime_banner","minecraft:pink_banner","minecraft:gray_banner","minecraft:light_gray_banner","minecraft:cyan_banner","minecraft:purple_banner","minecraft:blue_banner","minecraft:brown_banner","minecraft:green_banner","minecraft:red_banner","minecraft:black_banner"],"minecraft:arrows":["minecraft:arrow","minecraft:tipped_arrow","minecraft:spectral_arrow"],"minecraft:coals":["minecraft:coal","minecraft:charcoal"],"minecraft:music_discs":["minecraft:music_disc_13","minecraft:music_disc_cat","minecraft:music_disc_blocks","minecraft:music_disc_chirp","minecraft:music_disc_far","minecraft:music_disc_mall","minecraft:music_disc_mellohi","minecraft:music_disc_stal","minecraft:music_disc_strad","minecraft:music_disc_ward","minecraft:music_disc_11","minecraft:music_disc_wait"],"minecraft:fishes":["minecraft:cod","minecraft:cooked_cod","minecraft:salmon","minecraft:cooked_salmon","minecraft:pufferfish","minecraft:tropical_fish"]},"entitytags":{"minecraft:raiders":["minecraft:evoker","minecraft:pillager","minecraft:ravager","minecraft:vindicator","minecraft:illusioner","minecraft:witch"],"minecraft:skeletons":["minecraft:skeleton","minecraft:stray","minecraft:wither_skeleton"]}} \ No newline at end of file +{ + "blocks": { + "minecraft:acacia_button": { + "properties": { + "face": { + "values": [ + "floor", + "wall", + "ceiling" + ], + "type": "enum" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:acacia_button[face=wall,facing=north,powered=false]" + }, + "minecraft:acacia_door": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + }, + "hinge": { + "values": [ + "left", + "right" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:acacia_door[facing=north,half=lower,hinge=left,open=false,powered=false]" + }, + "minecraft:acacia_fence": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:acacia_fence[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:acacia_fence_gate": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "in_wall": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:acacia_fence_gate[facing=north,in_wall=false,open=false,powered=false]" + }, + "minecraft:acacia_leaves": { + "properties": { + "distance": { + "values": [ + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ], + "type": "int" + }, + "persistent": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:acacia_leaves[distance=7,persistent=false]" + }, + "minecraft:acacia_log": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:acacia_log[axis=y]" + }, + "minecraft:acacia_planks": { + "properties": {}, + "defaultstate": "minecraft:acacia_planks" + }, + "minecraft:acacia_pressure_plate": { + "properties": { + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:acacia_pressure_plate[powered=false]" + }, + "minecraft:acacia_sapling": { + "properties": { + "stage": { + "values": [ + "0", + "1" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:acacia_sapling[stage=0]" + }, + "minecraft:acacia_sign": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:acacia_sign[rotation=0,waterlogged=false]" + }, + "minecraft:acacia_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:acacia_slab[type=bottom,waterlogged=false]" + }, + "minecraft:acacia_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:acacia_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:acacia_trapdoor": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:acacia_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]" + }, + "minecraft:acacia_wall_sign": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:acacia_wall_sign[facing=north,waterlogged=false]" + }, + "minecraft:acacia_wood": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:acacia_wood[axis=y]" + }, + "minecraft:activator_rail": { + "properties": { + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "shape": { + "values": [ + "north_south", + "east_west", + "ascending_east", + "ascending_west", + "ascending_north", + "ascending_south" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:activator_rail[powered=false,shape=north_south]" + }, + "minecraft:air": { + "properties": {}, + "defaultstate": "minecraft:air" + }, + "minecraft:allium": { + "properties": {}, + "defaultstate": "minecraft:allium" + }, + "minecraft:andesite": { + "properties": {}, + "defaultstate": "minecraft:andesite" + }, + "minecraft:andesite_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:andesite_slab[type=bottom,waterlogged=false]" + }, + "minecraft:andesite_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:andesite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:andesite_wall": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:andesite_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]" + }, + "minecraft:anvil": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:anvil[facing=north]" + }, + "minecraft:attached_melon_stem": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:attached_melon_stem[facing=north]" + }, + "minecraft:attached_pumpkin_stem": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:attached_pumpkin_stem[facing=north]" + }, + "minecraft:azure_bluet": { + "properties": {}, + "defaultstate": "minecraft:azure_bluet" + }, + "minecraft:bamboo": { + "properties": { + "age": { + "values": [ + "0", + "1" + ], + "type": "int" + }, + "leaves": { + "values": [ + "none", + "small", + "large" + ], + "type": "enum" + }, + "stage": { + "values": [ + "0", + "1" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:bamboo[age=0,leaves=none,stage=0]" + }, + "minecraft:bamboo_sapling": { + "properties": {}, + "defaultstate": "minecraft:bamboo_sapling" + }, + "minecraft:barrel": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:barrel[facing=north,open=false]" + }, + "minecraft:barrier": { + "properties": {}, + "defaultstate": "minecraft:barrier" + }, + "minecraft:beacon": { + "properties": {}, + "defaultstate": "minecraft:beacon" + }, + "minecraft:bedrock": { + "properties": {}, + "defaultstate": "minecraft:bedrock" + }, + "minecraft:beetroots": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:beetroots[age=0]" + }, + "minecraft:bell": { + "properties": { + "attachment": { + "values": [ + "floor", + "ceiling", + "single_wall", + "double_wall" + ], + "type": "enum" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:bell[attachment=floor,facing=north]" + }, + "minecraft:birch_button": { + "properties": { + "face": { + "values": [ + "floor", + "wall", + "ceiling" + ], + "type": "enum" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:birch_button[face=wall,facing=north,powered=false]" + }, + "minecraft:birch_door": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + }, + "hinge": { + "values": [ + "left", + "right" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:birch_door[facing=north,half=lower,hinge=left,open=false,powered=false]" + }, + "minecraft:birch_fence": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:birch_fence[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:birch_fence_gate": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "in_wall": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:birch_fence_gate[facing=north,in_wall=false,open=false,powered=false]" + }, + "minecraft:birch_leaves": { + "properties": { + "distance": { + "values": [ + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ], + "type": "int" + }, + "persistent": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:birch_leaves[distance=7,persistent=false]" + }, + "minecraft:birch_log": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:birch_log[axis=y]" + }, + "minecraft:birch_planks": { + "properties": {}, + "defaultstate": "minecraft:birch_planks" + }, + "minecraft:birch_pressure_plate": { + "properties": { + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:birch_pressure_plate[powered=false]" + }, + "minecraft:birch_sapling": { + "properties": { + "stage": { + "values": [ + "0", + "1" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:birch_sapling[stage=0]" + }, + "minecraft:birch_sign": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:birch_sign[rotation=0,waterlogged=false]" + }, + "minecraft:birch_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:birch_slab[type=bottom,waterlogged=false]" + }, + "minecraft:birch_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:birch_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:birch_trapdoor": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:birch_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]" + }, + "minecraft:birch_wall_sign": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:birch_wall_sign[facing=north,waterlogged=false]" + }, + "minecraft:birch_wood": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:birch_wood[axis=y]" + }, + "minecraft:black_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:black_banner[rotation=0]" + }, + "minecraft:black_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:black_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:black_carpet": { + "properties": {}, + "defaultstate": "minecraft:black_carpet" + }, + "minecraft:black_concrete": { + "properties": {}, + "defaultstate": "minecraft:black_concrete" + }, + "minecraft:black_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:black_concrete_powder" + }, + "minecraft:black_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:black_glazed_terracotta[facing=north]" + }, + "minecraft:black_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:black_shulker_box[facing=up]" + }, + "minecraft:black_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:black_stained_glass" + }, + "minecraft:black_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:black_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:black_terracotta": { + "properties": {}, + "defaultstate": "minecraft:black_terracotta" + }, + "minecraft:black_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:black_wall_banner[facing=north]" + }, + "minecraft:black_wool": { + "properties": {}, + "defaultstate": "minecraft:black_wool" + }, + "minecraft:blast_furnace": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "lit": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:blast_furnace[facing=north,lit=false]" + }, + "minecraft:blue_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:blue_banner[rotation=0]" + }, + "minecraft:blue_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:blue_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:blue_carpet": { + "properties": {}, + "defaultstate": "minecraft:blue_carpet" + }, + "minecraft:blue_concrete": { + "properties": {}, + "defaultstate": "minecraft:blue_concrete" + }, + "minecraft:blue_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:blue_concrete_powder" + }, + "minecraft:blue_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:blue_glazed_terracotta[facing=north]" + }, + "minecraft:blue_ice": { + "properties": {}, + "defaultstate": "minecraft:blue_ice" + }, + "minecraft:blue_orchid": { + "properties": {}, + "defaultstate": "minecraft:blue_orchid" + }, + "minecraft:blue_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:blue_shulker_box[facing=up]" + }, + "minecraft:blue_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:blue_stained_glass" + }, + "minecraft:blue_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:blue_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:blue_terracotta": { + "properties": {}, + "defaultstate": "minecraft:blue_terracotta" + }, + "minecraft:blue_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:blue_wall_banner[facing=north]" + }, + "minecraft:blue_wool": { + "properties": {}, + "defaultstate": "minecraft:blue_wool" + }, + "minecraft:bone_block": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:bone_block[axis=y]" + }, + "minecraft:bookshelf": { + "properties": {}, + "defaultstate": "minecraft:bookshelf" + }, + "minecraft:brain_coral": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:brain_coral[waterlogged=true]" + }, + "minecraft:brain_coral_block": { + "properties": {}, + "defaultstate": "minecraft:brain_coral_block" + }, + "minecraft:brain_coral_fan": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:brain_coral_fan[waterlogged=true]" + }, + "minecraft:brain_coral_wall_fan": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:brain_coral_wall_fan[facing=north,waterlogged=true]" + }, + "minecraft:brewing_stand": { + "properties": { + "has_bottle_0": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "has_bottle_1": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "has_bottle_2": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:brewing_stand[has_bottle_0=false,has_bottle_1=false,has_bottle_2=false]" + }, + "minecraft:brick_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:brick_slab[type=bottom,waterlogged=false]" + }, + "minecraft:brick_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:brick_wall": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:brick_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]" + }, + "minecraft:bricks": { + "properties": {}, + "defaultstate": "minecraft:bricks" + }, + "minecraft:brown_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:brown_banner[rotation=0]" + }, + "minecraft:brown_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:brown_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:brown_carpet": { + "properties": {}, + "defaultstate": "minecraft:brown_carpet" + }, + "minecraft:brown_concrete": { + "properties": {}, + "defaultstate": "minecraft:brown_concrete" + }, + "minecraft:brown_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:brown_concrete_powder" + }, + "minecraft:brown_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:brown_glazed_terracotta[facing=north]" + }, + "minecraft:brown_mushroom": { + "properties": {}, + "defaultstate": "minecraft:brown_mushroom" + }, + "minecraft:brown_mushroom_block": { + "properties": { + "down": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:brown_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true]" + }, + "minecraft:brown_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:brown_shulker_box[facing=up]" + }, + "minecraft:brown_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:brown_stained_glass" + }, + "minecraft:brown_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:brown_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:brown_terracotta": { + "properties": {}, + "defaultstate": "minecraft:brown_terracotta" + }, + "minecraft:brown_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:brown_wall_banner[facing=north]" + }, + "minecraft:brown_wool": { + "properties": {}, + "defaultstate": "minecraft:brown_wool" + }, + "minecraft:bubble_column": { + "properties": { + "drag": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:bubble_column[drag=true]" + }, + "minecraft:bubble_coral": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:bubble_coral[waterlogged=true]" + }, + "minecraft:bubble_coral_block": { + "properties": {}, + "defaultstate": "minecraft:bubble_coral_block" + }, + "minecraft:bubble_coral_fan": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:bubble_coral_fan[waterlogged=true]" + }, + "minecraft:bubble_coral_wall_fan": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:bubble_coral_wall_fan[facing=north,waterlogged=true]" + }, + "minecraft:cactus": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:cactus[age=0]" + }, + "minecraft:cake": { + "properties": { + "bites": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:cake[bites=0]" + }, + "minecraft:campfire": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "lit": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "signal_fire": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:campfire[facing=north,lit=true,signal_fire=false,waterlogged=false]" + }, + "minecraft:carrots": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:carrots[age=0]" + }, + "minecraft:cartography_table": { + "properties": {}, + "defaultstate": "minecraft:cartography_table" + }, + "minecraft:carved_pumpkin": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:carved_pumpkin[facing=north]" + }, + "minecraft:cauldron": { + "properties": { + "level": { + "values": [ + "0", + "1", + "2", + "3" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:cauldron[level=0]" + }, + "minecraft:cave_air": { + "properties": {}, + "defaultstate": "minecraft:cave_air" + }, + "minecraft:chain_command_block": { + "properties": { + "conditional": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:chain_command_block[conditional=false,facing=north]" + }, + "minecraft:chest": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "type": { + "values": [ + "single", + "left", + "right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:chest[facing=north,type=single,waterlogged=false]" + }, + "minecraft:chipped_anvil": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:chipped_anvil[facing=north]" + }, + "minecraft:chiseled_quartz_block": { + "properties": {}, + "defaultstate": "minecraft:chiseled_quartz_block" + }, + "minecraft:chiseled_red_sandstone": { + "properties": {}, + "defaultstate": "minecraft:chiseled_red_sandstone" + }, + "minecraft:chiseled_sandstone": { + "properties": {}, + "defaultstate": "minecraft:chiseled_sandstone" + }, + "minecraft:chiseled_stone_bricks": { + "properties": {}, + "defaultstate": "minecraft:chiseled_stone_bricks" + }, + "minecraft:chorus_flower": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:chorus_flower[age=0]" + }, + "minecraft:chorus_plant": { + "properties": { + "down": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:chorus_plant[down=false,east=false,north=false,south=false,up=false,west=false]" + }, + "minecraft:clay": { + "properties": {}, + "defaultstate": "minecraft:clay" + }, + "minecraft:coal_block": { + "properties": {}, + "defaultstate": "minecraft:coal_block" + }, + "minecraft:coal_ore": { + "properties": {}, + "defaultstate": "minecraft:coal_ore" + }, + "minecraft:coarse_dirt": { + "properties": {}, + "defaultstate": "minecraft:coarse_dirt" + }, + "minecraft:cobblestone": { + "properties": {}, + "defaultstate": "minecraft:cobblestone" + }, + "minecraft:cobblestone_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:cobblestone_slab[type=bottom,waterlogged=false]" + }, + "minecraft:cobblestone_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:cobblestone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:cobblestone_wall": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:cobblestone_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]" + }, + "minecraft:cobweb": { + "properties": {}, + "defaultstate": "minecraft:cobweb" + }, + "minecraft:cocoa": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2" + ], + "type": "int" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:cocoa[age=0,facing=north]" + }, + "minecraft:command_block": { + "properties": { + "conditional": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:command_block[conditional=false,facing=north]" + }, + "minecraft:comparator": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "mode": { + "values": [ + "compare", + "subtract" + ], + "type": "enum" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:comparator[facing=north,mode=compare,powered=false]" + }, + "minecraft:composter": { + "properties": { + "level": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:composter[level=0]" + }, + "minecraft:conduit": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:conduit[waterlogged=true]" + }, + "minecraft:cornflower": { + "properties": {}, + "defaultstate": "minecraft:cornflower" + }, + "minecraft:cracked_stone_bricks": { + "properties": {}, + "defaultstate": "minecraft:cracked_stone_bricks" + }, + "minecraft:crafting_table": { + "properties": {}, + "defaultstate": "minecraft:crafting_table" + }, + "minecraft:creeper_head": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:creeper_head[rotation=0]" + }, + "minecraft:creeper_wall_head": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:creeper_wall_head[facing=north]" + }, + "minecraft:cut_red_sandstone": { + "properties": {}, + "defaultstate": "minecraft:cut_red_sandstone" + }, + "minecraft:cut_red_sandstone_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:cut_red_sandstone_slab[type=bottom,waterlogged=false]" + }, + "minecraft:cut_sandstone": { + "properties": {}, + "defaultstate": "minecraft:cut_sandstone" + }, + "minecraft:cut_sandstone_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:cut_sandstone_slab[type=bottom,waterlogged=false]" + }, + "minecraft:cyan_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:cyan_banner[rotation=0]" + }, + "minecraft:cyan_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:cyan_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:cyan_carpet": { + "properties": {}, + "defaultstate": "minecraft:cyan_carpet" + }, + "minecraft:cyan_concrete": { + "properties": {}, + "defaultstate": "minecraft:cyan_concrete" + }, + "minecraft:cyan_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:cyan_concrete_powder" + }, + "minecraft:cyan_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:cyan_glazed_terracotta[facing=north]" + }, + "minecraft:cyan_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:cyan_shulker_box[facing=up]" + }, + "minecraft:cyan_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:cyan_stained_glass" + }, + "minecraft:cyan_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:cyan_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:cyan_terracotta": { + "properties": {}, + "defaultstate": "minecraft:cyan_terracotta" + }, + "minecraft:cyan_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:cyan_wall_banner[facing=north]" + }, + "minecraft:cyan_wool": { + "properties": {}, + "defaultstate": "minecraft:cyan_wool" + }, + "minecraft:damaged_anvil": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:damaged_anvil[facing=north]" + }, + "minecraft:dandelion": { + "properties": {}, + "defaultstate": "minecraft:dandelion" + }, + "minecraft:dark_oak_button": { + "properties": { + "face": { + "values": [ + "floor", + "wall", + "ceiling" + ], + "type": "enum" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dark_oak_button[face=wall,facing=north,powered=false]" + }, + "minecraft:dark_oak_door": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + }, + "hinge": { + "values": [ + "left", + "right" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dark_oak_door[facing=north,half=lower,hinge=left,open=false,powered=false]" + }, + "minecraft:dark_oak_fence": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dark_oak_fence[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:dark_oak_fence_gate": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "in_wall": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dark_oak_fence_gate[facing=north,in_wall=false,open=false,powered=false]" + }, + "minecraft:dark_oak_leaves": { + "properties": { + "distance": { + "values": [ + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ], + "type": "int" + }, + "persistent": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dark_oak_leaves[distance=7,persistent=false]" + }, + "minecraft:dark_oak_log": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:dark_oak_log[axis=y]" + }, + "minecraft:dark_oak_planks": { + "properties": {}, + "defaultstate": "minecraft:dark_oak_planks" + }, + "minecraft:dark_oak_pressure_plate": { + "properties": { + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dark_oak_pressure_plate[powered=false]" + }, + "minecraft:dark_oak_sapling": { + "properties": { + "stage": { + "values": [ + "0", + "1" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:dark_oak_sapling[stage=0]" + }, + "minecraft:dark_oak_sign": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dark_oak_sign[rotation=0,waterlogged=false]" + }, + "minecraft:dark_oak_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dark_oak_slab[type=bottom,waterlogged=false]" + }, + "minecraft:dark_oak_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dark_oak_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:dark_oak_trapdoor": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dark_oak_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]" + }, + "minecraft:dark_oak_wall_sign": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dark_oak_wall_sign[facing=north,waterlogged=false]" + }, + "minecraft:dark_oak_wood": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:dark_oak_wood[axis=y]" + }, + "minecraft:dark_prismarine": { + "properties": {}, + "defaultstate": "minecraft:dark_prismarine" + }, + "minecraft:dark_prismarine_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dark_prismarine_slab[type=bottom,waterlogged=false]" + }, + "minecraft:dark_prismarine_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dark_prismarine_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:daylight_detector": { + "properties": { + "inverted": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "power": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:daylight_detector[inverted=false,power=0]" + }, + "minecraft:dead_brain_coral": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_brain_coral[waterlogged=true]" + }, + "minecraft:dead_brain_coral_block": { + "properties": {}, + "defaultstate": "minecraft:dead_brain_coral_block" + }, + "minecraft:dead_brain_coral_fan": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_brain_coral_fan[waterlogged=true]" + }, + "minecraft:dead_brain_coral_wall_fan": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_brain_coral_wall_fan[facing=north,waterlogged=true]" + }, + "minecraft:dead_bubble_coral": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_bubble_coral[waterlogged=true]" + }, + "minecraft:dead_bubble_coral_block": { + "properties": {}, + "defaultstate": "minecraft:dead_bubble_coral_block" + }, + "minecraft:dead_bubble_coral_fan": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_bubble_coral_fan[waterlogged=true]" + }, + "minecraft:dead_bubble_coral_wall_fan": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_bubble_coral_wall_fan[facing=north,waterlogged=true]" + }, + "minecraft:dead_bush": { + "properties": {}, + "defaultstate": "minecraft:dead_bush" + }, + "minecraft:dead_fire_coral": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_fire_coral[waterlogged=true]" + }, + "minecraft:dead_fire_coral_block": { + "properties": {}, + "defaultstate": "minecraft:dead_fire_coral_block" + }, + "minecraft:dead_fire_coral_fan": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_fire_coral_fan[waterlogged=true]" + }, + "minecraft:dead_fire_coral_wall_fan": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_fire_coral_wall_fan[facing=north,waterlogged=true]" + }, + "minecraft:dead_horn_coral": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_horn_coral[waterlogged=true]" + }, + "minecraft:dead_horn_coral_block": { + "properties": {}, + "defaultstate": "minecraft:dead_horn_coral_block" + }, + "minecraft:dead_horn_coral_fan": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_horn_coral_fan[waterlogged=true]" + }, + "minecraft:dead_horn_coral_wall_fan": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_horn_coral_wall_fan[facing=north,waterlogged=true]" + }, + "minecraft:dead_tube_coral": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_tube_coral[waterlogged=true]" + }, + "minecraft:dead_tube_coral_block": { + "properties": {}, + "defaultstate": "minecraft:dead_tube_coral_block" + }, + "minecraft:dead_tube_coral_fan": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_tube_coral_fan[waterlogged=true]" + }, + "minecraft:dead_tube_coral_wall_fan": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_tube_coral_wall_fan[facing=north,waterlogged=true]" + }, + "minecraft:detector_rail": { + "properties": { + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "shape": { + "values": [ + "north_south", + "east_west", + "ascending_east", + "ascending_west", + "ascending_north", + "ascending_south" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:detector_rail[powered=false,shape=north_south]" + }, + "minecraft:diamond_block": { + "properties": {}, + "defaultstate": "minecraft:diamond_block" + }, + "minecraft:diamond_ore": { + "properties": {}, + "defaultstate": "minecraft:diamond_ore" + }, + "minecraft:diorite": { + "properties": {}, + "defaultstate": "minecraft:diorite" + }, + "minecraft:diorite_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:diorite_slab[type=bottom,waterlogged=false]" + }, + "minecraft:diorite_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:diorite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:diorite_wall": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:diorite_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]" + }, + "minecraft:dirt": { + "properties": {}, + "defaultstate": "minecraft:dirt" + }, + "minecraft:dispenser": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + }, + "triggered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dispenser[facing=north,triggered=false]" + }, + "minecraft:dragon_egg": { + "properties": {}, + "defaultstate": "minecraft:dragon_egg" + }, + "minecraft:dragon_head": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:dragon_head[rotation=0]" + }, + "minecraft:dragon_wall_head": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:dragon_wall_head[facing=north]" + }, + "minecraft:dried_kelp_block": { + "properties": {}, + "defaultstate": "minecraft:dried_kelp_block" + }, + "minecraft:dropper": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + }, + "triggered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dropper[facing=north,triggered=false]" + }, + "minecraft:emerald_block": { + "properties": {}, + "defaultstate": "minecraft:emerald_block" + }, + "minecraft:emerald_ore": { + "properties": {}, + "defaultstate": "minecraft:emerald_ore" + }, + "minecraft:enchanting_table": { + "properties": {}, + "defaultstate": "minecraft:enchanting_table" + }, + "minecraft:end_gateway": { + "properties": {}, + "defaultstate": "minecraft:end_gateway" + }, + "minecraft:end_portal": { + "properties": {}, + "defaultstate": "minecraft:end_portal" + }, + "minecraft:end_portal_frame": { + "properties": { + "eye": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:end_portal_frame[eye=false,facing=north]" + }, + "minecraft:end_rod": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:end_rod[facing=up]" + }, + "minecraft:end_stone": { + "properties": {}, + "defaultstate": "minecraft:end_stone" + }, + "minecraft:end_stone_brick_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:end_stone_brick_slab[type=bottom,waterlogged=false]" + }, + "minecraft:end_stone_brick_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:end_stone_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:end_stone_brick_wall": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:end_stone_brick_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]" + }, + "minecraft:end_stone_bricks": { + "properties": {}, + "defaultstate": "minecraft:end_stone_bricks" + }, + "minecraft:ender_chest": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:ender_chest[facing=north,waterlogged=false]" + }, + "minecraft:farmland": { + "properties": { + "moisture": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:farmland[moisture=0]" + }, + "minecraft:fern": { + "properties": {}, + "defaultstate": "minecraft:fern" + }, + "minecraft:fire": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + }, + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:fire[age=0,east=false,north=false,south=false,up=false,west=false]" + }, + "minecraft:fire_coral": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:fire_coral[waterlogged=true]" + }, + "minecraft:fire_coral_block": { + "properties": {}, + "defaultstate": "minecraft:fire_coral_block" + }, + "minecraft:fire_coral_fan": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:fire_coral_fan[waterlogged=true]" + }, + "minecraft:fire_coral_wall_fan": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:fire_coral_wall_fan[facing=north,waterlogged=true]" + }, + "minecraft:fletching_table": { + "properties": {}, + "defaultstate": "minecraft:fletching_table" + }, + "minecraft:flower_pot": { + "properties": {}, + "defaultstate": "minecraft:flower_pot" + }, + "minecraft:frosted_ice": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:frosted_ice[age=0]" + }, + "minecraft:furnace": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "lit": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:furnace[facing=north,lit=false]" + }, + "minecraft:glass": { + "properties": {}, + "defaultstate": "minecraft:glass" + }, + "minecraft:glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:glowstone": { + "properties": {}, + "defaultstate": "minecraft:glowstone" + }, + "minecraft:gold_block": { + "properties": {}, + "defaultstate": "minecraft:gold_block" + }, + "minecraft:gold_ore": { + "properties": {}, + "defaultstate": "minecraft:gold_ore" + }, + "minecraft:granite": { + "properties": {}, + "defaultstate": "minecraft:granite" + }, + "minecraft:granite_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:granite_slab[type=bottom,waterlogged=false]" + }, + "minecraft:granite_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:granite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:granite_wall": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:granite_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]" + }, + "minecraft:grass": { + "properties": {}, + "defaultstate": "minecraft:grass" + }, + "minecraft:grass_block": { + "properties": { + "snowy": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:grass_block[snowy=false]" + }, + "minecraft:grass_path": { + "properties": {}, + "defaultstate": "minecraft:grass_path" + }, + "minecraft:gravel": { + "properties": {}, + "defaultstate": "minecraft:gravel" + }, + "minecraft:gray_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:gray_banner[rotation=0]" + }, + "minecraft:gray_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:gray_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:gray_carpet": { + "properties": {}, + "defaultstate": "minecraft:gray_carpet" + }, + "minecraft:gray_concrete": { + "properties": {}, + "defaultstate": "minecraft:gray_concrete" + }, + "minecraft:gray_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:gray_concrete_powder" + }, + "minecraft:gray_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:gray_glazed_terracotta[facing=north]" + }, + "minecraft:gray_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:gray_shulker_box[facing=up]" + }, + "minecraft:gray_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:gray_stained_glass" + }, + "minecraft:gray_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:gray_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:gray_terracotta": { + "properties": {}, + "defaultstate": "minecraft:gray_terracotta" + }, + "minecraft:gray_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:gray_wall_banner[facing=north]" + }, + "minecraft:gray_wool": { + "properties": {}, + "defaultstate": "minecraft:gray_wool" + }, + "minecraft:green_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:green_banner[rotation=0]" + }, + "minecraft:green_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:green_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:green_carpet": { + "properties": {}, + "defaultstate": "minecraft:green_carpet" + }, + "minecraft:green_concrete": { + "properties": {}, + "defaultstate": "minecraft:green_concrete" + }, + "minecraft:green_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:green_concrete_powder" + }, + "minecraft:green_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:green_glazed_terracotta[facing=north]" + }, + "minecraft:green_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:green_shulker_box[facing=up]" + }, + "minecraft:green_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:green_stained_glass" + }, + "minecraft:green_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:green_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:green_terracotta": { + "properties": {}, + "defaultstate": "minecraft:green_terracotta" + }, + "minecraft:green_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:green_wall_banner[facing=north]" + }, + "minecraft:green_wool": { + "properties": {}, + "defaultstate": "minecraft:green_wool" + }, + "minecraft:grindstone": { + "properties": { + "face": { + "values": [ + "floor", + "wall", + "ceiling" + ], + "type": "enum" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:grindstone[face=wall,facing=north]" + }, + "minecraft:hay_block": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:hay_block[axis=y]" + }, + "minecraft:heavy_weighted_pressure_plate": { + "properties": { + "power": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:heavy_weighted_pressure_plate[power=0]" + }, + "minecraft:hopper": { + "properties": { + "enabled": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "facing": { + "values": [ + "down", + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:hopper[enabled=true,facing=down]" + }, + "minecraft:horn_coral": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:horn_coral[waterlogged=true]" + }, + "minecraft:horn_coral_block": { + "properties": {}, + "defaultstate": "minecraft:horn_coral_block" + }, + "minecraft:horn_coral_fan": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:horn_coral_fan[waterlogged=true]" + }, + "minecraft:horn_coral_wall_fan": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:horn_coral_wall_fan[facing=north,waterlogged=true]" + }, + "minecraft:ice": { + "properties": {}, + "defaultstate": "minecraft:ice" + }, + "minecraft:infested_chiseled_stone_bricks": { + "properties": {}, + "defaultstate": "minecraft:infested_chiseled_stone_bricks" + }, + "minecraft:infested_cobblestone": { + "properties": {}, + "defaultstate": "minecraft:infested_cobblestone" + }, + "minecraft:infested_cracked_stone_bricks": { + "properties": {}, + "defaultstate": "minecraft:infested_cracked_stone_bricks" + }, + "minecraft:infested_mossy_stone_bricks": { + "properties": {}, + "defaultstate": "minecraft:infested_mossy_stone_bricks" + }, + "minecraft:infested_stone": { + "properties": {}, + "defaultstate": "minecraft:infested_stone" + }, + "minecraft:infested_stone_bricks": { + "properties": {}, + "defaultstate": "minecraft:infested_stone_bricks" + }, + "minecraft:iron_bars": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:iron_bars[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:iron_block": { + "properties": {}, + "defaultstate": "minecraft:iron_block" + }, + "minecraft:iron_door": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + }, + "hinge": { + "values": [ + "left", + "right" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:iron_door[facing=north,half=lower,hinge=left,open=false,powered=false]" + }, + "minecraft:iron_ore": { + "properties": {}, + "defaultstate": "minecraft:iron_ore" + }, + "minecraft:iron_trapdoor": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:iron_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]" + }, + "minecraft:jack_o_lantern": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:jack_o_lantern[facing=north]" + }, + "minecraft:jigsaw": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:jigsaw[facing=up]" + }, + "minecraft:jukebox": { + "properties": { + "has_record": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:jukebox[has_record=false]" + }, + "minecraft:jungle_button": { + "properties": { + "face": { + "values": [ + "floor", + "wall", + "ceiling" + ], + "type": "enum" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:jungle_button[face=wall,facing=north,powered=false]" + }, + "minecraft:jungle_door": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + }, + "hinge": { + "values": [ + "left", + "right" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:jungle_door[facing=north,half=lower,hinge=left,open=false,powered=false]" + }, + "minecraft:jungle_fence": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:jungle_fence[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:jungle_fence_gate": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "in_wall": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:jungle_fence_gate[facing=north,in_wall=false,open=false,powered=false]" + }, + "minecraft:jungle_leaves": { + "properties": { + "distance": { + "values": [ + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ], + "type": "int" + }, + "persistent": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:jungle_leaves[distance=7,persistent=false]" + }, + "minecraft:jungle_log": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:jungle_log[axis=y]" + }, + "minecraft:jungle_planks": { + "properties": {}, + "defaultstate": "minecraft:jungle_planks" + }, + "minecraft:jungle_pressure_plate": { + "properties": { + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:jungle_pressure_plate[powered=false]" + }, + "minecraft:jungle_sapling": { + "properties": { + "stage": { + "values": [ + "0", + "1" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:jungle_sapling[stage=0]" + }, + "minecraft:jungle_sign": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:jungle_sign[rotation=0,waterlogged=false]" + }, + "minecraft:jungle_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:jungle_slab[type=bottom,waterlogged=false]" + }, + "minecraft:jungle_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:jungle_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:jungle_trapdoor": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:jungle_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]" + }, + "minecraft:jungle_wall_sign": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:jungle_wall_sign[facing=north,waterlogged=false]" + }, + "minecraft:jungle_wood": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:jungle_wood[axis=y]" + }, + "minecraft:kelp": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15", + "16", + "17", + "18", + "19", + "20", + "21", + "22", + "23", + "24", + "25" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:kelp[age=0]" + }, + "minecraft:kelp_plant": { + "properties": {}, + "defaultstate": "minecraft:kelp_plant" + }, + "minecraft:ladder": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:ladder[facing=north,waterlogged=false]" + }, + "minecraft:lantern": { + "properties": { + "hanging": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:lantern[hanging=false]" + }, + "minecraft:lapis_block": { + "properties": {}, + "defaultstate": "minecraft:lapis_block" + }, + "minecraft:lapis_ore": { + "properties": {}, + "defaultstate": "minecraft:lapis_ore" + }, + "minecraft:large_fern": { + "properties": { + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:large_fern[half=lower]" + }, + "minecraft:lava": { + "properties": { + "level": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:lava[level=0]" + }, + "minecraft:lectern": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "has_book": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:lectern[facing=north,has_book=false,powered=false]" + }, + "minecraft:lever": { + "properties": { + "face": { + "values": [ + "floor", + "wall", + "ceiling" + ], + "type": "enum" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:lever[face=wall,facing=north,powered=false]" + }, + "minecraft:light_blue_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:light_blue_banner[rotation=0]" + }, + "minecraft:light_blue_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:light_blue_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:light_blue_carpet": { + "properties": {}, + "defaultstate": "minecraft:light_blue_carpet" + }, + "minecraft:light_blue_concrete": { + "properties": {}, + "defaultstate": "minecraft:light_blue_concrete" + }, + "minecraft:light_blue_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:light_blue_concrete_powder" + }, + "minecraft:light_blue_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:light_blue_glazed_terracotta[facing=north]" + }, + "minecraft:light_blue_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:light_blue_shulker_box[facing=up]" + }, + "minecraft:light_blue_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:light_blue_stained_glass" + }, + "minecraft:light_blue_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:light_blue_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:light_blue_terracotta": { + "properties": {}, + "defaultstate": "minecraft:light_blue_terracotta" + }, + "minecraft:light_blue_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:light_blue_wall_banner[facing=north]" + }, + "minecraft:light_blue_wool": { + "properties": {}, + "defaultstate": "minecraft:light_blue_wool" + }, + "minecraft:light_gray_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:light_gray_banner[rotation=0]" + }, + "minecraft:light_gray_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:light_gray_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:light_gray_carpet": { + "properties": {}, + "defaultstate": "minecraft:light_gray_carpet" + }, + "minecraft:light_gray_concrete": { + "properties": {}, + "defaultstate": "minecraft:light_gray_concrete" + }, + "minecraft:light_gray_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:light_gray_concrete_powder" + }, + "minecraft:light_gray_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:light_gray_glazed_terracotta[facing=north]" + }, + "minecraft:light_gray_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:light_gray_shulker_box[facing=up]" + }, + "minecraft:light_gray_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:light_gray_stained_glass" + }, + "minecraft:light_gray_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:light_gray_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:light_gray_terracotta": { + "properties": {}, + "defaultstate": "minecraft:light_gray_terracotta" + }, + "minecraft:light_gray_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:light_gray_wall_banner[facing=north]" + }, + "minecraft:light_gray_wool": { + "properties": {}, + "defaultstate": "minecraft:light_gray_wool" + }, + "minecraft:light_weighted_pressure_plate": { + "properties": { + "power": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:light_weighted_pressure_plate[power=0]" + }, + "minecraft:lilac": { + "properties": { + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:lilac[half=lower]" + }, + "minecraft:lily_of_the_valley": { + "properties": {}, + "defaultstate": "minecraft:lily_of_the_valley" + }, + "minecraft:lily_pad": { + "properties": {}, + "defaultstate": "minecraft:lily_pad" + }, + "minecraft:lime_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:lime_banner[rotation=0]" + }, + "minecraft:lime_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:lime_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:lime_carpet": { + "properties": {}, + "defaultstate": "minecraft:lime_carpet" + }, + "minecraft:lime_concrete": { + "properties": {}, + "defaultstate": "minecraft:lime_concrete" + }, + "minecraft:lime_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:lime_concrete_powder" + }, + "minecraft:lime_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:lime_glazed_terracotta[facing=north]" + }, + "minecraft:lime_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:lime_shulker_box[facing=up]" + }, + "minecraft:lime_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:lime_stained_glass" + }, + "minecraft:lime_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:lime_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:lime_terracotta": { + "properties": {}, + "defaultstate": "minecraft:lime_terracotta" + }, + "minecraft:lime_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:lime_wall_banner[facing=north]" + }, + "minecraft:lime_wool": { + "properties": {}, + "defaultstate": "minecraft:lime_wool" + }, + "minecraft:loom": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:loom[facing=north]" + }, + "minecraft:magenta_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:magenta_banner[rotation=0]" + }, + "minecraft:magenta_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:magenta_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:magenta_carpet": { + "properties": {}, + "defaultstate": "minecraft:magenta_carpet" + }, + "minecraft:magenta_concrete": { + "properties": {}, + "defaultstate": "minecraft:magenta_concrete" + }, + "minecraft:magenta_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:magenta_concrete_powder" + }, + "minecraft:magenta_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:magenta_glazed_terracotta[facing=north]" + }, + "minecraft:magenta_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:magenta_shulker_box[facing=up]" + }, + "minecraft:magenta_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:magenta_stained_glass" + }, + "minecraft:magenta_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:magenta_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:magenta_terracotta": { + "properties": {}, + "defaultstate": "minecraft:magenta_terracotta" + }, + "minecraft:magenta_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:magenta_wall_banner[facing=north]" + }, + "minecraft:magenta_wool": { + "properties": {}, + "defaultstate": "minecraft:magenta_wool" + }, + "minecraft:magma_block": { + "properties": {}, + "defaultstate": "minecraft:magma_block" + }, + "minecraft:melon": { + "properties": {}, + "defaultstate": "minecraft:melon" + }, + "minecraft:melon_stem": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:melon_stem[age=0]" + }, + "minecraft:mossy_cobblestone": { + "properties": {}, + "defaultstate": "minecraft:mossy_cobblestone" + }, + "minecraft:mossy_cobblestone_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:mossy_cobblestone_slab[type=bottom,waterlogged=false]" + }, + "minecraft:mossy_cobblestone_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:mossy_cobblestone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:mossy_cobblestone_wall": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:mossy_cobblestone_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]" + }, + "minecraft:mossy_stone_brick_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:mossy_stone_brick_slab[type=bottom,waterlogged=false]" + }, + "minecraft:mossy_stone_brick_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:mossy_stone_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:mossy_stone_brick_wall": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:mossy_stone_brick_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]" + }, + "minecraft:mossy_stone_bricks": { + "properties": {}, + "defaultstate": "minecraft:mossy_stone_bricks" + }, + "minecraft:moving_piston": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + }, + "type": { + "values": [ + "normal", + "sticky" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:moving_piston[facing=north,type=normal]" + }, + "minecraft:mushroom_stem": { + "properties": { + "down": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:mushroom_stem[down=true,east=true,north=true,south=true,up=true,west=true]" + }, + "minecraft:mycelium": { + "properties": { + "snowy": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:mycelium[snowy=false]" + }, + "minecraft:nether_brick_fence": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:nether_brick_fence[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:nether_brick_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:nether_brick_slab[type=bottom,waterlogged=false]" + }, + "minecraft:nether_brick_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:nether_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:nether_brick_wall": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:nether_brick_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]" + }, + "minecraft:nether_bricks": { + "properties": {}, + "defaultstate": "minecraft:nether_bricks" + }, + "minecraft:nether_portal": { + "properties": { + "axis": { + "values": [ + "x", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:nether_portal[axis=x]" + }, + "minecraft:nether_quartz_ore": { + "properties": {}, + "defaultstate": "minecraft:nether_quartz_ore" + }, + "minecraft:nether_wart": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:nether_wart[age=0]" + }, + "minecraft:nether_wart_block": { + "properties": {}, + "defaultstate": "minecraft:nether_wart_block" + }, + "minecraft:netherrack": { + "properties": {}, + "defaultstate": "minecraft:netherrack" + }, + "minecraft:note_block": { + "properties": { + "instrument": { + "values": [ + "harp", + "basedrum", + "snare", + "hat", + "bass", + "flute", + "bell", + "guitar", + "chime", + "xylophone", + "iron_xylophone", + "cow_bell", + "didgeridoo", + "bit", + "banjo", + "pling" + ], + "type": "enum" + }, + "note": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15", + "16", + "17", + "18", + "19", + "20", + "21", + "22", + "23", + "24" + ], + "type": "int" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:note_block[instrument=harp,note=0,powered=false]" + }, + "minecraft:oak_button": { + "properties": { + "face": { + "values": [ + "floor", + "wall", + "ceiling" + ], + "type": "enum" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:oak_button[face=wall,facing=north,powered=false]" + }, + "minecraft:oak_door": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + }, + "hinge": { + "values": [ + "left", + "right" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:oak_door[facing=north,half=lower,hinge=left,open=false,powered=false]" + }, + "minecraft:oak_fence": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:oak_fence[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:oak_fence_gate": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "in_wall": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:oak_fence_gate[facing=north,in_wall=false,open=false,powered=false]" + }, + "minecraft:oak_leaves": { + "properties": { + "distance": { + "values": [ + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ], + "type": "int" + }, + "persistent": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:oak_leaves[distance=7,persistent=false]" + }, + "minecraft:oak_log": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:oak_log[axis=y]" + }, + "minecraft:oak_planks": { + "properties": {}, + "defaultstate": "minecraft:oak_planks" + }, + "minecraft:oak_pressure_plate": { + "properties": { + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:oak_pressure_plate[powered=false]" + }, + "minecraft:oak_sapling": { + "properties": { + "stage": { + "values": [ + "0", + "1" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:oak_sapling[stage=0]" + }, + "minecraft:oak_sign": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:oak_sign[rotation=0,waterlogged=false]" + }, + "minecraft:oak_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:oak_slab[type=bottom,waterlogged=false]" + }, + "minecraft:oak_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:oak_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:oak_trapdoor": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:oak_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]" + }, + "minecraft:oak_wall_sign": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:oak_wall_sign[facing=north,waterlogged=false]" + }, + "minecraft:oak_wood": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:oak_wood[axis=y]" + }, + "minecraft:observer": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:observer[facing=south,powered=false]" + }, + "minecraft:obsidian": { + "properties": {}, + "defaultstate": "minecraft:obsidian" + }, + "minecraft:orange_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:orange_banner[rotation=0]" + }, + "minecraft:orange_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:orange_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:orange_carpet": { + "properties": {}, + "defaultstate": "minecraft:orange_carpet" + }, + "minecraft:orange_concrete": { + "properties": {}, + "defaultstate": "minecraft:orange_concrete" + }, + "minecraft:orange_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:orange_concrete_powder" + }, + "minecraft:orange_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:orange_glazed_terracotta[facing=north]" + }, + "minecraft:orange_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:orange_shulker_box[facing=up]" + }, + "minecraft:orange_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:orange_stained_glass" + }, + "minecraft:orange_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:orange_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:orange_terracotta": { + "properties": {}, + "defaultstate": "minecraft:orange_terracotta" + }, + "minecraft:orange_tulip": { + "properties": {}, + "defaultstate": "minecraft:orange_tulip" + }, + "minecraft:orange_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:orange_wall_banner[facing=north]" + }, + "minecraft:orange_wool": { + "properties": {}, + "defaultstate": "minecraft:orange_wool" + }, + "minecraft:oxeye_daisy": { + "properties": {}, + "defaultstate": "minecraft:oxeye_daisy" + }, + "minecraft:packed_ice": { + "properties": {}, + "defaultstate": "minecraft:packed_ice" + }, + "minecraft:peony": { + "properties": { + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:peony[half=lower]" + }, + "minecraft:petrified_oak_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:petrified_oak_slab[type=bottom,waterlogged=false]" + }, + "minecraft:pink_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:pink_banner[rotation=0]" + }, + "minecraft:pink_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:pink_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:pink_carpet": { + "properties": {}, + "defaultstate": "minecraft:pink_carpet" + }, + "minecraft:pink_concrete": { + "properties": {}, + "defaultstate": "minecraft:pink_concrete" + }, + "minecraft:pink_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:pink_concrete_powder" + }, + "minecraft:pink_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:pink_glazed_terracotta[facing=north]" + }, + "minecraft:pink_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:pink_shulker_box[facing=up]" + }, + "minecraft:pink_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:pink_stained_glass" + }, + "minecraft:pink_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:pink_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:pink_terracotta": { + "properties": {}, + "defaultstate": "minecraft:pink_terracotta" + }, + "minecraft:pink_tulip": { + "properties": {}, + "defaultstate": "minecraft:pink_tulip" + }, + "minecraft:pink_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:pink_wall_banner[facing=north]" + }, + "minecraft:pink_wool": { + "properties": {}, + "defaultstate": "minecraft:pink_wool" + }, + "minecraft:piston": { + "properties": { + "extended": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:piston[extended=false,facing=north]" + }, + "minecraft:piston_head": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + }, + "short": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "type": { + "values": [ + "normal", + "sticky" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:piston_head[facing=north,short=false,type=normal]" + }, + "minecraft:player_head": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:player_head[rotation=0]" + }, + "minecraft:player_wall_head": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:player_wall_head[facing=north]" + }, + "minecraft:podzol": { + "properties": { + "snowy": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:podzol[snowy=false]" + }, + "minecraft:polished_andesite": { + "properties": {}, + "defaultstate": "minecraft:polished_andesite" + }, + "minecraft:polished_andesite_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:polished_andesite_slab[type=bottom,waterlogged=false]" + }, + "minecraft:polished_andesite_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:polished_andesite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:polished_diorite": { + "properties": {}, + "defaultstate": "minecraft:polished_diorite" + }, + "minecraft:polished_diorite_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:polished_diorite_slab[type=bottom,waterlogged=false]" + }, + "minecraft:polished_diorite_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:polished_diorite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:polished_granite": { + "properties": {}, + "defaultstate": "minecraft:polished_granite" + }, + "minecraft:polished_granite_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:polished_granite_slab[type=bottom,waterlogged=false]" + }, + "minecraft:polished_granite_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:polished_granite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:poppy": { + "properties": {}, + "defaultstate": "minecraft:poppy" + }, + "minecraft:potatoes": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:potatoes[age=0]" + }, + "minecraft:potted_acacia_sapling": { + "properties": {}, + "defaultstate": "minecraft:potted_acacia_sapling" + }, + "minecraft:potted_allium": { + "properties": {}, + "defaultstate": "minecraft:potted_allium" + }, + "minecraft:potted_azure_bluet": { + "properties": {}, + "defaultstate": "minecraft:potted_azure_bluet" + }, + "minecraft:potted_bamboo": { + "properties": {}, + "defaultstate": "minecraft:potted_bamboo" + }, + "minecraft:potted_birch_sapling": { + "properties": {}, + "defaultstate": "minecraft:potted_birch_sapling" + }, + "minecraft:potted_blue_orchid": { + "properties": {}, + "defaultstate": "minecraft:potted_blue_orchid" + }, + "minecraft:potted_brown_mushroom": { + "properties": {}, + "defaultstate": "minecraft:potted_brown_mushroom" + }, + "minecraft:potted_cactus": { + "properties": {}, + "defaultstate": "minecraft:potted_cactus" + }, + "minecraft:potted_cornflower": { + "properties": {}, + "defaultstate": "minecraft:potted_cornflower" + }, + "minecraft:potted_dandelion": { + "properties": {}, + "defaultstate": "minecraft:potted_dandelion" + }, + "minecraft:potted_dark_oak_sapling": { + "properties": {}, + "defaultstate": "minecraft:potted_dark_oak_sapling" + }, + "minecraft:potted_dead_bush": { + "properties": {}, + "defaultstate": "minecraft:potted_dead_bush" + }, + "minecraft:potted_fern": { + "properties": {}, + "defaultstate": "minecraft:potted_fern" + }, + "minecraft:potted_jungle_sapling": { + "properties": {}, + "defaultstate": "minecraft:potted_jungle_sapling" + }, + "minecraft:potted_lily_of_the_valley": { + "properties": {}, + "defaultstate": "minecraft:potted_lily_of_the_valley" + }, + "minecraft:potted_oak_sapling": { + "properties": {}, + "defaultstate": "minecraft:potted_oak_sapling" + }, + "minecraft:potted_orange_tulip": { + "properties": {}, + "defaultstate": "minecraft:potted_orange_tulip" + }, + "minecraft:potted_oxeye_daisy": { + "properties": {}, + "defaultstate": "minecraft:potted_oxeye_daisy" + }, + "minecraft:potted_pink_tulip": { + "properties": {}, + "defaultstate": "minecraft:potted_pink_tulip" + }, + "minecraft:potted_poppy": { + "properties": {}, + "defaultstate": "minecraft:potted_poppy" + }, + "minecraft:potted_red_mushroom": { + "properties": {}, + "defaultstate": "minecraft:potted_red_mushroom" + }, + "minecraft:potted_red_tulip": { + "properties": {}, + "defaultstate": "minecraft:potted_red_tulip" + }, + "minecraft:potted_spruce_sapling": { + "properties": {}, + "defaultstate": "minecraft:potted_spruce_sapling" + }, + "minecraft:potted_white_tulip": { + "properties": {}, + "defaultstate": "minecraft:potted_white_tulip" + }, + "minecraft:potted_wither_rose": { + "properties": {}, + "defaultstate": "minecraft:potted_wither_rose" + }, + "minecraft:powered_rail": { + "properties": { + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "shape": { + "values": [ + "north_south", + "east_west", + "ascending_east", + "ascending_west", + "ascending_north", + "ascending_south" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:powered_rail[powered=false,shape=north_south]" + }, + "minecraft:prismarine": { + "properties": {}, + "defaultstate": "minecraft:prismarine" + }, + "minecraft:prismarine_brick_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:prismarine_brick_slab[type=bottom,waterlogged=false]" + }, + "minecraft:prismarine_brick_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:prismarine_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:prismarine_bricks": { + "properties": {}, + "defaultstate": "minecraft:prismarine_bricks" + }, + "minecraft:prismarine_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:prismarine_slab[type=bottom,waterlogged=false]" + }, + "minecraft:prismarine_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:prismarine_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:prismarine_wall": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:prismarine_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]" + }, + "minecraft:pumpkin": { + "properties": {}, + "defaultstate": "minecraft:pumpkin" + }, + "minecraft:pumpkin_stem": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:pumpkin_stem[age=0]" + }, + "minecraft:purple_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:purple_banner[rotation=0]" + }, + "minecraft:purple_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:purple_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:purple_carpet": { + "properties": {}, + "defaultstate": "minecraft:purple_carpet" + }, + "minecraft:purple_concrete": { + "properties": {}, + "defaultstate": "minecraft:purple_concrete" + }, + "minecraft:purple_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:purple_concrete_powder" + }, + "minecraft:purple_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:purple_glazed_terracotta[facing=north]" + }, + "minecraft:purple_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:purple_shulker_box[facing=up]" + }, + "minecraft:purple_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:purple_stained_glass" + }, + "minecraft:purple_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:purple_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:purple_terracotta": { + "properties": {}, + "defaultstate": "minecraft:purple_terracotta" + }, + "minecraft:purple_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:purple_wall_banner[facing=north]" + }, + "minecraft:purple_wool": { + "properties": {}, + "defaultstate": "minecraft:purple_wool" + }, + "minecraft:purpur_block": { + "properties": {}, + "defaultstate": "minecraft:purpur_block" + }, + "minecraft:purpur_pillar": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:purpur_pillar[axis=y]" + }, + "minecraft:purpur_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:purpur_slab[type=bottom,waterlogged=false]" + }, + "minecraft:purpur_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:purpur_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:quartz_block": { + "properties": {}, + "defaultstate": "minecraft:quartz_block" + }, + "minecraft:quartz_pillar": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:quartz_pillar[axis=y]" + }, + "minecraft:quartz_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:quartz_slab[type=bottom,waterlogged=false]" + }, + "minecraft:quartz_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:quartz_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:rail": { + "properties": { + "shape": { + "values": [ + "north_south", + "east_west", + "ascending_east", + "ascending_west", + "ascending_north", + "ascending_south", + "south_east", + "south_west", + "north_west", + "north_east" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:rail[shape=north_south]" + }, + "minecraft:red_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:red_banner[rotation=0]" + }, + "minecraft:red_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:red_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:red_carpet": { + "properties": {}, + "defaultstate": "minecraft:red_carpet" + }, + "minecraft:red_concrete": { + "properties": {}, + "defaultstate": "minecraft:red_concrete" + }, + "minecraft:red_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:red_concrete_powder" + }, + "minecraft:red_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:red_glazed_terracotta[facing=north]" + }, + "minecraft:red_mushroom": { + "properties": {}, + "defaultstate": "minecraft:red_mushroom" + }, + "minecraft:red_mushroom_block": { + "properties": { + "down": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:red_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true]" + }, + "minecraft:red_nether_brick_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:red_nether_brick_slab[type=bottom,waterlogged=false]" + }, + "minecraft:red_nether_brick_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:red_nether_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:red_nether_brick_wall": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:red_nether_brick_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]" + }, + "minecraft:red_nether_bricks": { + "properties": {}, + "defaultstate": "minecraft:red_nether_bricks" + }, + "minecraft:red_sand": { + "properties": {}, + "defaultstate": "minecraft:red_sand" + }, + "minecraft:red_sandstone": { + "properties": {}, + "defaultstate": "minecraft:red_sandstone" + }, + "minecraft:red_sandstone_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:red_sandstone_slab[type=bottom,waterlogged=false]" + }, + "minecraft:red_sandstone_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:red_sandstone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:red_sandstone_wall": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:red_sandstone_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]" + }, + "minecraft:red_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:red_shulker_box[facing=up]" + }, + "minecraft:red_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:red_stained_glass" + }, + "minecraft:red_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:red_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:red_terracotta": { + "properties": {}, + "defaultstate": "minecraft:red_terracotta" + }, + "minecraft:red_tulip": { + "properties": {}, + "defaultstate": "minecraft:red_tulip" + }, + "minecraft:red_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:red_wall_banner[facing=north]" + }, + "minecraft:red_wool": { + "properties": {}, + "defaultstate": "minecraft:red_wool" + }, + "minecraft:redstone_block": { + "properties": {}, + "defaultstate": "minecraft:redstone_block" + }, + "minecraft:redstone_lamp": { + "properties": { + "lit": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:redstone_lamp[lit=false]" + }, + "minecraft:redstone_ore": { + "properties": { + "lit": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:redstone_ore[lit=false]" + }, + "minecraft:redstone_torch": { + "properties": { + "lit": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:redstone_torch[lit=true]" + }, + "minecraft:redstone_wall_torch": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "lit": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:redstone_wall_torch[facing=north,lit=true]" + }, + "minecraft:redstone_wire": { + "properties": { + "east": { + "values": [ + "up", + "side", + "none" + ], + "type": "enum" + }, + "north": { + "values": [ + "up", + "side", + "none" + ], + "type": "enum" + }, + "power": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + }, + "south": { + "values": [ + "up", + "side", + "none" + ], + "type": "enum" + }, + "west": { + "values": [ + "up", + "side", + "none" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:redstone_wire[east=none,north=none,power=0,south=none,west=none]" + }, + "minecraft:repeater": { + "properties": { + "delay": { + "values": [ + "1", + "2", + "3", + "4" + ], + "type": "int" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "locked": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:repeater[delay=1,facing=north,locked=false,powered=false]" + }, + "minecraft:repeating_command_block": { + "properties": { + "conditional": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:repeating_command_block[conditional=false,facing=north]" + }, + "minecraft:rose_bush": { + "properties": { + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:rose_bush[half=lower]" + }, + "minecraft:sand": { + "properties": {}, + "defaultstate": "minecraft:sand" + }, + "minecraft:sandstone": { + "properties": {}, + "defaultstate": "minecraft:sandstone" + }, + "minecraft:sandstone_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:sandstone_slab[type=bottom,waterlogged=false]" + }, + "minecraft:sandstone_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:sandstone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:sandstone_wall": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:sandstone_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]" + }, + "minecraft:scaffolding": { + "properties": { + "bottom": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "distance": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ], + "type": "int" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:scaffolding[bottom=false,distance=7,waterlogged=false]" + }, + "minecraft:sea_lantern": { + "properties": {}, + "defaultstate": "minecraft:sea_lantern" + }, + "minecraft:sea_pickle": { + "properties": { + "pickles": { + "values": [ + "1", + "2", + "3", + "4" + ], + "type": "int" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:sea_pickle[pickles=1,waterlogged=true]" + }, + "minecraft:seagrass": { + "properties": {}, + "defaultstate": "minecraft:seagrass" + }, + "minecraft:shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:shulker_box[facing=up]" + }, + "minecraft:skeleton_skull": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:skeleton_skull[rotation=0]" + }, + "minecraft:skeleton_wall_skull": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:skeleton_wall_skull[facing=north]" + }, + "minecraft:slime_block": { + "properties": {}, + "defaultstate": "minecraft:slime_block" + }, + "minecraft:smithing_table": { + "properties": {}, + "defaultstate": "minecraft:smithing_table" + }, + "minecraft:smoker": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "lit": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:smoker[facing=north,lit=false]" + }, + "minecraft:smooth_quartz": { + "properties": {}, + "defaultstate": "minecraft:smooth_quartz" + }, + "minecraft:smooth_quartz_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:smooth_quartz_slab[type=bottom,waterlogged=false]" + }, + "minecraft:smooth_quartz_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:smooth_quartz_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:smooth_red_sandstone": { + "properties": {}, + "defaultstate": "minecraft:smooth_red_sandstone" + }, + "minecraft:smooth_red_sandstone_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:smooth_red_sandstone_slab[type=bottom,waterlogged=false]" + }, + "minecraft:smooth_red_sandstone_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:smooth_red_sandstone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:smooth_sandstone": { + "properties": {}, + "defaultstate": "minecraft:smooth_sandstone" + }, + "minecraft:smooth_sandstone_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:smooth_sandstone_slab[type=bottom,waterlogged=false]" + }, + "minecraft:smooth_sandstone_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:smooth_sandstone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:smooth_stone": { + "properties": {}, + "defaultstate": "minecraft:smooth_stone" + }, + "minecraft:smooth_stone_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:smooth_stone_slab[type=bottom,waterlogged=false]" + }, + "minecraft:snow": { + "properties": { + "layers": { + "values": [ + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:snow[layers=1]" + }, + "minecraft:snow_block": { + "properties": {}, + "defaultstate": "minecraft:snow_block" + }, + "minecraft:soul_sand": { + "properties": {}, + "defaultstate": "minecraft:soul_sand" + }, + "minecraft:spawner": { + "properties": {}, + "defaultstate": "minecraft:spawner" + }, + "minecraft:sponge": { + "properties": {}, + "defaultstate": "minecraft:sponge" + }, + "minecraft:spruce_button": { + "properties": { + "face": { + "values": [ + "floor", + "wall", + "ceiling" + ], + "type": "enum" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:spruce_button[face=wall,facing=north,powered=false]" + }, + "minecraft:spruce_door": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + }, + "hinge": { + "values": [ + "left", + "right" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:spruce_door[facing=north,half=lower,hinge=left,open=false,powered=false]" + }, + "minecraft:spruce_fence": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:spruce_fence[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:spruce_fence_gate": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "in_wall": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:spruce_fence_gate[facing=north,in_wall=false,open=false,powered=false]" + }, + "minecraft:spruce_leaves": { + "properties": { + "distance": { + "values": [ + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ], + "type": "int" + }, + "persistent": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:spruce_leaves[distance=7,persistent=false]" + }, + "minecraft:spruce_log": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:spruce_log[axis=y]" + }, + "minecraft:spruce_planks": { + "properties": {}, + "defaultstate": "minecraft:spruce_planks" + }, + "minecraft:spruce_pressure_plate": { + "properties": { + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:spruce_pressure_plate[powered=false]" + }, + "minecraft:spruce_sapling": { + "properties": { + "stage": { + "values": [ + "0", + "1" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:spruce_sapling[stage=0]" + }, + "minecraft:spruce_sign": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:spruce_sign[rotation=0,waterlogged=false]" + }, + "minecraft:spruce_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:spruce_slab[type=bottom,waterlogged=false]" + }, + "minecraft:spruce_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:spruce_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:spruce_trapdoor": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:spruce_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]" + }, + "minecraft:spruce_wall_sign": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:spruce_wall_sign[facing=north,waterlogged=false]" + }, + "minecraft:spruce_wood": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:spruce_wood[axis=y]" + }, + "minecraft:sticky_piston": { + "properties": { + "extended": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:sticky_piston[extended=false,facing=north]" + }, + "minecraft:stone": { + "properties": {}, + "defaultstate": "minecraft:stone" + }, + "minecraft:stone_brick_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:stone_brick_slab[type=bottom,waterlogged=false]" + }, + "minecraft:stone_brick_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:stone_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:stone_brick_wall": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:stone_brick_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]" + }, + "minecraft:stone_bricks": { + "properties": {}, + "defaultstate": "minecraft:stone_bricks" + }, + "minecraft:stone_button": { + "properties": { + "face": { + "values": [ + "floor", + "wall", + "ceiling" + ], + "type": "enum" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:stone_button[face=wall,facing=north,powered=false]" + }, + "minecraft:stone_pressure_plate": { + "properties": { + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:stone_pressure_plate[powered=false]" + }, + "minecraft:stone_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:stone_slab[type=bottom,waterlogged=false]" + }, + "minecraft:stone_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:stone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:stonecutter": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:stonecutter[facing=north]" + }, + "minecraft:stripped_acacia_log": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:stripped_acacia_log[axis=y]" + }, + "minecraft:stripped_acacia_wood": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:stripped_acacia_wood[axis=y]" + }, + "minecraft:stripped_birch_log": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:stripped_birch_log[axis=y]" + }, + "minecraft:stripped_birch_wood": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:stripped_birch_wood[axis=y]" + }, + "minecraft:stripped_dark_oak_log": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:stripped_dark_oak_log[axis=y]" + }, + "minecraft:stripped_dark_oak_wood": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:stripped_dark_oak_wood[axis=y]" + }, + "minecraft:stripped_jungle_log": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:stripped_jungle_log[axis=y]" + }, + "minecraft:stripped_jungle_wood": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:stripped_jungle_wood[axis=y]" + }, + "minecraft:stripped_oak_log": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:stripped_oak_log[axis=y]" + }, + "minecraft:stripped_oak_wood": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:stripped_oak_wood[axis=y]" + }, + "minecraft:stripped_spruce_log": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:stripped_spruce_log[axis=y]" + }, + "minecraft:stripped_spruce_wood": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:stripped_spruce_wood[axis=y]" + }, + "minecraft:structure_block": { + "properties": { + "mode": { + "values": [ + "save", + "load", + "corner", + "data" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:structure_block[mode=save]" + }, + "minecraft:structure_void": { + "properties": {}, + "defaultstate": "minecraft:structure_void" + }, + "minecraft:sugar_cane": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:sugar_cane[age=0]" + }, + "minecraft:sunflower": { + "properties": { + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:sunflower[half=lower]" + }, + "minecraft:sweet_berry_bush": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:sweet_berry_bush[age=0]" + }, + "minecraft:tall_grass": { + "properties": { + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:tall_grass[half=lower]" + }, + "minecraft:tall_seagrass": { + "properties": { + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:tall_seagrass[half=lower]" + }, + "minecraft:terracotta": { + "properties": {}, + "defaultstate": "minecraft:terracotta" + }, + "minecraft:tnt": { + "properties": { + "unstable": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:tnt[unstable=false]" + }, + "minecraft:torch": { + "properties": {}, + "defaultstate": "minecraft:torch" + }, + "minecraft:trapped_chest": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "type": { + "values": [ + "single", + "left", + "right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:trapped_chest[facing=north,type=single,waterlogged=false]" + }, + "minecraft:tripwire": { + "properties": { + "attached": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "disarmed": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:tripwire[attached=false,disarmed=false,east=false,north=false,powered=false,south=false,west=false]" + }, + "minecraft:tripwire_hook": { + "properties": { + "attached": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:tripwire_hook[attached=false,facing=north,powered=false]" + }, + "minecraft:tube_coral": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:tube_coral[waterlogged=true]" + }, + "minecraft:tube_coral_block": { + "properties": {}, + "defaultstate": "minecraft:tube_coral_block" + }, + "minecraft:tube_coral_fan": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:tube_coral_fan[waterlogged=true]" + }, + "minecraft:tube_coral_wall_fan": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:tube_coral_wall_fan[facing=north,waterlogged=true]" + }, + "minecraft:turtle_egg": { + "properties": { + "eggs": { + "values": [ + "1", + "2", + "3", + "4" + ], + "type": "int" + }, + "hatch": { + "values": [ + "0", + "1", + "2" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:turtle_egg[eggs=1,hatch=0]" + }, + "minecraft:vine": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:vine[east=false,north=false,south=false,up=false,west=false]" + }, + "minecraft:void_air": { + "properties": {}, + "defaultstate": "minecraft:void_air" + }, + "minecraft:wall_torch": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:wall_torch[facing=north]" + }, + "minecraft:water": { + "properties": { + "level": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:water[level=0]" + }, + "minecraft:wet_sponge": { + "properties": {}, + "defaultstate": "minecraft:wet_sponge" + }, + "minecraft:wheat": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:wheat[age=0]" + }, + "minecraft:white_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:white_banner[rotation=0]" + }, + "minecraft:white_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:white_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:white_carpet": { + "properties": {}, + "defaultstate": "minecraft:white_carpet" + }, + "minecraft:white_concrete": { + "properties": {}, + "defaultstate": "minecraft:white_concrete" + }, + "minecraft:white_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:white_concrete_powder" + }, + "minecraft:white_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:white_glazed_terracotta[facing=north]" + }, + "minecraft:white_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:white_shulker_box[facing=up]" + }, + "minecraft:white_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:white_stained_glass" + }, + "minecraft:white_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:white_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:white_terracotta": { + "properties": {}, + "defaultstate": "minecraft:white_terracotta" + }, + "minecraft:white_tulip": { + "properties": {}, + "defaultstate": "minecraft:white_tulip" + }, + "minecraft:white_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:white_wall_banner[facing=north]" + }, + "minecraft:white_wool": { + "properties": {}, + "defaultstate": "minecraft:white_wool" + }, + "minecraft:wither_rose": { + "properties": {}, + "defaultstate": "minecraft:wither_rose" + }, + "minecraft:wither_skeleton_skull": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:wither_skeleton_skull[rotation=0]" + }, + "minecraft:wither_skeleton_wall_skull": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:wither_skeleton_wall_skull[facing=north]" + }, + "minecraft:yellow_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:yellow_banner[rotation=0]" + }, + "minecraft:yellow_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:yellow_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:yellow_carpet": { + "properties": {}, + "defaultstate": "minecraft:yellow_carpet" + }, + "minecraft:yellow_concrete": { + "properties": {}, + "defaultstate": "minecraft:yellow_concrete" + }, + "minecraft:yellow_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:yellow_concrete_powder" + }, + "minecraft:yellow_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:yellow_glazed_terracotta[facing=north]" + }, + "minecraft:yellow_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:yellow_shulker_box[facing=up]" + }, + "minecraft:yellow_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:yellow_stained_glass" + }, + "minecraft:yellow_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:yellow_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:yellow_terracotta": { + "properties": {}, + "defaultstate": "minecraft:yellow_terracotta" + }, + "minecraft:yellow_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:yellow_wall_banner[facing=north]" + }, + "minecraft:yellow_wool": { + "properties": {}, + "defaultstate": "minecraft:yellow_wool" + }, + "minecraft:zombie_head": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:zombie_head[rotation=0]" + }, + "minecraft:zombie_wall_head": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:zombie_wall_head[facing=north]" + } + }, + "items": [ + "minecraft:acacia_boat", + "minecraft:acacia_button", + "minecraft:acacia_door", + "minecraft:acacia_fence", + "minecraft:acacia_fence_gate", + "minecraft:acacia_leaves", + "minecraft:acacia_log", + "minecraft:acacia_planks", + "minecraft:acacia_pressure_plate", + "minecraft:acacia_sapling", + "minecraft:acacia_sign", + "minecraft:acacia_slab", + "minecraft:acacia_stairs", + "minecraft:acacia_trapdoor", + "minecraft:acacia_wood", + "minecraft:activator_rail", + "minecraft:air", + "minecraft:allium", + "minecraft:andesite", + "minecraft:andesite_slab", + "minecraft:andesite_stairs", + "minecraft:andesite_wall", + "minecraft:anvil", + "minecraft:apple", + "minecraft:armor_stand", + "minecraft:arrow", + "minecraft:azure_bluet", + "minecraft:baked_potato", + "minecraft:bamboo", + "minecraft:barrel", + "minecraft:barrier", + "minecraft:bat_spawn_egg", + "minecraft:beacon", + "minecraft:bedrock", + "minecraft:beef", + "minecraft:beetroot", + "minecraft:beetroot_seeds", + "minecraft:beetroot_soup", + "minecraft:bell", + "minecraft:birch_boat", + "minecraft:birch_button", + "minecraft:birch_door", + "minecraft:birch_fence", + "minecraft:birch_fence_gate", + "minecraft:birch_leaves", + "minecraft:birch_log", + "minecraft:birch_planks", + "minecraft:birch_pressure_plate", + "minecraft:birch_sapling", + "minecraft:birch_sign", + "minecraft:birch_slab", + "minecraft:birch_stairs", + "minecraft:birch_trapdoor", + "minecraft:birch_wood", + "minecraft:black_banner", + "minecraft:black_bed", + "minecraft:black_carpet", + "minecraft:black_concrete", + "minecraft:black_concrete_powder", + "minecraft:black_dye", + "minecraft:black_glazed_terracotta", + "minecraft:black_shulker_box", + "minecraft:black_stained_glass", + "minecraft:black_stained_glass_pane", + "minecraft:black_terracotta", + "minecraft:black_wool", + "minecraft:blast_furnace", + "minecraft:blaze_powder", + "minecraft:blaze_rod", + "minecraft:blaze_spawn_egg", + "minecraft:blue_banner", + "minecraft:blue_bed", + "minecraft:blue_carpet", + "minecraft:blue_concrete", + "minecraft:blue_concrete_powder", + "minecraft:blue_dye", + "minecraft:blue_glazed_terracotta", + "minecraft:blue_ice", + "minecraft:blue_orchid", + "minecraft:blue_shulker_box", + "minecraft:blue_stained_glass", + "minecraft:blue_stained_glass_pane", + "minecraft:blue_terracotta", + "minecraft:blue_wool", + "minecraft:bone", + "minecraft:bone_block", + "minecraft:bone_meal", + "minecraft:book", + "minecraft:bookshelf", + "minecraft:bow", + "minecraft:bowl", + "minecraft:brain_coral", + "minecraft:brain_coral_block", + "minecraft:brain_coral_fan", + "minecraft:bread", + "minecraft:brewing_stand", + "minecraft:brick", + "minecraft:brick_slab", + "minecraft:brick_stairs", + "minecraft:brick_wall", + "minecraft:bricks", + "minecraft:brown_banner", + "minecraft:brown_bed", + "minecraft:brown_carpet", + "minecraft:brown_concrete", + "minecraft:brown_concrete_powder", + "minecraft:brown_dye", + "minecraft:brown_glazed_terracotta", + "minecraft:brown_mushroom", + "minecraft:brown_mushroom_block", + "minecraft:brown_shulker_box", + "minecraft:brown_stained_glass", + "minecraft:brown_stained_glass_pane", + "minecraft:brown_terracotta", + "minecraft:brown_wool", + "minecraft:bubble_coral", + "minecraft:bubble_coral_block", + "minecraft:bubble_coral_fan", + "minecraft:bucket", + "minecraft:cactus", + "minecraft:cake", + "minecraft:campfire", + "minecraft:carrot", + "minecraft:carrot_on_a_stick", + "minecraft:cartography_table", + "minecraft:carved_pumpkin", + "minecraft:cat_spawn_egg", + "minecraft:cauldron", + "minecraft:cave_spider_spawn_egg", + "minecraft:chain_command_block", + "minecraft:chainmail_boots", + "minecraft:chainmail_chestplate", + "minecraft:chainmail_helmet", + "minecraft:chainmail_leggings", + "minecraft:charcoal", + "minecraft:chest", + "minecraft:chest_minecart", + "minecraft:chicken", + "minecraft:chicken_spawn_egg", + "minecraft:chipped_anvil", + "minecraft:chiseled_quartz_block", + "minecraft:chiseled_red_sandstone", + "minecraft:chiseled_sandstone", + "minecraft:chiseled_stone_bricks", + "minecraft:chorus_flower", + "minecraft:chorus_fruit", + "minecraft:chorus_plant", + "minecraft:clay", + "minecraft:clay_ball", + "minecraft:clock", + "minecraft:coal", + "minecraft:coal_block", + "minecraft:coal_ore", + "minecraft:coarse_dirt", + "minecraft:cobblestone", + "minecraft:cobblestone_slab", + "minecraft:cobblestone_stairs", + "minecraft:cobblestone_wall", + "minecraft:cobweb", + "minecraft:cocoa_beans", + "minecraft:cod", + "minecraft:cod_bucket", + "minecraft:cod_spawn_egg", + "minecraft:command_block", + "minecraft:command_block_minecart", + "minecraft:comparator", + "minecraft:compass", + "minecraft:composter", + "minecraft:conduit", + "minecraft:cooked_beef", + "minecraft:cooked_chicken", + "minecraft:cooked_cod", + "minecraft:cooked_mutton", + "minecraft:cooked_porkchop", + "minecraft:cooked_rabbit", + "minecraft:cooked_salmon", + "minecraft:cookie", + "minecraft:cornflower", + "minecraft:cow_spawn_egg", + "minecraft:cracked_stone_bricks", + "minecraft:crafting_table", + "minecraft:creeper_banner_pattern", + "minecraft:creeper_head", + "minecraft:creeper_spawn_egg", + "minecraft:crossbow", + "minecraft:cut_red_sandstone", + "minecraft:cut_red_sandstone_slab", + "minecraft:cut_sandstone", + "minecraft:cut_sandstone_slab", + "minecraft:cyan_banner", + "minecraft:cyan_bed", + "minecraft:cyan_carpet", + "minecraft:cyan_concrete", + "minecraft:cyan_concrete_powder", + "minecraft:cyan_dye", + "minecraft:cyan_glazed_terracotta", + "minecraft:cyan_shulker_box", + "minecraft:cyan_stained_glass", + "minecraft:cyan_stained_glass_pane", + "minecraft:cyan_terracotta", + "minecraft:cyan_wool", + "minecraft:damaged_anvil", + "minecraft:dandelion", + "minecraft:dark_oak_boat", + "minecraft:dark_oak_button", + "minecraft:dark_oak_door", + "minecraft:dark_oak_fence", + "minecraft:dark_oak_fence_gate", + "minecraft:dark_oak_leaves", + "minecraft:dark_oak_log", + "minecraft:dark_oak_planks", + "minecraft:dark_oak_pressure_plate", + "minecraft:dark_oak_sapling", + "minecraft:dark_oak_sign", + "minecraft:dark_oak_slab", + "minecraft:dark_oak_stairs", + "minecraft:dark_oak_trapdoor", + "minecraft:dark_oak_wood", + "minecraft:dark_prismarine", + "minecraft:dark_prismarine_slab", + "minecraft:dark_prismarine_stairs", + "minecraft:daylight_detector", + "minecraft:dead_brain_coral", + "minecraft:dead_brain_coral_block", + "minecraft:dead_brain_coral_fan", + "minecraft:dead_bubble_coral", + "minecraft:dead_bubble_coral_block", + "minecraft:dead_bubble_coral_fan", + "minecraft:dead_bush", + "minecraft:dead_fire_coral", + "minecraft:dead_fire_coral_block", + "minecraft:dead_fire_coral_fan", + "minecraft:dead_horn_coral", + "minecraft:dead_horn_coral_block", + "minecraft:dead_horn_coral_fan", + "minecraft:dead_tube_coral", + "minecraft:dead_tube_coral_block", + "minecraft:dead_tube_coral_fan", + "minecraft:debug_stick", + "minecraft:detector_rail", + "minecraft:diamond", + "minecraft:diamond_axe", + "minecraft:diamond_block", + "minecraft:diamond_boots", + "minecraft:diamond_chestplate", + "minecraft:diamond_helmet", + "minecraft:diamond_hoe", + "minecraft:diamond_horse_armor", + "minecraft:diamond_leggings", + "minecraft:diamond_ore", + "minecraft:diamond_pickaxe", + "minecraft:diamond_shovel", + "minecraft:diamond_sword", + "minecraft:diorite", + "minecraft:diorite_slab", + "minecraft:diorite_stairs", + "minecraft:diorite_wall", + "minecraft:dirt", + "minecraft:dispenser", + "minecraft:dolphin_spawn_egg", + "minecraft:donkey_spawn_egg", + "minecraft:dragon_breath", + "minecraft:dragon_egg", + "minecraft:dragon_head", + "minecraft:dried_kelp", + "minecraft:dried_kelp_block", + "minecraft:dropper", + "minecraft:drowned_spawn_egg", + "minecraft:egg", + "minecraft:elder_guardian_spawn_egg", + "minecraft:elytra", + "minecraft:emerald", + "minecraft:emerald_block", + "minecraft:emerald_ore", + "minecraft:enchanted_book", + "minecraft:enchanted_golden_apple", + "minecraft:enchanting_table", + "minecraft:end_crystal", + "minecraft:end_portal_frame", + "minecraft:end_rod", + "minecraft:end_stone", + "minecraft:end_stone_brick_slab", + "minecraft:end_stone_brick_stairs", + "minecraft:end_stone_brick_wall", + "minecraft:end_stone_bricks", + "minecraft:ender_chest", + "minecraft:ender_eye", + "minecraft:ender_pearl", + "minecraft:enderman_spawn_egg", + "minecraft:endermite_spawn_egg", + "minecraft:evoker_spawn_egg", + "minecraft:experience_bottle", + "minecraft:farmland", + "minecraft:feather", + "minecraft:fermented_spider_eye", + "minecraft:fern", + "minecraft:filled_map", + "minecraft:fire_charge", + "minecraft:fire_coral", + "minecraft:fire_coral_block", + "minecraft:fire_coral_fan", + "minecraft:firework_rocket", + "minecraft:firework_star", + "minecraft:fishing_rod", + "minecraft:fletching_table", + "minecraft:flint", + "minecraft:flint_and_steel", + "minecraft:flower_banner_pattern", + "minecraft:flower_pot", + "minecraft:fox_spawn_egg", + "minecraft:furnace", + "minecraft:furnace_minecart", + "minecraft:ghast_spawn_egg", + "minecraft:ghast_tear", + "minecraft:glass", + "minecraft:glass_bottle", + "minecraft:glass_pane", + "minecraft:glistering_melon_slice", + "minecraft:globe_banner_pattern", + "minecraft:glowstone", + "minecraft:glowstone_dust", + "minecraft:gold_block", + "minecraft:gold_ingot", + "minecraft:gold_nugget", + "minecraft:gold_ore", + "minecraft:golden_apple", + "minecraft:golden_axe", + "minecraft:golden_boots", + "minecraft:golden_carrot", + "minecraft:golden_chestplate", + "minecraft:golden_helmet", + "minecraft:golden_hoe", + "minecraft:golden_horse_armor", + "minecraft:golden_leggings", + "minecraft:golden_pickaxe", + "minecraft:golden_shovel", + "minecraft:golden_sword", + "minecraft:granite", + "minecraft:granite_slab", + "minecraft:granite_stairs", + "minecraft:granite_wall", + "minecraft:grass", + "minecraft:grass_block", + "minecraft:grass_path", + "minecraft:gravel", + "minecraft:gray_banner", + "minecraft:gray_bed", + "minecraft:gray_carpet", + "minecraft:gray_concrete", + "minecraft:gray_concrete_powder", + "minecraft:gray_dye", + "minecraft:gray_glazed_terracotta", + "minecraft:gray_shulker_box", + "minecraft:gray_stained_glass", + "minecraft:gray_stained_glass_pane", + "minecraft:gray_terracotta", + "minecraft:gray_wool", + "minecraft:green_banner", + "minecraft:green_bed", + "minecraft:green_carpet", + "minecraft:green_concrete", + "minecraft:green_concrete_powder", + "minecraft:green_dye", + "minecraft:green_glazed_terracotta", + "minecraft:green_shulker_box", + "minecraft:green_stained_glass", + "minecraft:green_stained_glass_pane", + "minecraft:green_terracotta", + "minecraft:green_wool", + "minecraft:grindstone", + "minecraft:guardian_spawn_egg", + "minecraft:gunpowder", + "minecraft:hay_block", + "minecraft:heart_of_the_sea", + "minecraft:heavy_weighted_pressure_plate", + "minecraft:hopper", + "minecraft:hopper_minecart", + "minecraft:horn_coral", + "minecraft:horn_coral_block", + "minecraft:horn_coral_fan", + "minecraft:horse_spawn_egg", + "minecraft:husk_spawn_egg", + "minecraft:ice", + "minecraft:infested_chiseled_stone_bricks", + "minecraft:infested_cobblestone", + "minecraft:infested_cracked_stone_bricks", + "minecraft:infested_mossy_stone_bricks", + "minecraft:infested_stone", + "minecraft:infested_stone_bricks", + "minecraft:ink_sac", + "minecraft:iron_axe", + "minecraft:iron_bars", + "minecraft:iron_block", + "minecraft:iron_boots", + "minecraft:iron_chestplate", + "minecraft:iron_door", + "minecraft:iron_helmet", + "minecraft:iron_hoe", + "minecraft:iron_horse_armor", + "minecraft:iron_ingot", + "minecraft:iron_leggings", + "minecraft:iron_nugget", + "minecraft:iron_ore", + "minecraft:iron_pickaxe", + "minecraft:iron_shovel", + "minecraft:iron_sword", + "minecraft:iron_trapdoor", + "minecraft:item_frame", + "minecraft:jack_o_lantern", + "minecraft:jigsaw", + "minecraft:jukebox", + "minecraft:jungle_boat", + "minecraft:jungle_button", + "minecraft:jungle_door", + "minecraft:jungle_fence", + "minecraft:jungle_fence_gate", + "minecraft:jungle_leaves", + "minecraft:jungle_log", + "minecraft:jungle_planks", + "minecraft:jungle_pressure_plate", + "minecraft:jungle_sapling", + "minecraft:jungle_sign", + "minecraft:jungle_slab", + "minecraft:jungle_stairs", + "minecraft:jungle_trapdoor", + "minecraft:jungle_wood", + "minecraft:kelp", + "minecraft:knowledge_book", + "minecraft:ladder", + "minecraft:lantern", + "minecraft:lapis_block", + "minecraft:lapis_lazuli", + "minecraft:lapis_ore", + "minecraft:large_fern", + "minecraft:lava_bucket", + "minecraft:lead", + "minecraft:leather", + "minecraft:leather_boots", + "minecraft:leather_chestplate", + "minecraft:leather_helmet", + "minecraft:leather_horse_armor", + "minecraft:leather_leggings", + "minecraft:lectern", + "minecraft:lever", + "minecraft:light_blue_banner", + "minecraft:light_blue_bed", + "minecraft:light_blue_carpet", + "minecraft:light_blue_concrete", + "minecraft:light_blue_concrete_powder", + "minecraft:light_blue_dye", + "minecraft:light_blue_glazed_terracotta", + "minecraft:light_blue_shulker_box", + "minecraft:light_blue_stained_glass", + "minecraft:light_blue_stained_glass_pane", + "minecraft:light_blue_terracotta", + "minecraft:light_blue_wool", + "minecraft:light_gray_banner", + "minecraft:light_gray_bed", + "minecraft:light_gray_carpet", + "minecraft:light_gray_concrete", + "minecraft:light_gray_concrete_powder", + "minecraft:light_gray_dye", + "minecraft:light_gray_glazed_terracotta", + "minecraft:light_gray_shulker_box", + "minecraft:light_gray_stained_glass", + "minecraft:light_gray_stained_glass_pane", + "minecraft:light_gray_terracotta", + "minecraft:light_gray_wool", + "minecraft:light_weighted_pressure_plate", + "minecraft:lilac", + "minecraft:lily_of_the_valley", + "minecraft:lily_pad", + "minecraft:lime_banner", + "minecraft:lime_bed", + "minecraft:lime_carpet", + "minecraft:lime_concrete", + "minecraft:lime_concrete_powder", + "minecraft:lime_dye", + "minecraft:lime_glazed_terracotta", + "minecraft:lime_shulker_box", + "minecraft:lime_stained_glass", + "minecraft:lime_stained_glass_pane", + "minecraft:lime_terracotta", + "minecraft:lime_wool", + "minecraft:lingering_potion", + "minecraft:llama_spawn_egg", + "minecraft:loom", + "minecraft:magenta_banner", + "minecraft:magenta_bed", + "minecraft:magenta_carpet", + "minecraft:magenta_concrete", + "minecraft:magenta_concrete_powder", + "minecraft:magenta_dye", + "minecraft:magenta_glazed_terracotta", + "minecraft:magenta_shulker_box", + "minecraft:magenta_stained_glass", + "minecraft:magenta_stained_glass_pane", + "minecraft:magenta_terracotta", + "minecraft:magenta_wool", + "minecraft:magma_block", + "minecraft:magma_cream", + "minecraft:magma_cube_spawn_egg", + "minecraft:map", + "minecraft:melon", + "minecraft:melon_seeds", + "minecraft:melon_slice", + "minecraft:milk_bucket", + "minecraft:minecart", + "minecraft:mojang_banner_pattern", + "minecraft:mooshroom_spawn_egg", + "minecraft:mossy_cobblestone", + "minecraft:mossy_cobblestone_slab", + "minecraft:mossy_cobblestone_stairs", + "minecraft:mossy_cobblestone_wall", + "minecraft:mossy_stone_brick_slab", + "minecraft:mossy_stone_brick_stairs", + "minecraft:mossy_stone_brick_wall", + "minecraft:mossy_stone_bricks", + "minecraft:mule_spawn_egg", + "minecraft:mushroom_stem", + "minecraft:mushroom_stew", + "minecraft:music_disc_11", + "minecraft:music_disc_13", + "minecraft:music_disc_blocks", + "minecraft:music_disc_cat", + "minecraft:music_disc_chirp", + "minecraft:music_disc_far", + "minecraft:music_disc_mall", + "minecraft:music_disc_mellohi", + "minecraft:music_disc_stal", + "minecraft:music_disc_strad", + "minecraft:music_disc_wait", + "minecraft:music_disc_ward", + "minecraft:mutton", + "minecraft:mycelium", + "minecraft:name_tag", + "minecraft:nautilus_shell", + "minecraft:nether_brick", + "minecraft:nether_brick_fence", + "minecraft:nether_brick_slab", + "minecraft:nether_brick_stairs", + "minecraft:nether_brick_wall", + "minecraft:nether_bricks", + "minecraft:nether_quartz_ore", + "minecraft:nether_star", + "minecraft:nether_wart", + "minecraft:nether_wart_block", + "minecraft:netherrack", + "minecraft:note_block", + "minecraft:oak_boat", + "minecraft:oak_button", + "minecraft:oak_door", + "minecraft:oak_fence", + "minecraft:oak_fence_gate", + "minecraft:oak_leaves", + "minecraft:oak_log", + "minecraft:oak_planks", + "minecraft:oak_pressure_plate", + "minecraft:oak_sapling", + "minecraft:oak_sign", + "minecraft:oak_slab", + "minecraft:oak_stairs", + "minecraft:oak_trapdoor", + "minecraft:oak_wood", + "minecraft:observer", + "minecraft:obsidian", + "minecraft:ocelot_spawn_egg", + "minecraft:orange_banner", + "minecraft:orange_bed", + "minecraft:orange_carpet", + "minecraft:orange_concrete", + "minecraft:orange_concrete_powder", + "minecraft:orange_dye", + "minecraft:orange_glazed_terracotta", + "minecraft:orange_shulker_box", + "minecraft:orange_stained_glass", + "minecraft:orange_stained_glass_pane", + "minecraft:orange_terracotta", + "minecraft:orange_tulip", + "minecraft:orange_wool", + "minecraft:oxeye_daisy", + "minecraft:packed_ice", + "minecraft:painting", + "minecraft:panda_spawn_egg", + "minecraft:paper", + "minecraft:parrot_spawn_egg", + "minecraft:peony", + "minecraft:petrified_oak_slab", + "minecraft:phantom_membrane", + "minecraft:phantom_spawn_egg", + "minecraft:pig_spawn_egg", + "minecraft:pillager_spawn_egg", + "minecraft:pink_banner", + "minecraft:pink_bed", + "minecraft:pink_carpet", + "minecraft:pink_concrete", + "minecraft:pink_concrete_powder", + "minecraft:pink_dye", + "minecraft:pink_glazed_terracotta", + "minecraft:pink_shulker_box", + "minecraft:pink_stained_glass", + "minecraft:pink_stained_glass_pane", + "minecraft:pink_terracotta", + "minecraft:pink_tulip", + "minecraft:pink_wool", + "minecraft:piston", + "minecraft:player_head", + "minecraft:podzol", + "minecraft:poisonous_potato", + "minecraft:polar_bear_spawn_egg", + "minecraft:polished_andesite", + "minecraft:polished_andesite_slab", + "minecraft:polished_andesite_stairs", + "minecraft:polished_diorite", + "minecraft:polished_diorite_slab", + "minecraft:polished_diorite_stairs", + "minecraft:polished_granite", + "minecraft:polished_granite_slab", + "minecraft:polished_granite_stairs", + "minecraft:popped_chorus_fruit", + "minecraft:poppy", + "minecraft:porkchop", + "minecraft:potato", + "minecraft:potion", + "minecraft:powered_rail", + "minecraft:prismarine", + "minecraft:prismarine_brick_slab", + "minecraft:prismarine_brick_stairs", + "minecraft:prismarine_bricks", + "minecraft:prismarine_crystals", + "minecraft:prismarine_shard", + "minecraft:prismarine_slab", + "minecraft:prismarine_stairs", + "minecraft:prismarine_wall", + "minecraft:pufferfish", + "minecraft:pufferfish_bucket", + "minecraft:pufferfish_spawn_egg", + "minecraft:pumpkin", + "minecraft:pumpkin_pie", + "minecraft:pumpkin_seeds", + "minecraft:purple_banner", + "minecraft:purple_bed", + "minecraft:purple_carpet", + "minecraft:purple_concrete", + "minecraft:purple_concrete_powder", + "minecraft:purple_dye", + "minecraft:purple_glazed_terracotta", + "minecraft:purple_shulker_box", + "minecraft:purple_stained_glass", + "minecraft:purple_stained_glass_pane", + "minecraft:purple_terracotta", + "minecraft:purple_wool", + "minecraft:purpur_block", + "minecraft:purpur_pillar", + "minecraft:purpur_slab", + "minecraft:purpur_stairs", + "minecraft:quartz", + "minecraft:quartz_block", + "minecraft:quartz_pillar", + "minecraft:quartz_slab", + "minecraft:quartz_stairs", + "minecraft:rabbit", + "minecraft:rabbit_foot", + "minecraft:rabbit_hide", + "minecraft:rabbit_spawn_egg", + "minecraft:rabbit_stew", + "minecraft:rail", + "minecraft:ravager_spawn_egg", + "minecraft:red_banner", + "minecraft:red_bed", + "minecraft:red_carpet", + "minecraft:red_concrete", + "minecraft:red_concrete_powder", + "minecraft:red_dye", + "minecraft:red_glazed_terracotta", + "minecraft:red_mushroom", + "minecraft:red_mushroom_block", + "minecraft:red_nether_brick_slab", + "minecraft:red_nether_brick_stairs", + "minecraft:red_nether_brick_wall", + "minecraft:red_nether_bricks", + "minecraft:red_sand", + "minecraft:red_sandstone", + "minecraft:red_sandstone_slab", + "minecraft:red_sandstone_stairs", + "minecraft:red_sandstone_wall", + "minecraft:red_shulker_box", + "minecraft:red_stained_glass", + "minecraft:red_stained_glass_pane", + "minecraft:red_terracotta", + "minecraft:red_tulip", + "minecraft:red_wool", + "minecraft:redstone", + "minecraft:redstone_block", + "minecraft:redstone_lamp", + "minecraft:redstone_ore", + "minecraft:redstone_torch", + "minecraft:repeater", + "minecraft:repeating_command_block", + "minecraft:rose_bush", + "minecraft:rotten_flesh", + "minecraft:saddle", + "minecraft:salmon", + "minecraft:salmon_bucket", + "minecraft:salmon_spawn_egg", + "minecraft:sand", + "minecraft:sandstone", + "minecraft:sandstone_slab", + "minecraft:sandstone_stairs", + "minecraft:sandstone_wall", + "minecraft:scaffolding", + "minecraft:scute", + "minecraft:sea_lantern", + "minecraft:sea_pickle", + "minecraft:seagrass", + "minecraft:shears", + "minecraft:sheep_spawn_egg", + "minecraft:shield", + "minecraft:shulker_box", + "minecraft:shulker_shell", + "minecraft:shulker_spawn_egg", + "minecraft:silverfish_spawn_egg", + "minecraft:skeleton_horse_spawn_egg", + "minecraft:skeleton_skull", + "minecraft:skeleton_spawn_egg", + "minecraft:skull_banner_pattern", + "minecraft:slime_ball", + "minecraft:slime_block", + "minecraft:slime_spawn_egg", + "minecraft:smithing_table", + "minecraft:smoker", + "minecraft:smooth_quartz", + "minecraft:smooth_quartz_slab", + "minecraft:smooth_quartz_stairs", + "minecraft:smooth_red_sandstone", + "minecraft:smooth_red_sandstone_slab", + "minecraft:smooth_red_sandstone_stairs", + "minecraft:smooth_sandstone", + "minecraft:smooth_sandstone_slab", + "minecraft:smooth_sandstone_stairs", + "minecraft:smooth_stone", + "minecraft:smooth_stone_slab", + "minecraft:snow", + "minecraft:snow_block", + "minecraft:snowball", + "minecraft:soul_sand", + "minecraft:spawner", + "minecraft:spectral_arrow", + "minecraft:spider_eye", + "minecraft:spider_spawn_egg", + "minecraft:splash_potion", + "minecraft:sponge", + "minecraft:spruce_boat", + "minecraft:spruce_button", + "minecraft:spruce_door", + "minecraft:spruce_fence", + "minecraft:spruce_fence_gate", + "minecraft:spruce_leaves", + "minecraft:spruce_log", + "minecraft:spruce_planks", + "minecraft:spruce_pressure_plate", + "minecraft:spruce_sapling", + "minecraft:spruce_sign", + "minecraft:spruce_slab", + "minecraft:spruce_stairs", + "minecraft:spruce_trapdoor", + "minecraft:spruce_wood", + "minecraft:squid_spawn_egg", + "minecraft:stick", + "minecraft:sticky_piston", + "minecraft:stone", + "minecraft:stone_axe", + "minecraft:stone_brick_slab", + "minecraft:stone_brick_stairs", + "minecraft:stone_brick_wall", + "minecraft:stone_bricks", + "minecraft:stone_button", + "minecraft:stone_hoe", + "minecraft:stone_pickaxe", + "minecraft:stone_pressure_plate", + "minecraft:stone_shovel", + "minecraft:stone_slab", + "minecraft:stone_stairs", + "minecraft:stone_sword", + "minecraft:stonecutter", + "minecraft:stray_spawn_egg", + "minecraft:string", + "minecraft:stripped_acacia_log", + "minecraft:stripped_acacia_wood", + "minecraft:stripped_birch_log", + "minecraft:stripped_birch_wood", + "minecraft:stripped_dark_oak_log", + "minecraft:stripped_dark_oak_wood", + "minecraft:stripped_jungle_log", + "minecraft:stripped_jungle_wood", + "minecraft:stripped_oak_log", + "minecraft:stripped_oak_wood", + "minecraft:stripped_spruce_log", + "minecraft:stripped_spruce_wood", + "minecraft:structure_block", + "minecraft:structure_void", + "minecraft:sugar", + "minecraft:sugar_cane", + "minecraft:sunflower", + "minecraft:suspicious_stew", + "minecraft:sweet_berries", + "minecraft:tall_grass", + "minecraft:terracotta", + "minecraft:tipped_arrow", + "minecraft:tnt", + "minecraft:tnt_minecart", + "minecraft:torch", + "minecraft:totem_of_undying", + "minecraft:trader_llama_spawn_egg", + "minecraft:trapped_chest", + "minecraft:trident", + "minecraft:tripwire_hook", + "minecraft:tropical_fish", + "minecraft:tropical_fish_bucket", + "minecraft:tropical_fish_spawn_egg", + "minecraft:tube_coral", + "minecraft:tube_coral_block", + "minecraft:tube_coral_fan", + "minecraft:turtle_egg", + "minecraft:turtle_helmet", + "minecraft:turtle_spawn_egg", + "minecraft:vex_spawn_egg", + "minecraft:villager_spawn_egg", + "minecraft:vindicator_spawn_egg", + "minecraft:vine", + "minecraft:wandering_trader_spawn_egg", + "minecraft:water_bucket", + "minecraft:wet_sponge", + "minecraft:wheat", + "minecraft:wheat_seeds", + "minecraft:white_banner", + "minecraft:white_bed", + "minecraft:white_carpet", + "minecraft:white_concrete", + "minecraft:white_concrete_powder", + "minecraft:white_dye", + "minecraft:white_glazed_terracotta", + "minecraft:white_shulker_box", + "minecraft:white_stained_glass", + "minecraft:white_stained_glass_pane", + "minecraft:white_terracotta", + "minecraft:white_tulip", + "minecraft:white_wool", + "minecraft:witch_spawn_egg", + "minecraft:wither_rose", + "minecraft:wither_skeleton_skull", + "minecraft:wither_skeleton_spawn_egg", + "minecraft:wolf_spawn_egg", + "minecraft:wooden_axe", + "minecraft:wooden_hoe", + "minecraft:wooden_pickaxe", + "minecraft:wooden_shovel", + "minecraft:wooden_sword", + "minecraft:writable_book", + "minecraft:written_book", + "minecraft:yellow_banner", + "minecraft:yellow_bed", + "minecraft:yellow_carpet", + "minecraft:yellow_concrete", + "minecraft:yellow_concrete_powder", + "minecraft:yellow_dye", + "minecraft:yellow_glazed_terracotta", + "minecraft:yellow_shulker_box", + "minecraft:yellow_stained_glass", + "minecraft:yellow_stained_glass_pane", + "minecraft:yellow_terracotta", + "minecraft:yellow_wool", + "minecraft:zombie_head", + "minecraft:zombie_horse_spawn_egg", + "minecraft:zombie_pigman_spawn_egg", + "minecraft:zombie_spawn_egg", + "minecraft:zombie_villager_spawn_egg" + ], + "entities": [ + "minecraft:area_effect_cloud", + "minecraft:armor_stand", + "minecraft:arrow", + "minecraft:bat", + "minecraft:blaze", + "minecraft:boat", + "minecraft:cat", + "minecraft:cave_spider", + "minecraft:chest_minecart", + "minecraft:chicken", + "minecraft:cod", + "minecraft:command_block_minecart", + "minecraft:cow", + "minecraft:creeper", + "minecraft:dolphin", + "minecraft:donkey", + "minecraft:dragon_fireball", + "minecraft:drowned", + "minecraft:egg", + "minecraft:elder_guardian", + "minecraft:end_crystal", + "minecraft:ender_dragon", + "minecraft:ender_pearl", + "minecraft:enderman", + "minecraft:endermite", + "minecraft:evoker", + "minecraft:evoker_fangs", + "minecraft:experience_bottle", + "minecraft:experience_orb", + "minecraft:eye_of_ender", + "minecraft:falling_block", + "minecraft:fireball", + "minecraft:firework_rocket", + "minecraft:fishing_bobber", + "minecraft:fox", + "minecraft:furnace_minecart", + "minecraft:ghast", + "minecraft:giant", + "minecraft:guardian", + "minecraft:hopper_minecart", + "minecraft:horse", + "minecraft:husk", + "minecraft:illusioner", + "minecraft:iron_golem", + "minecraft:item", + "minecraft:item_frame", + "minecraft:leash_knot", + "minecraft:lightning_bolt", + "minecraft:llama", + "minecraft:llama_spit", + "minecraft:magma_cube", + "minecraft:minecart", + "minecraft:mooshroom", + "minecraft:mule", + "minecraft:ocelot", + "minecraft:painting", + "minecraft:panda", + "minecraft:parrot", + "minecraft:phantom", + "minecraft:pig", + "minecraft:pillager", + "minecraft:player", + "minecraft:polar_bear", + "minecraft:potion", + "minecraft:pufferfish", + "minecraft:rabbit", + "minecraft:ravager", + "minecraft:salmon", + "minecraft:sheep", + "minecraft:shulker", + "minecraft:shulker_bullet", + "minecraft:silverfish", + "minecraft:skeleton", + "minecraft:skeleton_horse", + "minecraft:slime", + "minecraft:small_fireball", + "minecraft:snow_golem", + "minecraft:snowball", + "minecraft:spawner_minecart", + "minecraft:spectral_arrow", + "minecraft:spider", + "minecraft:squid", + "minecraft:stray", + "minecraft:tnt", + "minecraft:tnt_minecart", + "minecraft:trader_llama", + "minecraft:trident", + "minecraft:tropical_fish", + "minecraft:turtle", + "minecraft:vex", + "minecraft:villager", + "minecraft:vindicator", + "minecraft:wandering_trader", + "minecraft:witch", + "minecraft:wither", + "minecraft:wither_skeleton", + "minecraft:wither_skull", + "minecraft:wolf", + "minecraft:zombie", + "minecraft:zombie_horse", + "minecraft:zombie_pigman", + "minecraft:zombie_villager" + ], + "biomes": [ + "minecraft:badlands", + "minecraft:badlands_plateau", + "minecraft:bamboo_jungle", + "minecraft:bamboo_jungle_hills", + "minecraft:beach", + "minecraft:birch_forest", + "minecraft:birch_forest_hills", + "minecraft:cold_ocean", + "minecraft:dark_forest", + "minecraft:dark_forest_hills", + "minecraft:deep_cold_ocean", + "minecraft:deep_frozen_ocean", + "minecraft:deep_lukewarm_ocean", + "minecraft:deep_ocean", + "minecraft:deep_warm_ocean", + "minecraft:desert", + "minecraft:desert_hills", + "minecraft:desert_lakes", + "minecraft:end_barrens", + "minecraft:end_highlands", + "minecraft:end_midlands", + "minecraft:eroded_badlands", + "minecraft:flower_forest", + "minecraft:forest", + "minecraft:frozen_ocean", + "minecraft:frozen_river", + "minecraft:giant_spruce_taiga", + "minecraft:giant_spruce_taiga_hills", + "minecraft:giant_tree_taiga", + "minecraft:giant_tree_taiga_hills", + "minecraft:gravelly_mountains", + "minecraft:ice_spikes", + "minecraft:jungle", + "minecraft:jungle_edge", + "minecraft:jungle_hills", + "minecraft:lukewarm_ocean", + "minecraft:modified_badlands_plateau", + "minecraft:modified_gravelly_mountains", + "minecraft:modified_jungle", + "minecraft:modified_jungle_edge", + "minecraft:modified_wooded_badlands_plateau", + "minecraft:mountain_edge", + "minecraft:mountains", + "minecraft:mushroom_field_shore", + "minecraft:mushroom_fields", + "minecraft:nether", + "minecraft:ocean", + "minecraft:plains", + "minecraft:river", + "minecraft:savanna", + "minecraft:savanna_plateau", + "minecraft:shattered_savanna", + "minecraft:shattered_savanna_plateau", + "minecraft:small_end_islands", + "minecraft:snowy_beach", + "minecraft:snowy_mountains", + "minecraft:snowy_taiga", + "minecraft:snowy_taiga_hills", + "minecraft:snowy_taiga_mountains", + "minecraft:snowy_tundra", + "minecraft:stone_shore", + "minecraft:sunflower_plains", + "minecraft:swamp", + "minecraft:swamp_hills", + "minecraft:taiga", + "minecraft:taiga_hills", + "minecraft:taiga_mountains", + "minecraft:tall_birch_forest", + "minecraft:tall_birch_hills", + "minecraft:the_end", + "minecraft:the_void", + "minecraft:warm_ocean", + "minecraft:wooded_badlands_plateau", + "minecraft:wooded_hills", + "minecraft:wooded_mountains" + ], + "blocktags": { + "minecraft:slabs": [ + "minecraft:stone_slab", + "minecraft:smooth_stone_slab", + "minecraft:stone_brick_slab", + "minecraft:sandstone_slab", + "minecraft:acacia_slab", + "minecraft:birch_slab", + "minecraft:dark_oak_slab", + "minecraft:jungle_slab", + "minecraft:oak_slab", + "minecraft:spruce_slab", + "minecraft:purpur_slab", + "minecraft:quartz_slab", + "minecraft:red_sandstone_slab", + "minecraft:brick_slab", + "minecraft:cobblestone_slab", + "minecraft:nether_brick_slab", + "minecraft:petrified_oak_slab", + "minecraft:prismarine_slab", + "minecraft:prismarine_brick_slab", + "minecraft:dark_prismarine_slab", + "minecraft:polished_granite_slab", + "minecraft:smooth_red_sandstone_slab", + "minecraft:mossy_stone_brick_slab", + "minecraft:polished_diorite_slab", + "minecraft:mossy_cobblestone_slab", + "minecraft:end_stone_brick_slab", + "minecraft:smooth_sandstone_slab", + "minecraft:smooth_quartz_slab", + "minecraft:granite_slab", + "minecraft:andesite_slab", + "minecraft:red_nether_brick_slab", + "minecraft:polished_andesite_slab", + "minecraft:diorite_slab", + "minecraft:cut_sandstone_slab", + "minecraft:cut_red_sandstone_slab" + ], + "minecraft:carpets": [ + "minecraft:white_carpet", + "minecraft:orange_carpet", + "minecraft:magenta_carpet", + "minecraft:light_blue_carpet", + "minecraft:yellow_carpet", + "minecraft:lime_carpet", + "minecraft:pink_carpet", + "minecraft:gray_carpet", + "minecraft:light_gray_carpet", + "minecraft:cyan_carpet", + "minecraft:purple_carpet", + "minecraft:blue_carpet", + "minecraft:brown_carpet", + "minecraft:green_carpet", + "minecraft:red_carpet", + "minecraft:black_carpet" + ], + "minecraft:stairs": [ + "minecraft:oak_stairs", + "minecraft:cobblestone_stairs", + "minecraft:spruce_stairs", + "minecraft:sandstone_stairs", + "minecraft:acacia_stairs", + "minecraft:jungle_stairs", + "minecraft:birch_stairs", + "minecraft:dark_oak_stairs", + "minecraft:nether_brick_stairs", + "minecraft:stone_brick_stairs", + "minecraft:brick_stairs", + "minecraft:purpur_stairs", + "minecraft:quartz_stairs", + "minecraft:red_sandstone_stairs", + "minecraft:prismarine_brick_stairs", + "minecraft:prismarine_stairs", + "minecraft:dark_prismarine_stairs", + "minecraft:polished_granite_stairs", + "minecraft:smooth_red_sandstone_stairs", + "minecraft:mossy_stone_brick_stairs", + "minecraft:polished_diorite_stairs", + "minecraft:mossy_cobblestone_stairs", + "minecraft:end_stone_brick_stairs", + "minecraft:stone_stairs", + "minecraft:smooth_sandstone_stairs", + "minecraft:smooth_quartz_stairs", + "minecraft:granite_stairs", + "minecraft:andesite_stairs", + "minecraft:red_nether_brick_stairs", + "minecraft:polished_andesite_stairs", + "minecraft:diorite_stairs" + ], + "minecraft:wooden_doors": [ + "minecraft:oak_door", + "minecraft:spruce_door", + "minecraft:birch_door", + "minecraft:jungle_door", + "minecraft:acacia_door", + "minecraft:dark_oak_door" + ], + "minecraft:jungle_logs": [ + "minecraft:jungle_log", + "minecraft:jungle_wood", + "minecraft:stripped_jungle_log", + "minecraft:stripped_jungle_wood" + ], + "minecraft:planks": [ + "minecraft:oak_planks", + "minecraft:spruce_planks", + "minecraft:birch_planks", + "minecraft:jungle_planks", + "minecraft:acacia_planks", + "minecraft:dark_oak_planks" + ], + "minecraft:wall_corals": [ + "minecraft:tube_coral_wall_fan", + "minecraft:brain_coral_wall_fan", + "minecraft:bubble_coral_wall_fan", + "minecraft:fire_coral_wall_fan", + "minecraft:horn_coral_wall_fan" + ], + "minecraft:acacia_logs": [ + "minecraft:acacia_log", + "minecraft:acacia_wood", + "minecraft:stripped_acacia_log", + "minecraft:stripped_acacia_wood" + ], + "minecraft:wither_immune": [ + "minecraft:barrier", + "minecraft:bedrock", + "minecraft:end_portal", + "minecraft:end_portal_frame", + "minecraft:end_gateway", + "minecraft:command_block", + "minecraft:repeating_command_block", + "minecraft:chain_command_block", + "minecraft:structure_block", + "minecraft:jigsaw", + "minecraft:moving_piston" + ], + "minecraft:flower_pots": [ + "minecraft:flower_pot", + "minecraft:potted_poppy", + "minecraft:potted_blue_orchid", + "minecraft:potted_allium", + "minecraft:potted_azure_bluet", + "minecraft:potted_red_tulip", + "minecraft:potted_orange_tulip", + "minecraft:potted_white_tulip", + "minecraft:potted_pink_tulip", + "minecraft:potted_oxeye_daisy", + "minecraft:potted_dandelion", + "minecraft:potted_oak_sapling", + "minecraft:potted_spruce_sapling", + "minecraft:potted_birch_sapling", + "minecraft:potted_jungle_sapling", + "minecraft:potted_acacia_sapling", + "minecraft:potted_dark_oak_sapling", + "minecraft:potted_red_mushroom", + "minecraft:potted_brown_mushroom", + "minecraft:potted_dead_bush", + "minecraft:potted_fern", + "minecraft:potted_cactus", + "minecraft:potted_cornflower", + "minecraft:potted_lily_of_the_valley", + "minecraft:potted_wither_rose", + "minecraft:potted_bamboo" + ], + "minecraft:stone_bricks": [ + "minecraft:stone_bricks", + "minecraft:mossy_stone_bricks", + "minecraft:cracked_stone_bricks", + "minecraft:chiseled_stone_bricks" + ], + "minecraft:enderman_holdable": [ + "minecraft:grass_block", + "minecraft:dirt", + "minecraft:coarse_dirt", + "minecraft:podzol", + "minecraft:sand", + "minecraft:red_sand", + "minecraft:gravel", + "minecraft:brown_mushroom", + "minecraft:red_mushroom", + "minecraft:tnt", + "minecraft:cactus", + "minecraft:clay", + "minecraft:pumpkin", + "minecraft:carved_pumpkin", + "minecraft:melon", + "minecraft:mycelium", + "minecraft:netherrack", + "minecraft:dandelion", + "minecraft:poppy", + "minecraft:blue_orchid", + "minecraft:allium", + "minecraft:azure_bluet", + "minecraft:red_tulip", + "minecraft:orange_tulip", + "minecraft:white_tulip", + "minecraft:pink_tulip", + "minecraft:oxeye_daisy", + "minecraft:cornflower", + "minecraft:lily_of_the_valley", + "minecraft:wither_rose" + ], + "minecraft:spruce_logs": [ + "minecraft:spruce_log", + "minecraft:spruce_wood", + "minecraft:stripped_spruce_log", + "minecraft:stripped_spruce_wood" + ], + "minecraft:wooden_slabs": [ + "minecraft:oak_slab", + "minecraft:spruce_slab", + "minecraft:birch_slab", + "minecraft:jungle_slab", + "minecraft:acacia_slab", + "minecraft:dark_oak_slab" + ], + "minecraft:coral_blocks": [ + "minecraft:tube_coral_block", + "minecraft:brain_coral_block", + "minecraft:bubble_coral_block", + "minecraft:fire_coral_block", + "minecraft:horn_coral_block" + ], + "minecraft:signs": [ + "minecraft:oak_sign", + "minecraft:spruce_sign", + "minecraft:birch_sign", + "minecraft:acacia_sign", + "minecraft:jungle_sign", + "minecraft:dark_oak_sign", + "minecraft:oak_wall_sign", + "minecraft:spruce_wall_sign", + "minecraft:birch_wall_sign", + "minecraft:acacia_wall_sign", + "minecraft:jungle_wall_sign", + "minecraft:dark_oak_wall_sign" + ], + "minecraft:dark_oak_logs": [ + "minecraft:dark_oak_log", + "minecraft:dark_oak_wood", + "minecraft:stripped_dark_oak_log", + "minecraft:stripped_dark_oak_wood" + ], + "minecraft:sand": [ + "minecraft:sand", + "minecraft:red_sand" + ], + "minecraft:valid_spawn": [ + "minecraft:grass_block", + "minecraft:podzol" + ], + "minecraft:underwater_bonemeals": [ + "minecraft:seagrass", + "minecraft:tube_coral_fan", + "minecraft:brain_coral_fan", + "minecraft:bubble_coral_fan", + "minecraft:fire_coral_fan", + "minecraft:horn_coral_fan", + "minecraft:tube_coral", + "minecraft:brain_coral", + "minecraft:bubble_coral", + "minecraft:fire_coral", + "minecraft:horn_coral", + "minecraft:tube_coral_wall_fan", + "minecraft:brain_coral_wall_fan", + "minecraft:bubble_coral_wall_fan", + "minecraft:fire_coral_wall_fan", + "minecraft:horn_coral_wall_fan" + ], + "minecraft:oak_logs": [ + "minecraft:oak_log", + "minecraft:oak_wood", + "minecraft:stripped_oak_log", + "minecraft:stripped_oak_wood" + ], + "minecraft:buttons": [ + "minecraft:stone_button", + "minecraft:oak_button", + "minecraft:spruce_button", + "minecraft:birch_button", + "minecraft:jungle_button", + "minecraft:acacia_button", + "minecraft:dark_oak_button" + ], + "minecraft:wooden_pressure_plates": [ + "minecraft:oak_pressure_plate", + "minecraft:spruce_pressure_plate", + "minecraft:birch_pressure_plate", + "minecraft:jungle_pressure_plate", + "minecraft:acacia_pressure_plate", + "minecraft:dark_oak_pressure_plate" + ], + "minecraft:beds": [ + "minecraft:red_bed", + "minecraft:black_bed", + "minecraft:blue_bed", + "minecraft:brown_bed", + "minecraft:cyan_bed", + "minecraft:gray_bed", + "minecraft:green_bed", + "minecraft:light_blue_bed", + "minecraft:light_gray_bed", + "minecraft:lime_bed", + "minecraft:magenta_bed", + "minecraft:orange_bed", + "minecraft:pink_bed", + "minecraft:purple_bed", + "minecraft:white_bed", + "minecraft:yellow_bed" + ], + "minecraft:walls": [ + "minecraft:cobblestone_wall", + "minecraft:mossy_cobblestone_wall", + "minecraft:brick_wall", + "minecraft:prismarine_wall", + "minecraft:red_sandstone_wall", + "minecraft:mossy_stone_brick_wall", + "minecraft:granite_wall", + "minecraft:stone_brick_wall", + "minecraft:nether_brick_wall", + "minecraft:andesite_wall", + "minecraft:red_nether_brick_wall", + "minecraft:sandstone_wall", + "minecraft:end_stone_brick_wall", + "minecraft:diorite_wall" + ], + "minecraft:rails": [ + "minecraft:rail", + "minecraft:powered_rail", + "minecraft:detector_rail", + "minecraft:activator_rail" + ], + "minecraft:birch_logs": [ + "minecraft:birch_log", + "minecraft:birch_wood", + "minecraft:stripped_birch_log", + "minecraft:stripped_birch_wood" + ], + "minecraft:wooden_trapdoors": [ + "minecraft:acacia_trapdoor", + "minecraft:birch_trapdoor", + "minecraft:dark_oak_trapdoor", + "minecraft:jungle_trapdoor", + "minecraft:oak_trapdoor", + "minecraft:spruce_trapdoor" + ], + "minecraft:wooden_fences": [ + "minecraft:oak_fence", + "minecraft:acacia_fence", + "minecraft:dark_oak_fence", + "minecraft:spruce_fence", + "minecraft:birch_fence", + "minecraft:jungle_fence" + ], + "minecraft:saplings": [ + "minecraft:oak_sapling", + "minecraft:spruce_sapling", + "minecraft:birch_sapling", + "minecraft:jungle_sapling", + "minecraft:acacia_sapling", + "minecraft:dark_oak_sapling" + ], + "minecraft:small_flowers": [ + "minecraft:dandelion", + "minecraft:poppy", + "minecraft:blue_orchid", + "minecraft:allium", + "minecraft:azure_bluet", + "minecraft:red_tulip", + "minecraft:orange_tulip", + "minecraft:white_tulip", + "minecraft:pink_tulip", + "minecraft:oxeye_daisy", + "minecraft:cornflower", + "minecraft:lily_of_the_valley", + "minecraft:wither_rose" + ], + "minecraft:bamboo_plantable_on": [ + "minecraft:bamboo", + "minecraft:bamboo_sapling", + "minecraft:gravel", + "minecraft:sand", + "minecraft:red_sand", + "minecraft:dirt", + "minecraft:grass_block", + "minecraft:podzol", + "minecraft:coarse_dirt", + "minecraft:mycelium" + ], + "minecraft:ice": [ + "minecraft:ice", + "minecraft:packed_ice", + "minecraft:blue_ice", + "minecraft:frosted_ice" + ], + "minecraft:wooden_stairs": [ + "minecraft:oak_stairs", + "minecraft:spruce_stairs", + "minecraft:birch_stairs", + "minecraft:jungle_stairs", + "minecraft:acacia_stairs", + "minecraft:dark_oak_stairs" + ], + "minecraft:anvil": [ + "minecraft:anvil", + "minecraft:chipped_anvil", + "minecraft:damaged_anvil" + ], + "minecraft:logs": [ + "minecraft:dark_oak_log", + "minecraft:dark_oak_wood", + "minecraft:stripped_dark_oak_log", + "minecraft:stripped_dark_oak_wood", + "minecraft:oak_log", + "minecraft:oak_wood", + "minecraft:stripped_oak_log", + "minecraft:stripped_oak_wood", + "minecraft:acacia_log", + "minecraft:acacia_wood", + "minecraft:stripped_acacia_log", + "minecraft:stripped_acacia_wood", + "minecraft:birch_log", + "minecraft:birch_wood", + "minecraft:stripped_birch_log", + "minecraft:stripped_birch_wood", + "minecraft:jungle_log", + "minecraft:jungle_wood", + "minecraft:stripped_jungle_log", + "minecraft:stripped_jungle_wood", + "minecraft:spruce_log", + "minecraft:spruce_wood", + "minecraft:stripped_spruce_log", + "minecraft:stripped_spruce_wood" + ], + "minecraft:corals": [ + "minecraft:tube_coral_fan", + "minecraft:brain_coral_fan", + "minecraft:bubble_coral_fan", + "minecraft:fire_coral_fan", + "minecraft:horn_coral_fan", + "minecraft:tube_coral", + "minecraft:brain_coral", + "minecraft:bubble_coral", + "minecraft:fire_coral", + "minecraft:horn_coral" + ], + "minecraft:wooden_buttons": [ + "minecraft:oak_button", + "minecraft:spruce_button", + "minecraft:birch_button", + "minecraft:jungle_button", + "minecraft:acacia_button", + "minecraft:dark_oak_button" + ], + "minecraft:wool": [ + "minecraft:white_wool", + "minecraft:orange_wool", + "minecraft:magenta_wool", + "minecraft:light_blue_wool", + "minecraft:yellow_wool", + "minecraft:lime_wool", + "minecraft:pink_wool", + "minecraft:gray_wool", + "minecraft:light_gray_wool", + "minecraft:cyan_wool", + "minecraft:purple_wool", + "minecraft:blue_wool", + "minecraft:brown_wool", + "minecraft:green_wool", + "minecraft:red_wool", + "minecraft:black_wool" + ], + "minecraft:coral_plants": [ + "minecraft:tube_coral", + "minecraft:brain_coral", + "minecraft:bubble_coral", + "minecraft:fire_coral", + "minecraft:horn_coral" + ], + "minecraft:banners": [ + "minecraft:white_banner", + "minecraft:orange_banner", + "minecraft:magenta_banner", + "minecraft:light_blue_banner", + "minecraft:yellow_banner", + "minecraft:lime_banner", + "minecraft:pink_banner", + "minecraft:gray_banner", + "minecraft:light_gray_banner", + "minecraft:cyan_banner", + "minecraft:purple_banner", + "minecraft:blue_banner", + "minecraft:brown_banner", + "minecraft:green_banner", + "minecraft:red_banner", + "minecraft:black_banner", + "minecraft:white_wall_banner", + "minecraft:orange_wall_banner", + "minecraft:magenta_wall_banner", + "minecraft:light_blue_wall_banner", + "minecraft:yellow_wall_banner", + "minecraft:lime_wall_banner", + "minecraft:pink_wall_banner", + "minecraft:gray_wall_banner", + "minecraft:light_gray_wall_banner", + "minecraft:cyan_wall_banner", + "minecraft:purple_wall_banner", + "minecraft:blue_wall_banner", + "minecraft:brown_wall_banner", + "minecraft:green_wall_banner", + "minecraft:red_wall_banner", + "minecraft:black_wall_banner" + ], + "minecraft:dragon_immune": [ + "minecraft:barrier", + "minecraft:bedrock", + "minecraft:end_portal", + "minecraft:end_portal_frame", + "minecraft:end_gateway", + "minecraft:command_block", + "minecraft:repeating_command_block", + "minecraft:chain_command_block", + "minecraft:structure_block", + "minecraft:jigsaw", + "minecraft:moving_piston", + "minecraft:obsidian", + "minecraft:end_stone", + "minecraft:iron_bars" + ], + "minecraft:doors": [ + "minecraft:iron_door", + "minecraft:oak_door", + "minecraft:spruce_door", + "minecraft:birch_door", + "minecraft:jungle_door", + "minecraft:acacia_door", + "minecraft:dark_oak_door" + ], + "minecraft:fences": [ + "minecraft:nether_brick_fence", + "minecraft:oak_fence", + "minecraft:acacia_fence", + "minecraft:dark_oak_fence", + "minecraft:spruce_fence", + "minecraft:birch_fence", + "minecraft:jungle_fence" + ], + "minecraft:wall_signs": [ + "minecraft:oak_wall_sign", + "minecraft:spruce_wall_sign", + "minecraft:birch_wall_sign", + "minecraft:acacia_wall_sign", + "minecraft:jungle_wall_sign", + "minecraft:dark_oak_wall_sign" + ], + "minecraft:standing_signs": [ + "minecraft:oak_sign", + "minecraft:spruce_sign", + "minecraft:birch_sign", + "minecraft:acacia_sign", + "minecraft:jungle_sign", + "minecraft:dark_oak_sign" + ], + "minecraft:dirt_like": [ + "minecraft:dirt", + "minecraft:grass_block", + "minecraft:podzol", + "minecraft:coarse_dirt", + "minecraft:mycelium" + ], + "minecraft:impermeable": [ + "minecraft:glass", + "minecraft:white_stained_glass", + "minecraft:orange_stained_glass", + "minecraft:magenta_stained_glass", + "minecraft:light_blue_stained_glass", + "minecraft:yellow_stained_glass", + "minecraft:lime_stained_glass", + "minecraft:pink_stained_glass", + "minecraft:gray_stained_glass", + "minecraft:light_gray_stained_glass", + "minecraft:cyan_stained_glass", + "minecraft:purple_stained_glass", + "minecraft:blue_stained_glass", + "minecraft:brown_stained_glass", + "minecraft:green_stained_glass", + "minecraft:red_stained_glass", + "minecraft:black_stained_glass" + ], + "minecraft:trapdoors": [ + "minecraft:iron_trapdoor", + "minecraft:acacia_trapdoor", + "minecraft:birch_trapdoor", + "minecraft:dark_oak_trapdoor", + "minecraft:jungle_trapdoor", + "minecraft:oak_trapdoor", + "minecraft:spruce_trapdoor" + ], + "minecraft:leaves": [ + "minecraft:jungle_leaves", + "minecraft:oak_leaves", + "minecraft:spruce_leaves", + "minecraft:dark_oak_leaves", + "minecraft:acacia_leaves", + "minecraft:birch_leaves" + ] + }, + "itemtags": { + "minecraft:boats": [ + "minecraft:oak_boat", + "minecraft:spruce_boat", + "minecraft:birch_boat", + "minecraft:jungle_boat", + "minecraft:acacia_boat", + "minecraft:dark_oak_boat" + ], + "minecraft:banners": [ + "minecraft:white_banner", + "minecraft:orange_banner", + "minecraft:magenta_banner", + "minecraft:light_blue_banner", + "minecraft:yellow_banner", + "minecraft:lime_banner", + "minecraft:pink_banner", + "minecraft:gray_banner", + "minecraft:light_gray_banner", + "minecraft:cyan_banner", + "minecraft:purple_banner", + "minecraft:blue_banner", + "minecraft:brown_banner", + "minecraft:green_banner", + "minecraft:red_banner", + "minecraft:black_banner" + ], + "minecraft:arrows": [ + "minecraft:arrow", + "minecraft:tipped_arrow", + "minecraft:spectral_arrow" + ], + "minecraft:coals": [ + "minecraft:coal", + "minecraft:charcoal" + ], + "minecraft:music_discs": [ + "minecraft:music_disc_13", + "minecraft:music_disc_cat", + "minecraft:music_disc_blocks", + "minecraft:music_disc_chirp", + "minecraft:music_disc_far", + "minecraft:music_disc_mall", + "minecraft:music_disc_mellohi", + "minecraft:music_disc_stal", + "minecraft:music_disc_strad", + "minecraft:music_disc_ward", + "minecraft:music_disc_11", + "minecraft:music_disc_wait" + ], + "minecraft:fishes": [ + "minecraft:cod", + "minecraft:cooked_cod", + "minecraft:salmon", + "minecraft:cooked_salmon", + "minecraft:pufferfish", + "minecraft:tropical_fish" + ] + }, + "entitytags": { + "minecraft:raiders": [ + "minecraft:evoker", + "minecraft:pillager", + "minecraft:ravager", + "minecraft:vindicator", + "minecraft:illusioner", + "minecraft:witch" + ], + "minecraft:skeletons": [ + "minecraft:skeleton", + "minecraft:stray", + "minecraft:wither_skeleton" + ] + } +} diff --git a/worldedit-cli/src/main/resources/com/sk89q/worldedit/cli/data/2225.json b/worldedit-cli/src/main/resources/com/sk89q/worldedit/cli/data/2225.json index cc5e1e775..f59d404c1 100644 --- a/worldedit-cli/src/main/resources/com/sk89q/worldedit/cli/data/2225.json +++ b/worldedit-cli/src/main/resources/com/sk89q/worldedit/cli/data/2225.json @@ -1 +1,13035 @@ -{"blocks":{"minecraft:acacia_button":{"properties":{"face":{"values":["floor","wall","ceiling"],"type":"enum"},"facing":{"values":["north","south","west","east"],"type":"direction"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:acacia_button[face=wall,facing=north,powered=false]"},"minecraft:acacia_door":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["upper","lower"],"type":"enum"},"hinge":{"values":["left","right"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:acacia_door[facing=north,half=lower,hinge=left,open=false,powered=false]"},"minecraft:acacia_fence":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:acacia_fence[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:acacia_fence_gate":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"in_wall":{"values":["true","false"],"type":"bool"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:acacia_fence_gate[facing=north,in_wall=false,open=false,powered=false]"},"minecraft:acacia_leaves":{"properties":{"distance":{"values":["1","2","3","4","5","6","7"],"type":"int"},"persistent":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:acacia_leaves[distance=7,persistent=false]"},"minecraft:acacia_log":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:acacia_log[axis=y]"},"minecraft:acacia_planks":{"properties":{},"defaultstate":"minecraft:acacia_planks"},"minecraft:acacia_pressure_plate":{"properties":{"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:acacia_pressure_plate[powered=false]"},"minecraft:acacia_sapling":{"properties":{"stage":{"values":["0","1"],"type":"int"}},"defaultstate":"minecraft:acacia_sapling[stage=0]"},"minecraft:acacia_sign":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:acacia_sign[rotation=0,waterlogged=false]"},"minecraft:acacia_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:acacia_slab[type=bottom,waterlogged=false]"},"minecraft:acacia_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:acacia_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:acacia_trapdoor":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:acacia_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]"},"minecraft:acacia_wall_sign":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:acacia_wall_sign[facing=north,waterlogged=false]"},"minecraft:acacia_wood":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:acacia_wood[axis=y]"},"minecraft:activator_rail":{"properties":{"powered":{"values":["true","false"],"type":"bool"},"shape":{"values":["north_south","east_west","ascending_east","ascending_west","ascending_north","ascending_south"],"type":"enum"}},"defaultstate":"minecraft:activator_rail[powered=false,shape=north_south]"},"minecraft:air":{"properties":{},"defaultstate":"minecraft:air"},"minecraft:allium":{"properties":{},"defaultstate":"minecraft:allium"},"minecraft:andesite":{"properties":{},"defaultstate":"minecraft:andesite"},"minecraft:andesite_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:andesite_slab[type=bottom,waterlogged=false]"},"minecraft:andesite_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:andesite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:andesite_wall":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:andesite_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]"},"minecraft:anvil":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:anvil[facing=north]"},"minecraft:attached_melon_stem":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:attached_melon_stem[facing=north]"},"minecraft:attached_pumpkin_stem":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:attached_pumpkin_stem[facing=north]"},"minecraft:azure_bluet":{"properties":{},"defaultstate":"minecraft:azure_bluet"},"minecraft:bamboo":{"properties":{"age":{"values":["0","1"],"type":"int"},"leaves":{"values":["none","small","large"],"type":"enum"},"stage":{"values":["0","1"],"type":"int"}},"defaultstate":"minecraft:bamboo[age=0,leaves=none,stage=0]"},"minecraft:bamboo_sapling":{"properties":{},"defaultstate":"minecraft:bamboo_sapling"},"minecraft:barrel":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"},"open":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:barrel[facing=north,open=false]"},"minecraft:barrier":{"properties":{},"defaultstate":"minecraft:barrier"},"minecraft:beacon":{"properties":{},"defaultstate":"minecraft:beacon"},"minecraft:bedrock":{"properties":{},"defaultstate":"minecraft:bedrock"},"minecraft:bee_nest":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"honey_level":{"values":["0","1","2","3","4","5"],"type":"int"}},"defaultstate":"minecraft:bee_nest[facing=north,honey_level=0]"},"minecraft:beehive":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"honey_level":{"values":["0","1","2","3","4","5"],"type":"int"}},"defaultstate":"minecraft:beehive[facing=north,honey_level=0]"},"minecraft:beetroots":{"properties":{"age":{"values":["0","1","2","3"],"type":"int"}},"defaultstate":"minecraft:beetroots[age=0]"},"minecraft:bell":{"properties":{"attachment":{"values":["floor","ceiling","single_wall","double_wall"],"type":"enum"},"facing":{"values":["north","south","west","east"],"type":"direction"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:bell[attachment=floor,facing=north,powered=false]"},"minecraft:birch_button":{"properties":{"face":{"values":["floor","wall","ceiling"],"type":"enum"},"facing":{"values":["north","south","west","east"],"type":"direction"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:birch_button[face=wall,facing=north,powered=false]"},"minecraft:birch_door":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["upper","lower"],"type":"enum"},"hinge":{"values":["left","right"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:birch_door[facing=north,half=lower,hinge=left,open=false,powered=false]"},"minecraft:birch_fence":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:birch_fence[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:birch_fence_gate":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"in_wall":{"values":["true","false"],"type":"bool"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:birch_fence_gate[facing=north,in_wall=false,open=false,powered=false]"},"minecraft:birch_leaves":{"properties":{"distance":{"values":["1","2","3","4","5","6","7"],"type":"int"},"persistent":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:birch_leaves[distance=7,persistent=false]"},"minecraft:birch_log":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:birch_log[axis=y]"},"minecraft:birch_planks":{"properties":{},"defaultstate":"minecraft:birch_planks"},"minecraft:birch_pressure_plate":{"properties":{"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:birch_pressure_plate[powered=false]"},"minecraft:birch_sapling":{"properties":{"stage":{"values":["0","1"],"type":"int"}},"defaultstate":"minecraft:birch_sapling[stage=0]"},"minecraft:birch_sign":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:birch_sign[rotation=0,waterlogged=false]"},"minecraft:birch_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:birch_slab[type=bottom,waterlogged=false]"},"minecraft:birch_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:birch_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:birch_trapdoor":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:birch_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]"},"minecraft:birch_wall_sign":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:birch_wall_sign[facing=north,waterlogged=false]"},"minecraft:birch_wood":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:birch_wood[axis=y]"},"minecraft:black_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:black_banner[rotation=0]"},"minecraft:black_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:black_bed[facing=north,occupied=false,part=foot]"},"minecraft:black_carpet":{"properties":{},"defaultstate":"minecraft:black_carpet"},"minecraft:black_concrete":{"properties":{},"defaultstate":"minecraft:black_concrete"},"minecraft:black_concrete_powder":{"properties":{},"defaultstate":"minecraft:black_concrete_powder"},"minecraft:black_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:black_glazed_terracotta[facing=north]"},"minecraft:black_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:black_shulker_box[facing=up]"},"minecraft:black_stained_glass":{"properties":{},"defaultstate":"minecraft:black_stained_glass"},"minecraft:black_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:black_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:black_terracotta":{"properties":{},"defaultstate":"minecraft:black_terracotta"},"minecraft:black_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:black_wall_banner[facing=north]"},"minecraft:black_wool":{"properties":{},"defaultstate":"minecraft:black_wool"},"minecraft:blast_furnace":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"lit":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:blast_furnace[facing=north,lit=false]"},"minecraft:blue_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:blue_banner[rotation=0]"},"minecraft:blue_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:blue_bed[facing=north,occupied=false,part=foot]"},"minecraft:blue_carpet":{"properties":{},"defaultstate":"minecraft:blue_carpet"},"minecraft:blue_concrete":{"properties":{},"defaultstate":"minecraft:blue_concrete"},"minecraft:blue_concrete_powder":{"properties":{},"defaultstate":"minecraft:blue_concrete_powder"},"minecraft:blue_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:blue_glazed_terracotta[facing=north]"},"minecraft:blue_ice":{"properties":{},"defaultstate":"minecraft:blue_ice"},"minecraft:blue_orchid":{"properties":{},"defaultstate":"minecraft:blue_orchid"},"minecraft:blue_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:blue_shulker_box[facing=up]"},"minecraft:blue_stained_glass":{"properties":{},"defaultstate":"minecraft:blue_stained_glass"},"minecraft:blue_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:blue_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:blue_terracotta":{"properties":{},"defaultstate":"minecraft:blue_terracotta"},"minecraft:blue_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:blue_wall_banner[facing=north]"},"minecraft:blue_wool":{"properties":{},"defaultstate":"minecraft:blue_wool"},"minecraft:bone_block":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:bone_block[axis=y]"},"minecraft:bookshelf":{"properties":{},"defaultstate":"minecraft:bookshelf"},"minecraft:brain_coral":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:brain_coral[waterlogged=true]"},"minecraft:brain_coral_block":{"properties":{},"defaultstate":"minecraft:brain_coral_block"},"minecraft:brain_coral_fan":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:brain_coral_fan[waterlogged=true]"},"minecraft:brain_coral_wall_fan":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:brain_coral_wall_fan[facing=north,waterlogged=true]"},"minecraft:brewing_stand":{"properties":{"has_bottle_0":{"values":["true","false"],"type":"bool"},"has_bottle_1":{"values":["true","false"],"type":"bool"},"has_bottle_2":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:brewing_stand[has_bottle_0=false,has_bottle_1=false,has_bottle_2=false]"},"minecraft:brick_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:brick_slab[type=bottom,waterlogged=false]"},"minecraft:brick_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:brick_wall":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:brick_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]"},"minecraft:bricks":{"properties":{},"defaultstate":"minecraft:bricks"},"minecraft:brown_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:brown_banner[rotation=0]"},"minecraft:brown_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:brown_bed[facing=north,occupied=false,part=foot]"},"minecraft:brown_carpet":{"properties":{},"defaultstate":"minecraft:brown_carpet"},"minecraft:brown_concrete":{"properties":{},"defaultstate":"minecraft:brown_concrete"},"minecraft:brown_concrete_powder":{"properties":{},"defaultstate":"minecraft:brown_concrete_powder"},"minecraft:brown_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:brown_glazed_terracotta[facing=north]"},"minecraft:brown_mushroom":{"properties":{},"defaultstate":"minecraft:brown_mushroom"},"minecraft:brown_mushroom_block":{"properties":{"down":{"values":["true","false"],"type":"bool"},"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:brown_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true]"},"minecraft:brown_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:brown_shulker_box[facing=up]"},"minecraft:brown_stained_glass":{"properties":{},"defaultstate":"minecraft:brown_stained_glass"},"minecraft:brown_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:brown_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:brown_terracotta":{"properties":{},"defaultstate":"minecraft:brown_terracotta"},"minecraft:brown_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:brown_wall_banner[facing=north]"},"minecraft:brown_wool":{"properties":{},"defaultstate":"minecraft:brown_wool"},"minecraft:bubble_column":{"properties":{"drag":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:bubble_column[drag=true]"},"minecraft:bubble_coral":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:bubble_coral[waterlogged=true]"},"minecraft:bubble_coral_block":{"properties":{},"defaultstate":"minecraft:bubble_coral_block"},"minecraft:bubble_coral_fan":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:bubble_coral_fan[waterlogged=true]"},"minecraft:bubble_coral_wall_fan":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:bubble_coral_wall_fan[facing=north,waterlogged=true]"},"minecraft:cactus":{"properties":{"age":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:cactus[age=0]"},"minecraft:cake":{"properties":{"bites":{"values":["0","1","2","3","4","5","6"],"type":"int"}},"defaultstate":"minecraft:cake[bites=0]"},"minecraft:campfire":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"lit":{"values":["true","false"],"type":"bool"},"signal_fire":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:campfire[facing=north,lit=true,signal_fire=false,waterlogged=false]"},"minecraft:carrots":{"properties":{"age":{"values":["0","1","2","3","4","5","6","7"],"type":"int"}},"defaultstate":"minecraft:carrots[age=0]"},"minecraft:cartography_table":{"properties":{},"defaultstate":"minecraft:cartography_table"},"minecraft:carved_pumpkin":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:carved_pumpkin[facing=north]"},"minecraft:cauldron":{"properties":{"level":{"values":["0","1","2","3"],"type":"int"}},"defaultstate":"minecraft:cauldron[level=0]"},"minecraft:cave_air":{"properties":{},"defaultstate":"minecraft:cave_air"},"minecraft:chain_command_block":{"properties":{"conditional":{"values":["true","false"],"type":"bool"},"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:chain_command_block[conditional=false,facing=north]"},"minecraft:chest":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"type":{"values":["single","left","right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:chest[facing=north,type=single,waterlogged=false]"},"minecraft:chipped_anvil":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:chipped_anvil[facing=north]"},"minecraft:chiseled_quartz_block":{"properties":{},"defaultstate":"minecraft:chiseled_quartz_block"},"minecraft:chiseled_red_sandstone":{"properties":{},"defaultstate":"minecraft:chiseled_red_sandstone"},"minecraft:chiseled_sandstone":{"properties":{},"defaultstate":"minecraft:chiseled_sandstone"},"minecraft:chiseled_stone_bricks":{"properties":{},"defaultstate":"minecraft:chiseled_stone_bricks"},"minecraft:chorus_flower":{"properties":{"age":{"values":["0","1","2","3","4","5"],"type":"int"}},"defaultstate":"minecraft:chorus_flower[age=0]"},"minecraft:chorus_plant":{"properties":{"down":{"values":["true","false"],"type":"bool"},"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:chorus_plant[down=false,east=false,north=false,south=false,up=false,west=false]"},"minecraft:clay":{"properties":{},"defaultstate":"minecraft:clay"},"minecraft:coal_block":{"properties":{},"defaultstate":"minecraft:coal_block"},"minecraft:coal_ore":{"properties":{},"defaultstate":"minecraft:coal_ore"},"minecraft:coarse_dirt":{"properties":{},"defaultstate":"minecraft:coarse_dirt"},"minecraft:cobblestone":{"properties":{},"defaultstate":"minecraft:cobblestone"},"minecraft:cobblestone_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:cobblestone_slab[type=bottom,waterlogged=false]"},"minecraft:cobblestone_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:cobblestone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:cobblestone_wall":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:cobblestone_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]"},"minecraft:cobweb":{"properties":{},"defaultstate":"minecraft:cobweb"},"minecraft:cocoa":{"properties":{"age":{"values":["0","1","2"],"type":"int"},"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:cocoa[age=0,facing=north]"},"minecraft:command_block":{"properties":{"conditional":{"values":["true","false"],"type":"bool"},"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:command_block[conditional=false,facing=north]"},"minecraft:comparator":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"mode":{"values":["compare","subtract"],"type":"enum"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:comparator[facing=north,mode=compare,powered=false]"},"minecraft:composter":{"properties":{"level":{"values":["0","1","2","3","4","5","6","7","8"],"type":"int"}},"defaultstate":"minecraft:composter[level=0]"},"minecraft:conduit":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:conduit[waterlogged=true]"},"minecraft:cornflower":{"properties":{},"defaultstate":"minecraft:cornflower"},"minecraft:cracked_stone_bricks":{"properties":{},"defaultstate":"minecraft:cracked_stone_bricks"},"minecraft:crafting_table":{"properties":{},"defaultstate":"minecraft:crafting_table"},"minecraft:creeper_head":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:creeper_head[rotation=0]"},"minecraft:creeper_wall_head":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:creeper_wall_head[facing=north]"},"minecraft:cut_red_sandstone":{"properties":{},"defaultstate":"minecraft:cut_red_sandstone"},"minecraft:cut_red_sandstone_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:cut_red_sandstone_slab[type=bottom,waterlogged=false]"},"minecraft:cut_sandstone":{"properties":{},"defaultstate":"minecraft:cut_sandstone"},"minecraft:cut_sandstone_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:cut_sandstone_slab[type=bottom,waterlogged=false]"},"minecraft:cyan_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:cyan_banner[rotation=0]"},"minecraft:cyan_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:cyan_bed[facing=north,occupied=false,part=foot]"},"minecraft:cyan_carpet":{"properties":{},"defaultstate":"minecraft:cyan_carpet"},"minecraft:cyan_concrete":{"properties":{},"defaultstate":"minecraft:cyan_concrete"},"minecraft:cyan_concrete_powder":{"properties":{},"defaultstate":"minecraft:cyan_concrete_powder"},"minecraft:cyan_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:cyan_glazed_terracotta[facing=north]"},"minecraft:cyan_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:cyan_shulker_box[facing=up]"},"minecraft:cyan_stained_glass":{"properties":{},"defaultstate":"minecraft:cyan_stained_glass"},"minecraft:cyan_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:cyan_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:cyan_terracotta":{"properties":{},"defaultstate":"minecraft:cyan_terracotta"},"minecraft:cyan_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:cyan_wall_banner[facing=north]"},"minecraft:cyan_wool":{"properties":{},"defaultstate":"minecraft:cyan_wool"},"minecraft:damaged_anvil":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:damaged_anvil[facing=north]"},"minecraft:dandelion":{"properties":{},"defaultstate":"minecraft:dandelion"},"minecraft:dark_oak_button":{"properties":{"face":{"values":["floor","wall","ceiling"],"type":"enum"},"facing":{"values":["north","south","west","east"],"type":"direction"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dark_oak_button[face=wall,facing=north,powered=false]"},"minecraft:dark_oak_door":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["upper","lower"],"type":"enum"},"hinge":{"values":["left","right"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dark_oak_door[facing=north,half=lower,hinge=left,open=false,powered=false]"},"minecraft:dark_oak_fence":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dark_oak_fence[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:dark_oak_fence_gate":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"in_wall":{"values":["true","false"],"type":"bool"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dark_oak_fence_gate[facing=north,in_wall=false,open=false,powered=false]"},"minecraft:dark_oak_leaves":{"properties":{"distance":{"values":["1","2","3","4","5","6","7"],"type":"int"},"persistent":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dark_oak_leaves[distance=7,persistent=false]"},"minecraft:dark_oak_log":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:dark_oak_log[axis=y]"},"minecraft:dark_oak_planks":{"properties":{},"defaultstate":"minecraft:dark_oak_planks"},"minecraft:dark_oak_pressure_plate":{"properties":{"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dark_oak_pressure_plate[powered=false]"},"minecraft:dark_oak_sapling":{"properties":{"stage":{"values":["0","1"],"type":"int"}},"defaultstate":"minecraft:dark_oak_sapling[stage=0]"},"minecraft:dark_oak_sign":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dark_oak_sign[rotation=0,waterlogged=false]"},"minecraft:dark_oak_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dark_oak_slab[type=bottom,waterlogged=false]"},"minecraft:dark_oak_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dark_oak_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:dark_oak_trapdoor":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dark_oak_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]"},"minecraft:dark_oak_wall_sign":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dark_oak_wall_sign[facing=north,waterlogged=false]"},"minecraft:dark_oak_wood":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:dark_oak_wood[axis=y]"},"minecraft:dark_prismarine":{"properties":{},"defaultstate":"minecraft:dark_prismarine"},"minecraft:dark_prismarine_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dark_prismarine_slab[type=bottom,waterlogged=false]"},"minecraft:dark_prismarine_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dark_prismarine_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:daylight_detector":{"properties":{"inverted":{"values":["true","false"],"type":"bool"},"power":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:daylight_detector[inverted=false,power=0]"},"minecraft:dead_brain_coral":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_brain_coral[waterlogged=true]"},"minecraft:dead_brain_coral_block":{"properties":{},"defaultstate":"minecraft:dead_brain_coral_block"},"minecraft:dead_brain_coral_fan":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_brain_coral_fan[waterlogged=true]"},"minecraft:dead_brain_coral_wall_fan":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_brain_coral_wall_fan[facing=north,waterlogged=true]"},"minecraft:dead_bubble_coral":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_bubble_coral[waterlogged=true]"},"minecraft:dead_bubble_coral_block":{"properties":{},"defaultstate":"minecraft:dead_bubble_coral_block"},"minecraft:dead_bubble_coral_fan":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_bubble_coral_fan[waterlogged=true]"},"minecraft:dead_bubble_coral_wall_fan":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_bubble_coral_wall_fan[facing=north,waterlogged=true]"},"minecraft:dead_bush":{"properties":{},"defaultstate":"minecraft:dead_bush"},"minecraft:dead_fire_coral":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_fire_coral[waterlogged=true]"},"minecraft:dead_fire_coral_block":{"properties":{},"defaultstate":"minecraft:dead_fire_coral_block"},"minecraft:dead_fire_coral_fan":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_fire_coral_fan[waterlogged=true]"},"minecraft:dead_fire_coral_wall_fan":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_fire_coral_wall_fan[facing=north,waterlogged=true]"},"minecraft:dead_horn_coral":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_horn_coral[waterlogged=true]"},"minecraft:dead_horn_coral_block":{"properties":{},"defaultstate":"minecraft:dead_horn_coral_block"},"minecraft:dead_horn_coral_fan":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_horn_coral_fan[waterlogged=true]"},"minecraft:dead_horn_coral_wall_fan":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_horn_coral_wall_fan[facing=north,waterlogged=true]"},"minecraft:dead_tube_coral":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_tube_coral[waterlogged=true]"},"minecraft:dead_tube_coral_block":{"properties":{},"defaultstate":"minecraft:dead_tube_coral_block"},"minecraft:dead_tube_coral_fan":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_tube_coral_fan[waterlogged=true]"},"minecraft:dead_tube_coral_wall_fan":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_tube_coral_wall_fan[facing=north,waterlogged=true]"},"minecraft:detector_rail":{"properties":{"powered":{"values":["true","false"],"type":"bool"},"shape":{"values":["north_south","east_west","ascending_east","ascending_west","ascending_north","ascending_south"],"type":"enum"}},"defaultstate":"minecraft:detector_rail[powered=false,shape=north_south]"},"minecraft:diamond_block":{"properties":{},"defaultstate":"minecraft:diamond_block"},"minecraft:diamond_ore":{"properties":{},"defaultstate":"minecraft:diamond_ore"},"minecraft:diorite":{"properties":{},"defaultstate":"minecraft:diorite"},"minecraft:diorite_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:diorite_slab[type=bottom,waterlogged=false]"},"minecraft:diorite_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:diorite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:diorite_wall":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:diorite_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]"},"minecraft:dirt":{"properties":{},"defaultstate":"minecraft:dirt"},"minecraft:dispenser":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"},"triggered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dispenser[facing=north,triggered=false]"},"minecraft:dragon_egg":{"properties":{},"defaultstate":"minecraft:dragon_egg"},"minecraft:dragon_head":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:dragon_head[rotation=0]"},"minecraft:dragon_wall_head":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:dragon_wall_head[facing=north]"},"minecraft:dried_kelp_block":{"properties":{},"defaultstate":"minecraft:dried_kelp_block"},"minecraft:dropper":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"},"triggered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dropper[facing=north,triggered=false]"},"minecraft:emerald_block":{"properties":{},"defaultstate":"minecraft:emerald_block"},"minecraft:emerald_ore":{"properties":{},"defaultstate":"minecraft:emerald_ore"},"minecraft:enchanting_table":{"properties":{},"defaultstate":"minecraft:enchanting_table"},"minecraft:end_gateway":{"properties":{},"defaultstate":"minecraft:end_gateway"},"minecraft:end_portal":{"properties":{},"defaultstate":"minecraft:end_portal"},"minecraft:end_portal_frame":{"properties":{"eye":{"values":["true","false"],"type":"bool"},"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:end_portal_frame[eye=false,facing=north]"},"minecraft:end_rod":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:end_rod[facing=up]"},"minecraft:end_stone":{"properties":{},"defaultstate":"minecraft:end_stone"},"minecraft:end_stone_brick_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:end_stone_brick_slab[type=bottom,waterlogged=false]"},"minecraft:end_stone_brick_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:end_stone_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:end_stone_brick_wall":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:end_stone_brick_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]"},"minecraft:end_stone_bricks":{"properties":{},"defaultstate":"minecraft:end_stone_bricks"},"minecraft:ender_chest":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:ender_chest[facing=north,waterlogged=false]"},"minecraft:farmland":{"properties":{"moisture":{"values":["0","1","2","3","4","5","6","7"],"type":"int"}},"defaultstate":"minecraft:farmland[moisture=0]"},"minecraft:fern":{"properties":{},"defaultstate":"minecraft:fern"},"minecraft:fire":{"properties":{"age":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"},"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:fire[age=0,east=false,north=false,south=false,up=false,west=false]"},"minecraft:fire_coral":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:fire_coral[waterlogged=true]"},"minecraft:fire_coral_block":{"properties":{},"defaultstate":"minecraft:fire_coral_block"},"minecraft:fire_coral_fan":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:fire_coral_fan[waterlogged=true]"},"minecraft:fire_coral_wall_fan":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:fire_coral_wall_fan[facing=north,waterlogged=true]"},"minecraft:fletching_table":{"properties":{},"defaultstate":"minecraft:fletching_table"},"minecraft:flower_pot":{"properties":{},"defaultstate":"minecraft:flower_pot"},"minecraft:frosted_ice":{"properties":{"age":{"values":["0","1","2","3"],"type":"int"}},"defaultstate":"minecraft:frosted_ice[age=0]"},"minecraft:furnace":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"lit":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:furnace[facing=north,lit=false]"},"minecraft:glass":{"properties":{},"defaultstate":"minecraft:glass"},"minecraft:glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:glowstone":{"properties":{},"defaultstate":"minecraft:glowstone"},"minecraft:gold_block":{"properties":{},"defaultstate":"minecraft:gold_block"},"minecraft:gold_ore":{"properties":{},"defaultstate":"minecraft:gold_ore"},"minecraft:granite":{"properties":{},"defaultstate":"minecraft:granite"},"minecraft:granite_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:granite_slab[type=bottom,waterlogged=false]"},"minecraft:granite_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:granite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:granite_wall":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:granite_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]"},"minecraft:grass":{"properties":{},"defaultstate":"minecraft:grass"},"minecraft:grass_block":{"properties":{"snowy":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:grass_block[snowy=false]"},"minecraft:grass_path":{"properties":{},"defaultstate":"minecraft:grass_path"},"minecraft:gravel":{"properties":{},"defaultstate":"minecraft:gravel"},"minecraft:gray_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:gray_banner[rotation=0]"},"minecraft:gray_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:gray_bed[facing=north,occupied=false,part=foot]"},"minecraft:gray_carpet":{"properties":{},"defaultstate":"minecraft:gray_carpet"},"minecraft:gray_concrete":{"properties":{},"defaultstate":"minecraft:gray_concrete"},"minecraft:gray_concrete_powder":{"properties":{},"defaultstate":"minecraft:gray_concrete_powder"},"minecraft:gray_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:gray_glazed_terracotta[facing=north]"},"minecraft:gray_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:gray_shulker_box[facing=up]"},"minecraft:gray_stained_glass":{"properties":{},"defaultstate":"minecraft:gray_stained_glass"},"minecraft:gray_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:gray_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:gray_terracotta":{"properties":{},"defaultstate":"minecraft:gray_terracotta"},"minecraft:gray_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:gray_wall_banner[facing=north]"},"minecraft:gray_wool":{"properties":{},"defaultstate":"minecraft:gray_wool"},"minecraft:green_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:green_banner[rotation=0]"},"minecraft:green_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:green_bed[facing=north,occupied=false,part=foot]"},"minecraft:green_carpet":{"properties":{},"defaultstate":"minecraft:green_carpet"},"minecraft:green_concrete":{"properties":{},"defaultstate":"minecraft:green_concrete"},"minecraft:green_concrete_powder":{"properties":{},"defaultstate":"minecraft:green_concrete_powder"},"minecraft:green_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:green_glazed_terracotta[facing=north]"},"minecraft:green_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:green_shulker_box[facing=up]"},"minecraft:green_stained_glass":{"properties":{},"defaultstate":"minecraft:green_stained_glass"},"minecraft:green_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:green_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:green_terracotta":{"properties":{},"defaultstate":"minecraft:green_terracotta"},"minecraft:green_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:green_wall_banner[facing=north]"},"minecraft:green_wool":{"properties":{},"defaultstate":"minecraft:green_wool"},"minecraft:grindstone":{"properties":{"face":{"values":["floor","wall","ceiling"],"type":"enum"},"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:grindstone[face=wall,facing=north]"},"minecraft:hay_block":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:hay_block[axis=y]"},"minecraft:heavy_weighted_pressure_plate":{"properties":{"power":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:heavy_weighted_pressure_plate[power=0]"},"minecraft:honey_block":{"properties":{},"defaultstate":"minecraft:honey_block"},"minecraft:honeycomb_block":{"properties":{},"defaultstate":"minecraft:honeycomb_block"},"minecraft:hopper":{"properties":{"enabled":{"values":["true","false"],"type":"bool"},"facing":{"values":["down","north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:hopper[enabled=true,facing=down]"},"minecraft:horn_coral":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:horn_coral[waterlogged=true]"},"minecraft:horn_coral_block":{"properties":{},"defaultstate":"minecraft:horn_coral_block"},"minecraft:horn_coral_fan":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:horn_coral_fan[waterlogged=true]"},"minecraft:horn_coral_wall_fan":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:horn_coral_wall_fan[facing=north,waterlogged=true]"},"minecraft:ice":{"properties":{},"defaultstate":"minecraft:ice"},"minecraft:infested_chiseled_stone_bricks":{"properties":{},"defaultstate":"minecraft:infested_chiseled_stone_bricks"},"minecraft:infested_cobblestone":{"properties":{},"defaultstate":"minecraft:infested_cobblestone"},"minecraft:infested_cracked_stone_bricks":{"properties":{},"defaultstate":"minecraft:infested_cracked_stone_bricks"},"minecraft:infested_mossy_stone_bricks":{"properties":{},"defaultstate":"minecraft:infested_mossy_stone_bricks"},"minecraft:infested_stone":{"properties":{},"defaultstate":"minecraft:infested_stone"},"minecraft:infested_stone_bricks":{"properties":{},"defaultstate":"minecraft:infested_stone_bricks"},"minecraft:iron_bars":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:iron_bars[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:iron_block":{"properties":{},"defaultstate":"minecraft:iron_block"},"minecraft:iron_door":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["upper","lower"],"type":"enum"},"hinge":{"values":["left","right"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:iron_door[facing=north,half=lower,hinge=left,open=false,powered=false]"},"minecraft:iron_ore":{"properties":{},"defaultstate":"minecraft:iron_ore"},"minecraft:iron_trapdoor":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:iron_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]"},"minecraft:jack_o_lantern":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:jack_o_lantern[facing=north]"},"minecraft:jigsaw":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:jigsaw[facing=up]"},"minecraft:jukebox":{"properties":{"has_record":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:jukebox[has_record=false]"},"minecraft:jungle_button":{"properties":{"face":{"values":["floor","wall","ceiling"],"type":"enum"},"facing":{"values":["north","south","west","east"],"type":"direction"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:jungle_button[face=wall,facing=north,powered=false]"},"minecraft:jungle_door":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["upper","lower"],"type":"enum"},"hinge":{"values":["left","right"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:jungle_door[facing=north,half=lower,hinge=left,open=false,powered=false]"},"minecraft:jungle_fence":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:jungle_fence[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:jungle_fence_gate":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"in_wall":{"values":["true","false"],"type":"bool"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:jungle_fence_gate[facing=north,in_wall=false,open=false,powered=false]"},"minecraft:jungle_leaves":{"properties":{"distance":{"values":["1","2","3","4","5","6","7"],"type":"int"},"persistent":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:jungle_leaves[distance=7,persistent=false]"},"minecraft:jungle_log":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:jungle_log[axis=y]"},"minecraft:jungle_planks":{"properties":{},"defaultstate":"minecraft:jungle_planks"},"minecraft:jungle_pressure_plate":{"properties":{"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:jungle_pressure_plate[powered=false]"},"minecraft:jungle_sapling":{"properties":{"stage":{"values":["0","1"],"type":"int"}},"defaultstate":"minecraft:jungle_sapling[stage=0]"},"minecraft:jungle_sign":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:jungle_sign[rotation=0,waterlogged=false]"},"minecraft:jungle_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:jungle_slab[type=bottom,waterlogged=false]"},"minecraft:jungle_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:jungle_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:jungle_trapdoor":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:jungle_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]"},"minecraft:jungle_wall_sign":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:jungle_wall_sign[facing=north,waterlogged=false]"},"minecraft:jungle_wood":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:jungle_wood[axis=y]"},"minecraft:kelp":{"properties":{"age":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25"],"type":"int"}},"defaultstate":"minecraft:kelp[age=0]"},"minecraft:kelp_plant":{"properties":{},"defaultstate":"minecraft:kelp_plant"},"minecraft:ladder":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:ladder[facing=north,waterlogged=false]"},"minecraft:lantern":{"properties":{"hanging":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:lantern[hanging=false]"},"minecraft:lapis_block":{"properties":{},"defaultstate":"minecraft:lapis_block"},"minecraft:lapis_ore":{"properties":{},"defaultstate":"minecraft:lapis_ore"},"minecraft:large_fern":{"properties":{"half":{"values":["upper","lower"],"type":"enum"}},"defaultstate":"minecraft:large_fern[half=lower]"},"minecraft:lava":{"properties":{"level":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:lava[level=0]"},"minecraft:lectern":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"has_book":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:lectern[facing=north,has_book=false,powered=false]"},"minecraft:lever":{"properties":{"face":{"values":["floor","wall","ceiling"],"type":"enum"},"facing":{"values":["north","south","west","east"],"type":"direction"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:lever[face=wall,facing=north,powered=false]"},"minecraft:light_blue_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:light_blue_banner[rotation=0]"},"minecraft:light_blue_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:light_blue_bed[facing=north,occupied=false,part=foot]"},"minecraft:light_blue_carpet":{"properties":{},"defaultstate":"minecraft:light_blue_carpet"},"minecraft:light_blue_concrete":{"properties":{},"defaultstate":"minecraft:light_blue_concrete"},"minecraft:light_blue_concrete_powder":{"properties":{},"defaultstate":"minecraft:light_blue_concrete_powder"},"minecraft:light_blue_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:light_blue_glazed_terracotta[facing=north]"},"minecraft:light_blue_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:light_blue_shulker_box[facing=up]"},"minecraft:light_blue_stained_glass":{"properties":{},"defaultstate":"minecraft:light_blue_stained_glass"},"minecraft:light_blue_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:light_blue_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:light_blue_terracotta":{"properties":{},"defaultstate":"minecraft:light_blue_terracotta"},"minecraft:light_blue_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:light_blue_wall_banner[facing=north]"},"minecraft:light_blue_wool":{"properties":{},"defaultstate":"minecraft:light_blue_wool"},"minecraft:light_gray_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:light_gray_banner[rotation=0]"},"minecraft:light_gray_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:light_gray_bed[facing=north,occupied=false,part=foot]"},"minecraft:light_gray_carpet":{"properties":{},"defaultstate":"minecraft:light_gray_carpet"},"minecraft:light_gray_concrete":{"properties":{},"defaultstate":"minecraft:light_gray_concrete"},"minecraft:light_gray_concrete_powder":{"properties":{},"defaultstate":"minecraft:light_gray_concrete_powder"},"minecraft:light_gray_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:light_gray_glazed_terracotta[facing=north]"},"minecraft:light_gray_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:light_gray_shulker_box[facing=up]"},"minecraft:light_gray_stained_glass":{"properties":{},"defaultstate":"minecraft:light_gray_stained_glass"},"minecraft:light_gray_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:light_gray_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:light_gray_terracotta":{"properties":{},"defaultstate":"minecraft:light_gray_terracotta"},"minecraft:light_gray_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:light_gray_wall_banner[facing=north]"},"minecraft:light_gray_wool":{"properties":{},"defaultstate":"minecraft:light_gray_wool"},"minecraft:light_weighted_pressure_plate":{"properties":{"power":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:light_weighted_pressure_plate[power=0]"},"minecraft:lilac":{"properties":{"half":{"values":["upper","lower"],"type":"enum"}},"defaultstate":"minecraft:lilac[half=lower]"},"minecraft:lily_of_the_valley":{"properties":{},"defaultstate":"minecraft:lily_of_the_valley"},"minecraft:lily_pad":{"properties":{},"defaultstate":"minecraft:lily_pad"},"minecraft:lime_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:lime_banner[rotation=0]"},"minecraft:lime_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:lime_bed[facing=north,occupied=false,part=foot]"},"minecraft:lime_carpet":{"properties":{},"defaultstate":"minecraft:lime_carpet"},"minecraft:lime_concrete":{"properties":{},"defaultstate":"minecraft:lime_concrete"},"minecraft:lime_concrete_powder":{"properties":{},"defaultstate":"minecraft:lime_concrete_powder"},"minecraft:lime_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:lime_glazed_terracotta[facing=north]"},"minecraft:lime_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:lime_shulker_box[facing=up]"},"minecraft:lime_stained_glass":{"properties":{},"defaultstate":"minecraft:lime_stained_glass"},"minecraft:lime_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:lime_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:lime_terracotta":{"properties":{},"defaultstate":"minecraft:lime_terracotta"},"minecraft:lime_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:lime_wall_banner[facing=north]"},"minecraft:lime_wool":{"properties":{},"defaultstate":"minecraft:lime_wool"},"minecraft:loom":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:loom[facing=north]"},"minecraft:magenta_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:magenta_banner[rotation=0]"},"minecraft:magenta_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:magenta_bed[facing=north,occupied=false,part=foot]"},"minecraft:magenta_carpet":{"properties":{},"defaultstate":"minecraft:magenta_carpet"},"minecraft:magenta_concrete":{"properties":{},"defaultstate":"minecraft:magenta_concrete"},"minecraft:magenta_concrete_powder":{"properties":{},"defaultstate":"minecraft:magenta_concrete_powder"},"minecraft:magenta_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:magenta_glazed_terracotta[facing=north]"},"minecraft:magenta_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:magenta_shulker_box[facing=up]"},"minecraft:magenta_stained_glass":{"properties":{},"defaultstate":"minecraft:magenta_stained_glass"},"minecraft:magenta_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:magenta_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:magenta_terracotta":{"properties":{},"defaultstate":"minecraft:magenta_terracotta"},"minecraft:magenta_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:magenta_wall_banner[facing=north]"},"minecraft:magenta_wool":{"properties":{},"defaultstate":"minecraft:magenta_wool"},"minecraft:magma_block":{"properties":{},"defaultstate":"minecraft:magma_block"},"minecraft:melon":{"properties":{},"defaultstate":"minecraft:melon"},"minecraft:melon_stem":{"properties":{"age":{"values":["0","1","2","3","4","5","6","7"],"type":"int"}},"defaultstate":"minecraft:melon_stem[age=0]"},"minecraft:mossy_cobblestone":{"properties":{},"defaultstate":"minecraft:mossy_cobblestone"},"minecraft:mossy_cobblestone_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:mossy_cobblestone_slab[type=bottom,waterlogged=false]"},"minecraft:mossy_cobblestone_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:mossy_cobblestone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:mossy_cobblestone_wall":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:mossy_cobblestone_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]"},"minecraft:mossy_stone_brick_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:mossy_stone_brick_slab[type=bottom,waterlogged=false]"},"minecraft:mossy_stone_brick_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:mossy_stone_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:mossy_stone_brick_wall":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:mossy_stone_brick_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]"},"minecraft:mossy_stone_bricks":{"properties":{},"defaultstate":"minecraft:mossy_stone_bricks"},"minecraft:moving_piston":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"},"type":{"values":["normal","sticky"],"type":"enum"}},"defaultstate":"minecraft:moving_piston[facing=north,type=normal]"},"minecraft:mushroom_stem":{"properties":{"down":{"values":["true","false"],"type":"bool"},"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:mushroom_stem[down=true,east=true,north=true,south=true,up=true,west=true]"},"minecraft:mycelium":{"properties":{"snowy":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:mycelium[snowy=false]"},"minecraft:nether_brick_fence":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:nether_brick_fence[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:nether_brick_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:nether_brick_slab[type=bottom,waterlogged=false]"},"minecraft:nether_brick_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:nether_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:nether_brick_wall":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:nether_brick_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]"},"minecraft:nether_bricks":{"properties":{},"defaultstate":"minecraft:nether_bricks"},"minecraft:nether_portal":{"properties":{"axis":{"values":["x","z"],"type":"enum"}},"defaultstate":"minecraft:nether_portal[axis=x]"},"minecraft:nether_quartz_ore":{"properties":{},"defaultstate":"minecraft:nether_quartz_ore"},"minecraft:nether_wart":{"properties":{"age":{"values":["0","1","2","3"],"type":"int"}},"defaultstate":"minecraft:nether_wart[age=0]"},"minecraft:nether_wart_block":{"properties":{},"defaultstate":"minecraft:nether_wart_block"},"minecraft:netherrack":{"properties":{},"defaultstate":"minecraft:netherrack"},"minecraft:note_block":{"properties":{"instrument":{"values":["harp","basedrum","snare","hat","bass","flute","bell","guitar","chime","xylophone","iron_xylophone","cow_bell","didgeridoo","bit","banjo","pling"],"type":"enum"},"note":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24"],"type":"int"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:note_block[instrument=harp,note=0,powered=false]"},"minecraft:oak_button":{"properties":{"face":{"values":["floor","wall","ceiling"],"type":"enum"},"facing":{"values":["north","south","west","east"],"type":"direction"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:oak_button[face=wall,facing=north,powered=false]"},"minecraft:oak_door":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["upper","lower"],"type":"enum"},"hinge":{"values":["left","right"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:oak_door[facing=north,half=lower,hinge=left,open=false,powered=false]"},"minecraft:oak_fence":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:oak_fence[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:oak_fence_gate":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"in_wall":{"values":["true","false"],"type":"bool"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:oak_fence_gate[facing=north,in_wall=false,open=false,powered=false]"},"minecraft:oak_leaves":{"properties":{"distance":{"values":["1","2","3","4","5","6","7"],"type":"int"},"persistent":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:oak_leaves[distance=7,persistent=false]"},"minecraft:oak_log":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:oak_log[axis=y]"},"minecraft:oak_planks":{"properties":{},"defaultstate":"minecraft:oak_planks"},"minecraft:oak_pressure_plate":{"properties":{"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:oak_pressure_plate[powered=false]"},"minecraft:oak_sapling":{"properties":{"stage":{"values":["0","1"],"type":"int"}},"defaultstate":"minecraft:oak_sapling[stage=0]"},"minecraft:oak_sign":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:oak_sign[rotation=0,waterlogged=false]"},"minecraft:oak_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:oak_slab[type=bottom,waterlogged=false]"},"minecraft:oak_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:oak_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:oak_trapdoor":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:oak_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]"},"minecraft:oak_wall_sign":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:oak_wall_sign[facing=north,waterlogged=false]"},"minecraft:oak_wood":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:oak_wood[axis=y]"},"minecraft:observer":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:observer[facing=south,powered=false]"},"minecraft:obsidian":{"properties":{},"defaultstate":"minecraft:obsidian"},"minecraft:orange_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:orange_banner[rotation=0]"},"minecraft:orange_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:orange_bed[facing=north,occupied=false,part=foot]"},"minecraft:orange_carpet":{"properties":{},"defaultstate":"minecraft:orange_carpet"},"minecraft:orange_concrete":{"properties":{},"defaultstate":"minecraft:orange_concrete"},"minecraft:orange_concrete_powder":{"properties":{},"defaultstate":"minecraft:orange_concrete_powder"},"minecraft:orange_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:orange_glazed_terracotta[facing=north]"},"minecraft:orange_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:orange_shulker_box[facing=up]"},"minecraft:orange_stained_glass":{"properties":{},"defaultstate":"minecraft:orange_stained_glass"},"minecraft:orange_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:orange_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:orange_terracotta":{"properties":{},"defaultstate":"minecraft:orange_terracotta"},"minecraft:orange_tulip":{"properties":{},"defaultstate":"minecraft:orange_tulip"},"minecraft:orange_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:orange_wall_banner[facing=north]"},"minecraft:orange_wool":{"properties":{},"defaultstate":"minecraft:orange_wool"},"minecraft:oxeye_daisy":{"properties":{},"defaultstate":"minecraft:oxeye_daisy"},"minecraft:packed_ice":{"properties":{},"defaultstate":"minecraft:packed_ice"},"minecraft:peony":{"properties":{"half":{"values":["upper","lower"],"type":"enum"}},"defaultstate":"minecraft:peony[half=lower]"},"minecraft:petrified_oak_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:petrified_oak_slab[type=bottom,waterlogged=false]"},"minecraft:pink_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:pink_banner[rotation=0]"},"minecraft:pink_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:pink_bed[facing=north,occupied=false,part=foot]"},"minecraft:pink_carpet":{"properties":{},"defaultstate":"minecraft:pink_carpet"},"minecraft:pink_concrete":{"properties":{},"defaultstate":"minecraft:pink_concrete"},"minecraft:pink_concrete_powder":{"properties":{},"defaultstate":"minecraft:pink_concrete_powder"},"minecraft:pink_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:pink_glazed_terracotta[facing=north]"},"minecraft:pink_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:pink_shulker_box[facing=up]"},"minecraft:pink_stained_glass":{"properties":{},"defaultstate":"minecraft:pink_stained_glass"},"minecraft:pink_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:pink_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:pink_terracotta":{"properties":{},"defaultstate":"minecraft:pink_terracotta"},"minecraft:pink_tulip":{"properties":{},"defaultstate":"minecraft:pink_tulip"},"minecraft:pink_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:pink_wall_banner[facing=north]"},"minecraft:pink_wool":{"properties":{},"defaultstate":"minecraft:pink_wool"},"minecraft:piston":{"properties":{"extended":{"values":["true","false"],"type":"bool"},"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:piston[extended=false,facing=north]"},"minecraft:piston_head":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"},"short":{"values":["true","false"],"type":"bool"},"type":{"values":["normal","sticky"],"type":"enum"}},"defaultstate":"minecraft:piston_head[facing=north,short=false,type=normal]"},"minecraft:player_head":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:player_head[rotation=0]"},"minecraft:player_wall_head":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:player_wall_head[facing=north]"},"minecraft:podzol":{"properties":{"snowy":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:podzol[snowy=false]"},"minecraft:polished_andesite":{"properties":{},"defaultstate":"minecraft:polished_andesite"},"minecraft:polished_andesite_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:polished_andesite_slab[type=bottom,waterlogged=false]"},"minecraft:polished_andesite_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:polished_andesite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:polished_diorite":{"properties":{},"defaultstate":"minecraft:polished_diorite"},"minecraft:polished_diorite_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:polished_diorite_slab[type=bottom,waterlogged=false]"},"minecraft:polished_diorite_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:polished_diorite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:polished_granite":{"properties":{},"defaultstate":"minecraft:polished_granite"},"minecraft:polished_granite_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:polished_granite_slab[type=bottom,waterlogged=false]"},"minecraft:polished_granite_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:polished_granite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:poppy":{"properties":{},"defaultstate":"minecraft:poppy"},"minecraft:potatoes":{"properties":{"age":{"values":["0","1","2","3","4","5","6","7"],"type":"int"}},"defaultstate":"minecraft:potatoes[age=0]"},"minecraft:potted_acacia_sapling":{"properties":{},"defaultstate":"minecraft:potted_acacia_sapling"},"minecraft:potted_allium":{"properties":{},"defaultstate":"minecraft:potted_allium"},"minecraft:potted_azure_bluet":{"properties":{},"defaultstate":"minecraft:potted_azure_bluet"},"minecraft:potted_bamboo":{"properties":{},"defaultstate":"minecraft:potted_bamboo"},"minecraft:potted_birch_sapling":{"properties":{},"defaultstate":"minecraft:potted_birch_sapling"},"minecraft:potted_blue_orchid":{"properties":{},"defaultstate":"minecraft:potted_blue_orchid"},"minecraft:potted_brown_mushroom":{"properties":{},"defaultstate":"minecraft:potted_brown_mushroom"},"minecraft:potted_cactus":{"properties":{},"defaultstate":"minecraft:potted_cactus"},"minecraft:potted_cornflower":{"properties":{},"defaultstate":"minecraft:potted_cornflower"},"minecraft:potted_dandelion":{"properties":{},"defaultstate":"minecraft:potted_dandelion"},"minecraft:potted_dark_oak_sapling":{"properties":{},"defaultstate":"minecraft:potted_dark_oak_sapling"},"minecraft:potted_dead_bush":{"properties":{},"defaultstate":"minecraft:potted_dead_bush"},"minecraft:potted_fern":{"properties":{},"defaultstate":"minecraft:potted_fern"},"minecraft:potted_jungle_sapling":{"properties":{},"defaultstate":"minecraft:potted_jungle_sapling"},"minecraft:potted_lily_of_the_valley":{"properties":{},"defaultstate":"minecraft:potted_lily_of_the_valley"},"minecraft:potted_oak_sapling":{"properties":{},"defaultstate":"minecraft:potted_oak_sapling"},"minecraft:potted_orange_tulip":{"properties":{},"defaultstate":"minecraft:potted_orange_tulip"},"minecraft:potted_oxeye_daisy":{"properties":{},"defaultstate":"minecraft:potted_oxeye_daisy"},"minecraft:potted_pink_tulip":{"properties":{},"defaultstate":"minecraft:potted_pink_tulip"},"minecraft:potted_poppy":{"properties":{},"defaultstate":"minecraft:potted_poppy"},"minecraft:potted_red_mushroom":{"properties":{},"defaultstate":"minecraft:potted_red_mushroom"},"minecraft:potted_red_tulip":{"properties":{},"defaultstate":"minecraft:potted_red_tulip"},"minecraft:potted_spruce_sapling":{"properties":{},"defaultstate":"minecraft:potted_spruce_sapling"},"minecraft:potted_white_tulip":{"properties":{},"defaultstate":"minecraft:potted_white_tulip"},"minecraft:potted_wither_rose":{"properties":{},"defaultstate":"minecraft:potted_wither_rose"},"minecraft:powered_rail":{"properties":{"powered":{"values":["true","false"],"type":"bool"},"shape":{"values":["north_south","east_west","ascending_east","ascending_west","ascending_north","ascending_south"],"type":"enum"}},"defaultstate":"minecraft:powered_rail[powered=false,shape=north_south]"},"minecraft:prismarine":{"properties":{},"defaultstate":"minecraft:prismarine"},"minecraft:prismarine_brick_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:prismarine_brick_slab[type=bottom,waterlogged=false]"},"minecraft:prismarine_brick_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:prismarine_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:prismarine_bricks":{"properties":{},"defaultstate":"minecraft:prismarine_bricks"},"minecraft:prismarine_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:prismarine_slab[type=bottom,waterlogged=false]"},"minecraft:prismarine_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:prismarine_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:prismarine_wall":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:prismarine_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]"},"minecraft:pumpkin":{"properties":{},"defaultstate":"minecraft:pumpkin"},"minecraft:pumpkin_stem":{"properties":{"age":{"values":["0","1","2","3","4","5","6","7"],"type":"int"}},"defaultstate":"minecraft:pumpkin_stem[age=0]"},"minecraft:purple_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:purple_banner[rotation=0]"},"minecraft:purple_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:purple_bed[facing=north,occupied=false,part=foot]"},"minecraft:purple_carpet":{"properties":{},"defaultstate":"minecraft:purple_carpet"},"minecraft:purple_concrete":{"properties":{},"defaultstate":"minecraft:purple_concrete"},"minecraft:purple_concrete_powder":{"properties":{},"defaultstate":"minecraft:purple_concrete_powder"},"minecraft:purple_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:purple_glazed_terracotta[facing=north]"},"minecraft:purple_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:purple_shulker_box[facing=up]"},"minecraft:purple_stained_glass":{"properties":{},"defaultstate":"minecraft:purple_stained_glass"},"minecraft:purple_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:purple_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:purple_terracotta":{"properties":{},"defaultstate":"minecraft:purple_terracotta"},"minecraft:purple_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:purple_wall_banner[facing=north]"},"minecraft:purple_wool":{"properties":{},"defaultstate":"minecraft:purple_wool"},"minecraft:purpur_block":{"properties":{},"defaultstate":"minecraft:purpur_block"},"minecraft:purpur_pillar":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:purpur_pillar[axis=y]"},"minecraft:purpur_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:purpur_slab[type=bottom,waterlogged=false]"},"minecraft:purpur_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:purpur_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:quartz_block":{"properties":{},"defaultstate":"minecraft:quartz_block"},"minecraft:quartz_pillar":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:quartz_pillar[axis=y]"},"minecraft:quartz_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:quartz_slab[type=bottom,waterlogged=false]"},"minecraft:quartz_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:quartz_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:rail":{"properties":{"shape":{"values":["north_south","east_west","ascending_east","ascending_west","ascending_north","ascending_south","south_east","south_west","north_west","north_east"],"type":"enum"}},"defaultstate":"minecraft:rail[shape=north_south]"},"minecraft:red_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:red_banner[rotation=0]"},"minecraft:red_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:red_bed[facing=north,occupied=false,part=foot]"},"minecraft:red_carpet":{"properties":{},"defaultstate":"minecraft:red_carpet"},"minecraft:red_concrete":{"properties":{},"defaultstate":"minecraft:red_concrete"},"minecraft:red_concrete_powder":{"properties":{},"defaultstate":"minecraft:red_concrete_powder"},"minecraft:red_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:red_glazed_terracotta[facing=north]"},"minecraft:red_mushroom":{"properties":{},"defaultstate":"minecraft:red_mushroom"},"minecraft:red_mushroom_block":{"properties":{"down":{"values":["true","false"],"type":"bool"},"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:red_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true]"},"minecraft:red_nether_brick_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:red_nether_brick_slab[type=bottom,waterlogged=false]"},"minecraft:red_nether_brick_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:red_nether_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:red_nether_brick_wall":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:red_nether_brick_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]"},"minecraft:red_nether_bricks":{"properties":{},"defaultstate":"minecraft:red_nether_bricks"},"minecraft:red_sand":{"properties":{},"defaultstate":"minecraft:red_sand"},"minecraft:red_sandstone":{"properties":{},"defaultstate":"minecraft:red_sandstone"},"minecraft:red_sandstone_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:red_sandstone_slab[type=bottom,waterlogged=false]"},"minecraft:red_sandstone_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:red_sandstone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:red_sandstone_wall":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:red_sandstone_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]"},"minecraft:red_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:red_shulker_box[facing=up]"},"minecraft:red_stained_glass":{"properties":{},"defaultstate":"minecraft:red_stained_glass"},"minecraft:red_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:red_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:red_terracotta":{"properties":{},"defaultstate":"minecraft:red_terracotta"},"minecraft:red_tulip":{"properties":{},"defaultstate":"minecraft:red_tulip"},"minecraft:red_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:red_wall_banner[facing=north]"},"minecraft:red_wool":{"properties":{},"defaultstate":"minecraft:red_wool"},"minecraft:redstone_block":{"properties":{},"defaultstate":"minecraft:redstone_block"},"minecraft:redstone_lamp":{"properties":{"lit":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:redstone_lamp[lit=false]"},"minecraft:redstone_ore":{"properties":{"lit":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:redstone_ore[lit=false]"},"minecraft:redstone_torch":{"properties":{"lit":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:redstone_torch[lit=true]"},"minecraft:redstone_wall_torch":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"lit":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:redstone_wall_torch[facing=north,lit=true]"},"minecraft:redstone_wire":{"properties":{"east":{"values":["up","side","none"],"type":"enum"},"north":{"values":["up","side","none"],"type":"enum"},"power":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"},"south":{"values":["up","side","none"],"type":"enum"},"west":{"values":["up","side","none"],"type":"enum"}},"defaultstate":"minecraft:redstone_wire[east=none,north=none,power=0,south=none,west=none]"},"minecraft:repeater":{"properties":{"delay":{"values":["1","2","3","4"],"type":"int"},"facing":{"values":["north","south","west","east"],"type":"direction"},"locked":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:repeater[delay=1,facing=north,locked=false,powered=false]"},"minecraft:repeating_command_block":{"properties":{"conditional":{"values":["true","false"],"type":"bool"},"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:repeating_command_block[conditional=false,facing=north]"},"minecraft:rose_bush":{"properties":{"half":{"values":["upper","lower"],"type":"enum"}},"defaultstate":"minecraft:rose_bush[half=lower]"},"minecraft:sand":{"properties":{},"defaultstate":"minecraft:sand"},"minecraft:sandstone":{"properties":{},"defaultstate":"minecraft:sandstone"},"minecraft:sandstone_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:sandstone_slab[type=bottom,waterlogged=false]"},"minecraft:sandstone_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:sandstone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:sandstone_wall":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:sandstone_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]"},"minecraft:scaffolding":{"properties":{"bottom":{"values":["true","false"],"type":"bool"},"distance":{"values":["0","1","2","3","4","5","6","7"],"type":"int"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:scaffolding[bottom=false,distance=7,waterlogged=false]"},"minecraft:sea_lantern":{"properties":{},"defaultstate":"minecraft:sea_lantern"},"minecraft:sea_pickle":{"properties":{"pickles":{"values":["1","2","3","4"],"type":"int"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:sea_pickle[pickles=1,waterlogged=true]"},"minecraft:seagrass":{"properties":{},"defaultstate":"minecraft:seagrass"},"minecraft:shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:shulker_box[facing=up]"},"minecraft:skeleton_skull":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:skeleton_skull[rotation=0]"},"minecraft:skeleton_wall_skull":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:skeleton_wall_skull[facing=north]"},"minecraft:slime_block":{"properties":{},"defaultstate":"minecraft:slime_block"},"minecraft:smithing_table":{"properties":{},"defaultstate":"minecraft:smithing_table"},"minecraft:smoker":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"lit":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:smoker[facing=north,lit=false]"},"minecraft:smooth_quartz":{"properties":{},"defaultstate":"minecraft:smooth_quartz"},"minecraft:smooth_quartz_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:smooth_quartz_slab[type=bottom,waterlogged=false]"},"minecraft:smooth_quartz_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:smooth_quartz_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:smooth_red_sandstone":{"properties":{},"defaultstate":"minecraft:smooth_red_sandstone"},"minecraft:smooth_red_sandstone_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:smooth_red_sandstone_slab[type=bottom,waterlogged=false]"},"minecraft:smooth_red_sandstone_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:smooth_red_sandstone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:smooth_sandstone":{"properties":{},"defaultstate":"minecraft:smooth_sandstone"},"minecraft:smooth_sandstone_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:smooth_sandstone_slab[type=bottom,waterlogged=false]"},"minecraft:smooth_sandstone_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:smooth_sandstone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:smooth_stone":{"properties":{},"defaultstate":"minecraft:smooth_stone"},"minecraft:smooth_stone_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:smooth_stone_slab[type=bottom,waterlogged=false]"},"minecraft:snow":{"properties":{"layers":{"values":["1","2","3","4","5","6","7","8"],"type":"int"}},"defaultstate":"minecraft:snow[layers=1]"},"minecraft:snow_block":{"properties":{},"defaultstate":"minecraft:snow_block"},"minecraft:soul_sand":{"properties":{},"defaultstate":"minecraft:soul_sand"},"minecraft:spawner":{"properties":{},"defaultstate":"minecraft:spawner"},"minecraft:sponge":{"properties":{},"defaultstate":"minecraft:sponge"},"minecraft:spruce_button":{"properties":{"face":{"values":["floor","wall","ceiling"],"type":"enum"},"facing":{"values":["north","south","west","east"],"type":"direction"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:spruce_button[face=wall,facing=north,powered=false]"},"minecraft:spruce_door":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["upper","lower"],"type":"enum"},"hinge":{"values":["left","right"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:spruce_door[facing=north,half=lower,hinge=left,open=false,powered=false]"},"minecraft:spruce_fence":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:spruce_fence[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:spruce_fence_gate":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"in_wall":{"values":["true","false"],"type":"bool"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:spruce_fence_gate[facing=north,in_wall=false,open=false,powered=false]"},"minecraft:spruce_leaves":{"properties":{"distance":{"values":["1","2","3","4","5","6","7"],"type":"int"},"persistent":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:spruce_leaves[distance=7,persistent=false]"},"minecraft:spruce_log":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:spruce_log[axis=y]"},"minecraft:spruce_planks":{"properties":{},"defaultstate":"minecraft:spruce_planks"},"minecraft:spruce_pressure_plate":{"properties":{"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:spruce_pressure_plate[powered=false]"},"minecraft:spruce_sapling":{"properties":{"stage":{"values":["0","1"],"type":"int"}},"defaultstate":"minecraft:spruce_sapling[stage=0]"},"minecraft:spruce_sign":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:spruce_sign[rotation=0,waterlogged=false]"},"minecraft:spruce_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:spruce_slab[type=bottom,waterlogged=false]"},"minecraft:spruce_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:spruce_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:spruce_trapdoor":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:spruce_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]"},"minecraft:spruce_wall_sign":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:spruce_wall_sign[facing=north,waterlogged=false]"},"minecraft:spruce_wood":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:spruce_wood[axis=y]"},"minecraft:sticky_piston":{"properties":{"extended":{"values":["true","false"],"type":"bool"},"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:sticky_piston[extended=false,facing=north]"},"minecraft:stone":{"properties":{},"defaultstate":"minecraft:stone"},"minecraft:stone_brick_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:stone_brick_slab[type=bottom,waterlogged=false]"},"minecraft:stone_brick_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:stone_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:stone_brick_wall":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:stone_brick_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]"},"minecraft:stone_bricks":{"properties":{},"defaultstate":"minecraft:stone_bricks"},"minecraft:stone_button":{"properties":{"face":{"values":["floor","wall","ceiling"],"type":"enum"},"facing":{"values":["north","south","west","east"],"type":"direction"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:stone_button[face=wall,facing=north,powered=false]"},"minecraft:stone_pressure_plate":{"properties":{"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:stone_pressure_plate[powered=false]"},"minecraft:stone_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:stone_slab[type=bottom,waterlogged=false]"},"minecraft:stone_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:stone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:stonecutter":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:stonecutter[facing=north]"},"minecraft:stripped_acacia_log":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:stripped_acacia_log[axis=y]"},"minecraft:stripped_acacia_wood":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:stripped_acacia_wood[axis=y]"},"minecraft:stripped_birch_log":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:stripped_birch_log[axis=y]"},"minecraft:stripped_birch_wood":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:stripped_birch_wood[axis=y]"},"minecraft:stripped_dark_oak_log":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:stripped_dark_oak_log[axis=y]"},"minecraft:stripped_dark_oak_wood":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:stripped_dark_oak_wood[axis=y]"},"minecraft:stripped_jungle_log":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:stripped_jungle_log[axis=y]"},"minecraft:stripped_jungle_wood":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:stripped_jungle_wood[axis=y]"},"minecraft:stripped_oak_log":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:stripped_oak_log[axis=y]"},"minecraft:stripped_oak_wood":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:stripped_oak_wood[axis=y]"},"minecraft:stripped_spruce_log":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:stripped_spruce_log[axis=y]"},"minecraft:stripped_spruce_wood":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:stripped_spruce_wood[axis=y]"},"minecraft:structure_block":{"properties":{"mode":{"values":["save","load","corner","data"],"type":"enum"}},"defaultstate":"minecraft:structure_block[mode=save]"},"minecraft:structure_void":{"properties":{},"defaultstate":"minecraft:structure_void"},"minecraft:sugar_cane":{"properties":{"age":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:sugar_cane[age=0]"},"minecraft:sunflower":{"properties":{"half":{"values":["upper","lower"],"type":"enum"}},"defaultstate":"minecraft:sunflower[half=lower]"},"minecraft:sweet_berry_bush":{"properties":{"age":{"values":["0","1","2","3"],"type":"int"}},"defaultstate":"minecraft:sweet_berry_bush[age=0]"},"minecraft:tall_grass":{"properties":{"half":{"values":["upper","lower"],"type":"enum"}},"defaultstate":"minecraft:tall_grass[half=lower]"},"minecraft:tall_seagrass":{"properties":{"half":{"values":["upper","lower"],"type":"enum"}},"defaultstate":"minecraft:tall_seagrass[half=lower]"},"minecraft:terracotta":{"properties":{},"defaultstate":"minecraft:terracotta"},"minecraft:tnt":{"properties":{"unstable":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:tnt[unstable=false]"},"minecraft:torch":{"properties":{},"defaultstate":"minecraft:torch"},"minecraft:trapped_chest":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"type":{"values":["single","left","right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:trapped_chest[facing=north,type=single,waterlogged=false]"},"minecraft:tripwire":{"properties":{"attached":{"values":["true","false"],"type":"bool"},"disarmed":{"values":["true","false"],"type":"bool"},"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:tripwire[attached=false,disarmed=false,east=false,north=false,powered=false,south=false,west=false]"},"minecraft:tripwire_hook":{"properties":{"attached":{"values":["true","false"],"type":"bool"},"facing":{"values":["north","south","west","east"],"type":"direction"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:tripwire_hook[attached=false,facing=north,powered=false]"},"minecraft:tube_coral":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:tube_coral[waterlogged=true]"},"minecraft:tube_coral_block":{"properties":{},"defaultstate":"minecraft:tube_coral_block"},"minecraft:tube_coral_fan":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:tube_coral_fan[waterlogged=true]"},"minecraft:tube_coral_wall_fan":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:tube_coral_wall_fan[facing=north,waterlogged=true]"},"minecraft:turtle_egg":{"properties":{"eggs":{"values":["1","2","3","4"],"type":"int"},"hatch":{"values":["0","1","2"],"type":"int"}},"defaultstate":"minecraft:turtle_egg[eggs=1,hatch=0]"},"minecraft:vine":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:vine[east=false,north=false,south=false,up=false,west=false]"},"minecraft:void_air":{"properties":{},"defaultstate":"minecraft:void_air"},"minecraft:wall_torch":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:wall_torch[facing=north]"},"minecraft:water":{"properties":{"level":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:water[level=0]"},"minecraft:wet_sponge":{"properties":{},"defaultstate":"minecraft:wet_sponge"},"minecraft:wheat":{"properties":{"age":{"values":["0","1","2","3","4","5","6","7"],"type":"int"}},"defaultstate":"minecraft:wheat[age=0]"},"minecraft:white_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:white_banner[rotation=0]"},"minecraft:white_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:white_bed[facing=north,occupied=false,part=foot]"},"minecraft:white_carpet":{"properties":{},"defaultstate":"minecraft:white_carpet"},"minecraft:white_concrete":{"properties":{},"defaultstate":"minecraft:white_concrete"},"minecraft:white_concrete_powder":{"properties":{},"defaultstate":"minecraft:white_concrete_powder"},"minecraft:white_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:white_glazed_terracotta[facing=north]"},"minecraft:white_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:white_shulker_box[facing=up]"},"minecraft:white_stained_glass":{"properties":{},"defaultstate":"minecraft:white_stained_glass"},"minecraft:white_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:white_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:white_terracotta":{"properties":{},"defaultstate":"minecraft:white_terracotta"},"minecraft:white_tulip":{"properties":{},"defaultstate":"minecraft:white_tulip"},"minecraft:white_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:white_wall_banner[facing=north]"},"minecraft:white_wool":{"properties":{},"defaultstate":"minecraft:white_wool"},"minecraft:wither_rose":{"properties":{},"defaultstate":"minecraft:wither_rose"},"minecraft:wither_skeleton_skull":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:wither_skeleton_skull[rotation=0]"},"minecraft:wither_skeleton_wall_skull":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:wither_skeleton_wall_skull[facing=north]"},"minecraft:yellow_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:yellow_banner[rotation=0]"},"minecraft:yellow_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:yellow_bed[facing=north,occupied=false,part=foot]"},"minecraft:yellow_carpet":{"properties":{},"defaultstate":"minecraft:yellow_carpet"},"minecraft:yellow_concrete":{"properties":{},"defaultstate":"minecraft:yellow_concrete"},"minecraft:yellow_concrete_powder":{"properties":{},"defaultstate":"minecraft:yellow_concrete_powder"},"minecraft:yellow_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:yellow_glazed_terracotta[facing=north]"},"minecraft:yellow_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:yellow_shulker_box[facing=up]"},"minecraft:yellow_stained_glass":{"properties":{},"defaultstate":"minecraft:yellow_stained_glass"},"minecraft:yellow_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:yellow_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:yellow_terracotta":{"properties":{},"defaultstate":"minecraft:yellow_terracotta"},"minecraft:yellow_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:yellow_wall_banner[facing=north]"},"minecraft:yellow_wool":{"properties":{},"defaultstate":"minecraft:yellow_wool"},"minecraft:zombie_head":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:zombie_head[rotation=0]"},"minecraft:zombie_wall_head":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:zombie_wall_head[facing=north]"}},"items":["minecraft:acacia_boat","minecraft:acacia_button","minecraft:acacia_door","minecraft:acacia_fence","minecraft:acacia_fence_gate","minecraft:acacia_leaves","minecraft:acacia_log","minecraft:acacia_planks","minecraft:acacia_pressure_plate","minecraft:acacia_sapling","minecraft:acacia_sign","minecraft:acacia_slab","minecraft:acacia_stairs","minecraft:acacia_trapdoor","minecraft:acacia_wood","minecraft:activator_rail","minecraft:air","minecraft:allium","minecraft:andesite","minecraft:andesite_slab","minecraft:andesite_stairs","minecraft:andesite_wall","minecraft:anvil","minecraft:apple","minecraft:armor_stand","minecraft:arrow","minecraft:azure_bluet","minecraft:baked_potato","minecraft:bamboo","minecraft:barrel","minecraft:barrier","minecraft:bat_spawn_egg","minecraft:beacon","minecraft:bedrock","minecraft:bee_nest","minecraft:bee_spawn_egg","minecraft:beef","minecraft:beehive","minecraft:beetroot","minecraft:beetroot_seeds","minecraft:beetroot_soup","minecraft:bell","minecraft:birch_boat","minecraft:birch_button","minecraft:birch_door","minecraft:birch_fence","minecraft:birch_fence_gate","minecraft:birch_leaves","minecraft:birch_log","minecraft:birch_planks","minecraft:birch_pressure_plate","minecraft:birch_sapling","minecraft:birch_sign","minecraft:birch_slab","minecraft:birch_stairs","minecraft:birch_trapdoor","minecraft:birch_wood","minecraft:black_banner","minecraft:black_bed","minecraft:black_carpet","minecraft:black_concrete","minecraft:black_concrete_powder","minecraft:black_dye","minecraft:black_glazed_terracotta","minecraft:black_shulker_box","minecraft:black_stained_glass","minecraft:black_stained_glass_pane","minecraft:black_terracotta","minecraft:black_wool","minecraft:blast_furnace","minecraft:blaze_powder","minecraft:blaze_rod","minecraft:blaze_spawn_egg","minecraft:blue_banner","minecraft:blue_bed","minecraft:blue_carpet","minecraft:blue_concrete","minecraft:blue_concrete_powder","minecraft:blue_dye","minecraft:blue_glazed_terracotta","minecraft:blue_ice","minecraft:blue_orchid","minecraft:blue_shulker_box","minecraft:blue_stained_glass","minecraft:blue_stained_glass_pane","minecraft:blue_terracotta","minecraft:blue_wool","minecraft:bone","minecraft:bone_block","minecraft:bone_meal","minecraft:book","minecraft:bookshelf","minecraft:bow","minecraft:bowl","minecraft:brain_coral","minecraft:brain_coral_block","minecraft:brain_coral_fan","minecraft:bread","minecraft:brewing_stand","minecraft:brick","minecraft:brick_slab","minecraft:brick_stairs","minecraft:brick_wall","minecraft:bricks","minecraft:brown_banner","minecraft:brown_bed","minecraft:brown_carpet","minecraft:brown_concrete","minecraft:brown_concrete_powder","minecraft:brown_dye","minecraft:brown_glazed_terracotta","minecraft:brown_mushroom","minecraft:brown_mushroom_block","minecraft:brown_shulker_box","minecraft:brown_stained_glass","minecraft:brown_stained_glass_pane","minecraft:brown_terracotta","minecraft:brown_wool","minecraft:bubble_coral","minecraft:bubble_coral_block","minecraft:bubble_coral_fan","minecraft:bucket","minecraft:cactus","minecraft:cake","minecraft:campfire","minecraft:carrot","minecraft:carrot_on_a_stick","minecraft:cartography_table","minecraft:carved_pumpkin","minecraft:cat_spawn_egg","minecraft:cauldron","minecraft:cave_spider_spawn_egg","minecraft:chain_command_block","minecraft:chainmail_boots","minecraft:chainmail_chestplate","minecraft:chainmail_helmet","minecraft:chainmail_leggings","minecraft:charcoal","minecraft:chest","minecraft:chest_minecart","minecraft:chicken","minecraft:chicken_spawn_egg","minecraft:chipped_anvil","minecraft:chiseled_quartz_block","minecraft:chiseled_red_sandstone","minecraft:chiseled_sandstone","minecraft:chiseled_stone_bricks","minecraft:chorus_flower","minecraft:chorus_fruit","minecraft:chorus_plant","minecraft:clay","minecraft:clay_ball","minecraft:clock","minecraft:coal","minecraft:coal_block","minecraft:coal_ore","minecraft:coarse_dirt","minecraft:cobblestone","minecraft:cobblestone_slab","minecraft:cobblestone_stairs","minecraft:cobblestone_wall","minecraft:cobweb","minecraft:cocoa_beans","minecraft:cod","minecraft:cod_bucket","minecraft:cod_spawn_egg","minecraft:command_block","minecraft:command_block_minecart","minecraft:comparator","minecraft:compass","minecraft:composter","minecraft:conduit","minecraft:cooked_beef","minecraft:cooked_chicken","minecraft:cooked_cod","minecraft:cooked_mutton","minecraft:cooked_porkchop","minecraft:cooked_rabbit","minecraft:cooked_salmon","minecraft:cookie","minecraft:cornflower","minecraft:cow_spawn_egg","minecraft:cracked_stone_bricks","minecraft:crafting_table","minecraft:creeper_banner_pattern","minecraft:creeper_head","minecraft:creeper_spawn_egg","minecraft:crossbow","minecraft:cut_red_sandstone","minecraft:cut_red_sandstone_slab","minecraft:cut_sandstone","minecraft:cut_sandstone_slab","minecraft:cyan_banner","minecraft:cyan_bed","minecraft:cyan_carpet","minecraft:cyan_concrete","minecraft:cyan_concrete_powder","minecraft:cyan_dye","minecraft:cyan_glazed_terracotta","minecraft:cyan_shulker_box","minecraft:cyan_stained_glass","minecraft:cyan_stained_glass_pane","minecraft:cyan_terracotta","minecraft:cyan_wool","minecraft:damaged_anvil","minecraft:dandelion","minecraft:dark_oak_boat","minecraft:dark_oak_button","minecraft:dark_oak_door","minecraft:dark_oak_fence","minecraft:dark_oak_fence_gate","minecraft:dark_oak_leaves","minecraft:dark_oak_log","minecraft:dark_oak_planks","minecraft:dark_oak_pressure_plate","minecraft:dark_oak_sapling","minecraft:dark_oak_sign","minecraft:dark_oak_slab","minecraft:dark_oak_stairs","minecraft:dark_oak_trapdoor","minecraft:dark_oak_wood","minecraft:dark_prismarine","minecraft:dark_prismarine_slab","minecraft:dark_prismarine_stairs","minecraft:daylight_detector","minecraft:dead_brain_coral","minecraft:dead_brain_coral_block","minecraft:dead_brain_coral_fan","minecraft:dead_bubble_coral","minecraft:dead_bubble_coral_block","minecraft:dead_bubble_coral_fan","minecraft:dead_bush","minecraft:dead_fire_coral","minecraft:dead_fire_coral_block","minecraft:dead_fire_coral_fan","minecraft:dead_horn_coral","minecraft:dead_horn_coral_block","minecraft:dead_horn_coral_fan","minecraft:dead_tube_coral","minecraft:dead_tube_coral_block","minecraft:dead_tube_coral_fan","minecraft:debug_stick","minecraft:detector_rail","minecraft:diamond","minecraft:diamond_axe","minecraft:diamond_block","minecraft:diamond_boots","minecraft:diamond_chestplate","minecraft:diamond_helmet","minecraft:diamond_hoe","minecraft:diamond_horse_armor","minecraft:diamond_leggings","minecraft:diamond_ore","minecraft:diamond_pickaxe","minecraft:diamond_shovel","minecraft:diamond_sword","minecraft:diorite","minecraft:diorite_slab","minecraft:diorite_stairs","minecraft:diorite_wall","minecraft:dirt","minecraft:dispenser","minecraft:dolphin_spawn_egg","minecraft:donkey_spawn_egg","minecraft:dragon_breath","minecraft:dragon_egg","minecraft:dragon_head","minecraft:dried_kelp","minecraft:dried_kelp_block","minecraft:dropper","minecraft:drowned_spawn_egg","minecraft:egg","minecraft:elder_guardian_spawn_egg","minecraft:elytra","minecraft:emerald","minecraft:emerald_block","minecraft:emerald_ore","minecraft:enchanted_book","minecraft:enchanted_golden_apple","minecraft:enchanting_table","minecraft:end_crystal","minecraft:end_portal_frame","minecraft:end_rod","minecraft:end_stone","minecraft:end_stone_brick_slab","minecraft:end_stone_brick_stairs","minecraft:end_stone_brick_wall","minecraft:end_stone_bricks","minecraft:ender_chest","minecraft:ender_eye","minecraft:ender_pearl","minecraft:enderman_spawn_egg","minecraft:endermite_spawn_egg","minecraft:evoker_spawn_egg","minecraft:experience_bottle","minecraft:farmland","minecraft:feather","minecraft:fermented_spider_eye","minecraft:fern","minecraft:filled_map","minecraft:fire_charge","minecraft:fire_coral","minecraft:fire_coral_block","minecraft:fire_coral_fan","minecraft:firework_rocket","minecraft:firework_star","minecraft:fishing_rod","minecraft:fletching_table","minecraft:flint","minecraft:flint_and_steel","minecraft:flower_banner_pattern","minecraft:flower_pot","minecraft:fox_spawn_egg","minecraft:furnace","minecraft:furnace_minecart","minecraft:ghast_spawn_egg","minecraft:ghast_tear","minecraft:glass","minecraft:glass_bottle","minecraft:glass_pane","minecraft:glistering_melon_slice","minecraft:globe_banner_pattern","minecraft:glowstone","minecraft:glowstone_dust","minecraft:gold_block","minecraft:gold_ingot","minecraft:gold_nugget","minecraft:gold_ore","minecraft:golden_apple","minecraft:golden_axe","minecraft:golden_boots","minecraft:golden_carrot","minecraft:golden_chestplate","minecraft:golden_helmet","minecraft:golden_hoe","minecraft:golden_horse_armor","minecraft:golden_leggings","minecraft:golden_pickaxe","minecraft:golden_shovel","minecraft:golden_sword","minecraft:granite","minecraft:granite_slab","minecraft:granite_stairs","minecraft:granite_wall","minecraft:grass","minecraft:grass_block","minecraft:grass_path","minecraft:gravel","minecraft:gray_banner","minecraft:gray_bed","minecraft:gray_carpet","minecraft:gray_concrete","minecraft:gray_concrete_powder","minecraft:gray_dye","minecraft:gray_glazed_terracotta","minecraft:gray_shulker_box","minecraft:gray_stained_glass","minecraft:gray_stained_glass_pane","minecraft:gray_terracotta","minecraft:gray_wool","minecraft:green_banner","minecraft:green_bed","minecraft:green_carpet","minecraft:green_concrete","minecraft:green_concrete_powder","minecraft:green_dye","minecraft:green_glazed_terracotta","minecraft:green_shulker_box","minecraft:green_stained_glass","minecraft:green_stained_glass_pane","minecraft:green_terracotta","minecraft:green_wool","minecraft:grindstone","minecraft:guardian_spawn_egg","minecraft:gunpowder","minecraft:hay_block","minecraft:heart_of_the_sea","minecraft:heavy_weighted_pressure_plate","minecraft:honey_block","minecraft:honey_bottle","minecraft:honeycomb","minecraft:honeycomb_block","minecraft:hopper","minecraft:hopper_minecart","minecraft:horn_coral","minecraft:horn_coral_block","minecraft:horn_coral_fan","minecraft:horse_spawn_egg","minecraft:husk_spawn_egg","minecraft:ice","minecraft:infested_chiseled_stone_bricks","minecraft:infested_cobblestone","minecraft:infested_cracked_stone_bricks","minecraft:infested_mossy_stone_bricks","minecraft:infested_stone","minecraft:infested_stone_bricks","minecraft:ink_sac","minecraft:iron_axe","minecraft:iron_bars","minecraft:iron_block","minecraft:iron_boots","minecraft:iron_chestplate","minecraft:iron_door","minecraft:iron_helmet","minecraft:iron_hoe","minecraft:iron_horse_armor","minecraft:iron_ingot","minecraft:iron_leggings","minecraft:iron_nugget","minecraft:iron_ore","minecraft:iron_pickaxe","minecraft:iron_shovel","minecraft:iron_sword","minecraft:iron_trapdoor","minecraft:item_frame","minecraft:jack_o_lantern","minecraft:jigsaw","minecraft:jukebox","minecraft:jungle_boat","minecraft:jungle_button","minecraft:jungle_door","minecraft:jungle_fence","minecraft:jungle_fence_gate","minecraft:jungle_leaves","minecraft:jungle_log","minecraft:jungle_planks","minecraft:jungle_pressure_plate","minecraft:jungle_sapling","minecraft:jungle_sign","minecraft:jungle_slab","minecraft:jungle_stairs","minecraft:jungle_trapdoor","minecraft:jungle_wood","minecraft:kelp","minecraft:knowledge_book","minecraft:ladder","minecraft:lantern","minecraft:lapis_block","minecraft:lapis_lazuli","minecraft:lapis_ore","minecraft:large_fern","minecraft:lava_bucket","minecraft:lead","minecraft:leather","minecraft:leather_boots","minecraft:leather_chestplate","minecraft:leather_helmet","minecraft:leather_horse_armor","minecraft:leather_leggings","minecraft:lectern","minecraft:lever","minecraft:light_blue_banner","minecraft:light_blue_bed","minecraft:light_blue_carpet","minecraft:light_blue_concrete","minecraft:light_blue_concrete_powder","minecraft:light_blue_dye","minecraft:light_blue_glazed_terracotta","minecraft:light_blue_shulker_box","minecraft:light_blue_stained_glass","minecraft:light_blue_stained_glass_pane","minecraft:light_blue_terracotta","minecraft:light_blue_wool","minecraft:light_gray_banner","minecraft:light_gray_bed","minecraft:light_gray_carpet","minecraft:light_gray_concrete","minecraft:light_gray_concrete_powder","minecraft:light_gray_dye","minecraft:light_gray_glazed_terracotta","minecraft:light_gray_shulker_box","minecraft:light_gray_stained_glass","minecraft:light_gray_stained_glass_pane","minecraft:light_gray_terracotta","minecraft:light_gray_wool","minecraft:light_weighted_pressure_plate","minecraft:lilac","minecraft:lily_of_the_valley","minecraft:lily_pad","minecraft:lime_banner","minecraft:lime_bed","minecraft:lime_carpet","minecraft:lime_concrete","minecraft:lime_concrete_powder","minecraft:lime_dye","minecraft:lime_glazed_terracotta","minecraft:lime_shulker_box","minecraft:lime_stained_glass","minecraft:lime_stained_glass_pane","minecraft:lime_terracotta","minecraft:lime_wool","minecraft:lingering_potion","minecraft:llama_spawn_egg","minecraft:loom","minecraft:magenta_banner","minecraft:magenta_bed","minecraft:magenta_carpet","minecraft:magenta_concrete","minecraft:magenta_concrete_powder","minecraft:magenta_dye","minecraft:magenta_glazed_terracotta","minecraft:magenta_shulker_box","minecraft:magenta_stained_glass","minecraft:magenta_stained_glass_pane","minecraft:magenta_terracotta","minecraft:magenta_wool","minecraft:magma_block","minecraft:magma_cream","minecraft:magma_cube_spawn_egg","minecraft:map","minecraft:melon","minecraft:melon_seeds","minecraft:melon_slice","minecraft:milk_bucket","minecraft:minecart","minecraft:mojang_banner_pattern","minecraft:mooshroom_spawn_egg","minecraft:mossy_cobblestone","minecraft:mossy_cobblestone_slab","minecraft:mossy_cobblestone_stairs","minecraft:mossy_cobblestone_wall","minecraft:mossy_stone_brick_slab","minecraft:mossy_stone_brick_stairs","minecraft:mossy_stone_brick_wall","minecraft:mossy_stone_bricks","minecraft:mule_spawn_egg","minecraft:mushroom_stem","minecraft:mushroom_stew","minecraft:music_disc_11","minecraft:music_disc_13","minecraft:music_disc_blocks","minecraft:music_disc_cat","minecraft:music_disc_chirp","minecraft:music_disc_far","minecraft:music_disc_mall","minecraft:music_disc_mellohi","minecraft:music_disc_stal","minecraft:music_disc_strad","minecraft:music_disc_wait","minecraft:music_disc_ward","minecraft:mutton","minecraft:mycelium","minecraft:name_tag","minecraft:nautilus_shell","minecraft:nether_brick","minecraft:nether_brick_fence","minecraft:nether_brick_slab","minecraft:nether_brick_stairs","minecraft:nether_brick_wall","minecraft:nether_bricks","minecraft:nether_quartz_ore","minecraft:nether_star","minecraft:nether_wart","minecraft:nether_wart_block","minecraft:netherrack","minecraft:note_block","minecraft:oak_boat","minecraft:oak_button","minecraft:oak_door","minecraft:oak_fence","minecraft:oak_fence_gate","minecraft:oak_leaves","minecraft:oak_log","minecraft:oak_planks","minecraft:oak_pressure_plate","minecraft:oak_sapling","minecraft:oak_sign","minecraft:oak_slab","minecraft:oak_stairs","minecraft:oak_trapdoor","minecraft:oak_wood","minecraft:observer","minecraft:obsidian","minecraft:ocelot_spawn_egg","minecraft:orange_banner","minecraft:orange_bed","minecraft:orange_carpet","minecraft:orange_concrete","minecraft:orange_concrete_powder","minecraft:orange_dye","minecraft:orange_glazed_terracotta","minecraft:orange_shulker_box","minecraft:orange_stained_glass","minecraft:orange_stained_glass_pane","minecraft:orange_terracotta","minecraft:orange_tulip","minecraft:orange_wool","minecraft:oxeye_daisy","minecraft:packed_ice","minecraft:painting","minecraft:panda_spawn_egg","minecraft:paper","minecraft:parrot_spawn_egg","minecraft:peony","minecraft:petrified_oak_slab","minecraft:phantom_membrane","minecraft:phantom_spawn_egg","minecraft:pig_spawn_egg","minecraft:pillager_spawn_egg","minecraft:pink_banner","minecraft:pink_bed","minecraft:pink_carpet","minecraft:pink_concrete","minecraft:pink_concrete_powder","minecraft:pink_dye","minecraft:pink_glazed_terracotta","minecraft:pink_shulker_box","minecraft:pink_stained_glass","minecraft:pink_stained_glass_pane","minecraft:pink_terracotta","minecraft:pink_tulip","minecraft:pink_wool","minecraft:piston","minecraft:player_head","minecraft:podzol","minecraft:poisonous_potato","minecraft:polar_bear_spawn_egg","minecraft:polished_andesite","minecraft:polished_andesite_slab","minecraft:polished_andesite_stairs","minecraft:polished_diorite","minecraft:polished_diorite_slab","minecraft:polished_diorite_stairs","minecraft:polished_granite","minecraft:polished_granite_slab","minecraft:polished_granite_stairs","minecraft:popped_chorus_fruit","minecraft:poppy","minecraft:porkchop","minecraft:potato","minecraft:potion","minecraft:powered_rail","minecraft:prismarine","minecraft:prismarine_brick_slab","minecraft:prismarine_brick_stairs","minecraft:prismarine_bricks","minecraft:prismarine_crystals","minecraft:prismarine_shard","minecraft:prismarine_slab","minecraft:prismarine_stairs","minecraft:prismarine_wall","minecraft:pufferfish","minecraft:pufferfish_bucket","minecraft:pufferfish_spawn_egg","minecraft:pumpkin","minecraft:pumpkin_pie","minecraft:pumpkin_seeds","minecraft:purple_banner","minecraft:purple_bed","minecraft:purple_carpet","minecraft:purple_concrete","minecraft:purple_concrete_powder","minecraft:purple_dye","minecraft:purple_glazed_terracotta","minecraft:purple_shulker_box","minecraft:purple_stained_glass","minecraft:purple_stained_glass_pane","minecraft:purple_terracotta","minecraft:purple_wool","minecraft:purpur_block","minecraft:purpur_pillar","minecraft:purpur_slab","minecraft:purpur_stairs","minecraft:quartz","minecraft:quartz_block","minecraft:quartz_pillar","minecraft:quartz_slab","minecraft:quartz_stairs","minecraft:rabbit","minecraft:rabbit_foot","minecraft:rabbit_hide","minecraft:rabbit_spawn_egg","minecraft:rabbit_stew","minecraft:rail","minecraft:ravager_spawn_egg","minecraft:red_banner","minecraft:red_bed","minecraft:red_carpet","minecraft:red_concrete","minecraft:red_concrete_powder","minecraft:red_dye","minecraft:red_glazed_terracotta","minecraft:red_mushroom","minecraft:red_mushroom_block","minecraft:red_nether_brick_slab","minecraft:red_nether_brick_stairs","minecraft:red_nether_brick_wall","minecraft:red_nether_bricks","minecraft:red_sand","minecraft:red_sandstone","minecraft:red_sandstone_slab","minecraft:red_sandstone_stairs","minecraft:red_sandstone_wall","minecraft:red_shulker_box","minecraft:red_stained_glass","minecraft:red_stained_glass_pane","minecraft:red_terracotta","minecraft:red_tulip","minecraft:red_wool","minecraft:redstone","minecraft:redstone_block","minecraft:redstone_lamp","minecraft:redstone_ore","minecraft:redstone_torch","minecraft:repeater","minecraft:repeating_command_block","minecraft:rose_bush","minecraft:rotten_flesh","minecraft:saddle","minecraft:salmon","minecraft:salmon_bucket","minecraft:salmon_spawn_egg","minecraft:sand","minecraft:sandstone","minecraft:sandstone_slab","minecraft:sandstone_stairs","minecraft:sandstone_wall","minecraft:scaffolding","minecraft:scute","minecraft:sea_lantern","minecraft:sea_pickle","minecraft:seagrass","minecraft:shears","minecraft:sheep_spawn_egg","minecraft:shield","minecraft:shulker_box","minecraft:shulker_shell","minecraft:shulker_spawn_egg","minecraft:silverfish_spawn_egg","minecraft:skeleton_horse_spawn_egg","minecraft:skeleton_skull","minecraft:skeleton_spawn_egg","minecraft:skull_banner_pattern","minecraft:slime_ball","minecraft:slime_block","minecraft:slime_spawn_egg","minecraft:smithing_table","minecraft:smoker","minecraft:smooth_quartz","minecraft:smooth_quartz_slab","minecraft:smooth_quartz_stairs","minecraft:smooth_red_sandstone","minecraft:smooth_red_sandstone_slab","minecraft:smooth_red_sandstone_stairs","minecraft:smooth_sandstone","minecraft:smooth_sandstone_slab","minecraft:smooth_sandstone_stairs","minecraft:smooth_stone","minecraft:smooth_stone_slab","minecraft:snow","minecraft:snow_block","minecraft:snowball","minecraft:soul_sand","minecraft:spawner","minecraft:spectral_arrow","minecraft:spider_eye","minecraft:spider_spawn_egg","minecraft:splash_potion","minecraft:sponge","minecraft:spruce_boat","minecraft:spruce_button","minecraft:spruce_door","minecraft:spruce_fence","minecraft:spruce_fence_gate","minecraft:spruce_leaves","minecraft:spruce_log","minecraft:spruce_planks","minecraft:spruce_pressure_plate","minecraft:spruce_sapling","minecraft:spruce_sign","minecraft:spruce_slab","minecraft:spruce_stairs","minecraft:spruce_trapdoor","minecraft:spruce_wood","minecraft:squid_spawn_egg","minecraft:stick","minecraft:sticky_piston","minecraft:stone","minecraft:stone_axe","minecraft:stone_brick_slab","minecraft:stone_brick_stairs","minecraft:stone_brick_wall","minecraft:stone_bricks","minecraft:stone_button","minecraft:stone_hoe","minecraft:stone_pickaxe","minecraft:stone_pressure_plate","minecraft:stone_shovel","minecraft:stone_slab","minecraft:stone_stairs","minecraft:stone_sword","minecraft:stonecutter","minecraft:stray_spawn_egg","minecraft:string","minecraft:stripped_acacia_log","minecraft:stripped_acacia_wood","minecraft:stripped_birch_log","minecraft:stripped_birch_wood","minecraft:stripped_dark_oak_log","minecraft:stripped_dark_oak_wood","minecraft:stripped_jungle_log","minecraft:stripped_jungle_wood","minecraft:stripped_oak_log","minecraft:stripped_oak_wood","minecraft:stripped_spruce_log","minecraft:stripped_spruce_wood","minecraft:structure_block","minecraft:structure_void","minecraft:sugar","minecraft:sugar_cane","minecraft:sunflower","minecraft:suspicious_stew","minecraft:sweet_berries","minecraft:tall_grass","minecraft:terracotta","minecraft:tipped_arrow","minecraft:tnt","minecraft:tnt_minecart","minecraft:torch","minecraft:totem_of_undying","minecraft:trader_llama_spawn_egg","minecraft:trapped_chest","minecraft:trident","minecraft:tripwire_hook","minecraft:tropical_fish","minecraft:tropical_fish_bucket","minecraft:tropical_fish_spawn_egg","minecraft:tube_coral","minecraft:tube_coral_block","minecraft:tube_coral_fan","minecraft:turtle_egg","minecraft:turtle_helmet","minecraft:turtle_spawn_egg","minecraft:vex_spawn_egg","minecraft:villager_spawn_egg","minecraft:vindicator_spawn_egg","minecraft:vine","minecraft:wandering_trader_spawn_egg","minecraft:water_bucket","minecraft:wet_sponge","minecraft:wheat","minecraft:wheat_seeds","minecraft:white_banner","minecraft:white_bed","minecraft:white_carpet","minecraft:white_concrete","minecraft:white_concrete_powder","minecraft:white_dye","minecraft:white_glazed_terracotta","minecraft:white_shulker_box","minecraft:white_stained_glass","minecraft:white_stained_glass_pane","minecraft:white_terracotta","minecraft:white_tulip","minecraft:white_wool","minecraft:witch_spawn_egg","minecraft:wither_rose","minecraft:wither_skeleton_skull","minecraft:wither_skeleton_spawn_egg","minecraft:wolf_spawn_egg","minecraft:wooden_axe","minecraft:wooden_hoe","minecraft:wooden_pickaxe","minecraft:wooden_shovel","minecraft:wooden_sword","minecraft:writable_book","minecraft:written_book","minecraft:yellow_banner","minecraft:yellow_bed","minecraft:yellow_carpet","minecraft:yellow_concrete","minecraft:yellow_concrete_powder","minecraft:yellow_dye","minecraft:yellow_glazed_terracotta","minecraft:yellow_shulker_box","minecraft:yellow_stained_glass","minecraft:yellow_stained_glass_pane","minecraft:yellow_terracotta","minecraft:yellow_wool","minecraft:zombie_head","minecraft:zombie_horse_spawn_egg","minecraft:zombie_pigman_spawn_egg","minecraft:zombie_spawn_egg","minecraft:zombie_villager_spawn_egg"],"entities":["minecraft:area_effect_cloud","minecraft:armor_stand","minecraft:arrow","minecraft:bat","minecraft:bee","minecraft:blaze","minecraft:boat","minecraft:cat","minecraft:cave_spider","minecraft:chest_minecart","minecraft:chicken","minecraft:cod","minecraft:command_block_minecart","minecraft:cow","minecraft:creeper","minecraft:dolphin","minecraft:donkey","minecraft:dragon_fireball","minecraft:drowned","minecraft:egg","minecraft:elder_guardian","minecraft:end_crystal","minecraft:ender_dragon","minecraft:ender_pearl","minecraft:enderman","minecraft:endermite","minecraft:evoker","minecraft:evoker_fangs","minecraft:experience_bottle","minecraft:experience_orb","minecraft:eye_of_ender","minecraft:falling_block","minecraft:fireball","minecraft:firework_rocket","minecraft:fishing_bobber","minecraft:fox","minecraft:furnace_minecart","minecraft:ghast","minecraft:giant","minecraft:guardian","minecraft:hopper_minecart","minecraft:horse","minecraft:husk","minecraft:illusioner","minecraft:iron_golem","minecraft:item","minecraft:item_frame","minecraft:leash_knot","minecraft:lightning_bolt","minecraft:llama","minecraft:llama_spit","minecraft:magma_cube","minecraft:minecart","minecraft:mooshroom","minecraft:mule","minecraft:ocelot","minecraft:painting","minecraft:panda","minecraft:parrot","minecraft:phantom","minecraft:pig","minecraft:pillager","minecraft:player","minecraft:polar_bear","minecraft:potion","minecraft:pufferfish","minecraft:rabbit","minecraft:ravager","minecraft:salmon","minecraft:sheep","minecraft:shulker","minecraft:shulker_bullet","minecraft:silverfish","minecraft:skeleton","minecraft:skeleton_horse","minecraft:slime","minecraft:small_fireball","minecraft:snow_golem","minecraft:snowball","minecraft:spawner_minecart","minecraft:spectral_arrow","minecraft:spider","minecraft:squid","minecraft:stray","minecraft:tnt","minecraft:tnt_minecart","minecraft:trader_llama","minecraft:trident","minecraft:tropical_fish","minecraft:turtle","minecraft:vex","minecraft:villager","minecraft:vindicator","minecraft:wandering_trader","minecraft:witch","minecraft:wither","minecraft:wither_skeleton","minecraft:wither_skull","minecraft:wolf","minecraft:zombie","minecraft:zombie_horse","minecraft:zombie_pigman","minecraft:zombie_villager"],"biomes":["minecraft:badlands","minecraft:badlands_plateau","minecraft:bamboo_jungle","minecraft:bamboo_jungle_hills","minecraft:beach","minecraft:birch_forest","minecraft:birch_forest_hills","minecraft:cold_ocean","minecraft:dark_forest","minecraft:dark_forest_hills","minecraft:deep_cold_ocean","minecraft:deep_frozen_ocean","minecraft:deep_lukewarm_ocean","minecraft:deep_ocean","minecraft:deep_warm_ocean","minecraft:desert","minecraft:desert_hills","minecraft:desert_lakes","minecraft:end_barrens","minecraft:end_highlands","minecraft:end_midlands","minecraft:eroded_badlands","minecraft:flower_forest","minecraft:forest","minecraft:frozen_ocean","minecraft:frozen_river","minecraft:giant_spruce_taiga","minecraft:giant_spruce_taiga_hills","minecraft:giant_tree_taiga","minecraft:giant_tree_taiga_hills","minecraft:gravelly_mountains","minecraft:ice_spikes","minecraft:jungle","minecraft:jungle_edge","minecraft:jungle_hills","minecraft:lukewarm_ocean","minecraft:modified_badlands_plateau","minecraft:modified_gravelly_mountains","minecraft:modified_jungle","minecraft:modified_jungle_edge","minecraft:modified_wooded_badlands_plateau","minecraft:mountain_edge","minecraft:mountains","minecraft:mushroom_field_shore","minecraft:mushroom_fields","minecraft:nether","minecraft:ocean","minecraft:plains","minecraft:river","minecraft:savanna","minecraft:savanna_plateau","minecraft:shattered_savanna","minecraft:shattered_savanna_plateau","minecraft:small_end_islands","minecraft:snowy_beach","minecraft:snowy_mountains","minecraft:snowy_taiga","minecraft:snowy_taiga_hills","minecraft:snowy_taiga_mountains","minecraft:snowy_tundra","minecraft:stone_shore","minecraft:sunflower_plains","minecraft:swamp","minecraft:swamp_hills","minecraft:taiga","minecraft:taiga_hills","minecraft:taiga_mountains","minecraft:tall_birch_forest","minecraft:tall_birch_hills","minecraft:the_end","minecraft:the_void","minecraft:warm_ocean","minecraft:wooded_badlands_plateau","minecraft:wooded_hills","minecraft:wooded_mountains"],"blocktags":{"minecraft:slabs":["minecraft:stone_slab","minecraft:smooth_stone_slab","minecraft:stone_brick_slab","minecraft:sandstone_slab","minecraft:acacia_slab","minecraft:birch_slab","minecraft:dark_oak_slab","minecraft:jungle_slab","minecraft:oak_slab","minecraft:spruce_slab","minecraft:purpur_slab","minecraft:quartz_slab","minecraft:red_sandstone_slab","minecraft:brick_slab","minecraft:cobblestone_slab","minecraft:nether_brick_slab","minecraft:petrified_oak_slab","minecraft:prismarine_slab","minecraft:prismarine_brick_slab","minecraft:dark_prismarine_slab","minecraft:polished_granite_slab","minecraft:smooth_red_sandstone_slab","minecraft:mossy_stone_brick_slab","minecraft:polished_diorite_slab","minecraft:mossy_cobblestone_slab","minecraft:end_stone_brick_slab","minecraft:smooth_sandstone_slab","minecraft:smooth_quartz_slab","minecraft:granite_slab","minecraft:andesite_slab","minecraft:red_nether_brick_slab","minecraft:polished_andesite_slab","minecraft:diorite_slab","minecraft:cut_sandstone_slab","minecraft:cut_red_sandstone_slab"],"minecraft:carpets":["minecraft:white_carpet","minecraft:orange_carpet","minecraft:magenta_carpet","minecraft:light_blue_carpet","minecraft:yellow_carpet","minecraft:lime_carpet","minecraft:pink_carpet","minecraft:gray_carpet","minecraft:light_gray_carpet","minecraft:cyan_carpet","minecraft:purple_carpet","minecraft:blue_carpet","minecraft:brown_carpet","minecraft:green_carpet","minecraft:red_carpet","minecraft:black_carpet"],"minecraft:stairs":["minecraft:oak_stairs","minecraft:cobblestone_stairs","minecraft:spruce_stairs","minecraft:sandstone_stairs","minecraft:acacia_stairs","minecraft:jungle_stairs","minecraft:birch_stairs","minecraft:dark_oak_stairs","minecraft:nether_brick_stairs","minecraft:stone_brick_stairs","minecraft:brick_stairs","minecraft:purpur_stairs","minecraft:quartz_stairs","minecraft:red_sandstone_stairs","minecraft:prismarine_brick_stairs","minecraft:prismarine_stairs","minecraft:dark_prismarine_stairs","minecraft:polished_granite_stairs","minecraft:smooth_red_sandstone_stairs","minecraft:mossy_stone_brick_stairs","minecraft:polished_diorite_stairs","minecraft:mossy_cobblestone_stairs","minecraft:end_stone_brick_stairs","minecraft:stone_stairs","minecraft:smooth_sandstone_stairs","minecraft:smooth_quartz_stairs","minecraft:granite_stairs","minecraft:andesite_stairs","minecraft:red_nether_brick_stairs","minecraft:polished_andesite_stairs","minecraft:diorite_stairs"],"minecraft:wooden_doors":["minecraft:oak_door","minecraft:spruce_door","minecraft:birch_door","minecraft:jungle_door","minecraft:acacia_door","minecraft:dark_oak_door"],"minecraft:jungle_logs":["minecraft:jungle_log","minecraft:jungle_wood","minecraft:stripped_jungle_log","minecraft:stripped_jungle_wood"],"minecraft:planks":["minecraft:oak_planks","minecraft:spruce_planks","minecraft:birch_planks","minecraft:jungle_planks","minecraft:acacia_planks","minecraft:dark_oak_planks"],"minecraft:wall_corals":["minecraft:tube_coral_wall_fan","minecraft:brain_coral_wall_fan","minecraft:bubble_coral_wall_fan","minecraft:fire_coral_wall_fan","minecraft:horn_coral_wall_fan"],"minecraft:shulker_boxes":["minecraft:shulker_box","minecraft:black_shulker_box","minecraft:blue_shulker_box","minecraft:brown_shulker_box","minecraft:cyan_shulker_box","minecraft:gray_shulker_box","minecraft:green_shulker_box","minecraft:light_blue_shulker_box","minecraft:light_gray_shulker_box","minecraft:lime_shulker_box","minecraft:magenta_shulker_box","minecraft:orange_shulker_box","minecraft:pink_shulker_box","minecraft:purple_shulker_box","minecraft:red_shulker_box","minecraft:white_shulker_box","minecraft:yellow_shulker_box"],"minecraft:acacia_logs":["minecraft:acacia_log","minecraft:acacia_wood","minecraft:stripped_acacia_log","minecraft:stripped_acacia_wood"],"minecraft:wither_immune":["minecraft:barrier","minecraft:bedrock","minecraft:end_portal","minecraft:end_portal_frame","minecraft:end_gateway","minecraft:command_block","minecraft:repeating_command_block","minecraft:chain_command_block","minecraft:structure_block","minecraft:jigsaw","minecraft:moving_piston"],"minecraft:flower_pots":["minecraft:flower_pot","minecraft:potted_poppy","minecraft:potted_blue_orchid","minecraft:potted_allium","minecraft:potted_azure_bluet","minecraft:potted_red_tulip","minecraft:potted_orange_tulip","minecraft:potted_white_tulip","minecraft:potted_pink_tulip","minecraft:potted_oxeye_daisy","minecraft:potted_dandelion","minecraft:potted_oak_sapling","minecraft:potted_spruce_sapling","minecraft:potted_birch_sapling","minecraft:potted_jungle_sapling","minecraft:potted_acacia_sapling","minecraft:potted_dark_oak_sapling","minecraft:potted_red_mushroom","minecraft:potted_brown_mushroom","minecraft:potted_dead_bush","minecraft:potted_fern","minecraft:potted_cactus","minecraft:potted_cornflower","minecraft:potted_lily_of_the_valley","minecraft:potted_wither_rose","minecraft:potted_bamboo"],"minecraft:stone_bricks":["minecraft:stone_bricks","minecraft:mossy_stone_bricks","minecraft:cracked_stone_bricks","minecraft:chiseled_stone_bricks"],"minecraft:enderman_holdable":["minecraft:grass_block","minecraft:dirt","minecraft:coarse_dirt","minecraft:podzol","minecraft:sand","minecraft:red_sand","minecraft:gravel","minecraft:brown_mushroom","minecraft:red_mushroom","minecraft:tnt","minecraft:cactus","minecraft:clay","minecraft:pumpkin","minecraft:carved_pumpkin","minecraft:melon","minecraft:mycelium","minecraft:netherrack","minecraft:dandelion","minecraft:poppy","minecraft:blue_orchid","minecraft:allium","minecraft:azure_bluet","minecraft:red_tulip","minecraft:orange_tulip","minecraft:white_tulip","minecraft:pink_tulip","minecraft:oxeye_daisy","minecraft:cornflower","minecraft:lily_of_the_valley","minecraft:wither_rose"],"minecraft:spruce_logs":["minecraft:spruce_log","minecraft:spruce_wood","minecraft:stripped_spruce_log","minecraft:stripped_spruce_wood"],"minecraft:flowers":["minecraft:dandelion","minecraft:poppy","minecraft:blue_orchid","minecraft:allium","minecraft:azure_bluet","minecraft:red_tulip","minecraft:orange_tulip","minecraft:white_tulip","minecraft:pink_tulip","minecraft:oxeye_daisy","minecraft:cornflower","minecraft:lily_of_the_valley","minecraft:wither_rose","minecraft:sunflower","minecraft:lilac","minecraft:peony","minecraft:rose_bush"],"minecraft:wooden_slabs":["minecraft:oak_slab","minecraft:spruce_slab","minecraft:birch_slab","minecraft:jungle_slab","minecraft:acacia_slab","minecraft:dark_oak_slab"],"minecraft:coral_blocks":["minecraft:tube_coral_block","minecraft:brain_coral_block","minecraft:bubble_coral_block","minecraft:fire_coral_block","minecraft:horn_coral_block"],"minecraft:signs":["minecraft:oak_sign","minecraft:spruce_sign","minecraft:birch_sign","minecraft:acacia_sign","minecraft:jungle_sign","minecraft:dark_oak_sign","minecraft:oak_wall_sign","minecraft:spruce_wall_sign","minecraft:birch_wall_sign","minecraft:acacia_wall_sign","minecraft:jungle_wall_sign","minecraft:dark_oak_wall_sign"],"minecraft:dark_oak_logs":["minecraft:dark_oak_log","minecraft:dark_oak_wood","minecraft:stripped_dark_oak_log","minecraft:stripped_dark_oak_wood"],"minecraft:sand":["minecraft:sand","minecraft:red_sand"],"minecraft:valid_spawn":["minecraft:grass_block","minecraft:podzol"],"minecraft:underwater_bonemeals":["minecraft:seagrass","minecraft:tube_coral_fan","minecraft:brain_coral_fan","minecraft:bubble_coral_fan","minecraft:fire_coral_fan","minecraft:horn_coral_fan","minecraft:tube_coral","minecraft:brain_coral","minecraft:bubble_coral","minecraft:fire_coral","minecraft:horn_coral","minecraft:tube_coral_wall_fan","minecraft:brain_coral_wall_fan","minecraft:bubble_coral_wall_fan","minecraft:fire_coral_wall_fan","minecraft:horn_coral_wall_fan"],"minecraft:oak_logs":["minecraft:oak_log","minecraft:oak_wood","minecraft:stripped_oak_log","minecraft:stripped_oak_wood"],"minecraft:buttons":["minecraft:stone_button","minecraft:oak_button","minecraft:spruce_button","minecraft:birch_button","minecraft:jungle_button","minecraft:acacia_button","minecraft:dark_oak_button"],"minecraft:wooden_pressure_plates":["minecraft:oak_pressure_plate","minecraft:spruce_pressure_plate","minecraft:birch_pressure_plate","minecraft:jungle_pressure_plate","minecraft:acacia_pressure_plate","minecraft:dark_oak_pressure_plate"],"minecraft:beds":["minecraft:red_bed","minecraft:black_bed","minecraft:blue_bed","minecraft:brown_bed","minecraft:cyan_bed","minecraft:gray_bed","minecraft:green_bed","minecraft:light_blue_bed","minecraft:light_gray_bed","minecraft:lime_bed","minecraft:magenta_bed","minecraft:orange_bed","minecraft:pink_bed","minecraft:purple_bed","minecraft:white_bed","minecraft:yellow_bed"],"minecraft:walls":["minecraft:cobblestone_wall","minecraft:mossy_cobblestone_wall","minecraft:brick_wall","minecraft:prismarine_wall","minecraft:red_sandstone_wall","minecraft:mossy_stone_brick_wall","minecraft:granite_wall","minecraft:stone_brick_wall","minecraft:nether_brick_wall","minecraft:andesite_wall","minecraft:red_nether_brick_wall","minecraft:sandstone_wall","minecraft:end_stone_brick_wall","minecraft:diorite_wall"],"minecraft:rails":["minecraft:rail","minecraft:powered_rail","minecraft:detector_rail","minecraft:activator_rail"],"minecraft:beehives":["minecraft:bee_nest","minecraft:beehive"],"minecraft:birch_logs":["minecraft:birch_log","minecraft:birch_wood","minecraft:stripped_birch_log","minecraft:stripped_birch_wood"],"minecraft:wooden_trapdoors":["minecraft:acacia_trapdoor","minecraft:birch_trapdoor","minecraft:dark_oak_trapdoor","minecraft:jungle_trapdoor","minecraft:oak_trapdoor","minecraft:spruce_trapdoor"],"minecraft:wooden_fences":["minecraft:oak_fence","minecraft:acacia_fence","minecraft:dark_oak_fence","minecraft:spruce_fence","minecraft:birch_fence","minecraft:jungle_fence"],"minecraft:saplings":["minecraft:oak_sapling","minecraft:spruce_sapling","minecraft:birch_sapling","minecraft:jungle_sapling","minecraft:acacia_sapling","minecraft:dark_oak_sapling"],"minecraft:small_flowers":["minecraft:dandelion","minecraft:poppy","minecraft:blue_orchid","minecraft:allium","minecraft:azure_bluet","minecraft:red_tulip","minecraft:orange_tulip","minecraft:white_tulip","minecraft:pink_tulip","minecraft:oxeye_daisy","minecraft:cornflower","minecraft:lily_of_the_valley","minecraft:wither_rose"],"minecraft:crops":["minecraft:beetroots","minecraft:carrots","minecraft:potatoes","minecraft:wheat","minecraft:melon_stem","minecraft:pumpkin_stem"],"minecraft:bamboo_plantable_on":["minecraft:bamboo","minecraft:bamboo_sapling","minecraft:gravel","minecraft:dirt","minecraft:grass_block","minecraft:podzol","minecraft:coarse_dirt","minecraft:mycelium","minecraft:sand","minecraft:red_sand"],"minecraft:ice":["minecraft:ice","minecraft:packed_ice","minecraft:blue_ice","minecraft:frosted_ice"],"minecraft:wooden_stairs":["minecraft:oak_stairs","minecraft:spruce_stairs","minecraft:birch_stairs","minecraft:jungle_stairs","minecraft:acacia_stairs","minecraft:dark_oak_stairs"],"minecraft:anvil":["minecraft:anvil","minecraft:chipped_anvil","minecraft:damaged_anvil"],"minecraft:tall_flowers":["minecraft:sunflower","minecraft:lilac","minecraft:peony","minecraft:rose_bush"],"minecraft:logs":["minecraft:dark_oak_log","minecraft:dark_oak_wood","minecraft:stripped_dark_oak_log","minecraft:stripped_dark_oak_wood","minecraft:oak_log","minecraft:oak_wood","minecraft:stripped_oak_log","minecraft:stripped_oak_wood","minecraft:acacia_log","minecraft:acacia_wood","minecraft:stripped_acacia_log","minecraft:stripped_acacia_wood","minecraft:birch_log","minecraft:birch_wood","minecraft:stripped_birch_log","minecraft:stripped_birch_wood","minecraft:jungle_log","minecraft:jungle_wood","minecraft:stripped_jungle_log","minecraft:stripped_jungle_wood","minecraft:spruce_log","minecraft:spruce_wood","minecraft:stripped_spruce_log","minecraft:stripped_spruce_wood"],"minecraft:corals":["minecraft:tube_coral_fan","minecraft:brain_coral_fan","minecraft:bubble_coral_fan","minecraft:fire_coral_fan","minecraft:horn_coral_fan","minecraft:tube_coral","minecraft:brain_coral","minecraft:bubble_coral","minecraft:fire_coral","minecraft:horn_coral"],"minecraft:bee_growables":["minecraft:sweet_berry_bush","minecraft:beetroots","minecraft:carrots","minecraft:potatoes","minecraft:wheat","minecraft:melon_stem","minecraft:pumpkin_stem"],"minecraft:wooden_buttons":["minecraft:oak_button","minecraft:spruce_button","minecraft:birch_button","minecraft:jungle_button","minecraft:acacia_button","minecraft:dark_oak_button"],"minecraft:wool":["minecraft:white_wool","minecraft:orange_wool","minecraft:magenta_wool","minecraft:light_blue_wool","minecraft:yellow_wool","minecraft:lime_wool","minecraft:pink_wool","minecraft:gray_wool","minecraft:light_gray_wool","minecraft:cyan_wool","minecraft:purple_wool","minecraft:blue_wool","minecraft:brown_wool","minecraft:green_wool","minecraft:red_wool","minecraft:black_wool"],"minecraft:coral_plants":["minecraft:tube_coral","minecraft:brain_coral","minecraft:bubble_coral","minecraft:fire_coral","minecraft:horn_coral"],"minecraft:banners":["minecraft:white_banner","minecraft:orange_banner","minecraft:magenta_banner","minecraft:light_blue_banner","minecraft:yellow_banner","minecraft:lime_banner","minecraft:pink_banner","minecraft:gray_banner","minecraft:light_gray_banner","minecraft:cyan_banner","minecraft:purple_banner","minecraft:blue_banner","minecraft:brown_banner","minecraft:green_banner","minecraft:red_banner","minecraft:black_banner","minecraft:white_wall_banner","minecraft:orange_wall_banner","minecraft:magenta_wall_banner","minecraft:light_blue_wall_banner","minecraft:yellow_wall_banner","minecraft:lime_wall_banner","minecraft:pink_wall_banner","minecraft:gray_wall_banner","minecraft:light_gray_wall_banner","minecraft:cyan_wall_banner","minecraft:purple_wall_banner","minecraft:blue_wall_banner","minecraft:brown_wall_banner","minecraft:green_wall_banner","minecraft:red_wall_banner","minecraft:black_wall_banner"],"minecraft:dragon_immune":["minecraft:barrier","minecraft:bedrock","minecraft:end_portal","minecraft:end_portal_frame","minecraft:end_gateway","minecraft:command_block","minecraft:repeating_command_block","minecraft:chain_command_block","minecraft:structure_block","minecraft:jigsaw","minecraft:moving_piston","minecraft:obsidian","minecraft:end_stone","minecraft:iron_bars"],"minecraft:doors":["minecraft:iron_door","minecraft:oak_door","minecraft:spruce_door","minecraft:birch_door","minecraft:jungle_door","minecraft:acacia_door","minecraft:dark_oak_door"],"minecraft:portals":["minecraft:nether_portal","minecraft:end_portal","minecraft:end_gateway"],"minecraft:fences":["minecraft:nether_brick_fence","minecraft:oak_fence","minecraft:acacia_fence","minecraft:dark_oak_fence","minecraft:spruce_fence","minecraft:birch_fence","minecraft:jungle_fence"],"minecraft:wall_signs":["minecraft:oak_wall_sign","minecraft:spruce_wall_sign","minecraft:birch_wall_sign","minecraft:acacia_wall_sign","minecraft:jungle_wall_sign","minecraft:dark_oak_wall_sign"],"minecraft:standing_signs":["minecraft:oak_sign","minecraft:spruce_sign","minecraft:birch_sign","minecraft:acacia_sign","minecraft:jungle_sign","minecraft:dark_oak_sign"],"minecraft:impermeable":["minecraft:glass","minecraft:white_stained_glass","minecraft:orange_stained_glass","minecraft:magenta_stained_glass","minecraft:light_blue_stained_glass","minecraft:yellow_stained_glass","minecraft:lime_stained_glass","minecraft:pink_stained_glass","minecraft:gray_stained_glass","minecraft:light_gray_stained_glass","minecraft:cyan_stained_glass","minecraft:purple_stained_glass","minecraft:blue_stained_glass","minecraft:brown_stained_glass","minecraft:green_stained_glass","minecraft:red_stained_glass","minecraft:black_stained_glass"],"minecraft:trapdoors":["minecraft:iron_trapdoor","minecraft:acacia_trapdoor","minecraft:birch_trapdoor","minecraft:dark_oak_trapdoor","minecraft:jungle_trapdoor","minecraft:oak_trapdoor","minecraft:spruce_trapdoor"],"minecraft:leaves":["minecraft:jungle_leaves","minecraft:oak_leaves","minecraft:spruce_leaves","minecraft:dark_oak_leaves","minecraft:acacia_leaves","minecraft:birch_leaves"]},"itemtags":{"minecraft:boats":["minecraft:oak_boat","minecraft:spruce_boat","minecraft:birch_boat","minecraft:jungle_boat","minecraft:acacia_boat","minecraft:dark_oak_boat"],"minecraft:banners":["minecraft:white_banner","minecraft:orange_banner","minecraft:magenta_banner","minecraft:light_blue_banner","minecraft:yellow_banner","minecraft:lime_banner","minecraft:pink_banner","minecraft:gray_banner","minecraft:light_gray_banner","minecraft:cyan_banner","minecraft:purple_banner","minecraft:blue_banner","minecraft:brown_banner","minecraft:green_banner","minecraft:red_banner","minecraft:black_banner"],"minecraft:arrows":["minecraft:arrow","minecraft:tipped_arrow","minecraft:spectral_arrow"],"minecraft:coals":["minecraft:coal","minecraft:charcoal"],"minecraft:music_discs":["minecraft:music_disc_13","minecraft:music_disc_cat","minecraft:music_disc_blocks","minecraft:music_disc_chirp","minecraft:music_disc_far","minecraft:music_disc_mall","minecraft:music_disc_mellohi","minecraft:music_disc_stal","minecraft:music_disc_strad","minecraft:music_disc_ward","minecraft:music_disc_11","minecraft:music_disc_wait"],"minecraft:fishes":["minecraft:cod","minecraft:cooked_cod","minecraft:salmon","minecraft:cooked_salmon","minecraft:pufferfish","minecraft:tropical_fish"],"minecraft:lectern_books":["minecraft:written_book","minecraft:writable_book"]},"entitytags":{"minecraft:raiders":["minecraft:evoker","minecraft:pillager","minecraft:ravager","minecraft:vindicator","minecraft:illusioner","minecraft:witch"],"minecraft:skeletons":["minecraft:skeleton","minecraft:stray","minecraft:wither_skeleton"],"minecraft:arrows":["minecraft:arrow","minecraft:spectral_arrow"],"minecraft:beehive_inhabitors":["minecraft:bee"]}} \ No newline at end of file +{ + "blocks": { + "minecraft:acacia_button": { + "properties": { + "face": { + "values": [ + "floor", + "wall", + "ceiling" + ], + "type": "enum" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:acacia_button[face=wall,facing=north,powered=false]" + }, + "minecraft:acacia_door": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + }, + "hinge": { + "values": [ + "left", + "right" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:acacia_door[facing=north,half=lower,hinge=left,open=false,powered=false]" + }, + "minecraft:acacia_fence": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:acacia_fence[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:acacia_fence_gate": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "in_wall": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:acacia_fence_gate[facing=north,in_wall=false,open=false,powered=false]" + }, + "minecraft:acacia_leaves": { + "properties": { + "distance": { + "values": [ + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ], + "type": "int" + }, + "persistent": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:acacia_leaves[distance=7,persistent=false]" + }, + "minecraft:acacia_log": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:acacia_log[axis=y]" + }, + "minecraft:acacia_planks": { + "properties": {}, + "defaultstate": "minecraft:acacia_planks" + }, + "minecraft:acacia_pressure_plate": { + "properties": { + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:acacia_pressure_plate[powered=false]" + }, + "minecraft:acacia_sapling": { + "properties": { + "stage": { + "values": [ + "0", + "1" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:acacia_sapling[stage=0]" + }, + "minecraft:acacia_sign": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:acacia_sign[rotation=0,waterlogged=false]" + }, + "minecraft:acacia_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:acacia_slab[type=bottom,waterlogged=false]" + }, + "minecraft:acacia_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:acacia_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:acacia_trapdoor": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:acacia_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]" + }, + "minecraft:acacia_wall_sign": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:acacia_wall_sign[facing=north,waterlogged=false]" + }, + "minecraft:acacia_wood": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:acacia_wood[axis=y]" + }, + "minecraft:activator_rail": { + "properties": { + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "shape": { + "values": [ + "north_south", + "east_west", + "ascending_east", + "ascending_west", + "ascending_north", + "ascending_south" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:activator_rail[powered=false,shape=north_south]" + }, + "minecraft:air": { + "properties": {}, + "defaultstate": "minecraft:air" + }, + "minecraft:allium": { + "properties": {}, + "defaultstate": "minecraft:allium" + }, + "minecraft:andesite": { + "properties": {}, + "defaultstate": "minecraft:andesite" + }, + "minecraft:andesite_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:andesite_slab[type=bottom,waterlogged=false]" + }, + "minecraft:andesite_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:andesite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:andesite_wall": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:andesite_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]" + }, + "minecraft:anvil": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:anvil[facing=north]" + }, + "minecraft:attached_melon_stem": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:attached_melon_stem[facing=north]" + }, + "minecraft:attached_pumpkin_stem": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:attached_pumpkin_stem[facing=north]" + }, + "minecraft:azure_bluet": { + "properties": {}, + "defaultstate": "minecraft:azure_bluet" + }, + "minecraft:bamboo": { + "properties": { + "age": { + "values": [ + "0", + "1" + ], + "type": "int" + }, + "leaves": { + "values": [ + "none", + "small", + "large" + ], + "type": "enum" + }, + "stage": { + "values": [ + "0", + "1" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:bamboo[age=0,leaves=none,stage=0]" + }, + "minecraft:bamboo_sapling": { + "properties": {}, + "defaultstate": "minecraft:bamboo_sapling" + }, + "minecraft:barrel": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:barrel[facing=north,open=false]" + }, + "minecraft:barrier": { + "properties": {}, + "defaultstate": "minecraft:barrier" + }, + "minecraft:beacon": { + "properties": {}, + "defaultstate": "minecraft:beacon" + }, + "minecraft:bedrock": { + "properties": {}, + "defaultstate": "minecraft:bedrock" + }, + "minecraft:bee_nest": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "honey_level": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:bee_nest[facing=north,honey_level=0]" + }, + "minecraft:beehive": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "honey_level": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:beehive[facing=north,honey_level=0]" + }, + "minecraft:beetroots": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:beetroots[age=0]" + }, + "minecraft:bell": { + "properties": { + "attachment": { + "values": [ + "floor", + "ceiling", + "single_wall", + "double_wall" + ], + "type": "enum" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:bell[attachment=floor,facing=north,powered=false]" + }, + "minecraft:birch_button": { + "properties": { + "face": { + "values": [ + "floor", + "wall", + "ceiling" + ], + "type": "enum" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:birch_button[face=wall,facing=north,powered=false]" + }, + "minecraft:birch_door": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + }, + "hinge": { + "values": [ + "left", + "right" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:birch_door[facing=north,half=lower,hinge=left,open=false,powered=false]" + }, + "minecraft:birch_fence": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:birch_fence[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:birch_fence_gate": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "in_wall": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:birch_fence_gate[facing=north,in_wall=false,open=false,powered=false]" + }, + "minecraft:birch_leaves": { + "properties": { + "distance": { + "values": [ + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ], + "type": "int" + }, + "persistent": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:birch_leaves[distance=7,persistent=false]" + }, + "minecraft:birch_log": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:birch_log[axis=y]" + }, + "minecraft:birch_planks": { + "properties": {}, + "defaultstate": "minecraft:birch_planks" + }, + "minecraft:birch_pressure_plate": { + "properties": { + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:birch_pressure_plate[powered=false]" + }, + "minecraft:birch_sapling": { + "properties": { + "stage": { + "values": [ + "0", + "1" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:birch_sapling[stage=0]" + }, + "minecraft:birch_sign": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:birch_sign[rotation=0,waterlogged=false]" + }, + "minecraft:birch_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:birch_slab[type=bottom,waterlogged=false]" + }, + "minecraft:birch_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:birch_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:birch_trapdoor": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:birch_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]" + }, + "minecraft:birch_wall_sign": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:birch_wall_sign[facing=north,waterlogged=false]" + }, + "minecraft:birch_wood": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:birch_wood[axis=y]" + }, + "minecraft:black_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:black_banner[rotation=0]" + }, + "minecraft:black_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:black_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:black_carpet": { + "properties": {}, + "defaultstate": "minecraft:black_carpet" + }, + "minecraft:black_concrete": { + "properties": {}, + "defaultstate": "minecraft:black_concrete" + }, + "minecraft:black_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:black_concrete_powder" + }, + "minecraft:black_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:black_glazed_terracotta[facing=north]" + }, + "minecraft:black_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:black_shulker_box[facing=up]" + }, + "minecraft:black_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:black_stained_glass" + }, + "minecraft:black_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:black_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:black_terracotta": { + "properties": {}, + "defaultstate": "minecraft:black_terracotta" + }, + "minecraft:black_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:black_wall_banner[facing=north]" + }, + "minecraft:black_wool": { + "properties": {}, + "defaultstate": "minecraft:black_wool" + }, + "minecraft:blast_furnace": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "lit": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:blast_furnace[facing=north,lit=false]" + }, + "minecraft:blue_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:blue_banner[rotation=0]" + }, + "minecraft:blue_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:blue_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:blue_carpet": { + "properties": {}, + "defaultstate": "minecraft:blue_carpet" + }, + "minecraft:blue_concrete": { + "properties": {}, + "defaultstate": "minecraft:blue_concrete" + }, + "minecraft:blue_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:blue_concrete_powder" + }, + "minecraft:blue_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:blue_glazed_terracotta[facing=north]" + }, + "minecraft:blue_ice": { + "properties": {}, + "defaultstate": "minecraft:blue_ice" + }, + "minecraft:blue_orchid": { + "properties": {}, + "defaultstate": "minecraft:blue_orchid" + }, + "minecraft:blue_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:blue_shulker_box[facing=up]" + }, + "minecraft:blue_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:blue_stained_glass" + }, + "minecraft:blue_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:blue_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:blue_terracotta": { + "properties": {}, + "defaultstate": "minecraft:blue_terracotta" + }, + "minecraft:blue_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:blue_wall_banner[facing=north]" + }, + "minecraft:blue_wool": { + "properties": {}, + "defaultstate": "minecraft:blue_wool" + }, + "minecraft:bone_block": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:bone_block[axis=y]" + }, + "minecraft:bookshelf": { + "properties": {}, + "defaultstate": "minecraft:bookshelf" + }, + "minecraft:brain_coral": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:brain_coral[waterlogged=true]" + }, + "minecraft:brain_coral_block": { + "properties": {}, + "defaultstate": "minecraft:brain_coral_block" + }, + "minecraft:brain_coral_fan": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:brain_coral_fan[waterlogged=true]" + }, + "minecraft:brain_coral_wall_fan": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:brain_coral_wall_fan[facing=north,waterlogged=true]" + }, + "minecraft:brewing_stand": { + "properties": { + "has_bottle_0": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "has_bottle_1": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "has_bottle_2": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:brewing_stand[has_bottle_0=false,has_bottle_1=false,has_bottle_2=false]" + }, + "minecraft:brick_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:brick_slab[type=bottom,waterlogged=false]" + }, + "minecraft:brick_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:brick_wall": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:brick_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]" + }, + "minecraft:bricks": { + "properties": {}, + "defaultstate": "minecraft:bricks" + }, + "minecraft:brown_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:brown_banner[rotation=0]" + }, + "minecraft:brown_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:brown_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:brown_carpet": { + "properties": {}, + "defaultstate": "minecraft:brown_carpet" + }, + "minecraft:brown_concrete": { + "properties": {}, + "defaultstate": "minecraft:brown_concrete" + }, + "minecraft:brown_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:brown_concrete_powder" + }, + "minecraft:brown_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:brown_glazed_terracotta[facing=north]" + }, + "minecraft:brown_mushroom": { + "properties": {}, + "defaultstate": "minecraft:brown_mushroom" + }, + "minecraft:brown_mushroom_block": { + "properties": { + "down": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:brown_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true]" + }, + "minecraft:brown_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:brown_shulker_box[facing=up]" + }, + "minecraft:brown_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:brown_stained_glass" + }, + "minecraft:brown_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:brown_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:brown_terracotta": { + "properties": {}, + "defaultstate": "minecraft:brown_terracotta" + }, + "minecraft:brown_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:brown_wall_banner[facing=north]" + }, + "minecraft:brown_wool": { + "properties": {}, + "defaultstate": "minecraft:brown_wool" + }, + "minecraft:bubble_column": { + "properties": { + "drag": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:bubble_column[drag=true]" + }, + "minecraft:bubble_coral": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:bubble_coral[waterlogged=true]" + }, + "minecraft:bubble_coral_block": { + "properties": {}, + "defaultstate": "minecraft:bubble_coral_block" + }, + "minecraft:bubble_coral_fan": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:bubble_coral_fan[waterlogged=true]" + }, + "minecraft:bubble_coral_wall_fan": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:bubble_coral_wall_fan[facing=north,waterlogged=true]" + }, + "minecraft:cactus": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:cactus[age=0]" + }, + "minecraft:cake": { + "properties": { + "bites": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:cake[bites=0]" + }, + "minecraft:campfire": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "lit": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "signal_fire": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:campfire[facing=north,lit=true,signal_fire=false,waterlogged=false]" + }, + "minecraft:carrots": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:carrots[age=0]" + }, + "minecraft:cartography_table": { + "properties": {}, + "defaultstate": "minecraft:cartography_table" + }, + "minecraft:carved_pumpkin": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:carved_pumpkin[facing=north]" + }, + "minecraft:cauldron": { + "properties": { + "level": { + "values": [ + "0", + "1", + "2", + "3" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:cauldron[level=0]" + }, + "minecraft:cave_air": { + "properties": {}, + "defaultstate": "minecraft:cave_air" + }, + "minecraft:chain_command_block": { + "properties": { + "conditional": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:chain_command_block[conditional=false,facing=north]" + }, + "minecraft:chest": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "type": { + "values": [ + "single", + "left", + "right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:chest[facing=north,type=single,waterlogged=false]" + }, + "minecraft:chipped_anvil": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:chipped_anvil[facing=north]" + }, + "minecraft:chiseled_quartz_block": { + "properties": {}, + "defaultstate": "minecraft:chiseled_quartz_block" + }, + "minecraft:chiseled_red_sandstone": { + "properties": {}, + "defaultstate": "minecraft:chiseled_red_sandstone" + }, + "minecraft:chiseled_sandstone": { + "properties": {}, + "defaultstate": "minecraft:chiseled_sandstone" + }, + "minecraft:chiseled_stone_bricks": { + "properties": {}, + "defaultstate": "minecraft:chiseled_stone_bricks" + }, + "minecraft:chorus_flower": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:chorus_flower[age=0]" + }, + "minecraft:chorus_plant": { + "properties": { + "down": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:chorus_plant[down=false,east=false,north=false,south=false,up=false,west=false]" + }, + "minecraft:clay": { + "properties": {}, + "defaultstate": "minecraft:clay" + }, + "minecraft:coal_block": { + "properties": {}, + "defaultstate": "minecraft:coal_block" + }, + "minecraft:coal_ore": { + "properties": {}, + "defaultstate": "minecraft:coal_ore" + }, + "minecraft:coarse_dirt": { + "properties": {}, + "defaultstate": "minecraft:coarse_dirt" + }, + "minecraft:cobblestone": { + "properties": {}, + "defaultstate": "minecraft:cobblestone" + }, + "minecraft:cobblestone_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:cobblestone_slab[type=bottom,waterlogged=false]" + }, + "minecraft:cobblestone_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:cobblestone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:cobblestone_wall": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:cobblestone_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]" + }, + "minecraft:cobweb": { + "properties": {}, + "defaultstate": "minecraft:cobweb" + }, + "minecraft:cocoa": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2" + ], + "type": "int" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:cocoa[age=0,facing=north]" + }, + "minecraft:command_block": { + "properties": { + "conditional": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:command_block[conditional=false,facing=north]" + }, + "minecraft:comparator": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "mode": { + "values": [ + "compare", + "subtract" + ], + "type": "enum" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:comparator[facing=north,mode=compare,powered=false]" + }, + "minecraft:composter": { + "properties": { + "level": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:composter[level=0]" + }, + "minecraft:conduit": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:conduit[waterlogged=true]" + }, + "minecraft:cornflower": { + "properties": {}, + "defaultstate": "minecraft:cornflower" + }, + "minecraft:cracked_stone_bricks": { + "properties": {}, + "defaultstate": "minecraft:cracked_stone_bricks" + }, + "minecraft:crafting_table": { + "properties": {}, + "defaultstate": "minecraft:crafting_table" + }, + "minecraft:creeper_head": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:creeper_head[rotation=0]" + }, + "minecraft:creeper_wall_head": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:creeper_wall_head[facing=north]" + }, + "minecraft:cut_red_sandstone": { + "properties": {}, + "defaultstate": "minecraft:cut_red_sandstone" + }, + "minecraft:cut_red_sandstone_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:cut_red_sandstone_slab[type=bottom,waterlogged=false]" + }, + "minecraft:cut_sandstone": { + "properties": {}, + "defaultstate": "minecraft:cut_sandstone" + }, + "minecraft:cut_sandstone_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:cut_sandstone_slab[type=bottom,waterlogged=false]" + }, + "minecraft:cyan_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:cyan_banner[rotation=0]" + }, + "minecraft:cyan_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:cyan_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:cyan_carpet": { + "properties": {}, + "defaultstate": "minecraft:cyan_carpet" + }, + "minecraft:cyan_concrete": { + "properties": {}, + "defaultstate": "minecraft:cyan_concrete" + }, + "minecraft:cyan_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:cyan_concrete_powder" + }, + "minecraft:cyan_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:cyan_glazed_terracotta[facing=north]" + }, + "minecraft:cyan_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:cyan_shulker_box[facing=up]" + }, + "minecraft:cyan_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:cyan_stained_glass" + }, + "minecraft:cyan_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:cyan_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:cyan_terracotta": { + "properties": {}, + "defaultstate": "minecraft:cyan_terracotta" + }, + "minecraft:cyan_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:cyan_wall_banner[facing=north]" + }, + "minecraft:cyan_wool": { + "properties": {}, + "defaultstate": "minecraft:cyan_wool" + }, + "minecraft:damaged_anvil": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:damaged_anvil[facing=north]" + }, + "minecraft:dandelion": { + "properties": {}, + "defaultstate": "minecraft:dandelion" + }, + "minecraft:dark_oak_button": { + "properties": { + "face": { + "values": [ + "floor", + "wall", + "ceiling" + ], + "type": "enum" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dark_oak_button[face=wall,facing=north,powered=false]" + }, + "minecraft:dark_oak_door": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + }, + "hinge": { + "values": [ + "left", + "right" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dark_oak_door[facing=north,half=lower,hinge=left,open=false,powered=false]" + }, + "minecraft:dark_oak_fence": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dark_oak_fence[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:dark_oak_fence_gate": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "in_wall": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dark_oak_fence_gate[facing=north,in_wall=false,open=false,powered=false]" + }, + "minecraft:dark_oak_leaves": { + "properties": { + "distance": { + "values": [ + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ], + "type": "int" + }, + "persistent": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dark_oak_leaves[distance=7,persistent=false]" + }, + "minecraft:dark_oak_log": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:dark_oak_log[axis=y]" + }, + "minecraft:dark_oak_planks": { + "properties": {}, + "defaultstate": "minecraft:dark_oak_planks" + }, + "minecraft:dark_oak_pressure_plate": { + "properties": { + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dark_oak_pressure_plate[powered=false]" + }, + "minecraft:dark_oak_sapling": { + "properties": { + "stage": { + "values": [ + "0", + "1" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:dark_oak_sapling[stage=0]" + }, + "minecraft:dark_oak_sign": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dark_oak_sign[rotation=0,waterlogged=false]" + }, + "minecraft:dark_oak_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dark_oak_slab[type=bottom,waterlogged=false]" + }, + "minecraft:dark_oak_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dark_oak_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:dark_oak_trapdoor": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dark_oak_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]" + }, + "minecraft:dark_oak_wall_sign": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dark_oak_wall_sign[facing=north,waterlogged=false]" + }, + "minecraft:dark_oak_wood": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:dark_oak_wood[axis=y]" + }, + "minecraft:dark_prismarine": { + "properties": {}, + "defaultstate": "minecraft:dark_prismarine" + }, + "minecraft:dark_prismarine_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dark_prismarine_slab[type=bottom,waterlogged=false]" + }, + "minecraft:dark_prismarine_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dark_prismarine_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:daylight_detector": { + "properties": { + "inverted": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "power": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:daylight_detector[inverted=false,power=0]" + }, + "minecraft:dead_brain_coral": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_brain_coral[waterlogged=true]" + }, + "minecraft:dead_brain_coral_block": { + "properties": {}, + "defaultstate": "minecraft:dead_brain_coral_block" + }, + "minecraft:dead_brain_coral_fan": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_brain_coral_fan[waterlogged=true]" + }, + "minecraft:dead_brain_coral_wall_fan": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_brain_coral_wall_fan[facing=north,waterlogged=true]" + }, + "minecraft:dead_bubble_coral": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_bubble_coral[waterlogged=true]" + }, + "minecraft:dead_bubble_coral_block": { + "properties": {}, + "defaultstate": "minecraft:dead_bubble_coral_block" + }, + "minecraft:dead_bubble_coral_fan": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_bubble_coral_fan[waterlogged=true]" + }, + "minecraft:dead_bubble_coral_wall_fan": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_bubble_coral_wall_fan[facing=north,waterlogged=true]" + }, + "minecraft:dead_bush": { + "properties": {}, + "defaultstate": "minecraft:dead_bush" + }, + "minecraft:dead_fire_coral": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_fire_coral[waterlogged=true]" + }, + "minecraft:dead_fire_coral_block": { + "properties": {}, + "defaultstate": "minecraft:dead_fire_coral_block" + }, + "minecraft:dead_fire_coral_fan": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_fire_coral_fan[waterlogged=true]" + }, + "minecraft:dead_fire_coral_wall_fan": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_fire_coral_wall_fan[facing=north,waterlogged=true]" + }, + "minecraft:dead_horn_coral": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_horn_coral[waterlogged=true]" + }, + "minecraft:dead_horn_coral_block": { + "properties": {}, + "defaultstate": "minecraft:dead_horn_coral_block" + }, + "minecraft:dead_horn_coral_fan": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_horn_coral_fan[waterlogged=true]" + }, + "minecraft:dead_horn_coral_wall_fan": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_horn_coral_wall_fan[facing=north,waterlogged=true]" + }, + "minecraft:dead_tube_coral": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_tube_coral[waterlogged=true]" + }, + "minecraft:dead_tube_coral_block": { + "properties": {}, + "defaultstate": "minecraft:dead_tube_coral_block" + }, + "minecraft:dead_tube_coral_fan": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_tube_coral_fan[waterlogged=true]" + }, + "minecraft:dead_tube_coral_wall_fan": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_tube_coral_wall_fan[facing=north,waterlogged=true]" + }, + "minecraft:detector_rail": { + "properties": { + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "shape": { + "values": [ + "north_south", + "east_west", + "ascending_east", + "ascending_west", + "ascending_north", + "ascending_south" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:detector_rail[powered=false,shape=north_south]" + }, + "minecraft:diamond_block": { + "properties": {}, + "defaultstate": "minecraft:diamond_block" + }, + "minecraft:diamond_ore": { + "properties": {}, + "defaultstate": "minecraft:diamond_ore" + }, + "minecraft:diorite": { + "properties": {}, + "defaultstate": "minecraft:diorite" + }, + "minecraft:diorite_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:diorite_slab[type=bottom,waterlogged=false]" + }, + "minecraft:diorite_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:diorite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:diorite_wall": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:diorite_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]" + }, + "minecraft:dirt": { + "properties": {}, + "defaultstate": "minecraft:dirt" + }, + "minecraft:dispenser": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + }, + "triggered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dispenser[facing=north,triggered=false]" + }, + "minecraft:dragon_egg": { + "properties": {}, + "defaultstate": "minecraft:dragon_egg" + }, + "minecraft:dragon_head": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:dragon_head[rotation=0]" + }, + "minecraft:dragon_wall_head": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:dragon_wall_head[facing=north]" + }, + "minecraft:dried_kelp_block": { + "properties": {}, + "defaultstate": "minecraft:dried_kelp_block" + }, + "minecraft:dropper": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + }, + "triggered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dropper[facing=north,triggered=false]" + }, + "minecraft:emerald_block": { + "properties": {}, + "defaultstate": "minecraft:emerald_block" + }, + "minecraft:emerald_ore": { + "properties": {}, + "defaultstate": "minecraft:emerald_ore" + }, + "minecraft:enchanting_table": { + "properties": {}, + "defaultstate": "minecraft:enchanting_table" + }, + "minecraft:end_gateway": { + "properties": {}, + "defaultstate": "minecraft:end_gateway" + }, + "minecraft:end_portal": { + "properties": {}, + "defaultstate": "minecraft:end_portal" + }, + "minecraft:end_portal_frame": { + "properties": { + "eye": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:end_portal_frame[eye=false,facing=north]" + }, + "minecraft:end_rod": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:end_rod[facing=up]" + }, + "minecraft:end_stone": { + "properties": {}, + "defaultstate": "minecraft:end_stone" + }, + "minecraft:end_stone_brick_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:end_stone_brick_slab[type=bottom,waterlogged=false]" + }, + "minecraft:end_stone_brick_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:end_stone_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:end_stone_brick_wall": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:end_stone_brick_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]" + }, + "minecraft:end_stone_bricks": { + "properties": {}, + "defaultstate": "minecraft:end_stone_bricks" + }, + "minecraft:ender_chest": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:ender_chest[facing=north,waterlogged=false]" + }, + "minecraft:farmland": { + "properties": { + "moisture": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:farmland[moisture=0]" + }, + "minecraft:fern": { + "properties": {}, + "defaultstate": "minecraft:fern" + }, + "minecraft:fire": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + }, + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:fire[age=0,east=false,north=false,south=false,up=false,west=false]" + }, + "minecraft:fire_coral": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:fire_coral[waterlogged=true]" + }, + "minecraft:fire_coral_block": { + "properties": {}, + "defaultstate": "minecraft:fire_coral_block" + }, + "minecraft:fire_coral_fan": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:fire_coral_fan[waterlogged=true]" + }, + "minecraft:fire_coral_wall_fan": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:fire_coral_wall_fan[facing=north,waterlogged=true]" + }, + "minecraft:fletching_table": { + "properties": {}, + "defaultstate": "minecraft:fletching_table" + }, + "minecraft:flower_pot": { + "properties": {}, + "defaultstate": "minecraft:flower_pot" + }, + "minecraft:frosted_ice": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:frosted_ice[age=0]" + }, + "minecraft:furnace": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "lit": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:furnace[facing=north,lit=false]" + }, + "minecraft:glass": { + "properties": {}, + "defaultstate": "minecraft:glass" + }, + "minecraft:glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:glowstone": { + "properties": {}, + "defaultstate": "minecraft:glowstone" + }, + "minecraft:gold_block": { + "properties": {}, + "defaultstate": "minecraft:gold_block" + }, + "minecraft:gold_ore": { + "properties": {}, + "defaultstate": "minecraft:gold_ore" + }, + "minecraft:granite": { + "properties": {}, + "defaultstate": "minecraft:granite" + }, + "minecraft:granite_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:granite_slab[type=bottom,waterlogged=false]" + }, + "minecraft:granite_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:granite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:granite_wall": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:granite_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]" + }, + "minecraft:grass": { + "properties": {}, + "defaultstate": "minecraft:grass" + }, + "minecraft:grass_block": { + "properties": { + "snowy": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:grass_block[snowy=false]" + }, + "minecraft:grass_path": { + "properties": {}, + "defaultstate": "minecraft:grass_path" + }, + "minecraft:gravel": { + "properties": {}, + "defaultstate": "minecraft:gravel" + }, + "minecraft:gray_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:gray_banner[rotation=0]" + }, + "minecraft:gray_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:gray_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:gray_carpet": { + "properties": {}, + "defaultstate": "minecraft:gray_carpet" + }, + "minecraft:gray_concrete": { + "properties": {}, + "defaultstate": "minecraft:gray_concrete" + }, + "minecraft:gray_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:gray_concrete_powder" + }, + "minecraft:gray_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:gray_glazed_terracotta[facing=north]" + }, + "minecraft:gray_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:gray_shulker_box[facing=up]" + }, + "minecraft:gray_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:gray_stained_glass" + }, + "minecraft:gray_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:gray_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:gray_terracotta": { + "properties": {}, + "defaultstate": "minecraft:gray_terracotta" + }, + "minecraft:gray_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:gray_wall_banner[facing=north]" + }, + "minecraft:gray_wool": { + "properties": {}, + "defaultstate": "minecraft:gray_wool" + }, + "minecraft:green_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:green_banner[rotation=0]" + }, + "minecraft:green_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:green_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:green_carpet": { + "properties": {}, + "defaultstate": "minecraft:green_carpet" + }, + "minecraft:green_concrete": { + "properties": {}, + "defaultstate": "minecraft:green_concrete" + }, + "minecraft:green_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:green_concrete_powder" + }, + "minecraft:green_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:green_glazed_terracotta[facing=north]" + }, + "minecraft:green_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:green_shulker_box[facing=up]" + }, + "minecraft:green_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:green_stained_glass" + }, + "minecraft:green_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:green_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:green_terracotta": { + "properties": {}, + "defaultstate": "minecraft:green_terracotta" + }, + "minecraft:green_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:green_wall_banner[facing=north]" + }, + "minecraft:green_wool": { + "properties": {}, + "defaultstate": "minecraft:green_wool" + }, + "minecraft:grindstone": { + "properties": { + "face": { + "values": [ + "floor", + "wall", + "ceiling" + ], + "type": "enum" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:grindstone[face=wall,facing=north]" + }, + "minecraft:hay_block": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:hay_block[axis=y]" + }, + "minecraft:heavy_weighted_pressure_plate": { + "properties": { + "power": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:heavy_weighted_pressure_plate[power=0]" + }, + "minecraft:honey_block": { + "properties": {}, + "defaultstate": "minecraft:honey_block" + }, + "minecraft:honeycomb_block": { + "properties": {}, + "defaultstate": "minecraft:honeycomb_block" + }, + "minecraft:hopper": { + "properties": { + "enabled": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "facing": { + "values": [ + "down", + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:hopper[enabled=true,facing=down]" + }, + "minecraft:horn_coral": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:horn_coral[waterlogged=true]" + }, + "minecraft:horn_coral_block": { + "properties": {}, + "defaultstate": "minecraft:horn_coral_block" + }, + "minecraft:horn_coral_fan": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:horn_coral_fan[waterlogged=true]" + }, + "minecraft:horn_coral_wall_fan": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:horn_coral_wall_fan[facing=north,waterlogged=true]" + }, + "minecraft:ice": { + "properties": {}, + "defaultstate": "minecraft:ice" + }, + "minecraft:infested_chiseled_stone_bricks": { + "properties": {}, + "defaultstate": "minecraft:infested_chiseled_stone_bricks" + }, + "minecraft:infested_cobblestone": { + "properties": {}, + "defaultstate": "minecraft:infested_cobblestone" + }, + "minecraft:infested_cracked_stone_bricks": { + "properties": {}, + "defaultstate": "minecraft:infested_cracked_stone_bricks" + }, + "minecraft:infested_mossy_stone_bricks": { + "properties": {}, + "defaultstate": "minecraft:infested_mossy_stone_bricks" + }, + "minecraft:infested_stone": { + "properties": {}, + "defaultstate": "minecraft:infested_stone" + }, + "minecraft:infested_stone_bricks": { + "properties": {}, + "defaultstate": "minecraft:infested_stone_bricks" + }, + "minecraft:iron_bars": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:iron_bars[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:iron_block": { + "properties": {}, + "defaultstate": "minecraft:iron_block" + }, + "minecraft:iron_door": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + }, + "hinge": { + "values": [ + "left", + "right" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:iron_door[facing=north,half=lower,hinge=left,open=false,powered=false]" + }, + "minecraft:iron_ore": { + "properties": {}, + "defaultstate": "minecraft:iron_ore" + }, + "minecraft:iron_trapdoor": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:iron_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]" + }, + "minecraft:jack_o_lantern": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:jack_o_lantern[facing=north]" + }, + "minecraft:jigsaw": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:jigsaw[facing=up]" + }, + "minecraft:jukebox": { + "properties": { + "has_record": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:jukebox[has_record=false]" + }, + "minecraft:jungle_button": { + "properties": { + "face": { + "values": [ + "floor", + "wall", + "ceiling" + ], + "type": "enum" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:jungle_button[face=wall,facing=north,powered=false]" + }, + "minecraft:jungle_door": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + }, + "hinge": { + "values": [ + "left", + "right" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:jungle_door[facing=north,half=lower,hinge=left,open=false,powered=false]" + }, + "minecraft:jungle_fence": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:jungle_fence[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:jungle_fence_gate": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "in_wall": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:jungle_fence_gate[facing=north,in_wall=false,open=false,powered=false]" + }, + "minecraft:jungle_leaves": { + "properties": { + "distance": { + "values": [ + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ], + "type": "int" + }, + "persistent": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:jungle_leaves[distance=7,persistent=false]" + }, + "minecraft:jungle_log": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:jungle_log[axis=y]" + }, + "minecraft:jungle_planks": { + "properties": {}, + "defaultstate": "minecraft:jungle_planks" + }, + "minecraft:jungle_pressure_plate": { + "properties": { + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:jungle_pressure_plate[powered=false]" + }, + "minecraft:jungle_sapling": { + "properties": { + "stage": { + "values": [ + "0", + "1" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:jungle_sapling[stage=0]" + }, + "minecraft:jungle_sign": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:jungle_sign[rotation=0,waterlogged=false]" + }, + "minecraft:jungle_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:jungle_slab[type=bottom,waterlogged=false]" + }, + "minecraft:jungle_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:jungle_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:jungle_trapdoor": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:jungle_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]" + }, + "minecraft:jungle_wall_sign": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:jungle_wall_sign[facing=north,waterlogged=false]" + }, + "minecraft:jungle_wood": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:jungle_wood[axis=y]" + }, + "minecraft:kelp": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15", + "16", + "17", + "18", + "19", + "20", + "21", + "22", + "23", + "24", + "25" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:kelp[age=0]" + }, + "minecraft:kelp_plant": { + "properties": {}, + "defaultstate": "minecraft:kelp_plant" + }, + "minecraft:ladder": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:ladder[facing=north,waterlogged=false]" + }, + "minecraft:lantern": { + "properties": { + "hanging": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:lantern[hanging=false]" + }, + "minecraft:lapis_block": { + "properties": {}, + "defaultstate": "minecraft:lapis_block" + }, + "minecraft:lapis_ore": { + "properties": {}, + "defaultstate": "minecraft:lapis_ore" + }, + "minecraft:large_fern": { + "properties": { + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:large_fern[half=lower]" + }, + "minecraft:lava": { + "properties": { + "level": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:lava[level=0]" + }, + "minecraft:lectern": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "has_book": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:lectern[facing=north,has_book=false,powered=false]" + }, + "minecraft:lever": { + "properties": { + "face": { + "values": [ + "floor", + "wall", + "ceiling" + ], + "type": "enum" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:lever[face=wall,facing=north,powered=false]" + }, + "minecraft:light_blue_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:light_blue_banner[rotation=0]" + }, + "minecraft:light_blue_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:light_blue_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:light_blue_carpet": { + "properties": {}, + "defaultstate": "minecraft:light_blue_carpet" + }, + "minecraft:light_blue_concrete": { + "properties": {}, + "defaultstate": "minecraft:light_blue_concrete" + }, + "minecraft:light_blue_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:light_blue_concrete_powder" + }, + "minecraft:light_blue_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:light_blue_glazed_terracotta[facing=north]" + }, + "minecraft:light_blue_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:light_blue_shulker_box[facing=up]" + }, + "minecraft:light_blue_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:light_blue_stained_glass" + }, + "minecraft:light_blue_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:light_blue_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:light_blue_terracotta": { + "properties": {}, + "defaultstate": "minecraft:light_blue_terracotta" + }, + "minecraft:light_blue_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:light_blue_wall_banner[facing=north]" + }, + "minecraft:light_blue_wool": { + "properties": {}, + "defaultstate": "minecraft:light_blue_wool" + }, + "minecraft:light_gray_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:light_gray_banner[rotation=0]" + }, + "minecraft:light_gray_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:light_gray_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:light_gray_carpet": { + "properties": {}, + "defaultstate": "minecraft:light_gray_carpet" + }, + "minecraft:light_gray_concrete": { + "properties": {}, + "defaultstate": "minecraft:light_gray_concrete" + }, + "minecraft:light_gray_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:light_gray_concrete_powder" + }, + "minecraft:light_gray_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:light_gray_glazed_terracotta[facing=north]" + }, + "minecraft:light_gray_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:light_gray_shulker_box[facing=up]" + }, + "minecraft:light_gray_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:light_gray_stained_glass" + }, + "minecraft:light_gray_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:light_gray_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:light_gray_terracotta": { + "properties": {}, + "defaultstate": "minecraft:light_gray_terracotta" + }, + "minecraft:light_gray_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:light_gray_wall_banner[facing=north]" + }, + "minecraft:light_gray_wool": { + "properties": {}, + "defaultstate": "minecraft:light_gray_wool" + }, + "minecraft:light_weighted_pressure_plate": { + "properties": { + "power": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:light_weighted_pressure_plate[power=0]" + }, + "minecraft:lilac": { + "properties": { + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:lilac[half=lower]" + }, + "minecraft:lily_of_the_valley": { + "properties": {}, + "defaultstate": "minecraft:lily_of_the_valley" + }, + "minecraft:lily_pad": { + "properties": {}, + "defaultstate": "minecraft:lily_pad" + }, + "minecraft:lime_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:lime_banner[rotation=0]" + }, + "minecraft:lime_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:lime_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:lime_carpet": { + "properties": {}, + "defaultstate": "minecraft:lime_carpet" + }, + "minecraft:lime_concrete": { + "properties": {}, + "defaultstate": "minecraft:lime_concrete" + }, + "minecraft:lime_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:lime_concrete_powder" + }, + "minecraft:lime_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:lime_glazed_terracotta[facing=north]" + }, + "minecraft:lime_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:lime_shulker_box[facing=up]" + }, + "minecraft:lime_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:lime_stained_glass" + }, + "minecraft:lime_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:lime_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:lime_terracotta": { + "properties": {}, + "defaultstate": "minecraft:lime_terracotta" + }, + "minecraft:lime_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:lime_wall_banner[facing=north]" + }, + "minecraft:lime_wool": { + "properties": {}, + "defaultstate": "minecraft:lime_wool" + }, + "minecraft:loom": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:loom[facing=north]" + }, + "minecraft:magenta_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:magenta_banner[rotation=0]" + }, + "minecraft:magenta_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:magenta_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:magenta_carpet": { + "properties": {}, + "defaultstate": "minecraft:magenta_carpet" + }, + "minecraft:magenta_concrete": { + "properties": {}, + "defaultstate": "minecraft:magenta_concrete" + }, + "minecraft:magenta_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:magenta_concrete_powder" + }, + "minecraft:magenta_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:magenta_glazed_terracotta[facing=north]" + }, + "minecraft:magenta_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:magenta_shulker_box[facing=up]" + }, + "minecraft:magenta_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:magenta_stained_glass" + }, + "minecraft:magenta_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:magenta_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:magenta_terracotta": { + "properties": {}, + "defaultstate": "minecraft:magenta_terracotta" + }, + "minecraft:magenta_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:magenta_wall_banner[facing=north]" + }, + "minecraft:magenta_wool": { + "properties": {}, + "defaultstate": "minecraft:magenta_wool" + }, + "minecraft:magma_block": { + "properties": {}, + "defaultstate": "minecraft:magma_block" + }, + "minecraft:melon": { + "properties": {}, + "defaultstate": "minecraft:melon" + }, + "minecraft:melon_stem": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:melon_stem[age=0]" + }, + "minecraft:mossy_cobblestone": { + "properties": {}, + "defaultstate": "minecraft:mossy_cobblestone" + }, + "minecraft:mossy_cobblestone_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:mossy_cobblestone_slab[type=bottom,waterlogged=false]" + }, + "minecraft:mossy_cobblestone_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:mossy_cobblestone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:mossy_cobblestone_wall": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:mossy_cobblestone_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]" + }, + "minecraft:mossy_stone_brick_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:mossy_stone_brick_slab[type=bottom,waterlogged=false]" + }, + "minecraft:mossy_stone_brick_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:mossy_stone_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:mossy_stone_brick_wall": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:mossy_stone_brick_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]" + }, + "minecraft:mossy_stone_bricks": { + "properties": {}, + "defaultstate": "minecraft:mossy_stone_bricks" + }, + "minecraft:moving_piston": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + }, + "type": { + "values": [ + "normal", + "sticky" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:moving_piston[facing=north,type=normal]" + }, + "minecraft:mushroom_stem": { + "properties": { + "down": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:mushroom_stem[down=true,east=true,north=true,south=true,up=true,west=true]" + }, + "minecraft:mycelium": { + "properties": { + "snowy": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:mycelium[snowy=false]" + }, + "minecraft:nether_brick_fence": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:nether_brick_fence[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:nether_brick_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:nether_brick_slab[type=bottom,waterlogged=false]" + }, + "minecraft:nether_brick_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:nether_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:nether_brick_wall": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:nether_brick_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]" + }, + "minecraft:nether_bricks": { + "properties": {}, + "defaultstate": "minecraft:nether_bricks" + }, + "minecraft:nether_portal": { + "properties": { + "axis": { + "values": [ + "x", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:nether_portal[axis=x]" + }, + "minecraft:nether_quartz_ore": { + "properties": {}, + "defaultstate": "minecraft:nether_quartz_ore" + }, + "minecraft:nether_wart": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:nether_wart[age=0]" + }, + "minecraft:nether_wart_block": { + "properties": {}, + "defaultstate": "minecraft:nether_wart_block" + }, + "minecraft:netherrack": { + "properties": {}, + "defaultstate": "minecraft:netherrack" + }, + "minecraft:note_block": { + "properties": { + "instrument": { + "values": [ + "harp", + "basedrum", + "snare", + "hat", + "bass", + "flute", + "bell", + "guitar", + "chime", + "xylophone", + "iron_xylophone", + "cow_bell", + "didgeridoo", + "bit", + "banjo", + "pling" + ], + "type": "enum" + }, + "note": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15", + "16", + "17", + "18", + "19", + "20", + "21", + "22", + "23", + "24" + ], + "type": "int" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:note_block[instrument=harp,note=0,powered=false]" + }, + "minecraft:oak_button": { + "properties": { + "face": { + "values": [ + "floor", + "wall", + "ceiling" + ], + "type": "enum" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:oak_button[face=wall,facing=north,powered=false]" + }, + "minecraft:oak_door": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + }, + "hinge": { + "values": [ + "left", + "right" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:oak_door[facing=north,half=lower,hinge=left,open=false,powered=false]" + }, + "minecraft:oak_fence": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:oak_fence[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:oak_fence_gate": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "in_wall": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:oak_fence_gate[facing=north,in_wall=false,open=false,powered=false]" + }, + "minecraft:oak_leaves": { + "properties": { + "distance": { + "values": [ + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ], + "type": "int" + }, + "persistent": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:oak_leaves[distance=7,persistent=false]" + }, + "minecraft:oak_log": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:oak_log[axis=y]" + }, + "minecraft:oak_planks": { + "properties": {}, + "defaultstate": "minecraft:oak_planks" + }, + "minecraft:oak_pressure_plate": { + "properties": { + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:oak_pressure_plate[powered=false]" + }, + "minecraft:oak_sapling": { + "properties": { + "stage": { + "values": [ + "0", + "1" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:oak_sapling[stage=0]" + }, + "minecraft:oak_sign": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:oak_sign[rotation=0,waterlogged=false]" + }, + "minecraft:oak_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:oak_slab[type=bottom,waterlogged=false]" + }, + "minecraft:oak_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:oak_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:oak_trapdoor": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:oak_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]" + }, + "minecraft:oak_wall_sign": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:oak_wall_sign[facing=north,waterlogged=false]" + }, + "minecraft:oak_wood": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:oak_wood[axis=y]" + }, + "minecraft:observer": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:observer[facing=south,powered=false]" + }, + "minecraft:obsidian": { + "properties": {}, + "defaultstate": "minecraft:obsidian" + }, + "minecraft:orange_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:orange_banner[rotation=0]" + }, + "minecraft:orange_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:orange_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:orange_carpet": { + "properties": {}, + "defaultstate": "minecraft:orange_carpet" + }, + "minecraft:orange_concrete": { + "properties": {}, + "defaultstate": "minecraft:orange_concrete" + }, + "minecraft:orange_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:orange_concrete_powder" + }, + "minecraft:orange_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:orange_glazed_terracotta[facing=north]" + }, + "minecraft:orange_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:orange_shulker_box[facing=up]" + }, + "minecraft:orange_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:orange_stained_glass" + }, + "minecraft:orange_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:orange_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:orange_terracotta": { + "properties": {}, + "defaultstate": "minecraft:orange_terracotta" + }, + "minecraft:orange_tulip": { + "properties": {}, + "defaultstate": "minecraft:orange_tulip" + }, + "minecraft:orange_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:orange_wall_banner[facing=north]" + }, + "minecraft:orange_wool": { + "properties": {}, + "defaultstate": "minecraft:orange_wool" + }, + "minecraft:oxeye_daisy": { + "properties": {}, + "defaultstate": "minecraft:oxeye_daisy" + }, + "minecraft:packed_ice": { + "properties": {}, + "defaultstate": "minecraft:packed_ice" + }, + "minecraft:peony": { + "properties": { + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:peony[half=lower]" + }, + "minecraft:petrified_oak_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:petrified_oak_slab[type=bottom,waterlogged=false]" + }, + "minecraft:pink_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:pink_banner[rotation=0]" + }, + "minecraft:pink_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:pink_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:pink_carpet": { + "properties": {}, + "defaultstate": "minecraft:pink_carpet" + }, + "minecraft:pink_concrete": { + "properties": {}, + "defaultstate": "minecraft:pink_concrete" + }, + "minecraft:pink_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:pink_concrete_powder" + }, + "minecraft:pink_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:pink_glazed_terracotta[facing=north]" + }, + "minecraft:pink_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:pink_shulker_box[facing=up]" + }, + "minecraft:pink_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:pink_stained_glass" + }, + "minecraft:pink_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:pink_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:pink_terracotta": { + "properties": {}, + "defaultstate": "minecraft:pink_terracotta" + }, + "minecraft:pink_tulip": { + "properties": {}, + "defaultstate": "minecraft:pink_tulip" + }, + "minecraft:pink_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:pink_wall_banner[facing=north]" + }, + "minecraft:pink_wool": { + "properties": {}, + "defaultstate": "minecraft:pink_wool" + }, + "minecraft:piston": { + "properties": { + "extended": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:piston[extended=false,facing=north]" + }, + "minecraft:piston_head": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + }, + "short": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "type": { + "values": [ + "normal", + "sticky" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:piston_head[facing=north,short=false,type=normal]" + }, + "minecraft:player_head": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:player_head[rotation=0]" + }, + "minecraft:player_wall_head": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:player_wall_head[facing=north]" + }, + "minecraft:podzol": { + "properties": { + "snowy": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:podzol[snowy=false]" + }, + "minecraft:polished_andesite": { + "properties": {}, + "defaultstate": "minecraft:polished_andesite" + }, + "minecraft:polished_andesite_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:polished_andesite_slab[type=bottom,waterlogged=false]" + }, + "minecraft:polished_andesite_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:polished_andesite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:polished_diorite": { + "properties": {}, + "defaultstate": "minecraft:polished_diorite" + }, + "minecraft:polished_diorite_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:polished_diorite_slab[type=bottom,waterlogged=false]" + }, + "minecraft:polished_diorite_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:polished_diorite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:polished_granite": { + "properties": {}, + "defaultstate": "minecraft:polished_granite" + }, + "minecraft:polished_granite_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:polished_granite_slab[type=bottom,waterlogged=false]" + }, + "minecraft:polished_granite_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:polished_granite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:poppy": { + "properties": {}, + "defaultstate": "minecraft:poppy" + }, + "minecraft:potatoes": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:potatoes[age=0]" + }, + "minecraft:potted_acacia_sapling": { + "properties": {}, + "defaultstate": "minecraft:potted_acacia_sapling" + }, + "minecraft:potted_allium": { + "properties": {}, + "defaultstate": "minecraft:potted_allium" + }, + "minecraft:potted_azure_bluet": { + "properties": {}, + "defaultstate": "minecraft:potted_azure_bluet" + }, + "minecraft:potted_bamboo": { + "properties": {}, + "defaultstate": "minecraft:potted_bamboo" + }, + "minecraft:potted_birch_sapling": { + "properties": {}, + "defaultstate": "minecraft:potted_birch_sapling" + }, + "minecraft:potted_blue_orchid": { + "properties": {}, + "defaultstate": "minecraft:potted_blue_orchid" + }, + "minecraft:potted_brown_mushroom": { + "properties": {}, + "defaultstate": "minecraft:potted_brown_mushroom" + }, + "minecraft:potted_cactus": { + "properties": {}, + "defaultstate": "minecraft:potted_cactus" + }, + "minecraft:potted_cornflower": { + "properties": {}, + "defaultstate": "minecraft:potted_cornflower" + }, + "minecraft:potted_dandelion": { + "properties": {}, + "defaultstate": "minecraft:potted_dandelion" + }, + "minecraft:potted_dark_oak_sapling": { + "properties": {}, + "defaultstate": "minecraft:potted_dark_oak_sapling" + }, + "minecraft:potted_dead_bush": { + "properties": {}, + "defaultstate": "minecraft:potted_dead_bush" + }, + "minecraft:potted_fern": { + "properties": {}, + "defaultstate": "minecraft:potted_fern" + }, + "minecraft:potted_jungle_sapling": { + "properties": {}, + "defaultstate": "minecraft:potted_jungle_sapling" + }, + "minecraft:potted_lily_of_the_valley": { + "properties": {}, + "defaultstate": "minecraft:potted_lily_of_the_valley" + }, + "minecraft:potted_oak_sapling": { + "properties": {}, + "defaultstate": "minecraft:potted_oak_sapling" + }, + "minecraft:potted_orange_tulip": { + "properties": {}, + "defaultstate": "minecraft:potted_orange_tulip" + }, + "minecraft:potted_oxeye_daisy": { + "properties": {}, + "defaultstate": "minecraft:potted_oxeye_daisy" + }, + "minecraft:potted_pink_tulip": { + "properties": {}, + "defaultstate": "minecraft:potted_pink_tulip" + }, + "minecraft:potted_poppy": { + "properties": {}, + "defaultstate": "minecraft:potted_poppy" + }, + "minecraft:potted_red_mushroom": { + "properties": {}, + "defaultstate": "minecraft:potted_red_mushroom" + }, + "minecraft:potted_red_tulip": { + "properties": {}, + "defaultstate": "minecraft:potted_red_tulip" + }, + "minecraft:potted_spruce_sapling": { + "properties": {}, + "defaultstate": "minecraft:potted_spruce_sapling" + }, + "minecraft:potted_white_tulip": { + "properties": {}, + "defaultstate": "minecraft:potted_white_tulip" + }, + "minecraft:potted_wither_rose": { + "properties": {}, + "defaultstate": "minecraft:potted_wither_rose" + }, + "minecraft:powered_rail": { + "properties": { + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "shape": { + "values": [ + "north_south", + "east_west", + "ascending_east", + "ascending_west", + "ascending_north", + "ascending_south" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:powered_rail[powered=false,shape=north_south]" + }, + "minecraft:prismarine": { + "properties": {}, + "defaultstate": "minecraft:prismarine" + }, + "minecraft:prismarine_brick_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:prismarine_brick_slab[type=bottom,waterlogged=false]" + }, + "minecraft:prismarine_brick_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:prismarine_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:prismarine_bricks": { + "properties": {}, + "defaultstate": "minecraft:prismarine_bricks" + }, + "minecraft:prismarine_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:prismarine_slab[type=bottom,waterlogged=false]" + }, + "minecraft:prismarine_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:prismarine_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:prismarine_wall": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:prismarine_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]" + }, + "minecraft:pumpkin": { + "properties": {}, + "defaultstate": "minecraft:pumpkin" + }, + "minecraft:pumpkin_stem": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:pumpkin_stem[age=0]" + }, + "minecraft:purple_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:purple_banner[rotation=0]" + }, + "minecraft:purple_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:purple_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:purple_carpet": { + "properties": {}, + "defaultstate": "minecraft:purple_carpet" + }, + "minecraft:purple_concrete": { + "properties": {}, + "defaultstate": "minecraft:purple_concrete" + }, + "minecraft:purple_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:purple_concrete_powder" + }, + "minecraft:purple_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:purple_glazed_terracotta[facing=north]" + }, + "minecraft:purple_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:purple_shulker_box[facing=up]" + }, + "minecraft:purple_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:purple_stained_glass" + }, + "minecraft:purple_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:purple_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:purple_terracotta": { + "properties": {}, + "defaultstate": "minecraft:purple_terracotta" + }, + "minecraft:purple_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:purple_wall_banner[facing=north]" + }, + "minecraft:purple_wool": { + "properties": {}, + "defaultstate": "minecraft:purple_wool" + }, + "minecraft:purpur_block": { + "properties": {}, + "defaultstate": "minecraft:purpur_block" + }, + "minecraft:purpur_pillar": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:purpur_pillar[axis=y]" + }, + "minecraft:purpur_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:purpur_slab[type=bottom,waterlogged=false]" + }, + "minecraft:purpur_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:purpur_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:quartz_block": { + "properties": {}, + "defaultstate": "minecraft:quartz_block" + }, + "minecraft:quartz_pillar": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:quartz_pillar[axis=y]" + }, + "minecraft:quartz_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:quartz_slab[type=bottom,waterlogged=false]" + }, + "minecraft:quartz_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:quartz_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:rail": { + "properties": { + "shape": { + "values": [ + "north_south", + "east_west", + "ascending_east", + "ascending_west", + "ascending_north", + "ascending_south", + "south_east", + "south_west", + "north_west", + "north_east" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:rail[shape=north_south]" + }, + "minecraft:red_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:red_banner[rotation=0]" + }, + "minecraft:red_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:red_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:red_carpet": { + "properties": {}, + "defaultstate": "minecraft:red_carpet" + }, + "minecraft:red_concrete": { + "properties": {}, + "defaultstate": "minecraft:red_concrete" + }, + "minecraft:red_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:red_concrete_powder" + }, + "minecraft:red_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:red_glazed_terracotta[facing=north]" + }, + "minecraft:red_mushroom": { + "properties": {}, + "defaultstate": "minecraft:red_mushroom" + }, + "minecraft:red_mushroom_block": { + "properties": { + "down": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:red_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true]" + }, + "minecraft:red_nether_brick_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:red_nether_brick_slab[type=bottom,waterlogged=false]" + }, + "minecraft:red_nether_brick_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:red_nether_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:red_nether_brick_wall": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:red_nether_brick_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]" + }, + "minecraft:red_nether_bricks": { + "properties": {}, + "defaultstate": "minecraft:red_nether_bricks" + }, + "minecraft:red_sand": { + "properties": {}, + "defaultstate": "minecraft:red_sand" + }, + "minecraft:red_sandstone": { + "properties": {}, + "defaultstate": "minecraft:red_sandstone" + }, + "minecraft:red_sandstone_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:red_sandstone_slab[type=bottom,waterlogged=false]" + }, + "minecraft:red_sandstone_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:red_sandstone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:red_sandstone_wall": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:red_sandstone_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]" + }, + "minecraft:red_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:red_shulker_box[facing=up]" + }, + "minecraft:red_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:red_stained_glass" + }, + "minecraft:red_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:red_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:red_terracotta": { + "properties": {}, + "defaultstate": "minecraft:red_terracotta" + }, + "minecraft:red_tulip": { + "properties": {}, + "defaultstate": "minecraft:red_tulip" + }, + "minecraft:red_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:red_wall_banner[facing=north]" + }, + "minecraft:red_wool": { + "properties": {}, + "defaultstate": "minecraft:red_wool" + }, + "minecraft:redstone_block": { + "properties": {}, + "defaultstate": "minecraft:redstone_block" + }, + "minecraft:redstone_lamp": { + "properties": { + "lit": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:redstone_lamp[lit=false]" + }, + "minecraft:redstone_ore": { + "properties": { + "lit": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:redstone_ore[lit=false]" + }, + "minecraft:redstone_torch": { + "properties": { + "lit": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:redstone_torch[lit=true]" + }, + "minecraft:redstone_wall_torch": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "lit": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:redstone_wall_torch[facing=north,lit=true]" + }, + "minecraft:redstone_wire": { + "properties": { + "east": { + "values": [ + "up", + "side", + "none" + ], + "type": "enum" + }, + "north": { + "values": [ + "up", + "side", + "none" + ], + "type": "enum" + }, + "power": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + }, + "south": { + "values": [ + "up", + "side", + "none" + ], + "type": "enum" + }, + "west": { + "values": [ + "up", + "side", + "none" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:redstone_wire[east=none,north=none,power=0,south=none,west=none]" + }, + "minecraft:repeater": { + "properties": { + "delay": { + "values": [ + "1", + "2", + "3", + "4" + ], + "type": "int" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "locked": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:repeater[delay=1,facing=north,locked=false,powered=false]" + }, + "minecraft:repeating_command_block": { + "properties": { + "conditional": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:repeating_command_block[conditional=false,facing=north]" + }, + "minecraft:rose_bush": { + "properties": { + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:rose_bush[half=lower]" + }, + "minecraft:sand": { + "properties": {}, + "defaultstate": "minecraft:sand" + }, + "minecraft:sandstone": { + "properties": {}, + "defaultstate": "minecraft:sandstone" + }, + "minecraft:sandstone_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:sandstone_slab[type=bottom,waterlogged=false]" + }, + "minecraft:sandstone_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:sandstone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:sandstone_wall": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:sandstone_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]" + }, + "minecraft:scaffolding": { + "properties": { + "bottom": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "distance": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ], + "type": "int" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:scaffolding[bottom=false,distance=7,waterlogged=false]" + }, + "minecraft:sea_lantern": { + "properties": {}, + "defaultstate": "minecraft:sea_lantern" + }, + "minecraft:sea_pickle": { + "properties": { + "pickles": { + "values": [ + "1", + "2", + "3", + "4" + ], + "type": "int" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:sea_pickle[pickles=1,waterlogged=true]" + }, + "minecraft:seagrass": { + "properties": {}, + "defaultstate": "minecraft:seagrass" + }, + "minecraft:shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:shulker_box[facing=up]" + }, + "minecraft:skeleton_skull": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:skeleton_skull[rotation=0]" + }, + "minecraft:skeleton_wall_skull": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:skeleton_wall_skull[facing=north]" + }, + "minecraft:slime_block": { + "properties": {}, + "defaultstate": "minecraft:slime_block" + }, + "minecraft:smithing_table": { + "properties": {}, + "defaultstate": "minecraft:smithing_table" + }, + "minecraft:smoker": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "lit": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:smoker[facing=north,lit=false]" + }, + "minecraft:smooth_quartz": { + "properties": {}, + "defaultstate": "minecraft:smooth_quartz" + }, + "minecraft:smooth_quartz_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:smooth_quartz_slab[type=bottom,waterlogged=false]" + }, + "minecraft:smooth_quartz_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:smooth_quartz_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:smooth_red_sandstone": { + "properties": {}, + "defaultstate": "minecraft:smooth_red_sandstone" + }, + "minecraft:smooth_red_sandstone_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:smooth_red_sandstone_slab[type=bottom,waterlogged=false]" + }, + "minecraft:smooth_red_sandstone_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:smooth_red_sandstone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:smooth_sandstone": { + "properties": {}, + "defaultstate": "minecraft:smooth_sandstone" + }, + "minecraft:smooth_sandstone_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:smooth_sandstone_slab[type=bottom,waterlogged=false]" + }, + "minecraft:smooth_sandstone_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:smooth_sandstone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:smooth_stone": { + "properties": {}, + "defaultstate": "minecraft:smooth_stone" + }, + "minecraft:smooth_stone_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:smooth_stone_slab[type=bottom,waterlogged=false]" + }, + "minecraft:snow": { + "properties": { + "layers": { + "values": [ + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:snow[layers=1]" + }, + "minecraft:snow_block": { + "properties": {}, + "defaultstate": "minecraft:snow_block" + }, + "minecraft:soul_sand": { + "properties": {}, + "defaultstate": "minecraft:soul_sand" + }, + "minecraft:spawner": { + "properties": {}, + "defaultstate": "minecraft:spawner" + }, + "minecraft:sponge": { + "properties": {}, + "defaultstate": "minecraft:sponge" + }, + "minecraft:spruce_button": { + "properties": { + "face": { + "values": [ + "floor", + "wall", + "ceiling" + ], + "type": "enum" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:spruce_button[face=wall,facing=north,powered=false]" + }, + "minecraft:spruce_door": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + }, + "hinge": { + "values": [ + "left", + "right" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:spruce_door[facing=north,half=lower,hinge=left,open=false,powered=false]" + }, + "minecraft:spruce_fence": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:spruce_fence[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:spruce_fence_gate": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "in_wall": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:spruce_fence_gate[facing=north,in_wall=false,open=false,powered=false]" + }, + "minecraft:spruce_leaves": { + "properties": { + "distance": { + "values": [ + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ], + "type": "int" + }, + "persistent": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:spruce_leaves[distance=7,persistent=false]" + }, + "minecraft:spruce_log": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:spruce_log[axis=y]" + }, + "minecraft:spruce_planks": { + "properties": {}, + "defaultstate": "minecraft:spruce_planks" + }, + "minecraft:spruce_pressure_plate": { + "properties": { + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:spruce_pressure_plate[powered=false]" + }, + "minecraft:spruce_sapling": { + "properties": { + "stage": { + "values": [ + "0", + "1" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:spruce_sapling[stage=0]" + }, + "minecraft:spruce_sign": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:spruce_sign[rotation=0,waterlogged=false]" + }, + "minecraft:spruce_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:spruce_slab[type=bottom,waterlogged=false]" + }, + "minecraft:spruce_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:spruce_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:spruce_trapdoor": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:spruce_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]" + }, + "minecraft:spruce_wall_sign": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:spruce_wall_sign[facing=north,waterlogged=false]" + }, + "minecraft:spruce_wood": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:spruce_wood[axis=y]" + }, + "minecraft:sticky_piston": { + "properties": { + "extended": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:sticky_piston[extended=false,facing=north]" + }, + "minecraft:stone": { + "properties": {}, + "defaultstate": "minecraft:stone" + }, + "minecraft:stone_brick_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:stone_brick_slab[type=bottom,waterlogged=false]" + }, + "minecraft:stone_brick_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:stone_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:stone_brick_wall": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:stone_brick_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]" + }, + "minecraft:stone_bricks": { + "properties": {}, + "defaultstate": "minecraft:stone_bricks" + }, + "minecraft:stone_button": { + "properties": { + "face": { + "values": [ + "floor", + "wall", + "ceiling" + ], + "type": "enum" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:stone_button[face=wall,facing=north,powered=false]" + }, + "minecraft:stone_pressure_plate": { + "properties": { + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:stone_pressure_plate[powered=false]" + }, + "minecraft:stone_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:stone_slab[type=bottom,waterlogged=false]" + }, + "minecraft:stone_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:stone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:stonecutter": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:stonecutter[facing=north]" + }, + "minecraft:stripped_acacia_log": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:stripped_acacia_log[axis=y]" + }, + "minecraft:stripped_acacia_wood": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:stripped_acacia_wood[axis=y]" + }, + "minecraft:stripped_birch_log": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:stripped_birch_log[axis=y]" + }, + "minecraft:stripped_birch_wood": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:stripped_birch_wood[axis=y]" + }, + "minecraft:stripped_dark_oak_log": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:stripped_dark_oak_log[axis=y]" + }, + "minecraft:stripped_dark_oak_wood": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:stripped_dark_oak_wood[axis=y]" + }, + "minecraft:stripped_jungle_log": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:stripped_jungle_log[axis=y]" + }, + "minecraft:stripped_jungle_wood": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:stripped_jungle_wood[axis=y]" + }, + "minecraft:stripped_oak_log": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:stripped_oak_log[axis=y]" + }, + "minecraft:stripped_oak_wood": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:stripped_oak_wood[axis=y]" + }, + "minecraft:stripped_spruce_log": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:stripped_spruce_log[axis=y]" + }, + "minecraft:stripped_spruce_wood": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:stripped_spruce_wood[axis=y]" + }, + "minecraft:structure_block": { + "properties": { + "mode": { + "values": [ + "save", + "load", + "corner", + "data" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:structure_block[mode=save]" + }, + "minecraft:structure_void": { + "properties": {}, + "defaultstate": "minecraft:structure_void" + }, + "minecraft:sugar_cane": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:sugar_cane[age=0]" + }, + "minecraft:sunflower": { + "properties": { + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:sunflower[half=lower]" + }, + "minecraft:sweet_berry_bush": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:sweet_berry_bush[age=0]" + }, + "minecraft:tall_grass": { + "properties": { + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:tall_grass[half=lower]" + }, + "minecraft:tall_seagrass": { + "properties": { + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:tall_seagrass[half=lower]" + }, + "minecraft:terracotta": { + "properties": {}, + "defaultstate": "minecraft:terracotta" + }, + "minecraft:tnt": { + "properties": { + "unstable": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:tnt[unstable=false]" + }, + "minecraft:torch": { + "properties": {}, + "defaultstate": "minecraft:torch" + }, + "minecraft:trapped_chest": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "type": { + "values": [ + "single", + "left", + "right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:trapped_chest[facing=north,type=single,waterlogged=false]" + }, + "minecraft:tripwire": { + "properties": { + "attached": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "disarmed": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:tripwire[attached=false,disarmed=false,east=false,north=false,powered=false,south=false,west=false]" + }, + "minecraft:tripwire_hook": { + "properties": { + "attached": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:tripwire_hook[attached=false,facing=north,powered=false]" + }, + "minecraft:tube_coral": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:tube_coral[waterlogged=true]" + }, + "minecraft:tube_coral_block": { + "properties": {}, + "defaultstate": "minecraft:tube_coral_block" + }, + "minecraft:tube_coral_fan": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:tube_coral_fan[waterlogged=true]" + }, + "minecraft:tube_coral_wall_fan": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:tube_coral_wall_fan[facing=north,waterlogged=true]" + }, + "minecraft:turtle_egg": { + "properties": { + "eggs": { + "values": [ + "1", + "2", + "3", + "4" + ], + "type": "int" + }, + "hatch": { + "values": [ + "0", + "1", + "2" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:turtle_egg[eggs=1,hatch=0]" + }, + "minecraft:vine": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:vine[east=false,north=false,south=false,up=false,west=false]" + }, + "minecraft:void_air": { + "properties": {}, + "defaultstate": "minecraft:void_air" + }, + "minecraft:wall_torch": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:wall_torch[facing=north]" + }, + "minecraft:water": { + "properties": { + "level": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:water[level=0]" + }, + "minecraft:wet_sponge": { + "properties": {}, + "defaultstate": "minecraft:wet_sponge" + }, + "minecraft:wheat": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:wheat[age=0]" + }, + "minecraft:white_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:white_banner[rotation=0]" + }, + "minecraft:white_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:white_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:white_carpet": { + "properties": {}, + "defaultstate": "minecraft:white_carpet" + }, + "minecraft:white_concrete": { + "properties": {}, + "defaultstate": "minecraft:white_concrete" + }, + "minecraft:white_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:white_concrete_powder" + }, + "minecraft:white_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:white_glazed_terracotta[facing=north]" + }, + "minecraft:white_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:white_shulker_box[facing=up]" + }, + "minecraft:white_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:white_stained_glass" + }, + "minecraft:white_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:white_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:white_terracotta": { + "properties": {}, + "defaultstate": "minecraft:white_terracotta" + }, + "minecraft:white_tulip": { + "properties": {}, + "defaultstate": "minecraft:white_tulip" + }, + "minecraft:white_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:white_wall_banner[facing=north]" + }, + "minecraft:white_wool": { + "properties": {}, + "defaultstate": "minecraft:white_wool" + }, + "minecraft:wither_rose": { + "properties": {}, + "defaultstate": "minecraft:wither_rose" + }, + "minecraft:wither_skeleton_skull": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:wither_skeleton_skull[rotation=0]" + }, + "minecraft:wither_skeleton_wall_skull": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:wither_skeleton_wall_skull[facing=north]" + }, + "minecraft:yellow_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:yellow_banner[rotation=0]" + }, + "minecraft:yellow_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:yellow_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:yellow_carpet": { + "properties": {}, + "defaultstate": "minecraft:yellow_carpet" + }, + "minecraft:yellow_concrete": { + "properties": {}, + "defaultstate": "minecraft:yellow_concrete" + }, + "minecraft:yellow_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:yellow_concrete_powder" + }, + "minecraft:yellow_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:yellow_glazed_terracotta[facing=north]" + }, + "minecraft:yellow_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:yellow_shulker_box[facing=up]" + }, + "minecraft:yellow_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:yellow_stained_glass" + }, + "minecraft:yellow_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:yellow_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:yellow_terracotta": { + "properties": {}, + "defaultstate": "minecraft:yellow_terracotta" + }, + "minecraft:yellow_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:yellow_wall_banner[facing=north]" + }, + "minecraft:yellow_wool": { + "properties": {}, + "defaultstate": "minecraft:yellow_wool" + }, + "minecraft:zombie_head": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:zombie_head[rotation=0]" + }, + "minecraft:zombie_wall_head": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:zombie_wall_head[facing=north]" + } + }, + "items": [ + "minecraft:acacia_boat", + "minecraft:acacia_button", + "minecraft:acacia_door", + "minecraft:acacia_fence", + "minecraft:acacia_fence_gate", + "minecraft:acacia_leaves", + "minecraft:acacia_log", + "minecraft:acacia_planks", + "minecraft:acacia_pressure_plate", + "minecraft:acacia_sapling", + "minecraft:acacia_sign", + "minecraft:acacia_slab", + "minecraft:acacia_stairs", + "minecraft:acacia_trapdoor", + "minecraft:acacia_wood", + "minecraft:activator_rail", + "minecraft:air", + "minecraft:allium", + "minecraft:andesite", + "minecraft:andesite_slab", + "minecraft:andesite_stairs", + "minecraft:andesite_wall", + "minecraft:anvil", + "minecraft:apple", + "minecraft:armor_stand", + "minecraft:arrow", + "minecraft:azure_bluet", + "minecraft:baked_potato", + "minecraft:bamboo", + "minecraft:barrel", + "minecraft:barrier", + "minecraft:bat_spawn_egg", + "minecraft:beacon", + "minecraft:bedrock", + "minecraft:bee_nest", + "minecraft:bee_spawn_egg", + "minecraft:beef", + "minecraft:beehive", + "minecraft:beetroot", + "minecraft:beetroot_seeds", + "minecraft:beetroot_soup", + "minecraft:bell", + "minecraft:birch_boat", + "minecraft:birch_button", + "minecraft:birch_door", + "minecraft:birch_fence", + "minecraft:birch_fence_gate", + "minecraft:birch_leaves", + "minecraft:birch_log", + "minecraft:birch_planks", + "minecraft:birch_pressure_plate", + "minecraft:birch_sapling", + "minecraft:birch_sign", + "minecraft:birch_slab", + "minecraft:birch_stairs", + "minecraft:birch_trapdoor", + "minecraft:birch_wood", + "minecraft:black_banner", + "minecraft:black_bed", + "minecraft:black_carpet", + "minecraft:black_concrete", + "minecraft:black_concrete_powder", + "minecraft:black_dye", + "minecraft:black_glazed_terracotta", + "minecraft:black_shulker_box", + "minecraft:black_stained_glass", + "minecraft:black_stained_glass_pane", + "minecraft:black_terracotta", + "minecraft:black_wool", + "minecraft:blast_furnace", + "minecraft:blaze_powder", + "minecraft:blaze_rod", + "minecraft:blaze_spawn_egg", + "minecraft:blue_banner", + "minecraft:blue_bed", + "minecraft:blue_carpet", + "minecraft:blue_concrete", + "minecraft:blue_concrete_powder", + "minecraft:blue_dye", + "minecraft:blue_glazed_terracotta", + "minecraft:blue_ice", + "minecraft:blue_orchid", + "minecraft:blue_shulker_box", + "minecraft:blue_stained_glass", + "minecraft:blue_stained_glass_pane", + "minecraft:blue_terracotta", + "minecraft:blue_wool", + "minecraft:bone", + "minecraft:bone_block", + "minecraft:bone_meal", + "minecraft:book", + "minecraft:bookshelf", + "minecraft:bow", + "minecraft:bowl", + "minecraft:brain_coral", + "minecraft:brain_coral_block", + "minecraft:brain_coral_fan", + "minecraft:bread", + "minecraft:brewing_stand", + "minecraft:brick", + "minecraft:brick_slab", + "minecraft:brick_stairs", + "minecraft:brick_wall", + "minecraft:bricks", + "minecraft:brown_banner", + "minecraft:brown_bed", + "minecraft:brown_carpet", + "minecraft:brown_concrete", + "minecraft:brown_concrete_powder", + "minecraft:brown_dye", + "minecraft:brown_glazed_terracotta", + "minecraft:brown_mushroom", + "minecraft:brown_mushroom_block", + "minecraft:brown_shulker_box", + "minecraft:brown_stained_glass", + "minecraft:brown_stained_glass_pane", + "minecraft:brown_terracotta", + "minecraft:brown_wool", + "minecraft:bubble_coral", + "minecraft:bubble_coral_block", + "minecraft:bubble_coral_fan", + "minecraft:bucket", + "minecraft:cactus", + "minecraft:cake", + "minecraft:campfire", + "minecraft:carrot", + "minecraft:carrot_on_a_stick", + "minecraft:cartography_table", + "minecraft:carved_pumpkin", + "minecraft:cat_spawn_egg", + "minecraft:cauldron", + "minecraft:cave_spider_spawn_egg", + "minecraft:chain_command_block", + "minecraft:chainmail_boots", + "minecraft:chainmail_chestplate", + "minecraft:chainmail_helmet", + "minecraft:chainmail_leggings", + "minecraft:charcoal", + "minecraft:chest", + "minecraft:chest_minecart", + "minecraft:chicken", + "minecraft:chicken_spawn_egg", + "minecraft:chipped_anvil", + "minecraft:chiseled_quartz_block", + "minecraft:chiseled_red_sandstone", + "minecraft:chiseled_sandstone", + "minecraft:chiseled_stone_bricks", + "minecraft:chorus_flower", + "minecraft:chorus_fruit", + "minecraft:chorus_plant", + "minecraft:clay", + "minecraft:clay_ball", + "minecraft:clock", + "minecraft:coal", + "minecraft:coal_block", + "minecraft:coal_ore", + "minecraft:coarse_dirt", + "minecraft:cobblestone", + "minecraft:cobblestone_slab", + "minecraft:cobblestone_stairs", + "minecraft:cobblestone_wall", + "minecraft:cobweb", + "minecraft:cocoa_beans", + "minecraft:cod", + "minecraft:cod_bucket", + "minecraft:cod_spawn_egg", + "minecraft:command_block", + "minecraft:command_block_minecart", + "minecraft:comparator", + "minecraft:compass", + "minecraft:composter", + "minecraft:conduit", + "minecraft:cooked_beef", + "minecraft:cooked_chicken", + "minecraft:cooked_cod", + "minecraft:cooked_mutton", + "minecraft:cooked_porkchop", + "minecraft:cooked_rabbit", + "minecraft:cooked_salmon", + "minecraft:cookie", + "minecraft:cornflower", + "minecraft:cow_spawn_egg", + "minecraft:cracked_stone_bricks", + "minecraft:crafting_table", + "minecraft:creeper_banner_pattern", + "minecraft:creeper_head", + "minecraft:creeper_spawn_egg", + "minecraft:crossbow", + "minecraft:cut_red_sandstone", + "minecraft:cut_red_sandstone_slab", + "minecraft:cut_sandstone", + "minecraft:cut_sandstone_slab", + "minecraft:cyan_banner", + "minecraft:cyan_bed", + "minecraft:cyan_carpet", + "minecraft:cyan_concrete", + "minecraft:cyan_concrete_powder", + "minecraft:cyan_dye", + "minecraft:cyan_glazed_terracotta", + "minecraft:cyan_shulker_box", + "minecraft:cyan_stained_glass", + "minecraft:cyan_stained_glass_pane", + "minecraft:cyan_terracotta", + "minecraft:cyan_wool", + "minecraft:damaged_anvil", + "minecraft:dandelion", + "minecraft:dark_oak_boat", + "minecraft:dark_oak_button", + "minecraft:dark_oak_door", + "minecraft:dark_oak_fence", + "minecraft:dark_oak_fence_gate", + "minecraft:dark_oak_leaves", + "minecraft:dark_oak_log", + "minecraft:dark_oak_planks", + "minecraft:dark_oak_pressure_plate", + "minecraft:dark_oak_sapling", + "minecraft:dark_oak_sign", + "minecraft:dark_oak_slab", + "minecraft:dark_oak_stairs", + "minecraft:dark_oak_trapdoor", + "minecraft:dark_oak_wood", + "minecraft:dark_prismarine", + "minecraft:dark_prismarine_slab", + "minecraft:dark_prismarine_stairs", + "minecraft:daylight_detector", + "minecraft:dead_brain_coral", + "minecraft:dead_brain_coral_block", + "minecraft:dead_brain_coral_fan", + "minecraft:dead_bubble_coral", + "minecraft:dead_bubble_coral_block", + "minecraft:dead_bubble_coral_fan", + "minecraft:dead_bush", + "minecraft:dead_fire_coral", + "minecraft:dead_fire_coral_block", + "minecraft:dead_fire_coral_fan", + "minecraft:dead_horn_coral", + "minecraft:dead_horn_coral_block", + "minecraft:dead_horn_coral_fan", + "minecraft:dead_tube_coral", + "minecraft:dead_tube_coral_block", + "minecraft:dead_tube_coral_fan", + "minecraft:debug_stick", + "minecraft:detector_rail", + "minecraft:diamond", + "minecraft:diamond_axe", + "minecraft:diamond_block", + "minecraft:diamond_boots", + "minecraft:diamond_chestplate", + "minecraft:diamond_helmet", + "minecraft:diamond_hoe", + "minecraft:diamond_horse_armor", + "minecraft:diamond_leggings", + "minecraft:diamond_ore", + "minecraft:diamond_pickaxe", + "minecraft:diamond_shovel", + "minecraft:diamond_sword", + "minecraft:diorite", + "minecraft:diorite_slab", + "minecraft:diorite_stairs", + "minecraft:diorite_wall", + "minecraft:dirt", + "minecraft:dispenser", + "minecraft:dolphin_spawn_egg", + "minecraft:donkey_spawn_egg", + "minecraft:dragon_breath", + "minecraft:dragon_egg", + "minecraft:dragon_head", + "minecraft:dried_kelp", + "minecraft:dried_kelp_block", + "minecraft:dropper", + "minecraft:drowned_spawn_egg", + "minecraft:egg", + "minecraft:elder_guardian_spawn_egg", + "minecraft:elytra", + "minecraft:emerald", + "minecraft:emerald_block", + "minecraft:emerald_ore", + "minecraft:enchanted_book", + "minecraft:enchanted_golden_apple", + "minecraft:enchanting_table", + "minecraft:end_crystal", + "minecraft:end_portal_frame", + "minecraft:end_rod", + "minecraft:end_stone", + "minecraft:end_stone_brick_slab", + "minecraft:end_stone_brick_stairs", + "minecraft:end_stone_brick_wall", + "minecraft:end_stone_bricks", + "minecraft:ender_chest", + "minecraft:ender_eye", + "minecraft:ender_pearl", + "minecraft:enderman_spawn_egg", + "minecraft:endermite_spawn_egg", + "minecraft:evoker_spawn_egg", + "minecraft:experience_bottle", + "minecraft:farmland", + "minecraft:feather", + "minecraft:fermented_spider_eye", + "minecraft:fern", + "minecraft:filled_map", + "minecraft:fire_charge", + "minecraft:fire_coral", + "minecraft:fire_coral_block", + "minecraft:fire_coral_fan", + "minecraft:firework_rocket", + "minecraft:firework_star", + "minecraft:fishing_rod", + "minecraft:fletching_table", + "minecraft:flint", + "minecraft:flint_and_steel", + "minecraft:flower_banner_pattern", + "minecraft:flower_pot", + "minecraft:fox_spawn_egg", + "minecraft:furnace", + "minecraft:furnace_minecart", + "minecraft:ghast_spawn_egg", + "minecraft:ghast_tear", + "minecraft:glass", + "minecraft:glass_bottle", + "minecraft:glass_pane", + "minecraft:glistering_melon_slice", + "minecraft:globe_banner_pattern", + "minecraft:glowstone", + "minecraft:glowstone_dust", + "minecraft:gold_block", + "minecraft:gold_ingot", + "minecraft:gold_nugget", + "minecraft:gold_ore", + "minecraft:golden_apple", + "minecraft:golden_axe", + "minecraft:golden_boots", + "minecraft:golden_carrot", + "minecraft:golden_chestplate", + "minecraft:golden_helmet", + "minecraft:golden_hoe", + "minecraft:golden_horse_armor", + "minecraft:golden_leggings", + "minecraft:golden_pickaxe", + "minecraft:golden_shovel", + "minecraft:golden_sword", + "minecraft:granite", + "minecraft:granite_slab", + "minecraft:granite_stairs", + "minecraft:granite_wall", + "minecraft:grass", + "minecraft:grass_block", + "minecraft:grass_path", + "minecraft:gravel", + "minecraft:gray_banner", + "minecraft:gray_bed", + "minecraft:gray_carpet", + "minecraft:gray_concrete", + "minecraft:gray_concrete_powder", + "minecraft:gray_dye", + "minecraft:gray_glazed_terracotta", + "minecraft:gray_shulker_box", + "minecraft:gray_stained_glass", + "minecraft:gray_stained_glass_pane", + "minecraft:gray_terracotta", + "minecraft:gray_wool", + "minecraft:green_banner", + "minecraft:green_bed", + "minecraft:green_carpet", + "minecraft:green_concrete", + "minecraft:green_concrete_powder", + "minecraft:green_dye", + "minecraft:green_glazed_terracotta", + "minecraft:green_shulker_box", + "minecraft:green_stained_glass", + "minecraft:green_stained_glass_pane", + "minecraft:green_terracotta", + "minecraft:green_wool", + "minecraft:grindstone", + "minecraft:guardian_spawn_egg", + "minecraft:gunpowder", + "minecraft:hay_block", + "minecraft:heart_of_the_sea", + "minecraft:heavy_weighted_pressure_plate", + "minecraft:honey_block", + "minecraft:honey_bottle", + "minecraft:honeycomb", + "minecraft:honeycomb_block", + "minecraft:hopper", + "minecraft:hopper_minecart", + "minecraft:horn_coral", + "minecraft:horn_coral_block", + "minecraft:horn_coral_fan", + "minecraft:horse_spawn_egg", + "minecraft:husk_spawn_egg", + "minecraft:ice", + "minecraft:infested_chiseled_stone_bricks", + "minecraft:infested_cobblestone", + "minecraft:infested_cracked_stone_bricks", + "minecraft:infested_mossy_stone_bricks", + "minecraft:infested_stone", + "minecraft:infested_stone_bricks", + "minecraft:ink_sac", + "minecraft:iron_axe", + "minecraft:iron_bars", + "minecraft:iron_block", + "minecraft:iron_boots", + "minecraft:iron_chestplate", + "minecraft:iron_door", + "minecraft:iron_helmet", + "minecraft:iron_hoe", + "minecraft:iron_horse_armor", + "minecraft:iron_ingot", + "minecraft:iron_leggings", + "minecraft:iron_nugget", + "minecraft:iron_ore", + "minecraft:iron_pickaxe", + "minecraft:iron_shovel", + "minecraft:iron_sword", + "minecraft:iron_trapdoor", + "minecraft:item_frame", + "minecraft:jack_o_lantern", + "minecraft:jigsaw", + "minecraft:jukebox", + "minecraft:jungle_boat", + "minecraft:jungle_button", + "minecraft:jungle_door", + "minecraft:jungle_fence", + "minecraft:jungle_fence_gate", + "minecraft:jungle_leaves", + "minecraft:jungle_log", + "minecraft:jungle_planks", + "minecraft:jungle_pressure_plate", + "minecraft:jungle_sapling", + "minecraft:jungle_sign", + "minecraft:jungle_slab", + "minecraft:jungle_stairs", + "minecraft:jungle_trapdoor", + "minecraft:jungle_wood", + "minecraft:kelp", + "minecraft:knowledge_book", + "minecraft:ladder", + "minecraft:lantern", + "minecraft:lapis_block", + "minecraft:lapis_lazuli", + "minecraft:lapis_ore", + "minecraft:large_fern", + "minecraft:lava_bucket", + "minecraft:lead", + "minecraft:leather", + "minecraft:leather_boots", + "minecraft:leather_chestplate", + "minecraft:leather_helmet", + "minecraft:leather_horse_armor", + "minecraft:leather_leggings", + "minecraft:lectern", + "minecraft:lever", + "minecraft:light_blue_banner", + "minecraft:light_blue_bed", + "minecraft:light_blue_carpet", + "minecraft:light_blue_concrete", + "minecraft:light_blue_concrete_powder", + "minecraft:light_blue_dye", + "minecraft:light_blue_glazed_terracotta", + "minecraft:light_blue_shulker_box", + "minecraft:light_blue_stained_glass", + "minecraft:light_blue_stained_glass_pane", + "minecraft:light_blue_terracotta", + "minecraft:light_blue_wool", + "minecraft:light_gray_banner", + "minecraft:light_gray_bed", + "minecraft:light_gray_carpet", + "minecraft:light_gray_concrete", + "minecraft:light_gray_concrete_powder", + "minecraft:light_gray_dye", + "minecraft:light_gray_glazed_terracotta", + "minecraft:light_gray_shulker_box", + "minecraft:light_gray_stained_glass", + "minecraft:light_gray_stained_glass_pane", + "minecraft:light_gray_terracotta", + "minecraft:light_gray_wool", + "minecraft:light_weighted_pressure_plate", + "minecraft:lilac", + "minecraft:lily_of_the_valley", + "minecraft:lily_pad", + "minecraft:lime_banner", + "minecraft:lime_bed", + "minecraft:lime_carpet", + "minecraft:lime_concrete", + "minecraft:lime_concrete_powder", + "minecraft:lime_dye", + "minecraft:lime_glazed_terracotta", + "minecraft:lime_shulker_box", + "minecraft:lime_stained_glass", + "minecraft:lime_stained_glass_pane", + "minecraft:lime_terracotta", + "minecraft:lime_wool", + "minecraft:lingering_potion", + "minecraft:llama_spawn_egg", + "minecraft:loom", + "minecraft:magenta_banner", + "minecraft:magenta_bed", + "minecraft:magenta_carpet", + "minecraft:magenta_concrete", + "minecraft:magenta_concrete_powder", + "minecraft:magenta_dye", + "minecraft:magenta_glazed_terracotta", + "minecraft:magenta_shulker_box", + "minecraft:magenta_stained_glass", + "minecraft:magenta_stained_glass_pane", + "minecraft:magenta_terracotta", + "minecraft:magenta_wool", + "minecraft:magma_block", + "minecraft:magma_cream", + "minecraft:magma_cube_spawn_egg", + "minecraft:map", + "minecraft:melon", + "minecraft:melon_seeds", + "minecraft:melon_slice", + "minecraft:milk_bucket", + "minecraft:minecart", + "minecraft:mojang_banner_pattern", + "minecraft:mooshroom_spawn_egg", + "minecraft:mossy_cobblestone", + "minecraft:mossy_cobblestone_slab", + "minecraft:mossy_cobblestone_stairs", + "minecraft:mossy_cobblestone_wall", + "minecraft:mossy_stone_brick_slab", + "minecraft:mossy_stone_brick_stairs", + "minecraft:mossy_stone_brick_wall", + "minecraft:mossy_stone_bricks", + "minecraft:mule_spawn_egg", + "minecraft:mushroom_stem", + "minecraft:mushroom_stew", + "minecraft:music_disc_11", + "minecraft:music_disc_13", + "minecraft:music_disc_blocks", + "minecraft:music_disc_cat", + "minecraft:music_disc_chirp", + "minecraft:music_disc_far", + "minecraft:music_disc_mall", + "minecraft:music_disc_mellohi", + "minecraft:music_disc_stal", + "minecraft:music_disc_strad", + "minecraft:music_disc_wait", + "minecraft:music_disc_ward", + "minecraft:mutton", + "minecraft:mycelium", + "minecraft:name_tag", + "minecraft:nautilus_shell", + "minecraft:nether_brick", + "minecraft:nether_brick_fence", + "minecraft:nether_brick_slab", + "minecraft:nether_brick_stairs", + "minecraft:nether_brick_wall", + "minecraft:nether_bricks", + "minecraft:nether_quartz_ore", + "minecraft:nether_star", + "minecraft:nether_wart", + "minecraft:nether_wart_block", + "minecraft:netherrack", + "minecraft:note_block", + "minecraft:oak_boat", + "minecraft:oak_button", + "minecraft:oak_door", + "minecraft:oak_fence", + "minecraft:oak_fence_gate", + "minecraft:oak_leaves", + "minecraft:oak_log", + "minecraft:oak_planks", + "minecraft:oak_pressure_plate", + "minecraft:oak_sapling", + "minecraft:oak_sign", + "minecraft:oak_slab", + "minecraft:oak_stairs", + "minecraft:oak_trapdoor", + "minecraft:oak_wood", + "minecraft:observer", + "minecraft:obsidian", + "minecraft:ocelot_spawn_egg", + "minecraft:orange_banner", + "minecraft:orange_bed", + "minecraft:orange_carpet", + "minecraft:orange_concrete", + "minecraft:orange_concrete_powder", + "minecraft:orange_dye", + "minecraft:orange_glazed_terracotta", + "minecraft:orange_shulker_box", + "minecraft:orange_stained_glass", + "minecraft:orange_stained_glass_pane", + "minecraft:orange_terracotta", + "minecraft:orange_tulip", + "minecraft:orange_wool", + "minecraft:oxeye_daisy", + "minecraft:packed_ice", + "minecraft:painting", + "minecraft:panda_spawn_egg", + "minecraft:paper", + "minecraft:parrot_spawn_egg", + "minecraft:peony", + "minecraft:petrified_oak_slab", + "minecraft:phantom_membrane", + "minecraft:phantom_spawn_egg", + "minecraft:pig_spawn_egg", + "minecraft:pillager_spawn_egg", + "minecraft:pink_banner", + "minecraft:pink_bed", + "minecraft:pink_carpet", + "minecraft:pink_concrete", + "minecraft:pink_concrete_powder", + "minecraft:pink_dye", + "minecraft:pink_glazed_terracotta", + "minecraft:pink_shulker_box", + "minecraft:pink_stained_glass", + "minecraft:pink_stained_glass_pane", + "minecraft:pink_terracotta", + "minecraft:pink_tulip", + "minecraft:pink_wool", + "minecraft:piston", + "minecraft:player_head", + "minecraft:podzol", + "minecraft:poisonous_potato", + "minecraft:polar_bear_spawn_egg", + "minecraft:polished_andesite", + "minecraft:polished_andesite_slab", + "minecraft:polished_andesite_stairs", + "minecraft:polished_diorite", + "minecraft:polished_diorite_slab", + "minecraft:polished_diorite_stairs", + "minecraft:polished_granite", + "minecraft:polished_granite_slab", + "minecraft:polished_granite_stairs", + "minecraft:popped_chorus_fruit", + "minecraft:poppy", + "minecraft:porkchop", + "minecraft:potato", + "minecraft:potion", + "minecraft:powered_rail", + "minecraft:prismarine", + "minecraft:prismarine_brick_slab", + "minecraft:prismarine_brick_stairs", + "minecraft:prismarine_bricks", + "minecraft:prismarine_crystals", + "minecraft:prismarine_shard", + "minecraft:prismarine_slab", + "minecraft:prismarine_stairs", + "minecraft:prismarine_wall", + "minecraft:pufferfish", + "minecraft:pufferfish_bucket", + "minecraft:pufferfish_spawn_egg", + "minecraft:pumpkin", + "minecraft:pumpkin_pie", + "minecraft:pumpkin_seeds", + "minecraft:purple_banner", + "minecraft:purple_bed", + "minecraft:purple_carpet", + "minecraft:purple_concrete", + "minecraft:purple_concrete_powder", + "minecraft:purple_dye", + "minecraft:purple_glazed_terracotta", + "minecraft:purple_shulker_box", + "minecraft:purple_stained_glass", + "minecraft:purple_stained_glass_pane", + "minecraft:purple_terracotta", + "minecraft:purple_wool", + "minecraft:purpur_block", + "minecraft:purpur_pillar", + "minecraft:purpur_slab", + "minecraft:purpur_stairs", + "minecraft:quartz", + "minecraft:quartz_block", + "minecraft:quartz_pillar", + "minecraft:quartz_slab", + "minecraft:quartz_stairs", + "minecraft:rabbit", + "minecraft:rabbit_foot", + "minecraft:rabbit_hide", + "minecraft:rabbit_spawn_egg", + "minecraft:rabbit_stew", + "minecraft:rail", + "minecraft:ravager_spawn_egg", + "minecraft:red_banner", + "minecraft:red_bed", + "minecraft:red_carpet", + "minecraft:red_concrete", + "minecraft:red_concrete_powder", + "minecraft:red_dye", + "minecraft:red_glazed_terracotta", + "minecraft:red_mushroom", + "minecraft:red_mushroom_block", + "minecraft:red_nether_brick_slab", + "minecraft:red_nether_brick_stairs", + "minecraft:red_nether_brick_wall", + "minecraft:red_nether_bricks", + "minecraft:red_sand", + "minecraft:red_sandstone", + "minecraft:red_sandstone_slab", + "minecraft:red_sandstone_stairs", + "minecraft:red_sandstone_wall", + "minecraft:red_shulker_box", + "minecraft:red_stained_glass", + "minecraft:red_stained_glass_pane", + "minecraft:red_terracotta", + "minecraft:red_tulip", + "minecraft:red_wool", + "minecraft:redstone", + "minecraft:redstone_block", + "minecraft:redstone_lamp", + "minecraft:redstone_ore", + "minecraft:redstone_torch", + "minecraft:repeater", + "minecraft:repeating_command_block", + "minecraft:rose_bush", + "minecraft:rotten_flesh", + "minecraft:saddle", + "minecraft:salmon", + "minecraft:salmon_bucket", + "minecraft:salmon_spawn_egg", + "minecraft:sand", + "minecraft:sandstone", + "minecraft:sandstone_slab", + "minecraft:sandstone_stairs", + "minecraft:sandstone_wall", + "minecraft:scaffolding", + "minecraft:scute", + "minecraft:sea_lantern", + "minecraft:sea_pickle", + "minecraft:seagrass", + "minecraft:shears", + "minecraft:sheep_spawn_egg", + "minecraft:shield", + "minecraft:shulker_box", + "minecraft:shulker_shell", + "minecraft:shulker_spawn_egg", + "minecraft:silverfish_spawn_egg", + "minecraft:skeleton_horse_spawn_egg", + "minecraft:skeleton_skull", + "minecraft:skeleton_spawn_egg", + "minecraft:skull_banner_pattern", + "minecraft:slime_ball", + "minecraft:slime_block", + "minecraft:slime_spawn_egg", + "minecraft:smithing_table", + "minecraft:smoker", + "minecraft:smooth_quartz", + "minecraft:smooth_quartz_slab", + "minecraft:smooth_quartz_stairs", + "minecraft:smooth_red_sandstone", + "minecraft:smooth_red_sandstone_slab", + "minecraft:smooth_red_sandstone_stairs", + "minecraft:smooth_sandstone", + "minecraft:smooth_sandstone_slab", + "minecraft:smooth_sandstone_stairs", + "minecraft:smooth_stone", + "minecraft:smooth_stone_slab", + "minecraft:snow", + "minecraft:snow_block", + "minecraft:snowball", + "minecraft:soul_sand", + "minecraft:spawner", + "minecraft:spectral_arrow", + "minecraft:spider_eye", + "minecraft:spider_spawn_egg", + "minecraft:splash_potion", + "minecraft:sponge", + "minecraft:spruce_boat", + "minecraft:spruce_button", + "minecraft:spruce_door", + "minecraft:spruce_fence", + "minecraft:spruce_fence_gate", + "minecraft:spruce_leaves", + "minecraft:spruce_log", + "minecraft:spruce_planks", + "minecraft:spruce_pressure_plate", + "minecraft:spruce_sapling", + "minecraft:spruce_sign", + "minecraft:spruce_slab", + "minecraft:spruce_stairs", + "minecraft:spruce_trapdoor", + "minecraft:spruce_wood", + "minecraft:squid_spawn_egg", + "minecraft:stick", + "minecraft:sticky_piston", + "minecraft:stone", + "minecraft:stone_axe", + "minecraft:stone_brick_slab", + "minecraft:stone_brick_stairs", + "minecraft:stone_brick_wall", + "minecraft:stone_bricks", + "minecraft:stone_button", + "minecraft:stone_hoe", + "minecraft:stone_pickaxe", + "minecraft:stone_pressure_plate", + "minecraft:stone_shovel", + "minecraft:stone_slab", + "minecraft:stone_stairs", + "minecraft:stone_sword", + "minecraft:stonecutter", + "minecraft:stray_spawn_egg", + "minecraft:string", + "minecraft:stripped_acacia_log", + "minecraft:stripped_acacia_wood", + "minecraft:stripped_birch_log", + "minecraft:stripped_birch_wood", + "minecraft:stripped_dark_oak_log", + "minecraft:stripped_dark_oak_wood", + "minecraft:stripped_jungle_log", + "minecraft:stripped_jungle_wood", + "minecraft:stripped_oak_log", + "minecraft:stripped_oak_wood", + "minecraft:stripped_spruce_log", + "minecraft:stripped_spruce_wood", + "minecraft:structure_block", + "minecraft:structure_void", + "minecraft:sugar", + "minecraft:sugar_cane", + "minecraft:sunflower", + "minecraft:suspicious_stew", + "minecraft:sweet_berries", + "minecraft:tall_grass", + "minecraft:terracotta", + "minecraft:tipped_arrow", + "minecraft:tnt", + "minecraft:tnt_minecart", + "minecraft:torch", + "minecraft:totem_of_undying", + "minecraft:trader_llama_spawn_egg", + "minecraft:trapped_chest", + "minecraft:trident", + "minecraft:tripwire_hook", + "minecraft:tropical_fish", + "minecraft:tropical_fish_bucket", + "minecraft:tropical_fish_spawn_egg", + "minecraft:tube_coral", + "minecraft:tube_coral_block", + "minecraft:tube_coral_fan", + "minecraft:turtle_egg", + "minecraft:turtle_helmet", + "minecraft:turtle_spawn_egg", + "minecraft:vex_spawn_egg", + "minecraft:villager_spawn_egg", + "minecraft:vindicator_spawn_egg", + "minecraft:vine", + "minecraft:wandering_trader_spawn_egg", + "minecraft:water_bucket", + "minecraft:wet_sponge", + "minecraft:wheat", + "minecraft:wheat_seeds", + "minecraft:white_banner", + "minecraft:white_bed", + "minecraft:white_carpet", + "minecraft:white_concrete", + "minecraft:white_concrete_powder", + "minecraft:white_dye", + "minecraft:white_glazed_terracotta", + "minecraft:white_shulker_box", + "minecraft:white_stained_glass", + "minecraft:white_stained_glass_pane", + "minecraft:white_terracotta", + "minecraft:white_tulip", + "minecraft:white_wool", + "minecraft:witch_spawn_egg", + "minecraft:wither_rose", + "minecraft:wither_skeleton_skull", + "minecraft:wither_skeleton_spawn_egg", + "minecraft:wolf_spawn_egg", + "minecraft:wooden_axe", + "minecraft:wooden_hoe", + "minecraft:wooden_pickaxe", + "minecraft:wooden_shovel", + "minecraft:wooden_sword", + "minecraft:writable_book", + "minecraft:written_book", + "minecraft:yellow_banner", + "minecraft:yellow_bed", + "minecraft:yellow_carpet", + "minecraft:yellow_concrete", + "minecraft:yellow_concrete_powder", + "minecraft:yellow_dye", + "minecraft:yellow_glazed_terracotta", + "minecraft:yellow_shulker_box", + "minecraft:yellow_stained_glass", + "minecraft:yellow_stained_glass_pane", + "minecraft:yellow_terracotta", + "minecraft:yellow_wool", + "minecraft:zombie_head", + "minecraft:zombie_horse_spawn_egg", + "minecraft:zombie_pigman_spawn_egg", + "minecraft:zombie_spawn_egg", + "minecraft:zombie_villager_spawn_egg" + ], + "entities": [ + "minecraft:area_effect_cloud", + "minecraft:armor_stand", + "minecraft:arrow", + "minecraft:bat", + "minecraft:bee", + "minecraft:blaze", + "minecraft:boat", + "minecraft:cat", + "minecraft:cave_spider", + "minecraft:chest_minecart", + "minecraft:chicken", + "minecraft:cod", + "minecraft:command_block_minecart", + "minecraft:cow", + "minecraft:creeper", + "minecraft:dolphin", + "minecraft:donkey", + "minecraft:dragon_fireball", + "minecraft:drowned", + "minecraft:egg", + "minecraft:elder_guardian", + "minecraft:end_crystal", + "minecraft:ender_dragon", + "minecraft:ender_pearl", + "minecraft:enderman", + "minecraft:endermite", + "minecraft:evoker", + "minecraft:evoker_fangs", + "minecraft:experience_bottle", + "minecraft:experience_orb", + "minecraft:eye_of_ender", + "minecraft:falling_block", + "minecraft:fireball", + "minecraft:firework_rocket", + "minecraft:fishing_bobber", + "minecraft:fox", + "minecraft:furnace_minecart", + "minecraft:ghast", + "minecraft:giant", + "minecraft:guardian", + "minecraft:hopper_minecart", + "minecraft:horse", + "minecraft:husk", + "minecraft:illusioner", + "minecraft:iron_golem", + "minecraft:item", + "minecraft:item_frame", + "minecraft:leash_knot", + "minecraft:lightning_bolt", + "minecraft:llama", + "minecraft:llama_spit", + "minecraft:magma_cube", + "minecraft:minecart", + "minecraft:mooshroom", + "minecraft:mule", + "minecraft:ocelot", + "minecraft:painting", + "minecraft:panda", + "minecraft:parrot", + "minecraft:phantom", + "minecraft:pig", + "minecraft:pillager", + "minecraft:player", + "minecraft:polar_bear", + "minecraft:potion", + "minecraft:pufferfish", + "minecraft:rabbit", + "minecraft:ravager", + "minecraft:salmon", + "minecraft:sheep", + "minecraft:shulker", + "minecraft:shulker_bullet", + "minecraft:silverfish", + "minecraft:skeleton", + "minecraft:skeleton_horse", + "minecraft:slime", + "minecraft:small_fireball", + "minecraft:snow_golem", + "minecraft:snowball", + "minecraft:spawner_minecart", + "minecraft:spectral_arrow", + "minecraft:spider", + "minecraft:squid", + "minecraft:stray", + "minecraft:tnt", + "minecraft:tnt_minecart", + "minecraft:trader_llama", + "minecraft:trident", + "minecraft:tropical_fish", + "minecraft:turtle", + "minecraft:vex", + "minecraft:villager", + "minecraft:vindicator", + "minecraft:wandering_trader", + "minecraft:witch", + "minecraft:wither", + "minecraft:wither_skeleton", + "minecraft:wither_skull", + "minecraft:wolf", + "minecraft:zombie", + "minecraft:zombie_horse", + "minecraft:zombie_pigman", + "minecraft:zombie_villager" + ], + "biomes": [ + "minecraft:badlands", + "minecraft:badlands_plateau", + "minecraft:bamboo_jungle", + "minecraft:bamboo_jungle_hills", + "minecraft:beach", + "minecraft:birch_forest", + "minecraft:birch_forest_hills", + "minecraft:cold_ocean", + "minecraft:dark_forest", + "minecraft:dark_forest_hills", + "minecraft:deep_cold_ocean", + "minecraft:deep_frozen_ocean", + "minecraft:deep_lukewarm_ocean", + "minecraft:deep_ocean", + "minecraft:deep_warm_ocean", + "minecraft:desert", + "minecraft:desert_hills", + "minecraft:desert_lakes", + "minecraft:end_barrens", + "minecraft:end_highlands", + "minecraft:end_midlands", + "minecraft:eroded_badlands", + "minecraft:flower_forest", + "minecraft:forest", + "minecraft:frozen_ocean", + "minecraft:frozen_river", + "minecraft:giant_spruce_taiga", + "minecraft:giant_spruce_taiga_hills", + "minecraft:giant_tree_taiga", + "minecraft:giant_tree_taiga_hills", + "minecraft:gravelly_mountains", + "minecraft:ice_spikes", + "minecraft:jungle", + "minecraft:jungle_edge", + "minecraft:jungle_hills", + "minecraft:lukewarm_ocean", + "minecraft:modified_badlands_plateau", + "minecraft:modified_gravelly_mountains", + "minecraft:modified_jungle", + "minecraft:modified_jungle_edge", + "minecraft:modified_wooded_badlands_plateau", + "minecraft:mountain_edge", + "minecraft:mountains", + "minecraft:mushroom_field_shore", + "minecraft:mushroom_fields", + "minecraft:nether", + "minecraft:ocean", + "minecraft:plains", + "minecraft:river", + "minecraft:savanna", + "minecraft:savanna_plateau", + "minecraft:shattered_savanna", + "minecraft:shattered_savanna_plateau", + "minecraft:small_end_islands", + "minecraft:snowy_beach", + "minecraft:snowy_mountains", + "minecraft:snowy_taiga", + "minecraft:snowy_taiga_hills", + "minecraft:snowy_taiga_mountains", + "minecraft:snowy_tundra", + "minecraft:stone_shore", + "minecraft:sunflower_plains", + "minecraft:swamp", + "minecraft:swamp_hills", + "minecraft:taiga", + "minecraft:taiga_hills", + "minecraft:taiga_mountains", + "minecraft:tall_birch_forest", + "minecraft:tall_birch_hills", + "minecraft:the_end", + "minecraft:the_void", + "minecraft:warm_ocean", + "minecraft:wooded_badlands_plateau", + "minecraft:wooded_hills", + "minecraft:wooded_mountains" + ], + "blocktags": { + "minecraft:slabs": [ + "minecraft:stone_slab", + "minecraft:smooth_stone_slab", + "minecraft:stone_brick_slab", + "minecraft:sandstone_slab", + "minecraft:acacia_slab", + "minecraft:birch_slab", + "minecraft:dark_oak_slab", + "minecraft:jungle_slab", + "minecraft:oak_slab", + "minecraft:spruce_slab", + "minecraft:purpur_slab", + "minecraft:quartz_slab", + "minecraft:red_sandstone_slab", + "minecraft:brick_slab", + "minecraft:cobblestone_slab", + "minecraft:nether_brick_slab", + "minecraft:petrified_oak_slab", + "minecraft:prismarine_slab", + "minecraft:prismarine_brick_slab", + "minecraft:dark_prismarine_slab", + "minecraft:polished_granite_slab", + "minecraft:smooth_red_sandstone_slab", + "minecraft:mossy_stone_brick_slab", + "minecraft:polished_diorite_slab", + "minecraft:mossy_cobblestone_slab", + "minecraft:end_stone_brick_slab", + "minecraft:smooth_sandstone_slab", + "minecraft:smooth_quartz_slab", + "minecraft:granite_slab", + "minecraft:andesite_slab", + "minecraft:red_nether_brick_slab", + "minecraft:polished_andesite_slab", + "minecraft:diorite_slab", + "minecraft:cut_sandstone_slab", + "minecraft:cut_red_sandstone_slab" + ], + "minecraft:carpets": [ + "minecraft:white_carpet", + "minecraft:orange_carpet", + "minecraft:magenta_carpet", + "minecraft:light_blue_carpet", + "minecraft:yellow_carpet", + "minecraft:lime_carpet", + "minecraft:pink_carpet", + "minecraft:gray_carpet", + "minecraft:light_gray_carpet", + "minecraft:cyan_carpet", + "minecraft:purple_carpet", + "minecraft:blue_carpet", + "minecraft:brown_carpet", + "minecraft:green_carpet", + "minecraft:red_carpet", + "minecraft:black_carpet" + ], + "minecraft:stairs": [ + "minecraft:oak_stairs", + "minecraft:cobblestone_stairs", + "minecraft:spruce_stairs", + "minecraft:sandstone_stairs", + "minecraft:acacia_stairs", + "minecraft:jungle_stairs", + "minecraft:birch_stairs", + "minecraft:dark_oak_stairs", + "minecraft:nether_brick_stairs", + "minecraft:stone_brick_stairs", + "minecraft:brick_stairs", + "minecraft:purpur_stairs", + "minecraft:quartz_stairs", + "minecraft:red_sandstone_stairs", + "minecraft:prismarine_brick_stairs", + "minecraft:prismarine_stairs", + "minecraft:dark_prismarine_stairs", + "minecraft:polished_granite_stairs", + "minecraft:smooth_red_sandstone_stairs", + "minecraft:mossy_stone_brick_stairs", + "minecraft:polished_diorite_stairs", + "minecraft:mossy_cobblestone_stairs", + "minecraft:end_stone_brick_stairs", + "minecraft:stone_stairs", + "minecraft:smooth_sandstone_stairs", + "minecraft:smooth_quartz_stairs", + "minecraft:granite_stairs", + "minecraft:andesite_stairs", + "minecraft:red_nether_brick_stairs", + "minecraft:polished_andesite_stairs", + "minecraft:diorite_stairs" + ], + "minecraft:wooden_doors": [ + "minecraft:oak_door", + "minecraft:spruce_door", + "minecraft:birch_door", + "minecraft:jungle_door", + "minecraft:acacia_door", + "minecraft:dark_oak_door" + ], + "minecraft:jungle_logs": [ + "minecraft:jungle_log", + "minecraft:jungle_wood", + "minecraft:stripped_jungle_log", + "minecraft:stripped_jungle_wood" + ], + "minecraft:planks": [ + "minecraft:oak_planks", + "minecraft:spruce_planks", + "minecraft:birch_planks", + "minecraft:jungle_planks", + "minecraft:acacia_planks", + "minecraft:dark_oak_planks" + ], + "minecraft:wall_corals": [ + "minecraft:tube_coral_wall_fan", + "minecraft:brain_coral_wall_fan", + "minecraft:bubble_coral_wall_fan", + "minecraft:fire_coral_wall_fan", + "minecraft:horn_coral_wall_fan" + ], + "minecraft:shulker_boxes": [ + "minecraft:shulker_box", + "minecraft:black_shulker_box", + "minecraft:blue_shulker_box", + "minecraft:brown_shulker_box", + "minecraft:cyan_shulker_box", + "minecraft:gray_shulker_box", + "minecraft:green_shulker_box", + "minecraft:light_blue_shulker_box", + "minecraft:light_gray_shulker_box", + "minecraft:lime_shulker_box", + "minecraft:magenta_shulker_box", + "minecraft:orange_shulker_box", + "minecraft:pink_shulker_box", + "minecraft:purple_shulker_box", + "minecraft:red_shulker_box", + "minecraft:white_shulker_box", + "minecraft:yellow_shulker_box" + ], + "minecraft:acacia_logs": [ + "minecraft:acacia_log", + "minecraft:acacia_wood", + "minecraft:stripped_acacia_log", + "minecraft:stripped_acacia_wood" + ], + "minecraft:wither_immune": [ + "minecraft:barrier", + "minecraft:bedrock", + "minecraft:end_portal", + "minecraft:end_portal_frame", + "minecraft:end_gateway", + "minecraft:command_block", + "minecraft:repeating_command_block", + "minecraft:chain_command_block", + "minecraft:structure_block", + "minecraft:jigsaw", + "minecraft:moving_piston" + ], + "minecraft:flower_pots": [ + "minecraft:flower_pot", + "minecraft:potted_poppy", + "minecraft:potted_blue_orchid", + "minecraft:potted_allium", + "minecraft:potted_azure_bluet", + "minecraft:potted_red_tulip", + "minecraft:potted_orange_tulip", + "minecraft:potted_white_tulip", + "minecraft:potted_pink_tulip", + "minecraft:potted_oxeye_daisy", + "minecraft:potted_dandelion", + "minecraft:potted_oak_sapling", + "minecraft:potted_spruce_sapling", + "minecraft:potted_birch_sapling", + "minecraft:potted_jungle_sapling", + "minecraft:potted_acacia_sapling", + "minecraft:potted_dark_oak_sapling", + "minecraft:potted_red_mushroom", + "minecraft:potted_brown_mushroom", + "minecraft:potted_dead_bush", + "minecraft:potted_fern", + "minecraft:potted_cactus", + "minecraft:potted_cornflower", + "minecraft:potted_lily_of_the_valley", + "minecraft:potted_wither_rose", + "minecraft:potted_bamboo" + ], + "minecraft:stone_bricks": [ + "minecraft:stone_bricks", + "minecraft:mossy_stone_bricks", + "minecraft:cracked_stone_bricks", + "minecraft:chiseled_stone_bricks" + ], + "minecraft:enderman_holdable": [ + "minecraft:grass_block", + "minecraft:dirt", + "minecraft:coarse_dirt", + "minecraft:podzol", + "minecraft:sand", + "minecraft:red_sand", + "minecraft:gravel", + "minecraft:brown_mushroom", + "minecraft:red_mushroom", + "minecraft:tnt", + "minecraft:cactus", + "minecraft:clay", + "minecraft:pumpkin", + "minecraft:carved_pumpkin", + "minecraft:melon", + "minecraft:mycelium", + "minecraft:netherrack", + "minecraft:dandelion", + "minecraft:poppy", + "minecraft:blue_orchid", + "minecraft:allium", + "minecraft:azure_bluet", + "minecraft:red_tulip", + "minecraft:orange_tulip", + "minecraft:white_tulip", + "minecraft:pink_tulip", + "minecraft:oxeye_daisy", + "minecraft:cornflower", + "minecraft:lily_of_the_valley", + "minecraft:wither_rose" + ], + "minecraft:spruce_logs": [ + "minecraft:spruce_log", + "minecraft:spruce_wood", + "minecraft:stripped_spruce_log", + "minecraft:stripped_spruce_wood" + ], + "minecraft:flowers": [ + "minecraft:dandelion", + "minecraft:poppy", + "minecraft:blue_orchid", + "minecraft:allium", + "minecraft:azure_bluet", + "minecraft:red_tulip", + "minecraft:orange_tulip", + "minecraft:white_tulip", + "minecraft:pink_tulip", + "minecraft:oxeye_daisy", + "minecraft:cornflower", + "minecraft:lily_of_the_valley", + "minecraft:wither_rose", + "minecraft:sunflower", + "minecraft:lilac", + "minecraft:peony", + "minecraft:rose_bush" + ], + "minecraft:wooden_slabs": [ + "minecraft:oak_slab", + "minecraft:spruce_slab", + "minecraft:birch_slab", + "minecraft:jungle_slab", + "minecraft:acacia_slab", + "minecraft:dark_oak_slab" + ], + "minecraft:coral_blocks": [ + "minecraft:tube_coral_block", + "minecraft:brain_coral_block", + "minecraft:bubble_coral_block", + "minecraft:fire_coral_block", + "minecraft:horn_coral_block" + ], + "minecraft:signs": [ + "minecraft:oak_sign", + "minecraft:spruce_sign", + "minecraft:birch_sign", + "minecraft:acacia_sign", + "minecraft:jungle_sign", + "minecraft:dark_oak_sign", + "minecraft:oak_wall_sign", + "minecraft:spruce_wall_sign", + "minecraft:birch_wall_sign", + "minecraft:acacia_wall_sign", + "minecraft:jungle_wall_sign", + "minecraft:dark_oak_wall_sign" + ], + "minecraft:dark_oak_logs": [ + "minecraft:dark_oak_log", + "minecraft:dark_oak_wood", + "minecraft:stripped_dark_oak_log", + "minecraft:stripped_dark_oak_wood" + ], + "minecraft:sand": [ + "minecraft:sand", + "minecraft:red_sand" + ], + "minecraft:valid_spawn": [ + "minecraft:grass_block", + "minecraft:podzol" + ], + "minecraft:underwater_bonemeals": [ + "minecraft:seagrass", + "minecraft:tube_coral_fan", + "minecraft:brain_coral_fan", + "minecraft:bubble_coral_fan", + "minecraft:fire_coral_fan", + "minecraft:horn_coral_fan", + "minecraft:tube_coral", + "minecraft:brain_coral", + "minecraft:bubble_coral", + "minecraft:fire_coral", + "minecraft:horn_coral", + "minecraft:tube_coral_wall_fan", + "minecraft:brain_coral_wall_fan", + "minecraft:bubble_coral_wall_fan", + "minecraft:fire_coral_wall_fan", + "minecraft:horn_coral_wall_fan" + ], + "minecraft:oak_logs": [ + "minecraft:oak_log", + "minecraft:oak_wood", + "minecraft:stripped_oak_log", + "minecraft:stripped_oak_wood" + ], + "minecraft:buttons": [ + "minecraft:stone_button", + "minecraft:oak_button", + "minecraft:spruce_button", + "minecraft:birch_button", + "minecraft:jungle_button", + "minecraft:acacia_button", + "minecraft:dark_oak_button" + ], + "minecraft:wooden_pressure_plates": [ + "minecraft:oak_pressure_plate", + "minecraft:spruce_pressure_plate", + "minecraft:birch_pressure_plate", + "minecraft:jungle_pressure_plate", + "minecraft:acacia_pressure_plate", + "minecraft:dark_oak_pressure_plate" + ], + "minecraft:beds": [ + "minecraft:red_bed", + "minecraft:black_bed", + "minecraft:blue_bed", + "minecraft:brown_bed", + "minecraft:cyan_bed", + "minecraft:gray_bed", + "minecraft:green_bed", + "minecraft:light_blue_bed", + "minecraft:light_gray_bed", + "minecraft:lime_bed", + "minecraft:magenta_bed", + "minecraft:orange_bed", + "minecraft:pink_bed", + "minecraft:purple_bed", + "minecraft:white_bed", + "minecraft:yellow_bed" + ], + "minecraft:walls": [ + "minecraft:cobblestone_wall", + "minecraft:mossy_cobblestone_wall", + "minecraft:brick_wall", + "minecraft:prismarine_wall", + "minecraft:red_sandstone_wall", + "minecraft:mossy_stone_brick_wall", + "minecraft:granite_wall", + "minecraft:stone_brick_wall", + "minecraft:nether_brick_wall", + "minecraft:andesite_wall", + "minecraft:red_nether_brick_wall", + "minecraft:sandstone_wall", + "minecraft:end_stone_brick_wall", + "minecraft:diorite_wall" + ], + "minecraft:rails": [ + "minecraft:rail", + "minecraft:powered_rail", + "minecraft:detector_rail", + "minecraft:activator_rail" + ], + "minecraft:beehives": [ + "minecraft:bee_nest", + "minecraft:beehive" + ], + "minecraft:birch_logs": [ + "minecraft:birch_log", + "minecraft:birch_wood", + "minecraft:stripped_birch_log", + "minecraft:stripped_birch_wood" + ], + "minecraft:wooden_trapdoors": [ + "minecraft:acacia_trapdoor", + "minecraft:birch_trapdoor", + "minecraft:dark_oak_trapdoor", + "minecraft:jungle_trapdoor", + "minecraft:oak_trapdoor", + "minecraft:spruce_trapdoor" + ], + "minecraft:wooden_fences": [ + "minecraft:oak_fence", + "minecraft:acacia_fence", + "minecraft:dark_oak_fence", + "minecraft:spruce_fence", + "minecraft:birch_fence", + "minecraft:jungle_fence" + ], + "minecraft:saplings": [ + "minecraft:oak_sapling", + "minecraft:spruce_sapling", + "minecraft:birch_sapling", + "minecraft:jungle_sapling", + "minecraft:acacia_sapling", + "minecraft:dark_oak_sapling" + ], + "minecraft:small_flowers": [ + "minecraft:dandelion", + "minecraft:poppy", + "minecraft:blue_orchid", + "minecraft:allium", + "minecraft:azure_bluet", + "minecraft:red_tulip", + "minecraft:orange_tulip", + "minecraft:white_tulip", + "minecraft:pink_tulip", + "minecraft:oxeye_daisy", + "minecraft:cornflower", + "minecraft:lily_of_the_valley", + "minecraft:wither_rose" + ], + "minecraft:crops": [ + "minecraft:beetroots", + "minecraft:carrots", + "minecraft:potatoes", + "minecraft:wheat", + "minecraft:melon_stem", + "minecraft:pumpkin_stem" + ], + "minecraft:bamboo_plantable_on": [ + "minecraft:bamboo", + "minecraft:bamboo_sapling", + "minecraft:gravel", + "minecraft:dirt", + "minecraft:grass_block", + "minecraft:podzol", + "minecraft:coarse_dirt", + "minecraft:mycelium", + "minecraft:sand", + "minecraft:red_sand" + ], + "minecraft:ice": [ + "minecraft:ice", + "minecraft:packed_ice", + "minecraft:blue_ice", + "minecraft:frosted_ice" + ], + "minecraft:wooden_stairs": [ + "minecraft:oak_stairs", + "minecraft:spruce_stairs", + "minecraft:birch_stairs", + "minecraft:jungle_stairs", + "minecraft:acacia_stairs", + "minecraft:dark_oak_stairs" + ], + "minecraft:anvil": [ + "minecraft:anvil", + "minecraft:chipped_anvil", + "minecraft:damaged_anvil" + ], + "minecraft:tall_flowers": [ + "minecraft:sunflower", + "minecraft:lilac", + "minecraft:peony", + "minecraft:rose_bush" + ], + "minecraft:logs": [ + "minecraft:dark_oak_log", + "minecraft:dark_oak_wood", + "minecraft:stripped_dark_oak_log", + "minecraft:stripped_dark_oak_wood", + "minecraft:oak_log", + "minecraft:oak_wood", + "minecraft:stripped_oak_log", + "minecraft:stripped_oak_wood", + "minecraft:acacia_log", + "minecraft:acacia_wood", + "minecraft:stripped_acacia_log", + "minecraft:stripped_acacia_wood", + "minecraft:birch_log", + "minecraft:birch_wood", + "minecraft:stripped_birch_log", + "minecraft:stripped_birch_wood", + "minecraft:jungle_log", + "minecraft:jungle_wood", + "minecraft:stripped_jungle_log", + "minecraft:stripped_jungle_wood", + "minecraft:spruce_log", + "minecraft:spruce_wood", + "minecraft:stripped_spruce_log", + "minecraft:stripped_spruce_wood" + ], + "minecraft:corals": [ + "minecraft:tube_coral_fan", + "minecraft:brain_coral_fan", + "minecraft:bubble_coral_fan", + "minecraft:fire_coral_fan", + "minecraft:horn_coral_fan", + "minecraft:tube_coral", + "minecraft:brain_coral", + "minecraft:bubble_coral", + "minecraft:fire_coral", + "minecraft:horn_coral" + ], + "minecraft:bee_growables": [ + "minecraft:sweet_berry_bush", + "minecraft:beetroots", + "minecraft:carrots", + "minecraft:potatoes", + "minecraft:wheat", + "minecraft:melon_stem", + "minecraft:pumpkin_stem" + ], + "minecraft:wooden_buttons": [ + "minecraft:oak_button", + "minecraft:spruce_button", + "minecraft:birch_button", + "minecraft:jungle_button", + "minecraft:acacia_button", + "minecraft:dark_oak_button" + ], + "minecraft:wool": [ + "minecraft:white_wool", + "minecraft:orange_wool", + "minecraft:magenta_wool", + "minecraft:light_blue_wool", + "minecraft:yellow_wool", + "minecraft:lime_wool", + "minecraft:pink_wool", + "minecraft:gray_wool", + "minecraft:light_gray_wool", + "minecraft:cyan_wool", + "minecraft:purple_wool", + "minecraft:blue_wool", + "minecraft:brown_wool", + "minecraft:green_wool", + "minecraft:red_wool", + "minecraft:black_wool" + ], + "minecraft:coral_plants": [ + "minecraft:tube_coral", + "minecraft:brain_coral", + "minecraft:bubble_coral", + "minecraft:fire_coral", + "minecraft:horn_coral" + ], + "minecraft:banners": [ + "minecraft:white_banner", + "minecraft:orange_banner", + "minecraft:magenta_banner", + "minecraft:light_blue_banner", + "minecraft:yellow_banner", + "minecraft:lime_banner", + "minecraft:pink_banner", + "minecraft:gray_banner", + "minecraft:light_gray_banner", + "minecraft:cyan_banner", + "minecraft:purple_banner", + "minecraft:blue_banner", + "minecraft:brown_banner", + "minecraft:green_banner", + "minecraft:red_banner", + "minecraft:black_banner", + "minecraft:white_wall_banner", + "minecraft:orange_wall_banner", + "minecraft:magenta_wall_banner", + "minecraft:light_blue_wall_banner", + "minecraft:yellow_wall_banner", + "minecraft:lime_wall_banner", + "minecraft:pink_wall_banner", + "minecraft:gray_wall_banner", + "minecraft:light_gray_wall_banner", + "minecraft:cyan_wall_banner", + "minecraft:purple_wall_banner", + "minecraft:blue_wall_banner", + "minecraft:brown_wall_banner", + "minecraft:green_wall_banner", + "minecraft:red_wall_banner", + "minecraft:black_wall_banner" + ], + "minecraft:dragon_immune": [ + "minecraft:barrier", + "minecraft:bedrock", + "minecraft:end_portal", + "minecraft:end_portal_frame", + "minecraft:end_gateway", + "minecraft:command_block", + "minecraft:repeating_command_block", + "minecraft:chain_command_block", + "minecraft:structure_block", + "minecraft:jigsaw", + "minecraft:moving_piston", + "minecraft:obsidian", + "minecraft:end_stone", + "minecraft:iron_bars" + ], + "minecraft:doors": [ + "minecraft:iron_door", + "minecraft:oak_door", + "minecraft:spruce_door", + "minecraft:birch_door", + "minecraft:jungle_door", + "minecraft:acacia_door", + "minecraft:dark_oak_door" + ], + "minecraft:portals": [ + "minecraft:nether_portal", + "minecraft:end_portal", + "minecraft:end_gateway" + ], + "minecraft:fences": [ + "minecraft:nether_brick_fence", + "minecraft:oak_fence", + "minecraft:acacia_fence", + "minecraft:dark_oak_fence", + "minecraft:spruce_fence", + "minecraft:birch_fence", + "minecraft:jungle_fence" + ], + "minecraft:wall_signs": [ + "minecraft:oak_wall_sign", + "minecraft:spruce_wall_sign", + "minecraft:birch_wall_sign", + "minecraft:acacia_wall_sign", + "minecraft:jungle_wall_sign", + "minecraft:dark_oak_wall_sign" + ], + "minecraft:standing_signs": [ + "minecraft:oak_sign", + "minecraft:spruce_sign", + "minecraft:birch_sign", + "minecraft:acacia_sign", + "minecraft:jungle_sign", + "minecraft:dark_oak_sign" + ], + "minecraft:impermeable": [ + "minecraft:glass", + "minecraft:white_stained_glass", + "minecraft:orange_stained_glass", + "minecraft:magenta_stained_glass", + "minecraft:light_blue_stained_glass", + "minecraft:yellow_stained_glass", + "minecraft:lime_stained_glass", + "minecraft:pink_stained_glass", + "minecraft:gray_stained_glass", + "minecraft:light_gray_stained_glass", + "minecraft:cyan_stained_glass", + "minecraft:purple_stained_glass", + "minecraft:blue_stained_glass", + "minecraft:brown_stained_glass", + "minecraft:green_stained_glass", + "minecraft:red_stained_glass", + "minecraft:black_stained_glass" + ], + "minecraft:trapdoors": [ + "minecraft:iron_trapdoor", + "minecraft:acacia_trapdoor", + "minecraft:birch_trapdoor", + "minecraft:dark_oak_trapdoor", + "minecraft:jungle_trapdoor", + "minecraft:oak_trapdoor", + "minecraft:spruce_trapdoor" + ], + "minecraft:leaves": [ + "minecraft:jungle_leaves", + "minecraft:oak_leaves", + "minecraft:spruce_leaves", + "minecraft:dark_oak_leaves", + "minecraft:acacia_leaves", + "minecraft:birch_leaves" + ] + }, + "itemtags": { + "minecraft:boats": [ + "minecraft:oak_boat", + "minecraft:spruce_boat", + "minecraft:birch_boat", + "minecraft:jungle_boat", + "minecraft:acacia_boat", + "minecraft:dark_oak_boat" + ], + "minecraft:banners": [ + "minecraft:white_banner", + "minecraft:orange_banner", + "minecraft:magenta_banner", + "minecraft:light_blue_banner", + "minecraft:yellow_banner", + "minecraft:lime_banner", + "minecraft:pink_banner", + "minecraft:gray_banner", + "minecraft:light_gray_banner", + "minecraft:cyan_banner", + "minecraft:purple_banner", + "minecraft:blue_banner", + "minecraft:brown_banner", + "minecraft:green_banner", + "minecraft:red_banner", + "minecraft:black_banner" + ], + "minecraft:arrows": [ + "minecraft:arrow", + "minecraft:tipped_arrow", + "minecraft:spectral_arrow" + ], + "minecraft:coals": [ + "minecraft:coal", + "minecraft:charcoal" + ], + "minecraft:music_discs": [ + "minecraft:music_disc_13", + "minecraft:music_disc_cat", + "minecraft:music_disc_blocks", + "minecraft:music_disc_chirp", + "minecraft:music_disc_far", + "minecraft:music_disc_mall", + "minecraft:music_disc_mellohi", + "minecraft:music_disc_stal", + "minecraft:music_disc_strad", + "minecraft:music_disc_ward", + "minecraft:music_disc_11", + "minecraft:music_disc_wait" + ], + "minecraft:fishes": [ + "minecraft:cod", + "minecraft:cooked_cod", + "minecraft:salmon", + "minecraft:cooked_salmon", + "minecraft:pufferfish", + "minecraft:tropical_fish" + ], + "minecraft:lectern_books": [ + "minecraft:written_book", + "minecraft:writable_book" + ] + }, + "entitytags": { + "minecraft:raiders": [ + "minecraft:evoker", + "minecraft:pillager", + "minecraft:ravager", + "minecraft:vindicator", + "minecraft:illusioner", + "minecraft:witch" + ], + "minecraft:skeletons": [ + "minecraft:skeleton", + "minecraft:stray", + "minecraft:wither_skeleton" + ], + "minecraft:arrows": [ + "minecraft:arrow", + "minecraft:spectral_arrow" + ], + "minecraft:beehive_inhabitors": [ + "minecraft:bee" + ] + } +} diff --git a/worldedit-cli/src/main/resources/com/sk89q/worldedit/cli/data/2230.json b/worldedit-cli/src/main/resources/com/sk89q/worldedit/cli/data/2230.json index cc5e1e775..f59d404c1 100644 --- a/worldedit-cli/src/main/resources/com/sk89q/worldedit/cli/data/2230.json +++ b/worldedit-cli/src/main/resources/com/sk89q/worldedit/cli/data/2230.json @@ -1 +1,13035 @@ -{"blocks":{"minecraft:acacia_button":{"properties":{"face":{"values":["floor","wall","ceiling"],"type":"enum"},"facing":{"values":["north","south","west","east"],"type":"direction"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:acacia_button[face=wall,facing=north,powered=false]"},"minecraft:acacia_door":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["upper","lower"],"type":"enum"},"hinge":{"values":["left","right"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:acacia_door[facing=north,half=lower,hinge=left,open=false,powered=false]"},"minecraft:acacia_fence":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:acacia_fence[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:acacia_fence_gate":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"in_wall":{"values":["true","false"],"type":"bool"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:acacia_fence_gate[facing=north,in_wall=false,open=false,powered=false]"},"minecraft:acacia_leaves":{"properties":{"distance":{"values":["1","2","3","4","5","6","7"],"type":"int"},"persistent":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:acacia_leaves[distance=7,persistent=false]"},"minecraft:acacia_log":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:acacia_log[axis=y]"},"minecraft:acacia_planks":{"properties":{},"defaultstate":"minecraft:acacia_planks"},"minecraft:acacia_pressure_plate":{"properties":{"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:acacia_pressure_plate[powered=false]"},"minecraft:acacia_sapling":{"properties":{"stage":{"values":["0","1"],"type":"int"}},"defaultstate":"minecraft:acacia_sapling[stage=0]"},"minecraft:acacia_sign":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:acacia_sign[rotation=0,waterlogged=false]"},"minecraft:acacia_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:acacia_slab[type=bottom,waterlogged=false]"},"minecraft:acacia_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:acacia_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:acacia_trapdoor":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:acacia_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]"},"minecraft:acacia_wall_sign":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:acacia_wall_sign[facing=north,waterlogged=false]"},"minecraft:acacia_wood":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:acacia_wood[axis=y]"},"minecraft:activator_rail":{"properties":{"powered":{"values":["true","false"],"type":"bool"},"shape":{"values":["north_south","east_west","ascending_east","ascending_west","ascending_north","ascending_south"],"type":"enum"}},"defaultstate":"minecraft:activator_rail[powered=false,shape=north_south]"},"minecraft:air":{"properties":{},"defaultstate":"minecraft:air"},"minecraft:allium":{"properties":{},"defaultstate":"minecraft:allium"},"minecraft:andesite":{"properties":{},"defaultstate":"minecraft:andesite"},"minecraft:andesite_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:andesite_slab[type=bottom,waterlogged=false]"},"minecraft:andesite_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:andesite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:andesite_wall":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:andesite_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]"},"minecraft:anvil":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:anvil[facing=north]"},"minecraft:attached_melon_stem":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:attached_melon_stem[facing=north]"},"minecraft:attached_pumpkin_stem":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:attached_pumpkin_stem[facing=north]"},"minecraft:azure_bluet":{"properties":{},"defaultstate":"minecraft:azure_bluet"},"minecraft:bamboo":{"properties":{"age":{"values":["0","1"],"type":"int"},"leaves":{"values":["none","small","large"],"type":"enum"},"stage":{"values":["0","1"],"type":"int"}},"defaultstate":"minecraft:bamboo[age=0,leaves=none,stage=0]"},"minecraft:bamboo_sapling":{"properties":{},"defaultstate":"minecraft:bamboo_sapling"},"minecraft:barrel":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"},"open":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:barrel[facing=north,open=false]"},"minecraft:barrier":{"properties":{},"defaultstate":"minecraft:barrier"},"minecraft:beacon":{"properties":{},"defaultstate":"minecraft:beacon"},"minecraft:bedrock":{"properties":{},"defaultstate":"minecraft:bedrock"},"minecraft:bee_nest":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"honey_level":{"values":["0","1","2","3","4","5"],"type":"int"}},"defaultstate":"minecraft:bee_nest[facing=north,honey_level=0]"},"minecraft:beehive":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"honey_level":{"values":["0","1","2","3","4","5"],"type":"int"}},"defaultstate":"minecraft:beehive[facing=north,honey_level=0]"},"minecraft:beetroots":{"properties":{"age":{"values":["0","1","2","3"],"type":"int"}},"defaultstate":"minecraft:beetroots[age=0]"},"minecraft:bell":{"properties":{"attachment":{"values":["floor","ceiling","single_wall","double_wall"],"type":"enum"},"facing":{"values":["north","south","west","east"],"type":"direction"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:bell[attachment=floor,facing=north,powered=false]"},"minecraft:birch_button":{"properties":{"face":{"values":["floor","wall","ceiling"],"type":"enum"},"facing":{"values":["north","south","west","east"],"type":"direction"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:birch_button[face=wall,facing=north,powered=false]"},"minecraft:birch_door":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["upper","lower"],"type":"enum"},"hinge":{"values":["left","right"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:birch_door[facing=north,half=lower,hinge=left,open=false,powered=false]"},"minecraft:birch_fence":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:birch_fence[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:birch_fence_gate":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"in_wall":{"values":["true","false"],"type":"bool"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:birch_fence_gate[facing=north,in_wall=false,open=false,powered=false]"},"minecraft:birch_leaves":{"properties":{"distance":{"values":["1","2","3","4","5","6","7"],"type":"int"},"persistent":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:birch_leaves[distance=7,persistent=false]"},"minecraft:birch_log":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:birch_log[axis=y]"},"minecraft:birch_planks":{"properties":{},"defaultstate":"minecraft:birch_planks"},"minecraft:birch_pressure_plate":{"properties":{"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:birch_pressure_plate[powered=false]"},"minecraft:birch_sapling":{"properties":{"stage":{"values":["0","1"],"type":"int"}},"defaultstate":"minecraft:birch_sapling[stage=0]"},"minecraft:birch_sign":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:birch_sign[rotation=0,waterlogged=false]"},"minecraft:birch_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:birch_slab[type=bottom,waterlogged=false]"},"minecraft:birch_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:birch_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:birch_trapdoor":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:birch_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]"},"minecraft:birch_wall_sign":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:birch_wall_sign[facing=north,waterlogged=false]"},"minecraft:birch_wood":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:birch_wood[axis=y]"},"minecraft:black_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:black_banner[rotation=0]"},"minecraft:black_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:black_bed[facing=north,occupied=false,part=foot]"},"minecraft:black_carpet":{"properties":{},"defaultstate":"minecraft:black_carpet"},"minecraft:black_concrete":{"properties":{},"defaultstate":"minecraft:black_concrete"},"minecraft:black_concrete_powder":{"properties":{},"defaultstate":"minecraft:black_concrete_powder"},"minecraft:black_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:black_glazed_terracotta[facing=north]"},"minecraft:black_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:black_shulker_box[facing=up]"},"minecraft:black_stained_glass":{"properties":{},"defaultstate":"minecraft:black_stained_glass"},"minecraft:black_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:black_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:black_terracotta":{"properties":{},"defaultstate":"minecraft:black_terracotta"},"minecraft:black_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:black_wall_banner[facing=north]"},"minecraft:black_wool":{"properties":{},"defaultstate":"minecraft:black_wool"},"minecraft:blast_furnace":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"lit":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:blast_furnace[facing=north,lit=false]"},"minecraft:blue_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:blue_banner[rotation=0]"},"minecraft:blue_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:blue_bed[facing=north,occupied=false,part=foot]"},"minecraft:blue_carpet":{"properties":{},"defaultstate":"minecraft:blue_carpet"},"minecraft:blue_concrete":{"properties":{},"defaultstate":"minecraft:blue_concrete"},"minecraft:blue_concrete_powder":{"properties":{},"defaultstate":"minecraft:blue_concrete_powder"},"minecraft:blue_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:blue_glazed_terracotta[facing=north]"},"minecraft:blue_ice":{"properties":{},"defaultstate":"minecraft:blue_ice"},"minecraft:blue_orchid":{"properties":{},"defaultstate":"minecraft:blue_orchid"},"minecraft:blue_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:blue_shulker_box[facing=up]"},"minecraft:blue_stained_glass":{"properties":{},"defaultstate":"minecraft:blue_stained_glass"},"minecraft:blue_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:blue_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:blue_terracotta":{"properties":{},"defaultstate":"minecraft:blue_terracotta"},"minecraft:blue_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:blue_wall_banner[facing=north]"},"minecraft:blue_wool":{"properties":{},"defaultstate":"minecraft:blue_wool"},"minecraft:bone_block":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:bone_block[axis=y]"},"minecraft:bookshelf":{"properties":{},"defaultstate":"minecraft:bookshelf"},"minecraft:brain_coral":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:brain_coral[waterlogged=true]"},"minecraft:brain_coral_block":{"properties":{},"defaultstate":"minecraft:brain_coral_block"},"minecraft:brain_coral_fan":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:brain_coral_fan[waterlogged=true]"},"minecraft:brain_coral_wall_fan":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:brain_coral_wall_fan[facing=north,waterlogged=true]"},"minecraft:brewing_stand":{"properties":{"has_bottle_0":{"values":["true","false"],"type":"bool"},"has_bottle_1":{"values":["true","false"],"type":"bool"},"has_bottle_2":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:brewing_stand[has_bottle_0=false,has_bottle_1=false,has_bottle_2=false]"},"minecraft:brick_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:brick_slab[type=bottom,waterlogged=false]"},"minecraft:brick_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:brick_wall":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:brick_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]"},"minecraft:bricks":{"properties":{},"defaultstate":"minecraft:bricks"},"minecraft:brown_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:brown_banner[rotation=0]"},"minecraft:brown_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:brown_bed[facing=north,occupied=false,part=foot]"},"minecraft:brown_carpet":{"properties":{},"defaultstate":"minecraft:brown_carpet"},"minecraft:brown_concrete":{"properties":{},"defaultstate":"minecraft:brown_concrete"},"minecraft:brown_concrete_powder":{"properties":{},"defaultstate":"minecraft:brown_concrete_powder"},"minecraft:brown_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:brown_glazed_terracotta[facing=north]"},"minecraft:brown_mushroom":{"properties":{},"defaultstate":"minecraft:brown_mushroom"},"minecraft:brown_mushroom_block":{"properties":{"down":{"values":["true","false"],"type":"bool"},"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:brown_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true]"},"minecraft:brown_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:brown_shulker_box[facing=up]"},"minecraft:brown_stained_glass":{"properties":{},"defaultstate":"minecraft:brown_stained_glass"},"minecraft:brown_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:brown_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:brown_terracotta":{"properties":{},"defaultstate":"minecraft:brown_terracotta"},"minecraft:brown_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:brown_wall_banner[facing=north]"},"minecraft:brown_wool":{"properties":{},"defaultstate":"minecraft:brown_wool"},"minecraft:bubble_column":{"properties":{"drag":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:bubble_column[drag=true]"},"minecraft:bubble_coral":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:bubble_coral[waterlogged=true]"},"minecraft:bubble_coral_block":{"properties":{},"defaultstate":"minecraft:bubble_coral_block"},"minecraft:bubble_coral_fan":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:bubble_coral_fan[waterlogged=true]"},"minecraft:bubble_coral_wall_fan":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:bubble_coral_wall_fan[facing=north,waterlogged=true]"},"minecraft:cactus":{"properties":{"age":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:cactus[age=0]"},"minecraft:cake":{"properties":{"bites":{"values":["0","1","2","3","4","5","6"],"type":"int"}},"defaultstate":"minecraft:cake[bites=0]"},"minecraft:campfire":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"lit":{"values":["true","false"],"type":"bool"},"signal_fire":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:campfire[facing=north,lit=true,signal_fire=false,waterlogged=false]"},"minecraft:carrots":{"properties":{"age":{"values":["0","1","2","3","4","5","6","7"],"type":"int"}},"defaultstate":"minecraft:carrots[age=0]"},"minecraft:cartography_table":{"properties":{},"defaultstate":"minecraft:cartography_table"},"minecraft:carved_pumpkin":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:carved_pumpkin[facing=north]"},"minecraft:cauldron":{"properties":{"level":{"values":["0","1","2","3"],"type":"int"}},"defaultstate":"minecraft:cauldron[level=0]"},"minecraft:cave_air":{"properties":{},"defaultstate":"minecraft:cave_air"},"minecraft:chain_command_block":{"properties":{"conditional":{"values":["true","false"],"type":"bool"},"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:chain_command_block[conditional=false,facing=north]"},"minecraft:chest":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"type":{"values":["single","left","right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:chest[facing=north,type=single,waterlogged=false]"},"minecraft:chipped_anvil":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:chipped_anvil[facing=north]"},"minecraft:chiseled_quartz_block":{"properties":{},"defaultstate":"minecraft:chiseled_quartz_block"},"minecraft:chiseled_red_sandstone":{"properties":{},"defaultstate":"minecraft:chiseled_red_sandstone"},"minecraft:chiseled_sandstone":{"properties":{},"defaultstate":"minecraft:chiseled_sandstone"},"minecraft:chiseled_stone_bricks":{"properties":{},"defaultstate":"minecraft:chiseled_stone_bricks"},"minecraft:chorus_flower":{"properties":{"age":{"values":["0","1","2","3","4","5"],"type":"int"}},"defaultstate":"minecraft:chorus_flower[age=0]"},"minecraft:chorus_plant":{"properties":{"down":{"values":["true","false"],"type":"bool"},"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:chorus_plant[down=false,east=false,north=false,south=false,up=false,west=false]"},"minecraft:clay":{"properties":{},"defaultstate":"minecraft:clay"},"minecraft:coal_block":{"properties":{},"defaultstate":"minecraft:coal_block"},"minecraft:coal_ore":{"properties":{},"defaultstate":"minecraft:coal_ore"},"minecraft:coarse_dirt":{"properties":{},"defaultstate":"minecraft:coarse_dirt"},"minecraft:cobblestone":{"properties":{},"defaultstate":"minecraft:cobblestone"},"minecraft:cobblestone_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:cobblestone_slab[type=bottom,waterlogged=false]"},"minecraft:cobblestone_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:cobblestone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:cobblestone_wall":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:cobblestone_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]"},"minecraft:cobweb":{"properties":{},"defaultstate":"minecraft:cobweb"},"minecraft:cocoa":{"properties":{"age":{"values":["0","1","2"],"type":"int"},"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:cocoa[age=0,facing=north]"},"minecraft:command_block":{"properties":{"conditional":{"values":["true","false"],"type":"bool"},"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:command_block[conditional=false,facing=north]"},"minecraft:comparator":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"mode":{"values":["compare","subtract"],"type":"enum"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:comparator[facing=north,mode=compare,powered=false]"},"minecraft:composter":{"properties":{"level":{"values":["0","1","2","3","4","5","6","7","8"],"type":"int"}},"defaultstate":"minecraft:composter[level=0]"},"minecraft:conduit":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:conduit[waterlogged=true]"},"minecraft:cornflower":{"properties":{},"defaultstate":"minecraft:cornflower"},"minecraft:cracked_stone_bricks":{"properties":{},"defaultstate":"minecraft:cracked_stone_bricks"},"minecraft:crafting_table":{"properties":{},"defaultstate":"minecraft:crafting_table"},"minecraft:creeper_head":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:creeper_head[rotation=0]"},"minecraft:creeper_wall_head":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:creeper_wall_head[facing=north]"},"minecraft:cut_red_sandstone":{"properties":{},"defaultstate":"minecraft:cut_red_sandstone"},"minecraft:cut_red_sandstone_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:cut_red_sandstone_slab[type=bottom,waterlogged=false]"},"minecraft:cut_sandstone":{"properties":{},"defaultstate":"minecraft:cut_sandstone"},"minecraft:cut_sandstone_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:cut_sandstone_slab[type=bottom,waterlogged=false]"},"minecraft:cyan_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:cyan_banner[rotation=0]"},"minecraft:cyan_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:cyan_bed[facing=north,occupied=false,part=foot]"},"minecraft:cyan_carpet":{"properties":{},"defaultstate":"minecraft:cyan_carpet"},"minecraft:cyan_concrete":{"properties":{},"defaultstate":"minecraft:cyan_concrete"},"minecraft:cyan_concrete_powder":{"properties":{},"defaultstate":"minecraft:cyan_concrete_powder"},"minecraft:cyan_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:cyan_glazed_terracotta[facing=north]"},"minecraft:cyan_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:cyan_shulker_box[facing=up]"},"minecraft:cyan_stained_glass":{"properties":{},"defaultstate":"minecraft:cyan_stained_glass"},"minecraft:cyan_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:cyan_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:cyan_terracotta":{"properties":{},"defaultstate":"minecraft:cyan_terracotta"},"minecraft:cyan_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:cyan_wall_banner[facing=north]"},"minecraft:cyan_wool":{"properties":{},"defaultstate":"minecraft:cyan_wool"},"minecraft:damaged_anvil":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:damaged_anvil[facing=north]"},"minecraft:dandelion":{"properties":{},"defaultstate":"minecraft:dandelion"},"minecraft:dark_oak_button":{"properties":{"face":{"values":["floor","wall","ceiling"],"type":"enum"},"facing":{"values":["north","south","west","east"],"type":"direction"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dark_oak_button[face=wall,facing=north,powered=false]"},"minecraft:dark_oak_door":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["upper","lower"],"type":"enum"},"hinge":{"values":["left","right"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dark_oak_door[facing=north,half=lower,hinge=left,open=false,powered=false]"},"minecraft:dark_oak_fence":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dark_oak_fence[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:dark_oak_fence_gate":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"in_wall":{"values":["true","false"],"type":"bool"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dark_oak_fence_gate[facing=north,in_wall=false,open=false,powered=false]"},"minecraft:dark_oak_leaves":{"properties":{"distance":{"values":["1","2","3","4","5","6","7"],"type":"int"},"persistent":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dark_oak_leaves[distance=7,persistent=false]"},"minecraft:dark_oak_log":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:dark_oak_log[axis=y]"},"minecraft:dark_oak_planks":{"properties":{},"defaultstate":"minecraft:dark_oak_planks"},"minecraft:dark_oak_pressure_plate":{"properties":{"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dark_oak_pressure_plate[powered=false]"},"minecraft:dark_oak_sapling":{"properties":{"stage":{"values":["0","1"],"type":"int"}},"defaultstate":"minecraft:dark_oak_sapling[stage=0]"},"minecraft:dark_oak_sign":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dark_oak_sign[rotation=0,waterlogged=false]"},"minecraft:dark_oak_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dark_oak_slab[type=bottom,waterlogged=false]"},"minecraft:dark_oak_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dark_oak_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:dark_oak_trapdoor":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dark_oak_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]"},"minecraft:dark_oak_wall_sign":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dark_oak_wall_sign[facing=north,waterlogged=false]"},"minecraft:dark_oak_wood":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:dark_oak_wood[axis=y]"},"minecraft:dark_prismarine":{"properties":{},"defaultstate":"minecraft:dark_prismarine"},"minecraft:dark_prismarine_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dark_prismarine_slab[type=bottom,waterlogged=false]"},"minecraft:dark_prismarine_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dark_prismarine_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:daylight_detector":{"properties":{"inverted":{"values":["true","false"],"type":"bool"},"power":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:daylight_detector[inverted=false,power=0]"},"minecraft:dead_brain_coral":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_brain_coral[waterlogged=true]"},"minecraft:dead_brain_coral_block":{"properties":{},"defaultstate":"minecraft:dead_brain_coral_block"},"minecraft:dead_brain_coral_fan":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_brain_coral_fan[waterlogged=true]"},"minecraft:dead_brain_coral_wall_fan":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_brain_coral_wall_fan[facing=north,waterlogged=true]"},"minecraft:dead_bubble_coral":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_bubble_coral[waterlogged=true]"},"minecraft:dead_bubble_coral_block":{"properties":{},"defaultstate":"minecraft:dead_bubble_coral_block"},"minecraft:dead_bubble_coral_fan":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_bubble_coral_fan[waterlogged=true]"},"minecraft:dead_bubble_coral_wall_fan":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_bubble_coral_wall_fan[facing=north,waterlogged=true]"},"minecraft:dead_bush":{"properties":{},"defaultstate":"minecraft:dead_bush"},"minecraft:dead_fire_coral":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_fire_coral[waterlogged=true]"},"minecraft:dead_fire_coral_block":{"properties":{},"defaultstate":"minecraft:dead_fire_coral_block"},"minecraft:dead_fire_coral_fan":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_fire_coral_fan[waterlogged=true]"},"minecraft:dead_fire_coral_wall_fan":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_fire_coral_wall_fan[facing=north,waterlogged=true]"},"minecraft:dead_horn_coral":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_horn_coral[waterlogged=true]"},"minecraft:dead_horn_coral_block":{"properties":{},"defaultstate":"minecraft:dead_horn_coral_block"},"minecraft:dead_horn_coral_fan":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_horn_coral_fan[waterlogged=true]"},"minecraft:dead_horn_coral_wall_fan":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_horn_coral_wall_fan[facing=north,waterlogged=true]"},"minecraft:dead_tube_coral":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_tube_coral[waterlogged=true]"},"minecraft:dead_tube_coral_block":{"properties":{},"defaultstate":"minecraft:dead_tube_coral_block"},"minecraft:dead_tube_coral_fan":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_tube_coral_fan[waterlogged=true]"},"minecraft:dead_tube_coral_wall_fan":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_tube_coral_wall_fan[facing=north,waterlogged=true]"},"minecraft:detector_rail":{"properties":{"powered":{"values":["true","false"],"type":"bool"},"shape":{"values":["north_south","east_west","ascending_east","ascending_west","ascending_north","ascending_south"],"type":"enum"}},"defaultstate":"minecraft:detector_rail[powered=false,shape=north_south]"},"minecraft:diamond_block":{"properties":{},"defaultstate":"minecraft:diamond_block"},"minecraft:diamond_ore":{"properties":{},"defaultstate":"minecraft:diamond_ore"},"minecraft:diorite":{"properties":{},"defaultstate":"minecraft:diorite"},"minecraft:diorite_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:diorite_slab[type=bottom,waterlogged=false]"},"minecraft:diorite_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:diorite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:diorite_wall":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:diorite_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]"},"minecraft:dirt":{"properties":{},"defaultstate":"minecraft:dirt"},"minecraft:dispenser":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"},"triggered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dispenser[facing=north,triggered=false]"},"minecraft:dragon_egg":{"properties":{},"defaultstate":"minecraft:dragon_egg"},"minecraft:dragon_head":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:dragon_head[rotation=0]"},"minecraft:dragon_wall_head":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:dragon_wall_head[facing=north]"},"minecraft:dried_kelp_block":{"properties":{},"defaultstate":"minecraft:dried_kelp_block"},"minecraft:dropper":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"},"triggered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dropper[facing=north,triggered=false]"},"minecraft:emerald_block":{"properties":{},"defaultstate":"minecraft:emerald_block"},"minecraft:emerald_ore":{"properties":{},"defaultstate":"minecraft:emerald_ore"},"minecraft:enchanting_table":{"properties":{},"defaultstate":"minecraft:enchanting_table"},"minecraft:end_gateway":{"properties":{},"defaultstate":"minecraft:end_gateway"},"minecraft:end_portal":{"properties":{},"defaultstate":"minecraft:end_portal"},"minecraft:end_portal_frame":{"properties":{"eye":{"values":["true","false"],"type":"bool"},"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:end_portal_frame[eye=false,facing=north]"},"minecraft:end_rod":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:end_rod[facing=up]"},"minecraft:end_stone":{"properties":{},"defaultstate":"minecraft:end_stone"},"minecraft:end_stone_brick_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:end_stone_brick_slab[type=bottom,waterlogged=false]"},"minecraft:end_stone_brick_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:end_stone_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:end_stone_brick_wall":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:end_stone_brick_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]"},"minecraft:end_stone_bricks":{"properties":{},"defaultstate":"minecraft:end_stone_bricks"},"minecraft:ender_chest":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:ender_chest[facing=north,waterlogged=false]"},"minecraft:farmland":{"properties":{"moisture":{"values":["0","1","2","3","4","5","6","7"],"type":"int"}},"defaultstate":"minecraft:farmland[moisture=0]"},"minecraft:fern":{"properties":{},"defaultstate":"minecraft:fern"},"minecraft:fire":{"properties":{"age":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"},"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:fire[age=0,east=false,north=false,south=false,up=false,west=false]"},"minecraft:fire_coral":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:fire_coral[waterlogged=true]"},"minecraft:fire_coral_block":{"properties":{},"defaultstate":"minecraft:fire_coral_block"},"minecraft:fire_coral_fan":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:fire_coral_fan[waterlogged=true]"},"minecraft:fire_coral_wall_fan":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:fire_coral_wall_fan[facing=north,waterlogged=true]"},"minecraft:fletching_table":{"properties":{},"defaultstate":"minecraft:fletching_table"},"minecraft:flower_pot":{"properties":{},"defaultstate":"minecraft:flower_pot"},"minecraft:frosted_ice":{"properties":{"age":{"values":["0","1","2","3"],"type":"int"}},"defaultstate":"minecraft:frosted_ice[age=0]"},"minecraft:furnace":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"lit":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:furnace[facing=north,lit=false]"},"minecraft:glass":{"properties":{},"defaultstate":"minecraft:glass"},"minecraft:glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:glowstone":{"properties":{},"defaultstate":"minecraft:glowstone"},"minecraft:gold_block":{"properties":{},"defaultstate":"minecraft:gold_block"},"minecraft:gold_ore":{"properties":{},"defaultstate":"minecraft:gold_ore"},"minecraft:granite":{"properties":{},"defaultstate":"minecraft:granite"},"minecraft:granite_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:granite_slab[type=bottom,waterlogged=false]"},"minecraft:granite_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:granite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:granite_wall":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:granite_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]"},"minecraft:grass":{"properties":{},"defaultstate":"minecraft:grass"},"minecraft:grass_block":{"properties":{"snowy":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:grass_block[snowy=false]"},"minecraft:grass_path":{"properties":{},"defaultstate":"minecraft:grass_path"},"minecraft:gravel":{"properties":{},"defaultstate":"minecraft:gravel"},"minecraft:gray_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:gray_banner[rotation=0]"},"minecraft:gray_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:gray_bed[facing=north,occupied=false,part=foot]"},"minecraft:gray_carpet":{"properties":{},"defaultstate":"minecraft:gray_carpet"},"minecraft:gray_concrete":{"properties":{},"defaultstate":"minecraft:gray_concrete"},"minecraft:gray_concrete_powder":{"properties":{},"defaultstate":"minecraft:gray_concrete_powder"},"minecraft:gray_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:gray_glazed_terracotta[facing=north]"},"minecraft:gray_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:gray_shulker_box[facing=up]"},"minecraft:gray_stained_glass":{"properties":{},"defaultstate":"minecraft:gray_stained_glass"},"minecraft:gray_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:gray_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:gray_terracotta":{"properties":{},"defaultstate":"minecraft:gray_terracotta"},"minecraft:gray_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:gray_wall_banner[facing=north]"},"minecraft:gray_wool":{"properties":{},"defaultstate":"minecraft:gray_wool"},"minecraft:green_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:green_banner[rotation=0]"},"minecraft:green_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:green_bed[facing=north,occupied=false,part=foot]"},"minecraft:green_carpet":{"properties":{},"defaultstate":"minecraft:green_carpet"},"minecraft:green_concrete":{"properties":{},"defaultstate":"minecraft:green_concrete"},"minecraft:green_concrete_powder":{"properties":{},"defaultstate":"minecraft:green_concrete_powder"},"minecraft:green_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:green_glazed_terracotta[facing=north]"},"minecraft:green_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:green_shulker_box[facing=up]"},"minecraft:green_stained_glass":{"properties":{},"defaultstate":"minecraft:green_stained_glass"},"minecraft:green_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:green_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:green_terracotta":{"properties":{},"defaultstate":"minecraft:green_terracotta"},"minecraft:green_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:green_wall_banner[facing=north]"},"minecraft:green_wool":{"properties":{},"defaultstate":"minecraft:green_wool"},"minecraft:grindstone":{"properties":{"face":{"values":["floor","wall","ceiling"],"type":"enum"},"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:grindstone[face=wall,facing=north]"},"minecraft:hay_block":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:hay_block[axis=y]"},"minecraft:heavy_weighted_pressure_plate":{"properties":{"power":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:heavy_weighted_pressure_plate[power=0]"},"minecraft:honey_block":{"properties":{},"defaultstate":"minecraft:honey_block"},"minecraft:honeycomb_block":{"properties":{},"defaultstate":"minecraft:honeycomb_block"},"minecraft:hopper":{"properties":{"enabled":{"values":["true","false"],"type":"bool"},"facing":{"values":["down","north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:hopper[enabled=true,facing=down]"},"minecraft:horn_coral":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:horn_coral[waterlogged=true]"},"minecraft:horn_coral_block":{"properties":{},"defaultstate":"minecraft:horn_coral_block"},"minecraft:horn_coral_fan":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:horn_coral_fan[waterlogged=true]"},"minecraft:horn_coral_wall_fan":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:horn_coral_wall_fan[facing=north,waterlogged=true]"},"minecraft:ice":{"properties":{},"defaultstate":"minecraft:ice"},"minecraft:infested_chiseled_stone_bricks":{"properties":{},"defaultstate":"minecraft:infested_chiseled_stone_bricks"},"minecraft:infested_cobblestone":{"properties":{},"defaultstate":"minecraft:infested_cobblestone"},"minecraft:infested_cracked_stone_bricks":{"properties":{},"defaultstate":"minecraft:infested_cracked_stone_bricks"},"minecraft:infested_mossy_stone_bricks":{"properties":{},"defaultstate":"minecraft:infested_mossy_stone_bricks"},"minecraft:infested_stone":{"properties":{},"defaultstate":"minecraft:infested_stone"},"minecraft:infested_stone_bricks":{"properties":{},"defaultstate":"minecraft:infested_stone_bricks"},"minecraft:iron_bars":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:iron_bars[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:iron_block":{"properties":{},"defaultstate":"minecraft:iron_block"},"minecraft:iron_door":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["upper","lower"],"type":"enum"},"hinge":{"values":["left","right"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:iron_door[facing=north,half=lower,hinge=left,open=false,powered=false]"},"minecraft:iron_ore":{"properties":{},"defaultstate":"minecraft:iron_ore"},"minecraft:iron_trapdoor":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:iron_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]"},"minecraft:jack_o_lantern":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:jack_o_lantern[facing=north]"},"minecraft:jigsaw":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:jigsaw[facing=up]"},"minecraft:jukebox":{"properties":{"has_record":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:jukebox[has_record=false]"},"minecraft:jungle_button":{"properties":{"face":{"values":["floor","wall","ceiling"],"type":"enum"},"facing":{"values":["north","south","west","east"],"type":"direction"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:jungle_button[face=wall,facing=north,powered=false]"},"minecraft:jungle_door":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["upper","lower"],"type":"enum"},"hinge":{"values":["left","right"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:jungle_door[facing=north,half=lower,hinge=left,open=false,powered=false]"},"minecraft:jungle_fence":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:jungle_fence[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:jungle_fence_gate":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"in_wall":{"values":["true","false"],"type":"bool"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:jungle_fence_gate[facing=north,in_wall=false,open=false,powered=false]"},"minecraft:jungle_leaves":{"properties":{"distance":{"values":["1","2","3","4","5","6","7"],"type":"int"},"persistent":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:jungle_leaves[distance=7,persistent=false]"},"minecraft:jungle_log":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:jungle_log[axis=y]"},"minecraft:jungle_planks":{"properties":{},"defaultstate":"minecraft:jungle_planks"},"minecraft:jungle_pressure_plate":{"properties":{"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:jungle_pressure_plate[powered=false]"},"minecraft:jungle_sapling":{"properties":{"stage":{"values":["0","1"],"type":"int"}},"defaultstate":"minecraft:jungle_sapling[stage=0]"},"minecraft:jungle_sign":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:jungle_sign[rotation=0,waterlogged=false]"},"minecraft:jungle_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:jungle_slab[type=bottom,waterlogged=false]"},"minecraft:jungle_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:jungle_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:jungle_trapdoor":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:jungle_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]"},"minecraft:jungle_wall_sign":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:jungle_wall_sign[facing=north,waterlogged=false]"},"minecraft:jungle_wood":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:jungle_wood[axis=y]"},"minecraft:kelp":{"properties":{"age":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25"],"type":"int"}},"defaultstate":"minecraft:kelp[age=0]"},"minecraft:kelp_plant":{"properties":{},"defaultstate":"minecraft:kelp_plant"},"minecraft:ladder":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:ladder[facing=north,waterlogged=false]"},"minecraft:lantern":{"properties":{"hanging":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:lantern[hanging=false]"},"minecraft:lapis_block":{"properties":{},"defaultstate":"minecraft:lapis_block"},"minecraft:lapis_ore":{"properties":{},"defaultstate":"minecraft:lapis_ore"},"minecraft:large_fern":{"properties":{"half":{"values":["upper","lower"],"type":"enum"}},"defaultstate":"minecraft:large_fern[half=lower]"},"minecraft:lava":{"properties":{"level":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:lava[level=0]"},"minecraft:lectern":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"has_book":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:lectern[facing=north,has_book=false,powered=false]"},"minecraft:lever":{"properties":{"face":{"values":["floor","wall","ceiling"],"type":"enum"},"facing":{"values":["north","south","west","east"],"type":"direction"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:lever[face=wall,facing=north,powered=false]"},"minecraft:light_blue_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:light_blue_banner[rotation=0]"},"minecraft:light_blue_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:light_blue_bed[facing=north,occupied=false,part=foot]"},"minecraft:light_blue_carpet":{"properties":{},"defaultstate":"minecraft:light_blue_carpet"},"minecraft:light_blue_concrete":{"properties":{},"defaultstate":"minecraft:light_blue_concrete"},"minecraft:light_blue_concrete_powder":{"properties":{},"defaultstate":"minecraft:light_blue_concrete_powder"},"minecraft:light_blue_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:light_blue_glazed_terracotta[facing=north]"},"minecraft:light_blue_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:light_blue_shulker_box[facing=up]"},"minecraft:light_blue_stained_glass":{"properties":{},"defaultstate":"minecraft:light_blue_stained_glass"},"minecraft:light_blue_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:light_blue_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:light_blue_terracotta":{"properties":{},"defaultstate":"minecraft:light_blue_terracotta"},"minecraft:light_blue_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:light_blue_wall_banner[facing=north]"},"minecraft:light_blue_wool":{"properties":{},"defaultstate":"minecraft:light_blue_wool"},"minecraft:light_gray_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:light_gray_banner[rotation=0]"},"minecraft:light_gray_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:light_gray_bed[facing=north,occupied=false,part=foot]"},"minecraft:light_gray_carpet":{"properties":{},"defaultstate":"minecraft:light_gray_carpet"},"minecraft:light_gray_concrete":{"properties":{},"defaultstate":"minecraft:light_gray_concrete"},"minecraft:light_gray_concrete_powder":{"properties":{},"defaultstate":"minecraft:light_gray_concrete_powder"},"minecraft:light_gray_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:light_gray_glazed_terracotta[facing=north]"},"minecraft:light_gray_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:light_gray_shulker_box[facing=up]"},"minecraft:light_gray_stained_glass":{"properties":{},"defaultstate":"minecraft:light_gray_stained_glass"},"minecraft:light_gray_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:light_gray_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:light_gray_terracotta":{"properties":{},"defaultstate":"minecraft:light_gray_terracotta"},"minecraft:light_gray_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:light_gray_wall_banner[facing=north]"},"minecraft:light_gray_wool":{"properties":{},"defaultstate":"minecraft:light_gray_wool"},"minecraft:light_weighted_pressure_plate":{"properties":{"power":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:light_weighted_pressure_plate[power=0]"},"minecraft:lilac":{"properties":{"half":{"values":["upper","lower"],"type":"enum"}},"defaultstate":"minecraft:lilac[half=lower]"},"minecraft:lily_of_the_valley":{"properties":{},"defaultstate":"minecraft:lily_of_the_valley"},"minecraft:lily_pad":{"properties":{},"defaultstate":"minecraft:lily_pad"},"minecraft:lime_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:lime_banner[rotation=0]"},"minecraft:lime_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:lime_bed[facing=north,occupied=false,part=foot]"},"minecraft:lime_carpet":{"properties":{},"defaultstate":"minecraft:lime_carpet"},"minecraft:lime_concrete":{"properties":{},"defaultstate":"minecraft:lime_concrete"},"minecraft:lime_concrete_powder":{"properties":{},"defaultstate":"minecraft:lime_concrete_powder"},"minecraft:lime_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:lime_glazed_terracotta[facing=north]"},"minecraft:lime_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:lime_shulker_box[facing=up]"},"minecraft:lime_stained_glass":{"properties":{},"defaultstate":"minecraft:lime_stained_glass"},"minecraft:lime_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:lime_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:lime_terracotta":{"properties":{},"defaultstate":"minecraft:lime_terracotta"},"minecraft:lime_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:lime_wall_banner[facing=north]"},"minecraft:lime_wool":{"properties":{},"defaultstate":"minecraft:lime_wool"},"minecraft:loom":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:loom[facing=north]"},"minecraft:magenta_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:magenta_banner[rotation=0]"},"minecraft:magenta_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:magenta_bed[facing=north,occupied=false,part=foot]"},"minecraft:magenta_carpet":{"properties":{},"defaultstate":"minecraft:magenta_carpet"},"minecraft:magenta_concrete":{"properties":{},"defaultstate":"minecraft:magenta_concrete"},"minecraft:magenta_concrete_powder":{"properties":{},"defaultstate":"minecraft:magenta_concrete_powder"},"minecraft:magenta_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:magenta_glazed_terracotta[facing=north]"},"minecraft:magenta_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:magenta_shulker_box[facing=up]"},"minecraft:magenta_stained_glass":{"properties":{},"defaultstate":"minecraft:magenta_stained_glass"},"minecraft:magenta_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:magenta_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:magenta_terracotta":{"properties":{},"defaultstate":"minecraft:magenta_terracotta"},"minecraft:magenta_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:magenta_wall_banner[facing=north]"},"minecraft:magenta_wool":{"properties":{},"defaultstate":"minecraft:magenta_wool"},"minecraft:magma_block":{"properties":{},"defaultstate":"minecraft:magma_block"},"minecraft:melon":{"properties":{},"defaultstate":"minecraft:melon"},"minecraft:melon_stem":{"properties":{"age":{"values":["0","1","2","3","4","5","6","7"],"type":"int"}},"defaultstate":"minecraft:melon_stem[age=0]"},"minecraft:mossy_cobblestone":{"properties":{},"defaultstate":"minecraft:mossy_cobblestone"},"minecraft:mossy_cobblestone_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:mossy_cobblestone_slab[type=bottom,waterlogged=false]"},"minecraft:mossy_cobblestone_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:mossy_cobblestone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:mossy_cobblestone_wall":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:mossy_cobblestone_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]"},"minecraft:mossy_stone_brick_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:mossy_stone_brick_slab[type=bottom,waterlogged=false]"},"minecraft:mossy_stone_brick_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:mossy_stone_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:mossy_stone_brick_wall":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:mossy_stone_brick_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]"},"minecraft:mossy_stone_bricks":{"properties":{},"defaultstate":"minecraft:mossy_stone_bricks"},"minecraft:moving_piston":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"},"type":{"values":["normal","sticky"],"type":"enum"}},"defaultstate":"minecraft:moving_piston[facing=north,type=normal]"},"minecraft:mushroom_stem":{"properties":{"down":{"values":["true","false"],"type":"bool"},"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:mushroom_stem[down=true,east=true,north=true,south=true,up=true,west=true]"},"minecraft:mycelium":{"properties":{"snowy":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:mycelium[snowy=false]"},"minecraft:nether_brick_fence":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:nether_brick_fence[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:nether_brick_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:nether_brick_slab[type=bottom,waterlogged=false]"},"minecraft:nether_brick_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:nether_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:nether_brick_wall":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:nether_brick_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]"},"minecraft:nether_bricks":{"properties":{},"defaultstate":"minecraft:nether_bricks"},"minecraft:nether_portal":{"properties":{"axis":{"values":["x","z"],"type":"enum"}},"defaultstate":"minecraft:nether_portal[axis=x]"},"minecraft:nether_quartz_ore":{"properties":{},"defaultstate":"minecraft:nether_quartz_ore"},"minecraft:nether_wart":{"properties":{"age":{"values":["0","1","2","3"],"type":"int"}},"defaultstate":"minecraft:nether_wart[age=0]"},"minecraft:nether_wart_block":{"properties":{},"defaultstate":"minecraft:nether_wart_block"},"minecraft:netherrack":{"properties":{},"defaultstate":"minecraft:netherrack"},"minecraft:note_block":{"properties":{"instrument":{"values":["harp","basedrum","snare","hat","bass","flute","bell","guitar","chime","xylophone","iron_xylophone","cow_bell","didgeridoo","bit","banjo","pling"],"type":"enum"},"note":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24"],"type":"int"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:note_block[instrument=harp,note=0,powered=false]"},"minecraft:oak_button":{"properties":{"face":{"values":["floor","wall","ceiling"],"type":"enum"},"facing":{"values":["north","south","west","east"],"type":"direction"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:oak_button[face=wall,facing=north,powered=false]"},"minecraft:oak_door":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["upper","lower"],"type":"enum"},"hinge":{"values":["left","right"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:oak_door[facing=north,half=lower,hinge=left,open=false,powered=false]"},"minecraft:oak_fence":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:oak_fence[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:oak_fence_gate":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"in_wall":{"values":["true","false"],"type":"bool"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:oak_fence_gate[facing=north,in_wall=false,open=false,powered=false]"},"minecraft:oak_leaves":{"properties":{"distance":{"values":["1","2","3","4","5","6","7"],"type":"int"},"persistent":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:oak_leaves[distance=7,persistent=false]"},"minecraft:oak_log":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:oak_log[axis=y]"},"minecraft:oak_planks":{"properties":{},"defaultstate":"minecraft:oak_planks"},"minecraft:oak_pressure_plate":{"properties":{"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:oak_pressure_plate[powered=false]"},"minecraft:oak_sapling":{"properties":{"stage":{"values":["0","1"],"type":"int"}},"defaultstate":"minecraft:oak_sapling[stage=0]"},"minecraft:oak_sign":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:oak_sign[rotation=0,waterlogged=false]"},"minecraft:oak_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:oak_slab[type=bottom,waterlogged=false]"},"minecraft:oak_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:oak_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:oak_trapdoor":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:oak_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]"},"minecraft:oak_wall_sign":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:oak_wall_sign[facing=north,waterlogged=false]"},"minecraft:oak_wood":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:oak_wood[axis=y]"},"minecraft:observer":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:observer[facing=south,powered=false]"},"minecraft:obsidian":{"properties":{},"defaultstate":"minecraft:obsidian"},"minecraft:orange_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:orange_banner[rotation=0]"},"minecraft:orange_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:orange_bed[facing=north,occupied=false,part=foot]"},"minecraft:orange_carpet":{"properties":{},"defaultstate":"minecraft:orange_carpet"},"minecraft:orange_concrete":{"properties":{},"defaultstate":"minecraft:orange_concrete"},"minecraft:orange_concrete_powder":{"properties":{},"defaultstate":"minecraft:orange_concrete_powder"},"minecraft:orange_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:orange_glazed_terracotta[facing=north]"},"minecraft:orange_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:orange_shulker_box[facing=up]"},"minecraft:orange_stained_glass":{"properties":{},"defaultstate":"minecraft:orange_stained_glass"},"minecraft:orange_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:orange_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:orange_terracotta":{"properties":{},"defaultstate":"minecraft:orange_terracotta"},"minecraft:orange_tulip":{"properties":{},"defaultstate":"minecraft:orange_tulip"},"minecraft:orange_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:orange_wall_banner[facing=north]"},"minecraft:orange_wool":{"properties":{},"defaultstate":"minecraft:orange_wool"},"minecraft:oxeye_daisy":{"properties":{},"defaultstate":"minecraft:oxeye_daisy"},"minecraft:packed_ice":{"properties":{},"defaultstate":"minecraft:packed_ice"},"minecraft:peony":{"properties":{"half":{"values":["upper","lower"],"type":"enum"}},"defaultstate":"minecraft:peony[half=lower]"},"minecraft:petrified_oak_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:petrified_oak_slab[type=bottom,waterlogged=false]"},"minecraft:pink_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:pink_banner[rotation=0]"},"minecraft:pink_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:pink_bed[facing=north,occupied=false,part=foot]"},"minecraft:pink_carpet":{"properties":{},"defaultstate":"minecraft:pink_carpet"},"minecraft:pink_concrete":{"properties":{},"defaultstate":"minecraft:pink_concrete"},"minecraft:pink_concrete_powder":{"properties":{},"defaultstate":"minecraft:pink_concrete_powder"},"minecraft:pink_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:pink_glazed_terracotta[facing=north]"},"minecraft:pink_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:pink_shulker_box[facing=up]"},"minecraft:pink_stained_glass":{"properties":{},"defaultstate":"minecraft:pink_stained_glass"},"minecraft:pink_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:pink_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:pink_terracotta":{"properties":{},"defaultstate":"minecraft:pink_terracotta"},"minecraft:pink_tulip":{"properties":{},"defaultstate":"minecraft:pink_tulip"},"minecraft:pink_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:pink_wall_banner[facing=north]"},"minecraft:pink_wool":{"properties":{},"defaultstate":"minecraft:pink_wool"},"minecraft:piston":{"properties":{"extended":{"values":["true","false"],"type":"bool"},"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:piston[extended=false,facing=north]"},"minecraft:piston_head":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"},"short":{"values":["true","false"],"type":"bool"},"type":{"values":["normal","sticky"],"type":"enum"}},"defaultstate":"minecraft:piston_head[facing=north,short=false,type=normal]"},"minecraft:player_head":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:player_head[rotation=0]"},"minecraft:player_wall_head":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:player_wall_head[facing=north]"},"minecraft:podzol":{"properties":{"snowy":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:podzol[snowy=false]"},"minecraft:polished_andesite":{"properties":{},"defaultstate":"minecraft:polished_andesite"},"minecraft:polished_andesite_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:polished_andesite_slab[type=bottom,waterlogged=false]"},"minecraft:polished_andesite_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:polished_andesite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:polished_diorite":{"properties":{},"defaultstate":"minecraft:polished_diorite"},"minecraft:polished_diorite_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:polished_diorite_slab[type=bottom,waterlogged=false]"},"minecraft:polished_diorite_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:polished_diorite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:polished_granite":{"properties":{},"defaultstate":"minecraft:polished_granite"},"minecraft:polished_granite_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:polished_granite_slab[type=bottom,waterlogged=false]"},"minecraft:polished_granite_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:polished_granite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:poppy":{"properties":{},"defaultstate":"minecraft:poppy"},"minecraft:potatoes":{"properties":{"age":{"values":["0","1","2","3","4","5","6","7"],"type":"int"}},"defaultstate":"minecraft:potatoes[age=0]"},"minecraft:potted_acacia_sapling":{"properties":{},"defaultstate":"minecraft:potted_acacia_sapling"},"minecraft:potted_allium":{"properties":{},"defaultstate":"minecraft:potted_allium"},"minecraft:potted_azure_bluet":{"properties":{},"defaultstate":"minecraft:potted_azure_bluet"},"minecraft:potted_bamboo":{"properties":{},"defaultstate":"minecraft:potted_bamboo"},"minecraft:potted_birch_sapling":{"properties":{},"defaultstate":"minecraft:potted_birch_sapling"},"minecraft:potted_blue_orchid":{"properties":{},"defaultstate":"minecraft:potted_blue_orchid"},"minecraft:potted_brown_mushroom":{"properties":{},"defaultstate":"minecraft:potted_brown_mushroom"},"minecraft:potted_cactus":{"properties":{},"defaultstate":"minecraft:potted_cactus"},"minecraft:potted_cornflower":{"properties":{},"defaultstate":"minecraft:potted_cornflower"},"minecraft:potted_dandelion":{"properties":{},"defaultstate":"minecraft:potted_dandelion"},"minecraft:potted_dark_oak_sapling":{"properties":{},"defaultstate":"minecraft:potted_dark_oak_sapling"},"minecraft:potted_dead_bush":{"properties":{},"defaultstate":"minecraft:potted_dead_bush"},"minecraft:potted_fern":{"properties":{},"defaultstate":"minecraft:potted_fern"},"minecraft:potted_jungle_sapling":{"properties":{},"defaultstate":"minecraft:potted_jungle_sapling"},"minecraft:potted_lily_of_the_valley":{"properties":{},"defaultstate":"minecraft:potted_lily_of_the_valley"},"minecraft:potted_oak_sapling":{"properties":{},"defaultstate":"minecraft:potted_oak_sapling"},"minecraft:potted_orange_tulip":{"properties":{},"defaultstate":"minecraft:potted_orange_tulip"},"minecraft:potted_oxeye_daisy":{"properties":{},"defaultstate":"minecraft:potted_oxeye_daisy"},"minecraft:potted_pink_tulip":{"properties":{},"defaultstate":"minecraft:potted_pink_tulip"},"minecraft:potted_poppy":{"properties":{},"defaultstate":"minecraft:potted_poppy"},"minecraft:potted_red_mushroom":{"properties":{},"defaultstate":"minecraft:potted_red_mushroom"},"minecraft:potted_red_tulip":{"properties":{},"defaultstate":"minecraft:potted_red_tulip"},"minecraft:potted_spruce_sapling":{"properties":{},"defaultstate":"minecraft:potted_spruce_sapling"},"minecraft:potted_white_tulip":{"properties":{},"defaultstate":"minecraft:potted_white_tulip"},"minecraft:potted_wither_rose":{"properties":{},"defaultstate":"minecraft:potted_wither_rose"},"minecraft:powered_rail":{"properties":{"powered":{"values":["true","false"],"type":"bool"},"shape":{"values":["north_south","east_west","ascending_east","ascending_west","ascending_north","ascending_south"],"type":"enum"}},"defaultstate":"minecraft:powered_rail[powered=false,shape=north_south]"},"minecraft:prismarine":{"properties":{},"defaultstate":"minecraft:prismarine"},"minecraft:prismarine_brick_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:prismarine_brick_slab[type=bottom,waterlogged=false]"},"minecraft:prismarine_brick_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:prismarine_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:prismarine_bricks":{"properties":{},"defaultstate":"minecraft:prismarine_bricks"},"minecraft:prismarine_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:prismarine_slab[type=bottom,waterlogged=false]"},"minecraft:prismarine_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:prismarine_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:prismarine_wall":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:prismarine_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]"},"minecraft:pumpkin":{"properties":{},"defaultstate":"minecraft:pumpkin"},"minecraft:pumpkin_stem":{"properties":{"age":{"values":["0","1","2","3","4","5","6","7"],"type":"int"}},"defaultstate":"minecraft:pumpkin_stem[age=0]"},"minecraft:purple_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:purple_banner[rotation=0]"},"minecraft:purple_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:purple_bed[facing=north,occupied=false,part=foot]"},"minecraft:purple_carpet":{"properties":{},"defaultstate":"minecraft:purple_carpet"},"minecraft:purple_concrete":{"properties":{},"defaultstate":"minecraft:purple_concrete"},"minecraft:purple_concrete_powder":{"properties":{},"defaultstate":"minecraft:purple_concrete_powder"},"minecraft:purple_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:purple_glazed_terracotta[facing=north]"},"minecraft:purple_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:purple_shulker_box[facing=up]"},"minecraft:purple_stained_glass":{"properties":{},"defaultstate":"minecraft:purple_stained_glass"},"minecraft:purple_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:purple_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:purple_terracotta":{"properties":{},"defaultstate":"minecraft:purple_terracotta"},"minecraft:purple_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:purple_wall_banner[facing=north]"},"minecraft:purple_wool":{"properties":{},"defaultstate":"minecraft:purple_wool"},"minecraft:purpur_block":{"properties":{},"defaultstate":"minecraft:purpur_block"},"minecraft:purpur_pillar":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:purpur_pillar[axis=y]"},"minecraft:purpur_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:purpur_slab[type=bottom,waterlogged=false]"},"minecraft:purpur_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:purpur_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:quartz_block":{"properties":{},"defaultstate":"minecraft:quartz_block"},"minecraft:quartz_pillar":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:quartz_pillar[axis=y]"},"minecraft:quartz_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:quartz_slab[type=bottom,waterlogged=false]"},"minecraft:quartz_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:quartz_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:rail":{"properties":{"shape":{"values":["north_south","east_west","ascending_east","ascending_west","ascending_north","ascending_south","south_east","south_west","north_west","north_east"],"type":"enum"}},"defaultstate":"minecraft:rail[shape=north_south]"},"minecraft:red_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:red_banner[rotation=0]"},"minecraft:red_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:red_bed[facing=north,occupied=false,part=foot]"},"minecraft:red_carpet":{"properties":{},"defaultstate":"minecraft:red_carpet"},"minecraft:red_concrete":{"properties":{},"defaultstate":"minecraft:red_concrete"},"minecraft:red_concrete_powder":{"properties":{},"defaultstate":"minecraft:red_concrete_powder"},"minecraft:red_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:red_glazed_terracotta[facing=north]"},"minecraft:red_mushroom":{"properties":{},"defaultstate":"minecraft:red_mushroom"},"minecraft:red_mushroom_block":{"properties":{"down":{"values":["true","false"],"type":"bool"},"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:red_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true]"},"minecraft:red_nether_brick_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:red_nether_brick_slab[type=bottom,waterlogged=false]"},"minecraft:red_nether_brick_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:red_nether_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:red_nether_brick_wall":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:red_nether_brick_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]"},"minecraft:red_nether_bricks":{"properties":{},"defaultstate":"minecraft:red_nether_bricks"},"minecraft:red_sand":{"properties":{},"defaultstate":"minecraft:red_sand"},"minecraft:red_sandstone":{"properties":{},"defaultstate":"minecraft:red_sandstone"},"minecraft:red_sandstone_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:red_sandstone_slab[type=bottom,waterlogged=false]"},"minecraft:red_sandstone_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:red_sandstone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:red_sandstone_wall":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:red_sandstone_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]"},"minecraft:red_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:red_shulker_box[facing=up]"},"minecraft:red_stained_glass":{"properties":{},"defaultstate":"minecraft:red_stained_glass"},"minecraft:red_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:red_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:red_terracotta":{"properties":{},"defaultstate":"minecraft:red_terracotta"},"minecraft:red_tulip":{"properties":{},"defaultstate":"minecraft:red_tulip"},"minecraft:red_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:red_wall_banner[facing=north]"},"minecraft:red_wool":{"properties":{},"defaultstate":"minecraft:red_wool"},"minecraft:redstone_block":{"properties":{},"defaultstate":"minecraft:redstone_block"},"minecraft:redstone_lamp":{"properties":{"lit":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:redstone_lamp[lit=false]"},"minecraft:redstone_ore":{"properties":{"lit":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:redstone_ore[lit=false]"},"minecraft:redstone_torch":{"properties":{"lit":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:redstone_torch[lit=true]"},"minecraft:redstone_wall_torch":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"lit":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:redstone_wall_torch[facing=north,lit=true]"},"minecraft:redstone_wire":{"properties":{"east":{"values":["up","side","none"],"type":"enum"},"north":{"values":["up","side","none"],"type":"enum"},"power":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"},"south":{"values":["up","side","none"],"type":"enum"},"west":{"values":["up","side","none"],"type":"enum"}},"defaultstate":"minecraft:redstone_wire[east=none,north=none,power=0,south=none,west=none]"},"minecraft:repeater":{"properties":{"delay":{"values":["1","2","3","4"],"type":"int"},"facing":{"values":["north","south","west","east"],"type":"direction"},"locked":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:repeater[delay=1,facing=north,locked=false,powered=false]"},"minecraft:repeating_command_block":{"properties":{"conditional":{"values":["true","false"],"type":"bool"},"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:repeating_command_block[conditional=false,facing=north]"},"minecraft:rose_bush":{"properties":{"half":{"values":["upper","lower"],"type":"enum"}},"defaultstate":"minecraft:rose_bush[half=lower]"},"minecraft:sand":{"properties":{},"defaultstate":"minecraft:sand"},"minecraft:sandstone":{"properties":{},"defaultstate":"minecraft:sandstone"},"minecraft:sandstone_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:sandstone_slab[type=bottom,waterlogged=false]"},"minecraft:sandstone_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:sandstone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:sandstone_wall":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:sandstone_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]"},"minecraft:scaffolding":{"properties":{"bottom":{"values":["true","false"],"type":"bool"},"distance":{"values":["0","1","2","3","4","5","6","7"],"type":"int"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:scaffolding[bottom=false,distance=7,waterlogged=false]"},"minecraft:sea_lantern":{"properties":{},"defaultstate":"minecraft:sea_lantern"},"minecraft:sea_pickle":{"properties":{"pickles":{"values":["1","2","3","4"],"type":"int"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:sea_pickle[pickles=1,waterlogged=true]"},"minecraft:seagrass":{"properties":{},"defaultstate":"minecraft:seagrass"},"minecraft:shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:shulker_box[facing=up]"},"minecraft:skeleton_skull":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:skeleton_skull[rotation=0]"},"minecraft:skeleton_wall_skull":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:skeleton_wall_skull[facing=north]"},"minecraft:slime_block":{"properties":{},"defaultstate":"minecraft:slime_block"},"minecraft:smithing_table":{"properties":{},"defaultstate":"minecraft:smithing_table"},"minecraft:smoker":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"lit":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:smoker[facing=north,lit=false]"},"minecraft:smooth_quartz":{"properties":{},"defaultstate":"minecraft:smooth_quartz"},"minecraft:smooth_quartz_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:smooth_quartz_slab[type=bottom,waterlogged=false]"},"minecraft:smooth_quartz_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:smooth_quartz_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:smooth_red_sandstone":{"properties":{},"defaultstate":"minecraft:smooth_red_sandstone"},"minecraft:smooth_red_sandstone_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:smooth_red_sandstone_slab[type=bottom,waterlogged=false]"},"minecraft:smooth_red_sandstone_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:smooth_red_sandstone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:smooth_sandstone":{"properties":{},"defaultstate":"minecraft:smooth_sandstone"},"minecraft:smooth_sandstone_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:smooth_sandstone_slab[type=bottom,waterlogged=false]"},"minecraft:smooth_sandstone_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:smooth_sandstone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:smooth_stone":{"properties":{},"defaultstate":"minecraft:smooth_stone"},"minecraft:smooth_stone_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:smooth_stone_slab[type=bottom,waterlogged=false]"},"minecraft:snow":{"properties":{"layers":{"values":["1","2","3","4","5","6","7","8"],"type":"int"}},"defaultstate":"minecraft:snow[layers=1]"},"minecraft:snow_block":{"properties":{},"defaultstate":"minecraft:snow_block"},"minecraft:soul_sand":{"properties":{},"defaultstate":"minecraft:soul_sand"},"minecraft:spawner":{"properties":{},"defaultstate":"minecraft:spawner"},"minecraft:sponge":{"properties":{},"defaultstate":"minecraft:sponge"},"minecraft:spruce_button":{"properties":{"face":{"values":["floor","wall","ceiling"],"type":"enum"},"facing":{"values":["north","south","west","east"],"type":"direction"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:spruce_button[face=wall,facing=north,powered=false]"},"minecraft:spruce_door":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["upper","lower"],"type":"enum"},"hinge":{"values":["left","right"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:spruce_door[facing=north,half=lower,hinge=left,open=false,powered=false]"},"minecraft:spruce_fence":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:spruce_fence[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:spruce_fence_gate":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"in_wall":{"values":["true","false"],"type":"bool"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:spruce_fence_gate[facing=north,in_wall=false,open=false,powered=false]"},"minecraft:spruce_leaves":{"properties":{"distance":{"values":["1","2","3","4","5","6","7"],"type":"int"},"persistent":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:spruce_leaves[distance=7,persistent=false]"},"minecraft:spruce_log":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:spruce_log[axis=y]"},"minecraft:spruce_planks":{"properties":{},"defaultstate":"minecraft:spruce_planks"},"minecraft:spruce_pressure_plate":{"properties":{"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:spruce_pressure_plate[powered=false]"},"minecraft:spruce_sapling":{"properties":{"stage":{"values":["0","1"],"type":"int"}},"defaultstate":"minecraft:spruce_sapling[stage=0]"},"minecraft:spruce_sign":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:spruce_sign[rotation=0,waterlogged=false]"},"minecraft:spruce_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:spruce_slab[type=bottom,waterlogged=false]"},"minecraft:spruce_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:spruce_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:spruce_trapdoor":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:spruce_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]"},"minecraft:spruce_wall_sign":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:spruce_wall_sign[facing=north,waterlogged=false]"},"minecraft:spruce_wood":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:spruce_wood[axis=y]"},"minecraft:sticky_piston":{"properties":{"extended":{"values":["true","false"],"type":"bool"},"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:sticky_piston[extended=false,facing=north]"},"minecraft:stone":{"properties":{},"defaultstate":"minecraft:stone"},"minecraft:stone_brick_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:stone_brick_slab[type=bottom,waterlogged=false]"},"minecraft:stone_brick_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:stone_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:stone_brick_wall":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:stone_brick_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]"},"minecraft:stone_bricks":{"properties":{},"defaultstate":"minecraft:stone_bricks"},"minecraft:stone_button":{"properties":{"face":{"values":["floor","wall","ceiling"],"type":"enum"},"facing":{"values":["north","south","west","east"],"type":"direction"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:stone_button[face=wall,facing=north,powered=false]"},"minecraft:stone_pressure_plate":{"properties":{"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:stone_pressure_plate[powered=false]"},"minecraft:stone_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:stone_slab[type=bottom,waterlogged=false]"},"minecraft:stone_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:stone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:stonecutter":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:stonecutter[facing=north]"},"minecraft:stripped_acacia_log":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:stripped_acacia_log[axis=y]"},"minecraft:stripped_acacia_wood":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:stripped_acacia_wood[axis=y]"},"minecraft:stripped_birch_log":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:stripped_birch_log[axis=y]"},"minecraft:stripped_birch_wood":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:stripped_birch_wood[axis=y]"},"minecraft:stripped_dark_oak_log":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:stripped_dark_oak_log[axis=y]"},"minecraft:stripped_dark_oak_wood":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:stripped_dark_oak_wood[axis=y]"},"minecraft:stripped_jungle_log":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:stripped_jungle_log[axis=y]"},"minecraft:stripped_jungle_wood":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:stripped_jungle_wood[axis=y]"},"minecraft:stripped_oak_log":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:stripped_oak_log[axis=y]"},"minecraft:stripped_oak_wood":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:stripped_oak_wood[axis=y]"},"minecraft:stripped_spruce_log":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:stripped_spruce_log[axis=y]"},"minecraft:stripped_spruce_wood":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:stripped_spruce_wood[axis=y]"},"minecraft:structure_block":{"properties":{"mode":{"values":["save","load","corner","data"],"type":"enum"}},"defaultstate":"minecraft:structure_block[mode=save]"},"minecraft:structure_void":{"properties":{},"defaultstate":"minecraft:structure_void"},"minecraft:sugar_cane":{"properties":{"age":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:sugar_cane[age=0]"},"minecraft:sunflower":{"properties":{"half":{"values":["upper","lower"],"type":"enum"}},"defaultstate":"minecraft:sunflower[half=lower]"},"minecraft:sweet_berry_bush":{"properties":{"age":{"values":["0","1","2","3"],"type":"int"}},"defaultstate":"minecraft:sweet_berry_bush[age=0]"},"minecraft:tall_grass":{"properties":{"half":{"values":["upper","lower"],"type":"enum"}},"defaultstate":"minecraft:tall_grass[half=lower]"},"minecraft:tall_seagrass":{"properties":{"half":{"values":["upper","lower"],"type":"enum"}},"defaultstate":"minecraft:tall_seagrass[half=lower]"},"minecraft:terracotta":{"properties":{},"defaultstate":"minecraft:terracotta"},"minecraft:tnt":{"properties":{"unstable":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:tnt[unstable=false]"},"minecraft:torch":{"properties":{},"defaultstate":"minecraft:torch"},"minecraft:trapped_chest":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"type":{"values":["single","left","right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:trapped_chest[facing=north,type=single,waterlogged=false]"},"minecraft:tripwire":{"properties":{"attached":{"values":["true","false"],"type":"bool"},"disarmed":{"values":["true","false"],"type":"bool"},"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:tripwire[attached=false,disarmed=false,east=false,north=false,powered=false,south=false,west=false]"},"minecraft:tripwire_hook":{"properties":{"attached":{"values":["true","false"],"type":"bool"},"facing":{"values":["north","south","west","east"],"type":"direction"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:tripwire_hook[attached=false,facing=north,powered=false]"},"minecraft:tube_coral":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:tube_coral[waterlogged=true]"},"minecraft:tube_coral_block":{"properties":{},"defaultstate":"minecraft:tube_coral_block"},"minecraft:tube_coral_fan":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:tube_coral_fan[waterlogged=true]"},"minecraft:tube_coral_wall_fan":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:tube_coral_wall_fan[facing=north,waterlogged=true]"},"minecraft:turtle_egg":{"properties":{"eggs":{"values":["1","2","3","4"],"type":"int"},"hatch":{"values":["0","1","2"],"type":"int"}},"defaultstate":"minecraft:turtle_egg[eggs=1,hatch=0]"},"minecraft:vine":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:vine[east=false,north=false,south=false,up=false,west=false]"},"minecraft:void_air":{"properties":{},"defaultstate":"minecraft:void_air"},"minecraft:wall_torch":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:wall_torch[facing=north]"},"minecraft:water":{"properties":{"level":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:water[level=0]"},"minecraft:wet_sponge":{"properties":{},"defaultstate":"minecraft:wet_sponge"},"minecraft:wheat":{"properties":{"age":{"values":["0","1","2","3","4","5","6","7"],"type":"int"}},"defaultstate":"minecraft:wheat[age=0]"},"minecraft:white_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:white_banner[rotation=0]"},"minecraft:white_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:white_bed[facing=north,occupied=false,part=foot]"},"minecraft:white_carpet":{"properties":{},"defaultstate":"minecraft:white_carpet"},"minecraft:white_concrete":{"properties":{},"defaultstate":"minecraft:white_concrete"},"minecraft:white_concrete_powder":{"properties":{},"defaultstate":"minecraft:white_concrete_powder"},"minecraft:white_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:white_glazed_terracotta[facing=north]"},"minecraft:white_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:white_shulker_box[facing=up]"},"minecraft:white_stained_glass":{"properties":{},"defaultstate":"minecraft:white_stained_glass"},"minecraft:white_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:white_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:white_terracotta":{"properties":{},"defaultstate":"minecraft:white_terracotta"},"minecraft:white_tulip":{"properties":{},"defaultstate":"minecraft:white_tulip"},"minecraft:white_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:white_wall_banner[facing=north]"},"minecraft:white_wool":{"properties":{},"defaultstate":"minecraft:white_wool"},"minecraft:wither_rose":{"properties":{},"defaultstate":"minecraft:wither_rose"},"minecraft:wither_skeleton_skull":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:wither_skeleton_skull[rotation=0]"},"minecraft:wither_skeleton_wall_skull":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:wither_skeleton_wall_skull[facing=north]"},"minecraft:yellow_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:yellow_banner[rotation=0]"},"minecraft:yellow_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:yellow_bed[facing=north,occupied=false,part=foot]"},"minecraft:yellow_carpet":{"properties":{},"defaultstate":"minecraft:yellow_carpet"},"minecraft:yellow_concrete":{"properties":{},"defaultstate":"minecraft:yellow_concrete"},"minecraft:yellow_concrete_powder":{"properties":{},"defaultstate":"minecraft:yellow_concrete_powder"},"minecraft:yellow_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:yellow_glazed_terracotta[facing=north]"},"minecraft:yellow_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:yellow_shulker_box[facing=up]"},"minecraft:yellow_stained_glass":{"properties":{},"defaultstate":"minecraft:yellow_stained_glass"},"minecraft:yellow_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:yellow_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:yellow_terracotta":{"properties":{},"defaultstate":"minecraft:yellow_terracotta"},"minecraft:yellow_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:yellow_wall_banner[facing=north]"},"minecraft:yellow_wool":{"properties":{},"defaultstate":"minecraft:yellow_wool"},"minecraft:zombie_head":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:zombie_head[rotation=0]"},"minecraft:zombie_wall_head":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:zombie_wall_head[facing=north]"}},"items":["minecraft:acacia_boat","minecraft:acacia_button","minecraft:acacia_door","minecraft:acacia_fence","minecraft:acacia_fence_gate","minecraft:acacia_leaves","minecraft:acacia_log","minecraft:acacia_planks","minecraft:acacia_pressure_plate","minecraft:acacia_sapling","minecraft:acacia_sign","minecraft:acacia_slab","minecraft:acacia_stairs","minecraft:acacia_trapdoor","minecraft:acacia_wood","minecraft:activator_rail","minecraft:air","minecraft:allium","minecraft:andesite","minecraft:andesite_slab","minecraft:andesite_stairs","minecraft:andesite_wall","minecraft:anvil","minecraft:apple","minecraft:armor_stand","minecraft:arrow","minecraft:azure_bluet","minecraft:baked_potato","minecraft:bamboo","minecraft:barrel","minecraft:barrier","minecraft:bat_spawn_egg","minecraft:beacon","minecraft:bedrock","minecraft:bee_nest","minecraft:bee_spawn_egg","minecraft:beef","minecraft:beehive","minecraft:beetroot","minecraft:beetroot_seeds","minecraft:beetroot_soup","minecraft:bell","minecraft:birch_boat","minecraft:birch_button","minecraft:birch_door","minecraft:birch_fence","minecraft:birch_fence_gate","minecraft:birch_leaves","minecraft:birch_log","minecraft:birch_planks","minecraft:birch_pressure_plate","minecraft:birch_sapling","minecraft:birch_sign","minecraft:birch_slab","minecraft:birch_stairs","minecraft:birch_trapdoor","minecraft:birch_wood","minecraft:black_banner","minecraft:black_bed","minecraft:black_carpet","minecraft:black_concrete","minecraft:black_concrete_powder","minecraft:black_dye","minecraft:black_glazed_terracotta","minecraft:black_shulker_box","minecraft:black_stained_glass","minecraft:black_stained_glass_pane","minecraft:black_terracotta","minecraft:black_wool","minecraft:blast_furnace","minecraft:blaze_powder","minecraft:blaze_rod","minecraft:blaze_spawn_egg","minecraft:blue_banner","minecraft:blue_bed","minecraft:blue_carpet","minecraft:blue_concrete","minecraft:blue_concrete_powder","minecraft:blue_dye","minecraft:blue_glazed_terracotta","minecraft:blue_ice","minecraft:blue_orchid","minecraft:blue_shulker_box","minecraft:blue_stained_glass","minecraft:blue_stained_glass_pane","minecraft:blue_terracotta","minecraft:blue_wool","minecraft:bone","minecraft:bone_block","minecraft:bone_meal","minecraft:book","minecraft:bookshelf","minecraft:bow","minecraft:bowl","minecraft:brain_coral","minecraft:brain_coral_block","minecraft:brain_coral_fan","minecraft:bread","minecraft:brewing_stand","minecraft:brick","minecraft:brick_slab","minecraft:brick_stairs","minecraft:brick_wall","minecraft:bricks","minecraft:brown_banner","minecraft:brown_bed","minecraft:brown_carpet","minecraft:brown_concrete","minecraft:brown_concrete_powder","minecraft:brown_dye","minecraft:brown_glazed_terracotta","minecraft:brown_mushroom","minecraft:brown_mushroom_block","minecraft:brown_shulker_box","minecraft:brown_stained_glass","minecraft:brown_stained_glass_pane","minecraft:brown_terracotta","minecraft:brown_wool","minecraft:bubble_coral","minecraft:bubble_coral_block","minecraft:bubble_coral_fan","minecraft:bucket","minecraft:cactus","minecraft:cake","minecraft:campfire","minecraft:carrot","minecraft:carrot_on_a_stick","minecraft:cartography_table","minecraft:carved_pumpkin","minecraft:cat_spawn_egg","minecraft:cauldron","minecraft:cave_spider_spawn_egg","minecraft:chain_command_block","minecraft:chainmail_boots","minecraft:chainmail_chestplate","minecraft:chainmail_helmet","minecraft:chainmail_leggings","minecraft:charcoal","minecraft:chest","minecraft:chest_minecart","minecraft:chicken","minecraft:chicken_spawn_egg","minecraft:chipped_anvil","minecraft:chiseled_quartz_block","minecraft:chiseled_red_sandstone","minecraft:chiseled_sandstone","minecraft:chiseled_stone_bricks","minecraft:chorus_flower","minecraft:chorus_fruit","minecraft:chorus_plant","minecraft:clay","minecraft:clay_ball","minecraft:clock","minecraft:coal","minecraft:coal_block","minecraft:coal_ore","minecraft:coarse_dirt","minecraft:cobblestone","minecraft:cobblestone_slab","minecraft:cobblestone_stairs","minecraft:cobblestone_wall","minecraft:cobweb","minecraft:cocoa_beans","minecraft:cod","minecraft:cod_bucket","minecraft:cod_spawn_egg","minecraft:command_block","minecraft:command_block_minecart","minecraft:comparator","minecraft:compass","minecraft:composter","minecraft:conduit","minecraft:cooked_beef","minecraft:cooked_chicken","minecraft:cooked_cod","minecraft:cooked_mutton","minecraft:cooked_porkchop","minecraft:cooked_rabbit","minecraft:cooked_salmon","minecraft:cookie","minecraft:cornflower","minecraft:cow_spawn_egg","minecraft:cracked_stone_bricks","minecraft:crafting_table","minecraft:creeper_banner_pattern","minecraft:creeper_head","minecraft:creeper_spawn_egg","minecraft:crossbow","minecraft:cut_red_sandstone","minecraft:cut_red_sandstone_slab","minecraft:cut_sandstone","minecraft:cut_sandstone_slab","minecraft:cyan_banner","minecraft:cyan_bed","minecraft:cyan_carpet","minecraft:cyan_concrete","minecraft:cyan_concrete_powder","minecraft:cyan_dye","minecraft:cyan_glazed_terracotta","minecraft:cyan_shulker_box","minecraft:cyan_stained_glass","minecraft:cyan_stained_glass_pane","minecraft:cyan_terracotta","minecraft:cyan_wool","minecraft:damaged_anvil","minecraft:dandelion","minecraft:dark_oak_boat","minecraft:dark_oak_button","minecraft:dark_oak_door","minecraft:dark_oak_fence","minecraft:dark_oak_fence_gate","minecraft:dark_oak_leaves","minecraft:dark_oak_log","minecraft:dark_oak_planks","minecraft:dark_oak_pressure_plate","minecraft:dark_oak_sapling","minecraft:dark_oak_sign","minecraft:dark_oak_slab","minecraft:dark_oak_stairs","minecraft:dark_oak_trapdoor","minecraft:dark_oak_wood","minecraft:dark_prismarine","minecraft:dark_prismarine_slab","minecraft:dark_prismarine_stairs","minecraft:daylight_detector","minecraft:dead_brain_coral","minecraft:dead_brain_coral_block","minecraft:dead_brain_coral_fan","minecraft:dead_bubble_coral","minecraft:dead_bubble_coral_block","minecraft:dead_bubble_coral_fan","minecraft:dead_bush","minecraft:dead_fire_coral","minecraft:dead_fire_coral_block","minecraft:dead_fire_coral_fan","minecraft:dead_horn_coral","minecraft:dead_horn_coral_block","minecraft:dead_horn_coral_fan","minecraft:dead_tube_coral","minecraft:dead_tube_coral_block","minecraft:dead_tube_coral_fan","minecraft:debug_stick","minecraft:detector_rail","minecraft:diamond","minecraft:diamond_axe","minecraft:diamond_block","minecraft:diamond_boots","minecraft:diamond_chestplate","minecraft:diamond_helmet","minecraft:diamond_hoe","minecraft:diamond_horse_armor","minecraft:diamond_leggings","minecraft:diamond_ore","minecraft:diamond_pickaxe","minecraft:diamond_shovel","minecraft:diamond_sword","minecraft:diorite","minecraft:diorite_slab","minecraft:diorite_stairs","minecraft:diorite_wall","minecraft:dirt","minecraft:dispenser","minecraft:dolphin_spawn_egg","minecraft:donkey_spawn_egg","minecraft:dragon_breath","minecraft:dragon_egg","minecraft:dragon_head","minecraft:dried_kelp","minecraft:dried_kelp_block","minecraft:dropper","minecraft:drowned_spawn_egg","minecraft:egg","minecraft:elder_guardian_spawn_egg","minecraft:elytra","minecraft:emerald","minecraft:emerald_block","minecraft:emerald_ore","minecraft:enchanted_book","minecraft:enchanted_golden_apple","minecraft:enchanting_table","minecraft:end_crystal","minecraft:end_portal_frame","minecraft:end_rod","minecraft:end_stone","minecraft:end_stone_brick_slab","minecraft:end_stone_brick_stairs","minecraft:end_stone_brick_wall","minecraft:end_stone_bricks","minecraft:ender_chest","minecraft:ender_eye","minecraft:ender_pearl","minecraft:enderman_spawn_egg","minecraft:endermite_spawn_egg","minecraft:evoker_spawn_egg","minecraft:experience_bottle","minecraft:farmland","minecraft:feather","minecraft:fermented_spider_eye","minecraft:fern","minecraft:filled_map","minecraft:fire_charge","minecraft:fire_coral","minecraft:fire_coral_block","minecraft:fire_coral_fan","minecraft:firework_rocket","minecraft:firework_star","minecraft:fishing_rod","minecraft:fletching_table","minecraft:flint","minecraft:flint_and_steel","minecraft:flower_banner_pattern","minecraft:flower_pot","minecraft:fox_spawn_egg","minecraft:furnace","minecraft:furnace_minecart","minecraft:ghast_spawn_egg","minecraft:ghast_tear","minecraft:glass","minecraft:glass_bottle","minecraft:glass_pane","minecraft:glistering_melon_slice","minecraft:globe_banner_pattern","minecraft:glowstone","minecraft:glowstone_dust","minecraft:gold_block","minecraft:gold_ingot","minecraft:gold_nugget","minecraft:gold_ore","minecraft:golden_apple","minecraft:golden_axe","minecraft:golden_boots","minecraft:golden_carrot","minecraft:golden_chestplate","minecraft:golden_helmet","minecraft:golden_hoe","minecraft:golden_horse_armor","minecraft:golden_leggings","minecraft:golden_pickaxe","minecraft:golden_shovel","minecraft:golden_sword","minecraft:granite","minecraft:granite_slab","minecraft:granite_stairs","minecraft:granite_wall","minecraft:grass","minecraft:grass_block","minecraft:grass_path","minecraft:gravel","minecraft:gray_banner","minecraft:gray_bed","minecraft:gray_carpet","minecraft:gray_concrete","minecraft:gray_concrete_powder","minecraft:gray_dye","minecraft:gray_glazed_terracotta","minecraft:gray_shulker_box","minecraft:gray_stained_glass","minecraft:gray_stained_glass_pane","minecraft:gray_terracotta","minecraft:gray_wool","minecraft:green_banner","minecraft:green_bed","minecraft:green_carpet","minecraft:green_concrete","minecraft:green_concrete_powder","minecraft:green_dye","minecraft:green_glazed_terracotta","minecraft:green_shulker_box","minecraft:green_stained_glass","minecraft:green_stained_glass_pane","minecraft:green_terracotta","minecraft:green_wool","minecraft:grindstone","minecraft:guardian_spawn_egg","minecraft:gunpowder","minecraft:hay_block","minecraft:heart_of_the_sea","minecraft:heavy_weighted_pressure_plate","minecraft:honey_block","minecraft:honey_bottle","minecraft:honeycomb","minecraft:honeycomb_block","minecraft:hopper","minecraft:hopper_minecart","minecraft:horn_coral","minecraft:horn_coral_block","minecraft:horn_coral_fan","minecraft:horse_spawn_egg","minecraft:husk_spawn_egg","minecraft:ice","minecraft:infested_chiseled_stone_bricks","minecraft:infested_cobblestone","minecraft:infested_cracked_stone_bricks","minecraft:infested_mossy_stone_bricks","minecraft:infested_stone","minecraft:infested_stone_bricks","minecraft:ink_sac","minecraft:iron_axe","minecraft:iron_bars","minecraft:iron_block","minecraft:iron_boots","minecraft:iron_chestplate","minecraft:iron_door","minecraft:iron_helmet","minecraft:iron_hoe","minecraft:iron_horse_armor","minecraft:iron_ingot","minecraft:iron_leggings","minecraft:iron_nugget","minecraft:iron_ore","minecraft:iron_pickaxe","minecraft:iron_shovel","minecraft:iron_sword","minecraft:iron_trapdoor","minecraft:item_frame","minecraft:jack_o_lantern","minecraft:jigsaw","minecraft:jukebox","minecraft:jungle_boat","minecraft:jungle_button","minecraft:jungle_door","minecraft:jungle_fence","minecraft:jungle_fence_gate","minecraft:jungle_leaves","minecraft:jungle_log","minecraft:jungle_planks","minecraft:jungle_pressure_plate","minecraft:jungle_sapling","minecraft:jungle_sign","minecraft:jungle_slab","minecraft:jungle_stairs","minecraft:jungle_trapdoor","minecraft:jungle_wood","minecraft:kelp","minecraft:knowledge_book","minecraft:ladder","minecraft:lantern","minecraft:lapis_block","minecraft:lapis_lazuli","minecraft:lapis_ore","minecraft:large_fern","minecraft:lava_bucket","minecraft:lead","minecraft:leather","minecraft:leather_boots","minecraft:leather_chestplate","minecraft:leather_helmet","minecraft:leather_horse_armor","minecraft:leather_leggings","minecraft:lectern","minecraft:lever","minecraft:light_blue_banner","minecraft:light_blue_bed","minecraft:light_blue_carpet","minecraft:light_blue_concrete","minecraft:light_blue_concrete_powder","minecraft:light_blue_dye","minecraft:light_blue_glazed_terracotta","minecraft:light_blue_shulker_box","minecraft:light_blue_stained_glass","minecraft:light_blue_stained_glass_pane","minecraft:light_blue_terracotta","minecraft:light_blue_wool","minecraft:light_gray_banner","minecraft:light_gray_bed","minecraft:light_gray_carpet","minecraft:light_gray_concrete","minecraft:light_gray_concrete_powder","minecraft:light_gray_dye","minecraft:light_gray_glazed_terracotta","minecraft:light_gray_shulker_box","minecraft:light_gray_stained_glass","minecraft:light_gray_stained_glass_pane","minecraft:light_gray_terracotta","minecraft:light_gray_wool","minecraft:light_weighted_pressure_plate","minecraft:lilac","minecraft:lily_of_the_valley","minecraft:lily_pad","minecraft:lime_banner","minecraft:lime_bed","minecraft:lime_carpet","minecraft:lime_concrete","minecraft:lime_concrete_powder","minecraft:lime_dye","minecraft:lime_glazed_terracotta","minecraft:lime_shulker_box","minecraft:lime_stained_glass","minecraft:lime_stained_glass_pane","minecraft:lime_terracotta","minecraft:lime_wool","minecraft:lingering_potion","minecraft:llama_spawn_egg","minecraft:loom","minecraft:magenta_banner","minecraft:magenta_bed","minecraft:magenta_carpet","minecraft:magenta_concrete","minecraft:magenta_concrete_powder","minecraft:magenta_dye","minecraft:magenta_glazed_terracotta","minecraft:magenta_shulker_box","minecraft:magenta_stained_glass","minecraft:magenta_stained_glass_pane","minecraft:magenta_terracotta","minecraft:magenta_wool","minecraft:magma_block","minecraft:magma_cream","minecraft:magma_cube_spawn_egg","minecraft:map","minecraft:melon","minecraft:melon_seeds","minecraft:melon_slice","minecraft:milk_bucket","minecraft:minecart","minecraft:mojang_banner_pattern","minecraft:mooshroom_spawn_egg","minecraft:mossy_cobblestone","minecraft:mossy_cobblestone_slab","minecraft:mossy_cobblestone_stairs","minecraft:mossy_cobblestone_wall","minecraft:mossy_stone_brick_slab","minecraft:mossy_stone_brick_stairs","minecraft:mossy_stone_brick_wall","minecraft:mossy_stone_bricks","minecraft:mule_spawn_egg","minecraft:mushroom_stem","minecraft:mushroom_stew","minecraft:music_disc_11","minecraft:music_disc_13","minecraft:music_disc_blocks","minecraft:music_disc_cat","minecraft:music_disc_chirp","minecraft:music_disc_far","minecraft:music_disc_mall","minecraft:music_disc_mellohi","minecraft:music_disc_stal","minecraft:music_disc_strad","minecraft:music_disc_wait","minecraft:music_disc_ward","minecraft:mutton","minecraft:mycelium","minecraft:name_tag","minecraft:nautilus_shell","minecraft:nether_brick","minecraft:nether_brick_fence","minecraft:nether_brick_slab","minecraft:nether_brick_stairs","minecraft:nether_brick_wall","minecraft:nether_bricks","minecraft:nether_quartz_ore","minecraft:nether_star","minecraft:nether_wart","minecraft:nether_wart_block","minecraft:netherrack","minecraft:note_block","minecraft:oak_boat","minecraft:oak_button","minecraft:oak_door","minecraft:oak_fence","minecraft:oak_fence_gate","minecraft:oak_leaves","minecraft:oak_log","minecraft:oak_planks","minecraft:oak_pressure_plate","minecraft:oak_sapling","minecraft:oak_sign","minecraft:oak_slab","minecraft:oak_stairs","minecraft:oak_trapdoor","minecraft:oak_wood","minecraft:observer","minecraft:obsidian","minecraft:ocelot_spawn_egg","minecraft:orange_banner","minecraft:orange_bed","minecraft:orange_carpet","minecraft:orange_concrete","minecraft:orange_concrete_powder","minecraft:orange_dye","minecraft:orange_glazed_terracotta","minecraft:orange_shulker_box","minecraft:orange_stained_glass","minecraft:orange_stained_glass_pane","minecraft:orange_terracotta","minecraft:orange_tulip","minecraft:orange_wool","minecraft:oxeye_daisy","minecraft:packed_ice","minecraft:painting","minecraft:panda_spawn_egg","minecraft:paper","minecraft:parrot_spawn_egg","minecraft:peony","minecraft:petrified_oak_slab","minecraft:phantom_membrane","minecraft:phantom_spawn_egg","minecraft:pig_spawn_egg","minecraft:pillager_spawn_egg","minecraft:pink_banner","minecraft:pink_bed","minecraft:pink_carpet","minecraft:pink_concrete","minecraft:pink_concrete_powder","minecraft:pink_dye","minecraft:pink_glazed_terracotta","minecraft:pink_shulker_box","minecraft:pink_stained_glass","minecraft:pink_stained_glass_pane","minecraft:pink_terracotta","minecraft:pink_tulip","minecraft:pink_wool","minecraft:piston","minecraft:player_head","minecraft:podzol","minecraft:poisonous_potato","minecraft:polar_bear_spawn_egg","minecraft:polished_andesite","minecraft:polished_andesite_slab","minecraft:polished_andesite_stairs","minecraft:polished_diorite","minecraft:polished_diorite_slab","minecraft:polished_diorite_stairs","minecraft:polished_granite","minecraft:polished_granite_slab","minecraft:polished_granite_stairs","minecraft:popped_chorus_fruit","minecraft:poppy","minecraft:porkchop","minecraft:potato","minecraft:potion","minecraft:powered_rail","minecraft:prismarine","minecraft:prismarine_brick_slab","minecraft:prismarine_brick_stairs","minecraft:prismarine_bricks","minecraft:prismarine_crystals","minecraft:prismarine_shard","minecraft:prismarine_slab","minecraft:prismarine_stairs","minecraft:prismarine_wall","minecraft:pufferfish","minecraft:pufferfish_bucket","minecraft:pufferfish_spawn_egg","minecraft:pumpkin","minecraft:pumpkin_pie","minecraft:pumpkin_seeds","minecraft:purple_banner","minecraft:purple_bed","minecraft:purple_carpet","minecraft:purple_concrete","minecraft:purple_concrete_powder","minecraft:purple_dye","minecraft:purple_glazed_terracotta","minecraft:purple_shulker_box","minecraft:purple_stained_glass","minecraft:purple_stained_glass_pane","minecraft:purple_terracotta","minecraft:purple_wool","minecraft:purpur_block","minecraft:purpur_pillar","minecraft:purpur_slab","minecraft:purpur_stairs","minecraft:quartz","minecraft:quartz_block","minecraft:quartz_pillar","minecraft:quartz_slab","minecraft:quartz_stairs","minecraft:rabbit","minecraft:rabbit_foot","minecraft:rabbit_hide","minecraft:rabbit_spawn_egg","minecraft:rabbit_stew","minecraft:rail","minecraft:ravager_spawn_egg","minecraft:red_banner","minecraft:red_bed","minecraft:red_carpet","minecraft:red_concrete","minecraft:red_concrete_powder","minecraft:red_dye","minecraft:red_glazed_terracotta","minecraft:red_mushroom","minecraft:red_mushroom_block","minecraft:red_nether_brick_slab","minecraft:red_nether_brick_stairs","minecraft:red_nether_brick_wall","minecraft:red_nether_bricks","minecraft:red_sand","minecraft:red_sandstone","minecraft:red_sandstone_slab","minecraft:red_sandstone_stairs","minecraft:red_sandstone_wall","minecraft:red_shulker_box","minecraft:red_stained_glass","minecraft:red_stained_glass_pane","minecraft:red_terracotta","minecraft:red_tulip","minecraft:red_wool","minecraft:redstone","minecraft:redstone_block","minecraft:redstone_lamp","minecraft:redstone_ore","minecraft:redstone_torch","minecraft:repeater","minecraft:repeating_command_block","minecraft:rose_bush","minecraft:rotten_flesh","minecraft:saddle","minecraft:salmon","minecraft:salmon_bucket","minecraft:salmon_spawn_egg","minecraft:sand","minecraft:sandstone","minecraft:sandstone_slab","minecraft:sandstone_stairs","minecraft:sandstone_wall","minecraft:scaffolding","minecraft:scute","minecraft:sea_lantern","minecraft:sea_pickle","minecraft:seagrass","minecraft:shears","minecraft:sheep_spawn_egg","minecraft:shield","minecraft:shulker_box","minecraft:shulker_shell","minecraft:shulker_spawn_egg","minecraft:silverfish_spawn_egg","minecraft:skeleton_horse_spawn_egg","minecraft:skeleton_skull","minecraft:skeleton_spawn_egg","minecraft:skull_banner_pattern","minecraft:slime_ball","minecraft:slime_block","minecraft:slime_spawn_egg","minecraft:smithing_table","minecraft:smoker","minecraft:smooth_quartz","minecraft:smooth_quartz_slab","minecraft:smooth_quartz_stairs","minecraft:smooth_red_sandstone","minecraft:smooth_red_sandstone_slab","minecraft:smooth_red_sandstone_stairs","minecraft:smooth_sandstone","minecraft:smooth_sandstone_slab","minecraft:smooth_sandstone_stairs","minecraft:smooth_stone","minecraft:smooth_stone_slab","minecraft:snow","minecraft:snow_block","minecraft:snowball","minecraft:soul_sand","minecraft:spawner","minecraft:spectral_arrow","minecraft:spider_eye","minecraft:spider_spawn_egg","minecraft:splash_potion","minecraft:sponge","minecraft:spruce_boat","minecraft:spruce_button","minecraft:spruce_door","minecraft:spruce_fence","minecraft:spruce_fence_gate","minecraft:spruce_leaves","minecraft:spruce_log","minecraft:spruce_planks","minecraft:spruce_pressure_plate","minecraft:spruce_sapling","minecraft:spruce_sign","minecraft:spruce_slab","minecraft:spruce_stairs","minecraft:spruce_trapdoor","minecraft:spruce_wood","minecraft:squid_spawn_egg","minecraft:stick","minecraft:sticky_piston","minecraft:stone","minecraft:stone_axe","minecraft:stone_brick_slab","minecraft:stone_brick_stairs","minecraft:stone_brick_wall","minecraft:stone_bricks","minecraft:stone_button","minecraft:stone_hoe","minecraft:stone_pickaxe","minecraft:stone_pressure_plate","minecraft:stone_shovel","minecraft:stone_slab","minecraft:stone_stairs","minecraft:stone_sword","minecraft:stonecutter","minecraft:stray_spawn_egg","minecraft:string","minecraft:stripped_acacia_log","minecraft:stripped_acacia_wood","minecraft:stripped_birch_log","minecraft:stripped_birch_wood","minecraft:stripped_dark_oak_log","minecraft:stripped_dark_oak_wood","minecraft:stripped_jungle_log","minecraft:stripped_jungle_wood","minecraft:stripped_oak_log","minecraft:stripped_oak_wood","minecraft:stripped_spruce_log","minecraft:stripped_spruce_wood","minecraft:structure_block","minecraft:structure_void","minecraft:sugar","minecraft:sugar_cane","minecraft:sunflower","minecraft:suspicious_stew","minecraft:sweet_berries","minecraft:tall_grass","minecraft:terracotta","minecraft:tipped_arrow","minecraft:tnt","minecraft:tnt_minecart","minecraft:torch","minecraft:totem_of_undying","minecraft:trader_llama_spawn_egg","minecraft:trapped_chest","minecraft:trident","minecraft:tripwire_hook","minecraft:tropical_fish","minecraft:tropical_fish_bucket","minecraft:tropical_fish_spawn_egg","minecraft:tube_coral","minecraft:tube_coral_block","minecraft:tube_coral_fan","minecraft:turtle_egg","minecraft:turtle_helmet","minecraft:turtle_spawn_egg","minecraft:vex_spawn_egg","minecraft:villager_spawn_egg","minecraft:vindicator_spawn_egg","minecraft:vine","minecraft:wandering_trader_spawn_egg","minecraft:water_bucket","minecraft:wet_sponge","minecraft:wheat","minecraft:wheat_seeds","minecraft:white_banner","minecraft:white_bed","minecraft:white_carpet","minecraft:white_concrete","minecraft:white_concrete_powder","minecraft:white_dye","minecraft:white_glazed_terracotta","minecraft:white_shulker_box","minecraft:white_stained_glass","minecraft:white_stained_glass_pane","minecraft:white_terracotta","minecraft:white_tulip","minecraft:white_wool","minecraft:witch_spawn_egg","minecraft:wither_rose","minecraft:wither_skeleton_skull","minecraft:wither_skeleton_spawn_egg","minecraft:wolf_spawn_egg","minecraft:wooden_axe","minecraft:wooden_hoe","minecraft:wooden_pickaxe","minecraft:wooden_shovel","minecraft:wooden_sword","minecraft:writable_book","minecraft:written_book","minecraft:yellow_banner","minecraft:yellow_bed","minecraft:yellow_carpet","minecraft:yellow_concrete","minecraft:yellow_concrete_powder","minecraft:yellow_dye","minecraft:yellow_glazed_terracotta","minecraft:yellow_shulker_box","minecraft:yellow_stained_glass","minecraft:yellow_stained_glass_pane","minecraft:yellow_terracotta","minecraft:yellow_wool","minecraft:zombie_head","minecraft:zombie_horse_spawn_egg","minecraft:zombie_pigman_spawn_egg","minecraft:zombie_spawn_egg","minecraft:zombie_villager_spawn_egg"],"entities":["minecraft:area_effect_cloud","minecraft:armor_stand","minecraft:arrow","minecraft:bat","minecraft:bee","minecraft:blaze","minecraft:boat","minecraft:cat","minecraft:cave_spider","minecraft:chest_minecart","minecraft:chicken","minecraft:cod","minecraft:command_block_minecart","minecraft:cow","minecraft:creeper","minecraft:dolphin","minecraft:donkey","minecraft:dragon_fireball","minecraft:drowned","minecraft:egg","minecraft:elder_guardian","minecraft:end_crystal","minecraft:ender_dragon","minecraft:ender_pearl","minecraft:enderman","minecraft:endermite","minecraft:evoker","minecraft:evoker_fangs","minecraft:experience_bottle","minecraft:experience_orb","minecraft:eye_of_ender","minecraft:falling_block","minecraft:fireball","minecraft:firework_rocket","minecraft:fishing_bobber","minecraft:fox","minecraft:furnace_minecart","minecraft:ghast","minecraft:giant","minecraft:guardian","minecraft:hopper_minecart","minecraft:horse","minecraft:husk","minecraft:illusioner","minecraft:iron_golem","minecraft:item","minecraft:item_frame","minecraft:leash_knot","minecraft:lightning_bolt","minecraft:llama","minecraft:llama_spit","minecraft:magma_cube","minecraft:minecart","minecraft:mooshroom","minecraft:mule","minecraft:ocelot","minecraft:painting","minecraft:panda","minecraft:parrot","minecraft:phantom","minecraft:pig","minecraft:pillager","minecraft:player","minecraft:polar_bear","minecraft:potion","minecraft:pufferfish","minecraft:rabbit","minecraft:ravager","minecraft:salmon","minecraft:sheep","minecraft:shulker","minecraft:shulker_bullet","minecraft:silverfish","minecraft:skeleton","minecraft:skeleton_horse","minecraft:slime","minecraft:small_fireball","minecraft:snow_golem","minecraft:snowball","minecraft:spawner_minecart","minecraft:spectral_arrow","minecraft:spider","minecraft:squid","minecraft:stray","minecraft:tnt","minecraft:tnt_minecart","minecraft:trader_llama","minecraft:trident","minecraft:tropical_fish","minecraft:turtle","minecraft:vex","minecraft:villager","minecraft:vindicator","minecraft:wandering_trader","minecraft:witch","minecraft:wither","minecraft:wither_skeleton","minecraft:wither_skull","minecraft:wolf","minecraft:zombie","minecraft:zombie_horse","minecraft:zombie_pigman","minecraft:zombie_villager"],"biomes":["minecraft:badlands","minecraft:badlands_plateau","minecraft:bamboo_jungle","minecraft:bamboo_jungle_hills","minecraft:beach","minecraft:birch_forest","minecraft:birch_forest_hills","minecraft:cold_ocean","minecraft:dark_forest","minecraft:dark_forest_hills","minecraft:deep_cold_ocean","minecraft:deep_frozen_ocean","minecraft:deep_lukewarm_ocean","minecraft:deep_ocean","minecraft:deep_warm_ocean","minecraft:desert","minecraft:desert_hills","minecraft:desert_lakes","minecraft:end_barrens","minecraft:end_highlands","minecraft:end_midlands","minecraft:eroded_badlands","minecraft:flower_forest","minecraft:forest","minecraft:frozen_ocean","minecraft:frozen_river","minecraft:giant_spruce_taiga","minecraft:giant_spruce_taiga_hills","minecraft:giant_tree_taiga","minecraft:giant_tree_taiga_hills","minecraft:gravelly_mountains","minecraft:ice_spikes","minecraft:jungle","minecraft:jungle_edge","minecraft:jungle_hills","minecraft:lukewarm_ocean","minecraft:modified_badlands_plateau","minecraft:modified_gravelly_mountains","minecraft:modified_jungle","minecraft:modified_jungle_edge","minecraft:modified_wooded_badlands_plateau","minecraft:mountain_edge","minecraft:mountains","minecraft:mushroom_field_shore","minecraft:mushroom_fields","minecraft:nether","minecraft:ocean","minecraft:plains","minecraft:river","minecraft:savanna","minecraft:savanna_plateau","minecraft:shattered_savanna","minecraft:shattered_savanna_plateau","minecraft:small_end_islands","minecraft:snowy_beach","minecraft:snowy_mountains","minecraft:snowy_taiga","minecraft:snowy_taiga_hills","minecraft:snowy_taiga_mountains","minecraft:snowy_tundra","minecraft:stone_shore","minecraft:sunflower_plains","minecraft:swamp","minecraft:swamp_hills","minecraft:taiga","minecraft:taiga_hills","minecraft:taiga_mountains","minecraft:tall_birch_forest","minecraft:tall_birch_hills","minecraft:the_end","minecraft:the_void","minecraft:warm_ocean","minecraft:wooded_badlands_plateau","minecraft:wooded_hills","minecraft:wooded_mountains"],"blocktags":{"minecraft:slabs":["minecraft:stone_slab","minecraft:smooth_stone_slab","minecraft:stone_brick_slab","minecraft:sandstone_slab","minecraft:acacia_slab","minecraft:birch_slab","minecraft:dark_oak_slab","minecraft:jungle_slab","minecraft:oak_slab","minecraft:spruce_slab","minecraft:purpur_slab","minecraft:quartz_slab","minecraft:red_sandstone_slab","minecraft:brick_slab","minecraft:cobblestone_slab","minecraft:nether_brick_slab","minecraft:petrified_oak_slab","minecraft:prismarine_slab","minecraft:prismarine_brick_slab","minecraft:dark_prismarine_slab","minecraft:polished_granite_slab","minecraft:smooth_red_sandstone_slab","minecraft:mossy_stone_brick_slab","minecraft:polished_diorite_slab","minecraft:mossy_cobblestone_slab","minecraft:end_stone_brick_slab","minecraft:smooth_sandstone_slab","minecraft:smooth_quartz_slab","minecraft:granite_slab","minecraft:andesite_slab","minecraft:red_nether_brick_slab","minecraft:polished_andesite_slab","minecraft:diorite_slab","minecraft:cut_sandstone_slab","minecraft:cut_red_sandstone_slab"],"minecraft:carpets":["minecraft:white_carpet","minecraft:orange_carpet","minecraft:magenta_carpet","minecraft:light_blue_carpet","minecraft:yellow_carpet","minecraft:lime_carpet","minecraft:pink_carpet","minecraft:gray_carpet","minecraft:light_gray_carpet","minecraft:cyan_carpet","minecraft:purple_carpet","minecraft:blue_carpet","minecraft:brown_carpet","minecraft:green_carpet","minecraft:red_carpet","minecraft:black_carpet"],"minecraft:stairs":["minecraft:oak_stairs","minecraft:cobblestone_stairs","minecraft:spruce_stairs","minecraft:sandstone_stairs","minecraft:acacia_stairs","minecraft:jungle_stairs","minecraft:birch_stairs","minecraft:dark_oak_stairs","minecraft:nether_brick_stairs","minecraft:stone_brick_stairs","minecraft:brick_stairs","minecraft:purpur_stairs","minecraft:quartz_stairs","minecraft:red_sandstone_stairs","minecraft:prismarine_brick_stairs","minecraft:prismarine_stairs","minecraft:dark_prismarine_stairs","minecraft:polished_granite_stairs","minecraft:smooth_red_sandstone_stairs","minecraft:mossy_stone_brick_stairs","minecraft:polished_diorite_stairs","minecraft:mossy_cobblestone_stairs","minecraft:end_stone_brick_stairs","minecraft:stone_stairs","minecraft:smooth_sandstone_stairs","minecraft:smooth_quartz_stairs","minecraft:granite_stairs","minecraft:andesite_stairs","minecraft:red_nether_brick_stairs","minecraft:polished_andesite_stairs","minecraft:diorite_stairs"],"minecraft:wooden_doors":["minecraft:oak_door","minecraft:spruce_door","minecraft:birch_door","minecraft:jungle_door","minecraft:acacia_door","minecraft:dark_oak_door"],"minecraft:jungle_logs":["minecraft:jungle_log","minecraft:jungle_wood","minecraft:stripped_jungle_log","minecraft:stripped_jungle_wood"],"minecraft:planks":["minecraft:oak_planks","minecraft:spruce_planks","minecraft:birch_planks","minecraft:jungle_planks","minecraft:acacia_planks","minecraft:dark_oak_planks"],"minecraft:wall_corals":["minecraft:tube_coral_wall_fan","minecraft:brain_coral_wall_fan","minecraft:bubble_coral_wall_fan","minecraft:fire_coral_wall_fan","minecraft:horn_coral_wall_fan"],"minecraft:shulker_boxes":["minecraft:shulker_box","minecraft:black_shulker_box","minecraft:blue_shulker_box","minecraft:brown_shulker_box","minecraft:cyan_shulker_box","minecraft:gray_shulker_box","minecraft:green_shulker_box","minecraft:light_blue_shulker_box","minecraft:light_gray_shulker_box","minecraft:lime_shulker_box","minecraft:magenta_shulker_box","minecraft:orange_shulker_box","minecraft:pink_shulker_box","minecraft:purple_shulker_box","minecraft:red_shulker_box","minecraft:white_shulker_box","minecraft:yellow_shulker_box"],"minecraft:acacia_logs":["minecraft:acacia_log","minecraft:acacia_wood","minecraft:stripped_acacia_log","minecraft:stripped_acacia_wood"],"minecraft:wither_immune":["minecraft:barrier","minecraft:bedrock","minecraft:end_portal","minecraft:end_portal_frame","minecraft:end_gateway","minecraft:command_block","minecraft:repeating_command_block","minecraft:chain_command_block","minecraft:structure_block","minecraft:jigsaw","minecraft:moving_piston"],"minecraft:flower_pots":["minecraft:flower_pot","minecraft:potted_poppy","minecraft:potted_blue_orchid","minecraft:potted_allium","minecraft:potted_azure_bluet","minecraft:potted_red_tulip","minecraft:potted_orange_tulip","minecraft:potted_white_tulip","minecraft:potted_pink_tulip","minecraft:potted_oxeye_daisy","minecraft:potted_dandelion","minecraft:potted_oak_sapling","minecraft:potted_spruce_sapling","minecraft:potted_birch_sapling","minecraft:potted_jungle_sapling","minecraft:potted_acacia_sapling","minecraft:potted_dark_oak_sapling","minecraft:potted_red_mushroom","minecraft:potted_brown_mushroom","minecraft:potted_dead_bush","minecraft:potted_fern","minecraft:potted_cactus","minecraft:potted_cornflower","minecraft:potted_lily_of_the_valley","minecraft:potted_wither_rose","minecraft:potted_bamboo"],"minecraft:stone_bricks":["minecraft:stone_bricks","minecraft:mossy_stone_bricks","minecraft:cracked_stone_bricks","minecraft:chiseled_stone_bricks"],"minecraft:enderman_holdable":["minecraft:grass_block","minecraft:dirt","minecraft:coarse_dirt","minecraft:podzol","minecraft:sand","minecraft:red_sand","minecraft:gravel","minecraft:brown_mushroom","minecraft:red_mushroom","minecraft:tnt","minecraft:cactus","minecraft:clay","minecraft:pumpkin","minecraft:carved_pumpkin","minecraft:melon","minecraft:mycelium","minecraft:netherrack","minecraft:dandelion","minecraft:poppy","minecraft:blue_orchid","minecraft:allium","minecraft:azure_bluet","minecraft:red_tulip","minecraft:orange_tulip","minecraft:white_tulip","minecraft:pink_tulip","minecraft:oxeye_daisy","minecraft:cornflower","minecraft:lily_of_the_valley","minecraft:wither_rose"],"minecraft:spruce_logs":["minecraft:spruce_log","minecraft:spruce_wood","minecraft:stripped_spruce_log","minecraft:stripped_spruce_wood"],"minecraft:flowers":["minecraft:dandelion","minecraft:poppy","minecraft:blue_orchid","minecraft:allium","minecraft:azure_bluet","minecraft:red_tulip","minecraft:orange_tulip","minecraft:white_tulip","minecraft:pink_tulip","minecraft:oxeye_daisy","minecraft:cornflower","minecraft:lily_of_the_valley","minecraft:wither_rose","minecraft:sunflower","minecraft:lilac","minecraft:peony","minecraft:rose_bush"],"minecraft:wooden_slabs":["minecraft:oak_slab","minecraft:spruce_slab","minecraft:birch_slab","minecraft:jungle_slab","minecraft:acacia_slab","minecraft:dark_oak_slab"],"minecraft:coral_blocks":["minecraft:tube_coral_block","minecraft:brain_coral_block","minecraft:bubble_coral_block","minecraft:fire_coral_block","minecraft:horn_coral_block"],"minecraft:signs":["minecraft:oak_sign","minecraft:spruce_sign","minecraft:birch_sign","minecraft:acacia_sign","minecraft:jungle_sign","minecraft:dark_oak_sign","minecraft:oak_wall_sign","minecraft:spruce_wall_sign","minecraft:birch_wall_sign","minecraft:acacia_wall_sign","minecraft:jungle_wall_sign","minecraft:dark_oak_wall_sign"],"minecraft:dark_oak_logs":["minecraft:dark_oak_log","minecraft:dark_oak_wood","minecraft:stripped_dark_oak_log","minecraft:stripped_dark_oak_wood"],"minecraft:sand":["minecraft:sand","minecraft:red_sand"],"minecraft:valid_spawn":["minecraft:grass_block","minecraft:podzol"],"minecraft:underwater_bonemeals":["minecraft:seagrass","minecraft:tube_coral_fan","minecraft:brain_coral_fan","minecraft:bubble_coral_fan","minecraft:fire_coral_fan","minecraft:horn_coral_fan","minecraft:tube_coral","minecraft:brain_coral","minecraft:bubble_coral","minecraft:fire_coral","minecraft:horn_coral","minecraft:tube_coral_wall_fan","minecraft:brain_coral_wall_fan","minecraft:bubble_coral_wall_fan","minecraft:fire_coral_wall_fan","minecraft:horn_coral_wall_fan"],"minecraft:oak_logs":["minecraft:oak_log","minecraft:oak_wood","minecraft:stripped_oak_log","minecraft:stripped_oak_wood"],"minecraft:buttons":["minecraft:stone_button","minecraft:oak_button","minecraft:spruce_button","minecraft:birch_button","minecraft:jungle_button","minecraft:acacia_button","minecraft:dark_oak_button"],"minecraft:wooden_pressure_plates":["minecraft:oak_pressure_plate","minecraft:spruce_pressure_plate","minecraft:birch_pressure_plate","minecraft:jungle_pressure_plate","minecraft:acacia_pressure_plate","minecraft:dark_oak_pressure_plate"],"minecraft:beds":["minecraft:red_bed","minecraft:black_bed","minecraft:blue_bed","minecraft:brown_bed","minecraft:cyan_bed","minecraft:gray_bed","minecraft:green_bed","minecraft:light_blue_bed","minecraft:light_gray_bed","minecraft:lime_bed","minecraft:magenta_bed","minecraft:orange_bed","minecraft:pink_bed","minecraft:purple_bed","minecraft:white_bed","minecraft:yellow_bed"],"minecraft:walls":["minecraft:cobblestone_wall","minecraft:mossy_cobblestone_wall","minecraft:brick_wall","minecraft:prismarine_wall","minecraft:red_sandstone_wall","minecraft:mossy_stone_brick_wall","minecraft:granite_wall","minecraft:stone_brick_wall","minecraft:nether_brick_wall","minecraft:andesite_wall","minecraft:red_nether_brick_wall","minecraft:sandstone_wall","minecraft:end_stone_brick_wall","minecraft:diorite_wall"],"minecraft:rails":["minecraft:rail","minecraft:powered_rail","minecraft:detector_rail","minecraft:activator_rail"],"minecraft:beehives":["minecraft:bee_nest","minecraft:beehive"],"minecraft:birch_logs":["minecraft:birch_log","minecraft:birch_wood","minecraft:stripped_birch_log","minecraft:stripped_birch_wood"],"minecraft:wooden_trapdoors":["minecraft:acacia_trapdoor","minecraft:birch_trapdoor","minecraft:dark_oak_trapdoor","minecraft:jungle_trapdoor","minecraft:oak_trapdoor","minecraft:spruce_trapdoor"],"minecraft:wooden_fences":["minecraft:oak_fence","minecraft:acacia_fence","minecraft:dark_oak_fence","minecraft:spruce_fence","minecraft:birch_fence","minecraft:jungle_fence"],"minecraft:saplings":["minecraft:oak_sapling","minecraft:spruce_sapling","minecraft:birch_sapling","minecraft:jungle_sapling","minecraft:acacia_sapling","minecraft:dark_oak_sapling"],"minecraft:small_flowers":["minecraft:dandelion","minecraft:poppy","minecraft:blue_orchid","minecraft:allium","minecraft:azure_bluet","minecraft:red_tulip","minecraft:orange_tulip","minecraft:white_tulip","minecraft:pink_tulip","minecraft:oxeye_daisy","minecraft:cornflower","minecraft:lily_of_the_valley","minecraft:wither_rose"],"minecraft:crops":["minecraft:beetroots","minecraft:carrots","minecraft:potatoes","minecraft:wheat","minecraft:melon_stem","minecraft:pumpkin_stem"],"minecraft:bamboo_plantable_on":["minecraft:bamboo","minecraft:bamboo_sapling","minecraft:gravel","minecraft:dirt","minecraft:grass_block","minecraft:podzol","minecraft:coarse_dirt","minecraft:mycelium","minecraft:sand","minecraft:red_sand"],"minecraft:ice":["minecraft:ice","minecraft:packed_ice","minecraft:blue_ice","minecraft:frosted_ice"],"minecraft:wooden_stairs":["minecraft:oak_stairs","minecraft:spruce_stairs","minecraft:birch_stairs","minecraft:jungle_stairs","minecraft:acacia_stairs","minecraft:dark_oak_stairs"],"minecraft:anvil":["minecraft:anvil","minecraft:chipped_anvil","minecraft:damaged_anvil"],"minecraft:tall_flowers":["minecraft:sunflower","minecraft:lilac","minecraft:peony","minecraft:rose_bush"],"minecraft:logs":["minecraft:dark_oak_log","minecraft:dark_oak_wood","minecraft:stripped_dark_oak_log","minecraft:stripped_dark_oak_wood","minecraft:oak_log","minecraft:oak_wood","minecraft:stripped_oak_log","minecraft:stripped_oak_wood","minecraft:acacia_log","minecraft:acacia_wood","minecraft:stripped_acacia_log","minecraft:stripped_acacia_wood","minecraft:birch_log","minecraft:birch_wood","minecraft:stripped_birch_log","minecraft:stripped_birch_wood","minecraft:jungle_log","minecraft:jungle_wood","minecraft:stripped_jungle_log","minecraft:stripped_jungle_wood","minecraft:spruce_log","minecraft:spruce_wood","minecraft:stripped_spruce_log","minecraft:stripped_spruce_wood"],"minecraft:corals":["minecraft:tube_coral_fan","minecraft:brain_coral_fan","minecraft:bubble_coral_fan","minecraft:fire_coral_fan","minecraft:horn_coral_fan","minecraft:tube_coral","minecraft:brain_coral","minecraft:bubble_coral","minecraft:fire_coral","minecraft:horn_coral"],"minecraft:bee_growables":["minecraft:sweet_berry_bush","minecraft:beetroots","minecraft:carrots","minecraft:potatoes","minecraft:wheat","minecraft:melon_stem","minecraft:pumpkin_stem"],"minecraft:wooden_buttons":["minecraft:oak_button","minecraft:spruce_button","minecraft:birch_button","minecraft:jungle_button","minecraft:acacia_button","minecraft:dark_oak_button"],"minecraft:wool":["minecraft:white_wool","minecraft:orange_wool","minecraft:magenta_wool","minecraft:light_blue_wool","minecraft:yellow_wool","minecraft:lime_wool","minecraft:pink_wool","minecraft:gray_wool","minecraft:light_gray_wool","minecraft:cyan_wool","minecraft:purple_wool","minecraft:blue_wool","minecraft:brown_wool","minecraft:green_wool","minecraft:red_wool","minecraft:black_wool"],"minecraft:coral_plants":["minecraft:tube_coral","minecraft:brain_coral","minecraft:bubble_coral","minecraft:fire_coral","minecraft:horn_coral"],"minecraft:banners":["minecraft:white_banner","minecraft:orange_banner","minecraft:magenta_banner","minecraft:light_blue_banner","minecraft:yellow_banner","minecraft:lime_banner","minecraft:pink_banner","minecraft:gray_banner","minecraft:light_gray_banner","minecraft:cyan_banner","minecraft:purple_banner","minecraft:blue_banner","minecraft:brown_banner","minecraft:green_banner","minecraft:red_banner","minecraft:black_banner","minecraft:white_wall_banner","minecraft:orange_wall_banner","minecraft:magenta_wall_banner","minecraft:light_blue_wall_banner","minecraft:yellow_wall_banner","minecraft:lime_wall_banner","minecraft:pink_wall_banner","minecraft:gray_wall_banner","minecraft:light_gray_wall_banner","minecraft:cyan_wall_banner","minecraft:purple_wall_banner","minecraft:blue_wall_banner","minecraft:brown_wall_banner","minecraft:green_wall_banner","minecraft:red_wall_banner","minecraft:black_wall_banner"],"minecraft:dragon_immune":["minecraft:barrier","minecraft:bedrock","minecraft:end_portal","minecraft:end_portal_frame","minecraft:end_gateway","minecraft:command_block","minecraft:repeating_command_block","minecraft:chain_command_block","minecraft:structure_block","minecraft:jigsaw","minecraft:moving_piston","minecraft:obsidian","minecraft:end_stone","minecraft:iron_bars"],"minecraft:doors":["minecraft:iron_door","minecraft:oak_door","minecraft:spruce_door","minecraft:birch_door","minecraft:jungle_door","minecraft:acacia_door","minecraft:dark_oak_door"],"minecraft:portals":["minecraft:nether_portal","minecraft:end_portal","minecraft:end_gateway"],"minecraft:fences":["minecraft:nether_brick_fence","minecraft:oak_fence","minecraft:acacia_fence","minecraft:dark_oak_fence","minecraft:spruce_fence","minecraft:birch_fence","minecraft:jungle_fence"],"minecraft:wall_signs":["minecraft:oak_wall_sign","minecraft:spruce_wall_sign","minecraft:birch_wall_sign","minecraft:acacia_wall_sign","minecraft:jungle_wall_sign","minecraft:dark_oak_wall_sign"],"minecraft:standing_signs":["minecraft:oak_sign","minecraft:spruce_sign","minecraft:birch_sign","minecraft:acacia_sign","minecraft:jungle_sign","minecraft:dark_oak_sign"],"minecraft:impermeable":["minecraft:glass","minecraft:white_stained_glass","minecraft:orange_stained_glass","minecraft:magenta_stained_glass","minecraft:light_blue_stained_glass","minecraft:yellow_stained_glass","minecraft:lime_stained_glass","minecraft:pink_stained_glass","minecraft:gray_stained_glass","minecraft:light_gray_stained_glass","minecraft:cyan_stained_glass","minecraft:purple_stained_glass","minecraft:blue_stained_glass","minecraft:brown_stained_glass","minecraft:green_stained_glass","minecraft:red_stained_glass","minecraft:black_stained_glass"],"minecraft:trapdoors":["minecraft:iron_trapdoor","minecraft:acacia_trapdoor","minecraft:birch_trapdoor","minecraft:dark_oak_trapdoor","minecraft:jungle_trapdoor","minecraft:oak_trapdoor","minecraft:spruce_trapdoor"],"minecraft:leaves":["minecraft:jungle_leaves","minecraft:oak_leaves","minecraft:spruce_leaves","minecraft:dark_oak_leaves","minecraft:acacia_leaves","minecraft:birch_leaves"]},"itemtags":{"minecraft:boats":["minecraft:oak_boat","minecraft:spruce_boat","minecraft:birch_boat","minecraft:jungle_boat","minecraft:acacia_boat","minecraft:dark_oak_boat"],"minecraft:banners":["minecraft:white_banner","minecraft:orange_banner","minecraft:magenta_banner","minecraft:light_blue_banner","minecraft:yellow_banner","minecraft:lime_banner","minecraft:pink_banner","minecraft:gray_banner","minecraft:light_gray_banner","minecraft:cyan_banner","minecraft:purple_banner","minecraft:blue_banner","minecraft:brown_banner","minecraft:green_banner","minecraft:red_banner","minecraft:black_banner"],"minecraft:arrows":["minecraft:arrow","minecraft:tipped_arrow","minecraft:spectral_arrow"],"minecraft:coals":["minecraft:coal","minecraft:charcoal"],"minecraft:music_discs":["minecraft:music_disc_13","minecraft:music_disc_cat","minecraft:music_disc_blocks","minecraft:music_disc_chirp","minecraft:music_disc_far","minecraft:music_disc_mall","minecraft:music_disc_mellohi","minecraft:music_disc_stal","minecraft:music_disc_strad","minecraft:music_disc_ward","minecraft:music_disc_11","minecraft:music_disc_wait"],"minecraft:fishes":["minecraft:cod","minecraft:cooked_cod","minecraft:salmon","minecraft:cooked_salmon","minecraft:pufferfish","minecraft:tropical_fish"],"minecraft:lectern_books":["minecraft:written_book","minecraft:writable_book"]},"entitytags":{"minecraft:raiders":["minecraft:evoker","minecraft:pillager","minecraft:ravager","minecraft:vindicator","minecraft:illusioner","minecraft:witch"],"minecraft:skeletons":["minecraft:skeleton","minecraft:stray","minecraft:wither_skeleton"],"minecraft:arrows":["minecraft:arrow","minecraft:spectral_arrow"],"minecraft:beehive_inhabitors":["minecraft:bee"]}} \ No newline at end of file +{ + "blocks": { + "minecraft:acacia_button": { + "properties": { + "face": { + "values": [ + "floor", + "wall", + "ceiling" + ], + "type": "enum" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:acacia_button[face=wall,facing=north,powered=false]" + }, + "minecraft:acacia_door": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + }, + "hinge": { + "values": [ + "left", + "right" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:acacia_door[facing=north,half=lower,hinge=left,open=false,powered=false]" + }, + "minecraft:acacia_fence": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:acacia_fence[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:acacia_fence_gate": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "in_wall": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:acacia_fence_gate[facing=north,in_wall=false,open=false,powered=false]" + }, + "minecraft:acacia_leaves": { + "properties": { + "distance": { + "values": [ + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ], + "type": "int" + }, + "persistent": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:acacia_leaves[distance=7,persistent=false]" + }, + "minecraft:acacia_log": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:acacia_log[axis=y]" + }, + "minecraft:acacia_planks": { + "properties": {}, + "defaultstate": "minecraft:acacia_planks" + }, + "minecraft:acacia_pressure_plate": { + "properties": { + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:acacia_pressure_plate[powered=false]" + }, + "minecraft:acacia_sapling": { + "properties": { + "stage": { + "values": [ + "0", + "1" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:acacia_sapling[stage=0]" + }, + "minecraft:acacia_sign": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:acacia_sign[rotation=0,waterlogged=false]" + }, + "minecraft:acacia_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:acacia_slab[type=bottom,waterlogged=false]" + }, + "minecraft:acacia_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:acacia_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:acacia_trapdoor": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:acacia_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]" + }, + "minecraft:acacia_wall_sign": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:acacia_wall_sign[facing=north,waterlogged=false]" + }, + "minecraft:acacia_wood": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:acacia_wood[axis=y]" + }, + "minecraft:activator_rail": { + "properties": { + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "shape": { + "values": [ + "north_south", + "east_west", + "ascending_east", + "ascending_west", + "ascending_north", + "ascending_south" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:activator_rail[powered=false,shape=north_south]" + }, + "minecraft:air": { + "properties": {}, + "defaultstate": "minecraft:air" + }, + "minecraft:allium": { + "properties": {}, + "defaultstate": "minecraft:allium" + }, + "minecraft:andesite": { + "properties": {}, + "defaultstate": "minecraft:andesite" + }, + "minecraft:andesite_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:andesite_slab[type=bottom,waterlogged=false]" + }, + "minecraft:andesite_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:andesite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:andesite_wall": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:andesite_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]" + }, + "minecraft:anvil": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:anvil[facing=north]" + }, + "minecraft:attached_melon_stem": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:attached_melon_stem[facing=north]" + }, + "minecraft:attached_pumpkin_stem": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:attached_pumpkin_stem[facing=north]" + }, + "minecraft:azure_bluet": { + "properties": {}, + "defaultstate": "minecraft:azure_bluet" + }, + "minecraft:bamboo": { + "properties": { + "age": { + "values": [ + "0", + "1" + ], + "type": "int" + }, + "leaves": { + "values": [ + "none", + "small", + "large" + ], + "type": "enum" + }, + "stage": { + "values": [ + "0", + "1" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:bamboo[age=0,leaves=none,stage=0]" + }, + "minecraft:bamboo_sapling": { + "properties": {}, + "defaultstate": "minecraft:bamboo_sapling" + }, + "minecraft:barrel": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:barrel[facing=north,open=false]" + }, + "minecraft:barrier": { + "properties": {}, + "defaultstate": "minecraft:barrier" + }, + "minecraft:beacon": { + "properties": {}, + "defaultstate": "minecraft:beacon" + }, + "minecraft:bedrock": { + "properties": {}, + "defaultstate": "minecraft:bedrock" + }, + "minecraft:bee_nest": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "honey_level": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:bee_nest[facing=north,honey_level=0]" + }, + "minecraft:beehive": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "honey_level": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:beehive[facing=north,honey_level=0]" + }, + "minecraft:beetroots": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:beetroots[age=0]" + }, + "minecraft:bell": { + "properties": { + "attachment": { + "values": [ + "floor", + "ceiling", + "single_wall", + "double_wall" + ], + "type": "enum" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:bell[attachment=floor,facing=north,powered=false]" + }, + "minecraft:birch_button": { + "properties": { + "face": { + "values": [ + "floor", + "wall", + "ceiling" + ], + "type": "enum" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:birch_button[face=wall,facing=north,powered=false]" + }, + "minecraft:birch_door": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + }, + "hinge": { + "values": [ + "left", + "right" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:birch_door[facing=north,half=lower,hinge=left,open=false,powered=false]" + }, + "minecraft:birch_fence": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:birch_fence[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:birch_fence_gate": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "in_wall": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:birch_fence_gate[facing=north,in_wall=false,open=false,powered=false]" + }, + "minecraft:birch_leaves": { + "properties": { + "distance": { + "values": [ + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ], + "type": "int" + }, + "persistent": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:birch_leaves[distance=7,persistent=false]" + }, + "minecraft:birch_log": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:birch_log[axis=y]" + }, + "minecraft:birch_planks": { + "properties": {}, + "defaultstate": "minecraft:birch_planks" + }, + "minecraft:birch_pressure_plate": { + "properties": { + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:birch_pressure_plate[powered=false]" + }, + "minecraft:birch_sapling": { + "properties": { + "stage": { + "values": [ + "0", + "1" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:birch_sapling[stage=0]" + }, + "minecraft:birch_sign": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:birch_sign[rotation=0,waterlogged=false]" + }, + "minecraft:birch_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:birch_slab[type=bottom,waterlogged=false]" + }, + "minecraft:birch_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:birch_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:birch_trapdoor": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:birch_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]" + }, + "minecraft:birch_wall_sign": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:birch_wall_sign[facing=north,waterlogged=false]" + }, + "minecraft:birch_wood": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:birch_wood[axis=y]" + }, + "minecraft:black_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:black_banner[rotation=0]" + }, + "minecraft:black_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:black_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:black_carpet": { + "properties": {}, + "defaultstate": "minecraft:black_carpet" + }, + "minecraft:black_concrete": { + "properties": {}, + "defaultstate": "minecraft:black_concrete" + }, + "minecraft:black_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:black_concrete_powder" + }, + "minecraft:black_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:black_glazed_terracotta[facing=north]" + }, + "minecraft:black_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:black_shulker_box[facing=up]" + }, + "minecraft:black_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:black_stained_glass" + }, + "minecraft:black_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:black_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:black_terracotta": { + "properties": {}, + "defaultstate": "minecraft:black_terracotta" + }, + "minecraft:black_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:black_wall_banner[facing=north]" + }, + "minecraft:black_wool": { + "properties": {}, + "defaultstate": "minecraft:black_wool" + }, + "minecraft:blast_furnace": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "lit": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:blast_furnace[facing=north,lit=false]" + }, + "minecraft:blue_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:blue_banner[rotation=0]" + }, + "minecraft:blue_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:blue_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:blue_carpet": { + "properties": {}, + "defaultstate": "minecraft:blue_carpet" + }, + "minecraft:blue_concrete": { + "properties": {}, + "defaultstate": "minecraft:blue_concrete" + }, + "minecraft:blue_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:blue_concrete_powder" + }, + "minecraft:blue_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:blue_glazed_terracotta[facing=north]" + }, + "minecraft:blue_ice": { + "properties": {}, + "defaultstate": "minecraft:blue_ice" + }, + "minecraft:blue_orchid": { + "properties": {}, + "defaultstate": "minecraft:blue_orchid" + }, + "minecraft:blue_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:blue_shulker_box[facing=up]" + }, + "minecraft:blue_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:blue_stained_glass" + }, + "minecraft:blue_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:blue_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:blue_terracotta": { + "properties": {}, + "defaultstate": "minecraft:blue_terracotta" + }, + "minecraft:blue_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:blue_wall_banner[facing=north]" + }, + "minecraft:blue_wool": { + "properties": {}, + "defaultstate": "minecraft:blue_wool" + }, + "minecraft:bone_block": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:bone_block[axis=y]" + }, + "minecraft:bookshelf": { + "properties": {}, + "defaultstate": "minecraft:bookshelf" + }, + "minecraft:brain_coral": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:brain_coral[waterlogged=true]" + }, + "minecraft:brain_coral_block": { + "properties": {}, + "defaultstate": "minecraft:brain_coral_block" + }, + "minecraft:brain_coral_fan": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:brain_coral_fan[waterlogged=true]" + }, + "minecraft:brain_coral_wall_fan": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:brain_coral_wall_fan[facing=north,waterlogged=true]" + }, + "minecraft:brewing_stand": { + "properties": { + "has_bottle_0": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "has_bottle_1": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "has_bottle_2": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:brewing_stand[has_bottle_0=false,has_bottle_1=false,has_bottle_2=false]" + }, + "minecraft:brick_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:brick_slab[type=bottom,waterlogged=false]" + }, + "minecraft:brick_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:brick_wall": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:brick_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]" + }, + "minecraft:bricks": { + "properties": {}, + "defaultstate": "minecraft:bricks" + }, + "minecraft:brown_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:brown_banner[rotation=0]" + }, + "minecraft:brown_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:brown_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:brown_carpet": { + "properties": {}, + "defaultstate": "minecraft:brown_carpet" + }, + "minecraft:brown_concrete": { + "properties": {}, + "defaultstate": "minecraft:brown_concrete" + }, + "minecraft:brown_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:brown_concrete_powder" + }, + "minecraft:brown_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:brown_glazed_terracotta[facing=north]" + }, + "minecraft:brown_mushroom": { + "properties": {}, + "defaultstate": "minecraft:brown_mushroom" + }, + "minecraft:brown_mushroom_block": { + "properties": { + "down": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:brown_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true]" + }, + "minecraft:brown_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:brown_shulker_box[facing=up]" + }, + "minecraft:brown_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:brown_stained_glass" + }, + "minecraft:brown_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:brown_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:brown_terracotta": { + "properties": {}, + "defaultstate": "minecraft:brown_terracotta" + }, + "minecraft:brown_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:brown_wall_banner[facing=north]" + }, + "minecraft:brown_wool": { + "properties": {}, + "defaultstate": "minecraft:brown_wool" + }, + "minecraft:bubble_column": { + "properties": { + "drag": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:bubble_column[drag=true]" + }, + "minecraft:bubble_coral": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:bubble_coral[waterlogged=true]" + }, + "minecraft:bubble_coral_block": { + "properties": {}, + "defaultstate": "minecraft:bubble_coral_block" + }, + "minecraft:bubble_coral_fan": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:bubble_coral_fan[waterlogged=true]" + }, + "minecraft:bubble_coral_wall_fan": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:bubble_coral_wall_fan[facing=north,waterlogged=true]" + }, + "minecraft:cactus": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:cactus[age=0]" + }, + "minecraft:cake": { + "properties": { + "bites": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:cake[bites=0]" + }, + "minecraft:campfire": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "lit": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "signal_fire": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:campfire[facing=north,lit=true,signal_fire=false,waterlogged=false]" + }, + "minecraft:carrots": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:carrots[age=0]" + }, + "minecraft:cartography_table": { + "properties": {}, + "defaultstate": "minecraft:cartography_table" + }, + "minecraft:carved_pumpkin": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:carved_pumpkin[facing=north]" + }, + "minecraft:cauldron": { + "properties": { + "level": { + "values": [ + "0", + "1", + "2", + "3" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:cauldron[level=0]" + }, + "minecraft:cave_air": { + "properties": {}, + "defaultstate": "minecraft:cave_air" + }, + "minecraft:chain_command_block": { + "properties": { + "conditional": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:chain_command_block[conditional=false,facing=north]" + }, + "minecraft:chest": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "type": { + "values": [ + "single", + "left", + "right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:chest[facing=north,type=single,waterlogged=false]" + }, + "minecraft:chipped_anvil": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:chipped_anvil[facing=north]" + }, + "minecraft:chiseled_quartz_block": { + "properties": {}, + "defaultstate": "minecraft:chiseled_quartz_block" + }, + "minecraft:chiseled_red_sandstone": { + "properties": {}, + "defaultstate": "minecraft:chiseled_red_sandstone" + }, + "minecraft:chiseled_sandstone": { + "properties": {}, + "defaultstate": "minecraft:chiseled_sandstone" + }, + "minecraft:chiseled_stone_bricks": { + "properties": {}, + "defaultstate": "minecraft:chiseled_stone_bricks" + }, + "minecraft:chorus_flower": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:chorus_flower[age=0]" + }, + "minecraft:chorus_plant": { + "properties": { + "down": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:chorus_plant[down=false,east=false,north=false,south=false,up=false,west=false]" + }, + "minecraft:clay": { + "properties": {}, + "defaultstate": "minecraft:clay" + }, + "minecraft:coal_block": { + "properties": {}, + "defaultstate": "minecraft:coal_block" + }, + "minecraft:coal_ore": { + "properties": {}, + "defaultstate": "minecraft:coal_ore" + }, + "minecraft:coarse_dirt": { + "properties": {}, + "defaultstate": "minecraft:coarse_dirt" + }, + "minecraft:cobblestone": { + "properties": {}, + "defaultstate": "minecraft:cobblestone" + }, + "minecraft:cobblestone_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:cobblestone_slab[type=bottom,waterlogged=false]" + }, + "minecraft:cobblestone_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:cobblestone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:cobblestone_wall": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:cobblestone_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]" + }, + "minecraft:cobweb": { + "properties": {}, + "defaultstate": "minecraft:cobweb" + }, + "minecraft:cocoa": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2" + ], + "type": "int" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:cocoa[age=0,facing=north]" + }, + "minecraft:command_block": { + "properties": { + "conditional": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:command_block[conditional=false,facing=north]" + }, + "minecraft:comparator": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "mode": { + "values": [ + "compare", + "subtract" + ], + "type": "enum" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:comparator[facing=north,mode=compare,powered=false]" + }, + "minecraft:composter": { + "properties": { + "level": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:composter[level=0]" + }, + "minecraft:conduit": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:conduit[waterlogged=true]" + }, + "minecraft:cornflower": { + "properties": {}, + "defaultstate": "minecraft:cornflower" + }, + "minecraft:cracked_stone_bricks": { + "properties": {}, + "defaultstate": "minecraft:cracked_stone_bricks" + }, + "minecraft:crafting_table": { + "properties": {}, + "defaultstate": "minecraft:crafting_table" + }, + "minecraft:creeper_head": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:creeper_head[rotation=0]" + }, + "minecraft:creeper_wall_head": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:creeper_wall_head[facing=north]" + }, + "minecraft:cut_red_sandstone": { + "properties": {}, + "defaultstate": "minecraft:cut_red_sandstone" + }, + "minecraft:cut_red_sandstone_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:cut_red_sandstone_slab[type=bottom,waterlogged=false]" + }, + "minecraft:cut_sandstone": { + "properties": {}, + "defaultstate": "minecraft:cut_sandstone" + }, + "minecraft:cut_sandstone_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:cut_sandstone_slab[type=bottom,waterlogged=false]" + }, + "minecraft:cyan_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:cyan_banner[rotation=0]" + }, + "minecraft:cyan_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:cyan_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:cyan_carpet": { + "properties": {}, + "defaultstate": "minecraft:cyan_carpet" + }, + "minecraft:cyan_concrete": { + "properties": {}, + "defaultstate": "minecraft:cyan_concrete" + }, + "minecraft:cyan_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:cyan_concrete_powder" + }, + "minecraft:cyan_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:cyan_glazed_terracotta[facing=north]" + }, + "minecraft:cyan_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:cyan_shulker_box[facing=up]" + }, + "minecraft:cyan_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:cyan_stained_glass" + }, + "minecraft:cyan_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:cyan_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:cyan_terracotta": { + "properties": {}, + "defaultstate": "minecraft:cyan_terracotta" + }, + "minecraft:cyan_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:cyan_wall_banner[facing=north]" + }, + "minecraft:cyan_wool": { + "properties": {}, + "defaultstate": "minecraft:cyan_wool" + }, + "minecraft:damaged_anvil": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:damaged_anvil[facing=north]" + }, + "minecraft:dandelion": { + "properties": {}, + "defaultstate": "minecraft:dandelion" + }, + "minecraft:dark_oak_button": { + "properties": { + "face": { + "values": [ + "floor", + "wall", + "ceiling" + ], + "type": "enum" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dark_oak_button[face=wall,facing=north,powered=false]" + }, + "minecraft:dark_oak_door": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + }, + "hinge": { + "values": [ + "left", + "right" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dark_oak_door[facing=north,half=lower,hinge=left,open=false,powered=false]" + }, + "minecraft:dark_oak_fence": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dark_oak_fence[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:dark_oak_fence_gate": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "in_wall": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dark_oak_fence_gate[facing=north,in_wall=false,open=false,powered=false]" + }, + "minecraft:dark_oak_leaves": { + "properties": { + "distance": { + "values": [ + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ], + "type": "int" + }, + "persistent": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dark_oak_leaves[distance=7,persistent=false]" + }, + "minecraft:dark_oak_log": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:dark_oak_log[axis=y]" + }, + "minecraft:dark_oak_planks": { + "properties": {}, + "defaultstate": "minecraft:dark_oak_planks" + }, + "minecraft:dark_oak_pressure_plate": { + "properties": { + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dark_oak_pressure_plate[powered=false]" + }, + "minecraft:dark_oak_sapling": { + "properties": { + "stage": { + "values": [ + "0", + "1" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:dark_oak_sapling[stage=0]" + }, + "minecraft:dark_oak_sign": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dark_oak_sign[rotation=0,waterlogged=false]" + }, + "minecraft:dark_oak_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dark_oak_slab[type=bottom,waterlogged=false]" + }, + "minecraft:dark_oak_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dark_oak_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:dark_oak_trapdoor": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dark_oak_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]" + }, + "minecraft:dark_oak_wall_sign": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dark_oak_wall_sign[facing=north,waterlogged=false]" + }, + "minecraft:dark_oak_wood": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:dark_oak_wood[axis=y]" + }, + "minecraft:dark_prismarine": { + "properties": {}, + "defaultstate": "minecraft:dark_prismarine" + }, + "minecraft:dark_prismarine_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dark_prismarine_slab[type=bottom,waterlogged=false]" + }, + "minecraft:dark_prismarine_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dark_prismarine_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:daylight_detector": { + "properties": { + "inverted": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "power": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:daylight_detector[inverted=false,power=0]" + }, + "minecraft:dead_brain_coral": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_brain_coral[waterlogged=true]" + }, + "minecraft:dead_brain_coral_block": { + "properties": {}, + "defaultstate": "minecraft:dead_brain_coral_block" + }, + "minecraft:dead_brain_coral_fan": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_brain_coral_fan[waterlogged=true]" + }, + "minecraft:dead_brain_coral_wall_fan": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_brain_coral_wall_fan[facing=north,waterlogged=true]" + }, + "minecraft:dead_bubble_coral": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_bubble_coral[waterlogged=true]" + }, + "minecraft:dead_bubble_coral_block": { + "properties": {}, + "defaultstate": "minecraft:dead_bubble_coral_block" + }, + "minecraft:dead_bubble_coral_fan": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_bubble_coral_fan[waterlogged=true]" + }, + "minecraft:dead_bubble_coral_wall_fan": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_bubble_coral_wall_fan[facing=north,waterlogged=true]" + }, + "minecraft:dead_bush": { + "properties": {}, + "defaultstate": "minecraft:dead_bush" + }, + "minecraft:dead_fire_coral": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_fire_coral[waterlogged=true]" + }, + "minecraft:dead_fire_coral_block": { + "properties": {}, + "defaultstate": "minecraft:dead_fire_coral_block" + }, + "minecraft:dead_fire_coral_fan": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_fire_coral_fan[waterlogged=true]" + }, + "minecraft:dead_fire_coral_wall_fan": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_fire_coral_wall_fan[facing=north,waterlogged=true]" + }, + "minecraft:dead_horn_coral": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_horn_coral[waterlogged=true]" + }, + "minecraft:dead_horn_coral_block": { + "properties": {}, + "defaultstate": "minecraft:dead_horn_coral_block" + }, + "minecraft:dead_horn_coral_fan": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_horn_coral_fan[waterlogged=true]" + }, + "minecraft:dead_horn_coral_wall_fan": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_horn_coral_wall_fan[facing=north,waterlogged=true]" + }, + "minecraft:dead_tube_coral": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_tube_coral[waterlogged=true]" + }, + "minecraft:dead_tube_coral_block": { + "properties": {}, + "defaultstate": "minecraft:dead_tube_coral_block" + }, + "minecraft:dead_tube_coral_fan": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_tube_coral_fan[waterlogged=true]" + }, + "minecraft:dead_tube_coral_wall_fan": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_tube_coral_wall_fan[facing=north,waterlogged=true]" + }, + "minecraft:detector_rail": { + "properties": { + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "shape": { + "values": [ + "north_south", + "east_west", + "ascending_east", + "ascending_west", + "ascending_north", + "ascending_south" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:detector_rail[powered=false,shape=north_south]" + }, + "minecraft:diamond_block": { + "properties": {}, + "defaultstate": "minecraft:diamond_block" + }, + "minecraft:diamond_ore": { + "properties": {}, + "defaultstate": "minecraft:diamond_ore" + }, + "minecraft:diorite": { + "properties": {}, + "defaultstate": "minecraft:diorite" + }, + "minecraft:diorite_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:diorite_slab[type=bottom,waterlogged=false]" + }, + "minecraft:diorite_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:diorite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:diorite_wall": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:diorite_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]" + }, + "minecraft:dirt": { + "properties": {}, + "defaultstate": "minecraft:dirt" + }, + "minecraft:dispenser": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + }, + "triggered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dispenser[facing=north,triggered=false]" + }, + "minecraft:dragon_egg": { + "properties": {}, + "defaultstate": "minecraft:dragon_egg" + }, + "minecraft:dragon_head": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:dragon_head[rotation=0]" + }, + "minecraft:dragon_wall_head": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:dragon_wall_head[facing=north]" + }, + "minecraft:dried_kelp_block": { + "properties": {}, + "defaultstate": "minecraft:dried_kelp_block" + }, + "minecraft:dropper": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + }, + "triggered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dropper[facing=north,triggered=false]" + }, + "minecraft:emerald_block": { + "properties": {}, + "defaultstate": "minecraft:emerald_block" + }, + "minecraft:emerald_ore": { + "properties": {}, + "defaultstate": "minecraft:emerald_ore" + }, + "minecraft:enchanting_table": { + "properties": {}, + "defaultstate": "minecraft:enchanting_table" + }, + "minecraft:end_gateway": { + "properties": {}, + "defaultstate": "minecraft:end_gateway" + }, + "minecraft:end_portal": { + "properties": {}, + "defaultstate": "minecraft:end_portal" + }, + "minecraft:end_portal_frame": { + "properties": { + "eye": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:end_portal_frame[eye=false,facing=north]" + }, + "minecraft:end_rod": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:end_rod[facing=up]" + }, + "minecraft:end_stone": { + "properties": {}, + "defaultstate": "minecraft:end_stone" + }, + "minecraft:end_stone_brick_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:end_stone_brick_slab[type=bottom,waterlogged=false]" + }, + "minecraft:end_stone_brick_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:end_stone_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:end_stone_brick_wall": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:end_stone_brick_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]" + }, + "minecraft:end_stone_bricks": { + "properties": {}, + "defaultstate": "minecraft:end_stone_bricks" + }, + "minecraft:ender_chest": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:ender_chest[facing=north,waterlogged=false]" + }, + "minecraft:farmland": { + "properties": { + "moisture": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:farmland[moisture=0]" + }, + "minecraft:fern": { + "properties": {}, + "defaultstate": "minecraft:fern" + }, + "minecraft:fire": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + }, + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:fire[age=0,east=false,north=false,south=false,up=false,west=false]" + }, + "minecraft:fire_coral": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:fire_coral[waterlogged=true]" + }, + "minecraft:fire_coral_block": { + "properties": {}, + "defaultstate": "minecraft:fire_coral_block" + }, + "minecraft:fire_coral_fan": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:fire_coral_fan[waterlogged=true]" + }, + "minecraft:fire_coral_wall_fan": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:fire_coral_wall_fan[facing=north,waterlogged=true]" + }, + "minecraft:fletching_table": { + "properties": {}, + "defaultstate": "minecraft:fletching_table" + }, + "minecraft:flower_pot": { + "properties": {}, + "defaultstate": "minecraft:flower_pot" + }, + "minecraft:frosted_ice": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:frosted_ice[age=0]" + }, + "minecraft:furnace": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "lit": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:furnace[facing=north,lit=false]" + }, + "minecraft:glass": { + "properties": {}, + "defaultstate": "minecraft:glass" + }, + "minecraft:glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:glowstone": { + "properties": {}, + "defaultstate": "minecraft:glowstone" + }, + "minecraft:gold_block": { + "properties": {}, + "defaultstate": "minecraft:gold_block" + }, + "minecraft:gold_ore": { + "properties": {}, + "defaultstate": "minecraft:gold_ore" + }, + "minecraft:granite": { + "properties": {}, + "defaultstate": "minecraft:granite" + }, + "minecraft:granite_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:granite_slab[type=bottom,waterlogged=false]" + }, + "minecraft:granite_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:granite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:granite_wall": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:granite_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]" + }, + "minecraft:grass": { + "properties": {}, + "defaultstate": "minecraft:grass" + }, + "minecraft:grass_block": { + "properties": { + "snowy": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:grass_block[snowy=false]" + }, + "minecraft:grass_path": { + "properties": {}, + "defaultstate": "minecraft:grass_path" + }, + "minecraft:gravel": { + "properties": {}, + "defaultstate": "minecraft:gravel" + }, + "minecraft:gray_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:gray_banner[rotation=0]" + }, + "minecraft:gray_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:gray_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:gray_carpet": { + "properties": {}, + "defaultstate": "minecraft:gray_carpet" + }, + "minecraft:gray_concrete": { + "properties": {}, + "defaultstate": "minecraft:gray_concrete" + }, + "minecraft:gray_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:gray_concrete_powder" + }, + "minecraft:gray_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:gray_glazed_terracotta[facing=north]" + }, + "minecraft:gray_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:gray_shulker_box[facing=up]" + }, + "minecraft:gray_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:gray_stained_glass" + }, + "minecraft:gray_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:gray_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:gray_terracotta": { + "properties": {}, + "defaultstate": "minecraft:gray_terracotta" + }, + "minecraft:gray_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:gray_wall_banner[facing=north]" + }, + "minecraft:gray_wool": { + "properties": {}, + "defaultstate": "minecraft:gray_wool" + }, + "minecraft:green_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:green_banner[rotation=0]" + }, + "minecraft:green_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:green_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:green_carpet": { + "properties": {}, + "defaultstate": "minecraft:green_carpet" + }, + "minecraft:green_concrete": { + "properties": {}, + "defaultstate": "minecraft:green_concrete" + }, + "minecraft:green_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:green_concrete_powder" + }, + "minecraft:green_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:green_glazed_terracotta[facing=north]" + }, + "minecraft:green_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:green_shulker_box[facing=up]" + }, + "minecraft:green_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:green_stained_glass" + }, + "minecraft:green_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:green_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:green_terracotta": { + "properties": {}, + "defaultstate": "minecraft:green_terracotta" + }, + "minecraft:green_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:green_wall_banner[facing=north]" + }, + "minecraft:green_wool": { + "properties": {}, + "defaultstate": "minecraft:green_wool" + }, + "minecraft:grindstone": { + "properties": { + "face": { + "values": [ + "floor", + "wall", + "ceiling" + ], + "type": "enum" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:grindstone[face=wall,facing=north]" + }, + "minecraft:hay_block": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:hay_block[axis=y]" + }, + "minecraft:heavy_weighted_pressure_plate": { + "properties": { + "power": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:heavy_weighted_pressure_plate[power=0]" + }, + "minecraft:honey_block": { + "properties": {}, + "defaultstate": "minecraft:honey_block" + }, + "minecraft:honeycomb_block": { + "properties": {}, + "defaultstate": "minecraft:honeycomb_block" + }, + "minecraft:hopper": { + "properties": { + "enabled": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "facing": { + "values": [ + "down", + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:hopper[enabled=true,facing=down]" + }, + "minecraft:horn_coral": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:horn_coral[waterlogged=true]" + }, + "minecraft:horn_coral_block": { + "properties": {}, + "defaultstate": "minecraft:horn_coral_block" + }, + "minecraft:horn_coral_fan": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:horn_coral_fan[waterlogged=true]" + }, + "minecraft:horn_coral_wall_fan": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:horn_coral_wall_fan[facing=north,waterlogged=true]" + }, + "minecraft:ice": { + "properties": {}, + "defaultstate": "minecraft:ice" + }, + "minecraft:infested_chiseled_stone_bricks": { + "properties": {}, + "defaultstate": "minecraft:infested_chiseled_stone_bricks" + }, + "minecraft:infested_cobblestone": { + "properties": {}, + "defaultstate": "minecraft:infested_cobblestone" + }, + "minecraft:infested_cracked_stone_bricks": { + "properties": {}, + "defaultstate": "minecraft:infested_cracked_stone_bricks" + }, + "minecraft:infested_mossy_stone_bricks": { + "properties": {}, + "defaultstate": "minecraft:infested_mossy_stone_bricks" + }, + "minecraft:infested_stone": { + "properties": {}, + "defaultstate": "minecraft:infested_stone" + }, + "minecraft:infested_stone_bricks": { + "properties": {}, + "defaultstate": "minecraft:infested_stone_bricks" + }, + "minecraft:iron_bars": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:iron_bars[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:iron_block": { + "properties": {}, + "defaultstate": "minecraft:iron_block" + }, + "minecraft:iron_door": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + }, + "hinge": { + "values": [ + "left", + "right" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:iron_door[facing=north,half=lower,hinge=left,open=false,powered=false]" + }, + "minecraft:iron_ore": { + "properties": {}, + "defaultstate": "minecraft:iron_ore" + }, + "minecraft:iron_trapdoor": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:iron_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]" + }, + "minecraft:jack_o_lantern": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:jack_o_lantern[facing=north]" + }, + "minecraft:jigsaw": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:jigsaw[facing=up]" + }, + "minecraft:jukebox": { + "properties": { + "has_record": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:jukebox[has_record=false]" + }, + "minecraft:jungle_button": { + "properties": { + "face": { + "values": [ + "floor", + "wall", + "ceiling" + ], + "type": "enum" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:jungle_button[face=wall,facing=north,powered=false]" + }, + "minecraft:jungle_door": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + }, + "hinge": { + "values": [ + "left", + "right" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:jungle_door[facing=north,half=lower,hinge=left,open=false,powered=false]" + }, + "minecraft:jungle_fence": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:jungle_fence[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:jungle_fence_gate": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "in_wall": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:jungle_fence_gate[facing=north,in_wall=false,open=false,powered=false]" + }, + "minecraft:jungle_leaves": { + "properties": { + "distance": { + "values": [ + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ], + "type": "int" + }, + "persistent": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:jungle_leaves[distance=7,persistent=false]" + }, + "minecraft:jungle_log": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:jungle_log[axis=y]" + }, + "minecraft:jungle_planks": { + "properties": {}, + "defaultstate": "minecraft:jungle_planks" + }, + "minecraft:jungle_pressure_plate": { + "properties": { + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:jungle_pressure_plate[powered=false]" + }, + "minecraft:jungle_sapling": { + "properties": { + "stage": { + "values": [ + "0", + "1" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:jungle_sapling[stage=0]" + }, + "minecraft:jungle_sign": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:jungle_sign[rotation=0,waterlogged=false]" + }, + "minecraft:jungle_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:jungle_slab[type=bottom,waterlogged=false]" + }, + "minecraft:jungle_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:jungle_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:jungle_trapdoor": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:jungle_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]" + }, + "minecraft:jungle_wall_sign": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:jungle_wall_sign[facing=north,waterlogged=false]" + }, + "minecraft:jungle_wood": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:jungle_wood[axis=y]" + }, + "minecraft:kelp": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15", + "16", + "17", + "18", + "19", + "20", + "21", + "22", + "23", + "24", + "25" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:kelp[age=0]" + }, + "minecraft:kelp_plant": { + "properties": {}, + "defaultstate": "minecraft:kelp_plant" + }, + "minecraft:ladder": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:ladder[facing=north,waterlogged=false]" + }, + "minecraft:lantern": { + "properties": { + "hanging": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:lantern[hanging=false]" + }, + "minecraft:lapis_block": { + "properties": {}, + "defaultstate": "minecraft:lapis_block" + }, + "minecraft:lapis_ore": { + "properties": {}, + "defaultstate": "minecraft:lapis_ore" + }, + "minecraft:large_fern": { + "properties": { + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:large_fern[half=lower]" + }, + "minecraft:lava": { + "properties": { + "level": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:lava[level=0]" + }, + "minecraft:lectern": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "has_book": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:lectern[facing=north,has_book=false,powered=false]" + }, + "minecraft:lever": { + "properties": { + "face": { + "values": [ + "floor", + "wall", + "ceiling" + ], + "type": "enum" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:lever[face=wall,facing=north,powered=false]" + }, + "minecraft:light_blue_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:light_blue_banner[rotation=0]" + }, + "minecraft:light_blue_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:light_blue_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:light_blue_carpet": { + "properties": {}, + "defaultstate": "minecraft:light_blue_carpet" + }, + "minecraft:light_blue_concrete": { + "properties": {}, + "defaultstate": "minecraft:light_blue_concrete" + }, + "minecraft:light_blue_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:light_blue_concrete_powder" + }, + "minecraft:light_blue_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:light_blue_glazed_terracotta[facing=north]" + }, + "minecraft:light_blue_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:light_blue_shulker_box[facing=up]" + }, + "minecraft:light_blue_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:light_blue_stained_glass" + }, + "minecraft:light_blue_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:light_blue_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:light_blue_terracotta": { + "properties": {}, + "defaultstate": "minecraft:light_blue_terracotta" + }, + "minecraft:light_blue_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:light_blue_wall_banner[facing=north]" + }, + "minecraft:light_blue_wool": { + "properties": {}, + "defaultstate": "minecraft:light_blue_wool" + }, + "minecraft:light_gray_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:light_gray_banner[rotation=0]" + }, + "minecraft:light_gray_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:light_gray_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:light_gray_carpet": { + "properties": {}, + "defaultstate": "minecraft:light_gray_carpet" + }, + "minecraft:light_gray_concrete": { + "properties": {}, + "defaultstate": "minecraft:light_gray_concrete" + }, + "minecraft:light_gray_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:light_gray_concrete_powder" + }, + "minecraft:light_gray_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:light_gray_glazed_terracotta[facing=north]" + }, + "minecraft:light_gray_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:light_gray_shulker_box[facing=up]" + }, + "minecraft:light_gray_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:light_gray_stained_glass" + }, + "minecraft:light_gray_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:light_gray_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:light_gray_terracotta": { + "properties": {}, + "defaultstate": "minecraft:light_gray_terracotta" + }, + "minecraft:light_gray_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:light_gray_wall_banner[facing=north]" + }, + "minecraft:light_gray_wool": { + "properties": {}, + "defaultstate": "minecraft:light_gray_wool" + }, + "minecraft:light_weighted_pressure_plate": { + "properties": { + "power": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:light_weighted_pressure_plate[power=0]" + }, + "minecraft:lilac": { + "properties": { + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:lilac[half=lower]" + }, + "minecraft:lily_of_the_valley": { + "properties": {}, + "defaultstate": "minecraft:lily_of_the_valley" + }, + "minecraft:lily_pad": { + "properties": {}, + "defaultstate": "minecraft:lily_pad" + }, + "minecraft:lime_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:lime_banner[rotation=0]" + }, + "minecraft:lime_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:lime_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:lime_carpet": { + "properties": {}, + "defaultstate": "minecraft:lime_carpet" + }, + "minecraft:lime_concrete": { + "properties": {}, + "defaultstate": "minecraft:lime_concrete" + }, + "minecraft:lime_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:lime_concrete_powder" + }, + "minecraft:lime_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:lime_glazed_terracotta[facing=north]" + }, + "minecraft:lime_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:lime_shulker_box[facing=up]" + }, + "minecraft:lime_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:lime_stained_glass" + }, + "minecraft:lime_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:lime_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:lime_terracotta": { + "properties": {}, + "defaultstate": "minecraft:lime_terracotta" + }, + "minecraft:lime_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:lime_wall_banner[facing=north]" + }, + "minecraft:lime_wool": { + "properties": {}, + "defaultstate": "minecraft:lime_wool" + }, + "minecraft:loom": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:loom[facing=north]" + }, + "minecraft:magenta_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:magenta_banner[rotation=0]" + }, + "minecraft:magenta_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:magenta_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:magenta_carpet": { + "properties": {}, + "defaultstate": "minecraft:magenta_carpet" + }, + "minecraft:magenta_concrete": { + "properties": {}, + "defaultstate": "minecraft:magenta_concrete" + }, + "minecraft:magenta_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:magenta_concrete_powder" + }, + "minecraft:magenta_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:magenta_glazed_terracotta[facing=north]" + }, + "minecraft:magenta_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:magenta_shulker_box[facing=up]" + }, + "minecraft:magenta_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:magenta_stained_glass" + }, + "minecraft:magenta_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:magenta_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:magenta_terracotta": { + "properties": {}, + "defaultstate": "minecraft:magenta_terracotta" + }, + "minecraft:magenta_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:magenta_wall_banner[facing=north]" + }, + "minecraft:magenta_wool": { + "properties": {}, + "defaultstate": "minecraft:magenta_wool" + }, + "minecraft:magma_block": { + "properties": {}, + "defaultstate": "minecraft:magma_block" + }, + "minecraft:melon": { + "properties": {}, + "defaultstate": "minecraft:melon" + }, + "minecraft:melon_stem": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:melon_stem[age=0]" + }, + "minecraft:mossy_cobblestone": { + "properties": {}, + "defaultstate": "minecraft:mossy_cobblestone" + }, + "minecraft:mossy_cobblestone_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:mossy_cobblestone_slab[type=bottom,waterlogged=false]" + }, + "minecraft:mossy_cobblestone_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:mossy_cobblestone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:mossy_cobblestone_wall": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:mossy_cobblestone_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]" + }, + "minecraft:mossy_stone_brick_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:mossy_stone_brick_slab[type=bottom,waterlogged=false]" + }, + "minecraft:mossy_stone_brick_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:mossy_stone_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:mossy_stone_brick_wall": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:mossy_stone_brick_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]" + }, + "minecraft:mossy_stone_bricks": { + "properties": {}, + "defaultstate": "minecraft:mossy_stone_bricks" + }, + "minecraft:moving_piston": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + }, + "type": { + "values": [ + "normal", + "sticky" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:moving_piston[facing=north,type=normal]" + }, + "minecraft:mushroom_stem": { + "properties": { + "down": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:mushroom_stem[down=true,east=true,north=true,south=true,up=true,west=true]" + }, + "minecraft:mycelium": { + "properties": { + "snowy": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:mycelium[snowy=false]" + }, + "minecraft:nether_brick_fence": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:nether_brick_fence[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:nether_brick_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:nether_brick_slab[type=bottom,waterlogged=false]" + }, + "minecraft:nether_brick_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:nether_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:nether_brick_wall": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:nether_brick_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]" + }, + "minecraft:nether_bricks": { + "properties": {}, + "defaultstate": "minecraft:nether_bricks" + }, + "minecraft:nether_portal": { + "properties": { + "axis": { + "values": [ + "x", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:nether_portal[axis=x]" + }, + "minecraft:nether_quartz_ore": { + "properties": {}, + "defaultstate": "minecraft:nether_quartz_ore" + }, + "minecraft:nether_wart": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:nether_wart[age=0]" + }, + "minecraft:nether_wart_block": { + "properties": {}, + "defaultstate": "minecraft:nether_wart_block" + }, + "minecraft:netherrack": { + "properties": {}, + "defaultstate": "minecraft:netherrack" + }, + "minecraft:note_block": { + "properties": { + "instrument": { + "values": [ + "harp", + "basedrum", + "snare", + "hat", + "bass", + "flute", + "bell", + "guitar", + "chime", + "xylophone", + "iron_xylophone", + "cow_bell", + "didgeridoo", + "bit", + "banjo", + "pling" + ], + "type": "enum" + }, + "note": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15", + "16", + "17", + "18", + "19", + "20", + "21", + "22", + "23", + "24" + ], + "type": "int" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:note_block[instrument=harp,note=0,powered=false]" + }, + "minecraft:oak_button": { + "properties": { + "face": { + "values": [ + "floor", + "wall", + "ceiling" + ], + "type": "enum" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:oak_button[face=wall,facing=north,powered=false]" + }, + "minecraft:oak_door": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + }, + "hinge": { + "values": [ + "left", + "right" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:oak_door[facing=north,half=lower,hinge=left,open=false,powered=false]" + }, + "minecraft:oak_fence": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:oak_fence[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:oak_fence_gate": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "in_wall": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:oak_fence_gate[facing=north,in_wall=false,open=false,powered=false]" + }, + "minecraft:oak_leaves": { + "properties": { + "distance": { + "values": [ + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ], + "type": "int" + }, + "persistent": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:oak_leaves[distance=7,persistent=false]" + }, + "minecraft:oak_log": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:oak_log[axis=y]" + }, + "minecraft:oak_planks": { + "properties": {}, + "defaultstate": "minecraft:oak_planks" + }, + "minecraft:oak_pressure_plate": { + "properties": { + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:oak_pressure_plate[powered=false]" + }, + "minecraft:oak_sapling": { + "properties": { + "stage": { + "values": [ + "0", + "1" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:oak_sapling[stage=0]" + }, + "minecraft:oak_sign": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:oak_sign[rotation=0,waterlogged=false]" + }, + "minecraft:oak_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:oak_slab[type=bottom,waterlogged=false]" + }, + "minecraft:oak_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:oak_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:oak_trapdoor": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:oak_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]" + }, + "minecraft:oak_wall_sign": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:oak_wall_sign[facing=north,waterlogged=false]" + }, + "minecraft:oak_wood": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:oak_wood[axis=y]" + }, + "minecraft:observer": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:observer[facing=south,powered=false]" + }, + "minecraft:obsidian": { + "properties": {}, + "defaultstate": "minecraft:obsidian" + }, + "minecraft:orange_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:orange_banner[rotation=0]" + }, + "minecraft:orange_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:orange_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:orange_carpet": { + "properties": {}, + "defaultstate": "minecraft:orange_carpet" + }, + "minecraft:orange_concrete": { + "properties": {}, + "defaultstate": "minecraft:orange_concrete" + }, + "minecraft:orange_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:orange_concrete_powder" + }, + "minecraft:orange_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:orange_glazed_terracotta[facing=north]" + }, + "minecraft:orange_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:orange_shulker_box[facing=up]" + }, + "minecraft:orange_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:orange_stained_glass" + }, + "minecraft:orange_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:orange_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:orange_terracotta": { + "properties": {}, + "defaultstate": "minecraft:orange_terracotta" + }, + "minecraft:orange_tulip": { + "properties": {}, + "defaultstate": "minecraft:orange_tulip" + }, + "minecraft:orange_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:orange_wall_banner[facing=north]" + }, + "minecraft:orange_wool": { + "properties": {}, + "defaultstate": "minecraft:orange_wool" + }, + "minecraft:oxeye_daisy": { + "properties": {}, + "defaultstate": "minecraft:oxeye_daisy" + }, + "minecraft:packed_ice": { + "properties": {}, + "defaultstate": "minecraft:packed_ice" + }, + "minecraft:peony": { + "properties": { + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:peony[half=lower]" + }, + "minecraft:petrified_oak_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:petrified_oak_slab[type=bottom,waterlogged=false]" + }, + "minecraft:pink_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:pink_banner[rotation=0]" + }, + "minecraft:pink_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:pink_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:pink_carpet": { + "properties": {}, + "defaultstate": "minecraft:pink_carpet" + }, + "minecraft:pink_concrete": { + "properties": {}, + "defaultstate": "minecraft:pink_concrete" + }, + "minecraft:pink_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:pink_concrete_powder" + }, + "minecraft:pink_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:pink_glazed_terracotta[facing=north]" + }, + "minecraft:pink_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:pink_shulker_box[facing=up]" + }, + "minecraft:pink_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:pink_stained_glass" + }, + "minecraft:pink_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:pink_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:pink_terracotta": { + "properties": {}, + "defaultstate": "minecraft:pink_terracotta" + }, + "minecraft:pink_tulip": { + "properties": {}, + "defaultstate": "minecraft:pink_tulip" + }, + "minecraft:pink_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:pink_wall_banner[facing=north]" + }, + "minecraft:pink_wool": { + "properties": {}, + "defaultstate": "minecraft:pink_wool" + }, + "minecraft:piston": { + "properties": { + "extended": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:piston[extended=false,facing=north]" + }, + "minecraft:piston_head": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + }, + "short": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "type": { + "values": [ + "normal", + "sticky" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:piston_head[facing=north,short=false,type=normal]" + }, + "minecraft:player_head": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:player_head[rotation=0]" + }, + "minecraft:player_wall_head": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:player_wall_head[facing=north]" + }, + "minecraft:podzol": { + "properties": { + "snowy": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:podzol[snowy=false]" + }, + "minecraft:polished_andesite": { + "properties": {}, + "defaultstate": "minecraft:polished_andesite" + }, + "minecraft:polished_andesite_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:polished_andesite_slab[type=bottom,waterlogged=false]" + }, + "minecraft:polished_andesite_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:polished_andesite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:polished_diorite": { + "properties": {}, + "defaultstate": "minecraft:polished_diorite" + }, + "minecraft:polished_diorite_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:polished_diorite_slab[type=bottom,waterlogged=false]" + }, + "minecraft:polished_diorite_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:polished_diorite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:polished_granite": { + "properties": {}, + "defaultstate": "minecraft:polished_granite" + }, + "minecraft:polished_granite_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:polished_granite_slab[type=bottom,waterlogged=false]" + }, + "minecraft:polished_granite_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:polished_granite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:poppy": { + "properties": {}, + "defaultstate": "minecraft:poppy" + }, + "minecraft:potatoes": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:potatoes[age=0]" + }, + "minecraft:potted_acacia_sapling": { + "properties": {}, + "defaultstate": "minecraft:potted_acacia_sapling" + }, + "minecraft:potted_allium": { + "properties": {}, + "defaultstate": "minecraft:potted_allium" + }, + "minecraft:potted_azure_bluet": { + "properties": {}, + "defaultstate": "minecraft:potted_azure_bluet" + }, + "minecraft:potted_bamboo": { + "properties": {}, + "defaultstate": "minecraft:potted_bamboo" + }, + "minecraft:potted_birch_sapling": { + "properties": {}, + "defaultstate": "minecraft:potted_birch_sapling" + }, + "minecraft:potted_blue_orchid": { + "properties": {}, + "defaultstate": "minecraft:potted_blue_orchid" + }, + "minecraft:potted_brown_mushroom": { + "properties": {}, + "defaultstate": "minecraft:potted_brown_mushroom" + }, + "minecraft:potted_cactus": { + "properties": {}, + "defaultstate": "minecraft:potted_cactus" + }, + "minecraft:potted_cornflower": { + "properties": {}, + "defaultstate": "minecraft:potted_cornflower" + }, + "minecraft:potted_dandelion": { + "properties": {}, + "defaultstate": "minecraft:potted_dandelion" + }, + "minecraft:potted_dark_oak_sapling": { + "properties": {}, + "defaultstate": "minecraft:potted_dark_oak_sapling" + }, + "minecraft:potted_dead_bush": { + "properties": {}, + "defaultstate": "minecraft:potted_dead_bush" + }, + "minecraft:potted_fern": { + "properties": {}, + "defaultstate": "minecraft:potted_fern" + }, + "minecraft:potted_jungle_sapling": { + "properties": {}, + "defaultstate": "minecraft:potted_jungle_sapling" + }, + "minecraft:potted_lily_of_the_valley": { + "properties": {}, + "defaultstate": "minecraft:potted_lily_of_the_valley" + }, + "minecraft:potted_oak_sapling": { + "properties": {}, + "defaultstate": "minecraft:potted_oak_sapling" + }, + "minecraft:potted_orange_tulip": { + "properties": {}, + "defaultstate": "minecraft:potted_orange_tulip" + }, + "minecraft:potted_oxeye_daisy": { + "properties": {}, + "defaultstate": "minecraft:potted_oxeye_daisy" + }, + "minecraft:potted_pink_tulip": { + "properties": {}, + "defaultstate": "minecraft:potted_pink_tulip" + }, + "minecraft:potted_poppy": { + "properties": {}, + "defaultstate": "minecraft:potted_poppy" + }, + "minecraft:potted_red_mushroom": { + "properties": {}, + "defaultstate": "minecraft:potted_red_mushroom" + }, + "minecraft:potted_red_tulip": { + "properties": {}, + "defaultstate": "minecraft:potted_red_tulip" + }, + "minecraft:potted_spruce_sapling": { + "properties": {}, + "defaultstate": "minecraft:potted_spruce_sapling" + }, + "minecraft:potted_white_tulip": { + "properties": {}, + "defaultstate": "minecraft:potted_white_tulip" + }, + "minecraft:potted_wither_rose": { + "properties": {}, + "defaultstate": "minecraft:potted_wither_rose" + }, + "minecraft:powered_rail": { + "properties": { + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "shape": { + "values": [ + "north_south", + "east_west", + "ascending_east", + "ascending_west", + "ascending_north", + "ascending_south" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:powered_rail[powered=false,shape=north_south]" + }, + "minecraft:prismarine": { + "properties": {}, + "defaultstate": "minecraft:prismarine" + }, + "minecraft:prismarine_brick_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:prismarine_brick_slab[type=bottom,waterlogged=false]" + }, + "minecraft:prismarine_brick_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:prismarine_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:prismarine_bricks": { + "properties": {}, + "defaultstate": "minecraft:prismarine_bricks" + }, + "minecraft:prismarine_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:prismarine_slab[type=bottom,waterlogged=false]" + }, + "minecraft:prismarine_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:prismarine_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:prismarine_wall": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:prismarine_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]" + }, + "minecraft:pumpkin": { + "properties": {}, + "defaultstate": "minecraft:pumpkin" + }, + "minecraft:pumpkin_stem": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:pumpkin_stem[age=0]" + }, + "minecraft:purple_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:purple_banner[rotation=0]" + }, + "minecraft:purple_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:purple_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:purple_carpet": { + "properties": {}, + "defaultstate": "minecraft:purple_carpet" + }, + "minecraft:purple_concrete": { + "properties": {}, + "defaultstate": "minecraft:purple_concrete" + }, + "minecraft:purple_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:purple_concrete_powder" + }, + "minecraft:purple_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:purple_glazed_terracotta[facing=north]" + }, + "minecraft:purple_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:purple_shulker_box[facing=up]" + }, + "minecraft:purple_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:purple_stained_glass" + }, + "minecraft:purple_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:purple_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:purple_terracotta": { + "properties": {}, + "defaultstate": "minecraft:purple_terracotta" + }, + "minecraft:purple_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:purple_wall_banner[facing=north]" + }, + "minecraft:purple_wool": { + "properties": {}, + "defaultstate": "minecraft:purple_wool" + }, + "minecraft:purpur_block": { + "properties": {}, + "defaultstate": "minecraft:purpur_block" + }, + "minecraft:purpur_pillar": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:purpur_pillar[axis=y]" + }, + "minecraft:purpur_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:purpur_slab[type=bottom,waterlogged=false]" + }, + "minecraft:purpur_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:purpur_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:quartz_block": { + "properties": {}, + "defaultstate": "minecraft:quartz_block" + }, + "minecraft:quartz_pillar": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:quartz_pillar[axis=y]" + }, + "minecraft:quartz_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:quartz_slab[type=bottom,waterlogged=false]" + }, + "minecraft:quartz_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:quartz_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:rail": { + "properties": { + "shape": { + "values": [ + "north_south", + "east_west", + "ascending_east", + "ascending_west", + "ascending_north", + "ascending_south", + "south_east", + "south_west", + "north_west", + "north_east" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:rail[shape=north_south]" + }, + "minecraft:red_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:red_banner[rotation=0]" + }, + "minecraft:red_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:red_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:red_carpet": { + "properties": {}, + "defaultstate": "minecraft:red_carpet" + }, + "minecraft:red_concrete": { + "properties": {}, + "defaultstate": "minecraft:red_concrete" + }, + "minecraft:red_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:red_concrete_powder" + }, + "minecraft:red_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:red_glazed_terracotta[facing=north]" + }, + "minecraft:red_mushroom": { + "properties": {}, + "defaultstate": "minecraft:red_mushroom" + }, + "minecraft:red_mushroom_block": { + "properties": { + "down": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:red_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true]" + }, + "minecraft:red_nether_brick_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:red_nether_brick_slab[type=bottom,waterlogged=false]" + }, + "minecraft:red_nether_brick_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:red_nether_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:red_nether_brick_wall": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:red_nether_brick_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]" + }, + "minecraft:red_nether_bricks": { + "properties": {}, + "defaultstate": "minecraft:red_nether_bricks" + }, + "minecraft:red_sand": { + "properties": {}, + "defaultstate": "minecraft:red_sand" + }, + "minecraft:red_sandstone": { + "properties": {}, + "defaultstate": "minecraft:red_sandstone" + }, + "minecraft:red_sandstone_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:red_sandstone_slab[type=bottom,waterlogged=false]" + }, + "minecraft:red_sandstone_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:red_sandstone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:red_sandstone_wall": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:red_sandstone_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]" + }, + "minecraft:red_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:red_shulker_box[facing=up]" + }, + "minecraft:red_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:red_stained_glass" + }, + "minecraft:red_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:red_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:red_terracotta": { + "properties": {}, + "defaultstate": "minecraft:red_terracotta" + }, + "minecraft:red_tulip": { + "properties": {}, + "defaultstate": "minecraft:red_tulip" + }, + "minecraft:red_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:red_wall_banner[facing=north]" + }, + "minecraft:red_wool": { + "properties": {}, + "defaultstate": "minecraft:red_wool" + }, + "minecraft:redstone_block": { + "properties": {}, + "defaultstate": "minecraft:redstone_block" + }, + "minecraft:redstone_lamp": { + "properties": { + "lit": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:redstone_lamp[lit=false]" + }, + "minecraft:redstone_ore": { + "properties": { + "lit": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:redstone_ore[lit=false]" + }, + "minecraft:redstone_torch": { + "properties": { + "lit": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:redstone_torch[lit=true]" + }, + "minecraft:redstone_wall_torch": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "lit": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:redstone_wall_torch[facing=north,lit=true]" + }, + "minecraft:redstone_wire": { + "properties": { + "east": { + "values": [ + "up", + "side", + "none" + ], + "type": "enum" + }, + "north": { + "values": [ + "up", + "side", + "none" + ], + "type": "enum" + }, + "power": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + }, + "south": { + "values": [ + "up", + "side", + "none" + ], + "type": "enum" + }, + "west": { + "values": [ + "up", + "side", + "none" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:redstone_wire[east=none,north=none,power=0,south=none,west=none]" + }, + "minecraft:repeater": { + "properties": { + "delay": { + "values": [ + "1", + "2", + "3", + "4" + ], + "type": "int" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "locked": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:repeater[delay=1,facing=north,locked=false,powered=false]" + }, + "minecraft:repeating_command_block": { + "properties": { + "conditional": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:repeating_command_block[conditional=false,facing=north]" + }, + "minecraft:rose_bush": { + "properties": { + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:rose_bush[half=lower]" + }, + "minecraft:sand": { + "properties": {}, + "defaultstate": "minecraft:sand" + }, + "minecraft:sandstone": { + "properties": {}, + "defaultstate": "minecraft:sandstone" + }, + "minecraft:sandstone_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:sandstone_slab[type=bottom,waterlogged=false]" + }, + "minecraft:sandstone_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:sandstone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:sandstone_wall": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:sandstone_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]" + }, + "minecraft:scaffolding": { + "properties": { + "bottom": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "distance": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ], + "type": "int" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:scaffolding[bottom=false,distance=7,waterlogged=false]" + }, + "minecraft:sea_lantern": { + "properties": {}, + "defaultstate": "minecraft:sea_lantern" + }, + "minecraft:sea_pickle": { + "properties": { + "pickles": { + "values": [ + "1", + "2", + "3", + "4" + ], + "type": "int" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:sea_pickle[pickles=1,waterlogged=true]" + }, + "minecraft:seagrass": { + "properties": {}, + "defaultstate": "minecraft:seagrass" + }, + "minecraft:shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:shulker_box[facing=up]" + }, + "minecraft:skeleton_skull": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:skeleton_skull[rotation=0]" + }, + "minecraft:skeleton_wall_skull": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:skeleton_wall_skull[facing=north]" + }, + "minecraft:slime_block": { + "properties": {}, + "defaultstate": "minecraft:slime_block" + }, + "minecraft:smithing_table": { + "properties": {}, + "defaultstate": "minecraft:smithing_table" + }, + "minecraft:smoker": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "lit": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:smoker[facing=north,lit=false]" + }, + "minecraft:smooth_quartz": { + "properties": {}, + "defaultstate": "minecraft:smooth_quartz" + }, + "minecraft:smooth_quartz_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:smooth_quartz_slab[type=bottom,waterlogged=false]" + }, + "minecraft:smooth_quartz_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:smooth_quartz_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:smooth_red_sandstone": { + "properties": {}, + "defaultstate": "minecraft:smooth_red_sandstone" + }, + "minecraft:smooth_red_sandstone_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:smooth_red_sandstone_slab[type=bottom,waterlogged=false]" + }, + "minecraft:smooth_red_sandstone_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:smooth_red_sandstone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:smooth_sandstone": { + "properties": {}, + "defaultstate": "minecraft:smooth_sandstone" + }, + "minecraft:smooth_sandstone_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:smooth_sandstone_slab[type=bottom,waterlogged=false]" + }, + "minecraft:smooth_sandstone_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:smooth_sandstone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:smooth_stone": { + "properties": {}, + "defaultstate": "minecraft:smooth_stone" + }, + "minecraft:smooth_stone_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:smooth_stone_slab[type=bottom,waterlogged=false]" + }, + "minecraft:snow": { + "properties": { + "layers": { + "values": [ + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:snow[layers=1]" + }, + "minecraft:snow_block": { + "properties": {}, + "defaultstate": "minecraft:snow_block" + }, + "minecraft:soul_sand": { + "properties": {}, + "defaultstate": "minecraft:soul_sand" + }, + "minecraft:spawner": { + "properties": {}, + "defaultstate": "minecraft:spawner" + }, + "minecraft:sponge": { + "properties": {}, + "defaultstate": "minecraft:sponge" + }, + "minecraft:spruce_button": { + "properties": { + "face": { + "values": [ + "floor", + "wall", + "ceiling" + ], + "type": "enum" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:spruce_button[face=wall,facing=north,powered=false]" + }, + "minecraft:spruce_door": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + }, + "hinge": { + "values": [ + "left", + "right" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:spruce_door[facing=north,half=lower,hinge=left,open=false,powered=false]" + }, + "minecraft:spruce_fence": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:spruce_fence[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:spruce_fence_gate": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "in_wall": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:spruce_fence_gate[facing=north,in_wall=false,open=false,powered=false]" + }, + "minecraft:spruce_leaves": { + "properties": { + "distance": { + "values": [ + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ], + "type": "int" + }, + "persistent": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:spruce_leaves[distance=7,persistent=false]" + }, + "minecraft:spruce_log": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:spruce_log[axis=y]" + }, + "minecraft:spruce_planks": { + "properties": {}, + "defaultstate": "minecraft:spruce_planks" + }, + "minecraft:spruce_pressure_plate": { + "properties": { + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:spruce_pressure_plate[powered=false]" + }, + "minecraft:spruce_sapling": { + "properties": { + "stage": { + "values": [ + "0", + "1" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:spruce_sapling[stage=0]" + }, + "minecraft:spruce_sign": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:spruce_sign[rotation=0,waterlogged=false]" + }, + "minecraft:spruce_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:spruce_slab[type=bottom,waterlogged=false]" + }, + "minecraft:spruce_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:spruce_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:spruce_trapdoor": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:spruce_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]" + }, + "minecraft:spruce_wall_sign": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:spruce_wall_sign[facing=north,waterlogged=false]" + }, + "minecraft:spruce_wood": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:spruce_wood[axis=y]" + }, + "minecraft:sticky_piston": { + "properties": { + "extended": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:sticky_piston[extended=false,facing=north]" + }, + "minecraft:stone": { + "properties": {}, + "defaultstate": "minecraft:stone" + }, + "minecraft:stone_brick_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:stone_brick_slab[type=bottom,waterlogged=false]" + }, + "minecraft:stone_brick_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:stone_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:stone_brick_wall": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:stone_brick_wall[east=false,north=false,south=false,up=true,waterlogged=false,west=false]" + }, + "minecraft:stone_bricks": { + "properties": {}, + "defaultstate": "minecraft:stone_bricks" + }, + "minecraft:stone_button": { + "properties": { + "face": { + "values": [ + "floor", + "wall", + "ceiling" + ], + "type": "enum" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:stone_button[face=wall,facing=north,powered=false]" + }, + "minecraft:stone_pressure_plate": { + "properties": { + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:stone_pressure_plate[powered=false]" + }, + "minecraft:stone_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:stone_slab[type=bottom,waterlogged=false]" + }, + "minecraft:stone_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:stone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:stonecutter": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:stonecutter[facing=north]" + }, + "minecraft:stripped_acacia_log": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:stripped_acacia_log[axis=y]" + }, + "minecraft:stripped_acacia_wood": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:stripped_acacia_wood[axis=y]" + }, + "minecraft:stripped_birch_log": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:stripped_birch_log[axis=y]" + }, + "minecraft:stripped_birch_wood": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:stripped_birch_wood[axis=y]" + }, + "minecraft:stripped_dark_oak_log": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:stripped_dark_oak_log[axis=y]" + }, + "minecraft:stripped_dark_oak_wood": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:stripped_dark_oak_wood[axis=y]" + }, + "minecraft:stripped_jungle_log": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:stripped_jungle_log[axis=y]" + }, + "minecraft:stripped_jungle_wood": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:stripped_jungle_wood[axis=y]" + }, + "minecraft:stripped_oak_log": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:stripped_oak_log[axis=y]" + }, + "minecraft:stripped_oak_wood": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:stripped_oak_wood[axis=y]" + }, + "minecraft:stripped_spruce_log": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:stripped_spruce_log[axis=y]" + }, + "minecraft:stripped_spruce_wood": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:stripped_spruce_wood[axis=y]" + }, + "minecraft:structure_block": { + "properties": { + "mode": { + "values": [ + "save", + "load", + "corner", + "data" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:structure_block[mode=save]" + }, + "minecraft:structure_void": { + "properties": {}, + "defaultstate": "minecraft:structure_void" + }, + "minecraft:sugar_cane": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:sugar_cane[age=0]" + }, + "minecraft:sunflower": { + "properties": { + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:sunflower[half=lower]" + }, + "minecraft:sweet_berry_bush": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:sweet_berry_bush[age=0]" + }, + "minecraft:tall_grass": { + "properties": { + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:tall_grass[half=lower]" + }, + "minecraft:tall_seagrass": { + "properties": { + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:tall_seagrass[half=lower]" + }, + "minecraft:terracotta": { + "properties": {}, + "defaultstate": "minecraft:terracotta" + }, + "minecraft:tnt": { + "properties": { + "unstable": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:tnt[unstable=false]" + }, + "minecraft:torch": { + "properties": {}, + "defaultstate": "minecraft:torch" + }, + "minecraft:trapped_chest": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "type": { + "values": [ + "single", + "left", + "right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:trapped_chest[facing=north,type=single,waterlogged=false]" + }, + "minecraft:tripwire": { + "properties": { + "attached": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "disarmed": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:tripwire[attached=false,disarmed=false,east=false,north=false,powered=false,south=false,west=false]" + }, + "minecraft:tripwire_hook": { + "properties": { + "attached": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:tripwire_hook[attached=false,facing=north,powered=false]" + }, + "minecraft:tube_coral": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:tube_coral[waterlogged=true]" + }, + "minecraft:tube_coral_block": { + "properties": {}, + "defaultstate": "minecraft:tube_coral_block" + }, + "minecraft:tube_coral_fan": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:tube_coral_fan[waterlogged=true]" + }, + "minecraft:tube_coral_wall_fan": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:tube_coral_wall_fan[facing=north,waterlogged=true]" + }, + "minecraft:turtle_egg": { + "properties": { + "eggs": { + "values": [ + "1", + "2", + "3", + "4" + ], + "type": "int" + }, + "hatch": { + "values": [ + "0", + "1", + "2" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:turtle_egg[eggs=1,hatch=0]" + }, + "minecraft:vine": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:vine[east=false,north=false,south=false,up=false,west=false]" + }, + "minecraft:void_air": { + "properties": {}, + "defaultstate": "minecraft:void_air" + }, + "minecraft:wall_torch": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:wall_torch[facing=north]" + }, + "minecraft:water": { + "properties": { + "level": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:water[level=0]" + }, + "minecraft:wet_sponge": { + "properties": {}, + "defaultstate": "minecraft:wet_sponge" + }, + "minecraft:wheat": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:wheat[age=0]" + }, + "minecraft:white_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:white_banner[rotation=0]" + }, + "minecraft:white_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:white_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:white_carpet": { + "properties": {}, + "defaultstate": "minecraft:white_carpet" + }, + "minecraft:white_concrete": { + "properties": {}, + "defaultstate": "minecraft:white_concrete" + }, + "minecraft:white_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:white_concrete_powder" + }, + "minecraft:white_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:white_glazed_terracotta[facing=north]" + }, + "minecraft:white_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:white_shulker_box[facing=up]" + }, + "minecraft:white_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:white_stained_glass" + }, + "minecraft:white_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:white_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:white_terracotta": { + "properties": {}, + "defaultstate": "minecraft:white_terracotta" + }, + "minecraft:white_tulip": { + "properties": {}, + "defaultstate": "minecraft:white_tulip" + }, + "minecraft:white_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:white_wall_banner[facing=north]" + }, + "minecraft:white_wool": { + "properties": {}, + "defaultstate": "minecraft:white_wool" + }, + "minecraft:wither_rose": { + "properties": {}, + "defaultstate": "minecraft:wither_rose" + }, + "minecraft:wither_skeleton_skull": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:wither_skeleton_skull[rotation=0]" + }, + "minecraft:wither_skeleton_wall_skull": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:wither_skeleton_wall_skull[facing=north]" + }, + "minecraft:yellow_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:yellow_banner[rotation=0]" + }, + "minecraft:yellow_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:yellow_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:yellow_carpet": { + "properties": {}, + "defaultstate": "minecraft:yellow_carpet" + }, + "minecraft:yellow_concrete": { + "properties": {}, + "defaultstate": "minecraft:yellow_concrete" + }, + "minecraft:yellow_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:yellow_concrete_powder" + }, + "minecraft:yellow_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:yellow_glazed_terracotta[facing=north]" + }, + "minecraft:yellow_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:yellow_shulker_box[facing=up]" + }, + "minecraft:yellow_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:yellow_stained_glass" + }, + "minecraft:yellow_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:yellow_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:yellow_terracotta": { + "properties": {}, + "defaultstate": "minecraft:yellow_terracotta" + }, + "minecraft:yellow_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:yellow_wall_banner[facing=north]" + }, + "minecraft:yellow_wool": { + "properties": {}, + "defaultstate": "minecraft:yellow_wool" + }, + "minecraft:zombie_head": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:zombie_head[rotation=0]" + }, + "minecraft:zombie_wall_head": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:zombie_wall_head[facing=north]" + } + }, + "items": [ + "minecraft:acacia_boat", + "minecraft:acacia_button", + "minecraft:acacia_door", + "minecraft:acacia_fence", + "minecraft:acacia_fence_gate", + "minecraft:acacia_leaves", + "minecraft:acacia_log", + "minecraft:acacia_planks", + "minecraft:acacia_pressure_plate", + "minecraft:acacia_sapling", + "minecraft:acacia_sign", + "minecraft:acacia_slab", + "minecraft:acacia_stairs", + "minecraft:acacia_trapdoor", + "minecraft:acacia_wood", + "minecraft:activator_rail", + "minecraft:air", + "minecraft:allium", + "minecraft:andesite", + "minecraft:andesite_slab", + "minecraft:andesite_stairs", + "minecraft:andesite_wall", + "minecraft:anvil", + "minecraft:apple", + "minecraft:armor_stand", + "minecraft:arrow", + "minecraft:azure_bluet", + "minecraft:baked_potato", + "minecraft:bamboo", + "minecraft:barrel", + "minecraft:barrier", + "minecraft:bat_spawn_egg", + "minecraft:beacon", + "minecraft:bedrock", + "minecraft:bee_nest", + "minecraft:bee_spawn_egg", + "minecraft:beef", + "minecraft:beehive", + "minecraft:beetroot", + "minecraft:beetroot_seeds", + "minecraft:beetroot_soup", + "minecraft:bell", + "minecraft:birch_boat", + "minecraft:birch_button", + "minecraft:birch_door", + "minecraft:birch_fence", + "minecraft:birch_fence_gate", + "minecraft:birch_leaves", + "minecraft:birch_log", + "minecraft:birch_planks", + "minecraft:birch_pressure_plate", + "minecraft:birch_sapling", + "minecraft:birch_sign", + "minecraft:birch_slab", + "minecraft:birch_stairs", + "minecraft:birch_trapdoor", + "minecraft:birch_wood", + "minecraft:black_banner", + "minecraft:black_bed", + "minecraft:black_carpet", + "minecraft:black_concrete", + "minecraft:black_concrete_powder", + "minecraft:black_dye", + "minecraft:black_glazed_terracotta", + "minecraft:black_shulker_box", + "minecraft:black_stained_glass", + "minecraft:black_stained_glass_pane", + "minecraft:black_terracotta", + "minecraft:black_wool", + "minecraft:blast_furnace", + "minecraft:blaze_powder", + "minecraft:blaze_rod", + "minecraft:blaze_spawn_egg", + "minecraft:blue_banner", + "minecraft:blue_bed", + "minecraft:blue_carpet", + "minecraft:blue_concrete", + "minecraft:blue_concrete_powder", + "minecraft:blue_dye", + "minecraft:blue_glazed_terracotta", + "minecraft:blue_ice", + "minecraft:blue_orchid", + "minecraft:blue_shulker_box", + "minecraft:blue_stained_glass", + "minecraft:blue_stained_glass_pane", + "minecraft:blue_terracotta", + "minecraft:blue_wool", + "minecraft:bone", + "minecraft:bone_block", + "minecraft:bone_meal", + "minecraft:book", + "minecraft:bookshelf", + "minecraft:bow", + "minecraft:bowl", + "minecraft:brain_coral", + "minecraft:brain_coral_block", + "minecraft:brain_coral_fan", + "minecraft:bread", + "minecraft:brewing_stand", + "minecraft:brick", + "minecraft:brick_slab", + "minecraft:brick_stairs", + "minecraft:brick_wall", + "minecraft:bricks", + "minecraft:brown_banner", + "minecraft:brown_bed", + "minecraft:brown_carpet", + "minecraft:brown_concrete", + "minecraft:brown_concrete_powder", + "minecraft:brown_dye", + "minecraft:brown_glazed_terracotta", + "minecraft:brown_mushroom", + "minecraft:brown_mushroom_block", + "minecraft:brown_shulker_box", + "minecraft:brown_stained_glass", + "minecraft:brown_stained_glass_pane", + "minecraft:brown_terracotta", + "minecraft:brown_wool", + "minecraft:bubble_coral", + "minecraft:bubble_coral_block", + "minecraft:bubble_coral_fan", + "minecraft:bucket", + "minecraft:cactus", + "minecraft:cake", + "minecraft:campfire", + "minecraft:carrot", + "minecraft:carrot_on_a_stick", + "minecraft:cartography_table", + "minecraft:carved_pumpkin", + "minecraft:cat_spawn_egg", + "minecraft:cauldron", + "minecraft:cave_spider_spawn_egg", + "minecraft:chain_command_block", + "minecraft:chainmail_boots", + "minecraft:chainmail_chestplate", + "minecraft:chainmail_helmet", + "minecraft:chainmail_leggings", + "minecraft:charcoal", + "minecraft:chest", + "minecraft:chest_minecart", + "minecraft:chicken", + "minecraft:chicken_spawn_egg", + "minecraft:chipped_anvil", + "minecraft:chiseled_quartz_block", + "minecraft:chiseled_red_sandstone", + "minecraft:chiseled_sandstone", + "minecraft:chiseled_stone_bricks", + "minecraft:chorus_flower", + "minecraft:chorus_fruit", + "minecraft:chorus_plant", + "minecraft:clay", + "minecraft:clay_ball", + "minecraft:clock", + "minecraft:coal", + "minecraft:coal_block", + "minecraft:coal_ore", + "minecraft:coarse_dirt", + "minecraft:cobblestone", + "minecraft:cobblestone_slab", + "minecraft:cobblestone_stairs", + "minecraft:cobblestone_wall", + "minecraft:cobweb", + "minecraft:cocoa_beans", + "minecraft:cod", + "minecraft:cod_bucket", + "minecraft:cod_spawn_egg", + "minecraft:command_block", + "minecraft:command_block_minecart", + "minecraft:comparator", + "minecraft:compass", + "minecraft:composter", + "minecraft:conduit", + "minecraft:cooked_beef", + "minecraft:cooked_chicken", + "minecraft:cooked_cod", + "minecraft:cooked_mutton", + "minecraft:cooked_porkchop", + "minecraft:cooked_rabbit", + "minecraft:cooked_salmon", + "minecraft:cookie", + "minecraft:cornflower", + "minecraft:cow_spawn_egg", + "minecraft:cracked_stone_bricks", + "minecraft:crafting_table", + "minecraft:creeper_banner_pattern", + "minecraft:creeper_head", + "minecraft:creeper_spawn_egg", + "minecraft:crossbow", + "minecraft:cut_red_sandstone", + "minecraft:cut_red_sandstone_slab", + "minecraft:cut_sandstone", + "minecraft:cut_sandstone_slab", + "minecraft:cyan_banner", + "minecraft:cyan_bed", + "minecraft:cyan_carpet", + "minecraft:cyan_concrete", + "minecraft:cyan_concrete_powder", + "minecraft:cyan_dye", + "minecraft:cyan_glazed_terracotta", + "minecraft:cyan_shulker_box", + "minecraft:cyan_stained_glass", + "minecraft:cyan_stained_glass_pane", + "minecraft:cyan_terracotta", + "minecraft:cyan_wool", + "minecraft:damaged_anvil", + "minecraft:dandelion", + "minecraft:dark_oak_boat", + "minecraft:dark_oak_button", + "minecraft:dark_oak_door", + "minecraft:dark_oak_fence", + "minecraft:dark_oak_fence_gate", + "minecraft:dark_oak_leaves", + "minecraft:dark_oak_log", + "minecraft:dark_oak_planks", + "minecraft:dark_oak_pressure_plate", + "minecraft:dark_oak_sapling", + "minecraft:dark_oak_sign", + "minecraft:dark_oak_slab", + "minecraft:dark_oak_stairs", + "minecraft:dark_oak_trapdoor", + "minecraft:dark_oak_wood", + "minecraft:dark_prismarine", + "minecraft:dark_prismarine_slab", + "minecraft:dark_prismarine_stairs", + "minecraft:daylight_detector", + "minecraft:dead_brain_coral", + "minecraft:dead_brain_coral_block", + "minecraft:dead_brain_coral_fan", + "minecraft:dead_bubble_coral", + "minecraft:dead_bubble_coral_block", + "minecraft:dead_bubble_coral_fan", + "minecraft:dead_bush", + "minecraft:dead_fire_coral", + "minecraft:dead_fire_coral_block", + "minecraft:dead_fire_coral_fan", + "minecraft:dead_horn_coral", + "minecraft:dead_horn_coral_block", + "minecraft:dead_horn_coral_fan", + "minecraft:dead_tube_coral", + "minecraft:dead_tube_coral_block", + "minecraft:dead_tube_coral_fan", + "minecraft:debug_stick", + "minecraft:detector_rail", + "minecraft:diamond", + "minecraft:diamond_axe", + "minecraft:diamond_block", + "minecraft:diamond_boots", + "minecraft:diamond_chestplate", + "minecraft:diamond_helmet", + "minecraft:diamond_hoe", + "minecraft:diamond_horse_armor", + "minecraft:diamond_leggings", + "minecraft:diamond_ore", + "minecraft:diamond_pickaxe", + "minecraft:diamond_shovel", + "minecraft:diamond_sword", + "minecraft:diorite", + "minecraft:diorite_slab", + "minecraft:diorite_stairs", + "minecraft:diorite_wall", + "minecraft:dirt", + "minecraft:dispenser", + "minecraft:dolphin_spawn_egg", + "minecraft:donkey_spawn_egg", + "minecraft:dragon_breath", + "minecraft:dragon_egg", + "minecraft:dragon_head", + "minecraft:dried_kelp", + "minecraft:dried_kelp_block", + "minecraft:dropper", + "minecraft:drowned_spawn_egg", + "minecraft:egg", + "minecraft:elder_guardian_spawn_egg", + "minecraft:elytra", + "minecraft:emerald", + "minecraft:emerald_block", + "minecraft:emerald_ore", + "minecraft:enchanted_book", + "minecraft:enchanted_golden_apple", + "minecraft:enchanting_table", + "minecraft:end_crystal", + "minecraft:end_portal_frame", + "minecraft:end_rod", + "minecraft:end_stone", + "minecraft:end_stone_brick_slab", + "minecraft:end_stone_brick_stairs", + "minecraft:end_stone_brick_wall", + "minecraft:end_stone_bricks", + "minecraft:ender_chest", + "minecraft:ender_eye", + "minecraft:ender_pearl", + "minecraft:enderman_spawn_egg", + "minecraft:endermite_spawn_egg", + "minecraft:evoker_spawn_egg", + "minecraft:experience_bottle", + "minecraft:farmland", + "minecraft:feather", + "minecraft:fermented_spider_eye", + "minecraft:fern", + "minecraft:filled_map", + "minecraft:fire_charge", + "minecraft:fire_coral", + "minecraft:fire_coral_block", + "minecraft:fire_coral_fan", + "minecraft:firework_rocket", + "minecraft:firework_star", + "minecraft:fishing_rod", + "minecraft:fletching_table", + "minecraft:flint", + "minecraft:flint_and_steel", + "minecraft:flower_banner_pattern", + "minecraft:flower_pot", + "minecraft:fox_spawn_egg", + "minecraft:furnace", + "minecraft:furnace_minecart", + "minecraft:ghast_spawn_egg", + "minecraft:ghast_tear", + "minecraft:glass", + "minecraft:glass_bottle", + "minecraft:glass_pane", + "minecraft:glistering_melon_slice", + "minecraft:globe_banner_pattern", + "minecraft:glowstone", + "minecraft:glowstone_dust", + "minecraft:gold_block", + "minecraft:gold_ingot", + "minecraft:gold_nugget", + "minecraft:gold_ore", + "minecraft:golden_apple", + "minecraft:golden_axe", + "minecraft:golden_boots", + "minecraft:golden_carrot", + "minecraft:golden_chestplate", + "minecraft:golden_helmet", + "minecraft:golden_hoe", + "minecraft:golden_horse_armor", + "minecraft:golden_leggings", + "minecraft:golden_pickaxe", + "minecraft:golden_shovel", + "minecraft:golden_sword", + "minecraft:granite", + "minecraft:granite_slab", + "minecraft:granite_stairs", + "minecraft:granite_wall", + "minecraft:grass", + "minecraft:grass_block", + "minecraft:grass_path", + "minecraft:gravel", + "minecraft:gray_banner", + "minecraft:gray_bed", + "minecraft:gray_carpet", + "minecraft:gray_concrete", + "minecraft:gray_concrete_powder", + "minecraft:gray_dye", + "minecraft:gray_glazed_terracotta", + "minecraft:gray_shulker_box", + "minecraft:gray_stained_glass", + "minecraft:gray_stained_glass_pane", + "minecraft:gray_terracotta", + "minecraft:gray_wool", + "minecraft:green_banner", + "minecraft:green_bed", + "minecraft:green_carpet", + "minecraft:green_concrete", + "minecraft:green_concrete_powder", + "minecraft:green_dye", + "minecraft:green_glazed_terracotta", + "minecraft:green_shulker_box", + "minecraft:green_stained_glass", + "minecraft:green_stained_glass_pane", + "minecraft:green_terracotta", + "minecraft:green_wool", + "minecraft:grindstone", + "minecraft:guardian_spawn_egg", + "minecraft:gunpowder", + "minecraft:hay_block", + "minecraft:heart_of_the_sea", + "minecraft:heavy_weighted_pressure_plate", + "minecraft:honey_block", + "minecraft:honey_bottle", + "minecraft:honeycomb", + "minecraft:honeycomb_block", + "minecraft:hopper", + "minecraft:hopper_minecart", + "minecraft:horn_coral", + "minecraft:horn_coral_block", + "minecraft:horn_coral_fan", + "minecraft:horse_spawn_egg", + "minecraft:husk_spawn_egg", + "minecraft:ice", + "minecraft:infested_chiseled_stone_bricks", + "minecraft:infested_cobblestone", + "minecraft:infested_cracked_stone_bricks", + "minecraft:infested_mossy_stone_bricks", + "minecraft:infested_stone", + "minecraft:infested_stone_bricks", + "minecraft:ink_sac", + "minecraft:iron_axe", + "minecraft:iron_bars", + "minecraft:iron_block", + "minecraft:iron_boots", + "minecraft:iron_chestplate", + "minecraft:iron_door", + "minecraft:iron_helmet", + "minecraft:iron_hoe", + "minecraft:iron_horse_armor", + "minecraft:iron_ingot", + "minecraft:iron_leggings", + "minecraft:iron_nugget", + "minecraft:iron_ore", + "minecraft:iron_pickaxe", + "minecraft:iron_shovel", + "minecraft:iron_sword", + "minecraft:iron_trapdoor", + "minecraft:item_frame", + "minecraft:jack_o_lantern", + "minecraft:jigsaw", + "minecraft:jukebox", + "minecraft:jungle_boat", + "minecraft:jungle_button", + "minecraft:jungle_door", + "minecraft:jungle_fence", + "minecraft:jungle_fence_gate", + "minecraft:jungle_leaves", + "minecraft:jungle_log", + "minecraft:jungle_planks", + "minecraft:jungle_pressure_plate", + "minecraft:jungle_sapling", + "minecraft:jungle_sign", + "minecraft:jungle_slab", + "minecraft:jungle_stairs", + "minecraft:jungle_trapdoor", + "minecraft:jungle_wood", + "minecraft:kelp", + "minecraft:knowledge_book", + "minecraft:ladder", + "minecraft:lantern", + "minecraft:lapis_block", + "minecraft:lapis_lazuli", + "minecraft:lapis_ore", + "minecraft:large_fern", + "minecraft:lava_bucket", + "minecraft:lead", + "minecraft:leather", + "minecraft:leather_boots", + "minecraft:leather_chestplate", + "minecraft:leather_helmet", + "minecraft:leather_horse_armor", + "minecraft:leather_leggings", + "minecraft:lectern", + "minecraft:lever", + "minecraft:light_blue_banner", + "minecraft:light_blue_bed", + "minecraft:light_blue_carpet", + "minecraft:light_blue_concrete", + "minecraft:light_blue_concrete_powder", + "minecraft:light_blue_dye", + "minecraft:light_blue_glazed_terracotta", + "minecraft:light_blue_shulker_box", + "minecraft:light_blue_stained_glass", + "minecraft:light_blue_stained_glass_pane", + "minecraft:light_blue_terracotta", + "minecraft:light_blue_wool", + "minecraft:light_gray_banner", + "minecraft:light_gray_bed", + "minecraft:light_gray_carpet", + "minecraft:light_gray_concrete", + "minecraft:light_gray_concrete_powder", + "minecraft:light_gray_dye", + "minecraft:light_gray_glazed_terracotta", + "minecraft:light_gray_shulker_box", + "minecraft:light_gray_stained_glass", + "minecraft:light_gray_stained_glass_pane", + "minecraft:light_gray_terracotta", + "minecraft:light_gray_wool", + "minecraft:light_weighted_pressure_plate", + "minecraft:lilac", + "minecraft:lily_of_the_valley", + "minecraft:lily_pad", + "minecraft:lime_banner", + "minecraft:lime_bed", + "minecraft:lime_carpet", + "minecraft:lime_concrete", + "minecraft:lime_concrete_powder", + "minecraft:lime_dye", + "minecraft:lime_glazed_terracotta", + "minecraft:lime_shulker_box", + "minecraft:lime_stained_glass", + "minecraft:lime_stained_glass_pane", + "minecraft:lime_terracotta", + "minecraft:lime_wool", + "minecraft:lingering_potion", + "minecraft:llama_spawn_egg", + "minecraft:loom", + "minecraft:magenta_banner", + "minecraft:magenta_bed", + "minecraft:magenta_carpet", + "minecraft:magenta_concrete", + "minecraft:magenta_concrete_powder", + "minecraft:magenta_dye", + "minecraft:magenta_glazed_terracotta", + "minecraft:magenta_shulker_box", + "minecraft:magenta_stained_glass", + "minecraft:magenta_stained_glass_pane", + "minecraft:magenta_terracotta", + "minecraft:magenta_wool", + "minecraft:magma_block", + "minecraft:magma_cream", + "minecraft:magma_cube_spawn_egg", + "minecraft:map", + "minecraft:melon", + "minecraft:melon_seeds", + "minecraft:melon_slice", + "minecraft:milk_bucket", + "minecraft:minecart", + "minecraft:mojang_banner_pattern", + "minecraft:mooshroom_spawn_egg", + "minecraft:mossy_cobblestone", + "minecraft:mossy_cobblestone_slab", + "minecraft:mossy_cobblestone_stairs", + "minecraft:mossy_cobblestone_wall", + "minecraft:mossy_stone_brick_slab", + "minecraft:mossy_stone_brick_stairs", + "minecraft:mossy_stone_brick_wall", + "minecraft:mossy_stone_bricks", + "minecraft:mule_spawn_egg", + "minecraft:mushroom_stem", + "minecraft:mushroom_stew", + "minecraft:music_disc_11", + "minecraft:music_disc_13", + "minecraft:music_disc_blocks", + "minecraft:music_disc_cat", + "minecraft:music_disc_chirp", + "minecraft:music_disc_far", + "minecraft:music_disc_mall", + "minecraft:music_disc_mellohi", + "minecraft:music_disc_stal", + "minecraft:music_disc_strad", + "minecraft:music_disc_wait", + "minecraft:music_disc_ward", + "minecraft:mutton", + "minecraft:mycelium", + "minecraft:name_tag", + "minecraft:nautilus_shell", + "minecraft:nether_brick", + "minecraft:nether_brick_fence", + "minecraft:nether_brick_slab", + "minecraft:nether_brick_stairs", + "minecraft:nether_brick_wall", + "minecraft:nether_bricks", + "minecraft:nether_quartz_ore", + "minecraft:nether_star", + "minecraft:nether_wart", + "minecraft:nether_wart_block", + "minecraft:netherrack", + "minecraft:note_block", + "minecraft:oak_boat", + "minecraft:oak_button", + "minecraft:oak_door", + "minecraft:oak_fence", + "minecraft:oak_fence_gate", + "minecraft:oak_leaves", + "minecraft:oak_log", + "minecraft:oak_planks", + "minecraft:oak_pressure_plate", + "minecraft:oak_sapling", + "minecraft:oak_sign", + "minecraft:oak_slab", + "minecraft:oak_stairs", + "minecraft:oak_trapdoor", + "minecraft:oak_wood", + "minecraft:observer", + "minecraft:obsidian", + "minecraft:ocelot_spawn_egg", + "minecraft:orange_banner", + "minecraft:orange_bed", + "minecraft:orange_carpet", + "minecraft:orange_concrete", + "minecraft:orange_concrete_powder", + "minecraft:orange_dye", + "minecraft:orange_glazed_terracotta", + "minecraft:orange_shulker_box", + "minecraft:orange_stained_glass", + "minecraft:orange_stained_glass_pane", + "minecraft:orange_terracotta", + "minecraft:orange_tulip", + "minecraft:orange_wool", + "minecraft:oxeye_daisy", + "minecraft:packed_ice", + "minecraft:painting", + "minecraft:panda_spawn_egg", + "minecraft:paper", + "minecraft:parrot_spawn_egg", + "minecraft:peony", + "minecraft:petrified_oak_slab", + "minecraft:phantom_membrane", + "minecraft:phantom_spawn_egg", + "minecraft:pig_spawn_egg", + "minecraft:pillager_spawn_egg", + "minecraft:pink_banner", + "minecraft:pink_bed", + "minecraft:pink_carpet", + "minecraft:pink_concrete", + "minecraft:pink_concrete_powder", + "minecraft:pink_dye", + "minecraft:pink_glazed_terracotta", + "minecraft:pink_shulker_box", + "minecraft:pink_stained_glass", + "minecraft:pink_stained_glass_pane", + "minecraft:pink_terracotta", + "minecraft:pink_tulip", + "minecraft:pink_wool", + "minecraft:piston", + "minecraft:player_head", + "minecraft:podzol", + "minecraft:poisonous_potato", + "minecraft:polar_bear_spawn_egg", + "minecraft:polished_andesite", + "minecraft:polished_andesite_slab", + "minecraft:polished_andesite_stairs", + "minecraft:polished_diorite", + "minecraft:polished_diorite_slab", + "minecraft:polished_diorite_stairs", + "minecraft:polished_granite", + "minecraft:polished_granite_slab", + "minecraft:polished_granite_stairs", + "minecraft:popped_chorus_fruit", + "minecraft:poppy", + "minecraft:porkchop", + "minecraft:potato", + "minecraft:potion", + "minecraft:powered_rail", + "minecraft:prismarine", + "minecraft:prismarine_brick_slab", + "minecraft:prismarine_brick_stairs", + "minecraft:prismarine_bricks", + "minecraft:prismarine_crystals", + "minecraft:prismarine_shard", + "minecraft:prismarine_slab", + "minecraft:prismarine_stairs", + "minecraft:prismarine_wall", + "minecraft:pufferfish", + "minecraft:pufferfish_bucket", + "minecraft:pufferfish_spawn_egg", + "minecraft:pumpkin", + "minecraft:pumpkin_pie", + "minecraft:pumpkin_seeds", + "minecraft:purple_banner", + "minecraft:purple_bed", + "minecraft:purple_carpet", + "minecraft:purple_concrete", + "minecraft:purple_concrete_powder", + "minecraft:purple_dye", + "minecraft:purple_glazed_terracotta", + "minecraft:purple_shulker_box", + "minecraft:purple_stained_glass", + "minecraft:purple_stained_glass_pane", + "minecraft:purple_terracotta", + "minecraft:purple_wool", + "minecraft:purpur_block", + "minecraft:purpur_pillar", + "minecraft:purpur_slab", + "minecraft:purpur_stairs", + "minecraft:quartz", + "minecraft:quartz_block", + "minecraft:quartz_pillar", + "minecraft:quartz_slab", + "minecraft:quartz_stairs", + "minecraft:rabbit", + "minecraft:rabbit_foot", + "minecraft:rabbit_hide", + "minecraft:rabbit_spawn_egg", + "minecraft:rabbit_stew", + "minecraft:rail", + "minecraft:ravager_spawn_egg", + "minecraft:red_banner", + "minecraft:red_bed", + "minecraft:red_carpet", + "minecraft:red_concrete", + "minecraft:red_concrete_powder", + "minecraft:red_dye", + "minecraft:red_glazed_terracotta", + "minecraft:red_mushroom", + "minecraft:red_mushroom_block", + "minecraft:red_nether_brick_slab", + "minecraft:red_nether_brick_stairs", + "minecraft:red_nether_brick_wall", + "minecraft:red_nether_bricks", + "minecraft:red_sand", + "minecraft:red_sandstone", + "minecraft:red_sandstone_slab", + "minecraft:red_sandstone_stairs", + "minecraft:red_sandstone_wall", + "minecraft:red_shulker_box", + "minecraft:red_stained_glass", + "minecraft:red_stained_glass_pane", + "minecraft:red_terracotta", + "minecraft:red_tulip", + "minecraft:red_wool", + "minecraft:redstone", + "minecraft:redstone_block", + "minecraft:redstone_lamp", + "minecraft:redstone_ore", + "minecraft:redstone_torch", + "minecraft:repeater", + "minecraft:repeating_command_block", + "minecraft:rose_bush", + "minecraft:rotten_flesh", + "minecraft:saddle", + "minecraft:salmon", + "minecraft:salmon_bucket", + "minecraft:salmon_spawn_egg", + "minecraft:sand", + "minecraft:sandstone", + "minecraft:sandstone_slab", + "minecraft:sandstone_stairs", + "minecraft:sandstone_wall", + "minecraft:scaffolding", + "minecraft:scute", + "minecraft:sea_lantern", + "minecraft:sea_pickle", + "minecraft:seagrass", + "minecraft:shears", + "minecraft:sheep_spawn_egg", + "minecraft:shield", + "minecraft:shulker_box", + "minecraft:shulker_shell", + "minecraft:shulker_spawn_egg", + "minecraft:silverfish_spawn_egg", + "minecraft:skeleton_horse_spawn_egg", + "minecraft:skeleton_skull", + "minecraft:skeleton_spawn_egg", + "minecraft:skull_banner_pattern", + "minecraft:slime_ball", + "minecraft:slime_block", + "minecraft:slime_spawn_egg", + "minecraft:smithing_table", + "minecraft:smoker", + "minecraft:smooth_quartz", + "minecraft:smooth_quartz_slab", + "minecraft:smooth_quartz_stairs", + "minecraft:smooth_red_sandstone", + "minecraft:smooth_red_sandstone_slab", + "minecraft:smooth_red_sandstone_stairs", + "minecraft:smooth_sandstone", + "minecraft:smooth_sandstone_slab", + "minecraft:smooth_sandstone_stairs", + "minecraft:smooth_stone", + "minecraft:smooth_stone_slab", + "minecraft:snow", + "minecraft:snow_block", + "minecraft:snowball", + "minecraft:soul_sand", + "minecraft:spawner", + "minecraft:spectral_arrow", + "minecraft:spider_eye", + "minecraft:spider_spawn_egg", + "minecraft:splash_potion", + "minecraft:sponge", + "minecraft:spruce_boat", + "minecraft:spruce_button", + "minecraft:spruce_door", + "minecraft:spruce_fence", + "minecraft:spruce_fence_gate", + "minecraft:spruce_leaves", + "minecraft:spruce_log", + "minecraft:spruce_planks", + "minecraft:spruce_pressure_plate", + "minecraft:spruce_sapling", + "minecraft:spruce_sign", + "minecraft:spruce_slab", + "minecraft:spruce_stairs", + "minecraft:spruce_trapdoor", + "minecraft:spruce_wood", + "minecraft:squid_spawn_egg", + "minecraft:stick", + "minecraft:sticky_piston", + "minecraft:stone", + "minecraft:stone_axe", + "minecraft:stone_brick_slab", + "minecraft:stone_brick_stairs", + "minecraft:stone_brick_wall", + "minecraft:stone_bricks", + "minecraft:stone_button", + "minecraft:stone_hoe", + "minecraft:stone_pickaxe", + "minecraft:stone_pressure_plate", + "minecraft:stone_shovel", + "minecraft:stone_slab", + "minecraft:stone_stairs", + "minecraft:stone_sword", + "minecraft:stonecutter", + "minecraft:stray_spawn_egg", + "minecraft:string", + "minecraft:stripped_acacia_log", + "minecraft:stripped_acacia_wood", + "minecraft:stripped_birch_log", + "minecraft:stripped_birch_wood", + "minecraft:stripped_dark_oak_log", + "minecraft:stripped_dark_oak_wood", + "minecraft:stripped_jungle_log", + "minecraft:stripped_jungle_wood", + "minecraft:stripped_oak_log", + "minecraft:stripped_oak_wood", + "minecraft:stripped_spruce_log", + "minecraft:stripped_spruce_wood", + "minecraft:structure_block", + "minecraft:structure_void", + "minecraft:sugar", + "minecraft:sugar_cane", + "minecraft:sunflower", + "minecraft:suspicious_stew", + "minecraft:sweet_berries", + "minecraft:tall_grass", + "minecraft:terracotta", + "minecraft:tipped_arrow", + "minecraft:tnt", + "minecraft:tnt_minecart", + "minecraft:torch", + "minecraft:totem_of_undying", + "minecraft:trader_llama_spawn_egg", + "minecraft:trapped_chest", + "minecraft:trident", + "minecraft:tripwire_hook", + "minecraft:tropical_fish", + "minecraft:tropical_fish_bucket", + "minecraft:tropical_fish_spawn_egg", + "minecraft:tube_coral", + "minecraft:tube_coral_block", + "minecraft:tube_coral_fan", + "minecraft:turtle_egg", + "minecraft:turtle_helmet", + "minecraft:turtle_spawn_egg", + "minecraft:vex_spawn_egg", + "minecraft:villager_spawn_egg", + "minecraft:vindicator_spawn_egg", + "minecraft:vine", + "minecraft:wandering_trader_spawn_egg", + "minecraft:water_bucket", + "minecraft:wet_sponge", + "minecraft:wheat", + "minecraft:wheat_seeds", + "minecraft:white_banner", + "minecraft:white_bed", + "minecraft:white_carpet", + "minecraft:white_concrete", + "minecraft:white_concrete_powder", + "minecraft:white_dye", + "minecraft:white_glazed_terracotta", + "minecraft:white_shulker_box", + "minecraft:white_stained_glass", + "minecraft:white_stained_glass_pane", + "minecraft:white_terracotta", + "minecraft:white_tulip", + "minecraft:white_wool", + "minecraft:witch_spawn_egg", + "minecraft:wither_rose", + "minecraft:wither_skeleton_skull", + "minecraft:wither_skeleton_spawn_egg", + "minecraft:wolf_spawn_egg", + "minecraft:wooden_axe", + "minecraft:wooden_hoe", + "minecraft:wooden_pickaxe", + "minecraft:wooden_shovel", + "minecraft:wooden_sword", + "minecraft:writable_book", + "minecraft:written_book", + "minecraft:yellow_banner", + "minecraft:yellow_bed", + "minecraft:yellow_carpet", + "minecraft:yellow_concrete", + "minecraft:yellow_concrete_powder", + "minecraft:yellow_dye", + "minecraft:yellow_glazed_terracotta", + "minecraft:yellow_shulker_box", + "minecraft:yellow_stained_glass", + "minecraft:yellow_stained_glass_pane", + "minecraft:yellow_terracotta", + "minecraft:yellow_wool", + "minecraft:zombie_head", + "minecraft:zombie_horse_spawn_egg", + "minecraft:zombie_pigman_spawn_egg", + "minecraft:zombie_spawn_egg", + "minecraft:zombie_villager_spawn_egg" + ], + "entities": [ + "minecraft:area_effect_cloud", + "minecraft:armor_stand", + "minecraft:arrow", + "minecraft:bat", + "minecraft:bee", + "minecraft:blaze", + "minecraft:boat", + "minecraft:cat", + "minecraft:cave_spider", + "minecraft:chest_minecart", + "minecraft:chicken", + "minecraft:cod", + "minecraft:command_block_minecart", + "minecraft:cow", + "minecraft:creeper", + "minecraft:dolphin", + "minecraft:donkey", + "minecraft:dragon_fireball", + "minecraft:drowned", + "minecraft:egg", + "minecraft:elder_guardian", + "minecraft:end_crystal", + "minecraft:ender_dragon", + "minecraft:ender_pearl", + "minecraft:enderman", + "minecraft:endermite", + "minecraft:evoker", + "minecraft:evoker_fangs", + "minecraft:experience_bottle", + "minecraft:experience_orb", + "minecraft:eye_of_ender", + "minecraft:falling_block", + "minecraft:fireball", + "minecraft:firework_rocket", + "minecraft:fishing_bobber", + "minecraft:fox", + "minecraft:furnace_minecart", + "minecraft:ghast", + "minecraft:giant", + "minecraft:guardian", + "minecraft:hopper_minecart", + "minecraft:horse", + "minecraft:husk", + "minecraft:illusioner", + "minecraft:iron_golem", + "minecraft:item", + "minecraft:item_frame", + "minecraft:leash_knot", + "minecraft:lightning_bolt", + "minecraft:llama", + "minecraft:llama_spit", + "minecraft:magma_cube", + "minecraft:minecart", + "minecraft:mooshroom", + "minecraft:mule", + "minecraft:ocelot", + "minecraft:painting", + "minecraft:panda", + "minecraft:parrot", + "minecraft:phantom", + "minecraft:pig", + "minecraft:pillager", + "minecraft:player", + "minecraft:polar_bear", + "minecraft:potion", + "minecraft:pufferfish", + "minecraft:rabbit", + "minecraft:ravager", + "minecraft:salmon", + "minecraft:sheep", + "minecraft:shulker", + "minecraft:shulker_bullet", + "minecraft:silverfish", + "minecraft:skeleton", + "minecraft:skeleton_horse", + "minecraft:slime", + "minecraft:small_fireball", + "minecraft:snow_golem", + "minecraft:snowball", + "minecraft:spawner_minecart", + "minecraft:spectral_arrow", + "minecraft:spider", + "minecraft:squid", + "minecraft:stray", + "minecraft:tnt", + "minecraft:tnt_minecart", + "minecraft:trader_llama", + "minecraft:trident", + "minecraft:tropical_fish", + "minecraft:turtle", + "minecraft:vex", + "minecraft:villager", + "minecraft:vindicator", + "minecraft:wandering_trader", + "minecraft:witch", + "minecraft:wither", + "minecraft:wither_skeleton", + "minecraft:wither_skull", + "minecraft:wolf", + "minecraft:zombie", + "minecraft:zombie_horse", + "minecraft:zombie_pigman", + "minecraft:zombie_villager" + ], + "biomes": [ + "minecraft:badlands", + "minecraft:badlands_plateau", + "minecraft:bamboo_jungle", + "minecraft:bamboo_jungle_hills", + "minecraft:beach", + "minecraft:birch_forest", + "minecraft:birch_forest_hills", + "minecraft:cold_ocean", + "minecraft:dark_forest", + "minecraft:dark_forest_hills", + "minecraft:deep_cold_ocean", + "minecraft:deep_frozen_ocean", + "minecraft:deep_lukewarm_ocean", + "minecraft:deep_ocean", + "minecraft:deep_warm_ocean", + "minecraft:desert", + "minecraft:desert_hills", + "minecraft:desert_lakes", + "minecraft:end_barrens", + "minecraft:end_highlands", + "minecraft:end_midlands", + "minecraft:eroded_badlands", + "minecraft:flower_forest", + "minecraft:forest", + "minecraft:frozen_ocean", + "minecraft:frozen_river", + "minecraft:giant_spruce_taiga", + "minecraft:giant_spruce_taiga_hills", + "minecraft:giant_tree_taiga", + "minecraft:giant_tree_taiga_hills", + "minecraft:gravelly_mountains", + "minecraft:ice_spikes", + "minecraft:jungle", + "minecraft:jungle_edge", + "minecraft:jungle_hills", + "minecraft:lukewarm_ocean", + "minecraft:modified_badlands_plateau", + "minecraft:modified_gravelly_mountains", + "minecraft:modified_jungle", + "minecraft:modified_jungle_edge", + "minecraft:modified_wooded_badlands_plateau", + "minecraft:mountain_edge", + "minecraft:mountains", + "minecraft:mushroom_field_shore", + "minecraft:mushroom_fields", + "minecraft:nether", + "minecraft:ocean", + "minecraft:plains", + "minecraft:river", + "minecraft:savanna", + "minecraft:savanna_plateau", + "minecraft:shattered_savanna", + "minecraft:shattered_savanna_plateau", + "minecraft:small_end_islands", + "minecraft:snowy_beach", + "minecraft:snowy_mountains", + "minecraft:snowy_taiga", + "minecraft:snowy_taiga_hills", + "minecraft:snowy_taiga_mountains", + "minecraft:snowy_tundra", + "minecraft:stone_shore", + "minecraft:sunflower_plains", + "minecraft:swamp", + "minecraft:swamp_hills", + "minecraft:taiga", + "minecraft:taiga_hills", + "minecraft:taiga_mountains", + "minecraft:tall_birch_forest", + "minecraft:tall_birch_hills", + "minecraft:the_end", + "minecraft:the_void", + "minecraft:warm_ocean", + "minecraft:wooded_badlands_plateau", + "minecraft:wooded_hills", + "minecraft:wooded_mountains" + ], + "blocktags": { + "minecraft:slabs": [ + "minecraft:stone_slab", + "minecraft:smooth_stone_slab", + "minecraft:stone_brick_slab", + "minecraft:sandstone_slab", + "minecraft:acacia_slab", + "minecraft:birch_slab", + "minecraft:dark_oak_slab", + "minecraft:jungle_slab", + "minecraft:oak_slab", + "minecraft:spruce_slab", + "minecraft:purpur_slab", + "minecraft:quartz_slab", + "minecraft:red_sandstone_slab", + "minecraft:brick_slab", + "minecraft:cobblestone_slab", + "minecraft:nether_brick_slab", + "minecraft:petrified_oak_slab", + "minecraft:prismarine_slab", + "minecraft:prismarine_brick_slab", + "minecraft:dark_prismarine_slab", + "minecraft:polished_granite_slab", + "minecraft:smooth_red_sandstone_slab", + "minecraft:mossy_stone_brick_slab", + "minecraft:polished_diorite_slab", + "minecraft:mossy_cobblestone_slab", + "minecraft:end_stone_brick_slab", + "minecraft:smooth_sandstone_slab", + "minecraft:smooth_quartz_slab", + "minecraft:granite_slab", + "minecraft:andesite_slab", + "minecraft:red_nether_brick_slab", + "minecraft:polished_andesite_slab", + "minecraft:diorite_slab", + "minecraft:cut_sandstone_slab", + "minecraft:cut_red_sandstone_slab" + ], + "minecraft:carpets": [ + "minecraft:white_carpet", + "minecraft:orange_carpet", + "minecraft:magenta_carpet", + "minecraft:light_blue_carpet", + "minecraft:yellow_carpet", + "minecraft:lime_carpet", + "minecraft:pink_carpet", + "minecraft:gray_carpet", + "minecraft:light_gray_carpet", + "minecraft:cyan_carpet", + "minecraft:purple_carpet", + "minecraft:blue_carpet", + "minecraft:brown_carpet", + "minecraft:green_carpet", + "minecraft:red_carpet", + "minecraft:black_carpet" + ], + "minecraft:stairs": [ + "minecraft:oak_stairs", + "minecraft:cobblestone_stairs", + "minecraft:spruce_stairs", + "minecraft:sandstone_stairs", + "minecraft:acacia_stairs", + "minecraft:jungle_stairs", + "minecraft:birch_stairs", + "minecraft:dark_oak_stairs", + "minecraft:nether_brick_stairs", + "minecraft:stone_brick_stairs", + "minecraft:brick_stairs", + "minecraft:purpur_stairs", + "minecraft:quartz_stairs", + "minecraft:red_sandstone_stairs", + "minecraft:prismarine_brick_stairs", + "minecraft:prismarine_stairs", + "minecraft:dark_prismarine_stairs", + "minecraft:polished_granite_stairs", + "minecraft:smooth_red_sandstone_stairs", + "minecraft:mossy_stone_brick_stairs", + "minecraft:polished_diorite_stairs", + "minecraft:mossy_cobblestone_stairs", + "minecraft:end_stone_brick_stairs", + "minecraft:stone_stairs", + "minecraft:smooth_sandstone_stairs", + "minecraft:smooth_quartz_stairs", + "minecraft:granite_stairs", + "minecraft:andesite_stairs", + "minecraft:red_nether_brick_stairs", + "minecraft:polished_andesite_stairs", + "minecraft:diorite_stairs" + ], + "minecraft:wooden_doors": [ + "minecraft:oak_door", + "minecraft:spruce_door", + "minecraft:birch_door", + "minecraft:jungle_door", + "minecraft:acacia_door", + "minecraft:dark_oak_door" + ], + "minecraft:jungle_logs": [ + "minecraft:jungle_log", + "minecraft:jungle_wood", + "minecraft:stripped_jungle_log", + "minecraft:stripped_jungle_wood" + ], + "minecraft:planks": [ + "minecraft:oak_planks", + "minecraft:spruce_planks", + "minecraft:birch_planks", + "minecraft:jungle_planks", + "minecraft:acacia_planks", + "minecraft:dark_oak_planks" + ], + "minecraft:wall_corals": [ + "minecraft:tube_coral_wall_fan", + "minecraft:brain_coral_wall_fan", + "minecraft:bubble_coral_wall_fan", + "minecraft:fire_coral_wall_fan", + "minecraft:horn_coral_wall_fan" + ], + "minecraft:shulker_boxes": [ + "minecraft:shulker_box", + "minecraft:black_shulker_box", + "minecraft:blue_shulker_box", + "minecraft:brown_shulker_box", + "minecraft:cyan_shulker_box", + "minecraft:gray_shulker_box", + "minecraft:green_shulker_box", + "minecraft:light_blue_shulker_box", + "minecraft:light_gray_shulker_box", + "minecraft:lime_shulker_box", + "minecraft:magenta_shulker_box", + "minecraft:orange_shulker_box", + "minecraft:pink_shulker_box", + "minecraft:purple_shulker_box", + "minecraft:red_shulker_box", + "minecraft:white_shulker_box", + "minecraft:yellow_shulker_box" + ], + "minecraft:acacia_logs": [ + "minecraft:acacia_log", + "minecraft:acacia_wood", + "minecraft:stripped_acacia_log", + "minecraft:stripped_acacia_wood" + ], + "minecraft:wither_immune": [ + "minecraft:barrier", + "minecraft:bedrock", + "minecraft:end_portal", + "minecraft:end_portal_frame", + "minecraft:end_gateway", + "minecraft:command_block", + "minecraft:repeating_command_block", + "minecraft:chain_command_block", + "minecraft:structure_block", + "minecraft:jigsaw", + "minecraft:moving_piston" + ], + "minecraft:flower_pots": [ + "minecraft:flower_pot", + "minecraft:potted_poppy", + "minecraft:potted_blue_orchid", + "minecraft:potted_allium", + "minecraft:potted_azure_bluet", + "minecraft:potted_red_tulip", + "minecraft:potted_orange_tulip", + "minecraft:potted_white_tulip", + "minecraft:potted_pink_tulip", + "minecraft:potted_oxeye_daisy", + "minecraft:potted_dandelion", + "minecraft:potted_oak_sapling", + "minecraft:potted_spruce_sapling", + "minecraft:potted_birch_sapling", + "minecraft:potted_jungle_sapling", + "minecraft:potted_acacia_sapling", + "minecraft:potted_dark_oak_sapling", + "minecraft:potted_red_mushroom", + "minecraft:potted_brown_mushroom", + "minecraft:potted_dead_bush", + "minecraft:potted_fern", + "minecraft:potted_cactus", + "minecraft:potted_cornflower", + "minecraft:potted_lily_of_the_valley", + "minecraft:potted_wither_rose", + "minecraft:potted_bamboo" + ], + "minecraft:stone_bricks": [ + "minecraft:stone_bricks", + "minecraft:mossy_stone_bricks", + "minecraft:cracked_stone_bricks", + "minecraft:chiseled_stone_bricks" + ], + "minecraft:enderman_holdable": [ + "minecraft:grass_block", + "minecraft:dirt", + "minecraft:coarse_dirt", + "minecraft:podzol", + "minecraft:sand", + "minecraft:red_sand", + "minecraft:gravel", + "minecraft:brown_mushroom", + "minecraft:red_mushroom", + "minecraft:tnt", + "minecraft:cactus", + "minecraft:clay", + "minecraft:pumpkin", + "minecraft:carved_pumpkin", + "minecraft:melon", + "minecraft:mycelium", + "minecraft:netherrack", + "minecraft:dandelion", + "minecraft:poppy", + "minecraft:blue_orchid", + "minecraft:allium", + "minecraft:azure_bluet", + "minecraft:red_tulip", + "minecraft:orange_tulip", + "minecraft:white_tulip", + "minecraft:pink_tulip", + "minecraft:oxeye_daisy", + "minecraft:cornflower", + "minecraft:lily_of_the_valley", + "minecraft:wither_rose" + ], + "minecraft:spruce_logs": [ + "minecraft:spruce_log", + "minecraft:spruce_wood", + "minecraft:stripped_spruce_log", + "minecraft:stripped_spruce_wood" + ], + "minecraft:flowers": [ + "minecraft:dandelion", + "minecraft:poppy", + "minecraft:blue_orchid", + "minecraft:allium", + "minecraft:azure_bluet", + "minecraft:red_tulip", + "minecraft:orange_tulip", + "minecraft:white_tulip", + "minecraft:pink_tulip", + "minecraft:oxeye_daisy", + "minecraft:cornflower", + "minecraft:lily_of_the_valley", + "minecraft:wither_rose", + "minecraft:sunflower", + "minecraft:lilac", + "minecraft:peony", + "minecraft:rose_bush" + ], + "minecraft:wooden_slabs": [ + "minecraft:oak_slab", + "minecraft:spruce_slab", + "minecraft:birch_slab", + "minecraft:jungle_slab", + "minecraft:acacia_slab", + "minecraft:dark_oak_slab" + ], + "minecraft:coral_blocks": [ + "minecraft:tube_coral_block", + "minecraft:brain_coral_block", + "minecraft:bubble_coral_block", + "minecraft:fire_coral_block", + "minecraft:horn_coral_block" + ], + "minecraft:signs": [ + "minecraft:oak_sign", + "minecraft:spruce_sign", + "minecraft:birch_sign", + "minecraft:acacia_sign", + "minecraft:jungle_sign", + "minecraft:dark_oak_sign", + "minecraft:oak_wall_sign", + "minecraft:spruce_wall_sign", + "minecraft:birch_wall_sign", + "minecraft:acacia_wall_sign", + "minecraft:jungle_wall_sign", + "minecraft:dark_oak_wall_sign" + ], + "minecraft:dark_oak_logs": [ + "minecraft:dark_oak_log", + "minecraft:dark_oak_wood", + "minecraft:stripped_dark_oak_log", + "minecraft:stripped_dark_oak_wood" + ], + "minecraft:sand": [ + "minecraft:sand", + "minecraft:red_sand" + ], + "minecraft:valid_spawn": [ + "minecraft:grass_block", + "minecraft:podzol" + ], + "minecraft:underwater_bonemeals": [ + "minecraft:seagrass", + "minecraft:tube_coral_fan", + "minecraft:brain_coral_fan", + "minecraft:bubble_coral_fan", + "minecraft:fire_coral_fan", + "minecraft:horn_coral_fan", + "minecraft:tube_coral", + "minecraft:brain_coral", + "minecraft:bubble_coral", + "minecraft:fire_coral", + "minecraft:horn_coral", + "minecraft:tube_coral_wall_fan", + "minecraft:brain_coral_wall_fan", + "minecraft:bubble_coral_wall_fan", + "minecraft:fire_coral_wall_fan", + "minecraft:horn_coral_wall_fan" + ], + "minecraft:oak_logs": [ + "minecraft:oak_log", + "minecraft:oak_wood", + "minecraft:stripped_oak_log", + "minecraft:stripped_oak_wood" + ], + "minecraft:buttons": [ + "minecraft:stone_button", + "minecraft:oak_button", + "minecraft:spruce_button", + "minecraft:birch_button", + "minecraft:jungle_button", + "minecraft:acacia_button", + "minecraft:dark_oak_button" + ], + "minecraft:wooden_pressure_plates": [ + "minecraft:oak_pressure_plate", + "minecraft:spruce_pressure_plate", + "minecraft:birch_pressure_plate", + "minecraft:jungle_pressure_plate", + "minecraft:acacia_pressure_plate", + "minecraft:dark_oak_pressure_plate" + ], + "minecraft:beds": [ + "minecraft:red_bed", + "minecraft:black_bed", + "minecraft:blue_bed", + "minecraft:brown_bed", + "minecraft:cyan_bed", + "minecraft:gray_bed", + "minecraft:green_bed", + "minecraft:light_blue_bed", + "minecraft:light_gray_bed", + "minecraft:lime_bed", + "minecraft:magenta_bed", + "minecraft:orange_bed", + "minecraft:pink_bed", + "minecraft:purple_bed", + "minecraft:white_bed", + "minecraft:yellow_bed" + ], + "minecraft:walls": [ + "minecraft:cobblestone_wall", + "minecraft:mossy_cobblestone_wall", + "minecraft:brick_wall", + "minecraft:prismarine_wall", + "minecraft:red_sandstone_wall", + "minecraft:mossy_stone_brick_wall", + "minecraft:granite_wall", + "minecraft:stone_brick_wall", + "minecraft:nether_brick_wall", + "minecraft:andesite_wall", + "minecraft:red_nether_brick_wall", + "minecraft:sandstone_wall", + "minecraft:end_stone_brick_wall", + "minecraft:diorite_wall" + ], + "minecraft:rails": [ + "minecraft:rail", + "minecraft:powered_rail", + "minecraft:detector_rail", + "minecraft:activator_rail" + ], + "minecraft:beehives": [ + "minecraft:bee_nest", + "minecraft:beehive" + ], + "minecraft:birch_logs": [ + "minecraft:birch_log", + "minecraft:birch_wood", + "minecraft:stripped_birch_log", + "minecraft:stripped_birch_wood" + ], + "minecraft:wooden_trapdoors": [ + "minecraft:acacia_trapdoor", + "minecraft:birch_trapdoor", + "minecraft:dark_oak_trapdoor", + "minecraft:jungle_trapdoor", + "minecraft:oak_trapdoor", + "minecraft:spruce_trapdoor" + ], + "minecraft:wooden_fences": [ + "minecraft:oak_fence", + "minecraft:acacia_fence", + "minecraft:dark_oak_fence", + "minecraft:spruce_fence", + "minecraft:birch_fence", + "minecraft:jungle_fence" + ], + "minecraft:saplings": [ + "minecraft:oak_sapling", + "minecraft:spruce_sapling", + "minecraft:birch_sapling", + "minecraft:jungle_sapling", + "minecraft:acacia_sapling", + "minecraft:dark_oak_sapling" + ], + "minecraft:small_flowers": [ + "minecraft:dandelion", + "minecraft:poppy", + "minecraft:blue_orchid", + "minecraft:allium", + "minecraft:azure_bluet", + "minecraft:red_tulip", + "minecraft:orange_tulip", + "minecraft:white_tulip", + "minecraft:pink_tulip", + "minecraft:oxeye_daisy", + "minecraft:cornflower", + "minecraft:lily_of_the_valley", + "minecraft:wither_rose" + ], + "minecraft:crops": [ + "minecraft:beetroots", + "minecraft:carrots", + "minecraft:potatoes", + "minecraft:wheat", + "minecraft:melon_stem", + "minecraft:pumpkin_stem" + ], + "minecraft:bamboo_plantable_on": [ + "minecraft:bamboo", + "minecraft:bamboo_sapling", + "minecraft:gravel", + "minecraft:dirt", + "minecraft:grass_block", + "minecraft:podzol", + "minecraft:coarse_dirt", + "minecraft:mycelium", + "minecraft:sand", + "minecraft:red_sand" + ], + "minecraft:ice": [ + "minecraft:ice", + "minecraft:packed_ice", + "minecraft:blue_ice", + "minecraft:frosted_ice" + ], + "minecraft:wooden_stairs": [ + "minecraft:oak_stairs", + "minecraft:spruce_stairs", + "minecraft:birch_stairs", + "minecraft:jungle_stairs", + "minecraft:acacia_stairs", + "minecraft:dark_oak_stairs" + ], + "minecraft:anvil": [ + "minecraft:anvil", + "minecraft:chipped_anvil", + "minecraft:damaged_anvil" + ], + "minecraft:tall_flowers": [ + "minecraft:sunflower", + "minecraft:lilac", + "minecraft:peony", + "minecraft:rose_bush" + ], + "minecraft:logs": [ + "minecraft:dark_oak_log", + "minecraft:dark_oak_wood", + "minecraft:stripped_dark_oak_log", + "minecraft:stripped_dark_oak_wood", + "minecraft:oak_log", + "minecraft:oak_wood", + "minecraft:stripped_oak_log", + "minecraft:stripped_oak_wood", + "minecraft:acacia_log", + "minecraft:acacia_wood", + "minecraft:stripped_acacia_log", + "minecraft:stripped_acacia_wood", + "minecraft:birch_log", + "minecraft:birch_wood", + "minecraft:stripped_birch_log", + "minecraft:stripped_birch_wood", + "minecraft:jungle_log", + "minecraft:jungle_wood", + "minecraft:stripped_jungle_log", + "minecraft:stripped_jungle_wood", + "minecraft:spruce_log", + "minecraft:spruce_wood", + "minecraft:stripped_spruce_log", + "minecraft:stripped_spruce_wood" + ], + "minecraft:corals": [ + "minecraft:tube_coral_fan", + "minecraft:brain_coral_fan", + "minecraft:bubble_coral_fan", + "minecraft:fire_coral_fan", + "minecraft:horn_coral_fan", + "minecraft:tube_coral", + "minecraft:brain_coral", + "minecraft:bubble_coral", + "minecraft:fire_coral", + "minecraft:horn_coral" + ], + "minecraft:bee_growables": [ + "minecraft:sweet_berry_bush", + "minecraft:beetroots", + "minecraft:carrots", + "minecraft:potatoes", + "minecraft:wheat", + "minecraft:melon_stem", + "minecraft:pumpkin_stem" + ], + "minecraft:wooden_buttons": [ + "minecraft:oak_button", + "minecraft:spruce_button", + "minecraft:birch_button", + "minecraft:jungle_button", + "minecraft:acacia_button", + "minecraft:dark_oak_button" + ], + "minecraft:wool": [ + "minecraft:white_wool", + "minecraft:orange_wool", + "minecraft:magenta_wool", + "minecraft:light_blue_wool", + "minecraft:yellow_wool", + "minecraft:lime_wool", + "minecraft:pink_wool", + "minecraft:gray_wool", + "minecraft:light_gray_wool", + "minecraft:cyan_wool", + "minecraft:purple_wool", + "minecraft:blue_wool", + "minecraft:brown_wool", + "minecraft:green_wool", + "minecraft:red_wool", + "minecraft:black_wool" + ], + "minecraft:coral_plants": [ + "minecraft:tube_coral", + "minecraft:brain_coral", + "minecraft:bubble_coral", + "minecraft:fire_coral", + "minecraft:horn_coral" + ], + "minecraft:banners": [ + "minecraft:white_banner", + "minecraft:orange_banner", + "minecraft:magenta_banner", + "minecraft:light_blue_banner", + "minecraft:yellow_banner", + "minecraft:lime_banner", + "minecraft:pink_banner", + "minecraft:gray_banner", + "minecraft:light_gray_banner", + "minecraft:cyan_banner", + "minecraft:purple_banner", + "minecraft:blue_banner", + "minecraft:brown_banner", + "minecraft:green_banner", + "minecraft:red_banner", + "minecraft:black_banner", + "minecraft:white_wall_banner", + "minecraft:orange_wall_banner", + "minecraft:magenta_wall_banner", + "minecraft:light_blue_wall_banner", + "minecraft:yellow_wall_banner", + "minecraft:lime_wall_banner", + "minecraft:pink_wall_banner", + "minecraft:gray_wall_banner", + "minecraft:light_gray_wall_banner", + "minecraft:cyan_wall_banner", + "minecraft:purple_wall_banner", + "minecraft:blue_wall_banner", + "minecraft:brown_wall_banner", + "minecraft:green_wall_banner", + "minecraft:red_wall_banner", + "minecraft:black_wall_banner" + ], + "minecraft:dragon_immune": [ + "minecraft:barrier", + "minecraft:bedrock", + "minecraft:end_portal", + "minecraft:end_portal_frame", + "minecraft:end_gateway", + "minecraft:command_block", + "minecraft:repeating_command_block", + "minecraft:chain_command_block", + "minecraft:structure_block", + "minecraft:jigsaw", + "minecraft:moving_piston", + "minecraft:obsidian", + "minecraft:end_stone", + "minecraft:iron_bars" + ], + "minecraft:doors": [ + "minecraft:iron_door", + "minecraft:oak_door", + "minecraft:spruce_door", + "minecraft:birch_door", + "minecraft:jungle_door", + "minecraft:acacia_door", + "minecraft:dark_oak_door" + ], + "minecraft:portals": [ + "minecraft:nether_portal", + "minecraft:end_portal", + "minecraft:end_gateway" + ], + "minecraft:fences": [ + "minecraft:nether_brick_fence", + "minecraft:oak_fence", + "minecraft:acacia_fence", + "minecraft:dark_oak_fence", + "minecraft:spruce_fence", + "minecraft:birch_fence", + "minecraft:jungle_fence" + ], + "minecraft:wall_signs": [ + "minecraft:oak_wall_sign", + "minecraft:spruce_wall_sign", + "minecraft:birch_wall_sign", + "minecraft:acacia_wall_sign", + "minecraft:jungle_wall_sign", + "minecraft:dark_oak_wall_sign" + ], + "minecraft:standing_signs": [ + "minecraft:oak_sign", + "minecraft:spruce_sign", + "minecraft:birch_sign", + "minecraft:acacia_sign", + "minecraft:jungle_sign", + "minecraft:dark_oak_sign" + ], + "minecraft:impermeable": [ + "minecraft:glass", + "minecraft:white_stained_glass", + "minecraft:orange_stained_glass", + "minecraft:magenta_stained_glass", + "minecraft:light_blue_stained_glass", + "minecraft:yellow_stained_glass", + "minecraft:lime_stained_glass", + "minecraft:pink_stained_glass", + "minecraft:gray_stained_glass", + "minecraft:light_gray_stained_glass", + "minecraft:cyan_stained_glass", + "minecraft:purple_stained_glass", + "minecraft:blue_stained_glass", + "minecraft:brown_stained_glass", + "minecraft:green_stained_glass", + "minecraft:red_stained_glass", + "minecraft:black_stained_glass" + ], + "minecraft:trapdoors": [ + "minecraft:iron_trapdoor", + "minecraft:acacia_trapdoor", + "minecraft:birch_trapdoor", + "minecraft:dark_oak_trapdoor", + "minecraft:jungle_trapdoor", + "minecraft:oak_trapdoor", + "minecraft:spruce_trapdoor" + ], + "minecraft:leaves": [ + "minecraft:jungle_leaves", + "minecraft:oak_leaves", + "minecraft:spruce_leaves", + "minecraft:dark_oak_leaves", + "minecraft:acacia_leaves", + "minecraft:birch_leaves" + ] + }, + "itemtags": { + "minecraft:boats": [ + "minecraft:oak_boat", + "minecraft:spruce_boat", + "minecraft:birch_boat", + "minecraft:jungle_boat", + "minecraft:acacia_boat", + "minecraft:dark_oak_boat" + ], + "minecraft:banners": [ + "minecraft:white_banner", + "minecraft:orange_banner", + "minecraft:magenta_banner", + "minecraft:light_blue_banner", + "minecraft:yellow_banner", + "minecraft:lime_banner", + "minecraft:pink_banner", + "minecraft:gray_banner", + "minecraft:light_gray_banner", + "minecraft:cyan_banner", + "minecraft:purple_banner", + "minecraft:blue_banner", + "minecraft:brown_banner", + "minecraft:green_banner", + "minecraft:red_banner", + "minecraft:black_banner" + ], + "minecraft:arrows": [ + "minecraft:arrow", + "minecraft:tipped_arrow", + "minecraft:spectral_arrow" + ], + "minecraft:coals": [ + "minecraft:coal", + "minecraft:charcoal" + ], + "minecraft:music_discs": [ + "minecraft:music_disc_13", + "minecraft:music_disc_cat", + "minecraft:music_disc_blocks", + "minecraft:music_disc_chirp", + "minecraft:music_disc_far", + "minecraft:music_disc_mall", + "minecraft:music_disc_mellohi", + "minecraft:music_disc_stal", + "minecraft:music_disc_strad", + "minecraft:music_disc_ward", + "minecraft:music_disc_11", + "minecraft:music_disc_wait" + ], + "minecraft:fishes": [ + "minecraft:cod", + "minecraft:cooked_cod", + "minecraft:salmon", + "minecraft:cooked_salmon", + "minecraft:pufferfish", + "minecraft:tropical_fish" + ], + "minecraft:lectern_books": [ + "minecraft:written_book", + "minecraft:writable_book" + ] + }, + "entitytags": { + "minecraft:raiders": [ + "minecraft:evoker", + "minecraft:pillager", + "minecraft:ravager", + "minecraft:vindicator", + "minecraft:illusioner", + "minecraft:witch" + ], + "minecraft:skeletons": [ + "minecraft:skeleton", + "minecraft:stray", + "minecraft:wither_skeleton" + ], + "minecraft:arrows": [ + "minecraft:arrow", + "minecraft:spectral_arrow" + ], + "minecraft:beehive_inhabitors": [ + "minecraft:bee" + ] + } +} diff --git a/worldedit-cli/src/main/resources/com/sk89q/worldedit/cli/data/2567.json b/worldedit-cli/src/main/resources/com/sk89q/worldedit/cli/data/2567.json index 7f39a8cb0..4e6e293ba 100644 --- a/worldedit-cli/src/main/resources/com/sk89q/worldedit/cli/data/2567.json +++ b/worldedit-cli/src/main/resources/com/sk89q/worldedit/cli/data/2567.json @@ -1 +1,15570 @@ -{"blocks":{"minecraft:acacia_button":{"properties":{"face":{"values":["floor","wall","ceiling"],"type":"enum"},"facing":{"values":["north","south","west","east"],"type":"direction"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:acacia_button[face=wall,facing=north,powered=false]"},"minecraft:acacia_door":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["upper","lower"],"type":"enum"},"hinge":{"values":["left","right"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:acacia_door[facing=north,half=lower,hinge=left,open=false,powered=false]"},"minecraft:acacia_fence":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:acacia_fence[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:acacia_fence_gate":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"in_wall":{"values":["true","false"],"type":"bool"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:acacia_fence_gate[facing=north,in_wall=false,open=false,powered=false]"},"minecraft:acacia_leaves":{"properties":{"distance":{"values":["1","2","3","4","5","6","7"],"type":"int"},"persistent":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:acacia_leaves[distance=7,persistent=false]"},"minecraft:acacia_log":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:acacia_log[axis=y]"},"minecraft:acacia_planks":{"properties":{},"defaultstate":"minecraft:acacia_planks"},"minecraft:acacia_pressure_plate":{"properties":{"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:acacia_pressure_plate[powered=false]"},"minecraft:acacia_sapling":{"properties":{"stage":{"values":["0","1"],"type":"int"}},"defaultstate":"minecraft:acacia_sapling[stage=0]"},"minecraft:acacia_sign":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:acacia_sign[rotation=0,waterlogged=false]"},"minecraft:acacia_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:acacia_slab[type=bottom,waterlogged=false]"},"minecraft:acacia_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:acacia_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:acacia_trapdoor":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:acacia_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]"},"minecraft:acacia_wall_sign":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:acacia_wall_sign[facing=north,waterlogged=false]"},"minecraft:acacia_wood":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:acacia_wood[axis=y]"},"minecraft:activator_rail":{"properties":{"powered":{"values":["true","false"],"type":"bool"},"shape":{"values":["north_south","east_west","ascending_east","ascending_west","ascending_north","ascending_south"],"type":"enum"}},"defaultstate":"minecraft:activator_rail[powered=false,shape=north_south]"},"minecraft:air":{"properties":{},"defaultstate":"minecraft:air"},"minecraft:allium":{"properties":{},"defaultstate":"minecraft:allium"},"minecraft:ancient_debris":{"properties":{},"defaultstate":"minecraft:ancient_debris"},"minecraft:andesite":{"properties":{},"defaultstate":"minecraft:andesite"},"minecraft:andesite_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:andesite_slab[type=bottom,waterlogged=false]"},"minecraft:andesite_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:andesite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:andesite_wall":{"properties":{"east":{"values":["none","low","tall"],"type":"enum"},"north":{"values":["none","low","tall"],"type":"enum"},"south":{"values":["none","low","tall"],"type":"enum"},"up":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["none","low","tall"],"type":"enum"}},"defaultstate":"minecraft:andesite_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]"},"minecraft:anvil":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:anvil[facing=north]"},"minecraft:attached_melon_stem":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:attached_melon_stem[facing=north]"},"minecraft:attached_pumpkin_stem":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:attached_pumpkin_stem[facing=north]"},"minecraft:azure_bluet":{"properties":{},"defaultstate":"minecraft:azure_bluet"},"minecraft:bamboo":{"properties":{"age":{"values":["0","1"],"type":"int"},"leaves":{"values":["none","small","large"],"type":"enum"},"stage":{"values":["0","1"],"type":"int"}},"defaultstate":"minecraft:bamboo[age=0,leaves=none,stage=0]"},"minecraft:bamboo_sapling":{"properties":{},"defaultstate":"minecraft:bamboo_sapling"},"minecraft:barrel":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"},"open":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:barrel[facing=north,open=false]"},"minecraft:barrier":{"properties":{},"defaultstate":"minecraft:barrier"},"minecraft:basalt":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:basalt[axis=y]"},"minecraft:beacon":{"properties":{},"defaultstate":"minecraft:beacon"},"minecraft:bedrock":{"properties":{},"defaultstate":"minecraft:bedrock"},"minecraft:bee_nest":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"honey_level":{"values":["0","1","2","3","4","5"],"type":"int"}},"defaultstate":"minecraft:bee_nest[facing=north,honey_level=0]"},"minecraft:beehive":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"honey_level":{"values":["0","1","2","3","4","5"],"type":"int"}},"defaultstate":"minecraft:beehive[facing=north,honey_level=0]"},"minecraft:beetroots":{"properties":{"age":{"values":["0","1","2","3"],"type":"int"}},"defaultstate":"minecraft:beetroots[age=0]"},"minecraft:bell":{"properties":{"attachment":{"values":["floor","ceiling","single_wall","double_wall"],"type":"enum"},"facing":{"values":["north","south","west","east"],"type":"direction"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:bell[attachment=floor,facing=north,powered=false]"},"minecraft:birch_button":{"properties":{"face":{"values":["floor","wall","ceiling"],"type":"enum"},"facing":{"values":["north","south","west","east"],"type":"direction"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:birch_button[face=wall,facing=north,powered=false]"},"minecraft:birch_door":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["upper","lower"],"type":"enum"},"hinge":{"values":["left","right"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:birch_door[facing=north,half=lower,hinge=left,open=false,powered=false]"},"minecraft:birch_fence":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:birch_fence[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:birch_fence_gate":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"in_wall":{"values":["true","false"],"type":"bool"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:birch_fence_gate[facing=north,in_wall=false,open=false,powered=false]"},"minecraft:birch_leaves":{"properties":{"distance":{"values":["1","2","3","4","5","6","7"],"type":"int"},"persistent":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:birch_leaves[distance=7,persistent=false]"},"minecraft:birch_log":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:birch_log[axis=y]"},"minecraft:birch_planks":{"properties":{},"defaultstate":"minecraft:birch_planks"},"minecraft:birch_pressure_plate":{"properties":{"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:birch_pressure_plate[powered=false]"},"minecraft:birch_sapling":{"properties":{"stage":{"values":["0","1"],"type":"int"}},"defaultstate":"minecraft:birch_sapling[stage=0]"},"minecraft:birch_sign":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:birch_sign[rotation=0,waterlogged=false]"},"minecraft:birch_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:birch_slab[type=bottom,waterlogged=false]"},"minecraft:birch_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:birch_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:birch_trapdoor":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:birch_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]"},"minecraft:birch_wall_sign":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:birch_wall_sign[facing=north,waterlogged=false]"},"minecraft:birch_wood":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:birch_wood[axis=y]"},"minecraft:black_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:black_banner[rotation=0]"},"minecraft:black_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:black_bed[facing=north,occupied=false,part=foot]"},"minecraft:black_carpet":{"properties":{},"defaultstate":"minecraft:black_carpet"},"minecraft:black_concrete":{"properties":{},"defaultstate":"minecraft:black_concrete"},"minecraft:black_concrete_powder":{"properties":{},"defaultstate":"minecraft:black_concrete_powder"},"minecraft:black_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:black_glazed_terracotta[facing=north]"},"minecraft:black_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:black_shulker_box[facing=up]"},"minecraft:black_stained_glass":{"properties":{},"defaultstate":"minecraft:black_stained_glass"},"minecraft:black_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:black_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:black_terracotta":{"properties":{},"defaultstate":"minecraft:black_terracotta"},"minecraft:black_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:black_wall_banner[facing=north]"},"minecraft:black_wool":{"properties":{},"defaultstate":"minecraft:black_wool"},"minecraft:blackstone":{"properties":{},"defaultstate":"minecraft:blackstone"},"minecraft:blackstone_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:blackstone_slab[type=bottom,waterlogged=false]"},"minecraft:blackstone_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:blackstone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:blackstone_wall":{"properties":{"east":{"values":["none","low","tall"],"type":"enum"},"north":{"values":["none","low","tall"],"type":"enum"},"south":{"values":["none","low","tall"],"type":"enum"},"up":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["none","low","tall"],"type":"enum"}},"defaultstate":"minecraft:blackstone_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]"},"minecraft:blast_furnace":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"lit":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:blast_furnace[facing=north,lit=false]"},"minecraft:blue_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:blue_banner[rotation=0]"},"minecraft:blue_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:blue_bed[facing=north,occupied=false,part=foot]"},"minecraft:blue_carpet":{"properties":{},"defaultstate":"minecraft:blue_carpet"},"minecraft:blue_concrete":{"properties":{},"defaultstate":"minecraft:blue_concrete"},"minecraft:blue_concrete_powder":{"properties":{},"defaultstate":"minecraft:blue_concrete_powder"},"minecraft:blue_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:blue_glazed_terracotta[facing=north]"},"minecraft:blue_ice":{"properties":{},"defaultstate":"minecraft:blue_ice"},"minecraft:blue_orchid":{"properties":{},"defaultstate":"minecraft:blue_orchid"},"minecraft:blue_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:blue_shulker_box[facing=up]"},"minecraft:blue_stained_glass":{"properties":{},"defaultstate":"minecraft:blue_stained_glass"},"minecraft:blue_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:blue_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:blue_terracotta":{"properties":{},"defaultstate":"minecraft:blue_terracotta"},"minecraft:blue_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:blue_wall_banner[facing=north]"},"minecraft:blue_wool":{"properties":{},"defaultstate":"minecraft:blue_wool"},"minecraft:bone_block":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:bone_block[axis=y]"},"minecraft:bookshelf":{"properties":{},"defaultstate":"minecraft:bookshelf"},"minecraft:brain_coral":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:brain_coral[waterlogged=true]"},"minecraft:brain_coral_block":{"properties":{},"defaultstate":"minecraft:brain_coral_block"},"minecraft:brain_coral_fan":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:brain_coral_fan[waterlogged=true]"},"minecraft:brain_coral_wall_fan":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:brain_coral_wall_fan[facing=north,waterlogged=true]"},"minecraft:brewing_stand":{"properties":{"has_bottle_0":{"values":["true","false"],"type":"bool"},"has_bottle_1":{"values":["true","false"],"type":"bool"},"has_bottle_2":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:brewing_stand[has_bottle_0=false,has_bottle_1=false,has_bottle_2=false]"},"minecraft:brick_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:brick_slab[type=bottom,waterlogged=false]"},"minecraft:brick_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:brick_wall":{"properties":{"east":{"values":["none","low","tall"],"type":"enum"},"north":{"values":["none","low","tall"],"type":"enum"},"south":{"values":["none","low","tall"],"type":"enum"},"up":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["none","low","tall"],"type":"enum"}},"defaultstate":"minecraft:brick_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]"},"minecraft:bricks":{"properties":{},"defaultstate":"minecraft:bricks"},"minecraft:brown_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:brown_banner[rotation=0]"},"minecraft:brown_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:brown_bed[facing=north,occupied=false,part=foot]"},"minecraft:brown_carpet":{"properties":{},"defaultstate":"minecraft:brown_carpet"},"minecraft:brown_concrete":{"properties":{},"defaultstate":"minecraft:brown_concrete"},"minecraft:brown_concrete_powder":{"properties":{},"defaultstate":"minecraft:brown_concrete_powder"},"minecraft:brown_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:brown_glazed_terracotta[facing=north]"},"minecraft:brown_mushroom":{"properties":{},"defaultstate":"minecraft:brown_mushroom"},"minecraft:brown_mushroom_block":{"properties":{"down":{"values":["true","false"],"type":"bool"},"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:brown_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true]"},"minecraft:brown_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:brown_shulker_box[facing=up]"},"minecraft:brown_stained_glass":{"properties":{},"defaultstate":"minecraft:brown_stained_glass"},"minecraft:brown_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:brown_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:brown_terracotta":{"properties":{},"defaultstate":"minecraft:brown_terracotta"},"minecraft:brown_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:brown_wall_banner[facing=north]"},"minecraft:brown_wool":{"properties":{},"defaultstate":"minecraft:brown_wool"},"minecraft:bubble_column":{"properties":{"drag":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:bubble_column[drag=true]"},"minecraft:bubble_coral":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:bubble_coral[waterlogged=true]"},"minecraft:bubble_coral_block":{"properties":{},"defaultstate":"minecraft:bubble_coral_block"},"minecraft:bubble_coral_fan":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:bubble_coral_fan[waterlogged=true]"},"minecraft:bubble_coral_wall_fan":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:bubble_coral_wall_fan[facing=north,waterlogged=true]"},"minecraft:cactus":{"properties":{"age":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:cactus[age=0]"},"minecraft:cake":{"properties":{"bites":{"values":["0","1","2","3","4","5","6"],"type":"int"}},"defaultstate":"minecraft:cake[bites=0]"},"minecraft:campfire":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"lit":{"values":["true","false"],"type":"bool"},"signal_fire":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:campfire[facing=north,lit=true,signal_fire=false,waterlogged=false]"},"minecraft:carrots":{"properties":{"age":{"values":["0","1","2","3","4","5","6","7"],"type":"int"}},"defaultstate":"minecraft:carrots[age=0]"},"minecraft:cartography_table":{"properties":{},"defaultstate":"minecraft:cartography_table"},"minecraft:carved_pumpkin":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:carved_pumpkin[facing=north]"},"minecraft:cauldron":{"properties":{"level":{"values":["0","1","2","3"],"type":"int"}},"defaultstate":"minecraft:cauldron[level=0]"},"minecraft:cave_air":{"properties":{},"defaultstate":"minecraft:cave_air"},"minecraft:chain":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:chain[waterlogged=false]"},"minecraft:chain_command_block":{"properties":{"conditional":{"values":["true","false"],"type":"bool"},"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:chain_command_block[conditional=false,facing=north]"},"minecraft:chest":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"type":{"values":["single","left","right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:chest[facing=north,type=single,waterlogged=false]"},"minecraft:chipped_anvil":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:chipped_anvil[facing=north]"},"minecraft:chiseled_nether_bricks":{"properties":{},"defaultstate":"minecraft:chiseled_nether_bricks"},"minecraft:chiseled_polished_blackstone":{"properties":{},"defaultstate":"minecraft:chiseled_polished_blackstone"},"minecraft:chiseled_quartz_block":{"properties":{},"defaultstate":"minecraft:chiseled_quartz_block"},"minecraft:chiseled_red_sandstone":{"properties":{},"defaultstate":"minecraft:chiseled_red_sandstone"},"minecraft:chiseled_sandstone":{"properties":{},"defaultstate":"minecraft:chiseled_sandstone"},"minecraft:chiseled_stone_bricks":{"properties":{},"defaultstate":"minecraft:chiseled_stone_bricks"},"minecraft:chorus_flower":{"properties":{"age":{"values":["0","1","2","3","4","5"],"type":"int"}},"defaultstate":"minecraft:chorus_flower[age=0]"},"minecraft:chorus_plant":{"properties":{"down":{"values":["true","false"],"type":"bool"},"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:chorus_plant[down=false,east=false,north=false,south=false,up=false,west=false]"},"minecraft:clay":{"properties":{},"defaultstate":"minecraft:clay"},"minecraft:coal_block":{"properties":{},"defaultstate":"minecraft:coal_block"},"minecraft:coal_ore":{"properties":{},"defaultstate":"minecraft:coal_ore"},"minecraft:coarse_dirt":{"properties":{},"defaultstate":"minecraft:coarse_dirt"},"minecraft:cobblestone":{"properties":{},"defaultstate":"minecraft:cobblestone"},"minecraft:cobblestone_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:cobblestone_slab[type=bottom,waterlogged=false]"},"minecraft:cobblestone_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:cobblestone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:cobblestone_wall":{"properties":{"east":{"values":["none","low","tall"],"type":"enum"},"north":{"values":["none","low","tall"],"type":"enum"},"south":{"values":["none","low","tall"],"type":"enum"},"up":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["none","low","tall"],"type":"enum"}},"defaultstate":"minecraft:cobblestone_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]"},"minecraft:cobweb":{"properties":{},"defaultstate":"minecraft:cobweb"},"minecraft:cocoa":{"properties":{"age":{"values":["0","1","2"],"type":"int"},"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:cocoa[age=0,facing=north]"},"minecraft:command_block":{"properties":{"conditional":{"values":["true","false"],"type":"bool"},"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:command_block[conditional=false,facing=north]"},"minecraft:comparator":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"mode":{"values":["compare","subtract"],"type":"enum"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:comparator[facing=north,mode=compare,powered=false]"},"minecraft:composter":{"properties":{"level":{"values":["0","1","2","3","4","5","6","7","8"],"type":"int"}},"defaultstate":"minecraft:composter[level=0]"},"minecraft:conduit":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:conduit[waterlogged=true]"},"minecraft:cornflower":{"properties":{},"defaultstate":"minecraft:cornflower"},"minecraft:cracked_nether_bricks":{"properties":{},"defaultstate":"minecraft:cracked_nether_bricks"},"minecraft:cracked_polished_blackstone_bricks":{"properties":{},"defaultstate":"minecraft:cracked_polished_blackstone_bricks"},"minecraft:cracked_stone_bricks":{"properties":{},"defaultstate":"minecraft:cracked_stone_bricks"},"minecraft:crafting_table":{"properties":{},"defaultstate":"minecraft:crafting_table"},"minecraft:creeper_head":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:creeper_head[rotation=0]"},"minecraft:creeper_wall_head":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:creeper_wall_head[facing=north]"},"minecraft:crimson_button":{"properties":{"face":{"values":["floor","wall","ceiling"],"type":"enum"},"facing":{"values":["north","south","west","east"],"type":"direction"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:crimson_button[face=wall,facing=north,powered=false]"},"minecraft:crimson_door":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["upper","lower"],"type":"enum"},"hinge":{"values":["left","right"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:crimson_door[facing=north,half=lower,hinge=left,open=false,powered=false]"},"minecraft:crimson_fence":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:crimson_fence[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:crimson_fence_gate":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"in_wall":{"values":["true","false"],"type":"bool"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:crimson_fence_gate[facing=north,in_wall=false,open=false,powered=false]"},"minecraft:crimson_fungus":{"properties":{},"defaultstate":"minecraft:crimson_fungus"},"minecraft:crimson_hyphae":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:crimson_hyphae[axis=y]"},"minecraft:crimson_nylium":{"properties":{},"defaultstate":"minecraft:crimson_nylium"},"minecraft:crimson_planks":{"properties":{},"defaultstate":"minecraft:crimson_planks"},"minecraft:crimson_pressure_plate":{"properties":{"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:crimson_pressure_plate[powered=false]"},"minecraft:crimson_roots":{"properties":{},"defaultstate":"minecraft:crimson_roots"},"minecraft:crimson_sign":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:crimson_sign[rotation=0,waterlogged=false]"},"minecraft:crimson_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:crimson_slab[type=bottom,waterlogged=false]"},"minecraft:crimson_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:crimson_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:crimson_stem":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:crimson_stem[axis=y]"},"minecraft:crimson_trapdoor":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:crimson_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]"},"minecraft:crimson_wall_sign":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:crimson_wall_sign[facing=north,waterlogged=false]"},"minecraft:crying_obsidian":{"properties":{},"defaultstate":"minecraft:crying_obsidian"},"minecraft:cut_red_sandstone":{"properties":{},"defaultstate":"minecraft:cut_red_sandstone"},"minecraft:cut_red_sandstone_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:cut_red_sandstone_slab[type=bottom,waterlogged=false]"},"minecraft:cut_sandstone":{"properties":{},"defaultstate":"minecraft:cut_sandstone"},"minecraft:cut_sandstone_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:cut_sandstone_slab[type=bottom,waterlogged=false]"},"minecraft:cyan_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:cyan_banner[rotation=0]"},"minecraft:cyan_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:cyan_bed[facing=north,occupied=false,part=foot]"},"minecraft:cyan_carpet":{"properties":{},"defaultstate":"minecraft:cyan_carpet"},"minecraft:cyan_concrete":{"properties":{},"defaultstate":"minecraft:cyan_concrete"},"minecraft:cyan_concrete_powder":{"properties":{},"defaultstate":"minecraft:cyan_concrete_powder"},"minecraft:cyan_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:cyan_glazed_terracotta[facing=north]"},"minecraft:cyan_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:cyan_shulker_box[facing=up]"},"minecraft:cyan_stained_glass":{"properties":{},"defaultstate":"minecraft:cyan_stained_glass"},"minecraft:cyan_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:cyan_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:cyan_terracotta":{"properties":{},"defaultstate":"minecraft:cyan_terracotta"},"minecraft:cyan_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:cyan_wall_banner[facing=north]"},"minecraft:cyan_wool":{"properties":{},"defaultstate":"minecraft:cyan_wool"},"minecraft:damaged_anvil":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:damaged_anvil[facing=north]"},"minecraft:dandelion":{"properties":{},"defaultstate":"minecraft:dandelion"},"minecraft:dark_oak_button":{"properties":{"face":{"values":["floor","wall","ceiling"],"type":"enum"},"facing":{"values":["north","south","west","east"],"type":"direction"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dark_oak_button[face=wall,facing=north,powered=false]"},"minecraft:dark_oak_door":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["upper","lower"],"type":"enum"},"hinge":{"values":["left","right"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dark_oak_door[facing=north,half=lower,hinge=left,open=false,powered=false]"},"minecraft:dark_oak_fence":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dark_oak_fence[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:dark_oak_fence_gate":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"in_wall":{"values":["true","false"],"type":"bool"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dark_oak_fence_gate[facing=north,in_wall=false,open=false,powered=false]"},"minecraft:dark_oak_leaves":{"properties":{"distance":{"values":["1","2","3","4","5","6","7"],"type":"int"},"persistent":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dark_oak_leaves[distance=7,persistent=false]"},"minecraft:dark_oak_log":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:dark_oak_log[axis=y]"},"minecraft:dark_oak_planks":{"properties":{},"defaultstate":"minecraft:dark_oak_planks"},"minecraft:dark_oak_pressure_plate":{"properties":{"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dark_oak_pressure_plate[powered=false]"},"minecraft:dark_oak_sapling":{"properties":{"stage":{"values":["0","1"],"type":"int"}},"defaultstate":"minecraft:dark_oak_sapling[stage=0]"},"minecraft:dark_oak_sign":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dark_oak_sign[rotation=0,waterlogged=false]"},"minecraft:dark_oak_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dark_oak_slab[type=bottom,waterlogged=false]"},"minecraft:dark_oak_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dark_oak_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:dark_oak_trapdoor":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dark_oak_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]"},"minecraft:dark_oak_wall_sign":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dark_oak_wall_sign[facing=north,waterlogged=false]"},"minecraft:dark_oak_wood":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:dark_oak_wood[axis=y]"},"minecraft:dark_prismarine":{"properties":{},"defaultstate":"minecraft:dark_prismarine"},"minecraft:dark_prismarine_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dark_prismarine_slab[type=bottom,waterlogged=false]"},"minecraft:dark_prismarine_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dark_prismarine_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:daylight_detector":{"properties":{"inverted":{"values":["true","false"],"type":"bool"},"power":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:daylight_detector[inverted=false,power=0]"},"minecraft:dead_brain_coral":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_brain_coral[waterlogged=true]"},"minecraft:dead_brain_coral_block":{"properties":{},"defaultstate":"minecraft:dead_brain_coral_block"},"minecraft:dead_brain_coral_fan":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_brain_coral_fan[waterlogged=true]"},"minecraft:dead_brain_coral_wall_fan":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_brain_coral_wall_fan[facing=north,waterlogged=true]"},"minecraft:dead_bubble_coral":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_bubble_coral[waterlogged=true]"},"minecraft:dead_bubble_coral_block":{"properties":{},"defaultstate":"minecraft:dead_bubble_coral_block"},"minecraft:dead_bubble_coral_fan":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_bubble_coral_fan[waterlogged=true]"},"minecraft:dead_bubble_coral_wall_fan":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_bubble_coral_wall_fan[facing=north,waterlogged=true]"},"minecraft:dead_bush":{"properties":{},"defaultstate":"minecraft:dead_bush"},"minecraft:dead_fire_coral":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_fire_coral[waterlogged=true]"},"minecraft:dead_fire_coral_block":{"properties":{},"defaultstate":"minecraft:dead_fire_coral_block"},"minecraft:dead_fire_coral_fan":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_fire_coral_fan[waterlogged=true]"},"minecraft:dead_fire_coral_wall_fan":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_fire_coral_wall_fan[facing=north,waterlogged=true]"},"minecraft:dead_horn_coral":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_horn_coral[waterlogged=true]"},"minecraft:dead_horn_coral_block":{"properties":{},"defaultstate":"minecraft:dead_horn_coral_block"},"minecraft:dead_horn_coral_fan":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_horn_coral_fan[waterlogged=true]"},"minecraft:dead_horn_coral_wall_fan":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_horn_coral_wall_fan[facing=north,waterlogged=true]"},"minecraft:dead_tube_coral":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_tube_coral[waterlogged=true]"},"minecraft:dead_tube_coral_block":{"properties":{},"defaultstate":"minecraft:dead_tube_coral_block"},"minecraft:dead_tube_coral_fan":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_tube_coral_fan[waterlogged=true]"},"minecraft:dead_tube_coral_wall_fan":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dead_tube_coral_wall_fan[facing=north,waterlogged=true]"},"minecraft:detector_rail":{"properties":{"powered":{"values":["true","false"],"type":"bool"},"shape":{"values":["north_south","east_west","ascending_east","ascending_west","ascending_north","ascending_south"],"type":"enum"}},"defaultstate":"minecraft:detector_rail[powered=false,shape=north_south]"},"minecraft:diamond_block":{"properties":{},"defaultstate":"minecraft:diamond_block"},"minecraft:diamond_ore":{"properties":{},"defaultstate":"minecraft:diamond_ore"},"minecraft:diorite":{"properties":{},"defaultstate":"minecraft:diorite"},"minecraft:diorite_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:diorite_slab[type=bottom,waterlogged=false]"},"minecraft:diorite_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:diorite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:diorite_wall":{"properties":{"east":{"values":["none","low","tall"],"type":"enum"},"north":{"values":["none","low","tall"],"type":"enum"},"south":{"values":["none","low","tall"],"type":"enum"},"up":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["none","low","tall"],"type":"enum"}},"defaultstate":"minecraft:diorite_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]"},"minecraft:dirt":{"properties":{},"defaultstate":"minecraft:dirt"},"minecraft:dispenser":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"},"triggered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dispenser[facing=north,triggered=false]"},"minecraft:dragon_egg":{"properties":{},"defaultstate":"minecraft:dragon_egg"},"minecraft:dragon_head":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:dragon_head[rotation=0]"},"minecraft:dragon_wall_head":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:dragon_wall_head[facing=north]"},"minecraft:dried_kelp_block":{"properties":{},"defaultstate":"minecraft:dried_kelp_block"},"minecraft:dropper":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"},"triggered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:dropper[facing=north,triggered=false]"},"minecraft:emerald_block":{"properties":{},"defaultstate":"minecraft:emerald_block"},"minecraft:emerald_ore":{"properties":{},"defaultstate":"minecraft:emerald_ore"},"minecraft:enchanting_table":{"properties":{},"defaultstate":"minecraft:enchanting_table"},"minecraft:end_gateway":{"properties":{},"defaultstate":"minecraft:end_gateway"},"minecraft:end_portal":{"properties":{},"defaultstate":"minecraft:end_portal"},"minecraft:end_portal_frame":{"properties":{"eye":{"values":["true","false"],"type":"bool"},"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:end_portal_frame[eye=false,facing=north]"},"minecraft:end_rod":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:end_rod[facing=up]"},"minecraft:end_stone":{"properties":{},"defaultstate":"minecraft:end_stone"},"minecraft:end_stone_brick_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:end_stone_brick_slab[type=bottom,waterlogged=false]"},"minecraft:end_stone_brick_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:end_stone_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:end_stone_brick_wall":{"properties":{"east":{"values":["none","low","tall"],"type":"enum"},"north":{"values":["none","low","tall"],"type":"enum"},"south":{"values":["none","low","tall"],"type":"enum"},"up":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["none","low","tall"],"type":"enum"}},"defaultstate":"minecraft:end_stone_brick_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]"},"minecraft:end_stone_bricks":{"properties":{},"defaultstate":"minecraft:end_stone_bricks"},"minecraft:ender_chest":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:ender_chest[facing=north,waterlogged=false]"},"minecraft:farmland":{"properties":{"moisture":{"values":["0","1","2","3","4","5","6","7"],"type":"int"}},"defaultstate":"minecraft:farmland[moisture=0]"},"minecraft:fern":{"properties":{},"defaultstate":"minecraft:fern"},"minecraft:fire":{"properties":{"age":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"},"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:fire[age=0,east=false,north=false,south=false,up=false,west=false]"},"minecraft:fire_coral":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:fire_coral[waterlogged=true]"},"minecraft:fire_coral_block":{"properties":{},"defaultstate":"minecraft:fire_coral_block"},"minecraft:fire_coral_fan":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:fire_coral_fan[waterlogged=true]"},"minecraft:fire_coral_wall_fan":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:fire_coral_wall_fan[facing=north,waterlogged=true]"},"minecraft:fletching_table":{"properties":{},"defaultstate":"minecraft:fletching_table"},"minecraft:flower_pot":{"properties":{},"defaultstate":"minecraft:flower_pot"},"minecraft:frosted_ice":{"properties":{"age":{"values":["0","1","2","3"],"type":"int"}},"defaultstate":"minecraft:frosted_ice[age=0]"},"minecraft:furnace":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"lit":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:furnace[facing=north,lit=false]"},"minecraft:gilded_blackstone":{"properties":{},"defaultstate":"minecraft:gilded_blackstone"},"minecraft:glass":{"properties":{},"defaultstate":"minecraft:glass"},"minecraft:glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:glowstone":{"properties":{},"defaultstate":"minecraft:glowstone"},"minecraft:gold_block":{"properties":{},"defaultstate":"minecraft:gold_block"},"minecraft:gold_ore":{"properties":{},"defaultstate":"minecraft:gold_ore"},"minecraft:granite":{"properties":{},"defaultstate":"minecraft:granite"},"minecraft:granite_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:granite_slab[type=bottom,waterlogged=false]"},"minecraft:granite_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:granite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:granite_wall":{"properties":{"east":{"values":["none","low","tall"],"type":"enum"},"north":{"values":["none","low","tall"],"type":"enum"},"south":{"values":["none","low","tall"],"type":"enum"},"up":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["none","low","tall"],"type":"enum"}},"defaultstate":"minecraft:granite_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]"},"minecraft:grass":{"properties":{},"defaultstate":"minecraft:grass"},"minecraft:grass_block":{"properties":{"snowy":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:grass_block[snowy=false]"},"minecraft:grass_path":{"properties":{},"defaultstate":"minecraft:grass_path"},"minecraft:gravel":{"properties":{},"defaultstate":"minecraft:gravel"},"minecraft:gray_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:gray_banner[rotation=0]"},"minecraft:gray_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:gray_bed[facing=north,occupied=false,part=foot]"},"minecraft:gray_carpet":{"properties":{},"defaultstate":"minecraft:gray_carpet"},"minecraft:gray_concrete":{"properties":{},"defaultstate":"minecraft:gray_concrete"},"minecraft:gray_concrete_powder":{"properties":{},"defaultstate":"minecraft:gray_concrete_powder"},"minecraft:gray_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:gray_glazed_terracotta[facing=north]"},"minecraft:gray_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:gray_shulker_box[facing=up]"},"minecraft:gray_stained_glass":{"properties":{},"defaultstate":"minecraft:gray_stained_glass"},"minecraft:gray_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:gray_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:gray_terracotta":{"properties":{},"defaultstate":"minecraft:gray_terracotta"},"minecraft:gray_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:gray_wall_banner[facing=north]"},"minecraft:gray_wool":{"properties":{},"defaultstate":"minecraft:gray_wool"},"minecraft:green_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:green_banner[rotation=0]"},"minecraft:green_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:green_bed[facing=north,occupied=false,part=foot]"},"minecraft:green_carpet":{"properties":{},"defaultstate":"minecraft:green_carpet"},"minecraft:green_concrete":{"properties":{},"defaultstate":"minecraft:green_concrete"},"minecraft:green_concrete_powder":{"properties":{},"defaultstate":"minecraft:green_concrete_powder"},"minecraft:green_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:green_glazed_terracotta[facing=north]"},"minecraft:green_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:green_shulker_box[facing=up]"},"minecraft:green_stained_glass":{"properties":{},"defaultstate":"minecraft:green_stained_glass"},"minecraft:green_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:green_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:green_terracotta":{"properties":{},"defaultstate":"minecraft:green_terracotta"},"minecraft:green_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:green_wall_banner[facing=north]"},"minecraft:green_wool":{"properties":{},"defaultstate":"minecraft:green_wool"},"minecraft:grindstone":{"properties":{"face":{"values":["floor","wall","ceiling"],"type":"enum"},"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:grindstone[face=wall,facing=north]"},"minecraft:hay_block":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:hay_block[axis=y]"},"minecraft:heavy_weighted_pressure_plate":{"properties":{"power":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:heavy_weighted_pressure_plate[power=0]"},"minecraft:honey_block":{"properties":{},"defaultstate":"minecraft:honey_block"},"minecraft:honeycomb_block":{"properties":{},"defaultstate":"minecraft:honeycomb_block"},"minecraft:hopper":{"properties":{"enabled":{"values":["true","false"],"type":"bool"},"facing":{"values":["down","north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:hopper[enabled=true,facing=down]"},"minecraft:horn_coral":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:horn_coral[waterlogged=true]"},"minecraft:horn_coral_block":{"properties":{},"defaultstate":"minecraft:horn_coral_block"},"minecraft:horn_coral_fan":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:horn_coral_fan[waterlogged=true]"},"minecraft:horn_coral_wall_fan":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:horn_coral_wall_fan[facing=north,waterlogged=true]"},"minecraft:ice":{"properties":{},"defaultstate":"minecraft:ice"},"minecraft:infested_chiseled_stone_bricks":{"properties":{},"defaultstate":"minecraft:infested_chiseled_stone_bricks"},"minecraft:infested_cobblestone":{"properties":{},"defaultstate":"minecraft:infested_cobblestone"},"minecraft:infested_cracked_stone_bricks":{"properties":{},"defaultstate":"minecraft:infested_cracked_stone_bricks"},"minecraft:infested_mossy_stone_bricks":{"properties":{},"defaultstate":"minecraft:infested_mossy_stone_bricks"},"minecraft:infested_stone":{"properties":{},"defaultstate":"minecraft:infested_stone"},"minecraft:infested_stone_bricks":{"properties":{},"defaultstate":"minecraft:infested_stone_bricks"},"minecraft:iron_bars":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:iron_bars[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:iron_block":{"properties":{},"defaultstate":"minecraft:iron_block"},"minecraft:iron_door":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["upper","lower"],"type":"enum"},"hinge":{"values":["left","right"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:iron_door[facing=north,half=lower,hinge=left,open=false,powered=false]"},"minecraft:iron_ore":{"properties":{},"defaultstate":"minecraft:iron_ore"},"minecraft:iron_trapdoor":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:iron_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]"},"minecraft:jack_o_lantern":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:jack_o_lantern[facing=north]"},"minecraft:jigsaw":{"properties":{"orientation":{"values":["down_east","down_north","down_south","down_west","up_east","up_north","up_south","up_west","west_up","east_up","north_up","south_up"],"type":"enum"}},"defaultstate":"minecraft:jigsaw[orientation=north_up]"},"minecraft:jukebox":{"properties":{"has_record":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:jukebox[has_record=false]"},"minecraft:jungle_button":{"properties":{"face":{"values":["floor","wall","ceiling"],"type":"enum"},"facing":{"values":["north","south","west","east"],"type":"direction"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:jungle_button[face=wall,facing=north,powered=false]"},"minecraft:jungle_door":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["upper","lower"],"type":"enum"},"hinge":{"values":["left","right"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:jungle_door[facing=north,half=lower,hinge=left,open=false,powered=false]"},"minecraft:jungle_fence":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:jungle_fence[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:jungle_fence_gate":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"in_wall":{"values":["true","false"],"type":"bool"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:jungle_fence_gate[facing=north,in_wall=false,open=false,powered=false]"},"minecraft:jungle_leaves":{"properties":{"distance":{"values":["1","2","3","4","5","6","7"],"type":"int"},"persistent":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:jungle_leaves[distance=7,persistent=false]"},"minecraft:jungle_log":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:jungle_log[axis=y]"},"minecraft:jungle_planks":{"properties":{},"defaultstate":"minecraft:jungle_planks"},"minecraft:jungle_pressure_plate":{"properties":{"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:jungle_pressure_plate[powered=false]"},"minecraft:jungle_sapling":{"properties":{"stage":{"values":["0","1"],"type":"int"}},"defaultstate":"minecraft:jungle_sapling[stage=0]"},"minecraft:jungle_sign":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:jungle_sign[rotation=0,waterlogged=false]"},"minecraft:jungle_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:jungle_slab[type=bottom,waterlogged=false]"},"minecraft:jungle_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:jungle_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:jungle_trapdoor":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:jungle_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]"},"minecraft:jungle_wall_sign":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:jungle_wall_sign[facing=north,waterlogged=false]"},"minecraft:jungle_wood":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:jungle_wood[axis=y]"},"minecraft:kelp":{"properties":{"age":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25"],"type":"int"}},"defaultstate":"minecraft:kelp[age=0]"},"minecraft:kelp_plant":{"properties":{},"defaultstate":"minecraft:kelp_plant"},"minecraft:ladder":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:ladder[facing=north,waterlogged=false]"},"minecraft:lantern":{"properties":{"hanging":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:lantern[hanging=false]"},"minecraft:lapis_block":{"properties":{},"defaultstate":"minecraft:lapis_block"},"minecraft:lapis_ore":{"properties":{},"defaultstate":"minecraft:lapis_ore"},"minecraft:large_fern":{"properties":{"half":{"values":["upper","lower"],"type":"enum"}},"defaultstate":"minecraft:large_fern[half=lower]"},"minecraft:lava":{"properties":{"level":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:lava[level=0]"},"minecraft:lectern":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"has_book":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:lectern[facing=north,has_book=false,powered=false]"},"minecraft:lever":{"properties":{"face":{"values":["floor","wall","ceiling"],"type":"enum"},"facing":{"values":["north","south","west","east"],"type":"direction"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:lever[face=wall,facing=north,powered=false]"},"minecraft:light_blue_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:light_blue_banner[rotation=0]"},"minecraft:light_blue_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:light_blue_bed[facing=north,occupied=false,part=foot]"},"minecraft:light_blue_carpet":{"properties":{},"defaultstate":"minecraft:light_blue_carpet"},"minecraft:light_blue_concrete":{"properties":{},"defaultstate":"minecraft:light_blue_concrete"},"minecraft:light_blue_concrete_powder":{"properties":{},"defaultstate":"minecraft:light_blue_concrete_powder"},"minecraft:light_blue_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:light_blue_glazed_terracotta[facing=north]"},"minecraft:light_blue_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:light_blue_shulker_box[facing=up]"},"minecraft:light_blue_stained_glass":{"properties":{},"defaultstate":"minecraft:light_blue_stained_glass"},"minecraft:light_blue_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:light_blue_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:light_blue_terracotta":{"properties":{},"defaultstate":"minecraft:light_blue_terracotta"},"minecraft:light_blue_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:light_blue_wall_banner[facing=north]"},"minecraft:light_blue_wool":{"properties":{},"defaultstate":"minecraft:light_blue_wool"},"minecraft:light_gray_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:light_gray_banner[rotation=0]"},"minecraft:light_gray_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:light_gray_bed[facing=north,occupied=false,part=foot]"},"minecraft:light_gray_carpet":{"properties":{},"defaultstate":"minecraft:light_gray_carpet"},"minecraft:light_gray_concrete":{"properties":{},"defaultstate":"minecraft:light_gray_concrete"},"minecraft:light_gray_concrete_powder":{"properties":{},"defaultstate":"minecraft:light_gray_concrete_powder"},"minecraft:light_gray_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:light_gray_glazed_terracotta[facing=north]"},"minecraft:light_gray_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:light_gray_shulker_box[facing=up]"},"minecraft:light_gray_stained_glass":{"properties":{},"defaultstate":"minecraft:light_gray_stained_glass"},"minecraft:light_gray_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:light_gray_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:light_gray_terracotta":{"properties":{},"defaultstate":"minecraft:light_gray_terracotta"},"minecraft:light_gray_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:light_gray_wall_banner[facing=north]"},"minecraft:light_gray_wool":{"properties":{},"defaultstate":"minecraft:light_gray_wool"},"minecraft:light_weighted_pressure_plate":{"properties":{"power":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:light_weighted_pressure_plate[power=0]"},"minecraft:lilac":{"properties":{"half":{"values":["upper","lower"],"type":"enum"}},"defaultstate":"minecraft:lilac[half=lower]"},"minecraft:lily_of_the_valley":{"properties":{},"defaultstate":"minecraft:lily_of_the_valley"},"minecraft:lily_pad":{"properties":{},"defaultstate":"minecraft:lily_pad"},"minecraft:lime_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:lime_banner[rotation=0]"},"minecraft:lime_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:lime_bed[facing=north,occupied=false,part=foot]"},"minecraft:lime_carpet":{"properties":{},"defaultstate":"minecraft:lime_carpet"},"minecraft:lime_concrete":{"properties":{},"defaultstate":"minecraft:lime_concrete"},"minecraft:lime_concrete_powder":{"properties":{},"defaultstate":"minecraft:lime_concrete_powder"},"minecraft:lime_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:lime_glazed_terracotta[facing=north]"},"minecraft:lime_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:lime_shulker_box[facing=up]"},"minecraft:lime_stained_glass":{"properties":{},"defaultstate":"minecraft:lime_stained_glass"},"minecraft:lime_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:lime_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:lime_terracotta":{"properties":{},"defaultstate":"minecraft:lime_terracotta"},"minecraft:lime_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:lime_wall_banner[facing=north]"},"minecraft:lime_wool":{"properties":{},"defaultstate":"minecraft:lime_wool"},"minecraft:lodestone":{"properties":{},"defaultstate":"minecraft:lodestone"},"minecraft:loom":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:loom[facing=north]"},"minecraft:magenta_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:magenta_banner[rotation=0]"},"minecraft:magenta_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:magenta_bed[facing=north,occupied=false,part=foot]"},"minecraft:magenta_carpet":{"properties":{},"defaultstate":"minecraft:magenta_carpet"},"minecraft:magenta_concrete":{"properties":{},"defaultstate":"minecraft:magenta_concrete"},"minecraft:magenta_concrete_powder":{"properties":{},"defaultstate":"minecraft:magenta_concrete_powder"},"minecraft:magenta_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:magenta_glazed_terracotta[facing=north]"},"minecraft:magenta_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:magenta_shulker_box[facing=up]"},"minecraft:magenta_stained_glass":{"properties":{},"defaultstate":"minecraft:magenta_stained_glass"},"minecraft:magenta_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:magenta_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:magenta_terracotta":{"properties":{},"defaultstate":"minecraft:magenta_terracotta"},"minecraft:magenta_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:magenta_wall_banner[facing=north]"},"minecraft:magenta_wool":{"properties":{},"defaultstate":"minecraft:magenta_wool"},"minecraft:magma_block":{"properties":{},"defaultstate":"minecraft:magma_block"},"minecraft:melon":{"properties":{},"defaultstate":"minecraft:melon"},"minecraft:melon_stem":{"properties":{"age":{"values":["0","1","2","3","4","5","6","7"],"type":"int"}},"defaultstate":"minecraft:melon_stem[age=0]"},"minecraft:mossy_cobblestone":{"properties":{},"defaultstate":"minecraft:mossy_cobblestone"},"minecraft:mossy_cobblestone_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:mossy_cobblestone_slab[type=bottom,waterlogged=false]"},"minecraft:mossy_cobblestone_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:mossy_cobblestone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:mossy_cobblestone_wall":{"properties":{"east":{"values":["none","low","tall"],"type":"enum"},"north":{"values":["none","low","tall"],"type":"enum"},"south":{"values":["none","low","tall"],"type":"enum"},"up":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["none","low","tall"],"type":"enum"}},"defaultstate":"minecraft:mossy_cobblestone_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]"},"minecraft:mossy_stone_brick_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:mossy_stone_brick_slab[type=bottom,waterlogged=false]"},"minecraft:mossy_stone_brick_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:mossy_stone_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:mossy_stone_brick_wall":{"properties":{"east":{"values":["none","low","tall"],"type":"enum"},"north":{"values":["none","low","tall"],"type":"enum"},"south":{"values":["none","low","tall"],"type":"enum"},"up":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["none","low","tall"],"type":"enum"}},"defaultstate":"minecraft:mossy_stone_brick_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]"},"minecraft:mossy_stone_bricks":{"properties":{},"defaultstate":"minecraft:mossy_stone_bricks"},"minecraft:moving_piston":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"},"type":{"values":["normal","sticky"],"type":"enum"}},"defaultstate":"minecraft:moving_piston[facing=north,type=normal]"},"minecraft:mushroom_stem":{"properties":{"down":{"values":["true","false"],"type":"bool"},"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:mushroom_stem[down=true,east=true,north=true,south=true,up=true,west=true]"},"minecraft:mycelium":{"properties":{"snowy":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:mycelium[snowy=false]"},"minecraft:nether_brick_fence":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:nether_brick_fence[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:nether_brick_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:nether_brick_slab[type=bottom,waterlogged=false]"},"minecraft:nether_brick_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:nether_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:nether_brick_wall":{"properties":{"east":{"values":["none","low","tall"],"type":"enum"},"north":{"values":["none","low","tall"],"type":"enum"},"south":{"values":["none","low","tall"],"type":"enum"},"up":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["none","low","tall"],"type":"enum"}},"defaultstate":"minecraft:nether_brick_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]"},"minecraft:nether_bricks":{"properties":{},"defaultstate":"minecraft:nether_bricks"},"minecraft:nether_gold_ore":{"properties":{},"defaultstate":"minecraft:nether_gold_ore"},"minecraft:nether_portal":{"properties":{"axis":{"values":["x","z"],"type":"enum"}},"defaultstate":"minecraft:nether_portal[axis=x]"},"minecraft:nether_quartz_ore":{"properties":{},"defaultstate":"minecraft:nether_quartz_ore"},"minecraft:nether_sprouts":{"properties":{},"defaultstate":"minecraft:nether_sprouts"},"minecraft:nether_wart":{"properties":{"age":{"values":["0","1","2","3"],"type":"int"}},"defaultstate":"minecraft:nether_wart[age=0]"},"minecraft:nether_wart_block":{"properties":{},"defaultstate":"minecraft:nether_wart_block"},"minecraft:netherite_block":{"properties":{},"defaultstate":"minecraft:netherite_block"},"minecraft:netherrack":{"properties":{},"defaultstate":"minecraft:netherrack"},"minecraft:note_block":{"properties":{"instrument":{"values":["harp","basedrum","snare","hat","bass","flute","bell","guitar","chime","xylophone","iron_xylophone","cow_bell","didgeridoo","bit","banjo","pling"],"type":"enum"},"note":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24"],"type":"int"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:note_block[instrument=harp,note=0,powered=false]"},"minecraft:oak_button":{"properties":{"face":{"values":["floor","wall","ceiling"],"type":"enum"},"facing":{"values":["north","south","west","east"],"type":"direction"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:oak_button[face=wall,facing=north,powered=false]"},"minecraft:oak_door":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["upper","lower"],"type":"enum"},"hinge":{"values":["left","right"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:oak_door[facing=north,half=lower,hinge=left,open=false,powered=false]"},"minecraft:oak_fence":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:oak_fence[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:oak_fence_gate":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"in_wall":{"values":["true","false"],"type":"bool"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:oak_fence_gate[facing=north,in_wall=false,open=false,powered=false]"},"minecraft:oak_leaves":{"properties":{"distance":{"values":["1","2","3","4","5","6","7"],"type":"int"},"persistent":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:oak_leaves[distance=7,persistent=false]"},"minecraft:oak_log":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:oak_log[axis=y]"},"minecraft:oak_planks":{"properties":{},"defaultstate":"minecraft:oak_planks"},"minecraft:oak_pressure_plate":{"properties":{"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:oak_pressure_plate[powered=false]"},"minecraft:oak_sapling":{"properties":{"stage":{"values":["0","1"],"type":"int"}},"defaultstate":"minecraft:oak_sapling[stage=0]"},"minecraft:oak_sign":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:oak_sign[rotation=0,waterlogged=false]"},"minecraft:oak_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:oak_slab[type=bottom,waterlogged=false]"},"minecraft:oak_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:oak_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:oak_trapdoor":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:oak_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]"},"minecraft:oak_wall_sign":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:oak_wall_sign[facing=north,waterlogged=false]"},"minecraft:oak_wood":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:oak_wood[axis=y]"},"minecraft:observer":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:observer[facing=south,powered=false]"},"minecraft:obsidian":{"properties":{},"defaultstate":"minecraft:obsidian"},"minecraft:orange_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:orange_banner[rotation=0]"},"minecraft:orange_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:orange_bed[facing=north,occupied=false,part=foot]"},"minecraft:orange_carpet":{"properties":{},"defaultstate":"minecraft:orange_carpet"},"minecraft:orange_concrete":{"properties":{},"defaultstate":"minecraft:orange_concrete"},"minecraft:orange_concrete_powder":{"properties":{},"defaultstate":"minecraft:orange_concrete_powder"},"minecraft:orange_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:orange_glazed_terracotta[facing=north]"},"minecraft:orange_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:orange_shulker_box[facing=up]"},"minecraft:orange_stained_glass":{"properties":{},"defaultstate":"minecraft:orange_stained_glass"},"minecraft:orange_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:orange_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:orange_terracotta":{"properties":{},"defaultstate":"minecraft:orange_terracotta"},"minecraft:orange_tulip":{"properties":{},"defaultstate":"minecraft:orange_tulip"},"minecraft:orange_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:orange_wall_banner[facing=north]"},"minecraft:orange_wool":{"properties":{},"defaultstate":"minecraft:orange_wool"},"minecraft:oxeye_daisy":{"properties":{},"defaultstate":"minecraft:oxeye_daisy"},"minecraft:packed_ice":{"properties":{},"defaultstate":"minecraft:packed_ice"},"minecraft:peony":{"properties":{"half":{"values":["upper","lower"],"type":"enum"}},"defaultstate":"minecraft:peony[half=lower]"},"minecraft:petrified_oak_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:petrified_oak_slab[type=bottom,waterlogged=false]"},"minecraft:pink_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:pink_banner[rotation=0]"},"minecraft:pink_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:pink_bed[facing=north,occupied=false,part=foot]"},"minecraft:pink_carpet":{"properties":{},"defaultstate":"minecraft:pink_carpet"},"minecraft:pink_concrete":{"properties":{},"defaultstate":"minecraft:pink_concrete"},"minecraft:pink_concrete_powder":{"properties":{},"defaultstate":"minecraft:pink_concrete_powder"},"minecraft:pink_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:pink_glazed_terracotta[facing=north]"},"minecraft:pink_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:pink_shulker_box[facing=up]"},"minecraft:pink_stained_glass":{"properties":{},"defaultstate":"minecraft:pink_stained_glass"},"minecraft:pink_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:pink_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:pink_terracotta":{"properties":{},"defaultstate":"minecraft:pink_terracotta"},"minecraft:pink_tulip":{"properties":{},"defaultstate":"minecraft:pink_tulip"},"minecraft:pink_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:pink_wall_banner[facing=north]"},"minecraft:pink_wool":{"properties":{},"defaultstate":"minecraft:pink_wool"},"minecraft:piston":{"properties":{"extended":{"values":["true","false"],"type":"bool"},"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:piston[extended=false,facing=north]"},"minecraft:piston_head":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"},"short":{"values":["true","false"],"type":"bool"},"type":{"values":["normal","sticky"],"type":"enum"}},"defaultstate":"minecraft:piston_head[facing=north,short=false,type=normal]"},"minecraft:player_head":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:player_head[rotation=0]"},"minecraft:player_wall_head":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:player_wall_head[facing=north]"},"minecraft:podzol":{"properties":{"snowy":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:podzol[snowy=false]"},"minecraft:polished_andesite":{"properties":{},"defaultstate":"minecraft:polished_andesite"},"minecraft:polished_andesite_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:polished_andesite_slab[type=bottom,waterlogged=false]"},"minecraft:polished_andesite_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:polished_andesite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:polished_basalt":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:polished_basalt[axis=y]"},"minecraft:polished_blackstone":{"properties":{},"defaultstate":"minecraft:polished_blackstone"},"minecraft:polished_blackstone_brick_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:polished_blackstone_brick_slab[type=bottom,waterlogged=false]"},"minecraft:polished_blackstone_brick_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:polished_blackstone_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:polished_blackstone_brick_wall":{"properties":{"east":{"values":["none","low","tall"],"type":"enum"},"north":{"values":["none","low","tall"],"type":"enum"},"south":{"values":["none","low","tall"],"type":"enum"},"up":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["none","low","tall"],"type":"enum"}},"defaultstate":"minecraft:polished_blackstone_brick_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]"},"minecraft:polished_blackstone_bricks":{"properties":{},"defaultstate":"minecraft:polished_blackstone_bricks"},"minecraft:polished_blackstone_button":{"properties":{"face":{"values":["floor","wall","ceiling"],"type":"enum"},"facing":{"values":["north","south","west","east"],"type":"direction"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:polished_blackstone_button[face=wall,facing=north,powered=false]"},"minecraft:polished_blackstone_pressure_plate":{"properties":{"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:polished_blackstone_pressure_plate[powered=false]"},"minecraft:polished_blackstone_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:polished_blackstone_slab[type=bottom,waterlogged=false]"},"minecraft:polished_blackstone_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:polished_blackstone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:polished_blackstone_wall":{"properties":{"east":{"values":["none","low","tall"],"type":"enum"},"north":{"values":["none","low","tall"],"type":"enum"},"south":{"values":["none","low","tall"],"type":"enum"},"up":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["none","low","tall"],"type":"enum"}},"defaultstate":"minecraft:polished_blackstone_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]"},"minecraft:polished_diorite":{"properties":{},"defaultstate":"minecraft:polished_diorite"},"minecraft:polished_diorite_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:polished_diorite_slab[type=bottom,waterlogged=false]"},"minecraft:polished_diorite_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:polished_diorite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:polished_granite":{"properties":{},"defaultstate":"minecraft:polished_granite"},"minecraft:polished_granite_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:polished_granite_slab[type=bottom,waterlogged=false]"},"minecraft:polished_granite_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:polished_granite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:poppy":{"properties":{},"defaultstate":"minecraft:poppy"},"minecraft:potatoes":{"properties":{"age":{"values":["0","1","2","3","4","5","6","7"],"type":"int"}},"defaultstate":"minecraft:potatoes[age=0]"},"minecraft:potted_acacia_sapling":{"properties":{},"defaultstate":"minecraft:potted_acacia_sapling"},"minecraft:potted_allium":{"properties":{},"defaultstate":"minecraft:potted_allium"},"minecraft:potted_azure_bluet":{"properties":{},"defaultstate":"minecraft:potted_azure_bluet"},"minecraft:potted_bamboo":{"properties":{},"defaultstate":"minecraft:potted_bamboo"},"minecraft:potted_birch_sapling":{"properties":{},"defaultstate":"minecraft:potted_birch_sapling"},"minecraft:potted_blue_orchid":{"properties":{},"defaultstate":"minecraft:potted_blue_orchid"},"minecraft:potted_brown_mushroom":{"properties":{},"defaultstate":"minecraft:potted_brown_mushroom"},"minecraft:potted_cactus":{"properties":{},"defaultstate":"minecraft:potted_cactus"},"minecraft:potted_cornflower":{"properties":{},"defaultstate":"minecraft:potted_cornflower"},"minecraft:potted_crimson_fungus":{"properties":{},"defaultstate":"minecraft:potted_crimson_fungus"},"minecraft:potted_crimson_roots":{"properties":{},"defaultstate":"minecraft:potted_crimson_roots"},"minecraft:potted_dandelion":{"properties":{},"defaultstate":"minecraft:potted_dandelion"},"minecraft:potted_dark_oak_sapling":{"properties":{},"defaultstate":"minecraft:potted_dark_oak_sapling"},"minecraft:potted_dead_bush":{"properties":{},"defaultstate":"minecraft:potted_dead_bush"},"minecraft:potted_fern":{"properties":{},"defaultstate":"minecraft:potted_fern"},"minecraft:potted_jungle_sapling":{"properties":{},"defaultstate":"minecraft:potted_jungle_sapling"},"minecraft:potted_lily_of_the_valley":{"properties":{},"defaultstate":"minecraft:potted_lily_of_the_valley"},"minecraft:potted_oak_sapling":{"properties":{},"defaultstate":"minecraft:potted_oak_sapling"},"minecraft:potted_orange_tulip":{"properties":{},"defaultstate":"minecraft:potted_orange_tulip"},"minecraft:potted_oxeye_daisy":{"properties":{},"defaultstate":"minecraft:potted_oxeye_daisy"},"minecraft:potted_pink_tulip":{"properties":{},"defaultstate":"minecraft:potted_pink_tulip"},"minecraft:potted_poppy":{"properties":{},"defaultstate":"minecraft:potted_poppy"},"minecraft:potted_red_mushroom":{"properties":{},"defaultstate":"minecraft:potted_red_mushroom"},"minecraft:potted_red_tulip":{"properties":{},"defaultstate":"minecraft:potted_red_tulip"},"minecraft:potted_spruce_sapling":{"properties":{},"defaultstate":"minecraft:potted_spruce_sapling"},"minecraft:potted_warped_fungus":{"properties":{},"defaultstate":"minecraft:potted_warped_fungus"},"minecraft:potted_warped_roots":{"properties":{},"defaultstate":"minecraft:potted_warped_roots"},"minecraft:potted_white_tulip":{"properties":{},"defaultstate":"minecraft:potted_white_tulip"},"minecraft:potted_wither_rose":{"properties":{},"defaultstate":"minecraft:potted_wither_rose"},"minecraft:powered_rail":{"properties":{"powered":{"values":["true","false"],"type":"bool"},"shape":{"values":["north_south","east_west","ascending_east","ascending_west","ascending_north","ascending_south"],"type":"enum"}},"defaultstate":"minecraft:powered_rail[powered=false,shape=north_south]"},"minecraft:prismarine":{"properties":{},"defaultstate":"minecraft:prismarine"},"minecraft:prismarine_brick_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:prismarine_brick_slab[type=bottom,waterlogged=false]"},"minecraft:prismarine_brick_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:prismarine_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:prismarine_bricks":{"properties":{},"defaultstate":"minecraft:prismarine_bricks"},"minecraft:prismarine_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:prismarine_slab[type=bottom,waterlogged=false]"},"minecraft:prismarine_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:prismarine_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:prismarine_wall":{"properties":{"east":{"values":["none","low","tall"],"type":"enum"},"north":{"values":["none","low","tall"],"type":"enum"},"south":{"values":["none","low","tall"],"type":"enum"},"up":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["none","low","tall"],"type":"enum"}},"defaultstate":"minecraft:prismarine_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]"},"minecraft:pumpkin":{"properties":{},"defaultstate":"minecraft:pumpkin"},"minecraft:pumpkin_stem":{"properties":{"age":{"values":["0","1","2","3","4","5","6","7"],"type":"int"}},"defaultstate":"minecraft:pumpkin_stem[age=0]"},"minecraft:purple_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:purple_banner[rotation=0]"},"minecraft:purple_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:purple_bed[facing=north,occupied=false,part=foot]"},"minecraft:purple_carpet":{"properties":{},"defaultstate":"minecraft:purple_carpet"},"minecraft:purple_concrete":{"properties":{},"defaultstate":"minecraft:purple_concrete"},"minecraft:purple_concrete_powder":{"properties":{},"defaultstate":"minecraft:purple_concrete_powder"},"minecraft:purple_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:purple_glazed_terracotta[facing=north]"},"minecraft:purple_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:purple_shulker_box[facing=up]"},"minecraft:purple_stained_glass":{"properties":{},"defaultstate":"minecraft:purple_stained_glass"},"minecraft:purple_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:purple_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:purple_terracotta":{"properties":{},"defaultstate":"minecraft:purple_terracotta"},"minecraft:purple_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:purple_wall_banner[facing=north]"},"minecraft:purple_wool":{"properties":{},"defaultstate":"minecraft:purple_wool"},"minecraft:purpur_block":{"properties":{},"defaultstate":"minecraft:purpur_block"},"minecraft:purpur_pillar":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:purpur_pillar[axis=y]"},"minecraft:purpur_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:purpur_slab[type=bottom,waterlogged=false]"},"minecraft:purpur_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:purpur_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:quartz_block":{"properties":{},"defaultstate":"minecraft:quartz_block"},"minecraft:quartz_bricks":{"properties":{},"defaultstate":"minecraft:quartz_bricks"},"minecraft:quartz_pillar":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:quartz_pillar[axis=y]"},"minecraft:quartz_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:quartz_slab[type=bottom,waterlogged=false]"},"minecraft:quartz_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:quartz_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:rail":{"properties":{"shape":{"values":["north_south","east_west","ascending_east","ascending_west","ascending_north","ascending_south","south_east","south_west","north_west","north_east"],"type":"enum"}},"defaultstate":"minecraft:rail[shape=north_south]"},"minecraft:red_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:red_banner[rotation=0]"},"minecraft:red_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:red_bed[facing=north,occupied=false,part=foot]"},"minecraft:red_carpet":{"properties":{},"defaultstate":"minecraft:red_carpet"},"minecraft:red_concrete":{"properties":{},"defaultstate":"minecraft:red_concrete"},"minecraft:red_concrete_powder":{"properties":{},"defaultstate":"minecraft:red_concrete_powder"},"minecraft:red_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:red_glazed_terracotta[facing=north]"},"minecraft:red_mushroom":{"properties":{},"defaultstate":"minecraft:red_mushroom"},"minecraft:red_mushroom_block":{"properties":{"down":{"values":["true","false"],"type":"bool"},"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:red_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true]"},"minecraft:red_nether_brick_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:red_nether_brick_slab[type=bottom,waterlogged=false]"},"minecraft:red_nether_brick_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:red_nether_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:red_nether_brick_wall":{"properties":{"east":{"values":["none","low","tall"],"type":"enum"},"north":{"values":["none","low","tall"],"type":"enum"},"south":{"values":["none","low","tall"],"type":"enum"},"up":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["none","low","tall"],"type":"enum"}},"defaultstate":"minecraft:red_nether_brick_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]"},"minecraft:red_nether_bricks":{"properties":{},"defaultstate":"minecraft:red_nether_bricks"},"minecraft:red_sand":{"properties":{},"defaultstate":"minecraft:red_sand"},"minecraft:red_sandstone":{"properties":{},"defaultstate":"minecraft:red_sandstone"},"minecraft:red_sandstone_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:red_sandstone_slab[type=bottom,waterlogged=false]"},"minecraft:red_sandstone_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:red_sandstone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:red_sandstone_wall":{"properties":{"east":{"values":["none","low","tall"],"type":"enum"},"north":{"values":["none","low","tall"],"type":"enum"},"south":{"values":["none","low","tall"],"type":"enum"},"up":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["none","low","tall"],"type":"enum"}},"defaultstate":"minecraft:red_sandstone_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]"},"minecraft:red_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:red_shulker_box[facing=up]"},"minecraft:red_stained_glass":{"properties":{},"defaultstate":"minecraft:red_stained_glass"},"minecraft:red_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:red_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:red_terracotta":{"properties":{},"defaultstate":"minecraft:red_terracotta"},"minecraft:red_tulip":{"properties":{},"defaultstate":"minecraft:red_tulip"},"minecraft:red_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:red_wall_banner[facing=north]"},"minecraft:red_wool":{"properties":{},"defaultstate":"minecraft:red_wool"},"minecraft:redstone_block":{"properties":{},"defaultstate":"minecraft:redstone_block"},"minecraft:redstone_lamp":{"properties":{"lit":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:redstone_lamp[lit=false]"},"minecraft:redstone_ore":{"properties":{"lit":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:redstone_ore[lit=false]"},"minecraft:redstone_torch":{"properties":{"lit":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:redstone_torch[lit=true]"},"minecraft:redstone_wall_torch":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"lit":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:redstone_wall_torch[facing=north,lit=true]"},"minecraft:redstone_wire":{"properties":{"east":{"values":["up","side","none"],"type":"enum"},"north":{"values":["up","side","none"],"type":"enum"},"power":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"},"south":{"values":["up","side","none"],"type":"enum"},"west":{"values":["up","side","none"],"type":"enum"}},"defaultstate":"minecraft:redstone_wire[east=none,north=none,power=0,south=none,west=none]"},"minecraft:repeater":{"properties":{"delay":{"values":["1","2","3","4"],"type":"int"},"facing":{"values":["north","south","west","east"],"type":"direction"},"locked":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:repeater[delay=1,facing=north,locked=false,powered=false]"},"minecraft:repeating_command_block":{"properties":{"conditional":{"values":["true","false"],"type":"bool"},"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:repeating_command_block[conditional=false,facing=north]"},"minecraft:respawn_anchor":{"properties":{"charges":{"values":["0","1","2","3","4"],"type":"int"}},"defaultstate":"minecraft:respawn_anchor[charges=0]"},"minecraft:rose_bush":{"properties":{"half":{"values":["upper","lower"],"type":"enum"}},"defaultstate":"minecraft:rose_bush[half=lower]"},"minecraft:sand":{"properties":{},"defaultstate":"minecraft:sand"},"minecraft:sandstone":{"properties":{},"defaultstate":"minecraft:sandstone"},"minecraft:sandstone_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:sandstone_slab[type=bottom,waterlogged=false]"},"minecraft:sandstone_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:sandstone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:sandstone_wall":{"properties":{"east":{"values":["none","low","tall"],"type":"enum"},"north":{"values":["none","low","tall"],"type":"enum"},"south":{"values":["none","low","tall"],"type":"enum"},"up":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["none","low","tall"],"type":"enum"}},"defaultstate":"minecraft:sandstone_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]"},"minecraft:scaffolding":{"properties":{"bottom":{"values":["true","false"],"type":"bool"},"distance":{"values":["0","1","2","3","4","5","6","7"],"type":"int"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:scaffolding[bottom=false,distance=7,waterlogged=false]"},"minecraft:sea_lantern":{"properties":{},"defaultstate":"minecraft:sea_lantern"},"minecraft:sea_pickle":{"properties":{"pickles":{"values":["1","2","3","4"],"type":"int"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:sea_pickle[pickles=1,waterlogged=true]"},"minecraft:seagrass":{"properties":{},"defaultstate":"minecraft:seagrass"},"minecraft:shroomlight":{"properties":{},"defaultstate":"minecraft:shroomlight"},"minecraft:shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:shulker_box[facing=up]"},"minecraft:skeleton_skull":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:skeleton_skull[rotation=0]"},"minecraft:skeleton_wall_skull":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:skeleton_wall_skull[facing=north]"},"minecraft:slime_block":{"properties":{},"defaultstate":"minecraft:slime_block"},"minecraft:smithing_table":{"properties":{},"defaultstate":"minecraft:smithing_table"},"minecraft:smoker":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"lit":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:smoker[facing=north,lit=false]"},"minecraft:smooth_quartz":{"properties":{},"defaultstate":"minecraft:smooth_quartz"},"minecraft:smooth_quartz_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:smooth_quartz_slab[type=bottom,waterlogged=false]"},"minecraft:smooth_quartz_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:smooth_quartz_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:smooth_red_sandstone":{"properties":{},"defaultstate":"minecraft:smooth_red_sandstone"},"minecraft:smooth_red_sandstone_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:smooth_red_sandstone_slab[type=bottom,waterlogged=false]"},"minecraft:smooth_red_sandstone_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:smooth_red_sandstone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:smooth_sandstone":{"properties":{},"defaultstate":"minecraft:smooth_sandstone"},"minecraft:smooth_sandstone_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:smooth_sandstone_slab[type=bottom,waterlogged=false]"},"minecraft:smooth_sandstone_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:smooth_sandstone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:smooth_stone":{"properties":{},"defaultstate":"minecraft:smooth_stone"},"minecraft:smooth_stone_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:smooth_stone_slab[type=bottom,waterlogged=false]"},"minecraft:snow":{"properties":{"layers":{"values":["1","2","3","4","5","6","7","8"],"type":"int"}},"defaultstate":"minecraft:snow[layers=1]"},"minecraft:snow_block":{"properties":{},"defaultstate":"minecraft:snow_block"},"minecraft:soul_campfire":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"lit":{"values":["true","false"],"type":"bool"},"signal_fire":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:soul_campfire[facing=north,lit=true,signal_fire=false,waterlogged=false]"},"minecraft:soul_fire":{"properties":{},"defaultstate":"minecraft:soul_fire"},"minecraft:soul_lantern":{"properties":{"hanging":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:soul_lantern[hanging=false]"},"minecraft:soul_sand":{"properties":{},"defaultstate":"minecraft:soul_sand"},"minecraft:soul_soil":{"properties":{},"defaultstate":"minecraft:soul_soil"},"minecraft:soul_torch":{"properties":{},"defaultstate":"minecraft:soul_torch"},"minecraft:soul_wall_torch":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:soul_wall_torch[facing=north]"},"minecraft:spawner":{"properties":{},"defaultstate":"minecraft:spawner"},"minecraft:sponge":{"properties":{},"defaultstate":"minecraft:sponge"},"minecraft:spruce_button":{"properties":{"face":{"values":["floor","wall","ceiling"],"type":"enum"},"facing":{"values":["north","south","west","east"],"type":"direction"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:spruce_button[face=wall,facing=north,powered=false]"},"minecraft:spruce_door":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["upper","lower"],"type":"enum"},"hinge":{"values":["left","right"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:spruce_door[facing=north,half=lower,hinge=left,open=false,powered=false]"},"minecraft:spruce_fence":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:spruce_fence[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:spruce_fence_gate":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"in_wall":{"values":["true","false"],"type":"bool"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:spruce_fence_gate[facing=north,in_wall=false,open=false,powered=false]"},"minecraft:spruce_leaves":{"properties":{"distance":{"values":["1","2","3","4","5","6","7"],"type":"int"},"persistent":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:spruce_leaves[distance=7,persistent=false]"},"minecraft:spruce_log":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:spruce_log[axis=y]"},"minecraft:spruce_planks":{"properties":{},"defaultstate":"minecraft:spruce_planks"},"minecraft:spruce_pressure_plate":{"properties":{"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:spruce_pressure_plate[powered=false]"},"minecraft:spruce_sapling":{"properties":{"stage":{"values":["0","1"],"type":"int"}},"defaultstate":"minecraft:spruce_sapling[stage=0]"},"minecraft:spruce_sign":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:spruce_sign[rotation=0,waterlogged=false]"},"minecraft:spruce_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:spruce_slab[type=bottom,waterlogged=false]"},"minecraft:spruce_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:spruce_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:spruce_trapdoor":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:spruce_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]"},"minecraft:spruce_wall_sign":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:spruce_wall_sign[facing=north,waterlogged=false]"},"minecraft:spruce_wood":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:spruce_wood[axis=y]"},"minecraft:sticky_piston":{"properties":{"extended":{"values":["true","false"],"type":"bool"},"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:sticky_piston[extended=false,facing=north]"},"minecraft:stone":{"properties":{},"defaultstate":"minecraft:stone"},"minecraft:stone_brick_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:stone_brick_slab[type=bottom,waterlogged=false]"},"minecraft:stone_brick_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:stone_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:stone_brick_wall":{"properties":{"east":{"values":["none","low","tall"],"type":"enum"},"north":{"values":["none","low","tall"],"type":"enum"},"south":{"values":["none","low","tall"],"type":"enum"},"up":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["none","low","tall"],"type":"enum"}},"defaultstate":"minecraft:stone_brick_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]"},"minecraft:stone_bricks":{"properties":{},"defaultstate":"minecraft:stone_bricks"},"minecraft:stone_button":{"properties":{"face":{"values":["floor","wall","ceiling"],"type":"enum"},"facing":{"values":["north","south","west","east"],"type":"direction"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:stone_button[face=wall,facing=north,powered=false]"},"minecraft:stone_pressure_plate":{"properties":{"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:stone_pressure_plate[powered=false]"},"minecraft:stone_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:stone_slab[type=bottom,waterlogged=false]"},"minecraft:stone_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:stone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:stonecutter":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:stonecutter[facing=north]"},"minecraft:stripped_acacia_log":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:stripped_acacia_log[axis=y]"},"minecraft:stripped_acacia_wood":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:stripped_acacia_wood[axis=y]"},"minecraft:stripped_birch_log":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:stripped_birch_log[axis=y]"},"minecraft:stripped_birch_wood":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:stripped_birch_wood[axis=y]"},"minecraft:stripped_crimson_hyphae":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:stripped_crimson_hyphae[axis=y]"},"minecraft:stripped_crimson_stem":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:stripped_crimson_stem[axis=y]"},"minecraft:stripped_dark_oak_log":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:stripped_dark_oak_log[axis=y]"},"minecraft:stripped_dark_oak_wood":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:stripped_dark_oak_wood[axis=y]"},"minecraft:stripped_jungle_log":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:stripped_jungle_log[axis=y]"},"minecraft:stripped_jungle_wood":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:stripped_jungle_wood[axis=y]"},"minecraft:stripped_oak_log":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:stripped_oak_log[axis=y]"},"minecraft:stripped_oak_wood":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:stripped_oak_wood[axis=y]"},"minecraft:stripped_spruce_log":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:stripped_spruce_log[axis=y]"},"minecraft:stripped_spruce_wood":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:stripped_spruce_wood[axis=y]"},"minecraft:stripped_warped_hyphae":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:stripped_warped_hyphae[axis=y]"},"minecraft:stripped_warped_stem":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:stripped_warped_stem[axis=y]"},"minecraft:structure_block":{"properties":{"mode":{"values":["save","load","corner","data"],"type":"enum"}},"defaultstate":"minecraft:structure_block[mode=save]"},"minecraft:structure_void":{"properties":{},"defaultstate":"minecraft:structure_void"},"minecraft:sugar_cane":{"properties":{"age":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:sugar_cane[age=0]"},"minecraft:sunflower":{"properties":{"half":{"values":["upper","lower"],"type":"enum"}},"defaultstate":"minecraft:sunflower[half=lower]"},"minecraft:sweet_berry_bush":{"properties":{"age":{"values":["0","1","2","3"],"type":"int"}},"defaultstate":"minecraft:sweet_berry_bush[age=0]"},"minecraft:tall_grass":{"properties":{"half":{"values":["upper","lower"],"type":"enum"}},"defaultstate":"minecraft:tall_grass[half=lower]"},"minecraft:tall_seagrass":{"properties":{"half":{"values":["upper","lower"],"type":"enum"}},"defaultstate":"minecraft:tall_seagrass[half=lower]"},"minecraft:target":{"properties":{"power":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:target[power=0]"},"minecraft:terracotta":{"properties":{},"defaultstate":"minecraft:terracotta"},"minecraft:tnt":{"properties":{"unstable":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:tnt[unstable=false]"},"minecraft:torch":{"properties":{},"defaultstate":"minecraft:torch"},"minecraft:trapped_chest":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"type":{"values":["single","left","right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:trapped_chest[facing=north,type=single,waterlogged=false]"},"minecraft:tripwire":{"properties":{"attached":{"values":["true","false"],"type":"bool"},"disarmed":{"values":["true","false"],"type":"bool"},"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:tripwire[attached=false,disarmed=false,east=false,north=false,powered=false,south=false,west=false]"},"minecraft:tripwire_hook":{"properties":{"attached":{"values":["true","false"],"type":"bool"},"facing":{"values":["north","south","west","east"],"type":"direction"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:tripwire_hook[attached=false,facing=north,powered=false]"},"minecraft:tube_coral":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:tube_coral[waterlogged=true]"},"minecraft:tube_coral_block":{"properties":{},"defaultstate":"minecraft:tube_coral_block"},"minecraft:tube_coral_fan":{"properties":{"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:tube_coral_fan[waterlogged=true]"},"minecraft:tube_coral_wall_fan":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:tube_coral_wall_fan[facing=north,waterlogged=true]"},"minecraft:turtle_egg":{"properties":{"eggs":{"values":["1","2","3","4"],"type":"int"},"hatch":{"values":["0","1","2"],"type":"int"}},"defaultstate":"minecraft:turtle_egg[eggs=1,hatch=0]"},"minecraft:twisting_vines":{"properties":{"age":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25"],"type":"int"}},"defaultstate":"minecraft:twisting_vines[age=0]"},"minecraft:twisting_vines_plant":{"properties":{},"defaultstate":"minecraft:twisting_vines_plant"},"minecraft:vine":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"up":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:vine[east=false,north=false,south=false,up=false,west=false]"},"minecraft:void_air":{"properties":{},"defaultstate":"minecraft:void_air"},"minecraft:wall_torch":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:wall_torch[facing=north]"},"minecraft:warped_button":{"properties":{"face":{"values":["floor","wall","ceiling"],"type":"enum"},"facing":{"values":["north","south","west","east"],"type":"direction"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:warped_button[face=wall,facing=north,powered=false]"},"minecraft:warped_door":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["upper","lower"],"type":"enum"},"hinge":{"values":["left","right"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:warped_door[facing=north,half=lower,hinge=left,open=false,powered=false]"},"minecraft:warped_fence":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:warped_fence[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:warped_fence_gate":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"in_wall":{"values":["true","false"],"type":"bool"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:warped_fence_gate[facing=north,in_wall=false,open=false,powered=false]"},"minecraft:warped_fungus":{"properties":{},"defaultstate":"minecraft:warped_fungus"},"minecraft:warped_hyphae":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:warped_hyphae[axis=y]"},"minecraft:warped_nylium":{"properties":{},"defaultstate":"minecraft:warped_nylium"},"minecraft:warped_planks":{"properties":{},"defaultstate":"minecraft:warped_planks"},"minecraft:warped_pressure_plate":{"properties":{"powered":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:warped_pressure_plate[powered=false]"},"minecraft:warped_roots":{"properties":{},"defaultstate":"minecraft:warped_roots"},"minecraft:warped_sign":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:warped_sign[rotation=0,waterlogged=false]"},"minecraft:warped_slab":{"properties":{"type":{"values":["top","bottom","double"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:warped_slab[type=bottom,waterlogged=false]"},"minecraft:warped_stairs":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"shape":{"values":["straight","inner_left","inner_right","outer_left","outer_right"],"type":"enum"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:warped_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]"},"minecraft:warped_stem":{"properties":{"axis":{"values":["x","y","z"],"type":"enum"}},"defaultstate":"minecraft:warped_stem[axis=y]"},"minecraft:warped_trapdoor":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"half":{"values":["top","bottom"],"type":"enum"},"open":{"values":["true","false"],"type":"bool"},"powered":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:warped_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]"},"minecraft:warped_wall_sign":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"waterlogged":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:warped_wall_sign[facing=north,waterlogged=false]"},"minecraft:warped_wart_block":{"properties":{},"defaultstate":"minecraft:warped_wart_block"},"minecraft:water":{"properties":{"level":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:water[level=0]"},"minecraft:weeping_vines":{"properties":{"age":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25"],"type":"int"}},"defaultstate":"minecraft:weeping_vines[age=0]"},"minecraft:weeping_vines_plant":{"properties":{},"defaultstate":"minecraft:weeping_vines_plant"},"minecraft:wet_sponge":{"properties":{},"defaultstate":"minecraft:wet_sponge"},"minecraft:wheat":{"properties":{"age":{"values":["0","1","2","3","4","5","6","7"],"type":"int"}},"defaultstate":"minecraft:wheat[age=0]"},"minecraft:white_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:white_banner[rotation=0]"},"minecraft:white_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:white_bed[facing=north,occupied=false,part=foot]"},"minecraft:white_carpet":{"properties":{},"defaultstate":"minecraft:white_carpet"},"minecraft:white_concrete":{"properties":{},"defaultstate":"minecraft:white_concrete"},"minecraft:white_concrete_powder":{"properties":{},"defaultstate":"minecraft:white_concrete_powder"},"minecraft:white_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:white_glazed_terracotta[facing=north]"},"minecraft:white_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:white_shulker_box[facing=up]"},"minecraft:white_stained_glass":{"properties":{},"defaultstate":"minecraft:white_stained_glass"},"minecraft:white_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:white_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:white_terracotta":{"properties":{},"defaultstate":"minecraft:white_terracotta"},"minecraft:white_tulip":{"properties":{},"defaultstate":"minecraft:white_tulip"},"minecraft:white_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:white_wall_banner[facing=north]"},"minecraft:white_wool":{"properties":{},"defaultstate":"minecraft:white_wool"},"minecraft:wither_rose":{"properties":{},"defaultstate":"minecraft:wither_rose"},"minecraft:wither_skeleton_skull":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:wither_skeleton_skull[rotation=0]"},"minecraft:wither_skeleton_wall_skull":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:wither_skeleton_wall_skull[facing=north]"},"minecraft:yellow_banner":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:yellow_banner[rotation=0]"},"minecraft:yellow_bed":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"},"occupied":{"values":["true","false"],"type":"bool"},"part":{"values":["head","foot"],"type":"enum"}},"defaultstate":"minecraft:yellow_bed[facing=north,occupied=false,part=foot]"},"minecraft:yellow_carpet":{"properties":{},"defaultstate":"minecraft:yellow_carpet"},"minecraft:yellow_concrete":{"properties":{},"defaultstate":"minecraft:yellow_concrete"},"minecraft:yellow_concrete_powder":{"properties":{},"defaultstate":"minecraft:yellow_concrete_powder"},"minecraft:yellow_glazed_terracotta":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:yellow_glazed_terracotta[facing=north]"},"minecraft:yellow_shulker_box":{"properties":{"facing":{"values":["north","east","south","west","up","down"],"type":"direction"}},"defaultstate":"minecraft:yellow_shulker_box[facing=up]"},"minecraft:yellow_stained_glass":{"properties":{},"defaultstate":"minecraft:yellow_stained_glass"},"minecraft:yellow_stained_glass_pane":{"properties":{"east":{"values":["true","false"],"type":"bool"},"north":{"values":["true","false"],"type":"bool"},"south":{"values":["true","false"],"type":"bool"},"waterlogged":{"values":["true","false"],"type":"bool"},"west":{"values":["true","false"],"type":"bool"}},"defaultstate":"minecraft:yellow_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]"},"minecraft:yellow_terracotta":{"properties":{},"defaultstate":"minecraft:yellow_terracotta"},"minecraft:yellow_wall_banner":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:yellow_wall_banner[facing=north]"},"minecraft:yellow_wool":{"properties":{},"defaultstate":"minecraft:yellow_wool"},"minecraft:zombie_head":{"properties":{"rotation":{"values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"],"type":"int"}},"defaultstate":"minecraft:zombie_head[rotation=0]"},"minecraft:zombie_wall_head":{"properties":{"facing":{"values":["north","south","west","east"],"type":"direction"}},"defaultstate":"minecraft:zombie_wall_head[facing=north]"}},"items":["minecraft:acacia_boat","minecraft:acacia_button","minecraft:acacia_door","minecraft:acacia_fence","minecraft:acacia_fence_gate","minecraft:acacia_leaves","minecraft:acacia_log","minecraft:acacia_planks","minecraft:acacia_pressure_plate","minecraft:acacia_sapling","minecraft:acacia_sign","minecraft:acacia_slab","minecraft:acacia_stairs","minecraft:acacia_trapdoor","minecraft:acacia_wood","minecraft:activator_rail","minecraft:air","minecraft:allium","minecraft:ancient_debris","minecraft:andesite","minecraft:andesite_slab","minecraft:andesite_stairs","minecraft:andesite_wall","minecraft:anvil","minecraft:apple","minecraft:armor_stand","minecraft:arrow","minecraft:azure_bluet","minecraft:baked_potato","minecraft:bamboo","minecraft:barrel","minecraft:barrier","minecraft:basalt","minecraft:bat_spawn_egg","minecraft:beacon","minecraft:bedrock","minecraft:bee_nest","minecraft:bee_spawn_egg","minecraft:beef","minecraft:beehive","minecraft:beetroot","minecraft:beetroot_seeds","minecraft:beetroot_soup","minecraft:bell","minecraft:birch_boat","minecraft:birch_button","minecraft:birch_door","minecraft:birch_fence","minecraft:birch_fence_gate","minecraft:birch_leaves","minecraft:birch_log","minecraft:birch_planks","minecraft:birch_pressure_plate","minecraft:birch_sapling","minecraft:birch_sign","minecraft:birch_slab","minecraft:birch_stairs","minecraft:birch_trapdoor","minecraft:birch_wood","minecraft:black_banner","minecraft:black_bed","minecraft:black_carpet","minecraft:black_concrete","minecraft:black_concrete_powder","minecraft:black_dye","minecraft:black_glazed_terracotta","minecraft:black_shulker_box","minecraft:black_stained_glass","minecraft:black_stained_glass_pane","minecraft:black_terracotta","minecraft:black_wool","minecraft:blackstone","minecraft:blackstone_slab","minecraft:blackstone_stairs","minecraft:blackstone_wall","minecraft:blast_furnace","minecraft:blaze_powder","minecraft:blaze_rod","minecraft:blaze_spawn_egg","minecraft:blue_banner","minecraft:blue_bed","minecraft:blue_carpet","minecraft:blue_concrete","minecraft:blue_concrete_powder","minecraft:blue_dye","minecraft:blue_glazed_terracotta","minecraft:blue_ice","minecraft:blue_orchid","minecraft:blue_shulker_box","minecraft:blue_stained_glass","minecraft:blue_stained_glass_pane","minecraft:blue_terracotta","minecraft:blue_wool","minecraft:bone","minecraft:bone_block","minecraft:bone_meal","minecraft:book","minecraft:bookshelf","minecraft:bow","minecraft:bowl","minecraft:brain_coral","minecraft:brain_coral_block","minecraft:brain_coral_fan","minecraft:bread","minecraft:brewing_stand","minecraft:brick","minecraft:brick_slab","minecraft:brick_stairs","minecraft:brick_wall","minecraft:bricks","minecraft:brown_banner","minecraft:brown_bed","minecraft:brown_carpet","minecraft:brown_concrete","minecraft:brown_concrete_powder","minecraft:brown_dye","minecraft:brown_glazed_terracotta","minecraft:brown_mushroom","minecraft:brown_mushroom_block","minecraft:brown_shulker_box","minecraft:brown_stained_glass","minecraft:brown_stained_glass_pane","minecraft:brown_terracotta","minecraft:brown_wool","minecraft:bubble_coral","minecraft:bubble_coral_block","minecraft:bubble_coral_fan","minecraft:bucket","minecraft:cactus","minecraft:cake","minecraft:campfire","minecraft:carrot","minecraft:carrot_on_a_stick","minecraft:cartography_table","minecraft:carved_pumpkin","minecraft:cat_spawn_egg","minecraft:cauldron","minecraft:cave_spider_spawn_egg","minecraft:chain","minecraft:chain_command_block","minecraft:chainmail_boots","minecraft:chainmail_chestplate","minecraft:chainmail_helmet","minecraft:chainmail_leggings","minecraft:charcoal","minecraft:chest","minecraft:chest_minecart","minecraft:chicken","minecraft:chicken_spawn_egg","minecraft:chipped_anvil","minecraft:chiseled_nether_bricks","minecraft:chiseled_polished_blackstone","minecraft:chiseled_quartz_block","minecraft:chiseled_red_sandstone","minecraft:chiseled_sandstone","minecraft:chiseled_stone_bricks","minecraft:chorus_flower","minecraft:chorus_fruit","minecraft:chorus_plant","minecraft:clay","minecraft:clay_ball","minecraft:clock","minecraft:coal","minecraft:coal_block","minecraft:coal_ore","minecraft:coarse_dirt","minecraft:cobblestone","minecraft:cobblestone_slab","minecraft:cobblestone_stairs","minecraft:cobblestone_wall","minecraft:cobweb","minecraft:cocoa_beans","minecraft:cod","minecraft:cod_bucket","minecraft:cod_spawn_egg","minecraft:command_block","minecraft:command_block_minecart","minecraft:comparator","minecraft:compass","minecraft:composter","minecraft:conduit","minecraft:cooked_beef","minecraft:cooked_chicken","minecraft:cooked_cod","minecraft:cooked_mutton","minecraft:cooked_porkchop","minecraft:cooked_rabbit","minecraft:cooked_salmon","minecraft:cookie","minecraft:cornflower","minecraft:cow_spawn_egg","minecraft:cracked_nether_bricks","minecraft:cracked_polished_blackstone_bricks","minecraft:cracked_stone_bricks","minecraft:crafting_table","minecraft:creeper_banner_pattern","minecraft:creeper_head","minecraft:creeper_spawn_egg","minecraft:crimson_button","minecraft:crimson_door","minecraft:crimson_fence","minecraft:crimson_fence_gate","minecraft:crimson_fungus","minecraft:crimson_hyphae","minecraft:crimson_nylium","minecraft:crimson_planks","minecraft:crimson_pressure_plate","minecraft:crimson_roots","minecraft:crimson_sign","minecraft:crimson_slab","minecraft:crimson_stairs","minecraft:crimson_stem","minecraft:crimson_trapdoor","minecraft:crossbow","minecraft:crying_obsidian","minecraft:cut_red_sandstone","minecraft:cut_red_sandstone_slab","minecraft:cut_sandstone","minecraft:cut_sandstone_slab","minecraft:cyan_banner","minecraft:cyan_bed","minecraft:cyan_carpet","minecraft:cyan_concrete","minecraft:cyan_concrete_powder","minecraft:cyan_dye","minecraft:cyan_glazed_terracotta","minecraft:cyan_shulker_box","minecraft:cyan_stained_glass","minecraft:cyan_stained_glass_pane","minecraft:cyan_terracotta","minecraft:cyan_wool","minecraft:damaged_anvil","minecraft:dandelion","minecraft:dark_oak_boat","minecraft:dark_oak_button","minecraft:dark_oak_door","minecraft:dark_oak_fence","minecraft:dark_oak_fence_gate","minecraft:dark_oak_leaves","minecraft:dark_oak_log","minecraft:dark_oak_planks","minecraft:dark_oak_pressure_plate","minecraft:dark_oak_sapling","minecraft:dark_oak_sign","minecraft:dark_oak_slab","minecraft:dark_oak_stairs","minecraft:dark_oak_trapdoor","minecraft:dark_oak_wood","minecraft:dark_prismarine","minecraft:dark_prismarine_slab","minecraft:dark_prismarine_stairs","minecraft:daylight_detector","minecraft:dead_brain_coral","minecraft:dead_brain_coral_block","minecraft:dead_brain_coral_fan","minecraft:dead_bubble_coral","minecraft:dead_bubble_coral_block","minecraft:dead_bubble_coral_fan","minecraft:dead_bush","minecraft:dead_fire_coral","minecraft:dead_fire_coral_block","minecraft:dead_fire_coral_fan","minecraft:dead_horn_coral","minecraft:dead_horn_coral_block","minecraft:dead_horn_coral_fan","minecraft:dead_tube_coral","minecraft:dead_tube_coral_block","minecraft:dead_tube_coral_fan","minecraft:debug_stick","minecraft:detector_rail","minecraft:diamond","minecraft:diamond_axe","minecraft:diamond_block","minecraft:diamond_boots","minecraft:diamond_chestplate","minecraft:diamond_helmet","minecraft:diamond_hoe","minecraft:diamond_horse_armor","minecraft:diamond_leggings","minecraft:diamond_ore","minecraft:diamond_pickaxe","minecraft:diamond_shovel","minecraft:diamond_sword","minecraft:diorite","minecraft:diorite_slab","minecraft:diorite_stairs","minecraft:diorite_wall","minecraft:dirt","minecraft:dispenser","minecraft:dolphin_spawn_egg","minecraft:donkey_spawn_egg","minecraft:dragon_breath","minecraft:dragon_egg","minecraft:dragon_head","minecraft:dried_kelp","minecraft:dried_kelp_block","minecraft:dropper","minecraft:drowned_spawn_egg","minecraft:egg","minecraft:elder_guardian_spawn_egg","minecraft:elytra","minecraft:emerald","minecraft:emerald_block","minecraft:emerald_ore","minecraft:enchanted_book","minecraft:enchanted_golden_apple","minecraft:enchanting_table","minecraft:end_crystal","minecraft:end_portal_frame","minecraft:end_rod","minecraft:end_stone","minecraft:end_stone_brick_slab","minecraft:end_stone_brick_stairs","minecraft:end_stone_brick_wall","minecraft:end_stone_bricks","minecraft:ender_chest","minecraft:ender_eye","minecraft:ender_pearl","minecraft:enderman_spawn_egg","minecraft:endermite_spawn_egg","minecraft:evoker_spawn_egg","minecraft:experience_bottle","minecraft:farmland","minecraft:feather","minecraft:fermented_spider_eye","minecraft:fern","minecraft:filled_map","minecraft:fire_charge","minecraft:fire_coral","minecraft:fire_coral_block","minecraft:fire_coral_fan","minecraft:firework_rocket","minecraft:firework_star","minecraft:fishing_rod","minecraft:fletching_table","minecraft:flint","minecraft:flint_and_steel","minecraft:flower_banner_pattern","minecraft:flower_pot","minecraft:fox_spawn_egg","minecraft:furnace","minecraft:furnace_minecart","minecraft:ghast_spawn_egg","minecraft:ghast_tear","minecraft:gilded_blackstone","minecraft:glass","minecraft:glass_bottle","minecraft:glass_pane","minecraft:glistering_melon_slice","minecraft:globe_banner_pattern","minecraft:glowstone","minecraft:glowstone_dust","minecraft:gold_block","minecraft:gold_ingot","minecraft:gold_nugget","minecraft:gold_ore","minecraft:golden_apple","minecraft:golden_axe","minecraft:golden_boots","minecraft:golden_carrot","minecraft:golden_chestplate","minecraft:golden_helmet","minecraft:golden_hoe","minecraft:golden_horse_armor","minecraft:golden_leggings","minecraft:golden_pickaxe","minecraft:golden_shovel","minecraft:golden_sword","minecraft:granite","minecraft:granite_slab","minecraft:granite_stairs","minecraft:granite_wall","minecraft:grass","minecraft:grass_block","minecraft:grass_path","minecraft:gravel","minecraft:gray_banner","minecraft:gray_bed","minecraft:gray_carpet","minecraft:gray_concrete","minecraft:gray_concrete_powder","minecraft:gray_dye","minecraft:gray_glazed_terracotta","minecraft:gray_shulker_box","minecraft:gray_stained_glass","minecraft:gray_stained_glass_pane","minecraft:gray_terracotta","minecraft:gray_wool","minecraft:green_banner","minecraft:green_bed","minecraft:green_carpet","minecraft:green_concrete","minecraft:green_concrete_powder","minecraft:green_dye","minecraft:green_glazed_terracotta","minecraft:green_shulker_box","minecraft:green_stained_glass","minecraft:green_stained_glass_pane","minecraft:green_terracotta","minecraft:green_wool","minecraft:grindstone","minecraft:guardian_spawn_egg","minecraft:gunpowder","minecraft:hay_block","minecraft:heart_of_the_sea","minecraft:heavy_weighted_pressure_plate","minecraft:hoglin_spawn_egg","minecraft:honey_block","minecraft:honey_bottle","minecraft:honeycomb","minecraft:honeycomb_block","minecraft:hopper","minecraft:hopper_minecart","minecraft:horn_coral","minecraft:horn_coral_block","minecraft:horn_coral_fan","minecraft:horse_spawn_egg","minecraft:husk_spawn_egg","minecraft:ice","minecraft:infested_chiseled_stone_bricks","minecraft:infested_cobblestone","minecraft:infested_cracked_stone_bricks","minecraft:infested_mossy_stone_bricks","minecraft:infested_stone","minecraft:infested_stone_bricks","minecraft:ink_sac","minecraft:iron_axe","minecraft:iron_bars","minecraft:iron_block","minecraft:iron_boots","minecraft:iron_chestplate","minecraft:iron_door","minecraft:iron_helmet","minecraft:iron_hoe","minecraft:iron_horse_armor","minecraft:iron_ingot","minecraft:iron_leggings","minecraft:iron_nugget","minecraft:iron_ore","minecraft:iron_pickaxe","minecraft:iron_shovel","minecraft:iron_sword","minecraft:iron_trapdoor","minecraft:item_frame","minecraft:jack_o_lantern","minecraft:jigsaw","minecraft:jukebox","minecraft:jungle_boat","minecraft:jungle_button","minecraft:jungle_door","minecraft:jungle_fence","minecraft:jungle_fence_gate","minecraft:jungle_leaves","minecraft:jungle_log","minecraft:jungle_planks","minecraft:jungle_pressure_plate","minecraft:jungle_sapling","minecraft:jungle_sign","minecraft:jungle_slab","minecraft:jungle_stairs","minecraft:jungle_trapdoor","minecraft:jungle_wood","minecraft:kelp","minecraft:knowledge_book","minecraft:ladder","minecraft:lantern","minecraft:lapis_block","minecraft:lapis_lazuli","minecraft:lapis_ore","minecraft:large_fern","minecraft:lava_bucket","minecraft:lead","minecraft:leather","minecraft:leather_boots","minecraft:leather_chestplate","minecraft:leather_helmet","minecraft:leather_horse_armor","minecraft:leather_leggings","minecraft:lectern","minecraft:lever","minecraft:light_blue_banner","minecraft:light_blue_bed","minecraft:light_blue_carpet","minecraft:light_blue_concrete","minecraft:light_blue_concrete_powder","minecraft:light_blue_dye","minecraft:light_blue_glazed_terracotta","minecraft:light_blue_shulker_box","minecraft:light_blue_stained_glass","minecraft:light_blue_stained_glass_pane","minecraft:light_blue_terracotta","minecraft:light_blue_wool","minecraft:light_gray_banner","minecraft:light_gray_bed","minecraft:light_gray_carpet","minecraft:light_gray_concrete","minecraft:light_gray_concrete_powder","minecraft:light_gray_dye","minecraft:light_gray_glazed_terracotta","minecraft:light_gray_shulker_box","minecraft:light_gray_stained_glass","minecraft:light_gray_stained_glass_pane","minecraft:light_gray_terracotta","minecraft:light_gray_wool","minecraft:light_weighted_pressure_plate","minecraft:lilac","minecraft:lily_of_the_valley","minecraft:lily_pad","minecraft:lime_banner","minecraft:lime_bed","minecraft:lime_carpet","minecraft:lime_concrete","minecraft:lime_concrete_powder","minecraft:lime_dye","minecraft:lime_glazed_terracotta","minecraft:lime_shulker_box","minecraft:lime_stained_glass","minecraft:lime_stained_glass_pane","minecraft:lime_terracotta","minecraft:lime_wool","minecraft:lingering_potion","minecraft:llama_spawn_egg","minecraft:lodestone","minecraft:loom","minecraft:magenta_banner","minecraft:magenta_bed","minecraft:magenta_carpet","minecraft:magenta_concrete","minecraft:magenta_concrete_powder","minecraft:magenta_dye","minecraft:magenta_glazed_terracotta","minecraft:magenta_shulker_box","minecraft:magenta_stained_glass","minecraft:magenta_stained_glass_pane","minecraft:magenta_terracotta","minecraft:magenta_wool","minecraft:magma_block","minecraft:magma_cream","minecraft:magma_cube_spawn_egg","minecraft:map","minecraft:melon","minecraft:melon_seeds","minecraft:melon_slice","minecraft:milk_bucket","minecraft:minecart","minecraft:mojang_banner_pattern","minecraft:mooshroom_spawn_egg","minecraft:mossy_cobblestone","minecraft:mossy_cobblestone_slab","minecraft:mossy_cobblestone_stairs","minecraft:mossy_cobblestone_wall","minecraft:mossy_stone_brick_slab","minecraft:mossy_stone_brick_stairs","minecraft:mossy_stone_brick_wall","minecraft:mossy_stone_bricks","minecraft:mule_spawn_egg","minecraft:mushroom_stem","minecraft:mushroom_stew","minecraft:music_disc_11","minecraft:music_disc_13","minecraft:music_disc_blocks","minecraft:music_disc_cat","minecraft:music_disc_chirp","minecraft:music_disc_far","minecraft:music_disc_mall","minecraft:music_disc_mellohi","minecraft:music_disc_pigstep","minecraft:music_disc_stal","minecraft:music_disc_strad","minecraft:music_disc_wait","minecraft:music_disc_ward","minecraft:mutton","minecraft:mycelium","minecraft:name_tag","minecraft:nautilus_shell","minecraft:nether_brick","minecraft:nether_brick_fence","minecraft:nether_brick_slab","minecraft:nether_brick_stairs","minecraft:nether_brick_wall","minecraft:nether_bricks","minecraft:nether_gold_ore","minecraft:nether_quartz_ore","minecraft:nether_sprouts","minecraft:nether_star","minecraft:nether_wart","minecraft:nether_wart_block","minecraft:netherite_axe","minecraft:netherite_block","minecraft:netherite_boots","minecraft:netherite_chestplate","minecraft:netherite_helmet","minecraft:netherite_hoe","minecraft:netherite_ingot","minecraft:netherite_leggings","minecraft:netherite_pickaxe","minecraft:netherite_scrap","minecraft:netherite_shovel","minecraft:netherite_sword","minecraft:netherrack","minecraft:note_block","minecraft:oak_boat","minecraft:oak_button","minecraft:oak_door","minecraft:oak_fence","minecraft:oak_fence_gate","minecraft:oak_leaves","minecraft:oak_log","minecraft:oak_planks","minecraft:oak_pressure_plate","minecraft:oak_sapling","minecraft:oak_sign","minecraft:oak_slab","minecraft:oak_stairs","minecraft:oak_trapdoor","minecraft:oak_wood","minecraft:observer","minecraft:obsidian","minecraft:ocelot_spawn_egg","minecraft:orange_banner","minecraft:orange_bed","minecraft:orange_carpet","minecraft:orange_concrete","minecraft:orange_concrete_powder","minecraft:orange_dye","minecraft:orange_glazed_terracotta","minecraft:orange_shulker_box","minecraft:orange_stained_glass","minecraft:orange_stained_glass_pane","minecraft:orange_terracotta","minecraft:orange_tulip","minecraft:orange_wool","minecraft:oxeye_daisy","minecraft:packed_ice","minecraft:painting","minecraft:panda_spawn_egg","minecraft:paper","minecraft:parrot_spawn_egg","minecraft:peony","minecraft:petrified_oak_slab","minecraft:phantom_membrane","minecraft:phantom_spawn_egg","minecraft:pig_spawn_egg","minecraft:piglin_banner_pattern","minecraft:piglin_spawn_egg","minecraft:pillager_spawn_egg","minecraft:pink_banner","minecraft:pink_bed","minecraft:pink_carpet","minecraft:pink_concrete","minecraft:pink_concrete_powder","minecraft:pink_dye","minecraft:pink_glazed_terracotta","minecraft:pink_shulker_box","minecraft:pink_stained_glass","minecraft:pink_stained_glass_pane","minecraft:pink_terracotta","minecraft:pink_tulip","minecraft:pink_wool","minecraft:piston","minecraft:player_head","minecraft:podzol","minecraft:poisonous_potato","minecraft:polar_bear_spawn_egg","minecraft:polished_andesite","minecraft:polished_andesite_slab","minecraft:polished_andesite_stairs","minecraft:polished_basalt","minecraft:polished_blackstone","minecraft:polished_blackstone_brick_slab","minecraft:polished_blackstone_brick_stairs","minecraft:polished_blackstone_brick_wall","minecraft:polished_blackstone_bricks","minecraft:polished_blackstone_button","minecraft:polished_blackstone_pressure_plate","minecraft:polished_blackstone_slab","minecraft:polished_blackstone_stairs","minecraft:polished_blackstone_wall","minecraft:polished_diorite","minecraft:polished_diorite_slab","minecraft:polished_diorite_stairs","minecraft:polished_granite","minecraft:polished_granite_slab","minecraft:polished_granite_stairs","minecraft:popped_chorus_fruit","minecraft:poppy","minecraft:porkchop","minecraft:potato","minecraft:potion","minecraft:powered_rail","minecraft:prismarine","minecraft:prismarine_brick_slab","minecraft:prismarine_brick_stairs","minecraft:prismarine_bricks","minecraft:prismarine_crystals","minecraft:prismarine_shard","minecraft:prismarine_slab","minecraft:prismarine_stairs","minecraft:prismarine_wall","minecraft:pufferfish","minecraft:pufferfish_bucket","minecraft:pufferfish_spawn_egg","minecraft:pumpkin","minecraft:pumpkin_pie","minecraft:pumpkin_seeds","minecraft:purple_banner","minecraft:purple_bed","minecraft:purple_carpet","minecraft:purple_concrete","minecraft:purple_concrete_powder","minecraft:purple_dye","minecraft:purple_glazed_terracotta","minecraft:purple_shulker_box","minecraft:purple_stained_glass","minecraft:purple_stained_glass_pane","minecraft:purple_terracotta","minecraft:purple_wool","minecraft:purpur_block","minecraft:purpur_pillar","minecraft:purpur_slab","minecraft:purpur_stairs","minecraft:quartz","minecraft:quartz_block","minecraft:quartz_bricks","minecraft:quartz_pillar","minecraft:quartz_slab","minecraft:quartz_stairs","minecraft:rabbit","minecraft:rabbit_foot","minecraft:rabbit_hide","minecraft:rabbit_spawn_egg","minecraft:rabbit_stew","minecraft:rail","minecraft:ravager_spawn_egg","minecraft:red_banner","minecraft:red_bed","minecraft:red_carpet","minecraft:red_concrete","minecraft:red_concrete_powder","minecraft:red_dye","minecraft:red_glazed_terracotta","minecraft:red_mushroom","minecraft:red_mushroom_block","minecraft:red_nether_brick_slab","minecraft:red_nether_brick_stairs","minecraft:red_nether_brick_wall","minecraft:red_nether_bricks","minecraft:red_sand","minecraft:red_sandstone","minecraft:red_sandstone_slab","minecraft:red_sandstone_stairs","minecraft:red_sandstone_wall","minecraft:red_shulker_box","minecraft:red_stained_glass","minecraft:red_stained_glass_pane","minecraft:red_terracotta","minecraft:red_tulip","minecraft:red_wool","minecraft:redstone","minecraft:redstone_block","minecraft:redstone_lamp","minecraft:redstone_ore","minecraft:redstone_torch","minecraft:repeater","minecraft:repeating_command_block","minecraft:respawn_anchor","minecraft:rose_bush","minecraft:rotten_flesh","minecraft:saddle","minecraft:salmon","minecraft:salmon_bucket","minecraft:salmon_spawn_egg","minecraft:sand","minecraft:sandstone","minecraft:sandstone_slab","minecraft:sandstone_stairs","minecraft:sandstone_wall","minecraft:scaffolding","minecraft:scute","minecraft:sea_lantern","minecraft:sea_pickle","minecraft:seagrass","minecraft:shears","minecraft:sheep_spawn_egg","minecraft:shield","minecraft:shroomlight","minecraft:shulker_box","minecraft:shulker_shell","minecraft:shulker_spawn_egg","minecraft:silverfish_spawn_egg","minecraft:skeleton_horse_spawn_egg","minecraft:skeleton_skull","minecraft:skeleton_spawn_egg","minecraft:skull_banner_pattern","minecraft:slime_ball","minecraft:slime_block","minecraft:slime_spawn_egg","minecraft:smithing_table","minecraft:smoker","minecraft:smooth_quartz","minecraft:smooth_quartz_slab","minecraft:smooth_quartz_stairs","minecraft:smooth_red_sandstone","minecraft:smooth_red_sandstone_slab","minecraft:smooth_red_sandstone_stairs","minecraft:smooth_sandstone","minecraft:smooth_sandstone_slab","minecraft:smooth_sandstone_stairs","minecraft:smooth_stone","minecraft:smooth_stone_slab","minecraft:snow","minecraft:snow_block","minecraft:snowball","minecraft:soul_campfire","minecraft:soul_lantern","minecraft:soul_sand","minecraft:soul_soil","minecraft:soul_torch","minecraft:spawner","minecraft:spectral_arrow","minecraft:spider_eye","minecraft:spider_spawn_egg","minecraft:splash_potion","minecraft:sponge","minecraft:spruce_boat","minecraft:spruce_button","minecraft:spruce_door","minecraft:spruce_fence","minecraft:spruce_fence_gate","minecraft:spruce_leaves","minecraft:spruce_log","minecraft:spruce_planks","minecraft:spruce_pressure_plate","minecraft:spruce_sapling","minecraft:spruce_sign","minecraft:spruce_slab","minecraft:spruce_stairs","minecraft:spruce_trapdoor","minecraft:spruce_wood","minecraft:squid_spawn_egg","minecraft:stick","minecraft:sticky_piston","minecraft:stone","minecraft:stone_axe","minecraft:stone_brick_slab","minecraft:stone_brick_stairs","minecraft:stone_brick_wall","minecraft:stone_bricks","minecraft:stone_button","minecraft:stone_hoe","minecraft:stone_pickaxe","minecraft:stone_pressure_plate","minecraft:stone_shovel","minecraft:stone_slab","minecraft:stone_stairs","minecraft:stone_sword","minecraft:stonecutter","minecraft:stray_spawn_egg","minecraft:strider_spawn_egg","minecraft:string","minecraft:stripped_acacia_log","minecraft:stripped_acacia_wood","minecraft:stripped_birch_log","minecraft:stripped_birch_wood","minecraft:stripped_crimson_hyphae","minecraft:stripped_crimson_stem","minecraft:stripped_dark_oak_log","minecraft:stripped_dark_oak_wood","minecraft:stripped_jungle_log","minecraft:stripped_jungle_wood","minecraft:stripped_oak_log","minecraft:stripped_oak_wood","minecraft:stripped_spruce_log","minecraft:stripped_spruce_wood","minecraft:stripped_warped_hyphae","minecraft:stripped_warped_stem","minecraft:structure_block","minecraft:structure_void","minecraft:sugar","minecraft:sugar_cane","minecraft:sunflower","minecraft:suspicious_stew","minecraft:sweet_berries","minecraft:tall_grass","minecraft:target","minecraft:terracotta","minecraft:tipped_arrow","minecraft:tnt","minecraft:tnt_minecart","minecraft:torch","minecraft:totem_of_undying","minecraft:trader_llama_spawn_egg","minecraft:trapped_chest","minecraft:trident","minecraft:tripwire_hook","minecraft:tropical_fish","minecraft:tropical_fish_bucket","minecraft:tropical_fish_spawn_egg","minecraft:tube_coral","minecraft:tube_coral_block","minecraft:tube_coral_fan","minecraft:turtle_egg","minecraft:turtle_helmet","minecraft:turtle_spawn_egg","minecraft:twisting_vines","minecraft:vex_spawn_egg","minecraft:villager_spawn_egg","minecraft:vindicator_spawn_egg","minecraft:vine","minecraft:wandering_trader_spawn_egg","minecraft:warped_button","minecraft:warped_door","minecraft:warped_fence","minecraft:warped_fence_gate","minecraft:warped_fungus","minecraft:warped_fungus_on_a_stick","minecraft:warped_hyphae","minecraft:warped_nylium","minecraft:warped_planks","minecraft:warped_pressure_plate","minecraft:warped_roots","minecraft:warped_sign","minecraft:warped_slab","minecraft:warped_stairs","minecraft:warped_stem","minecraft:warped_trapdoor","minecraft:warped_wart_block","minecraft:water_bucket","minecraft:weeping_vines","minecraft:wet_sponge","minecraft:wheat","minecraft:wheat_seeds","minecraft:white_banner","minecraft:white_bed","minecraft:white_carpet","minecraft:white_concrete","minecraft:white_concrete_powder","minecraft:white_dye","minecraft:white_glazed_terracotta","minecraft:white_shulker_box","minecraft:white_stained_glass","minecraft:white_stained_glass_pane","minecraft:white_terracotta","minecraft:white_tulip","minecraft:white_wool","minecraft:witch_spawn_egg","minecraft:wither_rose","minecraft:wither_skeleton_skull","minecraft:wither_skeleton_spawn_egg","minecraft:wolf_spawn_egg","minecraft:wooden_axe","minecraft:wooden_hoe","minecraft:wooden_pickaxe","minecraft:wooden_shovel","minecraft:wooden_sword","minecraft:writable_book","minecraft:written_book","minecraft:yellow_banner","minecraft:yellow_bed","minecraft:yellow_carpet","minecraft:yellow_concrete","minecraft:yellow_concrete_powder","minecraft:yellow_dye","minecraft:yellow_glazed_terracotta","minecraft:yellow_shulker_box","minecraft:yellow_stained_glass","minecraft:yellow_stained_glass_pane","minecraft:yellow_terracotta","minecraft:yellow_wool","minecraft:zoglin_spawn_egg","minecraft:zombie_head","minecraft:zombie_horse_spawn_egg","minecraft:zombie_spawn_egg","minecraft:zombie_villager_spawn_egg","minecraft:zombified_piglin_spawn_egg"],"entities":["minecraft:area_effect_cloud","minecraft:armor_stand","minecraft:arrow","minecraft:bat","minecraft:bee","minecraft:blaze","minecraft:boat","minecraft:cat","minecraft:cave_spider","minecraft:chest_minecart","minecraft:chicken","minecraft:cod","minecraft:command_block_minecart","minecraft:cow","minecraft:creeper","minecraft:dolphin","minecraft:donkey","minecraft:dragon_fireball","minecraft:drowned","minecraft:egg","minecraft:elder_guardian","minecraft:end_crystal","minecraft:ender_dragon","minecraft:ender_pearl","minecraft:enderman","minecraft:endermite","minecraft:evoker","minecraft:evoker_fangs","minecraft:experience_bottle","minecraft:experience_orb","minecraft:eye_of_ender","minecraft:falling_block","minecraft:fireball","minecraft:firework_rocket","minecraft:fishing_bobber","minecraft:fox","minecraft:furnace_minecart","minecraft:ghast","minecraft:giant","minecraft:guardian","minecraft:hoglin","minecraft:hopper_minecart","minecraft:horse","minecraft:husk","minecraft:illusioner","minecraft:iron_golem","minecraft:item","minecraft:item_frame","minecraft:leash_knot","minecraft:lightning_bolt","minecraft:llama","minecraft:llama_spit","minecraft:magma_cube","minecraft:minecart","minecraft:mooshroom","minecraft:mule","minecraft:ocelot","minecraft:painting","minecraft:panda","minecraft:parrot","minecraft:phantom","minecraft:pig","minecraft:piglin","minecraft:pillager","minecraft:player","minecraft:polar_bear","minecraft:potion","minecraft:pufferfish","minecraft:rabbit","minecraft:ravager","minecraft:salmon","minecraft:sheep","minecraft:shulker","minecraft:shulker_bullet","minecraft:silverfish","minecraft:skeleton","minecraft:skeleton_horse","minecraft:slime","minecraft:small_fireball","minecraft:snow_golem","minecraft:snowball","minecraft:spawner_minecart","minecraft:spectral_arrow","minecraft:spider","minecraft:squid","minecraft:stray","minecraft:strider","minecraft:tnt","minecraft:tnt_minecart","minecraft:trader_llama","minecraft:trident","minecraft:tropical_fish","minecraft:turtle","minecraft:vex","minecraft:villager","minecraft:vindicator","minecraft:wandering_trader","minecraft:witch","minecraft:wither","minecraft:wither_skeleton","minecraft:wither_skull","minecraft:wolf","minecraft:zoglin","minecraft:zombie","minecraft:zombie_horse","minecraft:zombie_villager","minecraft:zombified_piglin"],"biomes":["minecraft:badlands","minecraft:badlands_plateau","minecraft:bamboo_jungle","minecraft:bamboo_jungle_hills","minecraft:basalt_deltas","minecraft:beach","minecraft:birch_forest","minecraft:birch_forest_hills","minecraft:cold_ocean","minecraft:crimson_forest","minecraft:dark_forest","minecraft:dark_forest_hills","minecraft:deep_cold_ocean","minecraft:deep_frozen_ocean","minecraft:deep_lukewarm_ocean","minecraft:deep_ocean","minecraft:deep_warm_ocean","minecraft:desert","minecraft:desert_hills","minecraft:desert_lakes","minecraft:end_barrens","minecraft:end_highlands","minecraft:end_midlands","minecraft:eroded_badlands","minecraft:flower_forest","minecraft:forest","minecraft:frozen_ocean","minecraft:frozen_river","minecraft:giant_spruce_taiga","minecraft:giant_spruce_taiga_hills","minecraft:giant_tree_taiga","minecraft:giant_tree_taiga_hills","minecraft:gravelly_mountains","minecraft:ice_spikes","minecraft:jungle","minecraft:jungle_edge","minecraft:jungle_hills","minecraft:lukewarm_ocean","minecraft:modified_badlands_plateau","minecraft:modified_gravelly_mountains","minecraft:modified_jungle","minecraft:modified_jungle_edge","minecraft:modified_wooded_badlands_plateau","minecraft:mountain_edge","minecraft:mountains","minecraft:mushroom_field_shore","minecraft:mushroom_fields","minecraft:nether_wastes","minecraft:ocean","minecraft:plains","minecraft:river","minecraft:savanna","minecraft:savanna_plateau","minecraft:shattered_savanna","minecraft:shattered_savanna_plateau","minecraft:small_end_islands","minecraft:snowy_beach","minecraft:snowy_mountains","minecraft:snowy_taiga","minecraft:snowy_taiga_hills","minecraft:snowy_taiga_mountains","minecraft:snowy_tundra","minecraft:soul_sand_valley","minecraft:stone_shore","minecraft:sunflower_plains","minecraft:swamp","minecraft:swamp_hills","minecraft:taiga","minecraft:taiga_hills","minecraft:taiga_mountains","minecraft:tall_birch_forest","minecraft:tall_birch_hills","minecraft:the_end","minecraft:the_void","minecraft:warm_ocean","minecraft:warped_forest","minecraft:wooded_badlands_plateau","minecraft:wooded_hills","minecraft:wooded_mountains"],"blocktags":{"minecraft:crimson_stems":["minecraft:crimson_stem","minecraft:stripped_crimson_stem","minecraft:crimson_hyphae","minecraft:stripped_crimson_hyphae"],"minecraft:infiniburn_end":["minecraft:bedrock","minecraft:netherrack","minecraft:magma_block"],"minecraft:strider_warm_blocks":["minecraft:lava"],"minecraft:hoglin_repellents":["minecraft:warped_fungus","minecraft:potted_warped_fungus","minecraft:nether_portal","minecraft:respawn_anchor"],"minecraft:slabs":["minecraft:stone_slab","minecraft:smooth_stone_slab","minecraft:stone_brick_slab","minecraft:sandstone_slab","minecraft:purpur_slab","minecraft:quartz_slab","minecraft:red_sandstone_slab","minecraft:brick_slab","minecraft:cobblestone_slab","minecraft:nether_brick_slab","minecraft:petrified_oak_slab","minecraft:prismarine_slab","minecraft:prismarine_brick_slab","minecraft:dark_prismarine_slab","minecraft:polished_granite_slab","minecraft:smooth_red_sandstone_slab","minecraft:mossy_stone_brick_slab","minecraft:polished_diorite_slab","minecraft:mossy_cobblestone_slab","minecraft:end_stone_brick_slab","minecraft:smooth_sandstone_slab","minecraft:smooth_quartz_slab","minecraft:granite_slab","minecraft:andesite_slab","minecraft:red_nether_brick_slab","minecraft:polished_andesite_slab","minecraft:diorite_slab","minecraft:cut_sandstone_slab","minecraft:cut_red_sandstone_slab","minecraft:blackstone_slab","minecraft:polished_blackstone_brick_slab","minecraft:polished_blackstone_slab","minecraft:oak_slab","minecraft:spruce_slab","minecraft:birch_slab","minecraft:jungle_slab","minecraft:acacia_slab","minecraft:dark_oak_slab","minecraft:crimson_slab","minecraft:warped_slab"],"minecraft:carpets":["minecraft:white_carpet","minecraft:orange_carpet","minecraft:magenta_carpet","minecraft:light_blue_carpet","minecraft:yellow_carpet","minecraft:lime_carpet","minecraft:pink_carpet","minecraft:gray_carpet","minecraft:light_gray_carpet","minecraft:cyan_carpet","minecraft:purple_carpet","minecraft:blue_carpet","minecraft:brown_carpet","minecraft:green_carpet","minecraft:red_carpet","minecraft:black_carpet"],"minecraft:stairs":["minecraft:cobblestone_stairs","minecraft:sandstone_stairs","minecraft:nether_brick_stairs","minecraft:stone_brick_stairs","minecraft:brick_stairs","minecraft:purpur_stairs","minecraft:quartz_stairs","minecraft:red_sandstone_stairs","minecraft:prismarine_brick_stairs","minecraft:prismarine_stairs","minecraft:dark_prismarine_stairs","minecraft:polished_granite_stairs","minecraft:smooth_red_sandstone_stairs","minecraft:mossy_stone_brick_stairs","minecraft:polished_diorite_stairs","minecraft:mossy_cobblestone_stairs","minecraft:end_stone_brick_stairs","minecraft:stone_stairs","minecraft:smooth_sandstone_stairs","minecraft:smooth_quartz_stairs","minecraft:granite_stairs","minecraft:andesite_stairs","minecraft:red_nether_brick_stairs","minecraft:polished_andesite_stairs","minecraft:diorite_stairs","minecraft:blackstone_stairs","minecraft:polished_blackstone_brick_stairs","minecraft:polished_blackstone_stairs","minecraft:oak_stairs","minecraft:spruce_stairs","minecraft:birch_stairs","minecraft:jungle_stairs","minecraft:acacia_stairs","minecraft:dark_oak_stairs","minecraft:crimson_stairs","minecraft:warped_stairs"],"minecraft:wooden_doors":["minecraft:oak_door","minecraft:spruce_door","minecraft:birch_door","minecraft:jungle_door","minecraft:acacia_door","minecraft:dark_oak_door","minecraft:crimson_door","minecraft:warped_door"],"minecraft:jungle_logs":["minecraft:jungle_log","minecraft:jungle_wood","minecraft:stripped_jungle_log","minecraft:stripped_jungle_wood"],"minecraft:planks":["minecraft:oak_planks","minecraft:spruce_planks","minecraft:birch_planks","minecraft:jungle_planks","minecraft:acacia_planks","minecraft:dark_oak_planks","minecraft:crimson_planks","minecraft:warped_planks"],"minecraft:wall_corals":["minecraft:tube_coral_wall_fan","minecraft:brain_coral_wall_fan","minecraft:bubble_coral_wall_fan","minecraft:fire_coral_wall_fan","minecraft:horn_coral_wall_fan"],"minecraft:unstable_bottom_center":["minecraft:acacia_fence_gate","minecraft:birch_fence_gate","minecraft:dark_oak_fence_gate","minecraft:jungle_fence_gate","minecraft:oak_fence_gate","minecraft:spruce_fence_gate","minecraft:crimson_fence_gate","minecraft:warped_fence_gate"],"minecraft:shulker_boxes":["minecraft:shulker_box","minecraft:black_shulker_box","minecraft:blue_shulker_box","minecraft:brown_shulker_box","minecraft:cyan_shulker_box","minecraft:gray_shulker_box","minecraft:green_shulker_box","minecraft:light_blue_shulker_box","minecraft:light_gray_shulker_box","minecraft:lime_shulker_box","minecraft:magenta_shulker_box","minecraft:orange_shulker_box","minecraft:pink_shulker_box","minecraft:purple_shulker_box","minecraft:red_shulker_box","minecraft:white_shulker_box","minecraft:yellow_shulker_box"],"minecraft:acacia_logs":["minecraft:acacia_log","minecraft:acacia_wood","minecraft:stripped_acacia_log","minecraft:stripped_acacia_wood"],"minecraft:wither_immune":["minecraft:barrier","minecraft:bedrock","minecraft:end_portal","minecraft:end_portal_frame","minecraft:end_gateway","minecraft:command_block","minecraft:repeating_command_block","minecraft:chain_command_block","minecraft:structure_block","minecraft:jigsaw","minecraft:moving_piston"],"minecraft:fire":["minecraft:fire","minecraft:soul_fire"],"minecraft:flower_pots":["minecraft:flower_pot","minecraft:potted_poppy","minecraft:potted_blue_orchid","minecraft:potted_allium","minecraft:potted_azure_bluet","minecraft:potted_red_tulip","minecraft:potted_orange_tulip","minecraft:potted_white_tulip","minecraft:potted_pink_tulip","minecraft:potted_oxeye_daisy","minecraft:potted_dandelion","minecraft:potted_oak_sapling","minecraft:potted_spruce_sapling","minecraft:potted_birch_sapling","minecraft:potted_jungle_sapling","minecraft:potted_acacia_sapling","minecraft:potted_dark_oak_sapling","minecraft:potted_red_mushroom","minecraft:potted_brown_mushroom","minecraft:potted_dead_bush","minecraft:potted_fern","minecraft:potted_cactus","minecraft:potted_cornflower","minecraft:potted_lily_of_the_valley","minecraft:potted_wither_rose","minecraft:potted_bamboo","minecraft:potted_crimson_fungus","minecraft:potted_warped_fungus","minecraft:potted_crimson_roots","minecraft:potted_warped_roots"],"minecraft:wall_post_override":["minecraft:torch","minecraft:soul_torch","minecraft:redstone_torch","minecraft:tripwire","minecraft:oak_sign","minecraft:spruce_sign","minecraft:birch_sign","minecraft:acacia_sign","minecraft:jungle_sign","minecraft:dark_oak_sign","minecraft:crimson_sign","minecraft:warped_sign","minecraft:oak_wall_sign","minecraft:spruce_wall_sign","minecraft:birch_wall_sign","minecraft:acacia_wall_sign","minecraft:jungle_wall_sign","minecraft:dark_oak_wall_sign","minecraft:crimson_wall_sign","minecraft:warped_wall_sign","minecraft:white_banner","minecraft:orange_banner","minecraft:magenta_banner","minecraft:light_blue_banner","minecraft:yellow_banner","minecraft:lime_banner","minecraft:pink_banner","minecraft:gray_banner","minecraft:light_gray_banner","minecraft:cyan_banner","minecraft:purple_banner","minecraft:blue_banner","minecraft:brown_banner","minecraft:green_banner","minecraft:red_banner","minecraft:black_banner","minecraft:white_wall_banner","minecraft:orange_wall_banner","minecraft:magenta_wall_banner","minecraft:light_blue_wall_banner","minecraft:yellow_wall_banner","minecraft:lime_wall_banner","minecraft:pink_wall_banner","minecraft:gray_wall_banner","minecraft:light_gray_wall_banner","minecraft:cyan_wall_banner","minecraft:purple_wall_banner","minecraft:blue_wall_banner","minecraft:brown_wall_banner","minecraft:green_wall_banner","minecraft:red_wall_banner","minecraft:black_wall_banner","minecraft:light_weighted_pressure_plate","minecraft:heavy_weighted_pressure_plate","minecraft:oak_pressure_plate","minecraft:spruce_pressure_plate","minecraft:birch_pressure_plate","minecraft:jungle_pressure_plate","minecraft:acacia_pressure_plate","minecraft:dark_oak_pressure_plate","minecraft:crimson_pressure_plate","minecraft:warped_pressure_plate","minecraft:stone_pressure_plate","minecraft:polished_blackstone_pressure_plate"],"minecraft:stone_bricks":["minecraft:stone_bricks","minecraft:mossy_stone_bricks","minecraft:cracked_stone_bricks","minecraft:chiseled_stone_bricks"],"minecraft:enderman_holdable":["minecraft:grass_block","minecraft:dirt","minecraft:coarse_dirt","minecraft:podzol","minecraft:sand","minecraft:red_sand","minecraft:gravel","minecraft:brown_mushroom","minecraft:red_mushroom","minecraft:tnt","minecraft:cactus","minecraft:clay","minecraft:pumpkin","minecraft:carved_pumpkin","minecraft:melon","minecraft:mycelium","minecraft:crimson_fungus","minecraft:crimson_nylium","minecraft:crimson_roots","minecraft:warped_fungus","minecraft:warped_nylium","minecraft:warped_roots","minecraft:dandelion","minecraft:poppy","minecraft:blue_orchid","minecraft:allium","minecraft:azure_bluet","minecraft:red_tulip","minecraft:orange_tulip","minecraft:white_tulip","minecraft:pink_tulip","minecraft:oxeye_daisy","minecraft:cornflower","minecraft:lily_of_the_valley","minecraft:wither_rose"],"minecraft:spruce_logs":["minecraft:spruce_log","minecraft:spruce_wood","minecraft:stripped_spruce_log","minecraft:stripped_spruce_wood"],"minecraft:flowers":["minecraft:dandelion","minecraft:poppy","minecraft:blue_orchid","minecraft:allium","minecraft:azure_bluet","minecraft:red_tulip","minecraft:orange_tulip","minecraft:white_tulip","minecraft:pink_tulip","minecraft:oxeye_daisy","minecraft:cornflower","minecraft:lily_of_the_valley","minecraft:wither_rose","minecraft:sunflower","minecraft:lilac","minecraft:peony","minecraft:rose_bush"],"minecraft:soul_speed_blocks":["minecraft:soul_sand","minecraft:soul_soil"],"minecraft:wooden_slabs":["minecraft:oak_slab","minecraft:spruce_slab","minecraft:birch_slab","minecraft:jungle_slab","minecraft:acacia_slab","minecraft:dark_oak_slab","minecraft:crimson_slab","minecraft:warped_slab"],"minecraft:stone_pressure_plates":["minecraft:stone_pressure_plate","minecraft:polished_blackstone_pressure_plate"],"minecraft:coral_blocks":["minecraft:tube_coral_block","minecraft:brain_coral_block","minecraft:bubble_coral_block","minecraft:fire_coral_block","minecraft:horn_coral_block"],"minecraft:signs":["minecraft:oak_sign","minecraft:spruce_sign","minecraft:birch_sign","minecraft:acacia_sign","minecraft:jungle_sign","minecraft:dark_oak_sign","minecraft:crimson_sign","minecraft:warped_sign","minecraft:oak_wall_sign","minecraft:spruce_wall_sign","minecraft:birch_wall_sign","minecraft:acacia_wall_sign","minecraft:jungle_wall_sign","minecraft:dark_oak_wall_sign","minecraft:crimson_wall_sign","minecraft:warped_wall_sign"],"minecraft:guarded_by_piglins":["minecraft:gold_block","minecraft:barrel","minecraft:chest","minecraft:ender_chest","minecraft:gilded_blackstone","minecraft:trapped_chest","minecraft:shulker_box","minecraft:black_shulker_box","minecraft:blue_shulker_box","minecraft:brown_shulker_box","minecraft:cyan_shulker_box","minecraft:gray_shulker_box","minecraft:green_shulker_box","minecraft:light_blue_shulker_box","minecraft:light_gray_shulker_box","minecraft:lime_shulker_box","minecraft:magenta_shulker_box","minecraft:orange_shulker_box","minecraft:pink_shulker_box","minecraft:purple_shulker_box","minecraft:red_shulker_box","minecraft:white_shulker_box","minecraft:yellow_shulker_box","minecraft:gold_ore","minecraft:nether_gold_ore"],"minecraft:dark_oak_logs":["minecraft:dark_oak_log","minecraft:dark_oak_wood","minecraft:stripped_dark_oak_log","minecraft:stripped_dark_oak_wood"],"minecraft:climbable":["minecraft:ladder","minecraft:vine","minecraft:scaffolding","minecraft:weeping_vines","minecraft:weeping_vines_plant","minecraft:twisting_vines","minecraft:twisting_vines_plant"],"minecraft:logs_that_burn":["minecraft:dark_oak_log","minecraft:dark_oak_wood","minecraft:stripped_dark_oak_log","minecraft:stripped_dark_oak_wood","minecraft:oak_log","minecraft:oak_wood","minecraft:stripped_oak_log","minecraft:stripped_oak_wood","minecraft:acacia_log","minecraft:acacia_wood","minecraft:stripped_acacia_log","minecraft:stripped_acacia_wood","minecraft:birch_log","minecraft:birch_wood","minecraft:stripped_birch_log","minecraft:stripped_birch_wood","minecraft:jungle_log","minecraft:jungle_wood","minecraft:stripped_jungle_log","minecraft:stripped_jungle_wood","minecraft:spruce_log","minecraft:spruce_wood","minecraft:stripped_spruce_log","minecraft:stripped_spruce_wood"],"minecraft:sand":["minecraft:sand","minecraft:red_sand"],"minecraft:non_flammable_wood":["minecraft:warped_stem","minecraft:stripped_warped_stem","minecraft:warped_hyphae","minecraft:stripped_warped_hyphae","minecraft:crimson_stem","minecraft:stripped_crimson_stem","minecraft:crimson_hyphae","minecraft:stripped_crimson_hyphae","minecraft:crimson_planks","minecraft:warped_planks","minecraft:crimson_slab","minecraft:warped_slab","minecraft:crimson_pressure_plate","minecraft:warped_pressure_plate","minecraft:crimson_fence","minecraft:warped_fence","minecraft:crimson_trapdoor","minecraft:warped_trapdoor","minecraft:crimson_fence_gate","minecraft:warped_fence_gate","minecraft:crimson_stairs","minecraft:warped_stairs","minecraft:crimson_button","minecraft:warped_button","minecraft:crimson_door","minecraft:warped_door","minecraft:crimson_sign","minecraft:warped_sign","minecraft:crimson_wall_sign","minecraft:warped_wall_sign"],"minecraft:valid_spawn":["minecraft:grass_block","minecraft:podzol"],"minecraft:beacon_base_blocks":["minecraft:netherite_block","minecraft:emerald_block","minecraft:diamond_block","minecraft:gold_block","minecraft:iron_block"],"minecraft:underwater_bonemeals":["minecraft:seagrass","minecraft:tube_coral_fan","minecraft:brain_coral_fan","minecraft:bubble_coral_fan","minecraft:fire_coral_fan","minecraft:horn_coral_fan","minecraft:tube_coral","minecraft:brain_coral","minecraft:bubble_coral","minecraft:fire_coral","minecraft:horn_coral","minecraft:tube_coral_wall_fan","minecraft:brain_coral_wall_fan","minecraft:bubble_coral_wall_fan","minecraft:fire_coral_wall_fan","minecraft:horn_coral_wall_fan"],"minecraft:oak_logs":["minecraft:oak_log","minecraft:oak_wood","minecraft:stripped_oak_log","minecraft:stripped_oak_wood"],"minecraft:buttons":["minecraft:stone_button","minecraft:polished_blackstone_button","minecraft:oak_button","minecraft:spruce_button","minecraft:birch_button","minecraft:jungle_button","minecraft:acacia_button","minecraft:dark_oak_button","minecraft:crimson_button","minecraft:warped_button"],"minecraft:prevent_mob_spawning_inside":["minecraft:rail","minecraft:powered_rail","minecraft:detector_rail","minecraft:activator_rail"],"minecraft:wooden_pressure_plates":["minecraft:oak_pressure_plate","minecraft:spruce_pressure_plate","minecraft:birch_pressure_plate","minecraft:jungle_pressure_plate","minecraft:acacia_pressure_plate","minecraft:dark_oak_pressure_plate","minecraft:crimson_pressure_plate","minecraft:warped_pressure_plate"],"minecraft:soul_fire_base_blocks":["minecraft:soul_sand","minecraft:soul_soil"],"minecraft:beds":["minecraft:red_bed","minecraft:black_bed","minecraft:blue_bed","minecraft:brown_bed","minecraft:cyan_bed","minecraft:gray_bed","minecraft:green_bed","minecraft:light_blue_bed","minecraft:light_gray_bed","minecraft:lime_bed","minecraft:magenta_bed","minecraft:orange_bed","minecraft:pink_bed","minecraft:purple_bed","minecraft:white_bed","minecraft:yellow_bed"],"minecraft:walls":["minecraft:cobblestone_wall","minecraft:mossy_cobblestone_wall","minecraft:brick_wall","minecraft:prismarine_wall","minecraft:red_sandstone_wall","minecraft:mossy_stone_brick_wall","minecraft:granite_wall","minecraft:stone_brick_wall","minecraft:nether_brick_wall","minecraft:andesite_wall","minecraft:red_nether_brick_wall","minecraft:sandstone_wall","minecraft:end_stone_brick_wall","minecraft:diorite_wall","minecraft:blackstone_wall","minecraft:polished_blackstone_brick_wall","minecraft:polished_blackstone_wall"],"minecraft:fence_gates":["minecraft:acacia_fence_gate","minecraft:birch_fence_gate","minecraft:dark_oak_fence_gate","minecraft:jungle_fence_gate","minecraft:oak_fence_gate","minecraft:spruce_fence_gate","minecraft:crimson_fence_gate","minecraft:warped_fence_gate"],"minecraft:rails":["minecraft:rail","minecraft:powered_rail","minecraft:detector_rail","minecraft:activator_rail"],"minecraft:beehives":["minecraft:bee_nest","minecraft:beehive"],"minecraft:birch_logs":["minecraft:birch_log","minecraft:birch_wood","minecraft:stripped_birch_log","minecraft:stripped_birch_wood"],"minecraft:wooden_trapdoors":["minecraft:acacia_trapdoor","minecraft:birch_trapdoor","minecraft:dark_oak_trapdoor","minecraft:jungle_trapdoor","minecraft:oak_trapdoor","minecraft:spruce_trapdoor","minecraft:crimson_trapdoor","minecraft:warped_trapdoor"],"minecraft:wooden_fences":["minecraft:oak_fence","minecraft:acacia_fence","minecraft:dark_oak_fence","minecraft:spruce_fence","minecraft:birch_fence","minecraft:jungle_fence","minecraft:crimson_fence","minecraft:warped_fence"],"minecraft:pressure_plates":["minecraft:light_weighted_pressure_plate","minecraft:heavy_weighted_pressure_plate","minecraft:oak_pressure_plate","minecraft:spruce_pressure_plate","minecraft:birch_pressure_plate","minecraft:jungle_pressure_plate","minecraft:acacia_pressure_plate","minecraft:dark_oak_pressure_plate","minecraft:crimson_pressure_plate","minecraft:warped_pressure_plate","minecraft:stone_pressure_plate","minecraft:polished_blackstone_pressure_plate"],"minecraft:saplings":["minecraft:oak_sapling","minecraft:spruce_sapling","minecraft:birch_sapling","minecraft:jungle_sapling","minecraft:acacia_sapling","minecraft:dark_oak_sapling"],"minecraft:small_flowers":["minecraft:dandelion","minecraft:poppy","minecraft:blue_orchid","minecraft:allium","minecraft:azure_bluet","minecraft:red_tulip","minecraft:orange_tulip","minecraft:white_tulip","minecraft:pink_tulip","minecraft:oxeye_daisy","minecraft:cornflower","minecraft:lily_of_the_valley","minecraft:wither_rose"],"minecraft:wart_blocks":["minecraft:nether_wart_block","minecraft:warped_wart_block"],"minecraft:crops":["minecraft:beetroots","minecraft:carrots","minecraft:potatoes","minecraft:wheat","minecraft:melon_stem","minecraft:pumpkin_stem"],"minecraft:bamboo_plantable_on":["minecraft:bamboo","minecraft:bamboo_sapling","minecraft:gravel","minecraft:dirt","minecraft:grass_block","minecraft:podzol","minecraft:coarse_dirt","minecraft:mycelium","minecraft:sand","minecraft:red_sand"],"minecraft:infiniburn_overworld":["minecraft:netherrack","minecraft:magma_block"],"minecraft:ice":["minecraft:ice","minecraft:packed_ice","minecraft:blue_ice","minecraft:frosted_ice"],"minecraft:wooden_stairs":["minecraft:oak_stairs","minecraft:spruce_stairs","minecraft:birch_stairs","minecraft:jungle_stairs","minecraft:acacia_stairs","minecraft:dark_oak_stairs","minecraft:crimson_stairs","minecraft:warped_stairs"],"minecraft:anvil":["minecraft:anvil","minecraft:chipped_anvil","minecraft:damaged_anvil"],"minecraft:tall_flowers":["minecraft:sunflower","minecraft:lilac","minecraft:peony","minecraft:rose_bush"],"minecraft:gold_ores":["minecraft:gold_ore","minecraft:nether_gold_ore"],"minecraft:logs":["minecraft:dark_oak_log","minecraft:dark_oak_wood","minecraft:stripped_dark_oak_log","minecraft:stripped_dark_oak_wood","minecraft:oak_log","minecraft:oak_wood","minecraft:stripped_oak_log","minecraft:stripped_oak_wood","minecraft:acacia_log","minecraft:acacia_wood","minecraft:stripped_acacia_log","minecraft:stripped_acacia_wood","minecraft:birch_log","minecraft:birch_wood","minecraft:stripped_birch_log","minecraft:stripped_birch_wood","minecraft:jungle_log","minecraft:jungle_wood","minecraft:stripped_jungle_log","minecraft:stripped_jungle_wood","minecraft:spruce_log","minecraft:spruce_wood","minecraft:stripped_spruce_log","minecraft:stripped_spruce_wood","minecraft:crimson_stem","minecraft:stripped_crimson_stem","minecraft:crimson_hyphae","minecraft:stripped_crimson_hyphae","minecraft:warped_stem","minecraft:stripped_warped_stem","minecraft:warped_hyphae","minecraft:stripped_warped_hyphae"],"minecraft:corals":["minecraft:tube_coral_fan","minecraft:brain_coral_fan","minecraft:bubble_coral_fan","minecraft:fire_coral_fan","minecraft:horn_coral_fan","minecraft:tube_coral","minecraft:brain_coral","minecraft:bubble_coral","minecraft:fire_coral","minecraft:horn_coral"],"minecraft:piglin_repellents":["minecraft:soul_fire","minecraft:soul_torch","minecraft:soul_lantern","minecraft:soul_wall_torch","minecraft:soul_campfire"],"minecraft:bee_growables":["minecraft:sweet_berry_bush","minecraft:beetroots","minecraft:carrots","minecraft:potatoes","minecraft:wheat","minecraft:melon_stem","minecraft:pumpkin_stem"],"minecraft:infiniburn_nether":["minecraft:netherrack","minecraft:magma_block"],"minecraft:wooden_buttons":["minecraft:oak_button","minecraft:spruce_button","minecraft:birch_button","minecraft:jungle_button","minecraft:acacia_button","minecraft:dark_oak_button","minecraft:crimson_button","minecraft:warped_button"],"minecraft:wool":["minecraft:white_wool","minecraft:orange_wool","minecraft:magenta_wool","minecraft:light_blue_wool","minecraft:yellow_wool","minecraft:lime_wool","minecraft:pink_wool","minecraft:gray_wool","minecraft:light_gray_wool","minecraft:cyan_wool","minecraft:purple_wool","minecraft:blue_wool","minecraft:brown_wool","minecraft:green_wool","minecraft:red_wool","minecraft:black_wool"],"minecraft:coral_plants":["minecraft:tube_coral","minecraft:brain_coral","minecraft:bubble_coral","minecraft:fire_coral","minecraft:horn_coral"],"minecraft:banners":["minecraft:white_banner","minecraft:orange_banner","minecraft:magenta_banner","minecraft:light_blue_banner","minecraft:yellow_banner","minecraft:lime_banner","minecraft:pink_banner","minecraft:gray_banner","minecraft:light_gray_banner","minecraft:cyan_banner","minecraft:purple_banner","minecraft:blue_banner","minecraft:brown_banner","minecraft:green_banner","minecraft:red_banner","minecraft:black_banner","minecraft:white_wall_banner","minecraft:orange_wall_banner","minecraft:magenta_wall_banner","minecraft:light_blue_wall_banner","minecraft:yellow_wall_banner","minecraft:lime_wall_banner","minecraft:pink_wall_banner","minecraft:gray_wall_banner","minecraft:light_gray_wall_banner","minecraft:cyan_wall_banner","minecraft:purple_wall_banner","minecraft:blue_wall_banner","minecraft:brown_wall_banner","minecraft:green_wall_banner","minecraft:red_wall_banner","minecraft:black_wall_banner"],"minecraft:dragon_immune":["minecraft:barrier","minecraft:bedrock","minecraft:end_portal","minecraft:end_portal_frame","minecraft:end_gateway","minecraft:command_block","minecraft:repeating_command_block","minecraft:chain_command_block","minecraft:structure_block","minecraft:jigsaw","minecraft:moving_piston","minecraft:obsidian","minecraft:crying_obsidian","minecraft:end_stone","minecraft:iron_bars","minecraft:respawn_anchor"],"minecraft:doors":["minecraft:iron_door","minecraft:oak_door","minecraft:spruce_door","minecraft:birch_door","minecraft:jungle_door","minecraft:acacia_door","minecraft:dark_oak_door","minecraft:crimson_door","minecraft:warped_door"],"minecraft:nylium":["minecraft:crimson_nylium","minecraft:warped_nylium"],"minecraft:portals":["minecraft:nether_portal","minecraft:end_portal","minecraft:end_gateway"],"minecraft:fences":["minecraft:nether_brick_fence","minecraft:oak_fence","minecraft:acacia_fence","minecraft:dark_oak_fence","minecraft:spruce_fence","minecraft:birch_fence","minecraft:jungle_fence","minecraft:crimson_fence","minecraft:warped_fence"],"minecraft:wall_signs":["minecraft:oak_wall_sign","minecraft:spruce_wall_sign","minecraft:birch_wall_sign","minecraft:acacia_wall_sign","minecraft:jungle_wall_sign","minecraft:dark_oak_wall_sign","minecraft:crimson_wall_sign","minecraft:warped_wall_sign"],"minecraft:warped_stems":["minecraft:warped_stem","minecraft:stripped_warped_stem","minecraft:warped_hyphae","minecraft:stripped_warped_hyphae"],"minecraft:standing_signs":["minecraft:oak_sign","minecraft:spruce_sign","minecraft:birch_sign","minecraft:acacia_sign","minecraft:jungle_sign","minecraft:dark_oak_sign","minecraft:crimson_sign","minecraft:warped_sign"],"minecraft:wither_summon_base_blocks":["minecraft:soul_sand","minecraft:soul_soil"],"minecraft:impermeable":["minecraft:glass","minecraft:white_stained_glass","minecraft:orange_stained_glass","minecraft:magenta_stained_glass","minecraft:light_blue_stained_glass","minecraft:yellow_stained_glass","minecraft:lime_stained_glass","minecraft:pink_stained_glass","minecraft:gray_stained_glass","minecraft:light_gray_stained_glass","minecraft:cyan_stained_glass","minecraft:purple_stained_glass","minecraft:blue_stained_glass","minecraft:brown_stained_glass","minecraft:green_stained_glass","minecraft:red_stained_glass","minecraft:black_stained_glass"],"minecraft:campfires":["minecraft:campfire","minecraft:soul_campfire"],"minecraft:trapdoors":["minecraft:iron_trapdoor","minecraft:acacia_trapdoor","minecraft:birch_trapdoor","minecraft:dark_oak_trapdoor","minecraft:jungle_trapdoor","minecraft:oak_trapdoor","minecraft:spruce_trapdoor","minecraft:crimson_trapdoor","minecraft:warped_trapdoor"],"minecraft:leaves":["minecraft:jungle_leaves","minecraft:oak_leaves","minecraft:spruce_leaves","minecraft:dark_oak_leaves","minecraft:acacia_leaves","minecraft:birch_leaves"]},"itemtags":{"minecraft:stone_tool_materials":["minecraft:cobblestone","minecraft:blackstone"],"minecraft:crimson_stems":["minecraft:crimson_stem","minecraft:stripped_crimson_stem","minecraft:crimson_hyphae","minecraft:stripped_crimson_hyphae"],"minecraft:slabs":["minecraft:stone_slab","minecraft:smooth_stone_slab","minecraft:stone_brick_slab","minecraft:sandstone_slab","minecraft:purpur_slab","minecraft:quartz_slab","minecraft:red_sandstone_slab","minecraft:brick_slab","minecraft:cobblestone_slab","minecraft:nether_brick_slab","minecraft:petrified_oak_slab","minecraft:prismarine_slab","minecraft:prismarine_brick_slab","minecraft:dark_prismarine_slab","minecraft:polished_granite_slab","minecraft:smooth_red_sandstone_slab","minecraft:mossy_stone_brick_slab","minecraft:polished_diorite_slab","minecraft:mossy_cobblestone_slab","minecraft:end_stone_brick_slab","minecraft:smooth_sandstone_slab","minecraft:smooth_quartz_slab","minecraft:granite_slab","minecraft:andesite_slab","minecraft:red_nether_brick_slab","minecraft:polished_andesite_slab","minecraft:diorite_slab","minecraft:cut_sandstone_slab","minecraft:cut_red_sandstone_slab","minecraft:blackstone_slab","minecraft:polished_blackstone_brick_slab","minecraft:polished_blackstone_slab","minecraft:oak_slab","minecraft:spruce_slab","minecraft:birch_slab","minecraft:jungle_slab","minecraft:acacia_slab","minecraft:dark_oak_slab","minecraft:crimson_slab","minecraft:warped_slab"],"minecraft:carpets":["minecraft:white_carpet","minecraft:orange_carpet","minecraft:magenta_carpet","minecraft:light_blue_carpet","minecraft:yellow_carpet","minecraft:lime_carpet","minecraft:pink_carpet","minecraft:gray_carpet","minecraft:light_gray_carpet","minecraft:cyan_carpet","minecraft:purple_carpet","minecraft:blue_carpet","minecraft:brown_carpet","minecraft:green_carpet","minecraft:red_carpet","minecraft:black_carpet"],"minecraft:fishes":["minecraft:cod","minecraft:cooked_cod","minecraft:salmon","minecraft:cooked_salmon","minecraft:pufferfish","minecraft:tropical_fish"],"minecraft:stairs":["minecraft:cobblestone_stairs","minecraft:sandstone_stairs","minecraft:nether_brick_stairs","minecraft:stone_brick_stairs","minecraft:brick_stairs","minecraft:purpur_stairs","minecraft:quartz_stairs","minecraft:red_sandstone_stairs","minecraft:prismarine_brick_stairs","minecraft:prismarine_stairs","minecraft:dark_prismarine_stairs","minecraft:polished_granite_stairs","minecraft:smooth_red_sandstone_stairs","minecraft:mossy_stone_brick_stairs","minecraft:polished_diorite_stairs","minecraft:mossy_cobblestone_stairs","minecraft:end_stone_brick_stairs","minecraft:stone_stairs","minecraft:smooth_sandstone_stairs","minecraft:smooth_quartz_stairs","minecraft:granite_stairs","minecraft:andesite_stairs","minecraft:red_nether_brick_stairs","minecraft:polished_andesite_stairs","minecraft:diorite_stairs","minecraft:blackstone_stairs","minecraft:polished_blackstone_brick_stairs","minecraft:polished_blackstone_stairs","minecraft:oak_stairs","minecraft:spruce_stairs","minecraft:birch_stairs","minecraft:jungle_stairs","minecraft:acacia_stairs","minecraft:dark_oak_stairs","minecraft:crimson_stairs","minecraft:warped_stairs"],"minecraft:wooden_doors":["minecraft:oak_door","minecraft:spruce_door","minecraft:birch_door","minecraft:jungle_door","minecraft:acacia_door","minecraft:dark_oak_door","minecraft:crimson_door","minecraft:warped_door"],"minecraft:jungle_logs":["minecraft:jungle_log","minecraft:jungle_wood","minecraft:stripped_jungle_log","minecraft:stripped_jungle_wood"],"minecraft:planks":["minecraft:oak_planks","minecraft:spruce_planks","minecraft:birch_planks","minecraft:jungle_planks","minecraft:acacia_planks","minecraft:dark_oak_planks","minecraft:crimson_planks","minecraft:warped_planks"],"minecraft:arrows":["minecraft:arrow","minecraft:tipped_arrow","minecraft:spectral_arrow"],"minecraft:acacia_logs":["minecraft:acacia_log","minecraft:acacia_wood","minecraft:stripped_acacia_log","minecraft:stripped_acacia_wood"],"minecraft:stone_bricks":["minecraft:stone_bricks","minecraft:mossy_stone_bricks","minecraft:cracked_stone_bricks","minecraft:chiseled_stone_bricks"],"minecraft:spruce_logs":["minecraft:spruce_log","minecraft:spruce_wood","minecraft:stripped_spruce_log","minecraft:stripped_spruce_wood"],"minecraft:flowers":["minecraft:dandelion","minecraft:poppy","minecraft:blue_orchid","minecraft:allium","minecraft:azure_bluet","minecraft:red_tulip","minecraft:orange_tulip","minecraft:white_tulip","minecraft:pink_tulip","minecraft:oxeye_daisy","minecraft:cornflower","minecraft:lily_of_the_valley","minecraft:wither_rose","minecraft:sunflower","minecraft:lilac","minecraft:peony","minecraft:rose_bush"],"minecraft:coals":["minecraft:coal","minecraft:charcoal"],"minecraft:wooden_slabs":["minecraft:oak_slab","minecraft:spruce_slab","minecraft:birch_slab","minecraft:jungle_slab","minecraft:acacia_slab","minecraft:dark_oak_slab","minecraft:crimson_slab","minecraft:warped_slab"],"minecraft:signs":["minecraft:oak_sign","minecraft:spruce_sign","minecraft:birch_sign","minecraft:acacia_sign","minecraft:jungle_sign","minecraft:dark_oak_sign","minecraft:crimson_sign","minecraft:warped_sign"],"minecraft:dark_oak_logs":["minecraft:dark_oak_log","minecraft:dark_oak_wood","minecraft:stripped_dark_oak_log","minecraft:stripped_dark_oak_wood"],"minecraft:logs_that_burn":["minecraft:dark_oak_log","minecraft:dark_oak_wood","minecraft:stripped_dark_oak_log","minecraft:stripped_dark_oak_wood","minecraft:oak_log","minecraft:oak_wood","minecraft:stripped_oak_log","minecraft:stripped_oak_wood","minecraft:acacia_log","minecraft:acacia_wood","minecraft:stripped_acacia_log","minecraft:stripped_acacia_wood","minecraft:birch_log","minecraft:birch_wood","minecraft:stripped_birch_log","minecraft:stripped_birch_wood","minecraft:jungle_log","minecraft:jungle_wood","minecraft:stripped_jungle_log","minecraft:stripped_jungle_wood","minecraft:spruce_log","minecraft:spruce_wood","minecraft:stripped_spruce_log","minecraft:stripped_spruce_wood"],"minecraft:sand":["minecraft:sand","minecraft:red_sand"],"minecraft:non_flammable_wood":["minecraft:warped_stem","minecraft:stripped_warped_stem","minecraft:warped_hyphae","minecraft:stripped_warped_hyphae","minecraft:crimson_stem","minecraft:stripped_crimson_stem","minecraft:crimson_hyphae","minecraft:stripped_crimson_hyphae","minecraft:crimson_planks","minecraft:warped_planks","minecraft:crimson_slab","minecraft:warped_slab","minecraft:crimson_pressure_plate","minecraft:warped_pressure_plate","minecraft:crimson_fence","minecraft:warped_fence","minecraft:crimson_trapdoor","minecraft:warped_trapdoor","minecraft:crimson_fence_gate","minecraft:warped_fence_gate","minecraft:crimson_stairs","minecraft:warped_stairs","minecraft:crimson_button","minecraft:warped_button","minecraft:crimson_door","minecraft:warped_door","minecraft:crimson_sign","minecraft:warped_sign"],"minecraft:piglin_loved":["minecraft:gold_block","minecraft:gilded_blackstone","minecraft:light_weighted_pressure_plate","minecraft:gold_ingot","minecraft:bell","minecraft:clock","minecraft:golden_carrot","minecraft:glistering_melon_slice","minecraft:golden_apple","minecraft:enchanted_golden_apple","minecraft:golden_helmet","minecraft:golden_chestplate","minecraft:golden_leggings","minecraft:golden_boots","minecraft:golden_horse_armor","minecraft:golden_sword","minecraft:golden_pickaxe","minecraft:golden_shovel","minecraft:golden_axe","minecraft:golden_hoe","minecraft:gold_ore","minecraft:nether_gold_ore"],"minecraft:oak_logs":["minecraft:oak_log","minecraft:oak_wood","minecraft:stripped_oak_log","minecraft:stripped_oak_wood"],"minecraft:buttons":["minecraft:stone_button","minecraft:polished_blackstone_button","minecraft:oak_button","minecraft:spruce_button","minecraft:birch_button","minecraft:jungle_button","minecraft:acacia_button","minecraft:dark_oak_button","minecraft:crimson_button","minecraft:warped_button"],"minecraft:wooden_pressure_plates":["minecraft:oak_pressure_plate","minecraft:spruce_pressure_plate","minecraft:birch_pressure_plate","minecraft:jungle_pressure_plate","minecraft:acacia_pressure_plate","minecraft:dark_oak_pressure_plate","minecraft:crimson_pressure_plate","minecraft:warped_pressure_plate"],"minecraft:furnace_materials":["minecraft:cobblestone","minecraft:blackstone"],"minecraft:soul_fire_base_blocks":["minecraft:soul_sand","minecraft:soul_soil"],"minecraft:beds":["minecraft:red_bed","minecraft:black_bed","minecraft:blue_bed","minecraft:brown_bed","minecraft:cyan_bed","minecraft:gray_bed","minecraft:green_bed","minecraft:light_blue_bed","minecraft:light_gray_bed","minecraft:lime_bed","minecraft:magenta_bed","minecraft:orange_bed","minecraft:pink_bed","minecraft:purple_bed","minecraft:white_bed","minecraft:yellow_bed"],"minecraft:walls":["minecraft:cobblestone_wall","minecraft:mossy_cobblestone_wall","minecraft:brick_wall","minecraft:prismarine_wall","minecraft:red_sandstone_wall","minecraft:mossy_stone_brick_wall","minecraft:granite_wall","minecraft:stone_brick_wall","minecraft:nether_brick_wall","minecraft:andesite_wall","minecraft:red_nether_brick_wall","minecraft:sandstone_wall","minecraft:end_stone_brick_wall","minecraft:diorite_wall","minecraft:blackstone_wall","minecraft:polished_blackstone_brick_wall","minecraft:polished_blackstone_wall"],"minecraft:rails":["minecraft:rail","minecraft:powered_rail","minecraft:detector_rail","minecraft:activator_rail"],"minecraft:birch_logs":["minecraft:birch_log","minecraft:birch_wood","minecraft:stripped_birch_log","minecraft:stripped_birch_wood"],"minecraft:wooden_trapdoors":["minecraft:acacia_trapdoor","minecraft:birch_trapdoor","minecraft:dark_oak_trapdoor","minecraft:jungle_trapdoor","minecraft:oak_trapdoor","minecraft:spruce_trapdoor","minecraft:crimson_trapdoor","minecraft:warped_trapdoor"],"minecraft:wooden_fences":["minecraft:oak_fence","minecraft:acacia_fence","minecraft:dark_oak_fence","minecraft:spruce_fence","minecraft:birch_fence","minecraft:jungle_fence","minecraft:crimson_fence","minecraft:warped_fence"],"minecraft:saplings":["minecraft:oak_sapling","minecraft:spruce_sapling","minecraft:birch_sapling","minecraft:jungle_sapling","minecraft:acacia_sapling","minecraft:dark_oak_sapling"],"minecraft:small_flowers":["minecraft:dandelion","minecraft:poppy","minecraft:blue_orchid","minecraft:allium","minecraft:azure_bluet","minecraft:red_tulip","minecraft:orange_tulip","minecraft:white_tulip","minecraft:pink_tulip","minecraft:oxeye_daisy","minecraft:cornflower","minecraft:lily_of_the_valley","minecraft:wither_rose"],"minecraft:boats":["minecraft:oak_boat","minecraft:spruce_boat","minecraft:birch_boat","minecraft:jungle_boat","minecraft:acacia_boat","minecraft:dark_oak_boat"],"minecraft:wooden_stairs":["minecraft:oak_stairs","minecraft:spruce_stairs","minecraft:birch_stairs","minecraft:jungle_stairs","minecraft:acacia_stairs","minecraft:dark_oak_stairs","minecraft:crimson_stairs","minecraft:warped_stairs"],"minecraft:anvil":["minecraft:anvil","minecraft:chipped_anvil","minecraft:damaged_anvil"],"minecraft:tall_flowers":["minecraft:sunflower","minecraft:lilac","minecraft:peony","minecraft:rose_bush"],"minecraft:gold_ores":["minecraft:gold_ore","minecraft:nether_gold_ore"],"minecraft:creeper_drop_music_discs":["minecraft:music_disc_13","minecraft:music_disc_cat","minecraft:music_disc_blocks","minecraft:music_disc_chirp","minecraft:music_disc_far","minecraft:music_disc_mall","minecraft:music_disc_mellohi","minecraft:music_disc_stal","minecraft:music_disc_strad","minecraft:music_disc_ward","minecraft:music_disc_11","minecraft:music_disc_wait"],"minecraft:logs":["minecraft:dark_oak_log","minecraft:dark_oak_wood","minecraft:stripped_dark_oak_log","minecraft:stripped_dark_oak_wood","minecraft:oak_log","minecraft:oak_wood","minecraft:stripped_oak_log","minecraft:stripped_oak_wood","minecraft:acacia_log","minecraft:acacia_wood","minecraft:stripped_acacia_log","minecraft:stripped_acacia_wood","minecraft:birch_log","minecraft:birch_wood","minecraft:stripped_birch_log","minecraft:stripped_birch_wood","minecraft:jungle_log","minecraft:jungle_wood","minecraft:stripped_jungle_log","minecraft:stripped_jungle_wood","minecraft:spruce_log","minecraft:spruce_wood","minecraft:stripped_spruce_log","minecraft:stripped_spruce_wood","minecraft:crimson_stem","minecraft:stripped_crimson_stem","minecraft:crimson_hyphae","minecraft:stripped_crimson_hyphae","minecraft:warped_stem","minecraft:stripped_warped_stem","minecraft:warped_hyphae","minecraft:stripped_warped_hyphae"],"minecraft:beacon_payment_items":["minecraft:netherite_ingot","minecraft:emerald","minecraft:diamond","minecraft:gold_ingot","minecraft:iron_ingot"],"minecraft:lectern_books":["minecraft:written_book","minecraft:writable_book"],"minecraft:piglin_repellents":["minecraft:soul_torch","minecraft:soul_lantern","minecraft:soul_campfire"],"minecraft:wooden_buttons":["minecraft:oak_button","minecraft:spruce_button","minecraft:birch_button","minecraft:jungle_button","minecraft:acacia_button","minecraft:dark_oak_button","minecraft:crimson_button","minecraft:warped_button"],"minecraft:wool":["minecraft:white_wool","minecraft:orange_wool","minecraft:magenta_wool","minecraft:light_blue_wool","minecraft:yellow_wool","minecraft:lime_wool","minecraft:pink_wool","minecraft:gray_wool","minecraft:light_gray_wool","minecraft:cyan_wool","minecraft:purple_wool","minecraft:blue_wool","minecraft:brown_wool","minecraft:green_wool","minecraft:red_wool","minecraft:black_wool"],"minecraft:banners":["minecraft:white_banner","minecraft:orange_banner","minecraft:magenta_banner","minecraft:light_blue_banner","minecraft:yellow_banner","minecraft:lime_banner","minecraft:pink_banner","minecraft:gray_banner","minecraft:light_gray_banner","minecraft:cyan_banner","minecraft:purple_banner","minecraft:blue_banner","minecraft:brown_banner","minecraft:green_banner","minecraft:red_banner","minecraft:black_banner"],"minecraft:doors":["minecraft:iron_door","minecraft:oak_door","minecraft:spruce_door","minecraft:birch_door","minecraft:jungle_door","minecraft:acacia_door","minecraft:dark_oak_door","minecraft:crimson_door","minecraft:warped_door"],"minecraft:fences":["minecraft:nether_brick_fence","minecraft:oak_fence","minecraft:acacia_fence","minecraft:dark_oak_fence","minecraft:spruce_fence","minecraft:birch_fence","minecraft:jungle_fence","minecraft:crimson_fence","minecraft:warped_fence"],"minecraft:warped_stems":["minecraft:warped_stem","minecraft:stripped_warped_stem","minecraft:warped_hyphae","minecraft:stripped_warped_hyphae"],"minecraft:trapdoors":["minecraft:iron_trapdoor","minecraft:acacia_trapdoor","minecraft:birch_trapdoor","minecraft:dark_oak_trapdoor","minecraft:jungle_trapdoor","minecraft:oak_trapdoor","minecraft:spruce_trapdoor","minecraft:crimson_trapdoor","minecraft:warped_trapdoor"],"minecraft:music_discs":["minecraft:music_disc_pigstep","minecraft:music_disc_13","minecraft:music_disc_cat","minecraft:music_disc_blocks","minecraft:music_disc_chirp","minecraft:music_disc_far","minecraft:music_disc_mall","minecraft:music_disc_mellohi","minecraft:music_disc_stal","minecraft:music_disc_strad","minecraft:music_disc_ward","minecraft:music_disc_11","minecraft:music_disc_wait"],"minecraft:leaves":["minecraft:jungle_leaves","minecraft:oak_leaves","minecraft:spruce_leaves","minecraft:dark_oak_leaves","minecraft:acacia_leaves","minecraft:birch_leaves"]},"entitytags":{"minecraft:impact_projectiles":["minecraft:snowball","minecraft:fireball","minecraft:small_fireball","minecraft:egg","minecraft:trident","minecraft:dragon_fireball","minecraft:wither_skull","minecraft:arrow","minecraft:spectral_arrow"],"minecraft:raiders":["minecraft:evoker","minecraft:pillager","minecraft:ravager","minecraft:vindicator","minecraft:illusioner","minecraft:witch"],"minecraft:skeletons":["minecraft:skeleton","minecraft:stray","minecraft:wither_skeleton"],"minecraft:arrows":["minecraft:arrow","minecraft:spectral_arrow"],"minecraft:beehive_inhabitors":["minecraft:bee"]}} \ No newline at end of file +{ + "blocks": { + "minecraft:acacia_button": { + "properties": { + "face": { + "values": [ + "floor", + "wall", + "ceiling" + ], + "type": "enum" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:acacia_button[face=wall,facing=north,powered=false]" + }, + "minecraft:acacia_door": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + }, + "hinge": { + "values": [ + "left", + "right" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:acacia_door[facing=north,half=lower,hinge=left,open=false,powered=false]" + }, + "minecraft:acacia_fence": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:acacia_fence[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:acacia_fence_gate": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "in_wall": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:acacia_fence_gate[facing=north,in_wall=false,open=false,powered=false]" + }, + "minecraft:acacia_leaves": { + "properties": { + "distance": { + "values": [ + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ], + "type": "int" + }, + "persistent": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:acacia_leaves[distance=7,persistent=false]" + }, + "minecraft:acacia_log": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:acacia_log[axis=y]" + }, + "minecraft:acacia_planks": { + "properties": {}, + "defaultstate": "minecraft:acacia_planks" + }, + "minecraft:acacia_pressure_plate": { + "properties": { + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:acacia_pressure_plate[powered=false]" + }, + "minecraft:acacia_sapling": { + "properties": { + "stage": { + "values": [ + "0", + "1" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:acacia_sapling[stage=0]" + }, + "minecraft:acacia_sign": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:acacia_sign[rotation=0,waterlogged=false]" + }, + "minecraft:acacia_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:acacia_slab[type=bottom,waterlogged=false]" + }, + "minecraft:acacia_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:acacia_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:acacia_trapdoor": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:acacia_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]" + }, + "minecraft:acacia_wall_sign": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:acacia_wall_sign[facing=north,waterlogged=false]" + }, + "minecraft:acacia_wood": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:acacia_wood[axis=y]" + }, + "minecraft:activator_rail": { + "properties": { + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "shape": { + "values": [ + "north_south", + "east_west", + "ascending_east", + "ascending_west", + "ascending_north", + "ascending_south" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:activator_rail[powered=false,shape=north_south]" + }, + "minecraft:air": { + "properties": {}, + "defaultstate": "minecraft:air" + }, + "minecraft:allium": { + "properties": {}, + "defaultstate": "minecraft:allium" + }, + "minecraft:ancient_debris": { + "properties": {}, + "defaultstate": "minecraft:ancient_debris" + }, + "minecraft:andesite": { + "properties": {}, + "defaultstate": "minecraft:andesite" + }, + "minecraft:andesite_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:andesite_slab[type=bottom,waterlogged=false]" + }, + "minecraft:andesite_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:andesite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:andesite_wall": { + "properties": { + "east": { + "values": [ + "none", + "low", + "tall" + ], + "type": "enum" + }, + "north": { + "values": [ + "none", + "low", + "tall" + ], + "type": "enum" + }, + "south": { + "values": [ + "none", + "low", + "tall" + ], + "type": "enum" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "none", + "low", + "tall" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:andesite_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]" + }, + "minecraft:anvil": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:anvil[facing=north]" + }, + "minecraft:attached_melon_stem": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:attached_melon_stem[facing=north]" + }, + "minecraft:attached_pumpkin_stem": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:attached_pumpkin_stem[facing=north]" + }, + "minecraft:azure_bluet": { + "properties": {}, + "defaultstate": "minecraft:azure_bluet" + }, + "minecraft:bamboo": { + "properties": { + "age": { + "values": [ + "0", + "1" + ], + "type": "int" + }, + "leaves": { + "values": [ + "none", + "small", + "large" + ], + "type": "enum" + }, + "stage": { + "values": [ + "0", + "1" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:bamboo[age=0,leaves=none,stage=0]" + }, + "minecraft:bamboo_sapling": { + "properties": {}, + "defaultstate": "minecraft:bamboo_sapling" + }, + "minecraft:barrel": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:barrel[facing=north,open=false]" + }, + "minecraft:barrier": { + "properties": {}, + "defaultstate": "minecraft:barrier" + }, + "minecraft:basalt": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:basalt[axis=y]" + }, + "minecraft:beacon": { + "properties": {}, + "defaultstate": "minecraft:beacon" + }, + "minecraft:bedrock": { + "properties": {}, + "defaultstate": "minecraft:bedrock" + }, + "minecraft:bee_nest": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "honey_level": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:bee_nest[facing=north,honey_level=0]" + }, + "minecraft:beehive": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "honey_level": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:beehive[facing=north,honey_level=0]" + }, + "minecraft:beetroots": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:beetroots[age=0]" + }, + "minecraft:bell": { + "properties": { + "attachment": { + "values": [ + "floor", + "ceiling", + "single_wall", + "double_wall" + ], + "type": "enum" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:bell[attachment=floor,facing=north,powered=false]" + }, + "minecraft:birch_button": { + "properties": { + "face": { + "values": [ + "floor", + "wall", + "ceiling" + ], + "type": "enum" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:birch_button[face=wall,facing=north,powered=false]" + }, + "minecraft:birch_door": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + }, + "hinge": { + "values": [ + "left", + "right" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:birch_door[facing=north,half=lower,hinge=left,open=false,powered=false]" + }, + "minecraft:birch_fence": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:birch_fence[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:birch_fence_gate": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "in_wall": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:birch_fence_gate[facing=north,in_wall=false,open=false,powered=false]" + }, + "minecraft:birch_leaves": { + "properties": { + "distance": { + "values": [ + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ], + "type": "int" + }, + "persistent": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:birch_leaves[distance=7,persistent=false]" + }, + "minecraft:birch_log": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:birch_log[axis=y]" + }, + "minecraft:birch_planks": { + "properties": {}, + "defaultstate": "minecraft:birch_planks" + }, + "minecraft:birch_pressure_plate": { + "properties": { + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:birch_pressure_plate[powered=false]" + }, + "minecraft:birch_sapling": { + "properties": { + "stage": { + "values": [ + "0", + "1" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:birch_sapling[stage=0]" + }, + "minecraft:birch_sign": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:birch_sign[rotation=0,waterlogged=false]" + }, + "minecraft:birch_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:birch_slab[type=bottom,waterlogged=false]" + }, + "minecraft:birch_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:birch_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:birch_trapdoor": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:birch_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]" + }, + "minecraft:birch_wall_sign": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:birch_wall_sign[facing=north,waterlogged=false]" + }, + "minecraft:birch_wood": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:birch_wood[axis=y]" + }, + "minecraft:black_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:black_banner[rotation=0]" + }, + "minecraft:black_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:black_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:black_carpet": { + "properties": {}, + "defaultstate": "minecraft:black_carpet" + }, + "minecraft:black_concrete": { + "properties": {}, + "defaultstate": "minecraft:black_concrete" + }, + "minecraft:black_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:black_concrete_powder" + }, + "minecraft:black_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:black_glazed_terracotta[facing=north]" + }, + "minecraft:black_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:black_shulker_box[facing=up]" + }, + "minecraft:black_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:black_stained_glass" + }, + "minecraft:black_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:black_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:black_terracotta": { + "properties": {}, + "defaultstate": "minecraft:black_terracotta" + }, + "minecraft:black_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:black_wall_banner[facing=north]" + }, + "minecraft:black_wool": { + "properties": {}, + "defaultstate": "minecraft:black_wool" + }, + "minecraft:blackstone": { + "properties": {}, + "defaultstate": "minecraft:blackstone" + }, + "minecraft:blackstone_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:blackstone_slab[type=bottom,waterlogged=false]" + }, + "minecraft:blackstone_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:blackstone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:blackstone_wall": { + "properties": { + "east": { + "values": [ + "none", + "low", + "tall" + ], + "type": "enum" + }, + "north": { + "values": [ + "none", + "low", + "tall" + ], + "type": "enum" + }, + "south": { + "values": [ + "none", + "low", + "tall" + ], + "type": "enum" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "none", + "low", + "tall" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:blackstone_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]" + }, + "minecraft:blast_furnace": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "lit": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:blast_furnace[facing=north,lit=false]" + }, + "minecraft:blue_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:blue_banner[rotation=0]" + }, + "minecraft:blue_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:blue_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:blue_carpet": { + "properties": {}, + "defaultstate": "minecraft:blue_carpet" + }, + "minecraft:blue_concrete": { + "properties": {}, + "defaultstate": "minecraft:blue_concrete" + }, + "minecraft:blue_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:blue_concrete_powder" + }, + "minecraft:blue_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:blue_glazed_terracotta[facing=north]" + }, + "minecraft:blue_ice": { + "properties": {}, + "defaultstate": "minecraft:blue_ice" + }, + "minecraft:blue_orchid": { + "properties": {}, + "defaultstate": "minecraft:blue_orchid" + }, + "minecraft:blue_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:blue_shulker_box[facing=up]" + }, + "minecraft:blue_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:blue_stained_glass" + }, + "minecraft:blue_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:blue_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:blue_terracotta": { + "properties": {}, + "defaultstate": "minecraft:blue_terracotta" + }, + "minecraft:blue_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:blue_wall_banner[facing=north]" + }, + "minecraft:blue_wool": { + "properties": {}, + "defaultstate": "minecraft:blue_wool" + }, + "minecraft:bone_block": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:bone_block[axis=y]" + }, + "minecraft:bookshelf": { + "properties": {}, + "defaultstate": "minecraft:bookshelf" + }, + "minecraft:brain_coral": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:brain_coral[waterlogged=true]" + }, + "minecraft:brain_coral_block": { + "properties": {}, + "defaultstate": "minecraft:brain_coral_block" + }, + "minecraft:brain_coral_fan": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:brain_coral_fan[waterlogged=true]" + }, + "minecraft:brain_coral_wall_fan": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:brain_coral_wall_fan[facing=north,waterlogged=true]" + }, + "minecraft:brewing_stand": { + "properties": { + "has_bottle_0": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "has_bottle_1": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "has_bottle_2": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:brewing_stand[has_bottle_0=false,has_bottle_1=false,has_bottle_2=false]" + }, + "minecraft:brick_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:brick_slab[type=bottom,waterlogged=false]" + }, + "minecraft:brick_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:brick_wall": { + "properties": { + "east": { + "values": [ + "none", + "low", + "tall" + ], + "type": "enum" + }, + "north": { + "values": [ + "none", + "low", + "tall" + ], + "type": "enum" + }, + "south": { + "values": [ + "none", + "low", + "tall" + ], + "type": "enum" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "none", + "low", + "tall" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:brick_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]" + }, + "minecraft:bricks": { + "properties": {}, + "defaultstate": "minecraft:bricks" + }, + "minecraft:brown_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:brown_banner[rotation=0]" + }, + "minecraft:brown_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:brown_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:brown_carpet": { + "properties": {}, + "defaultstate": "minecraft:brown_carpet" + }, + "minecraft:brown_concrete": { + "properties": {}, + "defaultstate": "minecraft:brown_concrete" + }, + "minecraft:brown_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:brown_concrete_powder" + }, + "minecraft:brown_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:brown_glazed_terracotta[facing=north]" + }, + "minecraft:brown_mushroom": { + "properties": {}, + "defaultstate": "minecraft:brown_mushroom" + }, + "minecraft:brown_mushroom_block": { + "properties": { + "down": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:brown_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true]" + }, + "minecraft:brown_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:brown_shulker_box[facing=up]" + }, + "minecraft:brown_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:brown_stained_glass" + }, + "minecraft:brown_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:brown_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:brown_terracotta": { + "properties": {}, + "defaultstate": "minecraft:brown_terracotta" + }, + "minecraft:brown_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:brown_wall_banner[facing=north]" + }, + "minecraft:brown_wool": { + "properties": {}, + "defaultstate": "minecraft:brown_wool" + }, + "minecraft:bubble_column": { + "properties": { + "drag": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:bubble_column[drag=true]" + }, + "minecraft:bubble_coral": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:bubble_coral[waterlogged=true]" + }, + "minecraft:bubble_coral_block": { + "properties": {}, + "defaultstate": "minecraft:bubble_coral_block" + }, + "minecraft:bubble_coral_fan": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:bubble_coral_fan[waterlogged=true]" + }, + "minecraft:bubble_coral_wall_fan": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:bubble_coral_wall_fan[facing=north,waterlogged=true]" + }, + "minecraft:cactus": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:cactus[age=0]" + }, + "minecraft:cake": { + "properties": { + "bites": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:cake[bites=0]" + }, + "minecraft:campfire": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "lit": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "signal_fire": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:campfire[facing=north,lit=true,signal_fire=false,waterlogged=false]" + }, + "minecraft:carrots": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:carrots[age=0]" + }, + "minecraft:cartography_table": { + "properties": {}, + "defaultstate": "minecraft:cartography_table" + }, + "minecraft:carved_pumpkin": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:carved_pumpkin[facing=north]" + }, + "minecraft:cauldron": { + "properties": { + "level": { + "values": [ + "0", + "1", + "2", + "3" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:cauldron[level=0]" + }, + "minecraft:cave_air": { + "properties": {}, + "defaultstate": "minecraft:cave_air" + }, + "minecraft:chain": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:chain[waterlogged=false]" + }, + "minecraft:chain_command_block": { + "properties": { + "conditional": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:chain_command_block[conditional=false,facing=north]" + }, + "minecraft:chest": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "type": { + "values": [ + "single", + "left", + "right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:chest[facing=north,type=single,waterlogged=false]" + }, + "minecraft:chipped_anvil": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:chipped_anvil[facing=north]" + }, + "minecraft:chiseled_nether_bricks": { + "properties": {}, + "defaultstate": "minecraft:chiseled_nether_bricks" + }, + "minecraft:chiseled_polished_blackstone": { + "properties": {}, + "defaultstate": "minecraft:chiseled_polished_blackstone" + }, + "minecraft:chiseled_quartz_block": { + "properties": {}, + "defaultstate": "minecraft:chiseled_quartz_block" + }, + "minecraft:chiseled_red_sandstone": { + "properties": {}, + "defaultstate": "minecraft:chiseled_red_sandstone" + }, + "minecraft:chiseled_sandstone": { + "properties": {}, + "defaultstate": "minecraft:chiseled_sandstone" + }, + "minecraft:chiseled_stone_bricks": { + "properties": {}, + "defaultstate": "minecraft:chiseled_stone_bricks" + }, + "minecraft:chorus_flower": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:chorus_flower[age=0]" + }, + "minecraft:chorus_plant": { + "properties": { + "down": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:chorus_plant[down=false,east=false,north=false,south=false,up=false,west=false]" + }, + "minecraft:clay": { + "properties": {}, + "defaultstate": "minecraft:clay" + }, + "minecraft:coal_block": { + "properties": {}, + "defaultstate": "minecraft:coal_block" + }, + "minecraft:coal_ore": { + "properties": {}, + "defaultstate": "minecraft:coal_ore" + }, + "minecraft:coarse_dirt": { + "properties": {}, + "defaultstate": "minecraft:coarse_dirt" + }, + "minecraft:cobblestone": { + "properties": {}, + "defaultstate": "minecraft:cobblestone" + }, + "minecraft:cobblestone_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:cobblestone_slab[type=bottom,waterlogged=false]" + }, + "minecraft:cobblestone_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:cobblestone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:cobblestone_wall": { + "properties": { + "east": { + "values": [ + "none", + "low", + "tall" + ], + "type": "enum" + }, + "north": { + "values": [ + "none", + "low", + "tall" + ], + "type": "enum" + }, + "south": { + "values": [ + "none", + "low", + "tall" + ], + "type": "enum" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "none", + "low", + "tall" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:cobblestone_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]" + }, + "minecraft:cobweb": { + "properties": {}, + "defaultstate": "minecraft:cobweb" + }, + "minecraft:cocoa": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2" + ], + "type": "int" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:cocoa[age=0,facing=north]" + }, + "minecraft:command_block": { + "properties": { + "conditional": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:command_block[conditional=false,facing=north]" + }, + "minecraft:comparator": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "mode": { + "values": [ + "compare", + "subtract" + ], + "type": "enum" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:comparator[facing=north,mode=compare,powered=false]" + }, + "minecraft:composter": { + "properties": { + "level": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:composter[level=0]" + }, + "minecraft:conduit": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:conduit[waterlogged=true]" + }, + "minecraft:cornflower": { + "properties": {}, + "defaultstate": "minecraft:cornflower" + }, + "minecraft:cracked_nether_bricks": { + "properties": {}, + "defaultstate": "minecraft:cracked_nether_bricks" + }, + "minecraft:cracked_polished_blackstone_bricks": { + "properties": {}, + "defaultstate": "minecraft:cracked_polished_blackstone_bricks" + }, + "minecraft:cracked_stone_bricks": { + "properties": {}, + "defaultstate": "minecraft:cracked_stone_bricks" + }, + "minecraft:crafting_table": { + "properties": {}, + "defaultstate": "minecraft:crafting_table" + }, + "minecraft:creeper_head": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:creeper_head[rotation=0]" + }, + "minecraft:creeper_wall_head": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:creeper_wall_head[facing=north]" + }, + "minecraft:crimson_button": { + "properties": { + "face": { + "values": [ + "floor", + "wall", + "ceiling" + ], + "type": "enum" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:crimson_button[face=wall,facing=north,powered=false]" + }, + "minecraft:crimson_door": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + }, + "hinge": { + "values": [ + "left", + "right" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:crimson_door[facing=north,half=lower,hinge=left,open=false,powered=false]" + }, + "minecraft:crimson_fence": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:crimson_fence[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:crimson_fence_gate": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "in_wall": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:crimson_fence_gate[facing=north,in_wall=false,open=false,powered=false]" + }, + "minecraft:crimson_fungus": { + "properties": {}, + "defaultstate": "minecraft:crimson_fungus" + }, + "minecraft:crimson_hyphae": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:crimson_hyphae[axis=y]" + }, + "minecraft:crimson_nylium": { + "properties": {}, + "defaultstate": "minecraft:crimson_nylium" + }, + "minecraft:crimson_planks": { + "properties": {}, + "defaultstate": "minecraft:crimson_planks" + }, + "minecraft:crimson_pressure_plate": { + "properties": { + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:crimson_pressure_plate[powered=false]" + }, + "minecraft:crimson_roots": { + "properties": {}, + "defaultstate": "minecraft:crimson_roots" + }, + "minecraft:crimson_sign": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:crimson_sign[rotation=0,waterlogged=false]" + }, + "minecraft:crimson_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:crimson_slab[type=bottom,waterlogged=false]" + }, + "minecraft:crimson_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:crimson_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:crimson_stem": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:crimson_stem[axis=y]" + }, + "minecraft:crimson_trapdoor": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:crimson_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]" + }, + "minecraft:crimson_wall_sign": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:crimson_wall_sign[facing=north,waterlogged=false]" + }, + "minecraft:crying_obsidian": { + "properties": {}, + "defaultstate": "minecraft:crying_obsidian" + }, + "minecraft:cut_red_sandstone": { + "properties": {}, + "defaultstate": "minecraft:cut_red_sandstone" + }, + "minecraft:cut_red_sandstone_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:cut_red_sandstone_slab[type=bottom,waterlogged=false]" + }, + "minecraft:cut_sandstone": { + "properties": {}, + "defaultstate": "minecraft:cut_sandstone" + }, + "minecraft:cut_sandstone_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:cut_sandstone_slab[type=bottom,waterlogged=false]" + }, + "minecraft:cyan_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:cyan_banner[rotation=0]" + }, + "minecraft:cyan_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:cyan_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:cyan_carpet": { + "properties": {}, + "defaultstate": "minecraft:cyan_carpet" + }, + "minecraft:cyan_concrete": { + "properties": {}, + "defaultstate": "minecraft:cyan_concrete" + }, + "minecraft:cyan_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:cyan_concrete_powder" + }, + "minecraft:cyan_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:cyan_glazed_terracotta[facing=north]" + }, + "minecraft:cyan_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:cyan_shulker_box[facing=up]" + }, + "minecraft:cyan_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:cyan_stained_glass" + }, + "minecraft:cyan_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:cyan_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:cyan_terracotta": { + "properties": {}, + "defaultstate": "minecraft:cyan_terracotta" + }, + "minecraft:cyan_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:cyan_wall_banner[facing=north]" + }, + "minecraft:cyan_wool": { + "properties": {}, + "defaultstate": "minecraft:cyan_wool" + }, + "minecraft:damaged_anvil": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:damaged_anvil[facing=north]" + }, + "minecraft:dandelion": { + "properties": {}, + "defaultstate": "minecraft:dandelion" + }, + "minecraft:dark_oak_button": { + "properties": { + "face": { + "values": [ + "floor", + "wall", + "ceiling" + ], + "type": "enum" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dark_oak_button[face=wall,facing=north,powered=false]" + }, + "minecraft:dark_oak_door": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + }, + "hinge": { + "values": [ + "left", + "right" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dark_oak_door[facing=north,half=lower,hinge=left,open=false,powered=false]" + }, + "minecraft:dark_oak_fence": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dark_oak_fence[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:dark_oak_fence_gate": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "in_wall": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dark_oak_fence_gate[facing=north,in_wall=false,open=false,powered=false]" + }, + "minecraft:dark_oak_leaves": { + "properties": { + "distance": { + "values": [ + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ], + "type": "int" + }, + "persistent": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dark_oak_leaves[distance=7,persistent=false]" + }, + "minecraft:dark_oak_log": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:dark_oak_log[axis=y]" + }, + "minecraft:dark_oak_planks": { + "properties": {}, + "defaultstate": "minecraft:dark_oak_planks" + }, + "minecraft:dark_oak_pressure_plate": { + "properties": { + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dark_oak_pressure_plate[powered=false]" + }, + "minecraft:dark_oak_sapling": { + "properties": { + "stage": { + "values": [ + "0", + "1" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:dark_oak_sapling[stage=0]" + }, + "minecraft:dark_oak_sign": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dark_oak_sign[rotation=0,waterlogged=false]" + }, + "minecraft:dark_oak_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dark_oak_slab[type=bottom,waterlogged=false]" + }, + "minecraft:dark_oak_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dark_oak_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:dark_oak_trapdoor": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dark_oak_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]" + }, + "minecraft:dark_oak_wall_sign": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dark_oak_wall_sign[facing=north,waterlogged=false]" + }, + "minecraft:dark_oak_wood": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:dark_oak_wood[axis=y]" + }, + "minecraft:dark_prismarine": { + "properties": {}, + "defaultstate": "minecraft:dark_prismarine" + }, + "minecraft:dark_prismarine_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dark_prismarine_slab[type=bottom,waterlogged=false]" + }, + "minecraft:dark_prismarine_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dark_prismarine_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:daylight_detector": { + "properties": { + "inverted": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "power": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:daylight_detector[inverted=false,power=0]" + }, + "minecraft:dead_brain_coral": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_brain_coral[waterlogged=true]" + }, + "minecraft:dead_brain_coral_block": { + "properties": {}, + "defaultstate": "minecraft:dead_brain_coral_block" + }, + "minecraft:dead_brain_coral_fan": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_brain_coral_fan[waterlogged=true]" + }, + "minecraft:dead_brain_coral_wall_fan": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_brain_coral_wall_fan[facing=north,waterlogged=true]" + }, + "minecraft:dead_bubble_coral": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_bubble_coral[waterlogged=true]" + }, + "minecraft:dead_bubble_coral_block": { + "properties": {}, + "defaultstate": "minecraft:dead_bubble_coral_block" + }, + "minecraft:dead_bubble_coral_fan": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_bubble_coral_fan[waterlogged=true]" + }, + "minecraft:dead_bubble_coral_wall_fan": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_bubble_coral_wall_fan[facing=north,waterlogged=true]" + }, + "minecraft:dead_bush": { + "properties": {}, + "defaultstate": "minecraft:dead_bush" + }, + "minecraft:dead_fire_coral": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_fire_coral[waterlogged=true]" + }, + "minecraft:dead_fire_coral_block": { + "properties": {}, + "defaultstate": "minecraft:dead_fire_coral_block" + }, + "minecraft:dead_fire_coral_fan": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_fire_coral_fan[waterlogged=true]" + }, + "minecraft:dead_fire_coral_wall_fan": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_fire_coral_wall_fan[facing=north,waterlogged=true]" + }, + "minecraft:dead_horn_coral": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_horn_coral[waterlogged=true]" + }, + "minecraft:dead_horn_coral_block": { + "properties": {}, + "defaultstate": "minecraft:dead_horn_coral_block" + }, + "minecraft:dead_horn_coral_fan": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_horn_coral_fan[waterlogged=true]" + }, + "minecraft:dead_horn_coral_wall_fan": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_horn_coral_wall_fan[facing=north,waterlogged=true]" + }, + "minecraft:dead_tube_coral": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_tube_coral[waterlogged=true]" + }, + "minecraft:dead_tube_coral_block": { + "properties": {}, + "defaultstate": "minecraft:dead_tube_coral_block" + }, + "minecraft:dead_tube_coral_fan": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_tube_coral_fan[waterlogged=true]" + }, + "minecraft:dead_tube_coral_wall_fan": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dead_tube_coral_wall_fan[facing=north,waterlogged=true]" + }, + "minecraft:detector_rail": { + "properties": { + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "shape": { + "values": [ + "north_south", + "east_west", + "ascending_east", + "ascending_west", + "ascending_north", + "ascending_south" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:detector_rail[powered=false,shape=north_south]" + }, + "minecraft:diamond_block": { + "properties": {}, + "defaultstate": "minecraft:diamond_block" + }, + "minecraft:diamond_ore": { + "properties": {}, + "defaultstate": "minecraft:diamond_ore" + }, + "minecraft:diorite": { + "properties": {}, + "defaultstate": "minecraft:diorite" + }, + "minecraft:diorite_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:diorite_slab[type=bottom,waterlogged=false]" + }, + "minecraft:diorite_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:diorite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:diorite_wall": { + "properties": { + "east": { + "values": [ + "none", + "low", + "tall" + ], + "type": "enum" + }, + "north": { + "values": [ + "none", + "low", + "tall" + ], + "type": "enum" + }, + "south": { + "values": [ + "none", + "low", + "tall" + ], + "type": "enum" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "none", + "low", + "tall" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:diorite_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]" + }, + "minecraft:dirt": { + "properties": {}, + "defaultstate": "minecraft:dirt" + }, + "minecraft:dispenser": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + }, + "triggered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dispenser[facing=north,triggered=false]" + }, + "minecraft:dragon_egg": { + "properties": {}, + "defaultstate": "minecraft:dragon_egg" + }, + "minecraft:dragon_head": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:dragon_head[rotation=0]" + }, + "minecraft:dragon_wall_head": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:dragon_wall_head[facing=north]" + }, + "minecraft:dried_kelp_block": { + "properties": {}, + "defaultstate": "minecraft:dried_kelp_block" + }, + "minecraft:dropper": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + }, + "triggered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:dropper[facing=north,triggered=false]" + }, + "minecraft:emerald_block": { + "properties": {}, + "defaultstate": "minecraft:emerald_block" + }, + "minecraft:emerald_ore": { + "properties": {}, + "defaultstate": "minecraft:emerald_ore" + }, + "minecraft:enchanting_table": { + "properties": {}, + "defaultstate": "minecraft:enchanting_table" + }, + "minecraft:end_gateway": { + "properties": {}, + "defaultstate": "minecraft:end_gateway" + }, + "minecraft:end_portal": { + "properties": {}, + "defaultstate": "minecraft:end_portal" + }, + "minecraft:end_portal_frame": { + "properties": { + "eye": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:end_portal_frame[eye=false,facing=north]" + }, + "minecraft:end_rod": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:end_rod[facing=up]" + }, + "minecraft:end_stone": { + "properties": {}, + "defaultstate": "minecraft:end_stone" + }, + "minecraft:end_stone_brick_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:end_stone_brick_slab[type=bottom,waterlogged=false]" + }, + "minecraft:end_stone_brick_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:end_stone_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:end_stone_brick_wall": { + "properties": { + "east": { + "values": [ + "none", + "low", + "tall" + ], + "type": "enum" + }, + "north": { + "values": [ + "none", + "low", + "tall" + ], + "type": "enum" + }, + "south": { + "values": [ + "none", + "low", + "tall" + ], + "type": "enum" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "none", + "low", + "tall" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:end_stone_brick_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]" + }, + "minecraft:end_stone_bricks": { + "properties": {}, + "defaultstate": "minecraft:end_stone_bricks" + }, + "minecraft:ender_chest": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:ender_chest[facing=north,waterlogged=false]" + }, + "minecraft:farmland": { + "properties": { + "moisture": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:farmland[moisture=0]" + }, + "minecraft:fern": { + "properties": {}, + "defaultstate": "minecraft:fern" + }, + "minecraft:fire": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + }, + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:fire[age=0,east=false,north=false,south=false,up=false,west=false]" + }, + "minecraft:fire_coral": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:fire_coral[waterlogged=true]" + }, + "minecraft:fire_coral_block": { + "properties": {}, + "defaultstate": "minecraft:fire_coral_block" + }, + "minecraft:fire_coral_fan": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:fire_coral_fan[waterlogged=true]" + }, + "minecraft:fire_coral_wall_fan": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:fire_coral_wall_fan[facing=north,waterlogged=true]" + }, + "minecraft:fletching_table": { + "properties": {}, + "defaultstate": "minecraft:fletching_table" + }, + "minecraft:flower_pot": { + "properties": {}, + "defaultstate": "minecraft:flower_pot" + }, + "minecraft:frosted_ice": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:frosted_ice[age=0]" + }, + "minecraft:furnace": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "lit": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:furnace[facing=north,lit=false]" + }, + "minecraft:gilded_blackstone": { + "properties": {}, + "defaultstate": "minecraft:gilded_blackstone" + }, + "minecraft:glass": { + "properties": {}, + "defaultstate": "minecraft:glass" + }, + "minecraft:glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:glowstone": { + "properties": {}, + "defaultstate": "minecraft:glowstone" + }, + "minecraft:gold_block": { + "properties": {}, + "defaultstate": "minecraft:gold_block" + }, + "minecraft:gold_ore": { + "properties": {}, + "defaultstate": "minecraft:gold_ore" + }, + "minecraft:granite": { + "properties": {}, + "defaultstate": "minecraft:granite" + }, + "minecraft:granite_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:granite_slab[type=bottom,waterlogged=false]" + }, + "minecraft:granite_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:granite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:granite_wall": { + "properties": { + "east": { + "values": [ + "none", + "low", + "tall" + ], + "type": "enum" + }, + "north": { + "values": [ + "none", + "low", + "tall" + ], + "type": "enum" + }, + "south": { + "values": [ + "none", + "low", + "tall" + ], + "type": "enum" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "none", + "low", + "tall" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:granite_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]" + }, + "minecraft:grass": { + "properties": {}, + "defaultstate": "minecraft:grass" + }, + "minecraft:grass_block": { + "properties": { + "snowy": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:grass_block[snowy=false]" + }, + "minecraft:grass_path": { + "properties": {}, + "defaultstate": "minecraft:grass_path" + }, + "minecraft:gravel": { + "properties": {}, + "defaultstate": "minecraft:gravel" + }, + "minecraft:gray_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:gray_banner[rotation=0]" + }, + "minecraft:gray_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:gray_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:gray_carpet": { + "properties": {}, + "defaultstate": "minecraft:gray_carpet" + }, + "minecraft:gray_concrete": { + "properties": {}, + "defaultstate": "minecraft:gray_concrete" + }, + "minecraft:gray_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:gray_concrete_powder" + }, + "minecraft:gray_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:gray_glazed_terracotta[facing=north]" + }, + "minecraft:gray_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:gray_shulker_box[facing=up]" + }, + "minecraft:gray_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:gray_stained_glass" + }, + "minecraft:gray_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:gray_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:gray_terracotta": { + "properties": {}, + "defaultstate": "minecraft:gray_terracotta" + }, + "minecraft:gray_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:gray_wall_banner[facing=north]" + }, + "minecraft:gray_wool": { + "properties": {}, + "defaultstate": "minecraft:gray_wool" + }, + "minecraft:green_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:green_banner[rotation=0]" + }, + "minecraft:green_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:green_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:green_carpet": { + "properties": {}, + "defaultstate": "minecraft:green_carpet" + }, + "minecraft:green_concrete": { + "properties": {}, + "defaultstate": "minecraft:green_concrete" + }, + "minecraft:green_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:green_concrete_powder" + }, + "minecraft:green_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:green_glazed_terracotta[facing=north]" + }, + "minecraft:green_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:green_shulker_box[facing=up]" + }, + "minecraft:green_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:green_stained_glass" + }, + "minecraft:green_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:green_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:green_terracotta": { + "properties": {}, + "defaultstate": "minecraft:green_terracotta" + }, + "minecraft:green_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:green_wall_banner[facing=north]" + }, + "minecraft:green_wool": { + "properties": {}, + "defaultstate": "minecraft:green_wool" + }, + "minecraft:grindstone": { + "properties": { + "face": { + "values": [ + "floor", + "wall", + "ceiling" + ], + "type": "enum" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:grindstone[face=wall,facing=north]" + }, + "minecraft:hay_block": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:hay_block[axis=y]" + }, + "minecraft:heavy_weighted_pressure_plate": { + "properties": { + "power": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:heavy_weighted_pressure_plate[power=0]" + }, + "minecraft:honey_block": { + "properties": {}, + "defaultstate": "minecraft:honey_block" + }, + "minecraft:honeycomb_block": { + "properties": {}, + "defaultstate": "minecraft:honeycomb_block" + }, + "minecraft:hopper": { + "properties": { + "enabled": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "facing": { + "values": [ + "down", + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:hopper[enabled=true,facing=down]" + }, + "minecraft:horn_coral": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:horn_coral[waterlogged=true]" + }, + "minecraft:horn_coral_block": { + "properties": {}, + "defaultstate": "minecraft:horn_coral_block" + }, + "minecraft:horn_coral_fan": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:horn_coral_fan[waterlogged=true]" + }, + "minecraft:horn_coral_wall_fan": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:horn_coral_wall_fan[facing=north,waterlogged=true]" + }, + "minecraft:ice": { + "properties": {}, + "defaultstate": "minecraft:ice" + }, + "minecraft:infested_chiseled_stone_bricks": { + "properties": {}, + "defaultstate": "minecraft:infested_chiseled_stone_bricks" + }, + "minecraft:infested_cobblestone": { + "properties": {}, + "defaultstate": "minecraft:infested_cobblestone" + }, + "minecraft:infested_cracked_stone_bricks": { + "properties": {}, + "defaultstate": "minecraft:infested_cracked_stone_bricks" + }, + "minecraft:infested_mossy_stone_bricks": { + "properties": {}, + "defaultstate": "minecraft:infested_mossy_stone_bricks" + }, + "minecraft:infested_stone": { + "properties": {}, + "defaultstate": "minecraft:infested_stone" + }, + "minecraft:infested_stone_bricks": { + "properties": {}, + "defaultstate": "minecraft:infested_stone_bricks" + }, + "minecraft:iron_bars": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:iron_bars[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:iron_block": { + "properties": {}, + "defaultstate": "minecraft:iron_block" + }, + "minecraft:iron_door": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + }, + "hinge": { + "values": [ + "left", + "right" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:iron_door[facing=north,half=lower,hinge=left,open=false,powered=false]" + }, + "minecraft:iron_ore": { + "properties": {}, + "defaultstate": "minecraft:iron_ore" + }, + "minecraft:iron_trapdoor": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:iron_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]" + }, + "minecraft:jack_o_lantern": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:jack_o_lantern[facing=north]" + }, + "minecraft:jigsaw": { + "properties": { + "orientation": { + "values": [ + "down_east", + "down_north", + "down_south", + "down_west", + "up_east", + "up_north", + "up_south", + "up_west", + "west_up", + "east_up", + "north_up", + "south_up" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:jigsaw[orientation=north_up]" + }, + "minecraft:jukebox": { + "properties": { + "has_record": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:jukebox[has_record=false]" + }, + "minecraft:jungle_button": { + "properties": { + "face": { + "values": [ + "floor", + "wall", + "ceiling" + ], + "type": "enum" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:jungle_button[face=wall,facing=north,powered=false]" + }, + "minecraft:jungle_door": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + }, + "hinge": { + "values": [ + "left", + "right" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:jungle_door[facing=north,half=lower,hinge=left,open=false,powered=false]" + }, + "minecraft:jungle_fence": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:jungle_fence[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:jungle_fence_gate": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "in_wall": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:jungle_fence_gate[facing=north,in_wall=false,open=false,powered=false]" + }, + "minecraft:jungle_leaves": { + "properties": { + "distance": { + "values": [ + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ], + "type": "int" + }, + "persistent": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:jungle_leaves[distance=7,persistent=false]" + }, + "minecraft:jungle_log": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:jungle_log[axis=y]" + }, + "minecraft:jungle_planks": { + "properties": {}, + "defaultstate": "minecraft:jungle_planks" + }, + "minecraft:jungle_pressure_plate": { + "properties": { + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:jungle_pressure_plate[powered=false]" + }, + "minecraft:jungle_sapling": { + "properties": { + "stage": { + "values": [ + "0", + "1" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:jungle_sapling[stage=0]" + }, + "minecraft:jungle_sign": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:jungle_sign[rotation=0,waterlogged=false]" + }, + "minecraft:jungle_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:jungle_slab[type=bottom,waterlogged=false]" + }, + "minecraft:jungle_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:jungle_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:jungle_trapdoor": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:jungle_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]" + }, + "minecraft:jungle_wall_sign": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:jungle_wall_sign[facing=north,waterlogged=false]" + }, + "minecraft:jungle_wood": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:jungle_wood[axis=y]" + }, + "minecraft:kelp": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15", + "16", + "17", + "18", + "19", + "20", + "21", + "22", + "23", + "24", + "25" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:kelp[age=0]" + }, + "minecraft:kelp_plant": { + "properties": {}, + "defaultstate": "minecraft:kelp_plant" + }, + "minecraft:ladder": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:ladder[facing=north,waterlogged=false]" + }, + "minecraft:lantern": { + "properties": { + "hanging": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:lantern[hanging=false]" + }, + "minecraft:lapis_block": { + "properties": {}, + "defaultstate": "minecraft:lapis_block" + }, + "minecraft:lapis_ore": { + "properties": {}, + "defaultstate": "minecraft:lapis_ore" + }, + "minecraft:large_fern": { + "properties": { + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:large_fern[half=lower]" + }, + "minecraft:lava": { + "properties": { + "level": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:lava[level=0]" + }, + "minecraft:lectern": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "has_book": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:lectern[facing=north,has_book=false,powered=false]" + }, + "minecraft:lever": { + "properties": { + "face": { + "values": [ + "floor", + "wall", + "ceiling" + ], + "type": "enum" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:lever[face=wall,facing=north,powered=false]" + }, + "minecraft:light_blue_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:light_blue_banner[rotation=0]" + }, + "minecraft:light_blue_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:light_blue_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:light_blue_carpet": { + "properties": {}, + "defaultstate": "minecraft:light_blue_carpet" + }, + "minecraft:light_blue_concrete": { + "properties": {}, + "defaultstate": "minecraft:light_blue_concrete" + }, + "minecraft:light_blue_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:light_blue_concrete_powder" + }, + "minecraft:light_blue_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:light_blue_glazed_terracotta[facing=north]" + }, + "minecraft:light_blue_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:light_blue_shulker_box[facing=up]" + }, + "minecraft:light_blue_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:light_blue_stained_glass" + }, + "minecraft:light_blue_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:light_blue_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:light_blue_terracotta": { + "properties": {}, + "defaultstate": "minecraft:light_blue_terracotta" + }, + "minecraft:light_blue_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:light_blue_wall_banner[facing=north]" + }, + "minecraft:light_blue_wool": { + "properties": {}, + "defaultstate": "minecraft:light_blue_wool" + }, + "minecraft:light_gray_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:light_gray_banner[rotation=0]" + }, + "minecraft:light_gray_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:light_gray_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:light_gray_carpet": { + "properties": {}, + "defaultstate": "minecraft:light_gray_carpet" + }, + "minecraft:light_gray_concrete": { + "properties": {}, + "defaultstate": "minecraft:light_gray_concrete" + }, + "minecraft:light_gray_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:light_gray_concrete_powder" + }, + "minecraft:light_gray_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:light_gray_glazed_terracotta[facing=north]" + }, + "minecraft:light_gray_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:light_gray_shulker_box[facing=up]" + }, + "minecraft:light_gray_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:light_gray_stained_glass" + }, + "minecraft:light_gray_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:light_gray_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:light_gray_terracotta": { + "properties": {}, + "defaultstate": "minecraft:light_gray_terracotta" + }, + "minecraft:light_gray_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:light_gray_wall_banner[facing=north]" + }, + "minecraft:light_gray_wool": { + "properties": {}, + "defaultstate": "minecraft:light_gray_wool" + }, + "minecraft:light_weighted_pressure_plate": { + "properties": { + "power": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:light_weighted_pressure_plate[power=0]" + }, + "minecraft:lilac": { + "properties": { + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:lilac[half=lower]" + }, + "minecraft:lily_of_the_valley": { + "properties": {}, + "defaultstate": "minecraft:lily_of_the_valley" + }, + "minecraft:lily_pad": { + "properties": {}, + "defaultstate": "minecraft:lily_pad" + }, + "minecraft:lime_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:lime_banner[rotation=0]" + }, + "minecraft:lime_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:lime_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:lime_carpet": { + "properties": {}, + "defaultstate": "minecraft:lime_carpet" + }, + "minecraft:lime_concrete": { + "properties": {}, + "defaultstate": "minecraft:lime_concrete" + }, + "minecraft:lime_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:lime_concrete_powder" + }, + "minecraft:lime_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:lime_glazed_terracotta[facing=north]" + }, + "minecraft:lime_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:lime_shulker_box[facing=up]" + }, + "minecraft:lime_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:lime_stained_glass" + }, + "minecraft:lime_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:lime_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:lime_terracotta": { + "properties": {}, + "defaultstate": "minecraft:lime_terracotta" + }, + "minecraft:lime_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:lime_wall_banner[facing=north]" + }, + "minecraft:lime_wool": { + "properties": {}, + "defaultstate": "minecraft:lime_wool" + }, + "minecraft:lodestone": { + "properties": {}, + "defaultstate": "minecraft:lodestone" + }, + "minecraft:loom": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:loom[facing=north]" + }, + "minecraft:magenta_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:magenta_banner[rotation=0]" + }, + "minecraft:magenta_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:magenta_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:magenta_carpet": { + "properties": {}, + "defaultstate": "minecraft:magenta_carpet" + }, + "minecraft:magenta_concrete": { + "properties": {}, + "defaultstate": "minecraft:magenta_concrete" + }, + "minecraft:magenta_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:magenta_concrete_powder" + }, + "minecraft:magenta_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:magenta_glazed_terracotta[facing=north]" + }, + "minecraft:magenta_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:magenta_shulker_box[facing=up]" + }, + "minecraft:magenta_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:magenta_stained_glass" + }, + "minecraft:magenta_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:magenta_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:magenta_terracotta": { + "properties": {}, + "defaultstate": "minecraft:magenta_terracotta" + }, + "minecraft:magenta_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:magenta_wall_banner[facing=north]" + }, + "minecraft:magenta_wool": { + "properties": {}, + "defaultstate": "minecraft:magenta_wool" + }, + "minecraft:magma_block": { + "properties": {}, + "defaultstate": "minecraft:magma_block" + }, + "minecraft:melon": { + "properties": {}, + "defaultstate": "minecraft:melon" + }, + "minecraft:melon_stem": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:melon_stem[age=0]" + }, + "minecraft:mossy_cobblestone": { + "properties": {}, + "defaultstate": "minecraft:mossy_cobblestone" + }, + "minecraft:mossy_cobblestone_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:mossy_cobblestone_slab[type=bottom,waterlogged=false]" + }, + "minecraft:mossy_cobblestone_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:mossy_cobblestone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:mossy_cobblestone_wall": { + "properties": { + "east": { + "values": [ + "none", + "low", + "tall" + ], + "type": "enum" + }, + "north": { + "values": [ + "none", + "low", + "tall" + ], + "type": "enum" + }, + "south": { + "values": [ + "none", + "low", + "tall" + ], + "type": "enum" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "none", + "low", + "tall" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:mossy_cobblestone_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]" + }, + "minecraft:mossy_stone_brick_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:mossy_stone_brick_slab[type=bottom,waterlogged=false]" + }, + "minecraft:mossy_stone_brick_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:mossy_stone_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:mossy_stone_brick_wall": { + "properties": { + "east": { + "values": [ + "none", + "low", + "tall" + ], + "type": "enum" + }, + "north": { + "values": [ + "none", + "low", + "tall" + ], + "type": "enum" + }, + "south": { + "values": [ + "none", + "low", + "tall" + ], + "type": "enum" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "none", + "low", + "tall" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:mossy_stone_brick_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]" + }, + "minecraft:mossy_stone_bricks": { + "properties": {}, + "defaultstate": "minecraft:mossy_stone_bricks" + }, + "minecraft:moving_piston": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + }, + "type": { + "values": [ + "normal", + "sticky" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:moving_piston[facing=north,type=normal]" + }, + "minecraft:mushroom_stem": { + "properties": { + "down": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:mushroom_stem[down=true,east=true,north=true,south=true,up=true,west=true]" + }, + "minecraft:mycelium": { + "properties": { + "snowy": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:mycelium[snowy=false]" + }, + "minecraft:nether_brick_fence": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:nether_brick_fence[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:nether_brick_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:nether_brick_slab[type=bottom,waterlogged=false]" + }, + "minecraft:nether_brick_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:nether_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:nether_brick_wall": { + "properties": { + "east": { + "values": [ + "none", + "low", + "tall" + ], + "type": "enum" + }, + "north": { + "values": [ + "none", + "low", + "tall" + ], + "type": "enum" + }, + "south": { + "values": [ + "none", + "low", + "tall" + ], + "type": "enum" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "none", + "low", + "tall" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:nether_brick_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]" + }, + "minecraft:nether_bricks": { + "properties": {}, + "defaultstate": "minecraft:nether_bricks" + }, + "minecraft:nether_gold_ore": { + "properties": {}, + "defaultstate": "minecraft:nether_gold_ore" + }, + "minecraft:nether_portal": { + "properties": { + "axis": { + "values": [ + "x", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:nether_portal[axis=x]" + }, + "minecraft:nether_quartz_ore": { + "properties": {}, + "defaultstate": "minecraft:nether_quartz_ore" + }, + "minecraft:nether_sprouts": { + "properties": {}, + "defaultstate": "minecraft:nether_sprouts" + }, + "minecraft:nether_wart": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:nether_wart[age=0]" + }, + "minecraft:nether_wart_block": { + "properties": {}, + "defaultstate": "minecraft:nether_wart_block" + }, + "minecraft:netherite_block": { + "properties": {}, + "defaultstate": "minecraft:netherite_block" + }, + "minecraft:netherrack": { + "properties": {}, + "defaultstate": "minecraft:netherrack" + }, + "minecraft:note_block": { + "properties": { + "instrument": { + "values": [ + "harp", + "basedrum", + "snare", + "hat", + "bass", + "flute", + "bell", + "guitar", + "chime", + "xylophone", + "iron_xylophone", + "cow_bell", + "didgeridoo", + "bit", + "banjo", + "pling" + ], + "type": "enum" + }, + "note": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15", + "16", + "17", + "18", + "19", + "20", + "21", + "22", + "23", + "24" + ], + "type": "int" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:note_block[instrument=harp,note=0,powered=false]" + }, + "minecraft:oak_button": { + "properties": { + "face": { + "values": [ + "floor", + "wall", + "ceiling" + ], + "type": "enum" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:oak_button[face=wall,facing=north,powered=false]" + }, + "minecraft:oak_door": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + }, + "hinge": { + "values": [ + "left", + "right" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:oak_door[facing=north,half=lower,hinge=left,open=false,powered=false]" + }, + "minecraft:oak_fence": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:oak_fence[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:oak_fence_gate": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "in_wall": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:oak_fence_gate[facing=north,in_wall=false,open=false,powered=false]" + }, + "minecraft:oak_leaves": { + "properties": { + "distance": { + "values": [ + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ], + "type": "int" + }, + "persistent": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:oak_leaves[distance=7,persistent=false]" + }, + "minecraft:oak_log": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:oak_log[axis=y]" + }, + "minecraft:oak_planks": { + "properties": {}, + "defaultstate": "minecraft:oak_planks" + }, + "minecraft:oak_pressure_plate": { + "properties": { + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:oak_pressure_plate[powered=false]" + }, + "minecraft:oak_sapling": { + "properties": { + "stage": { + "values": [ + "0", + "1" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:oak_sapling[stage=0]" + }, + "minecraft:oak_sign": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:oak_sign[rotation=0,waterlogged=false]" + }, + "minecraft:oak_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:oak_slab[type=bottom,waterlogged=false]" + }, + "minecraft:oak_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:oak_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:oak_trapdoor": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:oak_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]" + }, + "minecraft:oak_wall_sign": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:oak_wall_sign[facing=north,waterlogged=false]" + }, + "minecraft:oak_wood": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:oak_wood[axis=y]" + }, + "minecraft:observer": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:observer[facing=south,powered=false]" + }, + "minecraft:obsidian": { + "properties": {}, + "defaultstate": "minecraft:obsidian" + }, + "minecraft:orange_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:orange_banner[rotation=0]" + }, + "minecraft:orange_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:orange_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:orange_carpet": { + "properties": {}, + "defaultstate": "minecraft:orange_carpet" + }, + "minecraft:orange_concrete": { + "properties": {}, + "defaultstate": "minecraft:orange_concrete" + }, + "minecraft:orange_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:orange_concrete_powder" + }, + "minecraft:orange_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:orange_glazed_terracotta[facing=north]" + }, + "minecraft:orange_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:orange_shulker_box[facing=up]" + }, + "minecraft:orange_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:orange_stained_glass" + }, + "minecraft:orange_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:orange_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:orange_terracotta": { + "properties": {}, + "defaultstate": "minecraft:orange_terracotta" + }, + "minecraft:orange_tulip": { + "properties": {}, + "defaultstate": "minecraft:orange_tulip" + }, + "minecraft:orange_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:orange_wall_banner[facing=north]" + }, + "minecraft:orange_wool": { + "properties": {}, + "defaultstate": "minecraft:orange_wool" + }, + "minecraft:oxeye_daisy": { + "properties": {}, + "defaultstate": "minecraft:oxeye_daisy" + }, + "minecraft:packed_ice": { + "properties": {}, + "defaultstate": "minecraft:packed_ice" + }, + "minecraft:peony": { + "properties": { + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:peony[half=lower]" + }, + "minecraft:petrified_oak_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:petrified_oak_slab[type=bottom,waterlogged=false]" + }, + "minecraft:pink_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:pink_banner[rotation=0]" + }, + "minecraft:pink_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:pink_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:pink_carpet": { + "properties": {}, + "defaultstate": "minecraft:pink_carpet" + }, + "minecraft:pink_concrete": { + "properties": {}, + "defaultstate": "minecraft:pink_concrete" + }, + "minecraft:pink_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:pink_concrete_powder" + }, + "minecraft:pink_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:pink_glazed_terracotta[facing=north]" + }, + "minecraft:pink_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:pink_shulker_box[facing=up]" + }, + "minecraft:pink_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:pink_stained_glass" + }, + "minecraft:pink_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:pink_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:pink_terracotta": { + "properties": {}, + "defaultstate": "minecraft:pink_terracotta" + }, + "minecraft:pink_tulip": { + "properties": {}, + "defaultstate": "minecraft:pink_tulip" + }, + "minecraft:pink_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:pink_wall_banner[facing=north]" + }, + "minecraft:pink_wool": { + "properties": {}, + "defaultstate": "minecraft:pink_wool" + }, + "minecraft:piston": { + "properties": { + "extended": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:piston[extended=false,facing=north]" + }, + "minecraft:piston_head": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + }, + "short": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "type": { + "values": [ + "normal", + "sticky" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:piston_head[facing=north,short=false,type=normal]" + }, + "minecraft:player_head": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:player_head[rotation=0]" + }, + "minecraft:player_wall_head": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:player_wall_head[facing=north]" + }, + "minecraft:podzol": { + "properties": { + "snowy": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:podzol[snowy=false]" + }, + "minecraft:polished_andesite": { + "properties": {}, + "defaultstate": "minecraft:polished_andesite" + }, + "minecraft:polished_andesite_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:polished_andesite_slab[type=bottom,waterlogged=false]" + }, + "minecraft:polished_andesite_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:polished_andesite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:polished_basalt": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:polished_basalt[axis=y]" + }, + "minecraft:polished_blackstone": { + "properties": {}, + "defaultstate": "minecraft:polished_blackstone" + }, + "minecraft:polished_blackstone_brick_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:polished_blackstone_brick_slab[type=bottom,waterlogged=false]" + }, + "minecraft:polished_blackstone_brick_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:polished_blackstone_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:polished_blackstone_brick_wall": { + "properties": { + "east": { + "values": [ + "none", + "low", + "tall" + ], + "type": "enum" + }, + "north": { + "values": [ + "none", + "low", + "tall" + ], + "type": "enum" + }, + "south": { + "values": [ + "none", + "low", + "tall" + ], + "type": "enum" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "none", + "low", + "tall" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:polished_blackstone_brick_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]" + }, + "minecraft:polished_blackstone_bricks": { + "properties": {}, + "defaultstate": "minecraft:polished_blackstone_bricks" + }, + "minecraft:polished_blackstone_button": { + "properties": { + "face": { + "values": [ + "floor", + "wall", + "ceiling" + ], + "type": "enum" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:polished_blackstone_button[face=wall,facing=north,powered=false]" + }, + "minecraft:polished_blackstone_pressure_plate": { + "properties": { + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:polished_blackstone_pressure_plate[powered=false]" + }, + "minecraft:polished_blackstone_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:polished_blackstone_slab[type=bottom,waterlogged=false]" + }, + "minecraft:polished_blackstone_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:polished_blackstone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:polished_blackstone_wall": { + "properties": { + "east": { + "values": [ + "none", + "low", + "tall" + ], + "type": "enum" + }, + "north": { + "values": [ + "none", + "low", + "tall" + ], + "type": "enum" + }, + "south": { + "values": [ + "none", + "low", + "tall" + ], + "type": "enum" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "none", + "low", + "tall" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:polished_blackstone_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]" + }, + "minecraft:polished_diorite": { + "properties": {}, + "defaultstate": "minecraft:polished_diorite" + }, + "minecraft:polished_diorite_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:polished_diorite_slab[type=bottom,waterlogged=false]" + }, + "minecraft:polished_diorite_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:polished_diorite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:polished_granite": { + "properties": {}, + "defaultstate": "minecraft:polished_granite" + }, + "minecraft:polished_granite_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:polished_granite_slab[type=bottom,waterlogged=false]" + }, + "minecraft:polished_granite_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:polished_granite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:poppy": { + "properties": {}, + "defaultstate": "minecraft:poppy" + }, + "minecraft:potatoes": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:potatoes[age=0]" + }, + "minecraft:potted_acacia_sapling": { + "properties": {}, + "defaultstate": "minecraft:potted_acacia_sapling" + }, + "minecraft:potted_allium": { + "properties": {}, + "defaultstate": "minecraft:potted_allium" + }, + "minecraft:potted_azure_bluet": { + "properties": {}, + "defaultstate": "minecraft:potted_azure_bluet" + }, + "minecraft:potted_bamboo": { + "properties": {}, + "defaultstate": "minecraft:potted_bamboo" + }, + "minecraft:potted_birch_sapling": { + "properties": {}, + "defaultstate": "minecraft:potted_birch_sapling" + }, + "minecraft:potted_blue_orchid": { + "properties": {}, + "defaultstate": "minecraft:potted_blue_orchid" + }, + "minecraft:potted_brown_mushroom": { + "properties": {}, + "defaultstate": "minecraft:potted_brown_mushroom" + }, + "minecraft:potted_cactus": { + "properties": {}, + "defaultstate": "minecraft:potted_cactus" + }, + "minecraft:potted_cornflower": { + "properties": {}, + "defaultstate": "minecraft:potted_cornflower" + }, + "minecraft:potted_crimson_fungus": { + "properties": {}, + "defaultstate": "minecraft:potted_crimson_fungus" + }, + "minecraft:potted_crimson_roots": { + "properties": {}, + "defaultstate": "minecraft:potted_crimson_roots" + }, + "minecraft:potted_dandelion": { + "properties": {}, + "defaultstate": "minecraft:potted_dandelion" + }, + "minecraft:potted_dark_oak_sapling": { + "properties": {}, + "defaultstate": "minecraft:potted_dark_oak_sapling" + }, + "minecraft:potted_dead_bush": { + "properties": {}, + "defaultstate": "minecraft:potted_dead_bush" + }, + "minecraft:potted_fern": { + "properties": {}, + "defaultstate": "minecraft:potted_fern" + }, + "minecraft:potted_jungle_sapling": { + "properties": {}, + "defaultstate": "minecraft:potted_jungle_sapling" + }, + "minecraft:potted_lily_of_the_valley": { + "properties": {}, + "defaultstate": "minecraft:potted_lily_of_the_valley" + }, + "minecraft:potted_oak_sapling": { + "properties": {}, + "defaultstate": "minecraft:potted_oak_sapling" + }, + "minecraft:potted_orange_tulip": { + "properties": {}, + "defaultstate": "minecraft:potted_orange_tulip" + }, + "minecraft:potted_oxeye_daisy": { + "properties": {}, + "defaultstate": "minecraft:potted_oxeye_daisy" + }, + "minecraft:potted_pink_tulip": { + "properties": {}, + "defaultstate": "minecraft:potted_pink_tulip" + }, + "minecraft:potted_poppy": { + "properties": {}, + "defaultstate": "minecraft:potted_poppy" + }, + "minecraft:potted_red_mushroom": { + "properties": {}, + "defaultstate": "minecraft:potted_red_mushroom" + }, + "minecraft:potted_red_tulip": { + "properties": {}, + "defaultstate": "minecraft:potted_red_tulip" + }, + "minecraft:potted_spruce_sapling": { + "properties": {}, + "defaultstate": "minecraft:potted_spruce_sapling" + }, + "minecraft:potted_warped_fungus": { + "properties": {}, + "defaultstate": "minecraft:potted_warped_fungus" + }, + "minecraft:potted_warped_roots": { + "properties": {}, + "defaultstate": "minecraft:potted_warped_roots" + }, + "minecraft:potted_white_tulip": { + "properties": {}, + "defaultstate": "minecraft:potted_white_tulip" + }, + "minecraft:potted_wither_rose": { + "properties": {}, + "defaultstate": "minecraft:potted_wither_rose" + }, + "minecraft:powered_rail": { + "properties": { + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "shape": { + "values": [ + "north_south", + "east_west", + "ascending_east", + "ascending_west", + "ascending_north", + "ascending_south" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:powered_rail[powered=false,shape=north_south]" + }, + "minecraft:prismarine": { + "properties": {}, + "defaultstate": "minecraft:prismarine" + }, + "minecraft:prismarine_brick_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:prismarine_brick_slab[type=bottom,waterlogged=false]" + }, + "minecraft:prismarine_brick_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:prismarine_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:prismarine_bricks": { + "properties": {}, + "defaultstate": "minecraft:prismarine_bricks" + }, + "minecraft:prismarine_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:prismarine_slab[type=bottom,waterlogged=false]" + }, + "minecraft:prismarine_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:prismarine_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:prismarine_wall": { + "properties": { + "east": { + "values": [ + "none", + "low", + "tall" + ], + "type": "enum" + }, + "north": { + "values": [ + "none", + "low", + "tall" + ], + "type": "enum" + }, + "south": { + "values": [ + "none", + "low", + "tall" + ], + "type": "enum" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "none", + "low", + "tall" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:prismarine_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]" + }, + "minecraft:pumpkin": { + "properties": {}, + "defaultstate": "minecraft:pumpkin" + }, + "minecraft:pumpkin_stem": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:pumpkin_stem[age=0]" + }, + "minecraft:purple_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:purple_banner[rotation=0]" + }, + "minecraft:purple_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:purple_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:purple_carpet": { + "properties": {}, + "defaultstate": "minecraft:purple_carpet" + }, + "minecraft:purple_concrete": { + "properties": {}, + "defaultstate": "minecraft:purple_concrete" + }, + "minecraft:purple_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:purple_concrete_powder" + }, + "minecraft:purple_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:purple_glazed_terracotta[facing=north]" + }, + "minecraft:purple_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:purple_shulker_box[facing=up]" + }, + "minecraft:purple_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:purple_stained_glass" + }, + "minecraft:purple_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:purple_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:purple_terracotta": { + "properties": {}, + "defaultstate": "minecraft:purple_terracotta" + }, + "minecraft:purple_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:purple_wall_banner[facing=north]" + }, + "minecraft:purple_wool": { + "properties": {}, + "defaultstate": "minecraft:purple_wool" + }, + "minecraft:purpur_block": { + "properties": {}, + "defaultstate": "minecraft:purpur_block" + }, + "minecraft:purpur_pillar": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:purpur_pillar[axis=y]" + }, + "minecraft:purpur_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:purpur_slab[type=bottom,waterlogged=false]" + }, + "minecraft:purpur_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:purpur_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:quartz_block": { + "properties": {}, + "defaultstate": "minecraft:quartz_block" + }, + "minecraft:quartz_bricks": { + "properties": {}, + "defaultstate": "minecraft:quartz_bricks" + }, + "minecraft:quartz_pillar": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:quartz_pillar[axis=y]" + }, + "minecraft:quartz_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:quartz_slab[type=bottom,waterlogged=false]" + }, + "minecraft:quartz_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:quartz_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:rail": { + "properties": { + "shape": { + "values": [ + "north_south", + "east_west", + "ascending_east", + "ascending_west", + "ascending_north", + "ascending_south", + "south_east", + "south_west", + "north_west", + "north_east" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:rail[shape=north_south]" + }, + "minecraft:red_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:red_banner[rotation=0]" + }, + "minecraft:red_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:red_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:red_carpet": { + "properties": {}, + "defaultstate": "minecraft:red_carpet" + }, + "minecraft:red_concrete": { + "properties": {}, + "defaultstate": "minecraft:red_concrete" + }, + "minecraft:red_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:red_concrete_powder" + }, + "minecraft:red_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:red_glazed_terracotta[facing=north]" + }, + "minecraft:red_mushroom": { + "properties": {}, + "defaultstate": "minecraft:red_mushroom" + }, + "minecraft:red_mushroom_block": { + "properties": { + "down": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:red_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true]" + }, + "minecraft:red_nether_brick_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:red_nether_brick_slab[type=bottom,waterlogged=false]" + }, + "minecraft:red_nether_brick_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:red_nether_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:red_nether_brick_wall": { + "properties": { + "east": { + "values": [ + "none", + "low", + "tall" + ], + "type": "enum" + }, + "north": { + "values": [ + "none", + "low", + "tall" + ], + "type": "enum" + }, + "south": { + "values": [ + "none", + "low", + "tall" + ], + "type": "enum" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "none", + "low", + "tall" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:red_nether_brick_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]" + }, + "minecraft:red_nether_bricks": { + "properties": {}, + "defaultstate": "minecraft:red_nether_bricks" + }, + "minecraft:red_sand": { + "properties": {}, + "defaultstate": "minecraft:red_sand" + }, + "minecraft:red_sandstone": { + "properties": {}, + "defaultstate": "minecraft:red_sandstone" + }, + "minecraft:red_sandstone_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:red_sandstone_slab[type=bottom,waterlogged=false]" + }, + "minecraft:red_sandstone_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:red_sandstone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:red_sandstone_wall": { + "properties": { + "east": { + "values": [ + "none", + "low", + "tall" + ], + "type": "enum" + }, + "north": { + "values": [ + "none", + "low", + "tall" + ], + "type": "enum" + }, + "south": { + "values": [ + "none", + "low", + "tall" + ], + "type": "enum" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "none", + "low", + "tall" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:red_sandstone_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]" + }, + "minecraft:red_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:red_shulker_box[facing=up]" + }, + "minecraft:red_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:red_stained_glass" + }, + "minecraft:red_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:red_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:red_terracotta": { + "properties": {}, + "defaultstate": "minecraft:red_terracotta" + }, + "minecraft:red_tulip": { + "properties": {}, + "defaultstate": "minecraft:red_tulip" + }, + "minecraft:red_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:red_wall_banner[facing=north]" + }, + "minecraft:red_wool": { + "properties": {}, + "defaultstate": "minecraft:red_wool" + }, + "minecraft:redstone_block": { + "properties": {}, + "defaultstate": "minecraft:redstone_block" + }, + "minecraft:redstone_lamp": { + "properties": { + "lit": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:redstone_lamp[lit=false]" + }, + "minecraft:redstone_ore": { + "properties": { + "lit": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:redstone_ore[lit=false]" + }, + "minecraft:redstone_torch": { + "properties": { + "lit": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:redstone_torch[lit=true]" + }, + "minecraft:redstone_wall_torch": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "lit": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:redstone_wall_torch[facing=north,lit=true]" + }, + "minecraft:redstone_wire": { + "properties": { + "east": { + "values": [ + "up", + "side", + "none" + ], + "type": "enum" + }, + "north": { + "values": [ + "up", + "side", + "none" + ], + "type": "enum" + }, + "power": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + }, + "south": { + "values": [ + "up", + "side", + "none" + ], + "type": "enum" + }, + "west": { + "values": [ + "up", + "side", + "none" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:redstone_wire[east=none,north=none,power=0,south=none,west=none]" + }, + "minecraft:repeater": { + "properties": { + "delay": { + "values": [ + "1", + "2", + "3", + "4" + ], + "type": "int" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "locked": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:repeater[delay=1,facing=north,locked=false,powered=false]" + }, + "minecraft:repeating_command_block": { + "properties": { + "conditional": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:repeating_command_block[conditional=false,facing=north]" + }, + "minecraft:respawn_anchor": { + "properties": { + "charges": { + "values": [ + "0", + "1", + "2", + "3", + "4" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:respawn_anchor[charges=0]" + }, + "minecraft:rose_bush": { + "properties": { + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:rose_bush[half=lower]" + }, + "minecraft:sand": { + "properties": {}, + "defaultstate": "minecraft:sand" + }, + "minecraft:sandstone": { + "properties": {}, + "defaultstate": "minecraft:sandstone" + }, + "minecraft:sandstone_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:sandstone_slab[type=bottom,waterlogged=false]" + }, + "minecraft:sandstone_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:sandstone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:sandstone_wall": { + "properties": { + "east": { + "values": [ + "none", + "low", + "tall" + ], + "type": "enum" + }, + "north": { + "values": [ + "none", + "low", + "tall" + ], + "type": "enum" + }, + "south": { + "values": [ + "none", + "low", + "tall" + ], + "type": "enum" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "none", + "low", + "tall" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:sandstone_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]" + }, + "minecraft:scaffolding": { + "properties": { + "bottom": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "distance": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ], + "type": "int" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:scaffolding[bottom=false,distance=7,waterlogged=false]" + }, + "minecraft:sea_lantern": { + "properties": {}, + "defaultstate": "minecraft:sea_lantern" + }, + "minecraft:sea_pickle": { + "properties": { + "pickles": { + "values": [ + "1", + "2", + "3", + "4" + ], + "type": "int" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:sea_pickle[pickles=1,waterlogged=true]" + }, + "minecraft:seagrass": { + "properties": {}, + "defaultstate": "minecraft:seagrass" + }, + "minecraft:shroomlight": { + "properties": {}, + "defaultstate": "minecraft:shroomlight" + }, + "minecraft:shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:shulker_box[facing=up]" + }, + "minecraft:skeleton_skull": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:skeleton_skull[rotation=0]" + }, + "minecraft:skeleton_wall_skull": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:skeleton_wall_skull[facing=north]" + }, + "minecraft:slime_block": { + "properties": {}, + "defaultstate": "minecraft:slime_block" + }, + "minecraft:smithing_table": { + "properties": {}, + "defaultstate": "minecraft:smithing_table" + }, + "minecraft:smoker": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "lit": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:smoker[facing=north,lit=false]" + }, + "minecraft:smooth_quartz": { + "properties": {}, + "defaultstate": "minecraft:smooth_quartz" + }, + "minecraft:smooth_quartz_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:smooth_quartz_slab[type=bottom,waterlogged=false]" + }, + "minecraft:smooth_quartz_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:smooth_quartz_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:smooth_red_sandstone": { + "properties": {}, + "defaultstate": "minecraft:smooth_red_sandstone" + }, + "minecraft:smooth_red_sandstone_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:smooth_red_sandstone_slab[type=bottom,waterlogged=false]" + }, + "minecraft:smooth_red_sandstone_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:smooth_red_sandstone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:smooth_sandstone": { + "properties": {}, + "defaultstate": "minecraft:smooth_sandstone" + }, + "minecraft:smooth_sandstone_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:smooth_sandstone_slab[type=bottom,waterlogged=false]" + }, + "minecraft:smooth_sandstone_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:smooth_sandstone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:smooth_stone": { + "properties": {}, + "defaultstate": "minecraft:smooth_stone" + }, + "minecraft:smooth_stone_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:smooth_stone_slab[type=bottom,waterlogged=false]" + }, + "minecraft:snow": { + "properties": { + "layers": { + "values": [ + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:snow[layers=1]" + }, + "minecraft:snow_block": { + "properties": {}, + "defaultstate": "minecraft:snow_block" + }, + "minecraft:soul_campfire": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "lit": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "signal_fire": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:soul_campfire[facing=north,lit=true,signal_fire=false,waterlogged=false]" + }, + "minecraft:soul_fire": { + "properties": {}, + "defaultstate": "minecraft:soul_fire" + }, + "minecraft:soul_lantern": { + "properties": { + "hanging": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:soul_lantern[hanging=false]" + }, + "minecraft:soul_sand": { + "properties": {}, + "defaultstate": "minecraft:soul_sand" + }, + "minecraft:soul_soil": { + "properties": {}, + "defaultstate": "minecraft:soul_soil" + }, + "minecraft:soul_torch": { + "properties": {}, + "defaultstate": "minecraft:soul_torch" + }, + "minecraft:soul_wall_torch": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:soul_wall_torch[facing=north]" + }, + "minecraft:spawner": { + "properties": {}, + "defaultstate": "minecraft:spawner" + }, + "minecraft:sponge": { + "properties": {}, + "defaultstate": "minecraft:sponge" + }, + "minecraft:spruce_button": { + "properties": { + "face": { + "values": [ + "floor", + "wall", + "ceiling" + ], + "type": "enum" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:spruce_button[face=wall,facing=north,powered=false]" + }, + "minecraft:spruce_door": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + }, + "hinge": { + "values": [ + "left", + "right" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:spruce_door[facing=north,half=lower,hinge=left,open=false,powered=false]" + }, + "minecraft:spruce_fence": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:spruce_fence[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:spruce_fence_gate": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "in_wall": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:spruce_fence_gate[facing=north,in_wall=false,open=false,powered=false]" + }, + "minecraft:spruce_leaves": { + "properties": { + "distance": { + "values": [ + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ], + "type": "int" + }, + "persistent": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:spruce_leaves[distance=7,persistent=false]" + }, + "minecraft:spruce_log": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:spruce_log[axis=y]" + }, + "minecraft:spruce_planks": { + "properties": {}, + "defaultstate": "minecraft:spruce_planks" + }, + "minecraft:spruce_pressure_plate": { + "properties": { + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:spruce_pressure_plate[powered=false]" + }, + "minecraft:spruce_sapling": { + "properties": { + "stage": { + "values": [ + "0", + "1" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:spruce_sapling[stage=0]" + }, + "minecraft:spruce_sign": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:spruce_sign[rotation=0,waterlogged=false]" + }, + "minecraft:spruce_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:spruce_slab[type=bottom,waterlogged=false]" + }, + "minecraft:spruce_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:spruce_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:spruce_trapdoor": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:spruce_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]" + }, + "minecraft:spruce_wall_sign": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:spruce_wall_sign[facing=north,waterlogged=false]" + }, + "minecraft:spruce_wood": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:spruce_wood[axis=y]" + }, + "minecraft:sticky_piston": { + "properties": { + "extended": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:sticky_piston[extended=false,facing=north]" + }, + "minecraft:stone": { + "properties": {}, + "defaultstate": "minecraft:stone" + }, + "minecraft:stone_brick_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:stone_brick_slab[type=bottom,waterlogged=false]" + }, + "minecraft:stone_brick_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:stone_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:stone_brick_wall": { + "properties": { + "east": { + "values": [ + "none", + "low", + "tall" + ], + "type": "enum" + }, + "north": { + "values": [ + "none", + "low", + "tall" + ], + "type": "enum" + }, + "south": { + "values": [ + "none", + "low", + "tall" + ], + "type": "enum" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "none", + "low", + "tall" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:stone_brick_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]" + }, + "minecraft:stone_bricks": { + "properties": {}, + "defaultstate": "minecraft:stone_bricks" + }, + "minecraft:stone_button": { + "properties": { + "face": { + "values": [ + "floor", + "wall", + "ceiling" + ], + "type": "enum" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:stone_button[face=wall,facing=north,powered=false]" + }, + "minecraft:stone_pressure_plate": { + "properties": { + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:stone_pressure_plate[powered=false]" + }, + "minecraft:stone_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:stone_slab[type=bottom,waterlogged=false]" + }, + "minecraft:stone_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:stone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:stonecutter": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:stonecutter[facing=north]" + }, + "minecraft:stripped_acacia_log": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:stripped_acacia_log[axis=y]" + }, + "minecraft:stripped_acacia_wood": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:stripped_acacia_wood[axis=y]" + }, + "minecraft:stripped_birch_log": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:stripped_birch_log[axis=y]" + }, + "minecraft:stripped_birch_wood": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:stripped_birch_wood[axis=y]" + }, + "minecraft:stripped_crimson_hyphae": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:stripped_crimson_hyphae[axis=y]" + }, + "minecraft:stripped_crimson_stem": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:stripped_crimson_stem[axis=y]" + }, + "minecraft:stripped_dark_oak_log": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:stripped_dark_oak_log[axis=y]" + }, + "minecraft:stripped_dark_oak_wood": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:stripped_dark_oak_wood[axis=y]" + }, + "minecraft:stripped_jungle_log": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:stripped_jungle_log[axis=y]" + }, + "minecraft:stripped_jungle_wood": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:stripped_jungle_wood[axis=y]" + }, + "minecraft:stripped_oak_log": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:stripped_oak_log[axis=y]" + }, + "minecraft:stripped_oak_wood": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:stripped_oak_wood[axis=y]" + }, + "minecraft:stripped_spruce_log": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:stripped_spruce_log[axis=y]" + }, + "minecraft:stripped_spruce_wood": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:stripped_spruce_wood[axis=y]" + }, + "minecraft:stripped_warped_hyphae": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:stripped_warped_hyphae[axis=y]" + }, + "minecraft:stripped_warped_stem": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:stripped_warped_stem[axis=y]" + }, + "minecraft:structure_block": { + "properties": { + "mode": { + "values": [ + "save", + "load", + "corner", + "data" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:structure_block[mode=save]" + }, + "minecraft:structure_void": { + "properties": {}, + "defaultstate": "minecraft:structure_void" + }, + "minecraft:sugar_cane": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:sugar_cane[age=0]" + }, + "minecraft:sunflower": { + "properties": { + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:sunflower[half=lower]" + }, + "minecraft:sweet_berry_bush": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:sweet_berry_bush[age=0]" + }, + "minecraft:tall_grass": { + "properties": { + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:tall_grass[half=lower]" + }, + "minecraft:tall_seagrass": { + "properties": { + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:tall_seagrass[half=lower]" + }, + "minecraft:target": { + "properties": { + "power": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:target[power=0]" + }, + "minecraft:terracotta": { + "properties": {}, + "defaultstate": "minecraft:terracotta" + }, + "minecraft:tnt": { + "properties": { + "unstable": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:tnt[unstable=false]" + }, + "minecraft:torch": { + "properties": {}, + "defaultstate": "minecraft:torch" + }, + "minecraft:trapped_chest": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "type": { + "values": [ + "single", + "left", + "right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:trapped_chest[facing=north,type=single,waterlogged=false]" + }, + "minecraft:tripwire": { + "properties": { + "attached": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "disarmed": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:tripwire[attached=false,disarmed=false,east=false,north=false,powered=false,south=false,west=false]" + }, + "minecraft:tripwire_hook": { + "properties": { + "attached": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:tripwire_hook[attached=false,facing=north,powered=false]" + }, + "minecraft:tube_coral": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:tube_coral[waterlogged=true]" + }, + "minecraft:tube_coral_block": { + "properties": {}, + "defaultstate": "minecraft:tube_coral_block" + }, + "minecraft:tube_coral_fan": { + "properties": { + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:tube_coral_fan[waterlogged=true]" + }, + "minecraft:tube_coral_wall_fan": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:tube_coral_wall_fan[facing=north,waterlogged=true]" + }, + "minecraft:turtle_egg": { + "properties": { + "eggs": { + "values": [ + "1", + "2", + "3", + "4" + ], + "type": "int" + }, + "hatch": { + "values": [ + "0", + "1", + "2" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:turtle_egg[eggs=1,hatch=0]" + }, + "minecraft:twisting_vines": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15", + "16", + "17", + "18", + "19", + "20", + "21", + "22", + "23", + "24", + "25" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:twisting_vines[age=0]" + }, + "minecraft:twisting_vines_plant": { + "properties": {}, + "defaultstate": "minecraft:twisting_vines_plant" + }, + "minecraft:vine": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "up": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:vine[east=false,north=false,south=false,up=false,west=false]" + }, + "minecraft:void_air": { + "properties": {}, + "defaultstate": "minecraft:void_air" + }, + "minecraft:wall_torch": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:wall_torch[facing=north]" + }, + "minecraft:warped_button": { + "properties": { + "face": { + "values": [ + "floor", + "wall", + "ceiling" + ], + "type": "enum" + }, + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:warped_button[face=wall,facing=north,powered=false]" + }, + "minecraft:warped_door": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "upper", + "lower" + ], + "type": "enum" + }, + "hinge": { + "values": [ + "left", + "right" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:warped_door[facing=north,half=lower,hinge=left,open=false,powered=false]" + }, + "minecraft:warped_fence": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:warped_fence[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:warped_fence_gate": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "in_wall": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:warped_fence_gate[facing=north,in_wall=false,open=false,powered=false]" + }, + "minecraft:warped_fungus": { + "properties": {}, + "defaultstate": "minecraft:warped_fungus" + }, + "minecraft:warped_hyphae": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:warped_hyphae[axis=y]" + }, + "minecraft:warped_nylium": { + "properties": {}, + "defaultstate": "minecraft:warped_nylium" + }, + "minecraft:warped_planks": { + "properties": {}, + "defaultstate": "minecraft:warped_planks" + }, + "minecraft:warped_pressure_plate": { + "properties": { + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:warped_pressure_plate[powered=false]" + }, + "minecraft:warped_roots": { + "properties": {}, + "defaultstate": "minecraft:warped_roots" + }, + "minecraft:warped_sign": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:warped_sign[rotation=0,waterlogged=false]" + }, + "minecraft:warped_slab": { + "properties": { + "type": { + "values": [ + "top", + "bottom", + "double" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:warped_slab[type=bottom,waterlogged=false]" + }, + "minecraft:warped_stairs": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "shape": { + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ], + "type": "enum" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:warped_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]" + }, + "minecraft:warped_stem": { + "properties": { + "axis": { + "values": [ + "x", + "y", + "z" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:warped_stem[axis=y]" + }, + "minecraft:warped_trapdoor": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "half": { + "values": [ + "top", + "bottom" + ], + "type": "enum" + }, + "open": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "powered": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:warped_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]" + }, + "minecraft:warped_wall_sign": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:warped_wall_sign[facing=north,waterlogged=false]" + }, + "minecraft:warped_wart_block": { + "properties": {}, + "defaultstate": "minecraft:warped_wart_block" + }, + "minecraft:water": { + "properties": { + "level": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:water[level=0]" + }, + "minecraft:weeping_vines": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15", + "16", + "17", + "18", + "19", + "20", + "21", + "22", + "23", + "24", + "25" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:weeping_vines[age=0]" + }, + "minecraft:weeping_vines_plant": { + "properties": {}, + "defaultstate": "minecraft:weeping_vines_plant" + }, + "minecraft:wet_sponge": { + "properties": {}, + "defaultstate": "minecraft:wet_sponge" + }, + "minecraft:wheat": { + "properties": { + "age": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:wheat[age=0]" + }, + "minecraft:white_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:white_banner[rotation=0]" + }, + "minecraft:white_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:white_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:white_carpet": { + "properties": {}, + "defaultstate": "minecraft:white_carpet" + }, + "minecraft:white_concrete": { + "properties": {}, + "defaultstate": "minecraft:white_concrete" + }, + "minecraft:white_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:white_concrete_powder" + }, + "minecraft:white_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:white_glazed_terracotta[facing=north]" + }, + "minecraft:white_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:white_shulker_box[facing=up]" + }, + "minecraft:white_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:white_stained_glass" + }, + "minecraft:white_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:white_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:white_terracotta": { + "properties": {}, + "defaultstate": "minecraft:white_terracotta" + }, + "minecraft:white_tulip": { + "properties": {}, + "defaultstate": "minecraft:white_tulip" + }, + "minecraft:white_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:white_wall_banner[facing=north]" + }, + "minecraft:white_wool": { + "properties": {}, + "defaultstate": "minecraft:white_wool" + }, + "minecraft:wither_rose": { + "properties": {}, + "defaultstate": "minecraft:wither_rose" + }, + "minecraft:wither_skeleton_skull": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:wither_skeleton_skull[rotation=0]" + }, + "minecraft:wither_skeleton_wall_skull": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:wither_skeleton_wall_skull[facing=north]" + }, + "minecraft:yellow_banner": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:yellow_banner[rotation=0]" + }, + "minecraft:yellow_bed": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + }, + "occupied": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "part": { + "values": [ + "head", + "foot" + ], + "type": "enum" + } + }, + "defaultstate": "minecraft:yellow_bed[facing=north,occupied=false,part=foot]" + }, + "minecraft:yellow_carpet": { + "properties": {}, + "defaultstate": "minecraft:yellow_carpet" + }, + "minecraft:yellow_concrete": { + "properties": {}, + "defaultstate": "minecraft:yellow_concrete" + }, + "minecraft:yellow_concrete_powder": { + "properties": {}, + "defaultstate": "minecraft:yellow_concrete_powder" + }, + "minecraft:yellow_glazed_terracotta": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:yellow_glazed_terracotta[facing=north]" + }, + "minecraft:yellow_shulker_box": { + "properties": { + "facing": { + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:yellow_shulker_box[facing=up]" + }, + "minecraft:yellow_stained_glass": { + "properties": {}, + "defaultstate": "minecraft:yellow_stained_glass" + }, + "minecraft:yellow_stained_glass_pane": { + "properties": { + "east": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "north": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "south": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "waterlogged": { + "values": [ + "true", + "false" + ], + "type": "bool" + }, + "west": { + "values": [ + "true", + "false" + ], + "type": "bool" + } + }, + "defaultstate": "minecraft:yellow_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]" + }, + "minecraft:yellow_terracotta": { + "properties": {}, + "defaultstate": "minecraft:yellow_terracotta" + }, + "minecraft:yellow_wall_banner": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:yellow_wall_banner[facing=north]" + }, + "minecraft:yellow_wool": { + "properties": {}, + "defaultstate": "minecraft:yellow_wool" + }, + "minecraft:zombie_head": { + "properties": { + "rotation": { + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ], + "type": "int" + } + }, + "defaultstate": "minecraft:zombie_head[rotation=0]" + }, + "minecraft:zombie_wall_head": { + "properties": { + "facing": { + "values": [ + "north", + "south", + "west", + "east" + ], + "type": "direction" + } + }, + "defaultstate": "minecraft:zombie_wall_head[facing=north]" + } + }, + "items": [ + "minecraft:acacia_boat", + "minecraft:acacia_button", + "minecraft:acacia_door", + "minecraft:acacia_fence", + "minecraft:acacia_fence_gate", + "minecraft:acacia_leaves", + "minecraft:acacia_log", + "minecraft:acacia_planks", + "minecraft:acacia_pressure_plate", + "minecraft:acacia_sapling", + "minecraft:acacia_sign", + "minecraft:acacia_slab", + "minecraft:acacia_stairs", + "minecraft:acacia_trapdoor", + "minecraft:acacia_wood", + "minecraft:activator_rail", + "minecraft:air", + "minecraft:allium", + "minecraft:ancient_debris", + "minecraft:andesite", + "minecraft:andesite_slab", + "minecraft:andesite_stairs", + "minecraft:andesite_wall", + "minecraft:anvil", + "minecraft:apple", + "minecraft:armor_stand", + "minecraft:arrow", + "minecraft:azure_bluet", + "minecraft:baked_potato", + "minecraft:bamboo", + "minecraft:barrel", + "minecraft:barrier", + "minecraft:basalt", + "minecraft:bat_spawn_egg", + "minecraft:beacon", + "minecraft:bedrock", + "minecraft:bee_nest", + "minecraft:bee_spawn_egg", + "minecraft:beef", + "minecraft:beehive", + "minecraft:beetroot", + "minecraft:beetroot_seeds", + "minecraft:beetroot_soup", + "minecraft:bell", + "minecraft:birch_boat", + "minecraft:birch_button", + "minecraft:birch_door", + "minecraft:birch_fence", + "minecraft:birch_fence_gate", + "minecraft:birch_leaves", + "minecraft:birch_log", + "minecraft:birch_planks", + "minecraft:birch_pressure_plate", + "minecraft:birch_sapling", + "minecraft:birch_sign", + "minecraft:birch_slab", + "minecraft:birch_stairs", + "minecraft:birch_trapdoor", + "minecraft:birch_wood", + "minecraft:black_banner", + "minecraft:black_bed", + "minecraft:black_carpet", + "minecraft:black_concrete", + "minecraft:black_concrete_powder", + "minecraft:black_dye", + "minecraft:black_glazed_terracotta", + "minecraft:black_shulker_box", + "minecraft:black_stained_glass", + "minecraft:black_stained_glass_pane", + "minecraft:black_terracotta", + "minecraft:black_wool", + "minecraft:blackstone", + "minecraft:blackstone_slab", + "minecraft:blackstone_stairs", + "minecraft:blackstone_wall", + "minecraft:blast_furnace", + "minecraft:blaze_powder", + "minecraft:blaze_rod", + "minecraft:blaze_spawn_egg", + "minecraft:blue_banner", + "minecraft:blue_bed", + "minecraft:blue_carpet", + "minecraft:blue_concrete", + "minecraft:blue_concrete_powder", + "minecraft:blue_dye", + "minecraft:blue_glazed_terracotta", + "minecraft:blue_ice", + "minecraft:blue_orchid", + "minecraft:blue_shulker_box", + "minecraft:blue_stained_glass", + "minecraft:blue_stained_glass_pane", + "minecraft:blue_terracotta", + "minecraft:blue_wool", + "minecraft:bone", + "minecraft:bone_block", + "minecraft:bone_meal", + "minecraft:book", + "minecraft:bookshelf", + "minecraft:bow", + "minecraft:bowl", + "minecraft:brain_coral", + "minecraft:brain_coral_block", + "minecraft:brain_coral_fan", + "minecraft:bread", + "minecraft:brewing_stand", + "minecraft:brick", + "minecraft:brick_slab", + "minecraft:brick_stairs", + "minecraft:brick_wall", + "minecraft:bricks", + "minecraft:brown_banner", + "minecraft:brown_bed", + "minecraft:brown_carpet", + "minecraft:brown_concrete", + "minecraft:brown_concrete_powder", + "minecraft:brown_dye", + "minecraft:brown_glazed_terracotta", + "minecraft:brown_mushroom", + "minecraft:brown_mushroom_block", + "minecraft:brown_shulker_box", + "minecraft:brown_stained_glass", + "minecraft:brown_stained_glass_pane", + "minecraft:brown_terracotta", + "minecraft:brown_wool", + "minecraft:bubble_coral", + "minecraft:bubble_coral_block", + "minecraft:bubble_coral_fan", + "minecraft:bucket", + "minecraft:cactus", + "minecraft:cake", + "minecraft:campfire", + "minecraft:carrot", + "minecraft:carrot_on_a_stick", + "minecraft:cartography_table", + "minecraft:carved_pumpkin", + "minecraft:cat_spawn_egg", + "minecraft:cauldron", + "minecraft:cave_spider_spawn_egg", + "minecraft:chain", + "minecraft:chain_command_block", + "minecraft:chainmail_boots", + "minecraft:chainmail_chestplate", + "minecraft:chainmail_helmet", + "minecraft:chainmail_leggings", + "minecraft:charcoal", + "minecraft:chest", + "minecraft:chest_minecart", + "minecraft:chicken", + "minecraft:chicken_spawn_egg", + "minecraft:chipped_anvil", + "minecraft:chiseled_nether_bricks", + "minecraft:chiseled_polished_blackstone", + "minecraft:chiseled_quartz_block", + "minecraft:chiseled_red_sandstone", + "minecraft:chiseled_sandstone", + "minecraft:chiseled_stone_bricks", + "minecraft:chorus_flower", + "minecraft:chorus_fruit", + "minecraft:chorus_plant", + "minecraft:clay", + "minecraft:clay_ball", + "minecraft:clock", + "minecraft:coal", + "minecraft:coal_block", + "minecraft:coal_ore", + "minecraft:coarse_dirt", + "minecraft:cobblestone", + "minecraft:cobblestone_slab", + "minecraft:cobblestone_stairs", + "minecraft:cobblestone_wall", + "minecraft:cobweb", + "minecraft:cocoa_beans", + "minecraft:cod", + "minecraft:cod_bucket", + "minecraft:cod_spawn_egg", + "minecraft:command_block", + "minecraft:command_block_minecart", + "minecraft:comparator", + "minecraft:compass", + "minecraft:composter", + "minecraft:conduit", + "minecraft:cooked_beef", + "minecraft:cooked_chicken", + "minecraft:cooked_cod", + "minecraft:cooked_mutton", + "minecraft:cooked_porkchop", + "minecraft:cooked_rabbit", + "minecraft:cooked_salmon", + "minecraft:cookie", + "minecraft:cornflower", + "minecraft:cow_spawn_egg", + "minecraft:cracked_nether_bricks", + "minecraft:cracked_polished_blackstone_bricks", + "minecraft:cracked_stone_bricks", + "minecraft:crafting_table", + "minecraft:creeper_banner_pattern", + "minecraft:creeper_head", + "minecraft:creeper_spawn_egg", + "minecraft:crimson_button", + "minecraft:crimson_door", + "minecraft:crimson_fence", + "minecraft:crimson_fence_gate", + "minecraft:crimson_fungus", + "minecraft:crimson_hyphae", + "minecraft:crimson_nylium", + "minecraft:crimson_planks", + "minecraft:crimson_pressure_plate", + "minecraft:crimson_roots", + "minecraft:crimson_sign", + "minecraft:crimson_slab", + "minecraft:crimson_stairs", + "minecraft:crimson_stem", + "minecraft:crimson_trapdoor", + "minecraft:crossbow", + "minecraft:crying_obsidian", + "minecraft:cut_red_sandstone", + "minecraft:cut_red_sandstone_slab", + "minecraft:cut_sandstone", + "minecraft:cut_sandstone_slab", + "minecraft:cyan_banner", + "minecraft:cyan_bed", + "minecraft:cyan_carpet", + "minecraft:cyan_concrete", + "minecraft:cyan_concrete_powder", + "minecraft:cyan_dye", + "minecraft:cyan_glazed_terracotta", + "minecraft:cyan_shulker_box", + "minecraft:cyan_stained_glass", + "minecraft:cyan_stained_glass_pane", + "minecraft:cyan_terracotta", + "minecraft:cyan_wool", + "minecraft:damaged_anvil", + "minecraft:dandelion", + "minecraft:dark_oak_boat", + "minecraft:dark_oak_button", + "minecraft:dark_oak_door", + "minecraft:dark_oak_fence", + "minecraft:dark_oak_fence_gate", + "minecraft:dark_oak_leaves", + "minecraft:dark_oak_log", + "minecraft:dark_oak_planks", + "minecraft:dark_oak_pressure_plate", + "minecraft:dark_oak_sapling", + "minecraft:dark_oak_sign", + "minecraft:dark_oak_slab", + "minecraft:dark_oak_stairs", + "minecraft:dark_oak_trapdoor", + "minecraft:dark_oak_wood", + "minecraft:dark_prismarine", + "minecraft:dark_prismarine_slab", + "minecraft:dark_prismarine_stairs", + "minecraft:daylight_detector", + "minecraft:dead_brain_coral", + "minecraft:dead_brain_coral_block", + "minecraft:dead_brain_coral_fan", + "minecraft:dead_bubble_coral", + "minecraft:dead_bubble_coral_block", + "minecraft:dead_bubble_coral_fan", + "minecraft:dead_bush", + "minecraft:dead_fire_coral", + "minecraft:dead_fire_coral_block", + "minecraft:dead_fire_coral_fan", + "minecraft:dead_horn_coral", + "minecraft:dead_horn_coral_block", + "minecraft:dead_horn_coral_fan", + "minecraft:dead_tube_coral", + "minecraft:dead_tube_coral_block", + "minecraft:dead_tube_coral_fan", + "minecraft:debug_stick", + "minecraft:detector_rail", + "minecraft:diamond", + "minecraft:diamond_axe", + "minecraft:diamond_block", + "minecraft:diamond_boots", + "minecraft:diamond_chestplate", + "minecraft:diamond_helmet", + "minecraft:diamond_hoe", + "minecraft:diamond_horse_armor", + "minecraft:diamond_leggings", + "minecraft:diamond_ore", + "minecraft:diamond_pickaxe", + "minecraft:diamond_shovel", + "minecraft:diamond_sword", + "minecraft:diorite", + "minecraft:diorite_slab", + "minecraft:diorite_stairs", + "minecraft:diorite_wall", + "minecraft:dirt", + "minecraft:dispenser", + "minecraft:dolphin_spawn_egg", + "minecraft:donkey_spawn_egg", + "minecraft:dragon_breath", + "minecraft:dragon_egg", + "minecraft:dragon_head", + "minecraft:dried_kelp", + "minecraft:dried_kelp_block", + "minecraft:dropper", + "minecraft:drowned_spawn_egg", + "minecraft:egg", + "minecraft:elder_guardian_spawn_egg", + "minecraft:elytra", + "minecraft:emerald", + "minecraft:emerald_block", + "minecraft:emerald_ore", + "minecraft:enchanted_book", + "minecraft:enchanted_golden_apple", + "minecraft:enchanting_table", + "minecraft:end_crystal", + "minecraft:end_portal_frame", + "minecraft:end_rod", + "minecraft:end_stone", + "minecraft:end_stone_brick_slab", + "minecraft:end_stone_brick_stairs", + "minecraft:end_stone_brick_wall", + "minecraft:end_stone_bricks", + "minecraft:ender_chest", + "minecraft:ender_eye", + "minecraft:ender_pearl", + "minecraft:enderman_spawn_egg", + "minecraft:endermite_spawn_egg", + "minecraft:evoker_spawn_egg", + "minecraft:experience_bottle", + "minecraft:farmland", + "minecraft:feather", + "minecraft:fermented_spider_eye", + "minecraft:fern", + "minecraft:filled_map", + "minecraft:fire_charge", + "minecraft:fire_coral", + "minecraft:fire_coral_block", + "minecraft:fire_coral_fan", + "minecraft:firework_rocket", + "minecraft:firework_star", + "minecraft:fishing_rod", + "minecraft:fletching_table", + "minecraft:flint", + "minecraft:flint_and_steel", + "minecraft:flower_banner_pattern", + "minecraft:flower_pot", + "minecraft:fox_spawn_egg", + "minecraft:furnace", + "minecraft:furnace_minecart", + "minecraft:ghast_spawn_egg", + "minecraft:ghast_tear", + "minecraft:gilded_blackstone", + "minecraft:glass", + "minecraft:glass_bottle", + "minecraft:glass_pane", + "minecraft:glistering_melon_slice", + "minecraft:globe_banner_pattern", + "minecraft:glowstone", + "minecraft:glowstone_dust", + "minecraft:gold_block", + "minecraft:gold_ingot", + "minecraft:gold_nugget", + "minecraft:gold_ore", + "minecraft:golden_apple", + "minecraft:golden_axe", + "minecraft:golden_boots", + "minecraft:golden_carrot", + "minecraft:golden_chestplate", + "minecraft:golden_helmet", + "minecraft:golden_hoe", + "minecraft:golden_horse_armor", + "minecraft:golden_leggings", + "minecraft:golden_pickaxe", + "minecraft:golden_shovel", + "minecraft:golden_sword", + "minecraft:granite", + "minecraft:granite_slab", + "minecraft:granite_stairs", + "minecraft:granite_wall", + "minecraft:grass", + "minecraft:grass_block", + "minecraft:grass_path", + "minecraft:gravel", + "minecraft:gray_banner", + "minecraft:gray_bed", + "minecraft:gray_carpet", + "minecraft:gray_concrete", + "minecraft:gray_concrete_powder", + "minecraft:gray_dye", + "minecraft:gray_glazed_terracotta", + "minecraft:gray_shulker_box", + "minecraft:gray_stained_glass", + "minecraft:gray_stained_glass_pane", + "minecraft:gray_terracotta", + "minecraft:gray_wool", + "minecraft:green_banner", + "minecraft:green_bed", + "minecraft:green_carpet", + "minecraft:green_concrete", + "minecraft:green_concrete_powder", + "minecraft:green_dye", + "minecraft:green_glazed_terracotta", + "minecraft:green_shulker_box", + "minecraft:green_stained_glass", + "minecraft:green_stained_glass_pane", + "minecraft:green_terracotta", + "minecraft:green_wool", + "minecraft:grindstone", + "minecraft:guardian_spawn_egg", + "minecraft:gunpowder", + "minecraft:hay_block", + "minecraft:heart_of_the_sea", + "minecraft:heavy_weighted_pressure_plate", + "minecraft:hoglin_spawn_egg", + "minecraft:honey_block", + "minecraft:honey_bottle", + "minecraft:honeycomb", + "minecraft:honeycomb_block", + "minecraft:hopper", + "minecraft:hopper_minecart", + "minecraft:horn_coral", + "minecraft:horn_coral_block", + "minecraft:horn_coral_fan", + "minecraft:horse_spawn_egg", + "minecraft:husk_spawn_egg", + "minecraft:ice", + "minecraft:infested_chiseled_stone_bricks", + "minecraft:infested_cobblestone", + "minecraft:infested_cracked_stone_bricks", + "minecraft:infested_mossy_stone_bricks", + "minecraft:infested_stone", + "minecraft:infested_stone_bricks", + "minecraft:ink_sac", + "minecraft:iron_axe", + "minecraft:iron_bars", + "minecraft:iron_block", + "minecraft:iron_boots", + "minecraft:iron_chestplate", + "minecraft:iron_door", + "minecraft:iron_helmet", + "minecraft:iron_hoe", + "minecraft:iron_horse_armor", + "minecraft:iron_ingot", + "minecraft:iron_leggings", + "minecraft:iron_nugget", + "minecraft:iron_ore", + "minecraft:iron_pickaxe", + "minecraft:iron_shovel", + "minecraft:iron_sword", + "minecraft:iron_trapdoor", + "minecraft:item_frame", + "minecraft:jack_o_lantern", + "minecraft:jigsaw", + "minecraft:jukebox", + "minecraft:jungle_boat", + "minecraft:jungle_button", + "minecraft:jungle_door", + "minecraft:jungle_fence", + "minecraft:jungle_fence_gate", + "minecraft:jungle_leaves", + "minecraft:jungle_log", + "minecraft:jungle_planks", + "minecraft:jungle_pressure_plate", + "minecraft:jungle_sapling", + "minecraft:jungle_sign", + "minecraft:jungle_slab", + "minecraft:jungle_stairs", + "minecraft:jungle_trapdoor", + "minecraft:jungle_wood", + "minecraft:kelp", + "minecraft:knowledge_book", + "minecraft:ladder", + "minecraft:lantern", + "minecraft:lapis_block", + "minecraft:lapis_lazuli", + "minecraft:lapis_ore", + "minecraft:large_fern", + "minecraft:lava_bucket", + "minecraft:lead", + "minecraft:leather", + "minecraft:leather_boots", + "minecraft:leather_chestplate", + "minecraft:leather_helmet", + "minecraft:leather_horse_armor", + "minecraft:leather_leggings", + "minecraft:lectern", + "minecraft:lever", + "minecraft:light_blue_banner", + "minecraft:light_blue_bed", + "minecraft:light_blue_carpet", + "minecraft:light_blue_concrete", + "minecraft:light_blue_concrete_powder", + "minecraft:light_blue_dye", + "minecraft:light_blue_glazed_terracotta", + "minecraft:light_blue_shulker_box", + "minecraft:light_blue_stained_glass", + "minecraft:light_blue_stained_glass_pane", + "minecraft:light_blue_terracotta", + "minecraft:light_blue_wool", + "minecraft:light_gray_banner", + "minecraft:light_gray_bed", + "minecraft:light_gray_carpet", + "minecraft:light_gray_concrete", + "minecraft:light_gray_concrete_powder", + "minecraft:light_gray_dye", + "minecraft:light_gray_glazed_terracotta", + "minecraft:light_gray_shulker_box", + "minecraft:light_gray_stained_glass", + "minecraft:light_gray_stained_glass_pane", + "minecraft:light_gray_terracotta", + "minecraft:light_gray_wool", + "minecraft:light_weighted_pressure_plate", + "minecraft:lilac", + "minecraft:lily_of_the_valley", + "minecraft:lily_pad", + "minecraft:lime_banner", + "minecraft:lime_bed", + "minecraft:lime_carpet", + "minecraft:lime_concrete", + "minecraft:lime_concrete_powder", + "minecraft:lime_dye", + "minecraft:lime_glazed_terracotta", + "minecraft:lime_shulker_box", + "minecraft:lime_stained_glass", + "minecraft:lime_stained_glass_pane", + "minecraft:lime_terracotta", + "minecraft:lime_wool", + "minecraft:lingering_potion", + "minecraft:llama_spawn_egg", + "minecraft:lodestone", + "minecraft:loom", + "minecraft:magenta_banner", + "minecraft:magenta_bed", + "minecraft:magenta_carpet", + "minecraft:magenta_concrete", + "minecraft:magenta_concrete_powder", + "minecraft:magenta_dye", + "minecraft:magenta_glazed_terracotta", + "minecraft:magenta_shulker_box", + "minecraft:magenta_stained_glass", + "minecraft:magenta_stained_glass_pane", + "minecraft:magenta_terracotta", + "minecraft:magenta_wool", + "minecraft:magma_block", + "minecraft:magma_cream", + "minecraft:magma_cube_spawn_egg", + "minecraft:map", + "minecraft:melon", + "minecraft:melon_seeds", + "minecraft:melon_slice", + "minecraft:milk_bucket", + "minecraft:minecart", + "minecraft:mojang_banner_pattern", + "minecraft:mooshroom_spawn_egg", + "minecraft:mossy_cobblestone", + "minecraft:mossy_cobblestone_slab", + "minecraft:mossy_cobblestone_stairs", + "minecraft:mossy_cobblestone_wall", + "minecraft:mossy_stone_brick_slab", + "minecraft:mossy_stone_brick_stairs", + "minecraft:mossy_stone_brick_wall", + "minecraft:mossy_stone_bricks", + "minecraft:mule_spawn_egg", + "minecraft:mushroom_stem", + "minecraft:mushroom_stew", + "minecraft:music_disc_11", + "minecraft:music_disc_13", + "minecraft:music_disc_blocks", + "minecraft:music_disc_cat", + "minecraft:music_disc_chirp", + "minecraft:music_disc_far", + "minecraft:music_disc_mall", + "minecraft:music_disc_mellohi", + "minecraft:music_disc_pigstep", + "minecraft:music_disc_stal", + "minecraft:music_disc_strad", + "minecraft:music_disc_wait", + "minecraft:music_disc_ward", + "minecraft:mutton", + "minecraft:mycelium", + "minecraft:name_tag", + "minecraft:nautilus_shell", + "minecraft:nether_brick", + "minecraft:nether_brick_fence", + "minecraft:nether_brick_slab", + "minecraft:nether_brick_stairs", + "minecraft:nether_brick_wall", + "minecraft:nether_bricks", + "minecraft:nether_gold_ore", + "minecraft:nether_quartz_ore", + "minecraft:nether_sprouts", + "minecraft:nether_star", + "minecraft:nether_wart", + "minecraft:nether_wart_block", + "minecraft:netherite_axe", + "minecraft:netherite_block", + "minecraft:netherite_boots", + "minecraft:netherite_chestplate", + "minecraft:netherite_helmet", + "minecraft:netherite_hoe", + "minecraft:netherite_ingot", + "minecraft:netherite_leggings", + "minecraft:netherite_pickaxe", + "minecraft:netherite_scrap", + "minecraft:netherite_shovel", + "minecraft:netherite_sword", + "minecraft:netherrack", + "minecraft:note_block", + "minecraft:oak_boat", + "minecraft:oak_button", + "minecraft:oak_door", + "minecraft:oak_fence", + "minecraft:oak_fence_gate", + "minecraft:oak_leaves", + "minecraft:oak_log", + "minecraft:oak_planks", + "minecraft:oak_pressure_plate", + "minecraft:oak_sapling", + "minecraft:oak_sign", + "minecraft:oak_slab", + "minecraft:oak_stairs", + "minecraft:oak_trapdoor", + "minecraft:oak_wood", + "minecraft:observer", + "minecraft:obsidian", + "minecraft:ocelot_spawn_egg", + "minecraft:orange_banner", + "minecraft:orange_bed", + "minecraft:orange_carpet", + "minecraft:orange_concrete", + "minecraft:orange_concrete_powder", + "minecraft:orange_dye", + "minecraft:orange_glazed_terracotta", + "minecraft:orange_shulker_box", + "minecraft:orange_stained_glass", + "minecraft:orange_stained_glass_pane", + "minecraft:orange_terracotta", + "minecraft:orange_tulip", + "minecraft:orange_wool", + "minecraft:oxeye_daisy", + "minecraft:packed_ice", + "minecraft:painting", + "minecraft:panda_spawn_egg", + "minecraft:paper", + "minecraft:parrot_spawn_egg", + "minecraft:peony", + "minecraft:petrified_oak_slab", + "minecraft:phantom_membrane", + "minecraft:phantom_spawn_egg", + "minecraft:pig_spawn_egg", + "minecraft:piglin_banner_pattern", + "minecraft:piglin_spawn_egg", + "minecraft:pillager_spawn_egg", + "minecraft:pink_banner", + "minecraft:pink_bed", + "minecraft:pink_carpet", + "minecraft:pink_concrete", + "minecraft:pink_concrete_powder", + "minecraft:pink_dye", + "minecraft:pink_glazed_terracotta", + "minecraft:pink_shulker_box", + "minecraft:pink_stained_glass", + "minecraft:pink_stained_glass_pane", + "minecraft:pink_terracotta", + "minecraft:pink_tulip", + "minecraft:pink_wool", + "minecraft:piston", + "minecraft:player_head", + "minecraft:podzol", + "minecraft:poisonous_potato", + "minecraft:polar_bear_spawn_egg", + "minecraft:polished_andesite", + "minecraft:polished_andesite_slab", + "minecraft:polished_andesite_stairs", + "minecraft:polished_basalt", + "minecraft:polished_blackstone", + "minecraft:polished_blackstone_brick_slab", + "minecraft:polished_blackstone_brick_stairs", + "minecraft:polished_blackstone_brick_wall", + "minecraft:polished_blackstone_bricks", + "minecraft:polished_blackstone_button", + "minecraft:polished_blackstone_pressure_plate", + "minecraft:polished_blackstone_slab", + "minecraft:polished_blackstone_stairs", + "minecraft:polished_blackstone_wall", + "minecraft:polished_diorite", + "minecraft:polished_diorite_slab", + "minecraft:polished_diorite_stairs", + "minecraft:polished_granite", + "minecraft:polished_granite_slab", + "minecraft:polished_granite_stairs", + "minecraft:popped_chorus_fruit", + "minecraft:poppy", + "minecraft:porkchop", + "minecraft:potato", + "minecraft:potion", + "minecraft:powered_rail", + "minecraft:prismarine", + "minecraft:prismarine_brick_slab", + "minecraft:prismarine_brick_stairs", + "minecraft:prismarine_bricks", + "minecraft:prismarine_crystals", + "minecraft:prismarine_shard", + "minecraft:prismarine_slab", + "minecraft:prismarine_stairs", + "minecraft:prismarine_wall", + "minecraft:pufferfish", + "minecraft:pufferfish_bucket", + "minecraft:pufferfish_spawn_egg", + "minecraft:pumpkin", + "minecraft:pumpkin_pie", + "minecraft:pumpkin_seeds", + "minecraft:purple_banner", + "minecraft:purple_bed", + "minecraft:purple_carpet", + "minecraft:purple_concrete", + "minecraft:purple_concrete_powder", + "minecraft:purple_dye", + "minecraft:purple_glazed_terracotta", + "minecraft:purple_shulker_box", + "minecraft:purple_stained_glass", + "minecraft:purple_stained_glass_pane", + "minecraft:purple_terracotta", + "minecraft:purple_wool", + "minecraft:purpur_block", + "minecraft:purpur_pillar", + "minecraft:purpur_slab", + "minecraft:purpur_stairs", + "minecraft:quartz", + "minecraft:quartz_block", + "minecraft:quartz_bricks", + "minecraft:quartz_pillar", + "minecraft:quartz_slab", + "minecraft:quartz_stairs", + "minecraft:rabbit", + "minecraft:rabbit_foot", + "minecraft:rabbit_hide", + "minecraft:rabbit_spawn_egg", + "minecraft:rabbit_stew", + "minecraft:rail", + "minecraft:ravager_spawn_egg", + "minecraft:red_banner", + "minecraft:red_bed", + "minecraft:red_carpet", + "minecraft:red_concrete", + "minecraft:red_concrete_powder", + "minecraft:red_dye", + "minecraft:red_glazed_terracotta", + "minecraft:red_mushroom", + "minecraft:red_mushroom_block", + "minecraft:red_nether_brick_slab", + "minecraft:red_nether_brick_stairs", + "minecraft:red_nether_brick_wall", + "minecraft:red_nether_bricks", + "minecraft:red_sand", + "minecraft:red_sandstone", + "minecraft:red_sandstone_slab", + "minecraft:red_sandstone_stairs", + "minecraft:red_sandstone_wall", + "minecraft:red_shulker_box", + "minecraft:red_stained_glass", + "minecraft:red_stained_glass_pane", + "minecraft:red_terracotta", + "minecraft:red_tulip", + "minecraft:red_wool", + "minecraft:redstone", + "minecraft:redstone_block", + "minecraft:redstone_lamp", + "minecraft:redstone_ore", + "minecraft:redstone_torch", + "minecraft:repeater", + "minecraft:repeating_command_block", + "minecraft:respawn_anchor", + "minecraft:rose_bush", + "minecraft:rotten_flesh", + "minecraft:saddle", + "minecraft:salmon", + "minecraft:salmon_bucket", + "minecraft:salmon_spawn_egg", + "minecraft:sand", + "minecraft:sandstone", + "minecraft:sandstone_slab", + "minecraft:sandstone_stairs", + "minecraft:sandstone_wall", + "minecraft:scaffolding", + "minecraft:scute", + "minecraft:sea_lantern", + "minecraft:sea_pickle", + "minecraft:seagrass", + "minecraft:shears", + "minecraft:sheep_spawn_egg", + "minecraft:shield", + "minecraft:shroomlight", + "minecraft:shulker_box", + "minecraft:shulker_shell", + "minecraft:shulker_spawn_egg", + "minecraft:silverfish_spawn_egg", + "minecraft:skeleton_horse_spawn_egg", + "minecraft:skeleton_skull", + "minecraft:skeleton_spawn_egg", + "minecraft:skull_banner_pattern", + "minecraft:slime_ball", + "minecraft:slime_block", + "minecraft:slime_spawn_egg", + "minecraft:smithing_table", + "minecraft:smoker", + "minecraft:smooth_quartz", + "minecraft:smooth_quartz_slab", + "minecraft:smooth_quartz_stairs", + "minecraft:smooth_red_sandstone", + "minecraft:smooth_red_sandstone_slab", + "minecraft:smooth_red_sandstone_stairs", + "minecraft:smooth_sandstone", + "minecraft:smooth_sandstone_slab", + "minecraft:smooth_sandstone_stairs", + "minecraft:smooth_stone", + "minecraft:smooth_stone_slab", + "minecraft:snow", + "minecraft:snow_block", + "minecraft:snowball", + "minecraft:soul_campfire", + "minecraft:soul_lantern", + "minecraft:soul_sand", + "minecraft:soul_soil", + "minecraft:soul_torch", + "minecraft:spawner", + "minecraft:spectral_arrow", + "minecraft:spider_eye", + "minecraft:spider_spawn_egg", + "minecraft:splash_potion", + "minecraft:sponge", + "minecraft:spruce_boat", + "minecraft:spruce_button", + "minecraft:spruce_door", + "minecraft:spruce_fence", + "minecraft:spruce_fence_gate", + "minecraft:spruce_leaves", + "minecraft:spruce_log", + "minecraft:spruce_planks", + "minecraft:spruce_pressure_plate", + "minecraft:spruce_sapling", + "minecraft:spruce_sign", + "minecraft:spruce_slab", + "minecraft:spruce_stairs", + "minecraft:spruce_trapdoor", + "minecraft:spruce_wood", + "minecraft:squid_spawn_egg", + "minecraft:stick", + "minecraft:sticky_piston", + "minecraft:stone", + "minecraft:stone_axe", + "minecraft:stone_brick_slab", + "minecraft:stone_brick_stairs", + "minecraft:stone_brick_wall", + "minecraft:stone_bricks", + "minecraft:stone_button", + "minecraft:stone_hoe", + "minecraft:stone_pickaxe", + "minecraft:stone_pressure_plate", + "minecraft:stone_shovel", + "minecraft:stone_slab", + "minecraft:stone_stairs", + "minecraft:stone_sword", + "minecraft:stonecutter", + "minecraft:stray_spawn_egg", + "minecraft:strider_spawn_egg", + "minecraft:string", + "minecraft:stripped_acacia_log", + "minecraft:stripped_acacia_wood", + "minecraft:stripped_birch_log", + "minecraft:stripped_birch_wood", + "minecraft:stripped_crimson_hyphae", + "minecraft:stripped_crimson_stem", + "minecraft:stripped_dark_oak_log", + "minecraft:stripped_dark_oak_wood", + "minecraft:stripped_jungle_log", + "minecraft:stripped_jungle_wood", + "minecraft:stripped_oak_log", + "minecraft:stripped_oak_wood", + "minecraft:stripped_spruce_log", + "minecraft:stripped_spruce_wood", + "minecraft:stripped_warped_hyphae", + "minecraft:stripped_warped_stem", + "minecraft:structure_block", + "minecraft:structure_void", + "minecraft:sugar", + "minecraft:sugar_cane", + "minecraft:sunflower", + "minecraft:suspicious_stew", + "minecraft:sweet_berries", + "minecraft:tall_grass", + "minecraft:target", + "minecraft:terracotta", + "minecraft:tipped_arrow", + "minecraft:tnt", + "minecraft:tnt_minecart", + "minecraft:torch", + "minecraft:totem_of_undying", + "minecraft:trader_llama_spawn_egg", + "minecraft:trapped_chest", + "minecraft:trident", + "minecraft:tripwire_hook", + "minecraft:tropical_fish", + "minecraft:tropical_fish_bucket", + "minecraft:tropical_fish_spawn_egg", + "minecraft:tube_coral", + "minecraft:tube_coral_block", + "minecraft:tube_coral_fan", + "minecraft:turtle_egg", + "minecraft:turtle_helmet", + "minecraft:turtle_spawn_egg", + "minecraft:twisting_vines", + "minecraft:vex_spawn_egg", + "minecraft:villager_spawn_egg", + "minecraft:vindicator_spawn_egg", + "minecraft:vine", + "minecraft:wandering_trader_spawn_egg", + "minecraft:warped_button", + "minecraft:warped_door", + "minecraft:warped_fence", + "minecraft:warped_fence_gate", + "minecraft:warped_fungus", + "minecraft:warped_fungus_on_a_stick", + "minecraft:warped_hyphae", + "minecraft:warped_nylium", + "minecraft:warped_planks", + "minecraft:warped_pressure_plate", + "minecraft:warped_roots", + "minecraft:warped_sign", + "minecraft:warped_slab", + "minecraft:warped_stairs", + "minecraft:warped_stem", + "minecraft:warped_trapdoor", + "minecraft:warped_wart_block", + "minecraft:water_bucket", + "minecraft:weeping_vines", + "minecraft:wet_sponge", + "minecraft:wheat", + "minecraft:wheat_seeds", + "minecraft:white_banner", + "minecraft:white_bed", + "minecraft:white_carpet", + "minecraft:white_concrete", + "minecraft:white_concrete_powder", + "minecraft:white_dye", + "minecraft:white_glazed_terracotta", + "minecraft:white_shulker_box", + "minecraft:white_stained_glass", + "minecraft:white_stained_glass_pane", + "minecraft:white_terracotta", + "minecraft:white_tulip", + "minecraft:white_wool", + "minecraft:witch_spawn_egg", + "minecraft:wither_rose", + "minecraft:wither_skeleton_skull", + "minecraft:wither_skeleton_spawn_egg", + "minecraft:wolf_spawn_egg", + "minecraft:wooden_axe", + "minecraft:wooden_hoe", + "minecraft:wooden_pickaxe", + "minecraft:wooden_shovel", + "minecraft:wooden_sword", + "minecraft:writable_book", + "minecraft:written_book", + "minecraft:yellow_banner", + "minecraft:yellow_bed", + "minecraft:yellow_carpet", + "minecraft:yellow_concrete", + "minecraft:yellow_concrete_powder", + "minecraft:yellow_dye", + "minecraft:yellow_glazed_terracotta", + "minecraft:yellow_shulker_box", + "minecraft:yellow_stained_glass", + "minecraft:yellow_stained_glass_pane", + "minecraft:yellow_terracotta", + "minecraft:yellow_wool", + "minecraft:zoglin_spawn_egg", + "minecraft:zombie_head", + "minecraft:zombie_horse_spawn_egg", + "minecraft:zombie_spawn_egg", + "minecraft:zombie_villager_spawn_egg", + "minecraft:zombified_piglin_spawn_egg" + ], + "entities": [ + "minecraft:area_effect_cloud", + "minecraft:armor_stand", + "minecraft:arrow", + "minecraft:bat", + "minecraft:bee", + "minecraft:blaze", + "minecraft:boat", + "minecraft:cat", + "minecraft:cave_spider", + "minecraft:chest_minecart", + "minecraft:chicken", + "minecraft:cod", + "minecraft:command_block_minecart", + "minecraft:cow", + "minecraft:creeper", + "minecraft:dolphin", + "minecraft:donkey", + "minecraft:dragon_fireball", + "minecraft:drowned", + "minecraft:egg", + "minecraft:elder_guardian", + "minecraft:end_crystal", + "minecraft:ender_dragon", + "minecraft:ender_pearl", + "minecraft:enderman", + "minecraft:endermite", + "minecraft:evoker", + "minecraft:evoker_fangs", + "minecraft:experience_bottle", + "minecraft:experience_orb", + "minecraft:eye_of_ender", + "minecraft:falling_block", + "minecraft:fireball", + "minecraft:firework_rocket", + "minecraft:fishing_bobber", + "minecraft:fox", + "minecraft:furnace_minecart", + "minecraft:ghast", + "minecraft:giant", + "minecraft:guardian", + "minecraft:hoglin", + "minecraft:hopper_minecart", + "minecraft:horse", + "minecraft:husk", + "minecraft:illusioner", + "minecraft:iron_golem", + "minecraft:item", + "minecraft:item_frame", + "minecraft:leash_knot", + "minecraft:lightning_bolt", + "minecraft:llama", + "minecraft:llama_spit", + "minecraft:magma_cube", + "minecraft:minecart", + "minecraft:mooshroom", + "minecraft:mule", + "minecraft:ocelot", + "minecraft:painting", + "minecraft:panda", + "minecraft:parrot", + "minecraft:phantom", + "minecraft:pig", + "minecraft:piglin", + "minecraft:pillager", + "minecraft:player", + "minecraft:polar_bear", + "minecraft:potion", + "minecraft:pufferfish", + "minecraft:rabbit", + "minecraft:ravager", + "minecraft:salmon", + "minecraft:sheep", + "minecraft:shulker", + "minecraft:shulker_bullet", + "minecraft:silverfish", + "minecraft:skeleton", + "minecraft:skeleton_horse", + "minecraft:slime", + "minecraft:small_fireball", + "minecraft:snow_golem", + "minecraft:snowball", + "minecraft:spawner_minecart", + "minecraft:spectral_arrow", + "minecraft:spider", + "minecraft:squid", + "minecraft:stray", + "minecraft:strider", + "minecraft:tnt", + "minecraft:tnt_minecart", + "minecraft:trader_llama", + "minecraft:trident", + "minecraft:tropical_fish", + "minecraft:turtle", + "minecraft:vex", + "minecraft:villager", + "minecraft:vindicator", + "minecraft:wandering_trader", + "minecraft:witch", + "minecraft:wither", + "minecraft:wither_skeleton", + "minecraft:wither_skull", + "minecraft:wolf", + "minecraft:zoglin", + "minecraft:zombie", + "minecraft:zombie_horse", + "minecraft:zombie_villager", + "minecraft:zombified_piglin" + ], + "biomes": [ + "minecraft:badlands", + "minecraft:badlands_plateau", + "minecraft:bamboo_jungle", + "minecraft:bamboo_jungle_hills", + "minecraft:basalt_deltas", + "minecraft:beach", + "minecraft:birch_forest", + "minecraft:birch_forest_hills", + "minecraft:cold_ocean", + "minecraft:crimson_forest", + "minecraft:dark_forest", + "minecraft:dark_forest_hills", + "minecraft:deep_cold_ocean", + "minecraft:deep_frozen_ocean", + "minecraft:deep_lukewarm_ocean", + "minecraft:deep_ocean", + "minecraft:deep_warm_ocean", + "minecraft:desert", + "minecraft:desert_hills", + "minecraft:desert_lakes", + "minecraft:end_barrens", + "minecraft:end_highlands", + "minecraft:end_midlands", + "minecraft:eroded_badlands", + "minecraft:flower_forest", + "minecraft:forest", + "minecraft:frozen_ocean", + "minecraft:frozen_river", + "minecraft:giant_spruce_taiga", + "minecraft:giant_spruce_taiga_hills", + "minecraft:giant_tree_taiga", + "minecraft:giant_tree_taiga_hills", + "minecraft:gravelly_mountains", + "minecraft:ice_spikes", + "minecraft:jungle", + "minecraft:jungle_edge", + "minecraft:jungle_hills", + "minecraft:lukewarm_ocean", + "minecraft:modified_badlands_plateau", + "minecraft:modified_gravelly_mountains", + "minecraft:modified_jungle", + "minecraft:modified_jungle_edge", + "minecraft:modified_wooded_badlands_plateau", + "minecraft:mountain_edge", + "minecraft:mountains", + "minecraft:mushroom_field_shore", + "minecraft:mushroom_fields", + "minecraft:nether_wastes", + "minecraft:ocean", + "minecraft:plains", + "minecraft:river", + "minecraft:savanna", + "minecraft:savanna_plateau", + "minecraft:shattered_savanna", + "minecraft:shattered_savanna_plateau", + "minecraft:small_end_islands", + "minecraft:snowy_beach", + "minecraft:snowy_mountains", + "minecraft:snowy_taiga", + "minecraft:snowy_taiga_hills", + "minecraft:snowy_taiga_mountains", + "minecraft:snowy_tundra", + "minecraft:soul_sand_valley", + "minecraft:stone_shore", + "minecraft:sunflower_plains", + "minecraft:swamp", + "minecraft:swamp_hills", + "minecraft:taiga", + "minecraft:taiga_hills", + "minecraft:taiga_mountains", + "minecraft:tall_birch_forest", + "minecraft:tall_birch_hills", + "minecraft:the_end", + "minecraft:the_void", + "minecraft:warm_ocean", + "minecraft:warped_forest", + "minecraft:wooded_badlands_plateau", + "minecraft:wooded_hills", + "minecraft:wooded_mountains" + ], + "blocktags": { + "minecraft:crimson_stems": [ + "minecraft:crimson_stem", + "minecraft:stripped_crimson_stem", + "minecraft:crimson_hyphae", + "minecraft:stripped_crimson_hyphae" + ], + "minecraft:infiniburn_end": [ + "minecraft:bedrock", + "minecraft:netherrack", + "minecraft:magma_block" + ], + "minecraft:strider_warm_blocks": [ + "minecraft:lava" + ], + "minecraft:hoglin_repellents": [ + "minecraft:warped_fungus", + "minecraft:potted_warped_fungus", + "minecraft:nether_portal", + "minecraft:respawn_anchor" + ], + "minecraft:slabs": [ + "minecraft:stone_slab", + "minecraft:smooth_stone_slab", + "minecraft:stone_brick_slab", + "minecraft:sandstone_slab", + "minecraft:purpur_slab", + "minecraft:quartz_slab", + "minecraft:red_sandstone_slab", + "minecraft:brick_slab", + "minecraft:cobblestone_slab", + "minecraft:nether_brick_slab", + "minecraft:petrified_oak_slab", + "minecraft:prismarine_slab", + "minecraft:prismarine_brick_slab", + "minecraft:dark_prismarine_slab", + "minecraft:polished_granite_slab", + "minecraft:smooth_red_sandstone_slab", + "minecraft:mossy_stone_brick_slab", + "minecraft:polished_diorite_slab", + "minecraft:mossy_cobblestone_slab", + "minecraft:end_stone_brick_slab", + "minecraft:smooth_sandstone_slab", + "minecraft:smooth_quartz_slab", + "minecraft:granite_slab", + "minecraft:andesite_slab", + "minecraft:red_nether_brick_slab", + "minecraft:polished_andesite_slab", + "minecraft:diorite_slab", + "minecraft:cut_sandstone_slab", + "minecraft:cut_red_sandstone_slab", + "minecraft:blackstone_slab", + "minecraft:polished_blackstone_brick_slab", + "minecraft:polished_blackstone_slab", + "minecraft:oak_slab", + "minecraft:spruce_slab", + "minecraft:birch_slab", + "minecraft:jungle_slab", + "minecraft:acacia_slab", + "minecraft:dark_oak_slab", + "minecraft:crimson_slab", + "minecraft:warped_slab" + ], + "minecraft:carpets": [ + "minecraft:white_carpet", + "minecraft:orange_carpet", + "minecraft:magenta_carpet", + "minecraft:light_blue_carpet", + "minecraft:yellow_carpet", + "minecraft:lime_carpet", + "minecraft:pink_carpet", + "minecraft:gray_carpet", + "minecraft:light_gray_carpet", + "minecraft:cyan_carpet", + "minecraft:purple_carpet", + "minecraft:blue_carpet", + "minecraft:brown_carpet", + "minecraft:green_carpet", + "minecraft:red_carpet", + "minecraft:black_carpet" + ], + "minecraft:stairs": [ + "minecraft:cobblestone_stairs", + "minecraft:sandstone_stairs", + "minecraft:nether_brick_stairs", + "minecraft:stone_brick_stairs", + "minecraft:brick_stairs", + "minecraft:purpur_stairs", + "minecraft:quartz_stairs", + "minecraft:red_sandstone_stairs", + "minecraft:prismarine_brick_stairs", + "minecraft:prismarine_stairs", + "minecraft:dark_prismarine_stairs", + "minecraft:polished_granite_stairs", + "minecraft:smooth_red_sandstone_stairs", + "minecraft:mossy_stone_brick_stairs", + "minecraft:polished_diorite_stairs", + "minecraft:mossy_cobblestone_stairs", + "minecraft:end_stone_brick_stairs", + "minecraft:stone_stairs", + "minecraft:smooth_sandstone_stairs", + "minecraft:smooth_quartz_stairs", + "minecraft:granite_stairs", + "minecraft:andesite_stairs", + "minecraft:red_nether_brick_stairs", + "minecraft:polished_andesite_stairs", + "minecraft:diorite_stairs", + "minecraft:blackstone_stairs", + "minecraft:polished_blackstone_brick_stairs", + "minecraft:polished_blackstone_stairs", + "minecraft:oak_stairs", + "minecraft:spruce_stairs", + "minecraft:birch_stairs", + "minecraft:jungle_stairs", + "minecraft:acacia_stairs", + "minecraft:dark_oak_stairs", + "minecraft:crimson_stairs", + "minecraft:warped_stairs" + ], + "minecraft:wooden_doors": [ + "minecraft:oak_door", + "minecraft:spruce_door", + "minecraft:birch_door", + "minecraft:jungle_door", + "minecraft:acacia_door", + "minecraft:dark_oak_door", + "minecraft:crimson_door", + "minecraft:warped_door" + ], + "minecraft:jungle_logs": [ + "minecraft:jungle_log", + "minecraft:jungle_wood", + "minecraft:stripped_jungle_log", + "minecraft:stripped_jungle_wood" + ], + "minecraft:planks": [ + "minecraft:oak_planks", + "minecraft:spruce_planks", + "minecraft:birch_planks", + "minecraft:jungle_planks", + "minecraft:acacia_planks", + "minecraft:dark_oak_planks", + "minecraft:crimson_planks", + "minecraft:warped_planks" + ], + "minecraft:wall_corals": [ + "minecraft:tube_coral_wall_fan", + "minecraft:brain_coral_wall_fan", + "minecraft:bubble_coral_wall_fan", + "minecraft:fire_coral_wall_fan", + "minecraft:horn_coral_wall_fan" + ], + "minecraft:unstable_bottom_center": [ + "minecraft:acacia_fence_gate", + "minecraft:birch_fence_gate", + "minecraft:dark_oak_fence_gate", + "minecraft:jungle_fence_gate", + "minecraft:oak_fence_gate", + "minecraft:spruce_fence_gate", + "minecraft:crimson_fence_gate", + "minecraft:warped_fence_gate" + ], + "minecraft:shulker_boxes": [ + "minecraft:shulker_box", + "minecraft:black_shulker_box", + "minecraft:blue_shulker_box", + "minecraft:brown_shulker_box", + "minecraft:cyan_shulker_box", + "minecraft:gray_shulker_box", + "minecraft:green_shulker_box", + "minecraft:light_blue_shulker_box", + "minecraft:light_gray_shulker_box", + "minecraft:lime_shulker_box", + "minecraft:magenta_shulker_box", + "minecraft:orange_shulker_box", + "minecraft:pink_shulker_box", + "minecraft:purple_shulker_box", + "minecraft:red_shulker_box", + "minecraft:white_shulker_box", + "minecraft:yellow_shulker_box" + ], + "minecraft:acacia_logs": [ + "minecraft:acacia_log", + "minecraft:acacia_wood", + "minecraft:stripped_acacia_log", + "minecraft:stripped_acacia_wood" + ], + "minecraft:wither_immune": [ + "minecraft:barrier", + "minecraft:bedrock", + "minecraft:end_portal", + "minecraft:end_portal_frame", + "minecraft:end_gateway", + "minecraft:command_block", + "minecraft:repeating_command_block", + "minecraft:chain_command_block", + "minecraft:structure_block", + "minecraft:jigsaw", + "minecraft:moving_piston" + ], + "minecraft:fire": [ + "minecraft:fire", + "minecraft:soul_fire" + ], + "minecraft:flower_pots": [ + "minecraft:flower_pot", + "minecraft:potted_poppy", + "minecraft:potted_blue_orchid", + "minecraft:potted_allium", + "minecraft:potted_azure_bluet", + "minecraft:potted_red_tulip", + "minecraft:potted_orange_tulip", + "minecraft:potted_white_tulip", + "minecraft:potted_pink_tulip", + "minecraft:potted_oxeye_daisy", + "minecraft:potted_dandelion", + "minecraft:potted_oak_sapling", + "minecraft:potted_spruce_sapling", + "minecraft:potted_birch_sapling", + "minecraft:potted_jungle_sapling", + "minecraft:potted_acacia_sapling", + "minecraft:potted_dark_oak_sapling", + "minecraft:potted_red_mushroom", + "minecraft:potted_brown_mushroom", + "minecraft:potted_dead_bush", + "minecraft:potted_fern", + "minecraft:potted_cactus", + "minecraft:potted_cornflower", + "minecraft:potted_lily_of_the_valley", + "minecraft:potted_wither_rose", + "minecraft:potted_bamboo", + "minecraft:potted_crimson_fungus", + "minecraft:potted_warped_fungus", + "minecraft:potted_crimson_roots", + "minecraft:potted_warped_roots" + ], + "minecraft:wall_post_override": [ + "minecraft:torch", + "minecraft:soul_torch", + "minecraft:redstone_torch", + "minecraft:tripwire", + "minecraft:oak_sign", + "minecraft:spruce_sign", + "minecraft:birch_sign", + "minecraft:acacia_sign", + "minecraft:jungle_sign", + "minecraft:dark_oak_sign", + "minecraft:crimson_sign", + "minecraft:warped_sign", + "minecraft:oak_wall_sign", + "minecraft:spruce_wall_sign", + "minecraft:birch_wall_sign", + "minecraft:acacia_wall_sign", + "minecraft:jungle_wall_sign", + "minecraft:dark_oak_wall_sign", + "minecraft:crimson_wall_sign", + "minecraft:warped_wall_sign", + "minecraft:white_banner", + "minecraft:orange_banner", + "minecraft:magenta_banner", + "minecraft:light_blue_banner", + "minecraft:yellow_banner", + "minecraft:lime_banner", + "minecraft:pink_banner", + "minecraft:gray_banner", + "minecraft:light_gray_banner", + "minecraft:cyan_banner", + "minecraft:purple_banner", + "minecraft:blue_banner", + "minecraft:brown_banner", + "minecraft:green_banner", + "minecraft:red_banner", + "minecraft:black_banner", + "minecraft:white_wall_banner", + "minecraft:orange_wall_banner", + "minecraft:magenta_wall_banner", + "minecraft:light_blue_wall_banner", + "minecraft:yellow_wall_banner", + "minecraft:lime_wall_banner", + "minecraft:pink_wall_banner", + "minecraft:gray_wall_banner", + "minecraft:light_gray_wall_banner", + "minecraft:cyan_wall_banner", + "minecraft:purple_wall_banner", + "minecraft:blue_wall_banner", + "minecraft:brown_wall_banner", + "minecraft:green_wall_banner", + "minecraft:red_wall_banner", + "minecraft:black_wall_banner", + "minecraft:light_weighted_pressure_plate", + "minecraft:heavy_weighted_pressure_plate", + "minecraft:oak_pressure_plate", + "minecraft:spruce_pressure_plate", + "minecraft:birch_pressure_plate", + "minecraft:jungle_pressure_plate", + "minecraft:acacia_pressure_plate", + "minecraft:dark_oak_pressure_plate", + "minecraft:crimson_pressure_plate", + "minecraft:warped_pressure_plate", + "minecraft:stone_pressure_plate", + "minecraft:polished_blackstone_pressure_plate" + ], + "minecraft:stone_bricks": [ + "minecraft:stone_bricks", + "minecraft:mossy_stone_bricks", + "minecraft:cracked_stone_bricks", + "minecraft:chiseled_stone_bricks" + ], + "minecraft:enderman_holdable": [ + "minecraft:grass_block", + "minecraft:dirt", + "minecraft:coarse_dirt", + "minecraft:podzol", + "minecraft:sand", + "minecraft:red_sand", + "minecraft:gravel", + "minecraft:brown_mushroom", + "minecraft:red_mushroom", + "minecraft:tnt", + "minecraft:cactus", + "minecraft:clay", + "minecraft:pumpkin", + "minecraft:carved_pumpkin", + "minecraft:melon", + "minecraft:mycelium", + "minecraft:crimson_fungus", + "minecraft:crimson_nylium", + "minecraft:crimson_roots", + "minecraft:warped_fungus", + "minecraft:warped_nylium", + "minecraft:warped_roots", + "minecraft:dandelion", + "minecraft:poppy", + "minecraft:blue_orchid", + "minecraft:allium", + "minecraft:azure_bluet", + "minecraft:red_tulip", + "minecraft:orange_tulip", + "minecraft:white_tulip", + "minecraft:pink_tulip", + "minecraft:oxeye_daisy", + "minecraft:cornflower", + "minecraft:lily_of_the_valley", + "minecraft:wither_rose" + ], + "minecraft:spruce_logs": [ + "minecraft:spruce_log", + "minecraft:spruce_wood", + "minecraft:stripped_spruce_log", + "minecraft:stripped_spruce_wood" + ], + "minecraft:flowers": [ + "minecraft:dandelion", + "minecraft:poppy", + "minecraft:blue_orchid", + "minecraft:allium", + "minecraft:azure_bluet", + "minecraft:red_tulip", + "minecraft:orange_tulip", + "minecraft:white_tulip", + "minecraft:pink_tulip", + "minecraft:oxeye_daisy", + "minecraft:cornflower", + "minecraft:lily_of_the_valley", + "minecraft:wither_rose", + "minecraft:sunflower", + "minecraft:lilac", + "minecraft:peony", + "minecraft:rose_bush" + ], + "minecraft:soul_speed_blocks": [ + "minecraft:soul_sand", + "minecraft:soul_soil" + ], + "minecraft:wooden_slabs": [ + "minecraft:oak_slab", + "minecraft:spruce_slab", + "minecraft:birch_slab", + "minecraft:jungle_slab", + "minecraft:acacia_slab", + "minecraft:dark_oak_slab", + "minecraft:crimson_slab", + "minecraft:warped_slab" + ], + "minecraft:stone_pressure_plates": [ + "minecraft:stone_pressure_plate", + "minecraft:polished_blackstone_pressure_plate" + ], + "minecraft:coral_blocks": [ + "minecraft:tube_coral_block", + "minecraft:brain_coral_block", + "minecraft:bubble_coral_block", + "minecraft:fire_coral_block", + "minecraft:horn_coral_block" + ], + "minecraft:signs": [ + "minecraft:oak_sign", + "minecraft:spruce_sign", + "minecraft:birch_sign", + "minecraft:acacia_sign", + "minecraft:jungle_sign", + "minecraft:dark_oak_sign", + "minecraft:crimson_sign", + "minecraft:warped_sign", + "minecraft:oak_wall_sign", + "minecraft:spruce_wall_sign", + "minecraft:birch_wall_sign", + "minecraft:acacia_wall_sign", + "minecraft:jungle_wall_sign", + "minecraft:dark_oak_wall_sign", + "minecraft:crimson_wall_sign", + "minecraft:warped_wall_sign" + ], + "minecraft:guarded_by_piglins": [ + "minecraft:gold_block", + "minecraft:barrel", + "minecraft:chest", + "minecraft:ender_chest", + "minecraft:gilded_blackstone", + "minecraft:trapped_chest", + "minecraft:shulker_box", + "minecraft:black_shulker_box", + "minecraft:blue_shulker_box", + "minecraft:brown_shulker_box", + "minecraft:cyan_shulker_box", + "minecraft:gray_shulker_box", + "minecraft:green_shulker_box", + "minecraft:light_blue_shulker_box", + "minecraft:light_gray_shulker_box", + "minecraft:lime_shulker_box", + "minecraft:magenta_shulker_box", + "minecraft:orange_shulker_box", + "minecraft:pink_shulker_box", + "minecraft:purple_shulker_box", + "minecraft:red_shulker_box", + "minecraft:white_shulker_box", + "minecraft:yellow_shulker_box", + "minecraft:gold_ore", + "minecraft:nether_gold_ore" + ], + "minecraft:dark_oak_logs": [ + "minecraft:dark_oak_log", + "minecraft:dark_oak_wood", + "minecraft:stripped_dark_oak_log", + "minecraft:stripped_dark_oak_wood" + ], + "minecraft:climbable": [ + "minecraft:ladder", + "minecraft:vine", + "minecraft:scaffolding", + "minecraft:weeping_vines", + "minecraft:weeping_vines_plant", + "minecraft:twisting_vines", + "minecraft:twisting_vines_plant" + ], + "minecraft:logs_that_burn": [ + "minecraft:dark_oak_log", + "minecraft:dark_oak_wood", + "minecraft:stripped_dark_oak_log", + "minecraft:stripped_dark_oak_wood", + "minecraft:oak_log", + "minecraft:oak_wood", + "minecraft:stripped_oak_log", + "minecraft:stripped_oak_wood", + "minecraft:acacia_log", + "minecraft:acacia_wood", + "minecraft:stripped_acacia_log", + "minecraft:stripped_acacia_wood", + "minecraft:birch_log", + "minecraft:birch_wood", + "minecraft:stripped_birch_log", + "minecraft:stripped_birch_wood", + "minecraft:jungle_log", + "minecraft:jungle_wood", + "minecraft:stripped_jungle_log", + "minecraft:stripped_jungle_wood", + "minecraft:spruce_log", + "minecraft:spruce_wood", + "minecraft:stripped_spruce_log", + "minecraft:stripped_spruce_wood" + ], + "minecraft:sand": [ + "minecraft:sand", + "minecraft:red_sand" + ], + "minecraft:non_flammable_wood": [ + "minecraft:warped_stem", + "minecraft:stripped_warped_stem", + "minecraft:warped_hyphae", + "minecraft:stripped_warped_hyphae", + "minecraft:crimson_stem", + "minecraft:stripped_crimson_stem", + "minecraft:crimson_hyphae", + "minecraft:stripped_crimson_hyphae", + "minecraft:crimson_planks", + "minecraft:warped_planks", + "minecraft:crimson_slab", + "minecraft:warped_slab", + "minecraft:crimson_pressure_plate", + "minecraft:warped_pressure_plate", + "minecraft:crimson_fence", + "minecraft:warped_fence", + "minecraft:crimson_trapdoor", + "minecraft:warped_trapdoor", + "minecraft:crimson_fence_gate", + "minecraft:warped_fence_gate", + "minecraft:crimson_stairs", + "minecraft:warped_stairs", + "minecraft:crimson_button", + "minecraft:warped_button", + "minecraft:crimson_door", + "minecraft:warped_door", + "minecraft:crimson_sign", + "minecraft:warped_sign", + "minecraft:crimson_wall_sign", + "minecraft:warped_wall_sign" + ], + "minecraft:valid_spawn": [ + "minecraft:grass_block", + "minecraft:podzol" + ], + "minecraft:beacon_base_blocks": [ + "minecraft:netherite_block", + "minecraft:emerald_block", + "minecraft:diamond_block", + "minecraft:gold_block", + "minecraft:iron_block" + ], + "minecraft:underwater_bonemeals": [ + "minecraft:seagrass", + "minecraft:tube_coral_fan", + "minecraft:brain_coral_fan", + "minecraft:bubble_coral_fan", + "minecraft:fire_coral_fan", + "minecraft:horn_coral_fan", + "minecraft:tube_coral", + "minecraft:brain_coral", + "minecraft:bubble_coral", + "minecraft:fire_coral", + "minecraft:horn_coral", + "minecraft:tube_coral_wall_fan", + "minecraft:brain_coral_wall_fan", + "minecraft:bubble_coral_wall_fan", + "minecraft:fire_coral_wall_fan", + "minecraft:horn_coral_wall_fan" + ], + "minecraft:oak_logs": [ + "minecraft:oak_log", + "minecraft:oak_wood", + "minecraft:stripped_oak_log", + "minecraft:stripped_oak_wood" + ], + "minecraft:buttons": [ + "minecraft:stone_button", + "minecraft:polished_blackstone_button", + "minecraft:oak_button", + "minecraft:spruce_button", + "minecraft:birch_button", + "minecraft:jungle_button", + "minecraft:acacia_button", + "minecraft:dark_oak_button", + "minecraft:crimson_button", + "minecraft:warped_button" + ], + "minecraft:prevent_mob_spawning_inside": [ + "minecraft:rail", + "minecraft:powered_rail", + "minecraft:detector_rail", + "minecraft:activator_rail" + ], + "minecraft:wooden_pressure_plates": [ + "minecraft:oak_pressure_plate", + "minecraft:spruce_pressure_plate", + "minecraft:birch_pressure_plate", + "minecraft:jungle_pressure_plate", + "minecraft:acacia_pressure_plate", + "minecraft:dark_oak_pressure_plate", + "minecraft:crimson_pressure_plate", + "minecraft:warped_pressure_plate" + ], + "minecraft:soul_fire_base_blocks": [ + "minecraft:soul_sand", + "minecraft:soul_soil" + ], + "minecraft:beds": [ + "minecraft:red_bed", + "minecraft:black_bed", + "minecraft:blue_bed", + "minecraft:brown_bed", + "minecraft:cyan_bed", + "minecraft:gray_bed", + "minecraft:green_bed", + "minecraft:light_blue_bed", + "minecraft:light_gray_bed", + "minecraft:lime_bed", + "minecraft:magenta_bed", + "minecraft:orange_bed", + "minecraft:pink_bed", + "minecraft:purple_bed", + "minecraft:white_bed", + "minecraft:yellow_bed" + ], + "minecraft:walls": [ + "minecraft:cobblestone_wall", + "minecraft:mossy_cobblestone_wall", + "minecraft:brick_wall", + "minecraft:prismarine_wall", + "minecraft:red_sandstone_wall", + "minecraft:mossy_stone_brick_wall", + "minecraft:granite_wall", + "minecraft:stone_brick_wall", + "minecraft:nether_brick_wall", + "minecraft:andesite_wall", + "minecraft:red_nether_brick_wall", + "minecraft:sandstone_wall", + "minecraft:end_stone_brick_wall", + "minecraft:diorite_wall", + "minecraft:blackstone_wall", + "minecraft:polished_blackstone_brick_wall", + "minecraft:polished_blackstone_wall" + ], + "minecraft:fence_gates": [ + "minecraft:acacia_fence_gate", + "minecraft:birch_fence_gate", + "minecraft:dark_oak_fence_gate", + "minecraft:jungle_fence_gate", + "minecraft:oak_fence_gate", + "minecraft:spruce_fence_gate", + "minecraft:crimson_fence_gate", + "minecraft:warped_fence_gate" + ], + "minecraft:rails": [ + "minecraft:rail", + "minecraft:powered_rail", + "minecraft:detector_rail", + "minecraft:activator_rail" + ], + "minecraft:beehives": [ + "minecraft:bee_nest", + "minecraft:beehive" + ], + "minecraft:birch_logs": [ + "minecraft:birch_log", + "minecraft:birch_wood", + "minecraft:stripped_birch_log", + "minecraft:stripped_birch_wood" + ], + "minecraft:wooden_trapdoors": [ + "minecraft:acacia_trapdoor", + "minecraft:birch_trapdoor", + "minecraft:dark_oak_trapdoor", + "minecraft:jungle_trapdoor", + "minecraft:oak_trapdoor", + "minecraft:spruce_trapdoor", + "minecraft:crimson_trapdoor", + "minecraft:warped_trapdoor" + ], + "minecraft:wooden_fences": [ + "minecraft:oak_fence", + "minecraft:acacia_fence", + "minecraft:dark_oak_fence", + "minecraft:spruce_fence", + "minecraft:birch_fence", + "minecraft:jungle_fence", + "minecraft:crimson_fence", + "minecraft:warped_fence" + ], + "minecraft:pressure_plates": [ + "minecraft:light_weighted_pressure_plate", + "minecraft:heavy_weighted_pressure_plate", + "minecraft:oak_pressure_plate", + "minecraft:spruce_pressure_plate", + "minecraft:birch_pressure_plate", + "minecraft:jungle_pressure_plate", + "minecraft:acacia_pressure_plate", + "minecraft:dark_oak_pressure_plate", + "minecraft:crimson_pressure_plate", + "minecraft:warped_pressure_plate", + "minecraft:stone_pressure_plate", + "minecraft:polished_blackstone_pressure_plate" + ], + "minecraft:saplings": [ + "minecraft:oak_sapling", + "minecraft:spruce_sapling", + "minecraft:birch_sapling", + "minecraft:jungle_sapling", + "minecraft:acacia_sapling", + "minecraft:dark_oak_sapling" + ], + "minecraft:small_flowers": [ + "minecraft:dandelion", + "minecraft:poppy", + "minecraft:blue_orchid", + "minecraft:allium", + "minecraft:azure_bluet", + "minecraft:red_tulip", + "minecraft:orange_tulip", + "minecraft:white_tulip", + "minecraft:pink_tulip", + "minecraft:oxeye_daisy", + "minecraft:cornflower", + "minecraft:lily_of_the_valley", + "minecraft:wither_rose" + ], + "minecraft:wart_blocks": [ + "minecraft:nether_wart_block", + "minecraft:warped_wart_block" + ], + "minecraft:crops": [ + "minecraft:beetroots", + "minecraft:carrots", + "minecraft:potatoes", + "minecraft:wheat", + "minecraft:melon_stem", + "minecraft:pumpkin_stem" + ], + "minecraft:bamboo_plantable_on": [ + "minecraft:bamboo", + "minecraft:bamboo_sapling", + "minecraft:gravel", + "minecraft:dirt", + "minecraft:grass_block", + "minecraft:podzol", + "minecraft:coarse_dirt", + "minecraft:mycelium", + "minecraft:sand", + "minecraft:red_sand" + ], + "minecraft:infiniburn_overworld": [ + "minecraft:netherrack", + "minecraft:magma_block" + ], + "minecraft:ice": [ + "minecraft:ice", + "minecraft:packed_ice", + "minecraft:blue_ice", + "minecraft:frosted_ice" + ], + "minecraft:wooden_stairs": [ + "minecraft:oak_stairs", + "minecraft:spruce_stairs", + "minecraft:birch_stairs", + "minecraft:jungle_stairs", + "minecraft:acacia_stairs", + "minecraft:dark_oak_stairs", + "minecraft:crimson_stairs", + "minecraft:warped_stairs" + ], + "minecraft:anvil": [ + "minecraft:anvil", + "minecraft:chipped_anvil", + "minecraft:damaged_anvil" + ], + "minecraft:tall_flowers": [ + "minecraft:sunflower", + "minecraft:lilac", + "minecraft:peony", + "minecraft:rose_bush" + ], + "minecraft:gold_ores": [ + "minecraft:gold_ore", + "minecraft:nether_gold_ore" + ], + "minecraft:logs": [ + "minecraft:dark_oak_log", + "minecraft:dark_oak_wood", + "minecraft:stripped_dark_oak_log", + "minecraft:stripped_dark_oak_wood", + "minecraft:oak_log", + "minecraft:oak_wood", + "minecraft:stripped_oak_log", + "minecraft:stripped_oak_wood", + "minecraft:acacia_log", + "minecraft:acacia_wood", + "minecraft:stripped_acacia_log", + "minecraft:stripped_acacia_wood", + "minecraft:birch_log", + "minecraft:birch_wood", + "minecraft:stripped_birch_log", + "minecraft:stripped_birch_wood", + "minecraft:jungle_log", + "minecraft:jungle_wood", + "minecraft:stripped_jungle_log", + "minecraft:stripped_jungle_wood", + "minecraft:spruce_log", + "minecraft:spruce_wood", + "minecraft:stripped_spruce_log", + "minecraft:stripped_spruce_wood", + "minecraft:crimson_stem", + "minecraft:stripped_crimson_stem", + "minecraft:crimson_hyphae", + "minecraft:stripped_crimson_hyphae", + "minecraft:warped_stem", + "minecraft:stripped_warped_stem", + "minecraft:warped_hyphae", + "minecraft:stripped_warped_hyphae" + ], + "minecraft:corals": [ + "minecraft:tube_coral_fan", + "minecraft:brain_coral_fan", + "minecraft:bubble_coral_fan", + "minecraft:fire_coral_fan", + "minecraft:horn_coral_fan", + "minecraft:tube_coral", + "minecraft:brain_coral", + "minecraft:bubble_coral", + "minecraft:fire_coral", + "minecraft:horn_coral" + ], + "minecraft:piglin_repellents": [ + "minecraft:soul_fire", + "minecraft:soul_torch", + "minecraft:soul_lantern", + "minecraft:soul_wall_torch", + "minecraft:soul_campfire" + ], + "minecraft:bee_growables": [ + "minecraft:sweet_berry_bush", + "minecraft:beetroots", + "minecraft:carrots", + "minecraft:potatoes", + "minecraft:wheat", + "minecraft:melon_stem", + "minecraft:pumpkin_stem" + ], + "minecraft:infiniburn_nether": [ + "minecraft:netherrack", + "minecraft:magma_block" + ], + "minecraft:wooden_buttons": [ + "minecraft:oak_button", + "minecraft:spruce_button", + "minecraft:birch_button", + "minecraft:jungle_button", + "minecraft:acacia_button", + "minecraft:dark_oak_button", + "minecraft:crimson_button", + "minecraft:warped_button" + ], + "minecraft:wool": [ + "minecraft:white_wool", + "minecraft:orange_wool", + "minecraft:magenta_wool", + "minecraft:light_blue_wool", + "minecraft:yellow_wool", + "minecraft:lime_wool", + "minecraft:pink_wool", + "minecraft:gray_wool", + "minecraft:light_gray_wool", + "minecraft:cyan_wool", + "minecraft:purple_wool", + "minecraft:blue_wool", + "minecraft:brown_wool", + "minecraft:green_wool", + "minecraft:red_wool", + "minecraft:black_wool" + ], + "minecraft:coral_plants": [ + "minecraft:tube_coral", + "minecraft:brain_coral", + "minecraft:bubble_coral", + "minecraft:fire_coral", + "minecraft:horn_coral" + ], + "minecraft:banners": [ + "minecraft:white_banner", + "minecraft:orange_banner", + "minecraft:magenta_banner", + "minecraft:light_blue_banner", + "minecraft:yellow_banner", + "minecraft:lime_banner", + "minecraft:pink_banner", + "minecraft:gray_banner", + "minecraft:light_gray_banner", + "minecraft:cyan_banner", + "minecraft:purple_banner", + "minecraft:blue_banner", + "minecraft:brown_banner", + "minecraft:green_banner", + "minecraft:red_banner", + "minecraft:black_banner", + "minecraft:white_wall_banner", + "minecraft:orange_wall_banner", + "minecraft:magenta_wall_banner", + "minecraft:light_blue_wall_banner", + "minecraft:yellow_wall_banner", + "minecraft:lime_wall_banner", + "minecraft:pink_wall_banner", + "minecraft:gray_wall_banner", + "minecraft:light_gray_wall_banner", + "minecraft:cyan_wall_banner", + "minecraft:purple_wall_banner", + "minecraft:blue_wall_banner", + "minecraft:brown_wall_banner", + "minecraft:green_wall_banner", + "minecraft:red_wall_banner", + "minecraft:black_wall_banner" + ], + "minecraft:dragon_immune": [ + "minecraft:barrier", + "minecraft:bedrock", + "minecraft:end_portal", + "minecraft:end_portal_frame", + "minecraft:end_gateway", + "minecraft:command_block", + "minecraft:repeating_command_block", + "minecraft:chain_command_block", + "minecraft:structure_block", + "minecraft:jigsaw", + "minecraft:moving_piston", + "minecraft:obsidian", + "minecraft:crying_obsidian", + "minecraft:end_stone", + "minecraft:iron_bars", + "minecraft:respawn_anchor" + ], + "minecraft:doors": [ + "minecraft:iron_door", + "minecraft:oak_door", + "minecraft:spruce_door", + "minecraft:birch_door", + "minecraft:jungle_door", + "minecraft:acacia_door", + "minecraft:dark_oak_door", + "minecraft:crimson_door", + "minecraft:warped_door" + ], + "minecraft:nylium": [ + "minecraft:crimson_nylium", + "minecraft:warped_nylium" + ], + "minecraft:portals": [ + "minecraft:nether_portal", + "minecraft:end_portal", + "minecraft:end_gateway" + ], + "minecraft:fences": [ + "minecraft:nether_brick_fence", + "minecraft:oak_fence", + "minecraft:acacia_fence", + "minecraft:dark_oak_fence", + "minecraft:spruce_fence", + "minecraft:birch_fence", + "minecraft:jungle_fence", + "minecraft:crimson_fence", + "minecraft:warped_fence" + ], + "minecraft:wall_signs": [ + "minecraft:oak_wall_sign", + "minecraft:spruce_wall_sign", + "minecraft:birch_wall_sign", + "minecraft:acacia_wall_sign", + "minecraft:jungle_wall_sign", + "minecraft:dark_oak_wall_sign", + "minecraft:crimson_wall_sign", + "minecraft:warped_wall_sign" + ], + "minecraft:warped_stems": [ + "minecraft:warped_stem", + "minecraft:stripped_warped_stem", + "minecraft:warped_hyphae", + "minecraft:stripped_warped_hyphae" + ], + "minecraft:standing_signs": [ + "minecraft:oak_sign", + "minecraft:spruce_sign", + "minecraft:birch_sign", + "minecraft:acacia_sign", + "minecraft:jungle_sign", + "minecraft:dark_oak_sign", + "minecraft:crimson_sign", + "minecraft:warped_sign" + ], + "minecraft:wither_summon_base_blocks": [ + "minecraft:soul_sand", + "minecraft:soul_soil" + ], + "minecraft:impermeable": [ + "minecraft:glass", + "minecraft:white_stained_glass", + "minecraft:orange_stained_glass", + "minecraft:magenta_stained_glass", + "minecraft:light_blue_stained_glass", + "minecraft:yellow_stained_glass", + "minecraft:lime_stained_glass", + "minecraft:pink_stained_glass", + "minecraft:gray_stained_glass", + "minecraft:light_gray_stained_glass", + "minecraft:cyan_stained_glass", + "minecraft:purple_stained_glass", + "minecraft:blue_stained_glass", + "minecraft:brown_stained_glass", + "minecraft:green_stained_glass", + "minecraft:red_stained_glass", + "minecraft:black_stained_glass" + ], + "minecraft:campfires": [ + "minecraft:campfire", + "minecraft:soul_campfire" + ], + "minecraft:trapdoors": [ + "minecraft:iron_trapdoor", + "minecraft:acacia_trapdoor", + "minecraft:birch_trapdoor", + "minecraft:dark_oak_trapdoor", + "minecraft:jungle_trapdoor", + "minecraft:oak_trapdoor", + "minecraft:spruce_trapdoor", + "minecraft:crimson_trapdoor", + "minecraft:warped_trapdoor" + ], + "minecraft:leaves": [ + "minecraft:jungle_leaves", + "minecraft:oak_leaves", + "minecraft:spruce_leaves", + "minecraft:dark_oak_leaves", + "minecraft:acacia_leaves", + "minecraft:birch_leaves" + ] + }, + "itemtags": { + "minecraft:stone_tool_materials": [ + "minecraft:cobblestone", + "minecraft:blackstone" + ], + "minecraft:crimson_stems": [ + "minecraft:crimson_stem", + "minecraft:stripped_crimson_stem", + "minecraft:crimson_hyphae", + "minecraft:stripped_crimson_hyphae" + ], + "minecraft:slabs": [ + "minecraft:stone_slab", + "minecraft:smooth_stone_slab", + "minecraft:stone_brick_slab", + "minecraft:sandstone_slab", + "minecraft:purpur_slab", + "minecraft:quartz_slab", + "minecraft:red_sandstone_slab", + "minecraft:brick_slab", + "minecraft:cobblestone_slab", + "minecraft:nether_brick_slab", + "minecraft:petrified_oak_slab", + "minecraft:prismarine_slab", + "minecraft:prismarine_brick_slab", + "minecraft:dark_prismarine_slab", + "minecraft:polished_granite_slab", + "minecraft:smooth_red_sandstone_slab", + "minecraft:mossy_stone_brick_slab", + "minecraft:polished_diorite_slab", + "minecraft:mossy_cobblestone_slab", + "minecraft:end_stone_brick_slab", + "minecraft:smooth_sandstone_slab", + "minecraft:smooth_quartz_slab", + "minecraft:granite_slab", + "minecraft:andesite_slab", + "minecraft:red_nether_brick_slab", + "minecraft:polished_andesite_slab", + "minecraft:diorite_slab", + "minecraft:cut_sandstone_slab", + "minecraft:cut_red_sandstone_slab", + "minecraft:blackstone_slab", + "minecraft:polished_blackstone_brick_slab", + "minecraft:polished_blackstone_slab", + "minecraft:oak_slab", + "minecraft:spruce_slab", + "minecraft:birch_slab", + "minecraft:jungle_slab", + "minecraft:acacia_slab", + "minecraft:dark_oak_slab", + "minecraft:crimson_slab", + "minecraft:warped_slab" + ], + "minecraft:carpets": [ + "minecraft:white_carpet", + "minecraft:orange_carpet", + "minecraft:magenta_carpet", + "minecraft:light_blue_carpet", + "minecraft:yellow_carpet", + "minecraft:lime_carpet", + "minecraft:pink_carpet", + "minecraft:gray_carpet", + "minecraft:light_gray_carpet", + "minecraft:cyan_carpet", + "minecraft:purple_carpet", + "minecraft:blue_carpet", + "minecraft:brown_carpet", + "minecraft:green_carpet", + "minecraft:red_carpet", + "minecraft:black_carpet" + ], + "minecraft:fishes": [ + "minecraft:cod", + "minecraft:cooked_cod", + "minecraft:salmon", + "minecraft:cooked_salmon", + "minecraft:pufferfish", + "minecraft:tropical_fish" + ], + "minecraft:stairs": [ + "minecraft:cobblestone_stairs", + "minecraft:sandstone_stairs", + "minecraft:nether_brick_stairs", + "minecraft:stone_brick_stairs", + "minecraft:brick_stairs", + "minecraft:purpur_stairs", + "minecraft:quartz_stairs", + "minecraft:red_sandstone_stairs", + "minecraft:prismarine_brick_stairs", + "minecraft:prismarine_stairs", + "minecraft:dark_prismarine_stairs", + "minecraft:polished_granite_stairs", + "minecraft:smooth_red_sandstone_stairs", + "minecraft:mossy_stone_brick_stairs", + "minecraft:polished_diorite_stairs", + "minecraft:mossy_cobblestone_stairs", + "minecraft:end_stone_brick_stairs", + "minecraft:stone_stairs", + "minecraft:smooth_sandstone_stairs", + "minecraft:smooth_quartz_stairs", + "minecraft:granite_stairs", + "minecraft:andesite_stairs", + "minecraft:red_nether_brick_stairs", + "minecraft:polished_andesite_stairs", + "minecraft:diorite_stairs", + "minecraft:blackstone_stairs", + "minecraft:polished_blackstone_brick_stairs", + "minecraft:polished_blackstone_stairs", + "minecraft:oak_stairs", + "minecraft:spruce_stairs", + "minecraft:birch_stairs", + "minecraft:jungle_stairs", + "minecraft:acacia_stairs", + "minecraft:dark_oak_stairs", + "minecraft:crimson_stairs", + "minecraft:warped_stairs" + ], + "minecraft:wooden_doors": [ + "minecraft:oak_door", + "minecraft:spruce_door", + "minecraft:birch_door", + "minecraft:jungle_door", + "minecraft:acacia_door", + "minecraft:dark_oak_door", + "minecraft:crimson_door", + "minecraft:warped_door" + ], + "minecraft:jungle_logs": [ + "minecraft:jungle_log", + "minecraft:jungle_wood", + "minecraft:stripped_jungle_log", + "minecraft:stripped_jungle_wood" + ], + "minecraft:planks": [ + "minecraft:oak_planks", + "minecraft:spruce_planks", + "minecraft:birch_planks", + "minecraft:jungle_planks", + "minecraft:acacia_planks", + "minecraft:dark_oak_planks", + "minecraft:crimson_planks", + "minecraft:warped_planks" + ], + "minecraft:arrows": [ + "minecraft:arrow", + "minecraft:tipped_arrow", + "minecraft:spectral_arrow" + ], + "minecraft:acacia_logs": [ + "minecraft:acacia_log", + "minecraft:acacia_wood", + "minecraft:stripped_acacia_log", + "minecraft:stripped_acacia_wood" + ], + "minecraft:stone_bricks": [ + "minecraft:stone_bricks", + "minecraft:mossy_stone_bricks", + "minecraft:cracked_stone_bricks", + "minecraft:chiseled_stone_bricks" + ], + "minecraft:spruce_logs": [ + "minecraft:spruce_log", + "minecraft:spruce_wood", + "minecraft:stripped_spruce_log", + "minecraft:stripped_spruce_wood" + ], + "minecraft:flowers": [ + "minecraft:dandelion", + "minecraft:poppy", + "minecraft:blue_orchid", + "minecraft:allium", + "minecraft:azure_bluet", + "minecraft:red_tulip", + "minecraft:orange_tulip", + "minecraft:white_tulip", + "minecraft:pink_tulip", + "minecraft:oxeye_daisy", + "minecraft:cornflower", + "minecraft:lily_of_the_valley", + "minecraft:wither_rose", + "minecraft:sunflower", + "minecraft:lilac", + "minecraft:peony", + "minecraft:rose_bush" + ], + "minecraft:coals": [ + "minecraft:coal", + "minecraft:charcoal" + ], + "minecraft:wooden_slabs": [ + "minecraft:oak_slab", + "minecraft:spruce_slab", + "minecraft:birch_slab", + "minecraft:jungle_slab", + "minecraft:acacia_slab", + "minecraft:dark_oak_slab", + "minecraft:crimson_slab", + "minecraft:warped_slab" + ], + "minecraft:signs": [ + "minecraft:oak_sign", + "minecraft:spruce_sign", + "minecraft:birch_sign", + "minecraft:acacia_sign", + "minecraft:jungle_sign", + "minecraft:dark_oak_sign", + "minecraft:crimson_sign", + "minecraft:warped_sign" + ], + "minecraft:dark_oak_logs": [ + "minecraft:dark_oak_log", + "minecraft:dark_oak_wood", + "minecraft:stripped_dark_oak_log", + "minecraft:stripped_dark_oak_wood" + ], + "minecraft:logs_that_burn": [ + "minecraft:dark_oak_log", + "minecraft:dark_oak_wood", + "minecraft:stripped_dark_oak_log", + "minecraft:stripped_dark_oak_wood", + "minecraft:oak_log", + "minecraft:oak_wood", + "minecraft:stripped_oak_log", + "minecraft:stripped_oak_wood", + "minecraft:acacia_log", + "minecraft:acacia_wood", + "minecraft:stripped_acacia_log", + "minecraft:stripped_acacia_wood", + "minecraft:birch_log", + "minecraft:birch_wood", + "minecraft:stripped_birch_log", + "minecraft:stripped_birch_wood", + "minecraft:jungle_log", + "minecraft:jungle_wood", + "minecraft:stripped_jungle_log", + "minecraft:stripped_jungle_wood", + "minecraft:spruce_log", + "minecraft:spruce_wood", + "minecraft:stripped_spruce_log", + "minecraft:stripped_spruce_wood" + ], + "minecraft:sand": [ + "minecraft:sand", + "minecraft:red_sand" + ], + "minecraft:non_flammable_wood": [ + "minecraft:warped_stem", + "minecraft:stripped_warped_stem", + "minecraft:warped_hyphae", + "minecraft:stripped_warped_hyphae", + "minecraft:crimson_stem", + "minecraft:stripped_crimson_stem", + "minecraft:crimson_hyphae", + "minecraft:stripped_crimson_hyphae", + "minecraft:crimson_planks", + "minecraft:warped_planks", + "minecraft:crimson_slab", + "minecraft:warped_slab", + "minecraft:crimson_pressure_plate", + "minecraft:warped_pressure_plate", + "minecraft:crimson_fence", + "minecraft:warped_fence", + "minecraft:crimson_trapdoor", + "minecraft:warped_trapdoor", + "minecraft:crimson_fence_gate", + "minecraft:warped_fence_gate", + "minecraft:crimson_stairs", + "minecraft:warped_stairs", + "minecraft:crimson_button", + "minecraft:warped_button", + "minecraft:crimson_door", + "minecraft:warped_door", + "minecraft:crimson_sign", + "minecraft:warped_sign" + ], + "minecraft:piglin_loved": [ + "minecraft:gold_block", + "minecraft:gilded_blackstone", + "minecraft:light_weighted_pressure_plate", + "minecraft:gold_ingot", + "minecraft:bell", + "minecraft:clock", + "minecraft:golden_carrot", + "minecraft:glistering_melon_slice", + "minecraft:golden_apple", + "minecraft:enchanted_golden_apple", + "minecraft:golden_helmet", + "minecraft:golden_chestplate", + "minecraft:golden_leggings", + "minecraft:golden_boots", + "minecraft:golden_horse_armor", + "minecraft:golden_sword", + "minecraft:golden_pickaxe", + "minecraft:golden_shovel", + "minecraft:golden_axe", + "minecraft:golden_hoe", + "minecraft:gold_ore", + "minecraft:nether_gold_ore" + ], + "minecraft:oak_logs": [ + "minecraft:oak_log", + "minecraft:oak_wood", + "minecraft:stripped_oak_log", + "minecraft:stripped_oak_wood" + ], + "minecraft:buttons": [ + "minecraft:stone_button", + "minecraft:polished_blackstone_button", + "minecraft:oak_button", + "minecraft:spruce_button", + "minecraft:birch_button", + "minecraft:jungle_button", + "minecraft:acacia_button", + "minecraft:dark_oak_button", + "minecraft:crimson_button", + "minecraft:warped_button" + ], + "minecraft:wooden_pressure_plates": [ + "minecraft:oak_pressure_plate", + "minecraft:spruce_pressure_plate", + "minecraft:birch_pressure_plate", + "minecraft:jungle_pressure_plate", + "minecraft:acacia_pressure_plate", + "minecraft:dark_oak_pressure_plate", + "minecraft:crimson_pressure_plate", + "minecraft:warped_pressure_plate" + ], + "minecraft:furnace_materials": [ + "minecraft:cobblestone", + "minecraft:blackstone" + ], + "minecraft:soul_fire_base_blocks": [ + "minecraft:soul_sand", + "minecraft:soul_soil" + ], + "minecraft:beds": [ + "minecraft:red_bed", + "minecraft:black_bed", + "minecraft:blue_bed", + "minecraft:brown_bed", + "minecraft:cyan_bed", + "minecraft:gray_bed", + "minecraft:green_bed", + "minecraft:light_blue_bed", + "minecraft:light_gray_bed", + "minecraft:lime_bed", + "minecraft:magenta_bed", + "minecraft:orange_bed", + "minecraft:pink_bed", + "minecraft:purple_bed", + "minecraft:white_bed", + "minecraft:yellow_bed" + ], + "minecraft:walls": [ + "minecraft:cobblestone_wall", + "minecraft:mossy_cobblestone_wall", + "minecraft:brick_wall", + "minecraft:prismarine_wall", + "minecraft:red_sandstone_wall", + "minecraft:mossy_stone_brick_wall", + "minecraft:granite_wall", + "minecraft:stone_brick_wall", + "minecraft:nether_brick_wall", + "minecraft:andesite_wall", + "minecraft:red_nether_brick_wall", + "minecraft:sandstone_wall", + "minecraft:end_stone_brick_wall", + "minecraft:diorite_wall", + "minecraft:blackstone_wall", + "minecraft:polished_blackstone_brick_wall", + "minecraft:polished_blackstone_wall" + ], + "minecraft:rails": [ + "minecraft:rail", + "minecraft:powered_rail", + "minecraft:detector_rail", + "minecraft:activator_rail" + ], + "minecraft:birch_logs": [ + "minecraft:birch_log", + "minecraft:birch_wood", + "minecraft:stripped_birch_log", + "minecraft:stripped_birch_wood" + ], + "minecraft:wooden_trapdoors": [ + "minecraft:acacia_trapdoor", + "minecraft:birch_trapdoor", + "minecraft:dark_oak_trapdoor", + "minecraft:jungle_trapdoor", + "minecraft:oak_trapdoor", + "minecraft:spruce_trapdoor", + "minecraft:crimson_trapdoor", + "minecraft:warped_trapdoor" + ], + "minecraft:wooden_fences": [ + "minecraft:oak_fence", + "minecraft:acacia_fence", + "minecraft:dark_oak_fence", + "minecraft:spruce_fence", + "minecraft:birch_fence", + "minecraft:jungle_fence", + "minecraft:crimson_fence", + "minecraft:warped_fence" + ], + "minecraft:saplings": [ + "minecraft:oak_sapling", + "minecraft:spruce_sapling", + "minecraft:birch_sapling", + "minecraft:jungle_sapling", + "minecraft:acacia_sapling", + "minecraft:dark_oak_sapling" + ], + "minecraft:small_flowers": [ + "minecraft:dandelion", + "minecraft:poppy", + "minecraft:blue_orchid", + "minecraft:allium", + "minecraft:azure_bluet", + "minecraft:red_tulip", + "minecraft:orange_tulip", + "minecraft:white_tulip", + "minecraft:pink_tulip", + "minecraft:oxeye_daisy", + "minecraft:cornflower", + "minecraft:lily_of_the_valley", + "minecraft:wither_rose" + ], + "minecraft:boats": [ + "minecraft:oak_boat", + "minecraft:spruce_boat", + "minecraft:birch_boat", + "minecraft:jungle_boat", + "minecraft:acacia_boat", + "minecraft:dark_oak_boat" + ], + "minecraft:wooden_stairs": [ + "minecraft:oak_stairs", + "minecraft:spruce_stairs", + "minecraft:birch_stairs", + "minecraft:jungle_stairs", + "minecraft:acacia_stairs", + "minecraft:dark_oak_stairs", + "minecraft:crimson_stairs", + "minecraft:warped_stairs" + ], + "minecraft:anvil": [ + "minecraft:anvil", + "minecraft:chipped_anvil", + "minecraft:damaged_anvil" + ], + "minecraft:tall_flowers": [ + "minecraft:sunflower", + "minecraft:lilac", + "minecraft:peony", + "minecraft:rose_bush" + ], + "minecraft:gold_ores": [ + "minecraft:gold_ore", + "minecraft:nether_gold_ore" + ], + "minecraft:creeper_drop_music_discs": [ + "minecraft:music_disc_13", + "minecraft:music_disc_cat", + "minecraft:music_disc_blocks", + "minecraft:music_disc_chirp", + "minecraft:music_disc_far", + "minecraft:music_disc_mall", + "minecraft:music_disc_mellohi", + "minecraft:music_disc_stal", + "minecraft:music_disc_strad", + "minecraft:music_disc_ward", + "minecraft:music_disc_11", + "minecraft:music_disc_wait" + ], + "minecraft:logs": [ + "minecraft:dark_oak_log", + "minecraft:dark_oak_wood", + "minecraft:stripped_dark_oak_log", + "minecraft:stripped_dark_oak_wood", + "minecraft:oak_log", + "minecraft:oak_wood", + "minecraft:stripped_oak_log", + "minecraft:stripped_oak_wood", + "minecraft:acacia_log", + "minecraft:acacia_wood", + "minecraft:stripped_acacia_log", + "minecraft:stripped_acacia_wood", + "minecraft:birch_log", + "minecraft:birch_wood", + "minecraft:stripped_birch_log", + "minecraft:stripped_birch_wood", + "minecraft:jungle_log", + "minecraft:jungle_wood", + "minecraft:stripped_jungle_log", + "minecraft:stripped_jungle_wood", + "minecraft:spruce_log", + "minecraft:spruce_wood", + "minecraft:stripped_spruce_log", + "minecraft:stripped_spruce_wood", + "minecraft:crimson_stem", + "minecraft:stripped_crimson_stem", + "minecraft:crimson_hyphae", + "minecraft:stripped_crimson_hyphae", + "minecraft:warped_stem", + "minecraft:stripped_warped_stem", + "minecraft:warped_hyphae", + "minecraft:stripped_warped_hyphae" + ], + "minecraft:beacon_payment_items": [ + "minecraft:netherite_ingot", + "minecraft:emerald", + "minecraft:diamond", + "minecraft:gold_ingot", + "minecraft:iron_ingot" + ], + "minecraft:lectern_books": [ + "minecraft:written_book", + "minecraft:writable_book" + ], + "minecraft:piglin_repellents": [ + "minecraft:soul_torch", + "minecraft:soul_lantern", + "minecraft:soul_campfire" + ], + "minecraft:wooden_buttons": [ + "minecraft:oak_button", + "minecraft:spruce_button", + "minecraft:birch_button", + "minecraft:jungle_button", + "minecraft:acacia_button", + "minecraft:dark_oak_button", + "minecraft:crimson_button", + "minecraft:warped_button" + ], + "minecraft:wool": [ + "minecraft:white_wool", + "minecraft:orange_wool", + "minecraft:magenta_wool", + "minecraft:light_blue_wool", + "minecraft:yellow_wool", + "minecraft:lime_wool", + "minecraft:pink_wool", + "minecraft:gray_wool", + "minecraft:light_gray_wool", + "minecraft:cyan_wool", + "minecraft:purple_wool", + "minecraft:blue_wool", + "minecraft:brown_wool", + "minecraft:green_wool", + "minecraft:red_wool", + "minecraft:black_wool" + ], + "minecraft:banners": [ + "minecraft:white_banner", + "minecraft:orange_banner", + "minecraft:magenta_banner", + "minecraft:light_blue_banner", + "minecraft:yellow_banner", + "minecraft:lime_banner", + "minecraft:pink_banner", + "minecraft:gray_banner", + "minecraft:light_gray_banner", + "minecraft:cyan_banner", + "minecraft:purple_banner", + "minecraft:blue_banner", + "minecraft:brown_banner", + "minecraft:green_banner", + "minecraft:red_banner", + "minecraft:black_banner" + ], + "minecraft:doors": [ + "minecraft:iron_door", + "minecraft:oak_door", + "minecraft:spruce_door", + "minecraft:birch_door", + "minecraft:jungle_door", + "minecraft:acacia_door", + "minecraft:dark_oak_door", + "minecraft:crimson_door", + "minecraft:warped_door" + ], + "minecraft:fences": [ + "minecraft:nether_brick_fence", + "minecraft:oak_fence", + "minecraft:acacia_fence", + "minecraft:dark_oak_fence", + "minecraft:spruce_fence", + "minecraft:birch_fence", + "minecraft:jungle_fence", + "minecraft:crimson_fence", + "minecraft:warped_fence" + ], + "minecraft:warped_stems": [ + "minecraft:warped_stem", + "minecraft:stripped_warped_stem", + "minecraft:warped_hyphae", + "minecraft:stripped_warped_hyphae" + ], + "minecraft:trapdoors": [ + "minecraft:iron_trapdoor", + "minecraft:acacia_trapdoor", + "minecraft:birch_trapdoor", + "minecraft:dark_oak_trapdoor", + "minecraft:jungle_trapdoor", + "minecraft:oak_trapdoor", + "minecraft:spruce_trapdoor", + "minecraft:crimson_trapdoor", + "minecraft:warped_trapdoor" + ], + "minecraft:music_discs": [ + "minecraft:music_disc_pigstep", + "minecraft:music_disc_13", + "minecraft:music_disc_cat", + "minecraft:music_disc_blocks", + "minecraft:music_disc_chirp", + "minecraft:music_disc_far", + "minecraft:music_disc_mall", + "minecraft:music_disc_mellohi", + "minecraft:music_disc_stal", + "minecraft:music_disc_strad", + "minecraft:music_disc_ward", + "minecraft:music_disc_11", + "minecraft:music_disc_wait" + ], + "minecraft:leaves": [ + "minecraft:jungle_leaves", + "minecraft:oak_leaves", + "minecraft:spruce_leaves", + "minecraft:dark_oak_leaves", + "minecraft:acacia_leaves", + "minecraft:birch_leaves" + ] + }, + "entitytags": { + "minecraft:impact_projectiles": [ + "minecraft:snowball", + "minecraft:fireball", + "minecraft:small_fireball", + "minecraft:egg", + "minecraft:trident", + "minecraft:dragon_fireball", + "minecraft:wither_skull", + "minecraft:arrow", + "minecraft:spectral_arrow" + ], + "minecraft:raiders": [ + "minecraft:evoker", + "minecraft:pillager", + "minecraft:ravager", + "minecraft:vindicator", + "minecraft:illusioner", + "minecraft:witch" + ], + "minecraft:skeletons": [ + "minecraft:skeleton", + "minecraft:stray", + "minecraft:wither_skeleton" + ], + "minecraft:arrows": [ + "minecraft:arrow", + "minecraft:spectral_arrow" + ], + "minecraft:beehive_inhabitors": [ + "minecraft:bee" + ] + } +} diff --git a/worldedit-cli/src/main/resources/com/sk89q/worldedit/cli/data/2578.json b/worldedit-cli/src/main/resources/com/sk89q/worldedit/cli/data/2578.json index 574120715..93258bf55 100644 --- a/worldedit-cli/src/main/resources/com/sk89q/worldedit/cli/data/2578.json +++ b/worldedit-cli/src/main/resources/com/sk89q/worldedit/cli/data/2578.json @@ -1 +1,15611 @@ -{"biomes":["minecraft:badlands","minecraft:badlands_plateau","minecraft:bamboo_jungle","minecraft:bamboo_jungle_hills","minecraft:basalt_deltas","minecraft:beach","minecraft:birch_forest","minecraft:birch_forest_hills","minecraft:cold_ocean","minecraft:crimson_forest","minecraft:dark_forest","minecraft:dark_forest_hills","minecraft:deep_cold_ocean","minecraft:deep_frozen_ocean","minecraft:deep_lukewarm_ocean","minecraft:deep_ocean","minecraft:deep_warm_ocean","minecraft:desert","minecraft:desert_hills","minecraft:desert_lakes","minecraft:end_barrens","minecraft:end_highlands","minecraft:end_midlands","minecraft:eroded_badlands","minecraft:flower_forest","minecraft:forest","minecraft:frozen_ocean","minecraft:frozen_river","minecraft:giant_spruce_taiga","minecraft:giant_spruce_taiga_hills","minecraft:giant_tree_taiga","minecraft:giant_tree_taiga_hills","minecraft:gravelly_mountains","minecraft:ice_spikes","minecraft:jungle","minecraft:jungle_edge","minecraft:jungle_hills","minecraft:lukewarm_ocean","minecraft:modified_badlands_plateau","minecraft:modified_gravelly_mountains","minecraft:modified_jungle","minecraft:modified_jungle_edge","minecraft:modified_wooded_badlands_plateau","minecraft:mountain_edge","minecraft:mountains","minecraft:mushroom_field_shore","minecraft:mushroom_fields","minecraft:nether_wastes","minecraft:ocean","minecraft:plains","minecraft:river","minecraft:savanna","minecraft:savanna_plateau","minecraft:shattered_savanna","minecraft:shattered_savanna_plateau","minecraft:small_end_islands","minecraft:snowy_beach","minecraft:snowy_mountains","minecraft:snowy_taiga","minecraft:snowy_taiga_hills","minecraft:snowy_taiga_mountains","minecraft:snowy_tundra","minecraft:soul_sand_valley","minecraft:stone_shore","minecraft:sunflower_plains","minecraft:swamp","minecraft:swamp_hills","minecraft:taiga","minecraft:taiga_hills","minecraft:taiga_mountains","minecraft:tall_birch_forest","minecraft:tall_birch_hills","minecraft:the_end","minecraft:the_void","minecraft:warm_ocean","minecraft:warped_forest","minecraft:wooded_badlands_plateau","minecraft:wooded_hills","minecraft:wooded_mountains"],"blocks":{"minecraft:acacia_button":{"defaultstate":"minecraft:acacia_button[face=wall,facing=north,powered=false]","properties":{"face":{"type":"enum","values":["floor","wall","ceiling"]},"facing":{"type":"direction","values":["north","south","west","east"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:acacia_door":{"defaultstate":"minecraft:acacia_door[facing=north,half=lower,hinge=left,open=false,powered=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["upper","lower"]},"hinge":{"type":"enum","values":["left","right"]},"open":{"type":"bool","values":["true","false"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:acacia_fence":{"defaultstate":"minecraft:acacia_fence[east=false,north=false,south=false,waterlogged=false,west=false]","properties":{"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:acacia_fence_gate":{"defaultstate":"minecraft:acacia_fence_gate[facing=north,in_wall=false,open=false,powered=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"in_wall":{"type":"bool","values":["true","false"]},"open":{"type":"bool","values":["true","false"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:acacia_leaves":{"defaultstate":"minecraft:acacia_leaves[distance=7,persistent=false]","properties":{"distance":{"type":"int","values":["1","2","3","4","5","6","7"]},"persistent":{"type":"bool","values":["true","false"]}}},"minecraft:acacia_log":{"defaultstate":"minecraft:acacia_log[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:acacia_planks":{"defaultstate":"minecraft:acacia_planks","properties":{}},"minecraft:acacia_pressure_plate":{"defaultstate":"minecraft:acacia_pressure_plate[powered=false]","properties":{"powered":{"type":"bool","values":["true","false"]}}},"minecraft:acacia_sapling":{"defaultstate":"minecraft:acacia_sapling[stage=0]","properties":{"stage":{"type":"int","values":["0","1"]}}},"minecraft:acacia_sign":{"defaultstate":"minecraft:acacia_sign[rotation=0,waterlogged=false]","properties":{"rotation":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:acacia_slab":{"defaultstate":"minecraft:acacia_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:acacia_stairs":{"defaultstate":"minecraft:acacia_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:acacia_trapdoor":{"defaultstate":"minecraft:acacia_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"open":{"type":"bool","values":["true","false"]},"powered":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:acacia_wall_sign":{"defaultstate":"minecraft:acacia_wall_sign[facing=north,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:acacia_wood":{"defaultstate":"minecraft:acacia_wood[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:activator_rail":{"defaultstate":"minecraft:activator_rail[powered=false,shape=north_south]","properties":{"powered":{"type":"bool","values":["true","false"]},"shape":{"type":"enum","values":["north_south","east_west","ascending_east","ascending_west","ascending_north","ascending_south"]}}},"minecraft:air":{"defaultstate":"minecraft:air","properties":{}},"minecraft:allium":{"defaultstate":"minecraft:allium","properties":{}},"minecraft:ancient_debris":{"defaultstate":"minecraft:ancient_debris","properties":{}},"minecraft:andesite":{"defaultstate":"minecraft:andesite","properties":{}},"minecraft:andesite_slab":{"defaultstate":"minecraft:andesite_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:andesite_stairs":{"defaultstate":"minecraft:andesite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:andesite_wall":{"defaultstate":"minecraft:andesite_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]","properties":{"east":{"type":"enum","values":["none","low","tall"]},"north":{"type":"enum","values":["none","low","tall"]},"south":{"type":"enum","values":["none","low","tall"]},"up":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"enum","values":["none","low","tall"]}}},"minecraft:anvil":{"defaultstate":"minecraft:anvil[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:attached_melon_stem":{"defaultstate":"minecraft:attached_melon_stem[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:attached_pumpkin_stem":{"defaultstate":"minecraft:attached_pumpkin_stem[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:azure_bluet":{"defaultstate":"minecraft:azure_bluet","properties":{}},"minecraft:bamboo":{"defaultstate":"minecraft:bamboo[age=0,leaves=none,stage=0]","properties":{"age":{"type":"int","values":["0","1"]},"leaves":{"type":"enum","values":["none","small","large"]},"stage":{"type":"int","values":["0","1"]}}},"minecraft:bamboo_sapling":{"defaultstate":"minecraft:bamboo_sapling","properties":{}},"minecraft:barrel":{"defaultstate":"minecraft:barrel[facing=north,open=false]","properties":{"facing":{"type":"direction","values":["north","east","south","west","up","down"]},"open":{"type":"bool","values":["true","false"]}}},"minecraft:barrier":{"defaultstate":"minecraft:barrier","properties":{}},"minecraft:basalt":{"defaultstate":"minecraft:basalt[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:beacon":{"defaultstate":"minecraft:beacon","properties":{}},"minecraft:bedrock":{"defaultstate":"minecraft:bedrock","properties":{}},"minecraft:bee_nest":{"defaultstate":"minecraft:bee_nest[facing=north,honey_level=0]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"honey_level":{"type":"int","values":["0","1","2","3","4","5"]}}},"minecraft:beehive":{"defaultstate":"minecraft:beehive[facing=north,honey_level=0]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"honey_level":{"type":"int","values":["0","1","2","3","4","5"]}}},"minecraft:beetroots":{"defaultstate":"minecraft:beetroots[age=0]","properties":{"age":{"type":"int","values":["0","1","2","3"]}}},"minecraft:bell":{"defaultstate":"minecraft:bell[attachment=floor,facing=north,powered=false]","properties":{"attachment":{"type":"enum","values":["floor","ceiling","single_wall","double_wall"]},"facing":{"type":"direction","values":["north","south","west","east"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:birch_button":{"defaultstate":"minecraft:birch_button[face=wall,facing=north,powered=false]","properties":{"face":{"type":"enum","values":["floor","wall","ceiling"]},"facing":{"type":"direction","values":["north","south","west","east"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:birch_door":{"defaultstate":"minecraft:birch_door[facing=north,half=lower,hinge=left,open=false,powered=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["upper","lower"]},"hinge":{"type":"enum","values":["left","right"]},"open":{"type":"bool","values":["true","false"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:birch_fence":{"defaultstate":"minecraft:birch_fence[east=false,north=false,south=false,waterlogged=false,west=false]","properties":{"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:birch_fence_gate":{"defaultstate":"minecraft:birch_fence_gate[facing=north,in_wall=false,open=false,powered=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"in_wall":{"type":"bool","values":["true","false"]},"open":{"type":"bool","values":["true","false"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:birch_leaves":{"defaultstate":"minecraft:birch_leaves[distance=7,persistent=false]","properties":{"distance":{"type":"int","values":["1","2","3","4","5","6","7"]},"persistent":{"type":"bool","values":["true","false"]}}},"minecraft:birch_log":{"defaultstate":"minecraft:birch_log[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:birch_planks":{"defaultstate":"minecraft:birch_planks","properties":{}},"minecraft:birch_pressure_plate":{"defaultstate":"minecraft:birch_pressure_plate[powered=false]","properties":{"powered":{"type":"bool","values":["true","false"]}}},"minecraft:birch_sapling":{"defaultstate":"minecraft:birch_sapling[stage=0]","properties":{"stage":{"type":"int","values":["0","1"]}}},"minecraft:birch_sign":{"defaultstate":"minecraft:birch_sign[rotation=0,waterlogged=false]","properties":{"rotation":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:birch_slab":{"defaultstate":"minecraft:birch_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:birch_stairs":{"defaultstate":"minecraft:birch_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:birch_trapdoor":{"defaultstate":"minecraft:birch_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"open":{"type":"bool","values":["true","false"]},"powered":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:birch_wall_sign":{"defaultstate":"minecraft:birch_wall_sign[facing=north,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:birch_wood":{"defaultstate":"minecraft:birch_wood[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:black_banner":{"defaultstate":"minecraft:black_banner[rotation=0]","properties":{"rotation":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]}}},"minecraft:black_bed":{"defaultstate":"minecraft:black_bed[facing=north,occupied=false,part=foot]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"occupied":{"type":"bool","values":["true","false"]},"part":{"type":"enum","values":["head","foot"]}}},"minecraft:black_carpet":{"defaultstate":"minecraft:black_carpet","properties":{}},"minecraft:black_concrete":{"defaultstate":"minecraft:black_concrete","properties":{}},"minecraft:black_concrete_powder":{"defaultstate":"minecraft:black_concrete_powder","properties":{}},"minecraft:black_glazed_terracotta":{"defaultstate":"minecraft:black_glazed_terracotta[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:black_shulker_box":{"defaultstate":"minecraft:black_shulker_box[facing=up]","properties":{"facing":{"type":"direction","values":["north","east","south","west","up","down"]}}},"minecraft:black_stained_glass":{"defaultstate":"minecraft:black_stained_glass","properties":{}},"minecraft:black_stained_glass_pane":{"defaultstate":"minecraft:black_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]","properties":{"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:black_terracotta":{"defaultstate":"minecraft:black_terracotta","properties":{}},"minecraft:black_wall_banner":{"defaultstate":"minecraft:black_wall_banner[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:black_wool":{"defaultstate":"minecraft:black_wool","properties":{}},"minecraft:blackstone":{"defaultstate":"minecraft:blackstone","properties":{}},"minecraft:blackstone_slab":{"defaultstate":"minecraft:blackstone_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:blackstone_stairs":{"defaultstate":"minecraft:blackstone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:blackstone_wall":{"defaultstate":"minecraft:blackstone_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]","properties":{"east":{"type":"enum","values":["none","low","tall"]},"north":{"type":"enum","values":["none","low","tall"]},"south":{"type":"enum","values":["none","low","tall"]},"up":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"enum","values":["none","low","tall"]}}},"minecraft:blast_furnace":{"defaultstate":"minecraft:blast_furnace[facing=north,lit=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"lit":{"type":"bool","values":["true","false"]}}},"minecraft:blue_banner":{"defaultstate":"minecraft:blue_banner[rotation=0]","properties":{"rotation":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]}}},"minecraft:blue_bed":{"defaultstate":"minecraft:blue_bed[facing=north,occupied=false,part=foot]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"occupied":{"type":"bool","values":["true","false"]},"part":{"type":"enum","values":["head","foot"]}}},"minecraft:blue_carpet":{"defaultstate":"minecraft:blue_carpet","properties":{}},"minecraft:blue_concrete":{"defaultstate":"minecraft:blue_concrete","properties":{}},"minecraft:blue_concrete_powder":{"defaultstate":"minecraft:blue_concrete_powder","properties":{}},"minecraft:blue_glazed_terracotta":{"defaultstate":"minecraft:blue_glazed_terracotta[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:blue_ice":{"defaultstate":"minecraft:blue_ice","properties":{}},"minecraft:blue_orchid":{"defaultstate":"minecraft:blue_orchid","properties":{}},"minecraft:blue_shulker_box":{"defaultstate":"minecraft:blue_shulker_box[facing=up]","properties":{"facing":{"type":"direction","values":["north","east","south","west","up","down"]}}},"minecraft:blue_stained_glass":{"defaultstate":"minecraft:blue_stained_glass","properties":{}},"minecraft:blue_stained_glass_pane":{"defaultstate":"minecraft:blue_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]","properties":{"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:blue_terracotta":{"defaultstate":"minecraft:blue_terracotta","properties":{}},"minecraft:blue_wall_banner":{"defaultstate":"minecraft:blue_wall_banner[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:blue_wool":{"defaultstate":"minecraft:blue_wool","properties":{}},"minecraft:bone_block":{"defaultstate":"minecraft:bone_block[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:bookshelf":{"defaultstate":"minecraft:bookshelf","properties":{}},"minecraft:brain_coral":{"defaultstate":"minecraft:brain_coral[waterlogged=true]","properties":{"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:brain_coral_block":{"defaultstate":"minecraft:brain_coral_block","properties":{}},"minecraft:brain_coral_fan":{"defaultstate":"minecraft:brain_coral_fan[waterlogged=true]","properties":{"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:brain_coral_wall_fan":{"defaultstate":"minecraft:brain_coral_wall_fan[facing=north,waterlogged=true]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:brewing_stand":{"defaultstate":"minecraft:brewing_stand[has_bottle_0=false,has_bottle_1=false,has_bottle_2=false]","properties":{"has_bottle_0":{"type":"bool","values":["true","false"]},"has_bottle_1":{"type":"bool","values":["true","false"]},"has_bottle_2":{"type":"bool","values":["true","false"]}}},"minecraft:brick_slab":{"defaultstate":"minecraft:brick_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:brick_stairs":{"defaultstate":"minecraft:brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:brick_wall":{"defaultstate":"minecraft:brick_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]","properties":{"east":{"type":"enum","values":["none","low","tall"]},"north":{"type":"enum","values":["none","low","tall"]},"south":{"type":"enum","values":["none","low","tall"]},"up":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"enum","values":["none","low","tall"]}}},"minecraft:bricks":{"defaultstate":"minecraft:bricks","properties":{}},"minecraft:brown_banner":{"defaultstate":"minecraft:brown_banner[rotation=0]","properties":{"rotation":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]}}},"minecraft:brown_bed":{"defaultstate":"minecraft:brown_bed[facing=north,occupied=false,part=foot]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"occupied":{"type":"bool","values":["true","false"]},"part":{"type":"enum","values":["head","foot"]}}},"minecraft:brown_carpet":{"defaultstate":"minecraft:brown_carpet","properties":{}},"minecraft:brown_concrete":{"defaultstate":"minecraft:brown_concrete","properties":{}},"minecraft:brown_concrete_powder":{"defaultstate":"minecraft:brown_concrete_powder","properties":{}},"minecraft:brown_glazed_terracotta":{"defaultstate":"minecraft:brown_glazed_terracotta[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:brown_mushroom":{"defaultstate":"minecraft:brown_mushroom","properties":{}},"minecraft:brown_mushroom_block":{"defaultstate":"minecraft:brown_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true]","properties":{"down":{"type":"bool","values":["true","false"]},"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"up":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:brown_shulker_box":{"defaultstate":"minecraft:brown_shulker_box[facing=up]","properties":{"facing":{"type":"direction","values":["north","east","south","west","up","down"]}}},"minecraft:brown_stained_glass":{"defaultstate":"minecraft:brown_stained_glass","properties":{}},"minecraft:brown_stained_glass_pane":{"defaultstate":"minecraft:brown_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]","properties":{"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:brown_terracotta":{"defaultstate":"minecraft:brown_terracotta","properties":{}},"minecraft:brown_wall_banner":{"defaultstate":"minecraft:brown_wall_banner[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:brown_wool":{"defaultstate":"minecraft:brown_wool","properties":{}},"minecraft:bubble_column":{"defaultstate":"minecraft:bubble_column[drag=true]","properties":{"drag":{"type":"bool","values":["true","false"]}}},"minecraft:bubble_coral":{"defaultstate":"minecraft:bubble_coral[waterlogged=true]","properties":{"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:bubble_coral_block":{"defaultstate":"minecraft:bubble_coral_block","properties":{}},"minecraft:bubble_coral_fan":{"defaultstate":"minecraft:bubble_coral_fan[waterlogged=true]","properties":{"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:bubble_coral_wall_fan":{"defaultstate":"minecraft:bubble_coral_wall_fan[facing=north,waterlogged=true]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:cactus":{"defaultstate":"minecraft:cactus[age=0]","properties":{"age":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]}}},"minecraft:cake":{"defaultstate":"minecraft:cake[bites=0]","properties":{"bites":{"type":"int","values":["0","1","2","3","4","5","6"]}}},"minecraft:campfire":{"defaultstate":"minecraft:campfire[facing=north,lit=true,signal_fire=false,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"lit":{"type":"bool","values":["true","false"]},"signal_fire":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:carrots":{"defaultstate":"minecraft:carrots[age=0]","properties":{"age":{"type":"int","values":["0","1","2","3","4","5","6","7"]}}},"minecraft:cartography_table":{"defaultstate":"minecraft:cartography_table","properties":{}},"minecraft:carved_pumpkin":{"defaultstate":"minecraft:carved_pumpkin[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:cauldron":{"defaultstate":"minecraft:cauldron[level=0]","properties":{"level":{"type":"int","values":["0","1","2","3"]}}},"minecraft:cave_air":{"defaultstate":"minecraft:cave_air","properties":{}},"minecraft:chain":{"defaultstate":"minecraft:chain[axis=y,waterlogged=false]","properties":{"axis":{"type":"enum","values":["x","y","z"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:chain_command_block":{"defaultstate":"minecraft:chain_command_block[conditional=false,facing=north]","properties":{"conditional":{"type":"bool","values":["true","false"]},"facing":{"type":"direction","values":["north","east","south","west","up","down"]}}},"minecraft:chest":{"defaultstate":"minecraft:chest[facing=north,type=single,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"type":{"type":"enum","values":["single","left","right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:chipped_anvil":{"defaultstate":"minecraft:chipped_anvil[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:chiseled_nether_bricks":{"defaultstate":"minecraft:chiseled_nether_bricks","properties":{}},"minecraft:chiseled_polished_blackstone":{"defaultstate":"minecraft:chiseled_polished_blackstone","properties":{}},"minecraft:chiseled_quartz_block":{"defaultstate":"minecraft:chiseled_quartz_block","properties":{}},"minecraft:chiseled_red_sandstone":{"defaultstate":"minecraft:chiseled_red_sandstone","properties":{}},"minecraft:chiseled_sandstone":{"defaultstate":"minecraft:chiseled_sandstone","properties":{}},"minecraft:chiseled_stone_bricks":{"defaultstate":"minecraft:chiseled_stone_bricks","properties":{}},"minecraft:chorus_flower":{"defaultstate":"minecraft:chorus_flower[age=0]","properties":{"age":{"type":"int","values":["0","1","2","3","4","5"]}}},"minecraft:chorus_plant":{"defaultstate":"minecraft:chorus_plant[down=false,east=false,north=false,south=false,up=false,west=false]","properties":{"down":{"type":"bool","values":["true","false"]},"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"up":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:clay":{"defaultstate":"minecraft:clay","properties":{}},"minecraft:coal_block":{"defaultstate":"minecraft:coal_block","properties":{}},"minecraft:coal_ore":{"defaultstate":"minecraft:coal_ore","properties":{}},"minecraft:coarse_dirt":{"defaultstate":"minecraft:coarse_dirt","properties":{}},"minecraft:cobblestone":{"defaultstate":"minecraft:cobblestone","properties":{}},"minecraft:cobblestone_slab":{"defaultstate":"minecraft:cobblestone_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:cobblestone_stairs":{"defaultstate":"minecraft:cobblestone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:cobblestone_wall":{"defaultstate":"minecraft:cobblestone_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]","properties":{"east":{"type":"enum","values":["none","low","tall"]},"north":{"type":"enum","values":["none","low","tall"]},"south":{"type":"enum","values":["none","low","tall"]},"up":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"enum","values":["none","low","tall"]}}},"minecraft:cobweb":{"defaultstate":"minecraft:cobweb","properties":{}},"minecraft:cocoa":{"defaultstate":"minecraft:cocoa[age=0,facing=north]","properties":{"age":{"type":"int","values":["0","1","2"]},"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:command_block":{"defaultstate":"minecraft:command_block[conditional=false,facing=north]","properties":{"conditional":{"type":"bool","values":["true","false"]},"facing":{"type":"direction","values":["north","east","south","west","up","down"]}}},"minecraft:comparator":{"defaultstate":"minecraft:comparator[facing=north,mode=compare,powered=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"mode":{"type":"enum","values":["compare","subtract"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:composter":{"defaultstate":"minecraft:composter[level=0]","properties":{"level":{"type":"int","values":["0","1","2","3","4","5","6","7","8"]}}},"minecraft:conduit":{"defaultstate":"minecraft:conduit[waterlogged=true]","properties":{"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:cornflower":{"defaultstate":"minecraft:cornflower","properties":{}},"minecraft:cracked_nether_bricks":{"defaultstate":"minecraft:cracked_nether_bricks","properties":{}},"minecraft:cracked_polished_blackstone_bricks":{"defaultstate":"minecraft:cracked_polished_blackstone_bricks","properties":{}},"minecraft:cracked_stone_bricks":{"defaultstate":"minecraft:cracked_stone_bricks","properties":{}},"minecraft:crafting_table":{"defaultstate":"minecraft:crafting_table","properties":{}},"minecraft:creeper_head":{"defaultstate":"minecraft:creeper_head[rotation=0]","properties":{"rotation":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]}}},"minecraft:creeper_wall_head":{"defaultstate":"minecraft:creeper_wall_head[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:crimson_button":{"defaultstate":"minecraft:crimson_button[face=wall,facing=north,powered=false]","properties":{"face":{"type":"enum","values":["floor","wall","ceiling"]},"facing":{"type":"direction","values":["north","south","west","east"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:crimson_door":{"defaultstate":"minecraft:crimson_door[facing=north,half=lower,hinge=left,open=false,powered=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["upper","lower"]},"hinge":{"type":"enum","values":["left","right"]},"open":{"type":"bool","values":["true","false"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:crimson_fence":{"defaultstate":"minecraft:crimson_fence[east=false,north=false,south=false,waterlogged=false,west=false]","properties":{"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:crimson_fence_gate":{"defaultstate":"minecraft:crimson_fence_gate[facing=north,in_wall=false,open=false,powered=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"in_wall":{"type":"bool","values":["true","false"]},"open":{"type":"bool","values":["true","false"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:crimson_fungus":{"defaultstate":"minecraft:crimson_fungus","properties":{}},"minecraft:crimson_hyphae":{"defaultstate":"minecraft:crimson_hyphae[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:crimson_nylium":{"defaultstate":"minecraft:crimson_nylium","properties":{}},"minecraft:crimson_planks":{"defaultstate":"minecraft:crimson_planks","properties":{}},"minecraft:crimson_pressure_plate":{"defaultstate":"minecraft:crimson_pressure_plate[powered=false]","properties":{"powered":{"type":"bool","values":["true","false"]}}},"minecraft:crimson_roots":{"defaultstate":"minecraft:crimson_roots","properties":{}},"minecraft:crimson_sign":{"defaultstate":"minecraft:crimson_sign[rotation=0,waterlogged=false]","properties":{"rotation":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:crimson_slab":{"defaultstate":"minecraft:crimson_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:crimson_stairs":{"defaultstate":"minecraft:crimson_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:crimson_stem":{"defaultstate":"minecraft:crimson_stem[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:crimson_trapdoor":{"defaultstate":"minecraft:crimson_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"open":{"type":"bool","values":["true","false"]},"powered":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:crimson_wall_sign":{"defaultstate":"minecraft:crimson_wall_sign[facing=north,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:crying_obsidian":{"defaultstate":"minecraft:crying_obsidian","properties":{}},"minecraft:cut_red_sandstone":{"defaultstate":"minecraft:cut_red_sandstone","properties":{}},"minecraft:cut_red_sandstone_slab":{"defaultstate":"minecraft:cut_red_sandstone_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:cut_sandstone":{"defaultstate":"minecraft:cut_sandstone","properties":{}},"minecraft:cut_sandstone_slab":{"defaultstate":"minecraft:cut_sandstone_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:cyan_banner":{"defaultstate":"minecraft:cyan_banner[rotation=0]","properties":{"rotation":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]}}},"minecraft:cyan_bed":{"defaultstate":"minecraft:cyan_bed[facing=north,occupied=false,part=foot]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"occupied":{"type":"bool","values":["true","false"]},"part":{"type":"enum","values":["head","foot"]}}},"minecraft:cyan_carpet":{"defaultstate":"minecraft:cyan_carpet","properties":{}},"minecraft:cyan_concrete":{"defaultstate":"minecraft:cyan_concrete","properties":{}},"minecraft:cyan_concrete_powder":{"defaultstate":"minecraft:cyan_concrete_powder","properties":{}},"minecraft:cyan_glazed_terracotta":{"defaultstate":"minecraft:cyan_glazed_terracotta[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:cyan_shulker_box":{"defaultstate":"minecraft:cyan_shulker_box[facing=up]","properties":{"facing":{"type":"direction","values":["north","east","south","west","up","down"]}}},"minecraft:cyan_stained_glass":{"defaultstate":"minecraft:cyan_stained_glass","properties":{}},"minecraft:cyan_stained_glass_pane":{"defaultstate":"minecraft:cyan_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]","properties":{"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:cyan_terracotta":{"defaultstate":"minecraft:cyan_terracotta","properties":{}},"minecraft:cyan_wall_banner":{"defaultstate":"minecraft:cyan_wall_banner[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:cyan_wool":{"defaultstate":"minecraft:cyan_wool","properties":{}},"minecraft:damaged_anvil":{"defaultstate":"minecraft:damaged_anvil[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:dandelion":{"defaultstate":"minecraft:dandelion","properties":{}},"minecraft:dark_oak_button":{"defaultstate":"minecraft:dark_oak_button[face=wall,facing=north,powered=false]","properties":{"face":{"type":"enum","values":["floor","wall","ceiling"]},"facing":{"type":"direction","values":["north","south","west","east"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:dark_oak_door":{"defaultstate":"minecraft:dark_oak_door[facing=north,half=lower,hinge=left,open=false,powered=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["upper","lower"]},"hinge":{"type":"enum","values":["left","right"]},"open":{"type":"bool","values":["true","false"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:dark_oak_fence":{"defaultstate":"minecraft:dark_oak_fence[east=false,north=false,south=false,waterlogged=false,west=false]","properties":{"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:dark_oak_fence_gate":{"defaultstate":"minecraft:dark_oak_fence_gate[facing=north,in_wall=false,open=false,powered=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"in_wall":{"type":"bool","values":["true","false"]},"open":{"type":"bool","values":["true","false"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:dark_oak_leaves":{"defaultstate":"minecraft:dark_oak_leaves[distance=7,persistent=false]","properties":{"distance":{"type":"int","values":["1","2","3","4","5","6","7"]},"persistent":{"type":"bool","values":["true","false"]}}},"minecraft:dark_oak_log":{"defaultstate":"minecraft:dark_oak_log[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:dark_oak_planks":{"defaultstate":"minecraft:dark_oak_planks","properties":{}},"minecraft:dark_oak_pressure_plate":{"defaultstate":"minecraft:dark_oak_pressure_plate[powered=false]","properties":{"powered":{"type":"bool","values":["true","false"]}}},"minecraft:dark_oak_sapling":{"defaultstate":"minecraft:dark_oak_sapling[stage=0]","properties":{"stage":{"type":"int","values":["0","1"]}}},"minecraft:dark_oak_sign":{"defaultstate":"minecraft:dark_oak_sign[rotation=0,waterlogged=false]","properties":{"rotation":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:dark_oak_slab":{"defaultstate":"minecraft:dark_oak_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:dark_oak_stairs":{"defaultstate":"minecraft:dark_oak_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:dark_oak_trapdoor":{"defaultstate":"minecraft:dark_oak_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"open":{"type":"bool","values":["true","false"]},"powered":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:dark_oak_wall_sign":{"defaultstate":"minecraft:dark_oak_wall_sign[facing=north,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:dark_oak_wood":{"defaultstate":"minecraft:dark_oak_wood[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:dark_prismarine":{"defaultstate":"minecraft:dark_prismarine","properties":{}},"minecraft:dark_prismarine_slab":{"defaultstate":"minecraft:dark_prismarine_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:dark_prismarine_stairs":{"defaultstate":"minecraft:dark_prismarine_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:daylight_detector":{"defaultstate":"minecraft:daylight_detector[inverted=false,power=0]","properties":{"inverted":{"type":"bool","values":["true","false"]},"power":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]}}},"minecraft:dead_brain_coral":{"defaultstate":"minecraft:dead_brain_coral[waterlogged=true]","properties":{"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:dead_brain_coral_block":{"defaultstate":"minecraft:dead_brain_coral_block","properties":{}},"minecraft:dead_brain_coral_fan":{"defaultstate":"minecraft:dead_brain_coral_fan[waterlogged=true]","properties":{"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:dead_brain_coral_wall_fan":{"defaultstate":"minecraft:dead_brain_coral_wall_fan[facing=north,waterlogged=true]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:dead_bubble_coral":{"defaultstate":"minecraft:dead_bubble_coral[waterlogged=true]","properties":{"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:dead_bubble_coral_block":{"defaultstate":"minecraft:dead_bubble_coral_block","properties":{}},"minecraft:dead_bubble_coral_fan":{"defaultstate":"minecraft:dead_bubble_coral_fan[waterlogged=true]","properties":{"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:dead_bubble_coral_wall_fan":{"defaultstate":"minecraft:dead_bubble_coral_wall_fan[facing=north,waterlogged=true]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:dead_bush":{"defaultstate":"minecraft:dead_bush","properties":{}},"minecraft:dead_fire_coral":{"defaultstate":"minecraft:dead_fire_coral[waterlogged=true]","properties":{"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:dead_fire_coral_block":{"defaultstate":"minecraft:dead_fire_coral_block","properties":{}},"minecraft:dead_fire_coral_fan":{"defaultstate":"minecraft:dead_fire_coral_fan[waterlogged=true]","properties":{"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:dead_fire_coral_wall_fan":{"defaultstate":"minecraft:dead_fire_coral_wall_fan[facing=north,waterlogged=true]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:dead_horn_coral":{"defaultstate":"minecraft:dead_horn_coral[waterlogged=true]","properties":{"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:dead_horn_coral_block":{"defaultstate":"minecraft:dead_horn_coral_block","properties":{}},"minecraft:dead_horn_coral_fan":{"defaultstate":"minecraft:dead_horn_coral_fan[waterlogged=true]","properties":{"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:dead_horn_coral_wall_fan":{"defaultstate":"minecraft:dead_horn_coral_wall_fan[facing=north,waterlogged=true]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:dead_tube_coral":{"defaultstate":"minecraft:dead_tube_coral[waterlogged=true]","properties":{"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:dead_tube_coral_block":{"defaultstate":"minecraft:dead_tube_coral_block","properties":{}},"minecraft:dead_tube_coral_fan":{"defaultstate":"minecraft:dead_tube_coral_fan[waterlogged=true]","properties":{"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:dead_tube_coral_wall_fan":{"defaultstate":"minecraft:dead_tube_coral_wall_fan[facing=north,waterlogged=true]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:detector_rail":{"defaultstate":"minecraft:detector_rail[powered=false,shape=north_south]","properties":{"powered":{"type":"bool","values":["true","false"]},"shape":{"type":"enum","values":["north_south","east_west","ascending_east","ascending_west","ascending_north","ascending_south"]}}},"minecraft:diamond_block":{"defaultstate":"minecraft:diamond_block","properties":{}},"minecraft:diamond_ore":{"defaultstate":"minecraft:diamond_ore","properties":{}},"minecraft:diorite":{"defaultstate":"minecraft:diorite","properties":{}},"minecraft:diorite_slab":{"defaultstate":"minecraft:diorite_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:diorite_stairs":{"defaultstate":"minecraft:diorite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:diorite_wall":{"defaultstate":"minecraft:diorite_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]","properties":{"east":{"type":"enum","values":["none","low","tall"]},"north":{"type":"enum","values":["none","low","tall"]},"south":{"type":"enum","values":["none","low","tall"]},"up":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"enum","values":["none","low","tall"]}}},"minecraft:dirt":{"defaultstate":"minecraft:dirt","properties":{}},"minecraft:dispenser":{"defaultstate":"minecraft:dispenser[facing=north,triggered=false]","properties":{"facing":{"type":"direction","values":["north","east","south","west","up","down"]},"triggered":{"type":"bool","values":["true","false"]}}},"minecraft:dragon_egg":{"defaultstate":"minecraft:dragon_egg","properties":{}},"minecraft:dragon_head":{"defaultstate":"minecraft:dragon_head[rotation=0]","properties":{"rotation":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]}}},"minecraft:dragon_wall_head":{"defaultstate":"minecraft:dragon_wall_head[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:dried_kelp_block":{"defaultstate":"minecraft:dried_kelp_block","properties":{}},"minecraft:dropper":{"defaultstate":"minecraft:dropper[facing=north,triggered=false]","properties":{"facing":{"type":"direction","values":["north","east","south","west","up","down"]},"triggered":{"type":"bool","values":["true","false"]}}},"minecraft:emerald_block":{"defaultstate":"minecraft:emerald_block","properties":{}},"minecraft:emerald_ore":{"defaultstate":"minecraft:emerald_ore","properties":{}},"minecraft:enchanting_table":{"defaultstate":"minecraft:enchanting_table","properties":{}},"minecraft:end_gateway":{"defaultstate":"minecraft:end_gateway","properties":{}},"minecraft:end_portal":{"defaultstate":"minecraft:end_portal","properties":{}},"minecraft:end_portal_frame":{"defaultstate":"minecraft:end_portal_frame[eye=false,facing=north]","properties":{"eye":{"type":"bool","values":["true","false"]},"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:end_rod":{"defaultstate":"minecraft:end_rod[facing=up]","properties":{"facing":{"type":"direction","values":["north","east","south","west","up","down"]}}},"minecraft:end_stone":{"defaultstate":"minecraft:end_stone","properties":{}},"minecraft:end_stone_brick_slab":{"defaultstate":"minecraft:end_stone_brick_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:end_stone_brick_stairs":{"defaultstate":"minecraft:end_stone_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:end_stone_brick_wall":{"defaultstate":"minecraft:end_stone_brick_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]","properties":{"east":{"type":"enum","values":["none","low","tall"]},"north":{"type":"enum","values":["none","low","tall"]},"south":{"type":"enum","values":["none","low","tall"]},"up":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"enum","values":["none","low","tall"]}}},"minecraft:end_stone_bricks":{"defaultstate":"minecraft:end_stone_bricks","properties":{}},"minecraft:ender_chest":{"defaultstate":"minecraft:ender_chest[facing=north,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:farmland":{"defaultstate":"minecraft:farmland[moisture=0]","properties":{"moisture":{"type":"int","values":["0","1","2","3","4","5","6","7"]}}},"minecraft:fern":{"defaultstate":"minecraft:fern","properties":{}},"minecraft:fire":{"defaultstate":"minecraft:fire[age=0,east=false,north=false,south=false,up=false,west=false]","properties":{"age":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]},"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"up":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:fire_coral":{"defaultstate":"minecraft:fire_coral[waterlogged=true]","properties":{"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:fire_coral_block":{"defaultstate":"minecraft:fire_coral_block","properties":{}},"minecraft:fire_coral_fan":{"defaultstate":"minecraft:fire_coral_fan[waterlogged=true]","properties":{"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:fire_coral_wall_fan":{"defaultstate":"minecraft:fire_coral_wall_fan[facing=north,waterlogged=true]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:fletching_table":{"defaultstate":"minecraft:fletching_table","properties":{}},"minecraft:flower_pot":{"defaultstate":"minecraft:flower_pot","properties":{}},"minecraft:frosted_ice":{"defaultstate":"minecraft:frosted_ice[age=0]","properties":{"age":{"type":"int","values":["0","1","2","3"]}}},"minecraft:furnace":{"defaultstate":"minecraft:furnace[facing=north,lit=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"lit":{"type":"bool","values":["true","false"]}}},"minecraft:gilded_blackstone":{"defaultstate":"minecraft:gilded_blackstone","properties":{}},"minecraft:glass":{"defaultstate":"minecraft:glass","properties":{}},"minecraft:glass_pane":{"defaultstate":"minecraft:glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]","properties":{"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:glowstone":{"defaultstate":"minecraft:glowstone","properties":{}},"minecraft:gold_block":{"defaultstate":"minecraft:gold_block","properties":{}},"minecraft:gold_ore":{"defaultstate":"minecraft:gold_ore","properties":{}},"minecraft:granite":{"defaultstate":"minecraft:granite","properties":{}},"minecraft:granite_slab":{"defaultstate":"minecraft:granite_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:granite_stairs":{"defaultstate":"minecraft:granite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:granite_wall":{"defaultstate":"minecraft:granite_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]","properties":{"east":{"type":"enum","values":["none","low","tall"]},"north":{"type":"enum","values":["none","low","tall"]},"south":{"type":"enum","values":["none","low","tall"]},"up":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"enum","values":["none","low","tall"]}}},"minecraft:grass":{"defaultstate":"minecraft:grass","properties":{}},"minecraft:grass_block":{"defaultstate":"minecraft:grass_block[snowy=false]","properties":{"snowy":{"type":"bool","values":["true","false"]}}},"minecraft:grass_path":{"defaultstate":"minecraft:grass_path","properties":{}},"minecraft:gravel":{"defaultstate":"minecraft:gravel","properties":{}},"minecraft:gray_banner":{"defaultstate":"minecraft:gray_banner[rotation=0]","properties":{"rotation":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]}}},"minecraft:gray_bed":{"defaultstate":"minecraft:gray_bed[facing=north,occupied=false,part=foot]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"occupied":{"type":"bool","values":["true","false"]},"part":{"type":"enum","values":["head","foot"]}}},"minecraft:gray_carpet":{"defaultstate":"minecraft:gray_carpet","properties":{}},"minecraft:gray_concrete":{"defaultstate":"minecraft:gray_concrete","properties":{}},"minecraft:gray_concrete_powder":{"defaultstate":"minecraft:gray_concrete_powder","properties":{}},"minecraft:gray_glazed_terracotta":{"defaultstate":"minecraft:gray_glazed_terracotta[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:gray_shulker_box":{"defaultstate":"minecraft:gray_shulker_box[facing=up]","properties":{"facing":{"type":"direction","values":["north","east","south","west","up","down"]}}},"minecraft:gray_stained_glass":{"defaultstate":"minecraft:gray_stained_glass","properties":{}},"minecraft:gray_stained_glass_pane":{"defaultstate":"minecraft:gray_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]","properties":{"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:gray_terracotta":{"defaultstate":"minecraft:gray_terracotta","properties":{}},"minecraft:gray_wall_banner":{"defaultstate":"minecraft:gray_wall_banner[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:gray_wool":{"defaultstate":"minecraft:gray_wool","properties":{}},"minecraft:green_banner":{"defaultstate":"minecraft:green_banner[rotation=0]","properties":{"rotation":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]}}},"minecraft:green_bed":{"defaultstate":"minecraft:green_bed[facing=north,occupied=false,part=foot]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"occupied":{"type":"bool","values":["true","false"]},"part":{"type":"enum","values":["head","foot"]}}},"minecraft:green_carpet":{"defaultstate":"minecraft:green_carpet","properties":{}},"minecraft:green_concrete":{"defaultstate":"minecraft:green_concrete","properties":{}},"minecraft:green_concrete_powder":{"defaultstate":"minecraft:green_concrete_powder","properties":{}},"minecraft:green_glazed_terracotta":{"defaultstate":"minecraft:green_glazed_terracotta[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:green_shulker_box":{"defaultstate":"minecraft:green_shulker_box[facing=up]","properties":{"facing":{"type":"direction","values":["north","east","south","west","up","down"]}}},"minecraft:green_stained_glass":{"defaultstate":"minecraft:green_stained_glass","properties":{}},"minecraft:green_stained_glass_pane":{"defaultstate":"minecraft:green_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]","properties":{"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:green_terracotta":{"defaultstate":"minecraft:green_terracotta","properties":{}},"minecraft:green_wall_banner":{"defaultstate":"minecraft:green_wall_banner[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:green_wool":{"defaultstate":"minecraft:green_wool","properties":{}},"minecraft:grindstone":{"defaultstate":"minecraft:grindstone[face=wall,facing=north]","properties":{"face":{"type":"enum","values":["floor","wall","ceiling"]},"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:hay_block":{"defaultstate":"minecraft:hay_block[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:heavy_weighted_pressure_plate":{"defaultstate":"minecraft:heavy_weighted_pressure_plate[power=0]","properties":{"power":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]}}},"minecraft:honey_block":{"defaultstate":"minecraft:honey_block","properties":{}},"minecraft:honeycomb_block":{"defaultstate":"minecraft:honeycomb_block","properties":{}},"minecraft:hopper":{"defaultstate":"minecraft:hopper[enabled=true,facing=down]","properties":{"enabled":{"type":"bool","values":["true","false"]},"facing":{"type":"direction","values":["down","north","south","west","east"]}}},"minecraft:horn_coral":{"defaultstate":"minecraft:horn_coral[waterlogged=true]","properties":{"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:horn_coral_block":{"defaultstate":"minecraft:horn_coral_block","properties":{}},"minecraft:horn_coral_fan":{"defaultstate":"minecraft:horn_coral_fan[waterlogged=true]","properties":{"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:horn_coral_wall_fan":{"defaultstate":"minecraft:horn_coral_wall_fan[facing=north,waterlogged=true]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:ice":{"defaultstate":"minecraft:ice","properties":{}},"minecraft:infested_chiseled_stone_bricks":{"defaultstate":"minecraft:infested_chiseled_stone_bricks","properties":{}},"minecraft:infested_cobblestone":{"defaultstate":"minecraft:infested_cobblestone","properties":{}},"minecraft:infested_cracked_stone_bricks":{"defaultstate":"minecraft:infested_cracked_stone_bricks","properties":{}},"minecraft:infested_mossy_stone_bricks":{"defaultstate":"minecraft:infested_mossy_stone_bricks","properties":{}},"minecraft:infested_stone":{"defaultstate":"minecraft:infested_stone","properties":{}},"minecraft:infested_stone_bricks":{"defaultstate":"minecraft:infested_stone_bricks","properties":{}},"minecraft:iron_bars":{"defaultstate":"minecraft:iron_bars[east=false,north=false,south=false,waterlogged=false,west=false]","properties":{"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:iron_block":{"defaultstate":"minecraft:iron_block","properties":{}},"minecraft:iron_door":{"defaultstate":"minecraft:iron_door[facing=north,half=lower,hinge=left,open=false,powered=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["upper","lower"]},"hinge":{"type":"enum","values":["left","right"]},"open":{"type":"bool","values":["true","false"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:iron_ore":{"defaultstate":"minecraft:iron_ore","properties":{}},"minecraft:iron_trapdoor":{"defaultstate":"minecraft:iron_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"open":{"type":"bool","values":["true","false"]},"powered":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:jack_o_lantern":{"defaultstate":"minecraft:jack_o_lantern[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:jigsaw":{"defaultstate":"minecraft:jigsaw[orientation=north_up]","properties":{"orientation":{"type":"enum","values":["down_east","down_north","down_south","down_west","up_east","up_north","up_south","up_west","west_up","east_up","north_up","south_up"]}}},"minecraft:jukebox":{"defaultstate":"minecraft:jukebox[has_record=false]","properties":{"has_record":{"type":"bool","values":["true","false"]}}},"minecraft:jungle_button":{"defaultstate":"minecraft:jungle_button[face=wall,facing=north,powered=false]","properties":{"face":{"type":"enum","values":["floor","wall","ceiling"]},"facing":{"type":"direction","values":["north","south","west","east"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:jungle_door":{"defaultstate":"minecraft:jungle_door[facing=north,half=lower,hinge=left,open=false,powered=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["upper","lower"]},"hinge":{"type":"enum","values":["left","right"]},"open":{"type":"bool","values":["true","false"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:jungle_fence":{"defaultstate":"minecraft:jungle_fence[east=false,north=false,south=false,waterlogged=false,west=false]","properties":{"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:jungle_fence_gate":{"defaultstate":"minecraft:jungle_fence_gate[facing=north,in_wall=false,open=false,powered=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"in_wall":{"type":"bool","values":["true","false"]},"open":{"type":"bool","values":["true","false"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:jungle_leaves":{"defaultstate":"minecraft:jungle_leaves[distance=7,persistent=false]","properties":{"distance":{"type":"int","values":["1","2","3","4","5","6","7"]},"persistent":{"type":"bool","values":["true","false"]}}},"minecraft:jungle_log":{"defaultstate":"minecraft:jungle_log[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:jungle_planks":{"defaultstate":"minecraft:jungle_planks","properties":{}},"minecraft:jungle_pressure_plate":{"defaultstate":"minecraft:jungle_pressure_plate[powered=false]","properties":{"powered":{"type":"bool","values":["true","false"]}}},"minecraft:jungle_sapling":{"defaultstate":"minecraft:jungle_sapling[stage=0]","properties":{"stage":{"type":"int","values":["0","1"]}}},"minecraft:jungle_sign":{"defaultstate":"minecraft:jungle_sign[rotation=0,waterlogged=false]","properties":{"rotation":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:jungle_slab":{"defaultstate":"minecraft:jungle_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:jungle_stairs":{"defaultstate":"minecraft:jungle_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:jungle_trapdoor":{"defaultstate":"minecraft:jungle_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"open":{"type":"bool","values":["true","false"]},"powered":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:jungle_wall_sign":{"defaultstate":"minecraft:jungle_wall_sign[facing=north,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:jungle_wood":{"defaultstate":"minecraft:jungle_wood[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:kelp":{"defaultstate":"minecraft:kelp[age=0]","properties":{"age":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25"]}}},"minecraft:kelp_plant":{"defaultstate":"minecraft:kelp_plant","properties":{}},"minecraft:ladder":{"defaultstate":"minecraft:ladder[facing=north,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:lantern":{"defaultstate":"minecraft:lantern[hanging=false,waterlogged=false]","properties":{"hanging":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:lapis_block":{"defaultstate":"minecraft:lapis_block","properties":{}},"minecraft:lapis_ore":{"defaultstate":"minecraft:lapis_ore","properties":{}},"minecraft:large_fern":{"defaultstate":"minecraft:large_fern[half=lower]","properties":{"half":{"type":"enum","values":["upper","lower"]}}},"minecraft:lava":{"defaultstate":"minecraft:lava[level=0]","properties":{"level":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]}}},"minecraft:lectern":{"defaultstate":"minecraft:lectern[facing=north,has_book=false,powered=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"has_book":{"type":"bool","values":["true","false"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:lever":{"defaultstate":"minecraft:lever[face=wall,facing=north,powered=false]","properties":{"face":{"type":"enum","values":["floor","wall","ceiling"]},"facing":{"type":"direction","values":["north","south","west","east"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:light_blue_banner":{"defaultstate":"minecraft:light_blue_banner[rotation=0]","properties":{"rotation":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]}}},"minecraft:light_blue_bed":{"defaultstate":"minecraft:light_blue_bed[facing=north,occupied=false,part=foot]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"occupied":{"type":"bool","values":["true","false"]},"part":{"type":"enum","values":["head","foot"]}}},"minecraft:light_blue_carpet":{"defaultstate":"minecraft:light_blue_carpet","properties":{}},"minecraft:light_blue_concrete":{"defaultstate":"minecraft:light_blue_concrete","properties":{}},"minecraft:light_blue_concrete_powder":{"defaultstate":"minecraft:light_blue_concrete_powder","properties":{}},"minecraft:light_blue_glazed_terracotta":{"defaultstate":"minecraft:light_blue_glazed_terracotta[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:light_blue_shulker_box":{"defaultstate":"minecraft:light_blue_shulker_box[facing=up]","properties":{"facing":{"type":"direction","values":["north","east","south","west","up","down"]}}},"minecraft:light_blue_stained_glass":{"defaultstate":"minecraft:light_blue_stained_glass","properties":{}},"minecraft:light_blue_stained_glass_pane":{"defaultstate":"minecraft:light_blue_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]","properties":{"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:light_blue_terracotta":{"defaultstate":"minecraft:light_blue_terracotta","properties":{}},"minecraft:light_blue_wall_banner":{"defaultstate":"minecraft:light_blue_wall_banner[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:light_blue_wool":{"defaultstate":"minecraft:light_blue_wool","properties":{}},"minecraft:light_gray_banner":{"defaultstate":"minecraft:light_gray_banner[rotation=0]","properties":{"rotation":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]}}},"minecraft:light_gray_bed":{"defaultstate":"minecraft:light_gray_bed[facing=north,occupied=false,part=foot]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"occupied":{"type":"bool","values":["true","false"]},"part":{"type":"enum","values":["head","foot"]}}},"minecraft:light_gray_carpet":{"defaultstate":"minecraft:light_gray_carpet","properties":{}},"minecraft:light_gray_concrete":{"defaultstate":"minecraft:light_gray_concrete","properties":{}},"minecraft:light_gray_concrete_powder":{"defaultstate":"minecraft:light_gray_concrete_powder","properties":{}},"minecraft:light_gray_glazed_terracotta":{"defaultstate":"minecraft:light_gray_glazed_terracotta[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:light_gray_shulker_box":{"defaultstate":"minecraft:light_gray_shulker_box[facing=up]","properties":{"facing":{"type":"direction","values":["north","east","south","west","up","down"]}}},"minecraft:light_gray_stained_glass":{"defaultstate":"minecraft:light_gray_stained_glass","properties":{}},"minecraft:light_gray_stained_glass_pane":{"defaultstate":"minecraft:light_gray_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]","properties":{"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:light_gray_terracotta":{"defaultstate":"minecraft:light_gray_terracotta","properties":{}},"minecraft:light_gray_wall_banner":{"defaultstate":"minecraft:light_gray_wall_banner[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:light_gray_wool":{"defaultstate":"minecraft:light_gray_wool","properties":{}},"minecraft:light_weighted_pressure_plate":{"defaultstate":"minecraft:light_weighted_pressure_plate[power=0]","properties":{"power":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]}}},"minecraft:lilac":{"defaultstate":"minecraft:lilac[half=lower]","properties":{"half":{"type":"enum","values":["upper","lower"]}}},"minecraft:lily_of_the_valley":{"defaultstate":"minecraft:lily_of_the_valley","properties":{}},"minecraft:lily_pad":{"defaultstate":"minecraft:lily_pad","properties":{}},"minecraft:lime_banner":{"defaultstate":"minecraft:lime_banner[rotation=0]","properties":{"rotation":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]}}},"minecraft:lime_bed":{"defaultstate":"minecraft:lime_bed[facing=north,occupied=false,part=foot]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"occupied":{"type":"bool","values":["true","false"]},"part":{"type":"enum","values":["head","foot"]}}},"minecraft:lime_carpet":{"defaultstate":"minecraft:lime_carpet","properties":{}},"minecraft:lime_concrete":{"defaultstate":"minecraft:lime_concrete","properties":{}},"minecraft:lime_concrete_powder":{"defaultstate":"minecraft:lime_concrete_powder","properties":{}},"minecraft:lime_glazed_terracotta":{"defaultstate":"minecraft:lime_glazed_terracotta[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:lime_shulker_box":{"defaultstate":"minecraft:lime_shulker_box[facing=up]","properties":{"facing":{"type":"direction","values":["north","east","south","west","up","down"]}}},"minecraft:lime_stained_glass":{"defaultstate":"minecraft:lime_stained_glass","properties":{}},"minecraft:lime_stained_glass_pane":{"defaultstate":"minecraft:lime_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]","properties":{"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:lime_terracotta":{"defaultstate":"minecraft:lime_terracotta","properties":{}},"minecraft:lime_wall_banner":{"defaultstate":"minecraft:lime_wall_banner[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:lime_wool":{"defaultstate":"minecraft:lime_wool","properties":{}},"minecraft:lodestone":{"defaultstate":"minecraft:lodestone","properties":{}},"minecraft:loom":{"defaultstate":"minecraft:loom[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:magenta_banner":{"defaultstate":"minecraft:magenta_banner[rotation=0]","properties":{"rotation":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]}}},"minecraft:magenta_bed":{"defaultstate":"minecraft:magenta_bed[facing=north,occupied=false,part=foot]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"occupied":{"type":"bool","values":["true","false"]},"part":{"type":"enum","values":["head","foot"]}}},"minecraft:magenta_carpet":{"defaultstate":"minecraft:magenta_carpet","properties":{}},"minecraft:magenta_concrete":{"defaultstate":"minecraft:magenta_concrete","properties":{}},"minecraft:magenta_concrete_powder":{"defaultstate":"minecraft:magenta_concrete_powder","properties":{}},"minecraft:magenta_glazed_terracotta":{"defaultstate":"minecraft:magenta_glazed_terracotta[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:magenta_shulker_box":{"defaultstate":"minecraft:magenta_shulker_box[facing=up]","properties":{"facing":{"type":"direction","values":["north","east","south","west","up","down"]}}},"minecraft:magenta_stained_glass":{"defaultstate":"minecraft:magenta_stained_glass","properties":{}},"minecraft:magenta_stained_glass_pane":{"defaultstate":"minecraft:magenta_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]","properties":{"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:magenta_terracotta":{"defaultstate":"minecraft:magenta_terracotta","properties":{}},"minecraft:magenta_wall_banner":{"defaultstate":"minecraft:magenta_wall_banner[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:magenta_wool":{"defaultstate":"minecraft:magenta_wool","properties":{}},"minecraft:magma_block":{"defaultstate":"minecraft:magma_block","properties":{}},"minecraft:melon":{"defaultstate":"minecraft:melon","properties":{}},"minecraft:melon_stem":{"defaultstate":"minecraft:melon_stem[age=0]","properties":{"age":{"type":"int","values":["0","1","2","3","4","5","6","7"]}}},"minecraft:mossy_cobblestone":{"defaultstate":"minecraft:mossy_cobblestone","properties":{}},"minecraft:mossy_cobblestone_slab":{"defaultstate":"minecraft:mossy_cobblestone_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:mossy_cobblestone_stairs":{"defaultstate":"minecraft:mossy_cobblestone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:mossy_cobblestone_wall":{"defaultstate":"minecraft:mossy_cobblestone_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]","properties":{"east":{"type":"enum","values":["none","low","tall"]},"north":{"type":"enum","values":["none","low","tall"]},"south":{"type":"enum","values":["none","low","tall"]},"up":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"enum","values":["none","low","tall"]}}},"minecraft:mossy_stone_brick_slab":{"defaultstate":"minecraft:mossy_stone_brick_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:mossy_stone_brick_stairs":{"defaultstate":"minecraft:mossy_stone_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:mossy_stone_brick_wall":{"defaultstate":"minecraft:mossy_stone_brick_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]","properties":{"east":{"type":"enum","values":["none","low","tall"]},"north":{"type":"enum","values":["none","low","tall"]},"south":{"type":"enum","values":["none","low","tall"]},"up":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"enum","values":["none","low","tall"]}}},"minecraft:mossy_stone_bricks":{"defaultstate":"minecraft:mossy_stone_bricks","properties":{}},"minecraft:moving_piston":{"defaultstate":"minecraft:moving_piston[facing=north,type=normal]","properties":{"facing":{"type":"direction","values":["north","east","south","west","up","down"]},"type":{"type":"enum","values":["normal","sticky"]}}},"minecraft:mushroom_stem":{"defaultstate":"minecraft:mushroom_stem[down=true,east=true,north=true,south=true,up=true,west=true]","properties":{"down":{"type":"bool","values":["true","false"]},"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"up":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:mycelium":{"defaultstate":"minecraft:mycelium[snowy=false]","properties":{"snowy":{"type":"bool","values":["true","false"]}}},"minecraft:nether_brick_fence":{"defaultstate":"minecraft:nether_brick_fence[east=false,north=false,south=false,waterlogged=false,west=false]","properties":{"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:nether_brick_slab":{"defaultstate":"minecraft:nether_brick_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:nether_brick_stairs":{"defaultstate":"minecraft:nether_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:nether_brick_wall":{"defaultstate":"minecraft:nether_brick_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]","properties":{"east":{"type":"enum","values":["none","low","tall"]},"north":{"type":"enum","values":["none","low","tall"]},"south":{"type":"enum","values":["none","low","tall"]},"up":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"enum","values":["none","low","tall"]}}},"minecraft:nether_bricks":{"defaultstate":"minecraft:nether_bricks","properties":{}},"minecraft:nether_gold_ore":{"defaultstate":"minecraft:nether_gold_ore","properties":{}},"minecraft:nether_portal":{"defaultstate":"minecraft:nether_portal[axis=x]","properties":{"axis":{"type":"enum","values":["x","z"]}}},"minecraft:nether_quartz_ore":{"defaultstate":"minecraft:nether_quartz_ore","properties":{}},"minecraft:nether_sprouts":{"defaultstate":"minecraft:nether_sprouts","properties":{}},"minecraft:nether_wart":{"defaultstate":"minecraft:nether_wart[age=0]","properties":{"age":{"type":"int","values":["0","1","2","3"]}}},"minecraft:nether_wart_block":{"defaultstate":"minecraft:nether_wart_block","properties":{}},"minecraft:netherite_block":{"defaultstate":"minecraft:netherite_block","properties":{}},"minecraft:netherrack":{"defaultstate":"minecraft:netherrack","properties":{}},"minecraft:note_block":{"defaultstate":"minecraft:note_block[instrument=harp,note=0,powered=false]","properties":{"instrument":{"type":"enum","values":["harp","basedrum","snare","hat","bass","flute","bell","guitar","chime","xylophone","iron_xylophone","cow_bell","didgeridoo","bit","banjo","pling"]},"note":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:oak_button":{"defaultstate":"minecraft:oak_button[face=wall,facing=north,powered=false]","properties":{"face":{"type":"enum","values":["floor","wall","ceiling"]},"facing":{"type":"direction","values":["north","south","west","east"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:oak_door":{"defaultstate":"minecraft:oak_door[facing=north,half=lower,hinge=left,open=false,powered=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["upper","lower"]},"hinge":{"type":"enum","values":["left","right"]},"open":{"type":"bool","values":["true","false"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:oak_fence":{"defaultstate":"minecraft:oak_fence[east=false,north=false,south=false,waterlogged=false,west=false]","properties":{"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:oak_fence_gate":{"defaultstate":"minecraft:oak_fence_gate[facing=north,in_wall=false,open=false,powered=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"in_wall":{"type":"bool","values":["true","false"]},"open":{"type":"bool","values":["true","false"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:oak_leaves":{"defaultstate":"minecraft:oak_leaves[distance=7,persistent=false]","properties":{"distance":{"type":"int","values":["1","2","3","4","5","6","7"]},"persistent":{"type":"bool","values":["true","false"]}}},"minecraft:oak_log":{"defaultstate":"minecraft:oak_log[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:oak_planks":{"defaultstate":"minecraft:oak_planks","properties":{}},"minecraft:oak_pressure_plate":{"defaultstate":"minecraft:oak_pressure_plate[powered=false]","properties":{"powered":{"type":"bool","values":["true","false"]}}},"minecraft:oak_sapling":{"defaultstate":"minecraft:oak_sapling[stage=0]","properties":{"stage":{"type":"int","values":["0","1"]}}},"minecraft:oak_sign":{"defaultstate":"minecraft:oak_sign[rotation=0,waterlogged=false]","properties":{"rotation":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:oak_slab":{"defaultstate":"minecraft:oak_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:oak_stairs":{"defaultstate":"minecraft:oak_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:oak_trapdoor":{"defaultstate":"minecraft:oak_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"open":{"type":"bool","values":["true","false"]},"powered":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:oak_wall_sign":{"defaultstate":"minecraft:oak_wall_sign[facing=north,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:oak_wood":{"defaultstate":"minecraft:oak_wood[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:observer":{"defaultstate":"minecraft:observer[facing=south,powered=false]","properties":{"facing":{"type":"direction","values":["north","east","south","west","up","down"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:obsidian":{"defaultstate":"minecraft:obsidian","properties":{}},"minecraft:orange_banner":{"defaultstate":"minecraft:orange_banner[rotation=0]","properties":{"rotation":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]}}},"minecraft:orange_bed":{"defaultstate":"minecraft:orange_bed[facing=north,occupied=false,part=foot]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"occupied":{"type":"bool","values":["true","false"]},"part":{"type":"enum","values":["head","foot"]}}},"minecraft:orange_carpet":{"defaultstate":"minecraft:orange_carpet","properties":{}},"minecraft:orange_concrete":{"defaultstate":"minecraft:orange_concrete","properties":{}},"minecraft:orange_concrete_powder":{"defaultstate":"minecraft:orange_concrete_powder","properties":{}},"minecraft:orange_glazed_terracotta":{"defaultstate":"minecraft:orange_glazed_terracotta[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:orange_shulker_box":{"defaultstate":"minecraft:orange_shulker_box[facing=up]","properties":{"facing":{"type":"direction","values":["north","east","south","west","up","down"]}}},"minecraft:orange_stained_glass":{"defaultstate":"minecraft:orange_stained_glass","properties":{}},"minecraft:orange_stained_glass_pane":{"defaultstate":"minecraft:orange_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]","properties":{"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:orange_terracotta":{"defaultstate":"minecraft:orange_terracotta","properties":{}},"minecraft:orange_tulip":{"defaultstate":"minecraft:orange_tulip","properties":{}},"minecraft:orange_wall_banner":{"defaultstate":"minecraft:orange_wall_banner[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:orange_wool":{"defaultstate":"minecraft:orange_wool","properties":{}},"minecraft:oxeye_daisy":{"defaultstate":"minecraft:oxeye_daisy","properties":{}},"minecraft:packed_ice":{"defaultstate":"minecraft:packed_ice","properties":{}},"minecraft:peony":{"defaultstate":"minecraft:peony[half=lower]","properties":{"half":{"type":"enum","values":["upper","lower"]}}},"minecraft:petrified_oak_slab":{"defaultstate":"minecraft:petrified_oak_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:pink_banner":{"defaultstate":"minecraft:pink_banner[rotation=0]","properties":{"rotation":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]}}},"minecraft:pink_bed":{"defaultstate":"minecraft:pink_bed[facing=north,occupied=false,part=foot]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"occupied":{"type":"bool","values":["true","false"]},"part":{"type":"enum","values":["head","foot"]}}},"minecraft:pink_carpet":{"defaultstate":"minecraft:pink_carpet","properties":{}},"minecraft:pink_concrete":{"defaultstate":"minecraft:pink_concrete","properties":{}},"minecraft:pink_concrete_powder":{"defaultstate":"minecraft:pink_concrete_powder","properties":{}},"minecraft:pink_glazed_terracotta":{"defaultstate":"minecraft:pink_glazed_terracotta[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:pink_shulker_box":{"defaultstate":"minecraft:pink_shulker_box[facing=up]","properties":{"facing":{"type":"direction","values":["north","east","south","west","up","down"]}}},"minecraft:pink_stained_glass":{"defaultstate":"minecraft:pink_stained_glass","properties":{}},"minecraft:pink_stained_glass_pane":{"defaultstate":"minecraft:pink_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]","properties":{"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:pink_terracotta":{"defaultstate":"minecraft:pink_terracotta","properties":{}},"minecraft:pink_tulip":{"defaultstate":"minecraft:pink_tulip","properties":{}},"minecraft:pink_wall_banner":{"defaultstate":"minecraft:pink_wall_banner[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:pink_wool":{"defaultstate":"minecraft:pink_wool","properties":{}},"minecraft:piston":{"defaultstate":"minecraft:piston[extended=false,facing=north]","properties":{"extended":{"type":"bool","values":["true","false"]},"facing":{"type":"direction","values":["north","east","south","west","up","down"]}}},"minecraft:piston_head":{"defaultstate":"minecraft:piston_head[facing=north,short=false,type=normal]","properties":{"facing":{"type":"direction","values":["north","east","south","west","up","down"]},"short":{"type":"bool","values":["true","false"]},"type":{"type":"enum","values":["normal","sticky"]}}},"minecraft:player_head":{"defaultstate":"minecraft:player_head[rotation=0]","properties":{"rotation":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]}}},"minecraft:player_wall_head":{"defaultstate":"minecraft:player_wall_head[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:podzol":{"defaultstate":"minecraft:podzol[snowy=false]","properties":{"snowy":{"type":"bool","values":["true","false"]}}},"minecraft:polished_andesite":{"defaultstate":"minecraft:polished_andesite","properties":{}},"minecraft:polished_andesite_slab":{"defaultstate":"minecraft:polished_andesite_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:polished_andesite_stairs":{"defaultstate":"minecraft:polished_andesite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:polished_basalt":{"defaultstate":"minecraft:polished_basalt[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:polished_blackstone":{"defaultstate":"minecraft:polished_blackstone","properties":{}},"minecraft:polished_blackstone_brick_slab":{"defaultstate":"minecraft:polished_blackstone_brick_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:polished_blackstone_brick_stairs":{"defaultstate":"minecraft:polished_blackstone_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:polished_blackstone_brick_wall":{"defaultstate":"minecraft:polished_blackstone_brick_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]","properties":{"east":{"type":"enum","values":["none","low","tall"]},"north":{"type":"enum","values":["none","low","tall"]},"south":{"type":"enum","values":["none","low","tall"]},"up":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"enum","values":["none","low","tall"]}}},"minecraft:polished_blackstone_bricks":{"defaultstate":"minecraft:polished_blackstone_bricks","properties":{}},"minecraft:polished_blackstone_button":{"defaultstate":"minecraft:polished_blackstone_button[face=wall,facing=north,powered=false]","properties":{"face":{"type":"enum","values":["floor","wall","ceiling"]},"facing":{"type":"direction","values":["north","south","west","east"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:polished_blackstone_pressure_plate":{"defaultstate":"minecraft:polished_blackstone_pressure_plate[powered=false]","properties":{"powered":{"type":"bool","values":["true","false"]}}},"minecraft:polished_blackstone_slab":{"defaultstate":"minecraft:polished_blackstone_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:polished_blackstone_stairs":{"defaultstate":"minecraft:polished_blackstone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:polished_blackstone_wall":{"defaultstate":"minecraft:polished_blackstone_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]","properties":{"east":{"type":"enum","values":["none","low","tall"]},"north":{"type":"enum","values":["none","low","tall"]},"south":{"type":"enum","values":["none","low","tall"]},"up":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"enum","values":["none","low","tall"]}}},"minecraft:polished_diorite":{"defaultstate":"minecraft:polished_diorite","properties":{}},"minecraft:polished_diorite_slab":{"defaultstate":"minecraft:polished_diorite_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:polished_diorite_stairs":{"defaultstate":"minecraft:polished_diorite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:polished_granite":{"defaultstate":"minecraft:polished_granite","properties":{}},"minecraft:polished_granite_slab":{"defaultstate":"minecraft:polished_granite_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:polished_granite_stairs":{"defaultstate":"minecraft:polished_granite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:poppy":{"defaultstate":"minecraft:poppy","properties":{}},"minecraft:potatoes":{"defaultstate":"minecraft:potatoes[age=0]","properties":{"age":{"type":"int","values":["0","1","2","3","4","5","6","7"]}}},"minecraft:potted_acacia_sapling":{"defaultstate":"minecraft:potted_acacia_sapling","properties":{}},"minecraft:potted_allium":{"defaultstate":"minecraft:potted_allium","properties":{}},"minecraft:potted_azure_bluet":{"defaultstate":"minecraft:potted_azure_bluet","properties":{}},"minecraft:potted_bamboo":{"defaultstate":"minecraft:potted_bamboo","properties":{}},"minecraft:potted_birch_sapling":{"defaultstate":"minecraft:potted_birch_sapling","properties":{}},"minecraft:potted_blue_orchid":{"defaultstate":"minecraft:potted_blue_orchid","properties":{}},"minecraft:potted_brown_mushroom":{"defaultstate":"minecraft:potted_brown_mushroom","properties":{}},"minecraft:potted_cactus":{"defaultstate":"minecraft:potted_cactus","properties":{}},"minecraft:potted_cornflower":{"defaultstate":"minecraft:potted_cornflower","properties":{}},"minecraft:potted_crimson_fungus":{"defaultstate":"minecraft:potted_crimson_fungus","properties":{}},"minecraft:potted_crimson_roots":{"defaultstate":"minecraft:potted_crimson_roots","properties":{}},"minecraft:potted_dandelion":{"defaultstate":"minecraft:potted_dandelion","properties":{}},"minecraft:potted_dark_oak_sapling":{"defaultstate":"minecraft:potted_dark_oak_sapling","properties":{}},"minecraft:potted_dead_bush":{"defaultstate":"minecraft:potted_dead_bush","properties":{}},"minecraft:potted_fern":{"defaultstate":"minecraft:potted_fern","properties":{}},"minecraft:potted_jungle_sapling":{"defaultstate":"minecraft:potted_jungle_sapling","properties":{}},"minecraft:potted_lily_of_the_valley":{"defaultstate":"minecraft:potted_lily_of_the_valley","properties":{}},"minecraft:potted_oak_sapling":{"defaultstate":"minecraft:potted_oak_sapling","properties":{}},"minecraft:potted_orange_tulip":{"defaultstate":"minecraft:potted_orange_tulip","properties":{}},"minecraft:potted_oxeye_daisy":{"defaultstate":"minecraft:potted_oxeye_daisy","properties":{}},"minecraft:potted_pink_tulip":{"defaultstate":"minecraft:potted_pink_tulip","properties":{}},"minecraft:potted_poppy":{"defaultstate":"minecraft:potted_poppy","properties":{}},"minecraft:potted_red_mushroom":{"defaultstate":"minecraft:potted_red_mushroom","properties":{}},"minecraft:potted_red_tulip":{"defaultstate":"minecraft:potted_red_tulip","properties":{}},"minecraft:potted_spruce_sapling":{"defaultstate":"minecraft:potted_spruce_sapling","properties":{}},"minecraft:potted_warped_fungus":{"defaultstate":"minecraft:potted_warped_fungus","properties":{}},"minecraft:potted_warped_roots":{"defaultstate":"minecraft:potted_warped_roots","properties":{}},"minecraft:potted_white_tulip":{"defaultstate":"minecraft:potted_white_tulip","properties":{}},"minecraft:potted_wither_rose":{"defaultstate":"minecraft:potted_wither_rose","properties":{}},"minecraft:powered_rail":{"defaultstate":"minecraft:powered_rail[powered=false,shape=north_south]","properties":{"powered":{"type":"bool","values":["true","false"]},"shape":{"type":"enum","values":["north_south","east_west","ascending_east","ascending_west","ascending_north","ascending_south"]}}},"minecraft:prismarine":{"defaultstate":"minecraft:prismarine","properties":{}},"minecraft:prismarine_brick_slab":{"defaultstate":"minecraft:prismarine_brick_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:prismarine_brick_stairs":{"defaultstate":"minecraft:prismarine_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:prismarine_bricks":{"defaultstate":"minecraft:prismarine_bricks","properties":{}},"minecraft:prismarine_slab":{"defaultstate":"minecraft:prismarine_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:prismarine_stairs":{"defaultstate":"minecraft:prismarine_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:prismarine_wall":{"defaultstate":"minecraft:prismarine_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]","properties":{"east":{"type":"enum","values":["none","low","tall"]},"north":{"type":"enum","values":["none","low","tall"]},"south":{"type":"enum","values":["none","low","tall"]},"up":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"enum","values":["none","low","tall"]}}},"minecraft:pumpkin":{"defaultstate":"minecraft:pumpkin","properties":{}},"minecraft:pumpkin_stem":{"defaultstate":"minecraft:pumpkin_stem[age=0]","properties":{"age":{"type":"int","values":["0","1","2","3","4","5","6","7"]}}},"minecraft:purple_banner":{"defaultstate":"minecraft:purple_banner[rotation=0]","properties":{"rotation":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]}}},"minecraft:purple_bed":{"defaultstate":"minecraft:purple_bed[facing=north,occupied=false,part=foot]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"occupied":{"type":"bool","values":["true","false"]},"part":{"type":"enum","values":["head","foot"]}}},"minecraft:purple_carpet":{"defaultstate":"minecraft:purple_carpet","properties":{}},"minecraft:purple_concrete":{"defaultstate":"minecraft:purple_concrete","properties":{}},"minecraft:purple_concrete_powder":{"defaultstate":"minecraft:purple_concrete_powder","properties":{}},"minecraft:purple_glazed_terracotta":{"defaultstate":"minecraft:purple_glazed_terracotta[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:purple_shulker_box":{"defaultstate":"minecraft:purple_shulker_box[facing=up]","properties":{"facing":{"type":"direction","values":["north","east","south","west","up","down"]}}},"minecraft:purple_stained_glass":{"defaultstate":"minecraft:purple_stained_glass","properties":{}},"minecraft:purple_stained_glass_pane":{"defaultstate":"minecraft:purple_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]","properties":{"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:purple_terracotta":{"defaultstate":"minecraft:purple_terracotta","properties":{}},"minecraft:purple_wall_banner":{"defaultstate":"minecraft:purple_wall_banner[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:purple_wool":{"defaultstate":"minecraft:purple_wool","properties":{}},"minecraft:purpur_block":{"defaultstate":"minecraft:purpur_block","properties":{}},"minecraft:purpur_pillar":{"defaultstate":"minecraft:purpur_pillar[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:purpur_slab":{"defaultstate":"minecraft:purpur_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:purpur_stairs":{"defaultstate":"minecraft:purpur_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:quartz_block":{"defaultstate":"minecraft:quartz_block","properties":{}},"minecraft:quartz_bricks":{"defaultstate":"minecraft:quartz_bricks","properties":{}},"minecraft:quartz_pillar":{"defaultstate":"minecraft:quartz_pillar[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:quartz_slab":{"defaultstate":"minecraft:quartz_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:quartz_stairs":{"defaultstate":"minecraft:quartz_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:rail":{"defaultstate":"minecraft:rail[shape=north_south]","properties":{"shape":{"type":"enum","values":["north_south","east_west","ascending_east","ascending_west","ascending_north","ascending_south","south_east","south_west","north_west","north_east"]}}},"minecraft:red_banner":{"defaultstate":"minecraft:red_banner[rotation=0]","properties":{"rotation":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]}}},"minecraft:red_bed":{"defaultstate":"minecraft:red_bed[facing=north,occupied=false,part=foot]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"occupied":{"type":"bool","values":["true","false"]},"part":{"type":"enum","values":["head","foot"]}}},"minecraft:red_carpet":{"defaultstate":"minecraft:red_carpet","properties":{}},"minecraft:red_concrete":{"defaultstate":"minecraft:red_concrete","properties":{}},"minecraft:red_concrete_powder":{"defaultstate":"minecraft:red_concrete_powder","properties":{}},"minecraft:red_glazed_terracotta":{"defaultstate":"minecraft:red_glazed_terracotta[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:red_mushroom":{"defaultstate":"minecraft:red_mushroom","properties":{}},"minecraft:red_mushroom_block":{"defaultstate":"minecraft:red_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true]","properties":{"down":{"type":"bool","values":["true","false"]},"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"up":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:red_nether_brick_slab":{"defaultstate":"minecraft:red_nether_brick_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:red_nether_brick_stairs":{"defaultstate":"minecraft:red_nether_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:red_nether_brick_wall":{"defaultstate":"minecraft:red_nether_brick_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]","properties":{"east":{"type":"enum","values":["none","low","tall"]},"north":{"type":"enum","values":["none","low","tall"]},"south":{"type":"enum","values":["none","low","tall"]},"up":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"enum","values":["none","low","tall"]}}},"minecraft:red_nether_bricks":{"defaultstate":"minecraft:red_nether_bricks","properties":{}},"minecraft:red_sand":{"defaultstate":"minecraft:red_sand","properties":{}},"minecraft:red_sandstone":{"defaultstate":"minecraft:red_sandstone","properties":{}},"minecraft:red_sandstone_slab":{"defaultstate":"minecraft:red_sandstone_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:red_sandstone_stairs":{"defaultstate":"minecraft:red_sandstone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:red_sandstone_wall":{"defaultstate":"minecraft:red_sandstone_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]","properties":{"east":{"type":"enum","values":["none","low","tall"]},"north":{"type":"enum","values":["none","low","tall"]},"south":{"type":"enum","values":["none","low","tall"]},"up":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"enum","values":["none","low","tall"]}}},"minecraft:red_shulker_box":{"defaultstate":"minecraft:red_shulker_box[facing=up]","properties":{"facing":{"type":"direction","values":["north","east","south","west","up","down"]}}},"minecraft:red_stained_glass":{"defaultstate":"minecraft:red_stained_glass","properties":{}},"minecraft:red_stained_glass_pane":{"defaultstate":"minecraft:red_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]","properties":{"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:red_terracotta":{"defaultstate":"minecraft:red_terracotta","properties":{}},"minecraft:red_tulip":{"defaultstate":"minecraft:red_tulip","properties":{}},"minecraft:red_wall_banner":{"defaultstate":"minecraft:red_wall_banner[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:red_wool":{"defaultstate":"minecraft:red_wool","properties":{}},"minecraft:redstone_block":{"defaultstate":"minecraft:redstone_block","properties":{}},"minecraft:redstone_lamp":{"defaultstate":"minecraft:redstone_lamp[lit=false]","properties":{"lit":{"type":"bool","values":["true","false"]}}},"minecraft:redstone_ore":{"defaultstate":"minecraft:redstone_ore[lit=false]","properties":{"lit":{"type":"bool","values":["true","false"]}}},"minecraft:redstone_torch":{"defaultstate":"minecraft:redstone_torch[lit=true]","properties":{"lit":{"type":"bool","values":["true","false"]}}},"minecraft:redstone_wall_torch":{"defaultstate":"minecraft:redstone_wall_torch[facing=north,lit=true]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"lit":{"type":"bool","values":["true","false"]}}},"minecraft:redstone_wire":{"defaultstate":"minecraft:redstone_wire[east=none,north=none,power=0,south=none,west=none]","properties":{"east":{"type":"enum","values":["up","side","none"]},"north":{"type":"enum","values":["up","side","none"]},"power":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]},"south":{"type":"enum","values":["up","side","none"]},"west":{"type":"enum","values":["up","side","none"]}}},"minecraft:repeater":{"defaultstate":"minecraft:repeater[delay=1,facing=north,locked=false,powered=false]","properties":{"delay":{"type":"int","values":["1","2","3","4"]},"facing":{"type":"direction","values":["north","south","west","east"]},"locked":{"type":"bool","values":["true","false"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:repeating_command_block":{"defaultstate":"minecraft:repeating_command_block[conditional=false,facing=north]","properties":{"conditional":{"type":"bool","values":["true","false"]},"facing":{"type":"direction","values":["north","east","south","west","up","down"]}}},"minecraft:respawn_anchor":{"defaultstate":"minecraft:respawn_anchor[charges=0]","properties":{"charges":{"type":"int","values":["0","1","2","3","4"]}}},"minecraft:rose_bush":{"defaultstate":"minecraft:rose_bush[half=lower]","properties":{"half":{"type":"enum","values":["upper","lower"]}}},"minecraft:sand":{"defaultstate":"minecraft:sand","properties":{}},"minecraft:sandstone":{"defaultstate":"minecraft:sandstone","properties":{}},"minecraft:sandstone_slab":{"defaultstate":"minecraft:sandstone_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:sandstone_stairs":{"defaultstate":"minecraft:sandstone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:sandstone_wall":{"defaultstate":"minecraft:sandstone_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]","properties":{"east":{"type":"enum","values":["none","low","tall"]},"north":{"type":"enum","values":["none","low","tall"]},"south":{"type":"enum","values":["none","low","tall"]},"up":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"enum","values":["none","low","tall"]}}},"minecraft:scaffolding":{"defaultstate":"minecraft:scaffolding[bottom=false,distance=7,waterlogged=false]","properties":{"bottom":{"type":"bool","values":["true","false"]},"distance":{"type":"int","values":["0","1","2","3","4","5","6","7"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:sea_lantern":{"defaultstate":"minecraft:sea_lantern","properties":{}},"minecraft:sea_pickle":{"defaultstate":"minecraft:sea_pickle[pickles=1,waterlogged=true]","properties":{"pickles":{"type":"int","values":["1","2","3","4"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:seagrass":{"defaultstate":"minecraft:seagrass","properties":{}},"minecraft:shroomlight":{"defaultstate":"minecraft:shroomlight","properties":{}},"minecraft:shulker_box":{"defaultstate":"minecraft:shulker_box[facing=up]","properties":{"facing":{"type":"direction","values":["north","east","south","west","up","down"]}}},"minecraft:skeleton_skull":{"defaultstate":"minecraft:skeleton_skull[rotation=0]","properties":{"rotation":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]}}},"minecraft:skeleton_wall_skull":{"defaultstate":"minecraft:skeleton_wall_skull[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:slime_block":{"defaultstate":"minecraft:slime_block","properties":{}},"minecraft:smithing_table":{"defaultstate":"minecraft:smithing_table","properties":{}},"minecraft:smoker":{"defaultstate":"minecraft:smoker[facing=north,lit=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"lit":{"type":"bool","values":["true","false"]}}},"minecraft:smooth_quartz":{"defaultstate":"minecraft:smooth_quartz","properties":{}},"minecraft:smooth_quartz_slab":{"defaultstate":"minecraft:smooth_quartz_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:smooth_quartz_stairs":{"defaultstate":"minecraft:smooth_quartz_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:smooth_red_sandstone":{"defaultstate":"minecraft:smooth_red_sandstone","properties":{}},"minecraft:smooth_red_sandstone_slab":{"defaultstate":"minecraft:smooth_red_sandstone_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:smooth_red_sandstone_stairs":{"defaultstate":"minecraft:smooth_red_sandstone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:smooth_sandstone":{"defaultstate":"minecraft:smooth_sandstone","properties":{}},"minecraft:smooth_sandstone_slab":{"defaultstate":"minecraft:smooth_sandstone_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:smooth_sandstone_stairs":{"defaultstate":"minecraft:smooth_sandstone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:smooth_stone":{"defaultstate":"minecraft:smooth_stone","properties":{}},"minecraft:smooth_stone_slab":{"defaultstate":"minecraft:smooth_stone_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:snow":{"defaultstate":"minecraft:snow[layers=1]","properties":{"layers":{"type":"int","values":["1","2","3","4","5","6","7","8"]}}},"minecraft:snow_block":{"defaultstate":"minecraft:snow_block","properties":{}},"minecraft:soul_campfire":{"defaultstate":"minecraft:soul_campfire[facing=north,lit=true,signal_fire=false,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"lit":{"type":"bool","values":["true","false"]},"signal_fire":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:soul_fire":{"defaultstate":"minecraft:soul_fire","properties":{}},"minecraft:soul_lantern":{"defaultstate":"minecraft:soul_lantern[hanging=false,waterlogged=false]","properties":{"hanging":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:soul_sand":{"defaultstate":"minecraft:soul_sand","properties":{}},"minecraft:soul_soil":{"defaultstate":"minecraft:soul_soil","properties":{}},"minecraft:soul_torch":{"defaultstate":"minecraft:soul_torch","properties":{}},"minecraft:soul_wall_torch":{"defaultstate":"minecraft:soul_wall_torch[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:spawner":{"defaultstate":"minecraft:spawner","properties":{}},"minecraft:sponge":{"defaultstate":"minecraft:sponge","properties":{}},"minecraft:spruce_button":{"defaultstate":"minecraft:spruce_button[face=wall,facing=north,powered=false]","properties":{"face":{"type":"enum","values":["floor","wall","ceiling"]},"facing":{"type":"direction","values":["north","south","west","east"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:spruce_door":{"defaultstate":"minecraft:spruce_door[facing=north,half=lower,hinge=left,open=false,powered=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["upper","lower"]},"hinge":{"type":"enum","values":["left","right"]},"open":{"type":"bool","values":["true","false"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:spruce_fence":{"defaultstate":"minecraft:spruce_fence[east=false,north=false,south=false,waterlogged=false,west=false]","properties":{"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:spruce_fence_gate":{"defaultstate":"minecraft:spruce_fence_gate[facing=north,in_wall=false,open=false,powered=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"in_wall":{"type":"bool","values":["true","false"]},"open":{"type":"bool","values":["true","false"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:spruce_leaves":{"defaultstate":"minecraft:spruce_leaves[distance=7,persistent=false]","properties":{"distance":{"type":"int","values":["1","2","3","4","5","6","7"]},"persistent":{"type":"bool","values":["true","false"]}}},"minecraft:spruce_log":{"defaultstate":"minecraft:spruce_log[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:spruce_planks":{"defaultstate":"minecraft:spruce_planks","properties":{}},"minecraft:spruce_pressure_plate":{"defaultstate":"minecraft:spruce_pressure_plate[powered=false]","properties":{"powered":{"type":"bool","values":["true","false"]}}},"minecraft:spruce_sapling":{"defaultstate":"minecraft:spruce_sapling[stage=0]","properties":{"stage":{"type":"int","values":["0","1"]}}},"minecraft:spruce_sign":{"defaultstate":"minecraft:spruce_sign[rotation=0,waterlogged=false]","properties":{"rotation":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:spruce_slab":{"defaultstate":"minecraft:spruce_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:spruce_stairs":{"defaultstate":"minecraft:spruce_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:spruce_trapdoor":{"defaultstate":"minecraft:spruce_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"open":{"type":"bool","values":["true","false"]},"powered":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:spruce_wall_sign":{"defaultstate":"minecraft:spruce_wall_sign[facing=north,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:spruce_wood":{"defaultstate":"minecraft:spruce_wood[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:sticky_piston":{"defaultstate":"minecraft:sticky_piston[extended=false,facing=north]","properties":{"extended":{"type":"bool","values":["true","false"]},"facing":{"type":"direction","values":["north","east","south","west","up","down"]}}},"minecraft:stone":{"defaultstate":"minecraft:stone","properties":{}},"minecraft:stone_brick_slab":{"defaultstate":"minecraft:stone_brick_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:stone_brick_stairs":{"defaultstate":"minecraft:stone_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:stone_brick_wall":{"defaultstate":"minecraft:stone_brick_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]","properties":{"east":{"type":"enum","values":["none","low","tall"]},"north":{"type":"enum","values":["none","low","tall"]},"south":{"type":"enum","values":["none","low","tall"]},"up":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"enum","values":["none","low","tall"]}}},"minecraft:stone_bricks":{"defaultstate":"minecraft:stone_bricks","properties":{}},"minecraft:stone_button":{"defaultstate":"minecraft:stone_button[face=wall,facing=north,powered=false]","properties":{"face":{"type":"enum","values":["floor","wall","ceiling"]},"facing":{"type":"direction","values":["north","south","west","east"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:stone_pressure_plate":{"defaultstate":"minecraft:stone_pressure_plate[powered=false]","properties":{"powered":{"type":"bool","values":["true","false"]}}},"minecraft:stone_slab":{"defaultstate":"minecraft:stone_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:stone_stairs":{"defaultstate":"minecraft:stone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:stonecutter":{"defaultstate":"minecraft:stonecutter[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:stripped_acacia_log":{"defaultstate":"minecraft:stripped_acacia_log[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:stripped_acacia_wood":{"defaultstate":"minecraft:stripped_acacia_wood[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:stripped_birch_log":{"defaultstate":"minecraft:stripped_birch_log[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:stripped_birch_wood":{"defaultstate":"minecraft:stripped_birch_wood[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:stripped_crimson_hyphae":{"defaultstate":"minecraft:stripped_crimson_hyphae[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:stripped_crimson_stem":{"defaultstate":"minecraft:stripped_crimson_stem[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:stripped_dark_oak_log":{"defaultstate":"minecraft:stripped_dark_oak_log[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:stripped_dark_oak_wood":{"defaultstate":"minecraft:stripped_dark_oak_wood[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:stripped_jungle_log":{"defaultstate":"minecraft:stripped_jungle_log[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:stripped_jungle_wood":{"defaultstate":"minecraft:stripped_jungle_wood[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:stripped_oak_log":{"defaultstate":"minecraft:stripped_oak_log[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:stripped_oak_wood":{"defaultstate":"minecraft:stripped_oak_wood[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:stripped_spruce_log":{"defaultstate":"minecraft:stripped_spruce_log[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:stripped_spruce_wood":{"defaultstate":"minecraft:stripped_spruce_wood[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:stripped_warped_hyphae":{"defaultstate":"minecraft:stripped_warped_hyphae[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:stripped_warped_stem":{"defaultstate":"minecraft:stripped_warped_stem[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:structure_block":{"defaultstate":"minecraft:structure_block[mode=save]","properties":{"mode":{"type":"enum","values":["save","load","corner","data"]}}},"minecraft:structure_void":{"defaultstate":"minecraft:structure_void","properties":{}},"minecraft:sugar_cane":{"defaultstate":"minecraft:sugar_cane[age=0]","properties":{"age":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]}}},"minecraft:sunflower":{"defaultstate":"minecraft:sunflower[half=lower]","properties":{"half":{"type":"enum","values":["upper","lower"]}}},"minecraft:sweet_berry_bush":{"defaultstate":"minecraft:sweet_berry_bush[age=0]","properties":{"age":{"type":"int","values":["0","1","2","3"]}}},"minecraft:tall_grass":{"defaultstate":"minecraft:tall_grass[half=lower]","properties":{"half":{"type":"enum","values":["upper","lower"]}}},"minecraft:tall_seagrass":{"defaultstate":"minecraft:tall_seagrass[half=lower]","properties":{"half":{"type":"enum","values":["upper","lower"]}}},"minecraft:target":{"defaultstate":"minecraft:target[power=0]","properties":{"power":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]}}},"minecraft:terracotta":{"defaultstate":"minecraft:terracotta","properties":{}},"minecraft:tnt":{"defaultstate":"minecraft:tnt[unstable=false]","properties":{"unstable":{"type":"bool","values":["true","false"]}}},"minecraft:torch":{"defaultstate":"minecraft:torch","properties":{}},"minecraft:trapped_chest":{"defaultstate":"minecraft:trapped_chest[facing=north,type=single,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"type":{"type":"enum","values":["single","left","right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:tripwire":{"defaultstate":"minecraft:tripwire[attached=false,disarmed=false,east=false,north=false,powered=false,south=false,west=false]","properties":{"attached":{"type":"bool","values":["true","false"]},"disarmed":{"type":"bool","values":["true","false"]},"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"powered":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:tripwire_hook":{"defaultstate":"minecraft:tripwire_hook[attached=false,facing=north,powered=false]","properties":{"attached":{"type":"bool","values":["true","false"]},"facing":{"type":"direction","values":["north","south","west","east"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:tube_coral":{"defaultstate":"minecraft:tube_coral[waterlogged=true]","properties":{"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:tube_coral_block":{"defaultstate":"minecraft:tube_coral_block","properties":{}},"minecraft:tube_coral_fan":{"defaultstate":"minecraft:tube_coral_fan[waterlogged=true]","properties":{"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:tube_coral_wall_fan":{"defaultstate":"minecraft:tube_coral_wall_fan[facing=north,waterlogged=true]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:turtle_egg":{"defaultstate":"minecraft:turtle_egg[eggs=1,hatch=0]","properties":{"eggs":{"type":"int","values":["1","2","3","4"]},"hatch":{"type":"int","values":["0","1","2"]}}},"minecraft:twisting_vines":{"defaultstate":"minecraft:twisting_vines[age=0]","properties":{"age":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25"]}}},"minecraft:twisting_vines_plant":{"defaultstate":"minecraft:twisting_vines_plant","properties":{}},"minecraft:vine":{"defaultstate":"minecraft:vine[east=false,north=false,south=false,up=false,west=false]","properties":{"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"up":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:void_air":{"defaultstate":"minecraft:void_air","properties":{}},"minecraft:wall_torch":{"defaultstate":"minecraft:wall_torch[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:warped_button":{"defaultstate":"minecraft:warped_button[face=wall,facing=north,powered=false]","properties":{"face":{"type":"enum","values":["floor","wall","ceiling"]},"facing":{"type":"direction","values":["north","south","west","east"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:warped_door":{"defaultstate":"minecraft:warped_door[facing=north,half=lower,hinge=left,open=false,powered=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["upper","lower"]},"hinge":{"type":"enum","values":["left","right"]},"open":{"type":"bool","values":["true","false"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:warped_fence":{"defaultstate":"minecraft:warped_fence[east=false,north=false,south=false,waterlogged=false,west=false]","properties":{"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:warped_fence_gate":{"defaultstate":"minecraft:warped_fence_gate[facing=north,in_wall=false,open=false,powered=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"in_wall":{"type":"bool","values":["true","false"]},"open":{"type":"bool","values":["true","false"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:warped_fungus":{"defaultstate":"minecraft:warped_fungus","properties":{}},"minecraft:warped_hyphae":{"defaultstate":"minecraft:warped_hyphae[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:warped_nylium":{"defaultstate":"minecraft:warped_nylium","properties":{}},"minecraft:warped_planks":{"defaultstate":"minecraft:warped_planks","properties":{}},"minecraft:warped_pressure_plate":{"defaultstate":"minecraft:warped_pressure_plate[powered=false]","properties":{"powered":{"type":"bool","values":["true","false"]}}},"minecraft:warped_roots":{"defaultstate":"minecraft:warped_roots","properties":{}},"minecraft:warped_sign":{"defaultstate":"minecraft:warped_sign[rotation=0,waterlogged=false]","properties":{"rotation":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:warped_slab":{"defaultstate":"minecraft:warped_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:warped_stairs":{"defaultstate":"minecraft:warped_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:warped_stem":{"defaultstate":"minecraft:warped_stem[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:warped_trapdoor":{"defaultstate":"minecraft:warped_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"open":{"type":"bool","values":["true","false"]},"powered":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:warped_wall_sign":{"defaultstate":"minecraft:warped_wall_sign[facing=north,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:warped_wart_block":{"defaultstate":"minecraft:warped_wart_block","properties":{}},"minecraft:water":{"defaultstate":"minecraft:water[level=0]","properties":{"level":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]}}},"minecraft:weeping_vines":{"defaultstate":"minecraft:weeping_vines[age=0]","properties":{"age":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25"]}}},"minecraft:weeping_vines_plant":{"defaultstate":"minecraft:weeping_vines_plant","properties":{}},"minecraft:wet_sponge":{"defaultstate":"minecraft:wet_sponge","properties":{}},"minecraft:wheat":{"defaultstate":"minecraft:wheat[age=0]","properties":{"age":{"type":"int","values":["0","1","2","3","4","5","6","7"]}}},"minecraft:white_banner":{"defaultstate":"minecraft:white_banner[rotation=0]","properties":{"rotation":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]}}},"minecraft:white_bed":{"defaultstate":"minecraft:white_bed[facing=north,occupied=false,part=foot]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"occupied":{"type":"bool","values":["true","false"]},"part":{"type":"enum","values":["head","foot"]}}},"minecraft:white_carpet":{"defaultstate":"minecraft:white_carpet","properties":{}},"minecraft:white_concrete":{"defaultstate":"minecraft:white_concrete","properties":{}},"minecraft:white_concrete_powder":{"defaultstate":"minecraft:white_concrete_powder","properties":{}},"minecraft:white_glazed_terracotta":{"defaultstate":"minecraft:white_glazed_terracotta[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:white_shulker_box":{"defaultstate":"minecraft:white_shulker_box[facing=up]","properties":{"facing":{"type":"direction","values":["north","east","south","west","up","down"]}}},"minecraft:white_stained_glass":{"defaultstate":"minecraft:white_stained_glass","properties":{}},"minecraft:white_stained_glass_pane":{"defaultstate":"minecraft:white_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]","properties":{"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:white_terracotta":{"defaultstate":"minecraft:white_terracotta","properties":{}},"minecraft:white_tulip":{"defaultstate":"minecraft:white_tulip","properties":{}},"minecraft:white_wall_banner":{"defaultstate":"minecraft:white_wall_banner[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:white_wool":{"defaultstate":"minecraft:white_wool","properties":{}},"minecraft:wither_rose":{"defaultstate":"minecraft:wither_rose","properties":{}},"minecraft:wither_skeleton_skull":{"defaultstate":"minecraft:wither_skeleton_skull[rotation=0]","properties":{"rotation":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]}}},"minecraft:wither_skeleton_wall_skull":{"defaultstate":"minecraft:wither_skeleton_wall_skull[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:yellow_banner":{"defaultstate":"minecraft:yellow_banner[rotation=0]","properties":{"rotation":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]}}},"minecraft:yellow_bed":{"defaultstate":"minecraft:yellow_bed[facing=north,occupied=false,part=foot]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"occupied":{"type":"bool","values":["true","false"]},"part":{"type":"enum","values":["head","foot"]}}},"minecraft:yellow_carpet":{"defaultstate":"minecraft:yellow_carpet","properties":{}},"minecraft:yellow_concrete":{"defaultstate":"minecraft:yellow_concrete","properties":{}},"minecraft:yellow_concrete_powder":{"defaultstate":"minecraft:yellow_concrete_powder","properties":{}},"minecraft:yellow_glazed_terracotta":{"defaultstate":"minecraft:yellow_glazed_terracotta[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:yellow_shulker_box":{"defaultstate":"minecraft:yellow_shulker_box[facing=up]","properties":{"facing":{"type":"direction","values":["north","east","south","west","up","down"]}}},"minecraft:yellow_stained_glass":{"defaultstate":"minecraft:yellow_stained_glass","properties":{}},"minecraft:yellow_stained_glass_pane":{"defaultstate":"minecraft:yellow_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]","properties":{"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:yellow_terracotta":{"defaultstate":"minecraft:yellow_terracotta","properties":{}},"minecraft:yellow_wall_banner":{"defaultstate":"minecraft:yellow_wall_banner[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:yellow_wool":{"defaultstate":"minecraft:yellow_wool","properties":{}},"minecraft:zombie_head":{"defaultstate":"minecraft:zombie_head[rotation=0]","properties":{"rotation":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]}}},"minecraft:zombie_wall_head":{"defaultstate":"minecraft:zombie_wall_head[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}}},"blocktags":{"minecraft:acacia_logs":["minecraft:acacia_log","minecraft:acacia_wood","minecraft:stripped_acacia_log","minecraft:stripped_acacia_wood"],"minecraft:anvil":["minecraft:anvil","minecraft:chipped_anvil","minecraft:damaged_anvil"],"minecraft:bamboo_plantable_on":["minecraft:bamboo","minecraft:bamboo_sapling","minecraft:coarse_dirt","minecraft:dirt","minecraft:grass_block","minecraft:gravel","minecraft:mycelium","minecraft:podzol","minecraft:red_sand","minecraft:sand"],"minecraft:banners":["minecraft:black_banner","minecraft:black_wall_banner","minecraft:blue_banner","minecraft:blue_wall_banner","minecraft:brown_banner","minecraft:brown_wall_banner","minecraft:cyan_banner","minecraft:cyan_wall_banner","minecraft:gray_banner","minecraft:gray_wall_banner","minecraft:green_banner","minecraft:green_wall_banner","minecraft:light_blue_banner","minecraft:light_blue_wall_banner","minecraft:light_gray_banner","minecraft:light_gray_wall_banner","minecraft:lime_banner","minecraft:lime_wall_banner","minecraft:magenta_banner","minecraft:magenta_wall_banner","minecraft:orange_banner","minecraft:orange_wall_banner","minecraft:pink_banner","minecraft:pink_wall_banner","minecraft:purple_banner","minecraft:purple_wall_banner","minecraft:red_banner","minecraft:red_wall_banner","minecraft:white_banner","minecraft:white_wall_banner","minecraft:yellow_banner","minecraft:yellow_wall_banner"],"minecraft:base_stone_nether":["minecraft:basalt","minecraft:blackstone","minecraft:netherrack"],"minecraft:base_stone_overworld":["minecraft:andesite","minecraft:diorite","minecraft:granite","minecraft:stone"],"minecraft:beacon_base_blocks":["minecraft:diamond_block","minecraft:emerald_block","minecraft:gold_block","minecraft:iron_block","minecraft:netherite_block"],"minecraft:beds":["minecraft:black_bed","minecraft:blue_bed","minecraft:brown_bed","minecraft:cyan_bed","minecraft:gray_bed","minecraft:green_bed","minecraft:light_blue_bed","minecraft:light_gray_bed","minecraft:lime_bed","minecraft:magenta_bed","minecraft:orange_bed","minecraft:pink_bed","minecraft:purple_bed","minecraft:red_bed","minecraft:white_bed","minecraft:yellow_bed"],"minecraft:bee_growables":["minecraft:beetroots","minecraft:carrots","minecraft:melon_stem","minecraft:potatoes","minecraft:pumpkin_stem","minecraft:sweet_berry_bush","minecraft:wheat"],"minecraft:beehives":["minecraft:bee_nest","minecraft:beehive"],"minecraft:birch_logs":["minecraft:birch_log","minecraft:birch_wood","minecraft:stripped_birch_log","minecraft:stripped_birch_wood"],"minecraft:buttons":["minecraft:acacia_button","minecraft:birch_button","minecraft:crimson_button","minecraft:dark_oak_button","minecraft:jungle_button","minecraft:oak_button","minecraft:polished_blackstone_button","minecraft:spruce_button","minecraft:stone_button","minecraft:warped_button"],"minecraft:campfires":["minecraft:campfire","minecraft:soul_campfire"],"minecraft:carpets":["minecraft:black_carpet","minecraft:blue_carpet","minecraft:brown_carpet","minecraft:cyan_carpet","minecraft:gray_carpet","minecraft:green_carpet","minecraft:light_blue_carpet","minecraft:light_gray_carpet","minecraft:lime_carpet","minecraft:magenta_carpet","minecraft:orange_carpet","minecraft:pink_carpet","minecraft:purple_carpet","minecraft:red_carpet","minecraft:white_carpet","minecraft:yellow_carpet"],"minecraft:climbable":["minecraft:ladder","minecraft:scaffolding","minecraft:twisting_vines","minecraft:twisting_vines_plant","minecraft:vine","minecraft:weeping_vines","minecraft:weeping_vines_plant"],"minecraft:coral_blocks":["minecraft:brain_coral_block","minecraft:bubble_coral_block","minecraft:fire_coral_block","minecraft:horn_coral_block","minecraft:tube_coral_block"],"minecraft:coral_plants":["minecraft:brain_coral","minecraft:bubble_coral","minecraft:fire_coral","minecraft:horn_coral","minecraft:tube_coral"],"minecraft:corals":["minecraft:brain_coral","minecraft:brain_coral_fan","minecraft:bubble_coral","minecraft:bubble_coral_fan","minecraft:fire_coral","minecraft:fire_coral_fan","minecraft:horn_coral","minecraft:horn_coral_fan","minecraft:tube_coral","minecraft:tube_coral_fan"],"minecraft:crimson_stems":["minecraft:crimson_hyphae","minecraft:crimson_stem","minecraft:stripped_crimson_hyphae","minecraft:stripped_crimson_stem"],"minecraft:crops":["minecraft:beetroots","minecraft:carrots","minecraft:melon_stem","minecraft:potatoes","minecraft:pumpkin_stem","minecraft:wheat"],"minecraft:dark_oak_logs":["minecraft:dark_oak_log","minecraft:dark_oak_wood","minecraft:stripped_dark_oak_log","minecraft:stripped_dark_oak_wood"],"minecraft:doors":["minecraft:acacia_door","minecraft:birch_door","minecraft:crimson_door","minecraft:dark_oak_door","minecraft:iron_door","minecraft:jungle_door","minecraft:oak_door","minecraft:spruce_door","minecraft:warped_door"],"minecraft:dragon_immune":["minecraft:barrier","minecraft:bedrock","minecraft:chain_command_block","minecraft:command_block","minecraft:crying_obsidian","minecraft:end_gateway","minecraft:end_portal","minecraft:end_portal_frame","minecraft:end_stone","minecraft:iron_bars","minecraft:jigsaw","minecraft:moving_piston","minecraft:obsidian","minecraft:repeating_command_block","minecraft:respawn_anchor","minecraft:structure_block"],"minecraft:enderman_holdable":["minecraft:allium","minecraft:azure_bluet","minecraft:blue_orchid","minecraft:brown_mushroom","minecraft:cactus","minecraft:carved_pumpkin","minecraft:clay","minecraft:coarse_dirt","minecraft:cornflower","minecraft:crimson_fungus","minecraft:crimson_nylium","minecraft:crimson_roots","minecraft:dandelion","minecraft:dirt","minecraft:grass_block","minecraft:gravel","minecraft:lily_of_the_valley","minecraft:melon","minecraft:mycelium","minecraft:orange_tulip","minecraft:oxeye_daisy","minecraft:pink_tulip","minecraft:podzol","minecraft:poppy","minecraft:pumpkin","minecraft:red_mushroom","minecraft:red_sand","minecraft:red_tulip","minecraft:sand","minecraft:tnt","minecraft:warped_fungus","minecraft:warped_nylium","minecraft:warped_roots","minecraft:white_tulip","minecraft:wither_rose"],"minecraft:fence_gates":["minecraft:acacia_fence_gate","minecraft:birch_fence_gate","minecraft:crimson_fence_gate","minecraft:dark_oak_fence_gate","minecraft:jungle_fence_gate","minecraft:oak_fence_gate","minecraft:spruce_fence_gate","minecraft:warped_fence_gate"],"minecraft:fences":["minecraft:acacia_fence","minecraft:birch_fence","minecraft:crimson_fence","minecraft:dark_oak_fence","minecraft:jungle_fence","minecraft:nether_brick_fence","minecraft:oak_fence","minecraft:spruce_fence","minecraft:warped_fence"],"minecraft:fire":["minecraft:fire","minecraft:soul_fire"],"minecraft:flower_pots":["minecraft:flower_pot","minecraft:potted_acacia_sapling","minecraft:potted_allium","minecraft:potted_azure_bluet","minecraft:potted_bamboo","minecraft:potted_birch_sapling","minecraft:potted_blue_orchid","minecraft:potted_brown_mushroom","minecraft:potted_cactus","minecraft:potted_cornflower","minecraft:potted_crimson_fungus","minecraft:potted_crimson_roots","minecraft:potted_dandelion","minecraft:potted_dark_oak_sapling","minecraft:potted_dead_bush","minecraft:potted_fern","minecraft:potted_jungle_sapling","minecraft:potted_lily_of_the_valley","minecraft:potted_oak_sapling","minecraft:potted_orange_tulip","minecraft:potted_oxeye_daisy","minecraft:potted_pink_tulip","minecraft:potted_poppy","minecraft:potted_red_mushroom","minecraft:potted_red_tulip","minecraft:potted_spruce_sapling","minecraft:potted_warped_fungus","minecraft:potted_warped_roots","minecraft:potted_white_tulip","minecraft:potted_wither_rose"],"minecraft:flowers":["minecraft:allium","minecraft:azure_bluet","minecraft:blue_orchid","minecraft:cornflower","minecraft:dandelion","minecraft:lilac","minecraft:lily_of_the_valley","minecraft:orange_tulip","minecraft:oxeye_daisy","minecraft:peony","minecraft:pink_tulip","minecraft:poppy","minecraft:red_tulip","minecraft:rose_bush","minecraft:sunflower","minecraft:white_tulip","minecraft:wither_rose"],"minecraft:gold_ores":["minecraft:gold_ore","minecraft:nether_gold_ore"],"minecraft:guarded_by_piglins":["minecraft:barrel","minecraft:black_shulker_box","minecraft:blue_shulker_box","minecraft:brown_shulker_box","minecraft:chest","minecraft:cyan_shulker_box","minecraft:ender_chest","minecraft:gilded_blackstone","minecraft:gold_block","minecraft:gold_ore","minecraft:gray_shulker_box","minecraft:green_shulker_box","minecraft:light_blue_shulker_box","minecraft:light_gray_shulker_box","minecraft:lime_shulker_box","minecraft:magenta_shulker_box","minecraft:nether_gold_ore","minecraft:orange_shulker_box","minecraft:pink_shulker_box","minecraft:purple_shulker_box","minecraft:red_shulker_box","minecraft:shulker_box","minecraft:trapped_chest","minecraft:white_shulker_box","minecraft:yellow_shulker_box"],"minecraft:hoglin_repellents":["minecraft:nether_portal","minecraft:potted_warped_fungus","minecraft:respawn_anchor","minecraft:warped_fungus"],"minecraft:ice":["minecraft:blue_ice","minecraft:frosted_ice","minecraft:ice","minecraft:packed_ice"],"minecraft:impermeable":["minecraft:black_stained_glass","minecraft:blue_stained_glass","minecraft:brown_stained_glass","minecraft:cyan_stained_glass","minecraft:glass","minecraft:gray_stained_glass","minecraft:green_stained_glass","minecraft:light_blue_stained_glass","minecraft:light_gray_stained_glass","minecraft:lime_stained_glass","minecraft:magenta_stained_glass","minecraft:orange_stained_glass","minecraft:pink_stained_glass","minecraft:purple_stained_glass","minecraft:red_stained_glass","minecraft:white_stained_glass","minecraft:yellow_stained_glass"],"minecraft:infiniburn_end":["minecraft:bedrock","minecraft:magma_block","minecraft:netherrack"],"minecraft:infiniburn_nether":["minecraft:magma_block","minecraft:netherrack"],"minecraft:infiniburn_overworld":["minecraft:magma_block","minecraft:netherrack"],"minecraft:jungle_logs":["minecraft:jungle_log","minecraft:jungle_wood","minecraft:stripped_jungle_log","minecraft:stripped_jungle_wood"],"minecraft:leaves":["minecraft:acacia_leaves","minecraft:birch_leaves","minecraft:dark_oak_leaves","minecraft:jungle_leaves","minecraft:oak_leaves","minecraft:spruce_leaves"],"minecraft:logs":["minecraft:acacia_log","minecraft:acacia_wood","minecraft:birch_log","minecraft:birch_wood","minecraft:crimson_hyphae","minecraft:crimson_stem","minecraft:dark_oak_log","minecraft:dark_oak_wood","minecraft:jungle_log","minecraft:jungle_wood","minecraft:oak_log","minecraft:oak_wood","minecraft:spruce_log","minecraft:spruce_wood","minecraft:stripped_acacia_log","minecraft:stripped_acacia_wood","minecraft:stripped_birch_log","minecraft:stripped_birch_wood","minecraft:stripped_crimson_hyphae","minecraft:stripped_crimson_stem","minecraft:stripped_dark_oak_log","minecraft:stripped_dark_oak_wood","minecraft:stripped_jungle_log","minecraft:stripped_jungle_wood","minecraft:stripped_oak_log","minecraft:stripped_oak_wood","minecraft:stripped_spruce_log","minecraft:stripped_spruce_wood","minecraft:stripped_warped_hyphae","minecraft:stripped_warped_stem","minecraft:warped_hyphae","minecraft:warped_stem"],"minecraft:logs_that_burn":["minecraft:acacia_log","minecraft:acacia_wood","minecraft:birch_log","minecraft:birch_wood","minecraft:dark_oak_log","minecraft:dark_oak_wood","minecraft:jungle_log","minecraft:jungle_wood","minecraft:oak_log","minecraft:oak_wood","minecraft:spruce_log","minecraft:spruce_wood","minecraft:stripped_acacia_log","minecraft:stripped_acacia_wood","minecraft:stripped_birch_log","minecraft:stripped_birch_wood","minecraft:stripped_dark_oak_log","minecraft:stripped_dark_oak_wood","minecraft:stripped_jungle_log","minecraft:stripped_jungle_wood","minecraft:stripped_oak_log","minecraft:stripped_oak_wood","minecraft:stripped_spruce_log","minecraft:stripped_spruce_wood"],"minecraft:mushroom_grow_block":["minecraft:crimson_nylium","minecraft:mycelium","minecraft:podzol","minecraft:warped_nylium"],"minecraft:non_flammable_wood":["minecraft:crimson_button","minecraft:crimson_door","minecraft:crimson_fence","minecraft:crimson_fence_gate","minecraft:crimson_hyphae","minecraft:crimson_planks","minecraft:crimson_pressure_plate","minecraft:crimson_sign","minecraft:crimson_slab","minecraft:crimson_stairs","minecraft:crimson_stem","minecraft:crimson_trapdoor","minecraft:crimson_wall_sign","minecraft:stripped_crimson_hyphae","minecraft:stripped_crimson_stem","minecraft:stripped_warped_hyphae","minecraft:stripped_warped_stem","minecraft:warped_button","minecraft:warped_door","minecraft:warped_fence","minecraft:warped_fence_gate","minecraft:warped_hyphae","minecraft:warped_planks","minecraft:warped_pressure_plate","minecraft:warped_sign","minecraft:warped_slab","minecraft:warped_stairs","minecraft:warped_stem","minecraft:warped_trapdoor","minecraft:warped_wall_sign"],"minecraft:nylium":["minecraft:crimson_nylium","minecraft:warped_nylium"],"minecraft:oak_logs":["minecraft:oak_log","minecraft:oak_wood","minecraft:stripped_oak_log","minecraft:stripped_oak_wood"],"minecraft:piglin_repellents":["minecraft:soul_campfire","minecraft:soul_fire","minecraft:soul_lantern","minecraft:soul_torch","minecraft:soul_wall_torch"],"minecraft:planks":["minecraft:acacia_planks","minecraft:birch_planks","minecraft:crimson_planks","minecraft:dark_oak_planks","minecraft:jungle_planks","minecraft:oak_planks","minecraft:spruce_planks","minecraft:warped_planks"],"minecraft:portals":["minecraft:end_gateway","minecraft:end_portal","minecraft:nether_portal"],"minecraft:pressure_plates":["minecraft:acacia_pressure_plate","minecraft:birch_pressure_plate","minecraft:crimson_pressure_plate","minecraft:dark_oak_pressure_plate","minecraft:heavy_weighted_pressure_plate","minecraft:jungle_pressure_plate","minecraft:light_weighted_pressure_plate","minecraft:oak_pressure_plate","minecraft:polished_blackstone_pressure_plate","minecraft:spruce_pressure_plate","minecraft:stone_pressure_plate","minecraft:warped_pressure_plate"],"minecraft:prevent_mob_spawning_inside":["minecraft:activator_rail","minecraft:detector_rail","minecraft:powered_rail","minecraft:rail"],"minecraft:rails":["minecraft:activator_rail","minecraft:detector_rail","minecraft:powered_rail","minecraft:rail"],"minecraft:sand":["minecraft:red_sand","minecraft:sand"],"minecraft:saplings":["minecraft:acacia_sapling","minecraft:birch_sapling","minecraft:dark_oak_sapling","minecraft:jungle_sapling","minecraft:oak_sapling","minecraft:spruce_sapling"],"minecraft:shulker_boxes":["minecraft:black_shulker_box","minecraft:blue_shulker_box","minecraft:brown_shulker_box","minecraft:cyan_shulker_box","minecraft:gray_shulker_box","minecraft:green_shulker_box","minecraft:light_blue_shulker_box","minecraft:light_gray_shulker_box","minecraft:lime_shulker_box","minecraft:magenta_shulker_box","minecraft:orange_shulker_box","minecraft:pink_shulker_box","minecraft:purple_shulker_box","minecraft:red_shulker_box","minecraft:shulker_box","minecraft:white_shulker_box","minecraft:yellow_shulker_box"],"minecraft:signs":["minecraft:acacia_sign","minecraft:acacia_wall_sign","minecraft:birch_sign","minecraft:birch_wall_sign","minecraft:crimson_sign","minecraft:crimson_wall_sign","minecraft:dark_oak_sign","minecraft:dark_oak_wall_sign","minecraft:jungle_sign","minecraft:jungle_wall_sign","minecraft:oak_sign","minecraft:oak_wall_sign","minecraft:spruce_sign","minecraft:spruce_wall_sign","minecraft:warped_sign","minecraft:warped_wall_sign"],"minecraft:slabs":["minecraft:acacia_slab","minecraft:andesite_slab","minecraft:birch_slab","minecraft:blackstone_slab","minecraft:brick_slab","minecraft:cobblestone_slab","minecraft:crimson_slab","minecraft:cut_red_sandstone_slab","minecraft:cut_sandstone_slab","minecraft:dark_oak_slab","minecraft:dark_prismarine_slab","minecraft:diorite_slab","minecraft:end_stone_brick_slab","minecraft:granite_slab","minecraft:jungle_slab","minecraft:mossy_cobblestone_slab","minecraft:mossy_stone_brick_slab","minecraft:nether_brick_slab","minecraft:oak_slab","minecraft:petrified_oak_slab","minecraft:polished_andesite_slab","minecraft:polished_blackstone_brick_slab","minecraft:polished_blackstone_slab","minecraft:polished_diorite_slab","minecraft:polished_granite_slab","minecraft:prismarine_brick_slab","minecraft:prismarine_slab","minecraft:purpur_slab","minecraft:quartz_slab","minecraft:red_nether_brick_slab","minecraft:red_sandstone_slab","minecraft:sandstone_slab","minecraft:smooth_quartz_slab","minecraft:smooth_red_sandstone_slab","minecraft:smooth_sandstone_slab","minecraft:smooth_stone_slab","minecraft:spruce_slab","minecraft:stone_brick_slab","minecraft:stone_slab","minecraft:warped_slab"],"minecraft:small_flowers":["minecraft:allium","minecraft:azure_bluet","minecraft:blue_orchid","minecraft:cornflower","minecraft:dandelion","minecraft:lily_of_the_valley","minecraft:orange_tulip","minecraft:oxeye_daisy","minecraft:pink_tulip","minecraft:poppy","minecraft:red_tulip","minecraft:white_tulip","minecraft:wither_rose"],"minecraft:soul_fire_base_blocks":["minecraft:soul_sand","minecraft:soul_soil"],"minecraft:soul_speed_blocks":["minecraft:soul_sand","minecraft:soul_soil"],"minecraft:spruce_logs":["minecraft:spruce_log","minecraft:spruce_wood","minecraft:stripped_spruce_log","minecraft:stripped_spruce_wood"],"minecraft:stairs":["minecraft:acacia_stairs","minecraft:andesite_stairs","minecraft:birch_stairs","minecraft:blackstone_stairs","minecraft:brick_stairs","minecraft:cobblestone_stairs","minecraft:crimson_stairs","minecraft:dark_oak_stairs","minecraft:dark_prismarine_stairs","minecraft:diorite_stairs","minecraft:end_stone_brick_stairs","minecraft:granite_stairs","minecraft:jungle_stairs","minecraft:mossy_cobblestone_stairs","minecraft:mossy_stone_brick_stairs","minecraft:nether_brick_stairs","minecraft:oak_stairs","minecraft:polished_andesite_stairs","minecraft:polished_blackstone_brick_stairs","minecraft:polished_blackstone_stairs","minecraft:polished_diorite_stairs","minecraft:polished_granite_stairs","minecraft:prismarine_brick_stairs","minecraft:prismarine_stairs","minecraft:purpur_stairs","minecraft:quartz_stairs","minecraft:red_nether_brick_stairs","minecraft:red_sandstone_stairs","minecraft:sandstone_stairs","minecraft:smooth_quartz_stairs","minecraft:smooth_red_sandstone_stairs","minecraft:smooth_sandstone_stairs","minecraft:spruce_stairs","minecraft:stone_brick_stairs","minecraft:stone_stairs","minecraft:warped_stairs"],"minecraft:standing_signs":["minecraft:acacia_sign","minecraft:birch_sign","minecraft:crimson_sign","minecraft:dark_oak_sign","minecraft:jungle_sign","minecraft:oak_sign","minecraft:spruce_sign","minecraft:warped_sign"],"minecraft:stone_bricks":["minecraft:chiseled_stone_bricks","minecraft:cracked_stone_bricks","minecraft:mossy_stone_bricks","minecraft:stone_bricks"],"minecraft:stone_pressure_plates":["minecraft:polished_blackstone_pressure_plate","minecraft:stone_pressure_plate"],"minecraft:strider_warm_blocks":["minecraft:lava"],"minecraft:tall_flowers":["minecraft:lilac","minecraft:peony","minecraft:rose_bush","minecraft:sunflower"],"minecraft:trapdoors":["minecraft:acacia_trapdoor","minecraft:birch_trapdoor","minecraft:crimson_trapdoor","minecraft:dark_oak_trapdoor","minecraft:iron_trapdoor","minecraft:jungle_trapdoor","minecraft:oak_trapdoor","minecraft:spruce_trapdoor","minecraft:warped_trapdoor"],"minecraft:underwater_bonemeals":["minecraft:brain_coral","minecraft:brain_coral_fan","minecraft:brain_coral_wall_fan","minecraft:bubble_coral","minecraft:bubble_coral_fan","minecraft:bubble_coral_wall_fan","minecraft:fire_coral","minecraft:fire_coral_fan","minecraft:fire_coral_wall_fan","minecraft:horn_coral","minecraft:horn_coral_fan","minecraft:horn_coral_wall_fan","minecraft:seagrass","minecraft:tube_coral","minecraft:tube_coral_fan","minecraft:tube_coral_wall_fan"],"minecraft:unstable_bottom_center":["minecraft:acacia_fence_gate","minecraft:birch_fence_gate","minecraft:crimson_fence_gate","minecraft:dark_oak_fence_gate","minecraft:jungle_fence_gate","minecraft:oak_fence_gate","minecraft:spruce_fence_gate","minecraft:warped_fence_gate"],"minecraft:valid_spawn":["minecraft:grass_block","minecraft:podzol"],"minecraft:wall_corals":["minecraft:brain_coral_wall_fan","minecraft:bubble_coral_wall_fan","minecraft:fire_coral_wall_fan","minecraft:horn_coral_wall_fan","minecraft:tube_coral_wall_fan"],"minecraft:wall_post_override":["minecraft:acacia_pressure_plate","minecraft:acacia_sign","minecraft:acacia_wall_sign","minecraft:birch_pressure_plate","minecraft:birch_sign","minecraft:birch_wall_sign","minecraft:black_banner","minecraft:black_wall_banner","minecraft:blue_banner","minecraft:blue_wall_banner","minecraft:brown_banner","minecraft:brown_wall_banner","minecraft:crimson_pressure_plate","minecraft:crimson_sign","minecraft:crimson_wall_sign","minecraft:cyan_banner","minecraft:cyan_wall_banner","minecraft:dark_oak_pressure_plate","minecraft:dark_oak_sign","minecraft:dark_oak_wall_sign","minecraft:gray_banner","minecraft:gray_wall_banner","minecraft:green_banner","minecraft:green_wall_banner","minecraft:heavy_weighted_pressure_plate","minecraft:jungle_pressure_plate","minecraft:jungle_sign","minecraft:jungle_wall_sign","minecraft:light_blue_banner","minecraft:light_blue_wall_banner","minecraft:light_gray_banner","minecraft:light_gray_wall_banner","minecraft:light_weighted_pressure_plate","minecraft:lime_banner","minecraft:lime_wall_banner","minecraft:magenta_banner","minecraft:magenta_wall_banner","minecraft:oak_pressure_plate","minecraft:oak_sign","minecraft:oak_wall_sign","minecraft:orange_banner","minecraft:orange_wall_banner","minecraft:pink_banner","minecraft:pink_wall_banner","minecraft:polished_blackstone_pressure_plate","minecraft:purple_banner","minecraft:purple_wall_banner","minecraft:red_banner","minecraft:red_wall_banner","minecraft:redstone_torch","minecraft:soul_torch","minecraft:spruce_pressure_plate","minecraft:spruce_sign","minecraft:spruce_wall_sign","minecraft:stone_pressure_plate","minecraft:torch","minecraft:tripwire","minecraft:warped_pressure_plate","minecraft:warped_sign","minecraft:warped_wall_sign","minecraft:white_banner","minecraft:white_wall_banner","minecraft:yellow_banner","minecraft:yellow_wall_banner"],"minecraft:wall_signs":["minecraft:acacia_wall_sign","minecraft:birch_wall_sign","minecraft:crimson_wall_sign","minecraft:dark_oak_wall_sign","minecraft:jungle_wall_sign","minecraft:oak_wall_sign","minecraft:spruce_wall_sign","minecraft:warped_wall_sign"],"minecraft:walls":["minecraft:andesite_wall","minecraft:blackstone_wall","minecraft:brick_wall","minecraft:cobblestone_wall","minecraft:diorite_wall","minecraft:end_stone_brick_wall","minecraft:granite_wall","minecraft:mossy_cobblestone_wall","minecraft:mossy_stone_brick_wall","minecraft:nether_brick_wall","minecraft:polished_blackstone_brick_wall","minecraft:polished_blackstone_wall","minecraft:prismarine_wall","minecraft:red_nether_brick_wall","minecraft:red_sandstone_wall","minecraft:sandstone_wall","minecraft:stone_brick_wall"],"minecraft:warped_stems":["minecraft:stripped_warped_hyphae","minecraft:stripped_warped_stem","minecraft:warped_hyphae","minecraft:warped_stem"],"minecraft:wart_blocks":["minecraft:nether_wart_block","minecraft:warped_wart_block"],"minecraft:wither_immune":["minecraft:barrier","minecraft:bedrock","minecraft:chain_command_block","minecraft:command_block","minecraft:end_gateway","minecraft:end_portal","minecraft:end_portal_frame","minecraft:jigsaw","minecraft:moving_piston","minecraft:repeating_command_block","minecraft:structure_block"],"minecraft:wither_summon_base_blocks":["minecraft:soul_sand","minecraft:soul_soil"],"minecraft:wooden_buttons":["minecraft:acacia_button","minecraft:birch_button","minecraft:crimson_button","minecraft:dark_oak_button","minecraft:jungle_button","minecraft:oak_button","minecraft:spruce_button","minecraft:warped_button"],"minecraft:wooden_doors":["minecraft:acacia_door","minecraft:birch_door","minecraft:crimson_door","minecraft:dark_oak_door","minecraft:jungle_door","minecraft:oak_door","minecraft:spruce_door","minecraft:warped_door"],"minecraft:wooden_fences":["minecraft:acacia_fence","minecraft:birch_fence","minecraft:crimson_fence","minecraft:dark_oak_fence","minecraft:jungle_fence","minecraft:oak_fence","minecraft:spruce_fence","minecraft:warped_fence"],"minecraft:wooden_pressure_plates":["minecraft:acacia_pressure_plate","minecraft:birch_pressure_plate","minecraft:crimson_pressure_plate","minecraft:dark_oak_pressure_plate","minecraft:jungle_pressure_plate","minecraft:oak_pressure_plate","minecraft:spruce_pressure_plate","minecraft:warped_pressure_plate"],"minecraft:wooden_slabs":["minecraft:acacia_slab","minecraft:birch_slab","minecraft:crimson_slab","minecraft:dark_oak_slab","minecraft:jungle_slab","minecraft:oak_slab","minecraft:spruce_slab","minecraft:warped_slab"],"minecraft:wooden_stairs":["minecraft:acacia_stairs","minecraft:birch_stairs","minecraft:crimson_stairs","minecraft:dark_oak_stairs","minecraft:jungle_stairs","minecraft:oak_stairs","minecraft:spruce_stairs","minecraft:warped_stairs"],"minecraft:wooden_trapdoors":["minecraft:acacia_trapdoor","minecraft:birch_trapdoor","minecraft:crimson_trapdoor","minecraft:dark_oak_trapdoor","minecraft:jungle_trapdoor","minecraft:oak_trapdoor","minecraft:spruce_trapdoor","minecraft:warped_trapdoor"],"minecraft:wool":["minecraft:black_wool","minecraft:blue_wool","minecraft:brown_wool","minecraft:cyan_wool","minecraft:gray_wool","minecraft:green_wool","minecraft:light_blue_wool","minecraft:light_gray_wool","minecraft:lime_wool","minecraft:magenta_wool","minecraft:orange_wool","minecraft:pink_wool","minecraft:purple_wool","minecraft:red_wool","minecraft:white_wool","minecraft:yellow_wool"]},"entities":["minecraft:area_effect_cloud","minecraft:armor_stand","minecraft:arrow","minecraft:bat","minecraft:bee","minecraft:blaze","minecraft:boat","minecraft:cat","minecraft:cave_spider","minecraft:chest_minecart","minecraft:chicken","minecraft:cod","minecraft:command_block_minecart","minecraft:cow","minecraft:creeper","minecraft:dolphin","minecraft:donkey","minecraft:dragon_fireball","minecraft:drowned","minecraft:egg","minecraft:elder_guardian","minecraft:end_crystal","minecraft:ender_dragon","minecraft:ender_pearl","minecraft:enderman","minecraft:endermite","minecraft:evoker","minecraft:evoker_fangs","minecraft:experience_bottle","minecraft:experience_orb","minecraft:eye_of_ender","minecraft:falling_block","minecraft:fireball","minecraft:firework_rocket","minecraft:fishing_bobber","minecraft:fox","minecraft:furnace_minecart","minecraft:ghast","minecraft:giant","minecraft:guardian","minecraft:hoglin","minecraft:hopper_minecart","minecraft:horse","minecraft:husk","minecraft:illusioner","minecraft:iron_golem","minecraft:item","minecraft:item_frame","minecraft:leash_knot","minecraft:lightning_bolt","minecraft:llama","minecraft:llama_spit","minecraft:magma_cube","minecraft:minecart","minecraft:mooshroom","minecraft:mule","minecraft:ocelot","minecraft:painting","minecraft:panda","minecraft:parrot","minecraft:phantom","minecraft:pig","minecraft:piglin","minecraft:piglin_brute","minecraft:pillager","minecraft:player","minecraft:polar_bear","minecraft:potion","minecraft:pufferfish","minecraft:rabbit","minecraft:ravager","minecraft:salmon","minecraft:sheep","minecraft:shulker","minecraft:shulker_bullet","minecraft:silverfish","minecraft:skeleton","minecraft:skeleton_horse","minecraft:slime","minecraft:small_fireball","minecraft:snow_golem","minecraft:snowball","minecraft:spawner_minecart","minecraft:spectral_arrow","minecraft:spider","minecraft:squid","minecraft:stray","minecraft:strider","minecraft:tnt","minecraft:tnt_minecart","minecraft:trader_llama","minecraft:trident","minecraft:tropical_fish","minecraft:turtle","minecraft:vex","minecraft:villager","minecraft:vindicator","minecraft:wandering_trader","minecraft:witch","minecraft:wither","minecraft:wither_skeleton","minecraft:wither_skull","minecraft:wolf","minecraft:zoglin","minecraft:zombie","minecraft:zombie_horse","minecraft:zombie_villager","minecraft:zombified_piglin"],"entitytags":{"minecraft:arrows":["minecraft:arrow","minecraft:spectral_arrow"],"minecraft:beehive_inhabitors":["minecraft:bee"],"minecraft:impact_projectiles":["minecraft:arrow","minecraft:dragon_fireball","minecraft:egg","minecraft:fireball","minecraft:small_fireball","minecraft:snowball","minecraft:spectral_arrow","minecraft:trident","minecraft:wither_skull"],"minecraft:raiders":["minecraft:evoker","minecraft:illusioner","minecraft:pillager","minecraft:ravager","minecraft:vindicator","minecraft:witch"],"minecraft:skeletons":["minecraft:skeleton","minecraft:stray","minecraft:wither_skeleton"]},"items":["minecraft:acacia_boat","minecraft:acacia_button","minecraft:acacia_door","minecraft:acacia_fence","minecraft:acacia_fence_gate","minecraft:acacia_leaves","minecraft:acacia_log","minecraft:acacia_planks","minecraft:acacia_pressure_plate","minecraft:acacia_sapling","minecraft:acacia_sign","minecraft:acacia_slab","minecraft:acacia_stairs","minecraft:acacia_trapdoor","minecraft:acacia_wood","minecraft:activator_rail","minecraft:air","minecraft:allium","minecraft:ancient_debris","minecraft:andesite","minecraft:andesite_slab","minecraft:andesite_stairs","minecraft:andesite_wall","minecraft:anvil","minecraft:apple","minecraft:armor_stand","minecraft:arrow","minecraft:azure_bluet","minecraft:baked_potato","minecraft:bamboo","minecraft:barrel","minecraft:barrier","minecraft:basalt","minecraft:bat_spawn_egg","minecraft:beacon","minecraft:bedrock","minecraft:bee_nest","minecraft:bee_spawn_egg","minecraft:beef","minecraft:beehive","minecraft:beetroot","minecraft:beetroot_seeds","minecraft:beetroot_soup","minecraft:bell","minecraft:birch_boat","minecraft:birch_button","minecraft:birch_door","minecraft:birch_fence","minecraft:birch_fence_gate","minecraft:birch_leaves","minecraft:birch_log","minecraft:birch_planks","minecraft:birch_pressure_plate","minecraft:birch_sapling","minecraft:birch_sign","minecraft:birch_slab","minecraft:birch_stairs","minecraft:birch_trapdoor","minecraft:birch_wood","minecraft:black_banner","minecraft:black_bed","minecraft:black_carpet","minecraft:black_concrete","minecraft:black_concrete_powder","minecraft:black_dye","minecraft:black_glazed_terracotta","minecraft:black_shulker_box","minecraft:black_stained_glass","minecraft:black_stained_glass_pane","minecraft:black_terracotta","minecraft:black_wool","minecraft:blackstone","minecraft:blackstone_slab","minecraft:blackstone_stairs","minecraft:blackstone_wall","minecraft:blast_furnace","minecraft:blaze_powder","minecraft:blaze_rod","minecraft:blaze_spawn_egg","minecraft:blue_banner","minecraft:blue_bed","minecraft:blue_carpet","minecraft:blue_concrete","minecraft:blue_concrete_powder","minecraft:blue_dye","minecraft:blue_glazed_terracotta","minecraft:blue_ice","minecraft:blue_orchid","minecraft:blue_shulker_box","minecraft:blue_stained_glass","minecraft:blue_stained_glass_pane","minecraft:blue_terracotta","minecraft:blue_wool","minecraft:bone","minecraft:bone_block","minecraft:bone_meal","minecraft:book","minecraft:bookshelf","minecraft:bow","minecraft:bowl","minecraft:brain_coral","minecraft:brain_coral_block","minecraft:brain_coral_fan","minecraft:bread","minecraft:brewing_stand","minecraft:brick","minecraft:brick_slab","minecraft:brick_stairs","minecraft:brick_wall","minecraft:bricks","minecraft:brown_banner","minecraft:brown_bed","minecraft:brown_carpet","minecraft:brown_concrete","minecraft:brown_concrete_powder","minecraft:brown_dye","minecraft:brown_glazed_terracotta","minecraft:brown_mushroom","minecraft:brown_mushroom_block","minecraft:brown_shulker_box","minecraft:brown_stained_glass","minecraft:brown_stained_glass_pane","minecraft:brown_terracotta","minecraft:brown_wool","minecraft:bubble_coral","minecraft:bubble_coral_block","minecraft:bubble_coral_fan","minecraft:bucket","minecraft:cactus","minecraft:cake","minecraft:campfire","minecraft:carrot","minecraft:carrot_on_a_stick","minecraft:cartography_table","minecraft:carved_pumpkin","minecraft:cat_spawn_egg","minecraft:cauldron","minecraft:cave_spider_spawn_egg","minecraft:chain","minecraft:chain_command_block","minecraft:chainmail_boots","minecraft:chainmail_chestplate","minecraft:chainmail_helmet","minecraft:chainmail_leggings","minecraft:charcoal","minecraft:chest","minecraft:chest_minecart","minecraft:chicken","minecraft:chicken_spawn_egg","minecraft:chipped_anvil","minecraft:chiseled_nether_bricks","minecraft:chiseled_polished_blackstone","minecraft:chiseled_quartz_block","minecraft:chiseled_red_sandstone","minecraft:chiseled_sandstone","minecraft:chiseled_stone_bricks","minecraft:chorus_flower","minecraft:chorus_fruit","minecraft:chorus_plant","minecraft:clay","minecraft:clay_ball","minecraft:clock","minecraft:coal","minecraft:coal_block","minecraft:coal_ore","minecraft:coarse_dirt","minecraft:cobblestone","minecraft:cobblestone_slab","minecraft:cobblestone_stairs","minecraft:cobblestone_wall","minecraft:cobweb","minecraft:cocoa_beans","minecraft:cod","minecraft:cod_bucket","minecraft:cod_spawn_egg","minecraft:command_block","minecraft:command_block_minecart","minecraft:comparator","minecraft:compass","minecraft:composter","minecraft:conduit","minecraft:cooked_beef","minecraft:cooked_chicken","minecraft:cooked_cod","minecraft:cooked_mutton","minecraft:cooked_porkchop","minecraft:cooked_rabbit","minecraft:cooked_salmon","minecraft:cookie","minecraft:cornflower","minecraft:cow_spawn_egg","minecraft:cracked_nether_bricks","minecraft:cracked_polished_blackstone_bricks","minecraft:cracked_stone_bricks","minecraft:crafting_table","minecraft:creeper_banner_pattern","minecraft:creeper_head","minecraft:creeper_spawn_egg","minecraft:crimson_button","minecraft:crimson_door","minecraft:crimson_fence","minecraft:crimson_fence_gate","minecraft:crimson_fungus","minecraft:crimson_hyphae","minecraft:crimson_nylium","minecraft:crimson_planks","minecraft:crimson_pressure_plate","minecraft:crimson_roots","minecraft:crimson_sign","minecraft:crimson_slab","minecraft:crimson_stairs","minecraft:crimson_stem","minecraft:crimson_trapdoor","minecraft:crossbow","minecraft:crying_obsidian","minecraft:cut_red_sandstone","minecraft:cut_red_sandstone_slab","minecraft:cut_sandstone","minecraft:cut_sandstone_slab","minecraft:cyan_banner","minecraft:cyan_bed","minecraft:cyan_carpet","minecraft:cyan_concrete","minecraft:cyan_concrete_powder","minecraft:cyan_dye","minecraft:cyan_glazed_terracotta","minecraft:cyan_shulker_box","minecraft:cyan_stained_glass","minecraft:cyan_stained_glass_pane","minecraft:cyan_terracotta","minecraft:cyan_wool","minecraft:damaged_anvil","minecraft:dandelion","minecraft:dark_oak_boat","minecraft:dark_oak_button","minecraft:dark_oak_door","minecraft:dark_oak_fence","minecraft:dark_oak_fence_gate","minecraft:dark_oak_leaves","minecraft:dark_oak_log","minecraft:dark_oak_planks","minecraft:dark_oak_pressure_plate","minecraft:dark_oak_sapling","minecraft:dark_oak_sign","minecraft:dark_oak_slab","minecraft:dark_oak_stairs","minecraft:dark_oak_trapdoor","minecraft:dark_oak_wood","minecraft:dark_prismarine","minecraft:dark_prismarine_slab","minecraft:dark_prismarine_stairs","minecraft:daylight_detector","minecraft:dead_brain_coral","minecraft:dead_brain_coral_block","minecraft:dead_brain_coral_fan","minecraft:dead_bubble_coral","minecraft:dead_bubble_coral_block","minecraft:dead_bubble_coral_fan","minecraft:dead_bush","minecraft:dead_fire_coral","minecraft:dead_fire_coral_block","minecraft:dead_fire_coral_fan","minecraft:dead_horn_coral","minecraft:dead_horn_coral_block","minecraft:dead_horn_coral_fan","minecraft:dead_tube_coral","minecraft:dead_tube_coral_block","minecraft:dead_tube_coral_fan","minecraft:debug_stick","minecraft:detector_rail","minecraft:diamond","minecraft:diamond_axe","minecraft:diamond_block","minecraft:diamond_boots","minecraft:diamond_chestplate","minecraft:diamond_helmet","minecraft:diamond_hoe","minecraft:diamond_horse_armor","minecraft:diamond_leggings","minecraft:diamond_ore","minecraft:diamond_pickaxe","minecraft:diamond_shovel","minecraft:diamond_sword","minecraft:diorite","minecraft:diorite_slab","minecraft:diorite_stairs","minecraft:diorite_wall","minecraft:dirt","minecraft:dispenser","minecraft:dolphin_spawn_egg","minecraft:donkey_spawn_egg","minecraft:dragon_breath","minecraft:dragon_egg","minecraft:dragon_head","minecraft:dried_kelp","minecraft:dried_kelp_block","minecraft:dropper","minecraft:drowned_spawn_egg","minecraft:egg","minecraft:elder_guardian_spawn_egg","minecraft:elytra","minecraft:emerald","minecraft:emerald_block","minecraft:emerald_ore","minecraft:enchanted_book","minecraft:enchanted_golden_apple","minecraft:enchanting_table","minecraft:end_crystal","minecraft:end_portal_frame","minecraft:end_rod","minecraft:end_stone","minecraft:end_stone_brick_slab","minecraft:end_stone_brick_stairs","minecraft:end_stone_brick_wall","minecraft:end_stone_bricks","minecraft:ender_chest","minecraft:ender_eye","minecraft:ender_pearl","minecraft:enderman_spawn_egg","minecraft:endermite_spawn_egg","minecraft:evoker_spawn_egg","minecraft:experience_bottle","minecraft:farmland","minecraft:feather","minecraft:fermented_spider_eye","minecraft:fern","minecraft:filled_map","minecraft:fire_charge","minecraft:fire_coral","minecraft:fire_coral_block","minecraft:fire_coral_fan","minecraft:firework_rocket","minecraft:firework_star","minecraft:fishing_rod","minecraft:fletching_table","minecraft:flint","minecraft:flint_and_steel","minecraft:flower_banner_pattern","minecraft:flower_pot","minecraft:fox_spawn_egg","minecraft:furnace","minecraft:furnace_minecart","minecraft:ghast_spawn_egg","minecraft:ghast_tear","minecraft:gilded_blackstone","minecraft:glass","minecraft:glass_bottle","minecraft:glass_pane","minecraft:glistering_melon_slice","minecraft:globe_banner_pattern","minecraft:glowstone","minecraft:glowstone_dust","minecraft:gold_block","minecraft:gold_ingot","minecraft:gold_nugget","minecraft:gold_ore","minecraft:golden_apple","minecraft:golden_axe","minecraft:golden_boots","minecraft:golden_carrot","minecraft:golden_chestplate","minecraft:golden_helmet","minecraft:golden_hoe","minecraft:golden_horse_armor","minecraft:golden_leggings","minecraft:golden_pickaxe","minecraft:golden_shovel","minecraft:golden_sword","minecraft:granite","minecraft:granite_slab","minecraft:granite_stairs","minecraft:granite_wall","minecraft:grass","minecraft:grass_block","minecraft:grass_path","minecraft:gravel","minecraft:gray_banner","minecraft:gray_bed","minecraft:gray_carpet","minecraft:gray_concrete","minecraft:gray_concrete_powder","minecraft:gray_dye","minecraft:gray_glazed_terracotta","minecraft:gray_shulker_box","minecraft:gray_stained_glass","minecraft:gray_stained_glass_pane","minecraft:gray_terracotta","minecraft:gray_wool","minecraft:green_banner","minecraft:green_bed","minecraft:green_carpet","minecraft:green_concrete","minecraft:green_concrete_powder","minecraft:green_dye","minecraft:green_glazed_terracotta","minecraft:green_shulker_box","minecraft:green_stained_glass","minecraft:green_stained_glass_pane","minecraft:green_terracotta","minecraft:green_wool","minecraft:grindstone","minecraft:guardian_spawn_egg","minecraft:gunpowder","minecraft:hay_block","minecraft:heart_of_the_sea","minecraft:heavy_weighted_pressure_plate","minecraft:hoglin_spawn_egg","minecraft:honey_block","minecraft:honey_bottle","minecraft:honeycomb","minecraft:honeycomb_block","minecraft:hopper","minecraft:hopper_minecart","minecraft:horn_coral","minecraft:horn_coral_block","minecraft:horn_coral_fan","minecraft:horse_spawn_egg","minecraft:husk_spawn_egg","minecraft:ice","minecraft:infested_chiseled_stone_bricks","minecraft:infested_cobblestone","minecraft:infested_cracked_stone_bricks","minecraft:infested_mossy_stone_bricks","minecraft:infested_stone","minecraft:infested_stone_bricks","minecraft:ink_sac","minecraft:iron_axe","minecraft:iron_bars","minecraft:iron_block","minecraft:iron_boots","minecraft:iron_chestplate","minecraft:iron_door","minecraft:iron_helmet","minecraft:iron_hoe","minecraft:iron_horse_armor","minecraft:iron_ingot","minecraft:iron_leggings","minecraft:iron_nugget","minecraft:iron_ore","minecraft:iron_pickaxe","minecraft:iron_shovel","minecraft:iron_sword","minecraft:iron_trapdoor","minecraft:item_frame","minecraft:jack_o_lantern","minecraft:jigsaw","minecraft:jukebox","minecraft:jungle_boat","minecraft:jungle_button","minecraft:jungle_door","minecraft:jungle_fence","minecraft:jungle_fence_gate","minecraft:jungle_leaves","minecraft:jungle_log","minecraft:jungle_planks","minecraft:jungle_pressure_plate","minecraft:jungle_sapling","minecraft:jungle_sign","minecraft:jungle_slab","minecraft:jungle_stairs","minecraft:jungle_trapdoor","minecraft:jungle_wood","minecraft:kelp","minecraft:knowledge_book","minecraft:ladder","minecraft:lantern","minecraft:lapis_block","minecraft:lapis_lazuli","minecraft:lapis_ore","minecraft:large_fern","minecraft:lava_bucket","minecraft:lead","minecraft:leather","minecraft:leather_boots","minecraft:leather_chestplate","minecraft:leather_helmet","minecraft:leather_horse_armor","minecraft:leather_leggings","minecraft:lectern","minecraft:lever","minecraft:light_blue_banner","minecraft:light_blue_bed","minecraft:light_blue_carpet","minecraft:light_blue_concrete","minecraft:light_blue_concrete_powder","minecraft:light_blue_dye","minecraft:light_blue_glazed_terracotta","minecraft:light_blue_shulker_box","minecraft:light_blue_stained_glass","minecraft:light_blue_stained_glass_pane","minecraft:light_blue_terracotta","minecraft:light_blue_wool","minecraft:light_gray_banner","minecraft:light_gray_bed","minecraft:light_gray_carpet","minecraft:light_gray_concrete","minecraft:light_gray_concrete_powder","minecraft:light_gray_dye","minecraft:light_gray_glazed_terracotta","minecraft:light_gray_shulker_box","minecraft:light_gray_stained_glass","minecraft:light_gray_stained_glass_pane","minecraft:light_gray_terracotta","minecraft:light_gray_wool","minecraft:light_weighted_pressure_plate","minecraft:lilac","minecraft:lily_of_the_valley","minecraft:lily_pad","minecraft:lime_banner","minecraft:lime_bed","minecraft:lime_carpet","minecraft:lime_concrete","minecraft:lime_concrete_powder","minecraft:lime_dye","minecraft:lime_glazed_terracotta","minecraft:lime_shulker_box","minecraft:lime_stained_glass","minecraft:lime_stained_glass_pane","minecraft:lime_terracotta","minecraft:lime_wool","minecraft:lingering_potion","minecraft:llama_spawn_egg","minecraft:lodestone","minecraft:loom","minecraft:magenta_banner","minecraft:magenta_bed","minecraft:magenta_carpet","minecraft:magenta_concrete","minecraft:magenta_concrete_powder","minecraft:magenta_dye","minecraft:magenta_glazed_terracotta","minecraft:magenta_shulker_box","minecraft:magenta_stained_glass","minecraft:magenta_stained_glass_pane","minecraft:magenta_terracotta","minecraft:magenta_wool","minecraft:magma_block","minecraft:magma_cream","minecraft:magma_cube_spawn_egg","minecraft:map","minecraft:melon","minecraft:melon_seeds","minecraft:melon_slice","minecraft:milk_bucket","minecraft:minecart","minecraft:mojang_banner_pattern","minecraft:mooshroom_spawn_egg","minecraft:mossy_cobblestone","minecraft:mossy_cobblestone_slab","minecraft:mossy_cobblestone_stairs","minecraft:mossy_cobblestone_wall","minecraft:mossy_stone_brick_slab","minecraft:mossy_stone_brick_stairs","minecraft:mossy_stone_brick_wall","minecraft:mossy_stone_bricks","minecraft:mule_spawn_egg","minecraft:mushroom_stem","minecraft:mushroom_stew","minecraft:music_disc_11","minecraft:music_disc_13","minecraft:music_disc_blocks","minecraft:music_disc_cat","minecraft:music_disc_chirp","minecraft:music_disc_far","minecraft:music_disc_mall","minecraft:music_disc_mellohi","minecraft:music_disc_pigstep","minecraft:music_disc_stal","minecraft:music_disc_strad","minecraft:music_disc_wait","minecraft:music_disc_ward","minecraft:mutton","minecraft:mycelium","minecraft:name_tag","minecraft:nautilus_shell","minecraft:nether_brick","minecraft:nether_brick_fence","minecraft:nether_brick_slab","minecraft:nether_brick_stairs","minecraft:nether_brick_wall","minecraft:nether_bricks","minecraft:nether_gold_ore","minecraft:nether_quartz_ore","minecraft:nether_sprouts","minecraft:nether_star","minecraft:nether_wart","minecraft:nether_wart_block","minecraft:netherite_axe","minecraft:netherite_block","minecraft:netherite_boots","minecraft:netherite_chestplate","minecraft:netherite_helmet","minecraft:netherite_hoe","minecraft:netherite_ingot","minecraft:netherite_leggings","minecraft:netherite_pickaxe","minecraft:netherite_scrap","minecraft:netherite_shovel","minecraft:netherite_sword","minecraft:netherrack","minecraft:note_block","minecraft:oak_boat","minecraft:oak_button","minecraft:oak_door","minecraft:oak_fence","minecraft:oak_fence_gate","minecraft:oak_leaves","minecraft:oak_log","minecraft:oak_planks","minecraft:oak_pressure_plate","minecraft:oak_sapling","minecraft:oak_sign","minecraft:oak_slab","minecraft:oak_stairs","minecraft:oak_trapdoor","minecraft:oak_wood","minecraft:observer","minecraft:obsidian","minecraft:ocelot_spawn_egg","minecraft:orange_banner","minecraft:orange_bed","minecraft:orange_carpet","minecraft:orange_concrete","minecraft:orange_concrete_powder","minecraft:orange_dye","minecraft:orange_glazed_terracotta","minecraft:orange_shulker_box","minecraft:orange_stained_glass","minecraft:orange_stained_glass_pane","minecraft:orange_terracotta","minecraft:orange_tulip","minecraft:orange_wool","minecraft:oxeye_daisy","minecraft:packed_ice","minecraft:painting","minecraft:panda_spawn_egg","minecraft:paper","minecraft:parrot_spawn_egg","minecraft:peony","minecraft:petrified_oak_slab","minecraft:phantom_membrane","minecraft:phantom_spawn_egg","minecraft:pig_spawn_egg","minecraft:piglin_banner_pattern","minecraft:piglin_brute_spawn_egg","minecraft:piglin_spawn_egg","minecraft:pillager_spawn_egg","minecraft:pink_banner","minecraft:pink_bed","minecraft:pink_carpet","minecraft:pink_concrete","minecraft:pink_concrete_powder","minecraft:pink_dye","minecraft:pink_glazed_terracotta","minecraft:pink_shulker_box","minecraft:pink_stained_glass","minecraft:pink_stained_glass_pane","minecraft:pink_terracotta","minecraft:pink_tulip","minecraft:pink_wool","minecraft:piston","minecraft:player_head","minecraft:podzol","minecraft:poisonous_potato","minecraft:polar_bear_spawn_egg","minecraft:polished_andesite","minecraft:polished_andesite_slab","minecraft:polished_andesite_stairs","minecraft:polished_basalt","minecraft:polished_blackstone","minecraft:polished_blackstone_brick_slab","minecraft:polished_blackstone_brick_stairs","minecraft:polished_blackstone_brick_wall","minecraft:polished_blackstone_bricks","minecraft:polished_blackstone_button","minecraft:polished_blackstone_pressure_plate","minecraft:polished_blackstone_slab","minecraft:polished_blackstone_stairs","minecraft:polished_blackstone_wall","minecraft:polished_diorite","minecraft:polished_diorite_slab","minecraft:polished_diorite_stairs","minecraft:polished_granite","minecraft:polished_granite_slab","minecraft:polished_granite_stairs","minecraft:popped_chorus_fruit","minecraft:poppy","minecraft:porkchop","minecraft:potato","minecraft:potion","minecraft:powered_rail","minecraft:prismarine","minecraft:prismarine_brick_slab","minecraft:prismarine_brick_stairs","minecraft:prismarine_bricks","minecraft:prismarine_crystals","minecraft:prismarine_shard","minecraft:prismarine_slab","minecraft:prismarine_stairs","minecraft:prismarine_wall","minecraft:pufferfish","minecraft:pufferfish_bucket","minecraft:pufferfish_spawn_egg","minecraft:pumpkin","minecraft:pumpkin_pie","minecraft:pumpkin_seeds","minecraft:purple_banner","minecraft:purple_bed","minecraft:purple_carpet","minecraft:purple_concrete","minecraft:purple_concrete_powder","minecraft:purple_dye","minecraft:purple_glazed_terracotta","minecraft:purple_shulker_box","minecraft:purple_stained_glass","minecraft:purple_stained_glass_pane","minecraft:purple_terracotta","minecraft:purple_wool","minecraft:purpur_block","minecraft:purpur_pillar","minecraft:purpur_slab","minecraft:purpur_stairs","minecraft:quartz","minecraft:quartz_block","minecraft:quartz_bricks","minecraft:quartz_pillar","minecraft:quartz_slab","minecraft:quartz_stairs","minecraft:rabbit","minecraft:rabbit_foot","minecraft:rabbit_hide","minecraft:rabbit_spawn_egg","minecraft:rabbit_stew","minecraft:rail","minecraft:ravager_spawn_egg","minecraft:red_banner","minecraft:red_bed","minecraft:red_carpet","minecraft:red_concrete","minecraft:red_concrete_powder","minecraft:red_dye","minecraft:red_glazed_terracotta","minecraft:red_mushroom","minecraft:red_mushroom_block","minecraft:red_nether_brick_slab","minecraft:red_nether_brick_stairs","minecraft:red_nether_brick_wall","minecraft:red_nether_bricks","minecraft:red_sand","minecraft:red_sandstone","minecraft:red_sandstone_slab","minecraft:red_sandstone_stairs","minecraft:red_sandstone_wall","minecraft:red_shulker_box","minecraft:red_stained_glass","minecraft:red_stained_glass_pane","minecraft:red_terracotta","minecraft:red_tulip","minecraft:red_wool","minecraft:redstone","minecraft:redstone_block","minecraft:redstone_lamp","minecraft:redstone_ore","minecraft:redstone_torch","minecraft:repeater","minecraft:repeating_command_block","minecraft:respawn_anchor","minecraft:rose_bush","minecraft:rotten_flesh","minecraft:saddle","minecraft:salmon","minecraft:salmon_bucket","minecraft:salmon_spawn_egg","minecraft:sand","minecraft:sandstone","minecraft:sandstone_slab","minecraft:sandstone_stairs","minecraft:sandstone_wall","minecraft:scaffolding","minecraft:scute","minecraft:sea_lantern","minecraft:sea_pickle","minecraft:seagrass","minecraft:shears","minecraft:sheep_spawn_egg","minecraft:shield","minecraft:shroomlight","minecraft:shulker_box","minecraft:shulker_shell","minecraft:shulker_spawn_egg","minecraft:silverfish_spawn_egg","minecraft:skeleton_horse_spawn_egg","minecraft:skeleton_skull","minecraft:skeleton_spawn_egg","minecraft:skull_banner_pattern","minecraft:slime_ball","minecraft:slime_block","minecraft:slime_spawn_egg","minecraft:smithing_table","minecraft:smoker","minecraft:smooth_quartz","minecraft:smooth_quartz_slab","minecraft:smooth_quartz_stairs","minecraft:smooth_red_sandstone","minecraft:smooth_red_sandstone_slab","minecraft:smooth_red_sandstone_stairs","minecraft:smooth_sandstone","minecraft:smooth_sandstone_slab","minecraft:smooth_sandstone_stairs","minecraft:smooth_stone","minecraft:smooth_stone_slab","minecraft:snow","minecraft:snow_block","minecraft:snowball","minecraft:soul_campfire","minecraft:soul_lantern","minecraft:soul_sand","minecraft:soul_soil","minecraft:soul_torch","minecraft:spawner","minecraft:spectral_arrow","minecraft:spider_eye","minecraft:spider_spawn_egg","minecraft:splash_potion","minecraft:sponge","minecraft:spruce_boat","minecraft:spruce_button","minecraft:spruce_door","minecraft:spruce_fence","minecraft:spruce_fence_gate","minecraft:spruce_leaves","minecraft:spruce_log","minecraft:spruce_planks","minecraft:spruce_pressure_plate","minecraft:spruce_sapling","minecraft:spruce_sign","minecraft:spruce_slab","minecraft:spruce_stairs","minecraft:spruce_trapdoor","minecraft:spruce_wood","minecraft:squid_spawn_egg","minecraft:stick","minecraft:sticky_piston","minecraft:stone","minecraft:stone_axe","minecraft:stone_brick_slab","minecraft:stone_brick_stairs","minecraft:stone_brick_wall","minecraft:stone_bricks","minecraft:stone_button","minecraft:stone_hoe","minecraft:stone_pickaxe","minecraft:stone_pressure_plate","minecraft:stone_shovel","minecraft:stone_slab","minecraft:stone_stairs","minecraft:stone_sword","minecraft:stonecutter","minecraft:stray_spawn_egg","minecraft:strider_spawn_egg","minecraft:string","minecraft:stripped_acacia_log","minecraft:stripped_acacia_wood","minecraft:stripped_birch_log","minecraft:stripped_birch_wood","minecraft:stripped_crimson_hyphae","minecraft:stripped_crimson_stem","minecraft:stripped_dark_oak_log","minecraft:stripped_dark_oak_wood","minecraft:stripped_jungle_log","minecraft:stripped_jungle_wood","minecraft:stripped_oak_log","minecraft:stripped_oak_wood","minecraft:stripped_spruce_log","minecraft:stripped_spruce_wood","minecraft:stripped_warped_hyphae","minecraft:stripped_warped_stem","minecraft:structure_block","minecraft:structure_void","minecraft:sugar","minecraft:sugar_cane","minecraft:sunflower","minecraft:suspicious_stew","minecraft:sweet_berries","minecraft:tall_grass","minecraft:target","minecraft:terracotta","minecraft:tipped_arrow","minecraft:tnt","minecraft:tnt_minecart","minecraft:torch","minecraft:totem_of_undying","minecraft:trader_llama_spawn_egg","minecraft:trapped_chest","minecraft:trident","minecraft:tripwire_hook","minecraft:tropical_fish","minecraft:tropical_fish_bucket","minecraft:tropical_fish_spawn_egg","minecraft:tube_coral","minecraft:tube_coral_block","minecraft:tube_coral_fan","minecraft:turtle_egg","minecraft:turtle_helmet","minecraft:turtle_spawn_egg","minecraft:twisting_vines","minecraft:vex_spawn_egg","minecraft:villager_spawn_egg","minecraft:vindicator_spawn_egg","minecraft:vine","minecraft:wandering_trader_spawn_egg","minecraft:warped_button","minecraft:warped_door","minecraft:warped_fence","minecraft:warped_fence_gate","minecraft:warped_fungus","minecraft:warped_fungus_on_a_stick","minecraft:warped_hyphae","minecraft:warped_nylium","minecraft:warped_planks","minecraft:warped_pressure_plate","minecraft:warped_roots","minecraft:warped_sign","minecraft:warped_slab","minecraft:warped_stairs","minecraft:warped_stem","minecraft:warped_trapdoor","minecraft:warped_wart_block","minecraft:water_bucket","minecraft:weeping_vines","minecraft:wet_sponge","minecraft:wheat","minecraft:wheat_seeds","minecraft:white_banner","minecraft:white_bed","minecraft:white_carpet","minecraft:white_concrete","minecraft:white_concrete_powder","minecraft:white_dye","minecraft:white_glazed_terracotta","minecraft:white_shulker_box","minecraft:white_stained_glass","minecraft:white_stained_glass_pane","minecraft:white_terracotta","minecraft:white_tulip","minecraft:white_wool","minecraft:witch_spawn_egg","minecraft:wither_rose","minecraft:wither_skeleton_skull","minecraft:wither_skeleton_spawn_egg","minecraft:wolf_spawn_egg","minecraft:wooden_axe","minecraft:wooden_hoe","minecraft:wooden_pickaxe","minecraft:wooden_shovel","minecraft:wooden_sword","minecraft:writable_book","minecraft:written_book","minecraft:yellow_banner","minecraft:yellow_bed","minecraft:yellow_carpet","minecraft:yellow_concrete","minecraft:yellow_concrete_powder","minecraft:yellow_dye","minecraft:yellow_glazed_terracotta","minecraft:yellow_shulker_box","minecraft:yellow_stained_glass","minecraft:yellow_stained_glass_pane","minecraft:yellow_terracotta","minecraft:yellow_wool","minecraft:zoglin_spawn_egg","minecraft:zombie_head","minecraft:zombie_horse_spawn_egg","minecraft:zombie_spawn_egg","minecraft:zombie_villager_spawn_egg","minecraft:zombified_piglin_spawn_egg"],"itemtags":{"minecraft:acacia_logs":["minecraft:acacia_log","minecraft:acacia_wood","minecraft:stripped_acacia_log","minecraft:stripped_acacia_wood"],"minecraft:anvil":["minecraft:anvil","minecraft:chipped_anvil","minecraft:damaged_anvil"],"minecraft:arrows":["minecraft:arrow","minecraft:spectral_arrow","minecraft:tipped_arrow"],"minecraft:banners":["minecraft:black_banner","minecraft:blue_banner","minecraft:brown_banner","minecraft:cyan_banner","minecraft:gray_banner","minecraft:green_banner","minecraft:light_blue_banner","minecraft:light_gray_banner","minecraft:lime_banner","minecraft:magenta_banner","minecraft:orange_banner","minecraft:pink_banner","minecraft:purple_banner","minecraft:red_banner","minecraft:white_banner","minecraft:yellow_banner"],"minecraft:beacon_payment_items":["minecraft:diamond","minecraft:emerald","minecraft:gold_ingot","minecraft:iron_ingot","minecraft:netherite_ingot"],"minecraft:beds":["minecraft:black_bed","minecraft:blue_bed","minecraft:brown_bed","minecraft:cyan_bed","minecraft:gray_bed","minecraft:green_bed","minecraft:light_blue_bed","minecraft:light_gray_bed","minecraft:lime_bed","minecraft:magenta_bed","minecraft:orange_bed","minecraft:pink_bed","minecraft:purple_bed","minecraft:red_bed","minecraft:white_bed","minecraft:yellow_bed"],"minecraft:birch_logs":["minecraft:birch_log","minecraft:birch_wood","minecraft:stripped_birch_log","minecraft:stripped_birch_wood"],"minecraft:boats":["minecraft:acacia_boat","minecraft:birch_boat","minecraft:dark_oak_boat","minecraft:jungle_boat","minecraft:oak_boat","minecraft:spruce_boat"],"minecraft:buttons":["minecraft:acacia_button","minecraft:birch_button","minecraft:crimson_button","minecraft:dark_oak_button","minecraft:jungle_button","minecraft:oak_button","minecraft:polished_blackstone_button","minecraft:spruce_button","minecraft:stone_button","minecraft:warped_button"],"minecraft:carpets":["minecraft:black_carpet","minecraft:blue_carpet","minecraft:brown_carpet","minecraft:cyan_carpet","minecraft:gray_carpet","minecraft:green_carpet","minecraft:light_blue_carpet","minecraft:light_gray_carpet","minecraft:lime_carpet","minecraft:magenta_carpet","minecraft:orange_carpet","minecraft:pink_carpet","minecraft:purple_carpet","minecraft:red_carpet","minecraft:white_carpet","minecraft:yellow_carpet"],"minecraft:coals":["minecraft:charcoal","minecraft:coal"],"minecraft:creeper_drop_music_discs":["minecraft:music_disc_11","minecraft:music_disc_13","minecraft:music_disc_blocks","minecraft:music_disc_cat","minecraft:music_disc_chirp","minecraft:music_disc_far","minecraft:music_disc_mall","minecraft:music_disc_mellohi","minecraft:music_disc_stal","minecraft:music_disc_strad","minecraft:music_disc_wait","minecraft:music_disc_ward"],"minecraft:crimson_stems":["minecraft:crimson_hyphae","minecraft:crimson_stem","minecraft:stripped_crimson_hyphae","minecraft:stripped_crimson_stem"],"minecraft:dark_oak_logs":["minecraft:dark_oak_log","minecraft:dark_oak_wood","minecraft:stripped_dark_oak_log","minecraft:stripped_dark_oak_wood"],"minecraft:doors":["minecraft:acacia_door","minecraft:birch_door","minecraft:crimson_door","minecraft:dark_oak_door","minecraft:iron_door","minecraft:jungle_door","minecraft:oak_door","minecraft:spruce_door","minecraft:warped_door"],"minecraft:fences":["minecraft:acacia_fence","minecraft:birch_fence","minecraft:crimson_fence","minecraft:dark_oak_fence","minecraft:jungle_fence","minecraft:nether_brick_fence","minecraft:oak_fence","minecraft:spruce_fence","minecraft:warped_fence"],"minecraft:fishes":["minecraft:cod","minecraft:cooked_cod","minecraft:cooked_salmon","minecraft:pufferfish","minecraft:salmon","minecraft:tropical_fish"],"minecraft:flowers":["minecraft:allium","minecraft:azure_bluet","minecraft:blue_orchid","minecraft:cornflower","minecraft:dandelion","minecraft:lilac","minecraft:lily_of_the_valley","minecraft:orange_tulip","minecraft:oxeye_daisy","minecraft:peony","minecraft:pink_tulip","minecraft:poppy","minecraft:red_tulip","minecraft:rose_bush","minecraft:sunflower","minecraft:white_tulip","minecraft:wither_rose"],"minecraft:gold_ores":["minecraft:gold_ore","minecraft:nether_gold_ore"],"minecraft:jungle_logs":["minecraft:jungle_log","minecraft:jungle_wood","minecraft:stripped_jungle_log","minecraft:stripped_jungle_wood"],"minecraft:leaves":["minecraft:acacia_leaves","minecraft:birch_leaves","minecraft:dark_oak_leaves","minecraft:jungle_leaves","minecraft:oak_leaves","minecraft:spruce_leaves"],"minecraft:lectern_books":["minecraft:writable_book","minecraft:written_book"],"minecraft:logs":["minecraft:acacia_log","minecraft:acacia_wood","minecraft:birch_log","minecraft:birch_wood","minecraft:crimson_hyphae","minecraft:crimson_stem","minecraft:dark_oak_log","minecraft:dark_oak_wood","minecraft:jungle_log","minecraft:jungle_wood","minecraft:oak_log","minecraft:oak_wood","minecraft:spruce_log","minecraft:spruce_wood","minecraft:stripped_acacia_log","minecraft:stripped_acacia_wood","minecraft:stripped_birch_log","minecraft:stripped_birch_wood","minecraft:stripped_crimson_hyphae","minecraft:stripped_crimson_stem","minecraft:stripped_dark_oak_log","minecraft:stripped_dark_oak_wood","minecraft:stripped_jungle_log","minecraft:stripped_jungle_wood","minecraft:stripped_oak_log","minecraft:stripped_oak_wood","minecraft:stripped_spruce_log","minecraft:stripped_spruce_wood","minecraft:stripped_warped_hyphae","minecraft:stripped_warped_stem","minecraft:warped_hyphae","minecraft:warped_stem"],"minecraft:logs_that_burn":["minecraft:acacia_log","minecraft:acacia_wood","minecraft:birch_log","minecraft:birch_wood","minecraft:dark_oak_log","minecraft:dark_oak_wood","minecraft:jungle_log","minecraft:jungle_wood","minecraft:oak_log","minecraft:oak_wood","minecraft:spruce_log","minecraft:spruce_wood","minecraft:stripped_acacia_log","minecraft:stripped_acacia_wood","minecraft:stripped_birch_log","minecraft:stripped_birch_wood","minecraft:stripped_dark_oak_log","minecraft:stripped_dark_oak_wood","minecraft:stripped_jungle_log","minecraft:stripped_jungle_wood","minecraft:stripped_oak_log","minecraft:stripped_oak_wood","minecraft:stripped_spruce_log","minecraft:stripped_spruce_wood"],"minecraft:music_discs":["minecraft:music_disc_11","minecraft:music_disc_13","minecraft:music_disc_blocks","minecraft:music_disc_cat","minecraft:music_disc_chirp","minecraft:music_disc_far","minecraft:music_disc_mall","minecraft:music_disc_mellohi","minecraft:music_disc_pigstep","minecraft:music_disc_stal","minecraft:music_disc_strad","minecraft:music_disc_wait","minecraft:music_disc_ward"],"minecraft:non_flammable_wood":["minecraft:crimson_button","minecraft:crimson_door","minecraft:crimson_fence","minecraft:crimson_fence_gate","minecraft:crimson_hyphae","minecraft:crimson_planks","minecraft:crimson_pressure_plate","minecraft:crimson_sign","minecraft:crimson_slab","minecraft:crimson_stairs","minecraft:crimson_stem","minecraft:crimson_trapdoor","minecraft:stripped_crimson_hyphae","minecraft:stripped_crimson_stem","minecraft:stripped_warped_hyphae","minecraft:stripped_warped_stem","minecraft:warped_button","minecraft:warped_door","minecraft:warped_fence","minecraft:warped_fence_gate","minecraft:warped_hyphae","minecraft:warped_planks","minecraft:warped_pressure_plate","minecraft:warped_sign","minecraft:warped_slab","minecraft:warped_stairs","minecraft:warped_stem","minecraft:warped_trapdoor"],"minecraft:oak_logs":["minecraft:oak_log","minecraft:oak_wood","minecraft:stripped_oak_log","minecraft:stripped_oak_wood"],"minecraft:piglin_loved":["minecraft:bell","minecraft:clock","minecraft:enchanted_golden_apple","minecraft:gilded_blackstone","minecraft:glistering_melon_slice","minecraft:gold_block","minecraft:gold_ingot","minecraft:gold_ore","minecraft:golden_apple","minecraft:golden_axe","minecraft:golden_boots","minecraft:golden_carrot","minecraft:golden_chestplate","minecraft:golden_helmet","minecraft:golden_hoe","minecraft:golden_horse_armor","minecraft:golden_leggings","minecraft:golden_pickaxe","minecraft:golden_shovel","minecraft:golden_sword","minecraft:light_weighted_pressure_plate","minecraft:nether_gold_ore"],"minecraft:piglin_repellents":["minecraft:soul_campfire","minecraft:soul_lantern","minecraft:soul_torch"],"minecraft:planks":["minecraft:acacia_planks","minecraft:birch_planks","minecraft:crimson_planks","minecraft:dark_oak_planks","minecraft:jungle_planks","minecraft:oak_planks","minecraft:spruce_planks","minecraft:warped_planks"],"minecraft:rails":["minecraft:activator_rail","minecraft:detector_rail","minecraft:powered_rail","minecraft:rail"],"minecraft:sand":["minecraft:red_sand","minecraft:sand"],"minecraft:saplings":["minecraft:acacia_sapling","minecraft:birch_sapling","minecraft:dark_oak_sapling","minecraft:jungle_sapling","minecraft:oak_sapling","minecraft:spruce_sapling"],"minecraft:signs":["minecraft:acacia_sign","minecraft:birch_sign","minecraft:crimson_sign","minecraft:dark_oak_sign","minecraft:jungle_sign","minecraft:oak_sign","minecraft:spruce_sign","minecraft:warped_sign"],"minecraft:slabs":["minecraft:acacia_slab","minecraft:andesite_slab","minecraft:birch_slab","minecraft:blackstone_slab","minecraft:brick_slab","minecraft:cobblestone_slab","minecraft:crimson_slab","minecraft:cut_red_sandstone_slab","minecraft:cut_sandstone_slab","minecraft:dark_oak_slab","minecraft:dark_prismarine_slab","minecraft:diorite_slab","minecraft:end_stone_brick_slab","minecraft:granite_slab","minecraft:jungle_slab","minecraft:mossy_cobblestone_slab","minecraft:mossy_stone_brick_slab","minecraft:nether_brick_slab","minecraft:oak_slab","minecraft:petrified_oak_slab","minecraft:polished_andesite_slab","minecraft:polished_blackstone_brick_slab","minecraft:polished_blackstone_slab","minecraft:polished_diorite_slab","minecraft:polished_granite_slab","minecraft:prismarine_brick_slab","minecraft:prismarine_slab","minecraft:purpur_slab","minecraft:quartz_slab","minecraft:red_nether_brick_slab","minecraft:red_sandstone_slab","minecraft:sandstone_slab","minecraft:smooth_quartz_slab","minecraft:smooth_red_sandstone_slab","minecraft:smooth_sandstone_slab","minecraft:smooth_stone_slab","minecraft:spruce_slab","minecraft:stone_brick_slab","minecraft:stone_slab","minecraft:warped_slab"],"minecraft:small_flowers":["minecraft:allium","minecraft:azure_bluet","minecraft:blue_orchid","minecraft:cornflower","minecraft:dandelion","minecraft:lily_of_the_valley","minecraft:orange_tulip","minecraft:oxeye_daisy","minecraft:pink_tulip","minecraft:poppy","minecraft:red_tulip","minecraft:white_tulip","minecraft:wither_rose"],"minecraft:soul_fire_base_blocks":["minecraft:soul_sand","minecraft:soul_soil"],"minecraft:spruce_logs":["minecraft:spruce_log","minecraft:spruce_wood","minecraft:stripped_spruce_log","minecraft:stripped_spruce_wood"],"minecraft:stairs":["minecraft:acacia_stairs","minecraft:andesite_stairs","minecraft:birch_stairs","minecraft:blackstone_stairs","minecraft:brick_stairs","minecraft:cobblestone_stairs","minecraft:crimson_stairs","minecraft:dark_oak_stairs","minecraft:dark_prismarine_stairs","minecraft:diorite_stairs","minecraft:end_stone_brick_stairs","minecraft:granite_stairs","minecraft:jungle_stairs","minecraft:mossy_cobblestone_stairs","minecraft:mossy_stone_brick_stairs","minecraft:nether_brick_stairs","minecraft:oak_stairs","minecraft:polished_andesite_stairs","minecraft:polished_blackstone_brick_stairs","minecraft:polished_blackstone_stairs","minecraft:polished_diorite_stairs","minecraft:polished_granite_stairs","minecraft:prismarine_brick_stairs","minecraft:prismarine_stairs","minecraft:purpur_stairs","minecraft:quartz_stairs","minecraft:red_nether_brick_stairs","minecraft:red_sandstone_stairs","minecraft:sandstone_stairs","minecraft:smooth_quartz_stairs","minecraft:smooth_red_sandstone_stairs","minecraft:smooth_sandstone_stairs","minecraft:spruce_stairs","minecraft:stone_brick_stairs","minecraft:stone_stairs","minecraft:warped_stairs"],"minecraft:stone_bricks":["minecraft:chiseled_stone_bricks","minecraft:cracked_stone_bricks","minecraft:mossy_stone_bricks","minecraft:stone_bricks"],"minecraft:stone_crafting_materials":["minecraft:blackstone","minecraft:cobblestone"],"minecraft:stone_tool_materials":["minecraft:blackstone","minecraft:cobblestone"],"minecraft:tall_flowers":["minecraft:lilac","minecraft:peony","minecraft:rose_bush","minecraft:sunflower"],"minecraft:trapdoors":["minecraft:acacia_trapdoor","minecraft:birch_trapdoor","minecraft:crimson_trapdoor","minecraft:dark_oak_trapdoor","minecraft:iron_trapdoor","minecraft:jungle_trapdoor","minecraft:oak_trapdoor","minecraft:spruce_trapdoor","minecraft:warped_trapdoor"],"minecraft:walls":["minecraft:andesite_wall","minecraft:blackstone_wall","minecraft:brick_wall","minecraft:cobblestone_wall","minecraft:diorite_wall","minecraft:end_stone_brick_wall","minecraft:granite_wall","minecraft:mossy_cobblestone_wall","minecraft:mossy_stone_brick_wall","minecraft:nether_brick_wall","minecraft:polished_blackstone_brick_wall","minecraft:polished_blackstone_wall","minecraft:prismarine_wall","minecraft:red_nether_brick_wall","minecraft:red_sandstone_wall","minecraft:sandstone_wall","minecraft:stone_brick_wall"],"minecraft:warped_stems":["minecraft:stripped_warped_hyphae","minecraft:stripped_warped_stem","minecraft:warped_hyphae","minecraft:warped_stem"],"minecraft:wooden_buttons":["minecraft:acacia_button","minecraft:birch_button","minecraft:crimson_button","minecraft:dark_oak_button","minecraft:jungle_button","minecraft:oak_button","minecraft:spruce_button","minecraft:warped_button"],"minecraft:wooden_doors":["minecraft:acacia_door","minecraft:birch_door","minecraft:crimson_door","minecraft:dark_oak_door","minecraft:jungle_door","minecraft:oak_door","minecraft:spruce_door","minecraft:warped_door"],"minecraft:wooden_fences":["minecraft:acacia_fence","minecraft:birch_fence","minecraft:crimson_fence","minecraft:dark_oak_fence","minecraft:jungle_fence","minecraft:oak_fence","minecraft:spruce_fence","minecraft:warped_fence"],"minecraft:wooden_pressure_plates":["minecraft:acacia_pressure_plate","minecraft:birch_pressure_plate","minecraft:crimson_pressure_plate","minecraft:dark_oak_pressure_plate","minecraft:jungle_pressure_plate","minecraft:oak_pressure_plate","minecraft:spruce_pressure_plate","minecraft:warped_pressure_plate"],"minecraft:wooden_slabs":["minecraft:acacia_slab","minecraft:birch_slab","minecraft:crimson_slab","minecraft:dark_oak_slab","minecraft:jungle_slab","minecraft:oak_slab","minecraft:spruce_slab","minecraft:warped_slab"],"minecraft:wooden_stairs":["minecraft:acacia_stairs","minecraft:birch_stairs","minecraft:crimson_stairs","minecraft:dark_oak_stairs","minecraft:jungle_stairs","minecraft:oak_stairs","minecraft:spruce_stairs","minecraft:warped_stairs"],"minecraft:wooden_trapdoors":["minecraft:acacia_trapdoor","minecraft:birch_trapdoor","minecraft:crimson_trapdoor","minecraft:dark_oak_trapdoor","minecraft:jungle_trapdoor","minecraft:oak_trapdoor","minecraft:spruce_trapdoor","minecraft:warped_trapdoor"],"minecraft:wool":["minecraft:black_wool","minecraft:blue_wool","minecraft:brown_wool","minecraft:cyan_wool","minecraft:gray_wool","minecraft:green_wool","minecraft:light_blue_wool","minecraft:light_gray_wool","minecraft:lime_wool","minecraft:magenta_wool","minecraft:orange_wool","minecraft:pink_wool","minecraft:purple_wool","minecraft:red_wool","minecraft:white_wool","minecraft:yellow_wool"]}} \ No newline at end of file +{ + "biomes": [ + "minecraft:badlands", + "minecraft:badlands_plateau", + "minecraft:bamboo_jungle", + "minecraft:bamboo_jungle_hills", + "minecraft:basalt_deltas", + "minecraft:beach", + "minecraft:birch_forest", + "minecraft:birch_forest_hills", + "minecraft:cold_ocean", + "minecraft:crimson_forest", + "minecraft:dark_forest", + "minecraft:dark_forest_hills", + "minecraft:deep_cold_ocean", + "minecraft:deep_frozen_ocean", + "minecraft:deep_lukewarm_ocean", + "minecraft:deep_ocean", + "minecraft:deep_warm_ocean", + "minecraft:desert", + "minecraft:desert_hills", + "minecraft:desert_lakes", + "minecraft:end_barrens", + "minecraft:end_highlands", + "minecraft:end_midlands", + "minecraft:eroded_badlands", + "minecraft:flower_forest", + "minecraft:forest", + "minecraft:frozen_ocean", + "minecraft:frozen_river", + "minecraft:giant_spruce_taiga", + "minecraft:giant_spruce_taiga_hills", + "minecraft:giant_tree_taiga", + "minecraft:giant_tree_taiga_hills", + "minecraft:gravelly_mountains", + "minecraft:ice_spikes", + "minecraft:jungle", + "minecraft:jungle_edge", + "minecraft:jungle_hills", + "minecraft:lukewarm_ocean", + "minecraft:modified_badlands_plateau", + "minecraft:modified_gravelly_mountains", + "minecraft:modified_jungle", + "minecraft:modified_jungle_edge", + "minecraft:modified_wooded_badlands_plateau", + "minecraft:mountain_edge", + "minecraft:mountains", + "minecraft:mushroom_field_shore", + "minecraft:mushroom_fields", + "minecraft:nether_wastes", + "minecraft:ocean", + "minecraft:plains", + "minecraft:river", + "minecraft:savanna", + "minecraft:savanna_plateau", + "minecraft:shattered_savanna", + "minecraft:shattered_savanna_plateau", + "minecraft:small_end_islands", + "minecraft:snowy_beach", + "minecraft:snowy_mountains", + "minecraft:snowy_taiga", + "minecraft:snowy_taiga_hills", + "minecraft:snowy_taiga_mountains", + "minecraft:snowy_tundra", + "minecraft:soul_sand_valley", + "minecraft:stone_shore", + "minecraft:sunflower_plains", + "minecraft:swamp", + "minecraft:swamp_hills", + "minecraft:taiga", + "minecraft:taiga_hills", + "minecraft:taiga_mountains", + "minecraft:tall_birch_forest", + "minecraft:tall_birch_hills", + "minecraft:the_end", + "minecraft:the_void", + "minecraft:warm_ocean", + "minecraft:warped_forest", + "minecraft:wooded_badlands_plateau", + "minecraft:wooded_hills", + "minecraft:wooded_mountains" + ], + "blocks": { + "minecraft:acacia_button": { + "defaultstate": "minecraft:acacia_button[face=wall,facing=north,powered=false]", + "properties": { + "face": { + "type": "enum", + "values": [ + "floor", + "wall", + "ceiling" + ] + }, + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:acacia_door": { + "defaultstate": "minecraft:acacia_door[facing=north,half=lower,hinge=left,open=false,powered=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "upper", + "lower" + ] + }, + "hinge": { + "type": "enum", + "values": [ + "left", + "right" + ] + }, + "open": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:acacia_fence": { + "defaultstate": "minecraft:acacia_fence[east=false,north=false,south=false,waterlogged=false,west=false]", + "properties": { + "east": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "north": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "south": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:acacia_fence_gate": { + "defaultstate": "minecraft:acacia_fence_gate[facing=north,in_wall=false,open=false,powered=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "in_wall": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "open": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:acacia_leaves": { + "defaultstate": "minecraft:acacia_leaves[distance=7,persistent=false]", + "properties": { + "distance": { + "type": "int", + "values": [ + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ] + }, + "persistent": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:acacia_log": { + "defaultstate": "minecraft:acacia_log[axis=y]", + "properties": { + "axis": { + "type": "enum", + "values": [ + "x", + "y", + "z" + ] + } + } + }, + "minecraft:acacia_planks": { + "defaultstate": "minecraft:acacia_planks", + "properties": {} + }, + "minecraft:acacia_pressure_plate": { + "defaultstate": "minecraft:acacia_pressure_plate[powered=false]", + "properties": { + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:acacia_sapling": { + "defaultstate": "minecraft:acacia_sapling[stage=0]", + "properties": { + "stage": { + "type": "int", + "values": [ + "0", + "1" + ] + } + } + }, + "minecraft:acacia_sign": { + "defaultstate": "minecraft:acacia_sign[rotation=0,waterlogged=false]", + "properties": { + "rotation": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:acacia_slab": { + "defaultstate": "minecraft:acacia_slab[type=bottom,waterlogged=false]", + "properties": { + "type": { + "type": "enum", + "values": [ + "top", + "bottom", + "double" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:acacia_stairs": { + "defaultstate": "minecraft:acacia_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "shape": { + "type": "enum", + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:acacia_trapdoor": { + "defaultstate": "minecraft:acacia_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "open": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:acacia_wall_sign": { + "defaultstate": "minecraft:acacia_wall_sign[facing=north,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:acacia_wood": { + "defaultstate": "minecraft:acacia_wood[axis=y]", + "properties": { + "axis": { + "type": "enum", + "values": [ + "x", + "y", + "z" + ] + } + } + }, + "minecraft:activator_rail": { + "defaultstate": "minecraft:activator_rail[powered=false,shape=north_south]", + "properties": { + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "shape": { + "type": "enum", + "values": [ + "north_south", + "east_west", + "ascending_east", + "ascending_west", + "ascending_north", + "ascending_south" + ] + } + } + }, + "minecraft:air": { + "defaultstate": "minecraft:air", + "properties": {} + }, + "minecraft:allium": { + "defaultstate": "minecraft:allium", + "properties": {} + }, + "minecraft:ancient_debris": { + "defaultstate": "minecraft:ancient_debris", + "properties": {} + }, + "minecraft:andesite": { + "defaultstate": "minecraft:andesite", + "properties": {} + }, + "minecraft:andesite_slab": { + "defaultstate": "minecraft:andesite_slab[type=bottom,waterlogged=false]", + "properties": { + "type": { + "type": "enum", + "values": [ + "top", + "bottom", + "double" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:andesite_stairs": { + "defaultstate": "minecraft:andesite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "shape": { + "type": "enum", + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:andesite_wall": { + "defaultstate": "minecraft:andesite_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]", + "properties": { + "east": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "north": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "south": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "up": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + } + } + }, + "minecraft:anvil": { + "defaultstate": "minecraft:anvil[facing=north]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:attached_melon_stem": { + "defaultstate": "minecraft:attached_melon_stem[facing=north]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:attached_pumpkin_stem": { + "defaultstate": "minecraft:attached_pumpkin_stem[facing=north]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:azure_bluet": { + "defaultstate": "minecraft:azure_bluet", + "properties": {} + }, + "minecraft:bamboo": { + "defaultstate": "minecraft:bamboo[age=0,leaves=none,stage=0]", + "properties": { + "age": { + "type": "int", + "values": [ + "0", + "1" + ] + }, + "leaves": { + "type": "enum", + "values": [ + "none", + "small", + "large" + ] + }, + "stage": { + "type": "int", + "values": [ + "0", + "1" + ] + } + } + }, + "minecraft:bamboo_sapling": { + "defaultstate": "minecraft:bamboo_sapling", + "properties": {} + }, + "minecraft:barrel": { + "defaultstate": "minecraft:barrel[facing=north,open=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ] + }, + "open": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:barrier": { + "defaultstate": "minecraft:barrier", + "properties": {} + }, + "minecraft:basalt": { + "defaultstate": "minecraft:basalt[axis=y]", + "properties": { + "axis": { + "type": "enum", + "values": [ + "x", + "y", + "z" + ] + } + } + }, + "minecraft:beacon": { + "defaultstate": "minecraft:beacon", + "properties": {} + }, + "minecraft:bedrock": { + "defaultstate": "minecraft:bedrock", + "properties": {} + }, + "minecraft:bee_nest": { + "defaultstate": "minecraft:bee_nest[facing=north,honey_level=0]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "honey_level": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5" + ] + } + } + }, + "minecraft:beehive": { + "defaultstate": "minecraft:beehive[facing=north,honey_level=0]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "honey_level": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5" + ] + } + } + }, + "minecraft:beetroots": { + "defaultstate": "minecraft:beetroots[age=0]", + "properties": { + "age": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3" + ] + } + } + }, + "minecraft:bell": { + "defaultstate": "minecraft:bell[attachment=floor,facing=north,powered=false]", + "properties": { + "attachment": { + "type": "enum", + "values": [ + "floor", + "ceiling", + "single_wall", + "double_wall" + ] + }, + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:birch_button": { + "defaultstate": "minecraft:birch_button[face=wall,facing=north,powered=false]", + "properties": { + "face": { + "type": "enum", + "values": [ + "floor", + "wall", + "ceiling" + ] + }, + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:birch_door": { + "defaultstate": "minecraft:birch_door[facing=north,half=lower,hinge=left,open=false,powered=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "upper", + "lower" + ] + }, + "hinge": { + "type": "enum", + "values": [ + "left", + "right" + ] + }, + "open": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:birch_fence": { + "defaultstate": "minecraft:birch_fence[east=false,north=false,south=false,waterlogged=false,west=false]", + "properties": { + "east": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "north": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "south": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:birch_fence_gate": { + "defaultstate": "minecraft:birch_fence_gate[facing=north,in_wall=false,open=false,powered=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "in_wall": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "open": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:birch_leaves": { + "defaultstate": "minecraft:birch_leaves[distance=7,persistent=false]", + "properties": { + "distance": { + "type": "int", + "values": [ + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ] + }, + "persistent": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:birch_log": { + "defaultstate": "minecraft:birch_log[axis=y]", + "properties": { + "axis": { + "type": "enum", + "values": [ + "x", + "y", + "z" + ] + } + } + }, + "minecraft:birch_planks": { + "defaultstate": "minecraft:birch_planks", + "properties": {} + }, + "minecraft:birch_pressure_plate": { + "defaultstate": "minecraft:birch_pressure_plate[powered=false]", + "properties": { + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:birch_sapling": { + "defaultstate": "minecraft:birch_sapling[stage=0]", + "properties": { + "stage": { + "type": "int", + "values": [ + "0", + "1" + ] + } + } + }, + "minecraft:birch_sign": { + "defaultstate": "minecraft:birch_sign[rotation=0,waterlogged=false]", + "properties": { + "rotation": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:birch_slab": { + "defaultstate": "minecraft:birch_slab[type=bottom,waterlogged=false]", + "properties": { + "type": { + "type": "enum", + "values": [ + "top", + "bottom", + "double" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:birch_stairs": { + "defaultstate": "minecraft:birch_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "shape": { + "type": "enum", + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:birch_trapdoor": { + "defaultstate": "minecraft:birch_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "open": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:birch_wall_sign": { + "defaultstate": "minecraft:birch_wall_sign[facing=north,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:birch_wood": { + "defaultstate": "minecraft:birch_wood[axis=y]", + "properties": { + "axis": { + "type": "enum", + "values": [ + "x", + "y", + "z" + ] + } + } + }, + "minecraft:black_banner": { + "defaultstate": "minecraft:black_banner[rotation=0]", + "properties": { + "rotation": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ] + } + } + }, + "minecraft:black_bed": { + "defaultstate": "minecraft:black_bed[facing=north,occupied=false,part=foot]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "occupied": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "part": { + "type": "enum", + "values": [ + "head", + "foot" + ] + } + } + }, + "minecraft:black_carpet": { + "defaultstate": "minecraft:black_carpet", + "properties": {} + }, + "minecraft:black_concrete": { + "defaultstate": "minecraft:black_concrete", + "properties": {} + }, + "minecraft:black_concrete_powder": { + "defaultstate": "minecraft:black_concrete_powder", + "properties": {} + }, + "minecraft:black_glazed_terracotta": { + "defaultstate": "minecraft:black_glazed_terracotta[facing=north]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:black_shulker_box": { + "defaultstate": "minecraft:black_shulker_box[facing=up]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ] + } + } + }, + "minecraft:black_stained_glass": { + "defaultstate": "minecraft:black_stained_glass", + "properties": {} + }, + "minecraft:black_stained_glass_pane": { + "defaultstate": "minecraft:black_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]", + "properties": { + "east": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "north": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "south": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:black_terracotta": { + "defaultstate": "minecraft:black_terracotta", + "properties": {} + }, + "minecraft:black_wall_banner": { + "defaultstate": "minecraft:black_wall_banner[facing=north]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:black_wool": { + "defaultstate": "minecraft:black_wool", + "properties": {} + }, + "minecraft:blackstone": { + "defaultstate": "minecraft:blackstone", + "properties": {} + }, + "minecraft:blackstone_slab": { + "defaultstate": "minecraft:blackstone_slab[type=bottom,waterlogged=false]", + "properties": { + "type": { + "type": "enum", + "values": [ + "top", + "bottom", + "double" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:blackstone_stairs": { + "defaultstate": "minecraft:blackstone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "shape": { + "type": "enum", + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:blackstone_wall": { + "defaultstate": "minecraft:blackstone_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]", + "properties": { + "east": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "north": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "south": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "up": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + } + } + }, + "minecraft:blast_furnace": { + "defaultstate": "minecraft:blast_furnace[facing=north,lit=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "lit": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:blue_banner": { + "defaultstate": "minecraft:blue_banner[rotation=0]", + "properties": { + "rotation": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ] + } + } + }, + "minecraft:blue_bed": { + "defaultstate": "minecraft:blue_bed[facing=north,occupied=false,part=foot]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "occupied": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "part": { + "type": "enum", + "values": [ + "head", + "foot" + ] + } + } + }, + "minecraft:blue_carpet": { + "defaultstate": "minecraft:blue_carpet", + "properties": {} + }, + "minecraft:blue_concrete": { + "defaultstate": "minecraft:blue_concrete", + "properties": {} + }, + "minecraft:blue_concrete_powder": { + "defaultstate": "minecraft:blue_concrete_powder", + "properties": {} + }, + "minecraft:blue_glazed_terracotta": { + "defaultstate": "minecraft:blue_glazed_terracotta[facing=north]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:blue_ice": { + "defaultstate": "minecraft:blue_ice", + "properties": {} + }, + "minecraft:blue_orchid": { + "defaultstate": "minecraft:blue_orchid", + "properties": {} + }, + "minecraft:blue_shulker_box": { + "defaultstate": "minecraft:blue_shulker_box[facing=up]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ] + } + } + }, + "minecraft:blue_stained_glass": { + "defaultstate": "minecraft:blue_stained_glass", + "properties": {} + }, + "minecraft:blue_stained_glass_pane": { + "defaultstate": "minecraft:blue_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]", + "properties": { + "east": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "north": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "south": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:blue_terracotta": { + "defaultstate": "minecraft:blue_terracotta", + "properties": {} + }, + "minecraft:blue_wall_banner": { + "defaultstate": "minecraft:blue_wall_banner[facing=north]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:blue_wool": { + "defaultstate": "minecraft:blue_wool", + "properties": {} + }, + "minecraft:bone_block": { + "defaultstate": "minecraft:bone_block[axis=y]", + "properties": { + "axis": { + "type": "enum", + "values": [ + "x", + "y", + "z" + ] + } + } + }, + "minecraft:bookshelf": { + "defaultstate": "minecraft:bookshelf", + "properties": {} + }, + "minecraft:brain_coral": { + "defaultstate": "minecraft:brain_coral[waterlogged=true]", + "properties": { + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:brain_coral_block": { + "defaultstate": "minecraft:brain_coral_block", + "properties": {} + }, + "minecraft:brain_coral_fan": { + "defaultstate": "minecraft:brain_coral_fan[waterlogged=true]", + "properties": { + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:brain_coral_wall_fan": { + "defaultstate": "minecraft:brain_coral_wall_fan[facing=north,waterlogged=true]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:brewing_stand": { + "defaultstate": "minecraft:brewing_stand[has_bottle_0=false,has_bottle_1=false,has_bottle_2=false]", + "properties": { + "has_bottle_0": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "has_bottle_1": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "has_bottle_2": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:brick_slab": { + "defaultstate": "minecraft:brick_slab[type=bottom,waterlogged=false]", + "properties": { + "type": { + "type": "enum", + "values": [ + "top", + "bottom", + "double" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:brick_stairs": { + "defaultstate": "minecraft:brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "shape": { + "type": "enum", + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:brick_wall": { + "defaultstate": "minecraft:brick_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]", + "properties": { + "east": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "north": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "south": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "up": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + } + } + }, + "minecraft:bricks": { + "defaultstate": "minecraft:bricks", + "properties": {} + }, + "minecraft:brown_banner": { + "defaultstate": "minecraft:brown_banner[rotation=0]", + "properties": { + "rotation": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ] + } + } + }, + "minecraft:brown_bed": { + "defaultstate": "minecraft:brown_bed[facing=north,occupied=false,part=foot]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "occupied": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "part": { + "type": "enum", + "values": [ + "head", + "foot" + ] + } + } + }, + "minecraft:brown_carpet": { + "defaultstate": "minecraft:brown_carpet", + "properties": {} + }, + "minecraft:brown_concrete": { + "defaultstate": "minecraft:brown_concrete", + "properties": {} + }, + "minecraft:brown_concrete_powder": { + "defaultstate": "minecraft:brown_concrete_powder", + "properties": {} + }, + "minecraft:brown_glazed_terracotta": { + "defaultstate": "minecraft:brown_glazed_terracotta[facing=north]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:brown_mushroom": { + "defaultstate": "minecraft:brown_mushroom", + "properties": {} + }, + "minecraft:brown_mushroom_block": { + "defaultstate": "minecraft:brown_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true]", + "properties": { + "down": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "east": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "north": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "south": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "up": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:brown_shulker_box": { + "defaultstate": "minecraft:brown_shulker_box[facing=up]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ] + } + } + }, + "minecraft:brown_stained_glass": { + "defaultstate": "minecraft:brown_stained_glass", + "properties": {} + }, + "minecraft:brown_stained_glass_pane": { + "defaultstate": "minecraft:brown_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]", + "properties": { + "east": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "north": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "south": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:brown_terracotta": { + "defaultstate": "minecraft:brown_terracotta", + "properties": {} + }, + "minecraft:brown_wall_banner": { + "defaultstate": "minecraft:brown_wall_banner[facing=north]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:brown_wool": { + "defaultstate": "minecraft:brown_wool", + "properties": {} + }, + "minecraft:bubble_column": { + "defaultstate": "minecraft:bubble_column[drag=true]", + "properties": { + "drag": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:bubble_coral": { + "defaultstate": "minecraft:bubble_coral[waterlogged=true]", + "properties": { + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:bubble_coral_block": { + "defaultstate": "minecraft:bubble_coral_block", + "properties": {} + }, + "minecraft:bubble_coral_fan": { + "defaultstate": "minecraft:bubble_coral_fan[waterlogged=true]", + "properties": { + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:bubble_coral_wall_fan": { + "defaultstate": "minecraft:bubble_coral_wall_fan[facing=north,waterlogged=true]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:cactus": { + "defaultstate": "minecraft:cactus[age=0]", + "properties": { + "age": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ] + } + } + }, + "minecraft:cake": { + "defaultstate": "minecraft:cake[bites=0]", + "properties": { + "bites": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6" + ] + } + } + }, + "minecraft:campfire": { + "defaultstate": "minecraft:campfire[facing=north,lit=true,signal_fire=false,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "lit": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "signal_fire": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:carrots": { + "defaultstate": "minecraft:carrots[age=0]", + "properties": { + "age": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ] + } + } + }, + "minecraft:cartography_table": { + "defaultstate": "minecraft:cartography_table", + "properties": {} + }, + "minecraft:carved_pumpkin": { + "defaultstate": "minecraft:carved_pumpkin[facing=north]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:cauldron": { + "defaultstate": "minecraft:cauldron[level=0]", + "properties": { + "level": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3" + ] + } + } + }, + "minecraft:cave_air": { + "defaultstate": "minecraft:cave_air", + "properties": {} + }, + "minecraft:chain": { + "defaultstate": "minecraft:chain[axis=y,waterlogged=false]", + "properties": { + "axis": { + "type": "enum", + "values": [ + "x", + "y", + "z" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:chain_command_block": { + "defaultstate": "minecraft:chain_command_block[conditional=false,facing=north]", + "properties": { + "conditional": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "facing": { + "type": "direction", + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ] + } + } + }, + "minecraft:chest": { + "defaultstate": "minecraft:chest[facing=north,type=single,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "type": { + "type": "enum", + "values": [ + "single", + "left", + "right" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:chipped_anvil": { + "defaultstate": "minecraft:chipped_anvil[facing=north]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:chiseled_nether_bricks": { + "defaultstate": "minecraft:chiseled_nether_bricks", + "properties": {} + }, + "minecraft:chiseled_polished_blackstone": { + "defaultstate": "minecraft:chiseled_polished_blackstone", + "properties": {} + }, + "minecraft:chiseled_quartz_block": { + "defaultstate": "minecraft:chiseled_quartz_block", + "properties": {} + }, + "minecraft:chiseled_red_sandstone": { + "defaultstate": "minecraft:chiseled_red_sandstone", + "properties": {} + }, + "minecraft:chiseled_sandstone": { + "defaultstate": "minecraft:chiseled_sandstone", + "properties": {} + }, + "minecraft:chiseled_stone_bricks": { + "defaultstate": "minecraft:chiseled_stone_bricks", + "properties": {} + }, + "minecraft:chorus_flower": { + "defaultstate": "minecraft:chorus_flower[age=0]", + "properties": { + "age": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5" + ] + } + } + }, + "minecraft:chorus_plant": { + "defaultstate": "minecraft:chorus_plant[down=false,east=false,north=false,south=false,up=false,west=false]", + "properties": { + "down": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "east": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "north": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "south": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "up": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:clay": { + "defaultstate": "minecraft:clay", + "properties": {} + }, + "minecraft:coal_block": { + "defaultstate": "minecraft:coal_block", + "properties": {} + }, + "minecraft:coal_ore": { + "defaultstate": "minecraft:coal_ore", + "properties": {} + }, + "minecraft:coarse_dirt": { + "defaultstate": "minecraft:coarse_dirt", + "properties": {} + }, + "minecraft:cobblestone": { + "defaultstate": "minecraft:cobblestone", + "properties": {} + }, + "minecraft:cobblestone_slab": { + "defaultstate": "minecraft:cobblestone_slab[type=bottom,waterlogged=false]", + "properties": { + "type": { + "type": "enum", + "values": [ + "top", + "bottom", + "double" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:cobblestone_stairs": { + "defaultstate": "minecraft:cobblestone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "shape": { + "type": "enum", + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:cobblestone_wall": { + "defaultstate": "minecraft:cobblestone_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]", + "properties": { + "east": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "north": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "south": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "up": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + } + } + }, + "minecraft:cobweb": { + "defaultstate": "minecraft:cobweb", + "properties": {} + }, + "minecraft:cocoa": { + "defaultstate": "minecraft:cocoa[age=0,facing=north]", + "properties": { + "age": { + "type": "int", + "values": [ + "0", + "1", + "2" + ] + }, + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:command_block": { + "defaultstate": "minecraft:command_block[conditional=false,facing=north]", + "properties": { + "conditional": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "facing": { + "type": "direction", + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ] + } + } + }, + "minecraft:comparator": { + "defaultstate": "minecraft:comparator[facing=north,mode=compare,powered=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "mode": { + "type": "enum", + "values": [ + "compare", + "subtract" + ] + }, + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:composter": { + "defaultstate": "minecraft:composter[level=0]", + "properties": { + "level": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8" + ] + } + } + }, + "minecraft:conduit": { + "defaultstate": "minecraft:conduit[waterlogged=true]", + "properties": { + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:cornflower": { + "defaultstate": "minecraft:cornflower", + "properties": {} + }, + "minecraft:cracked_nether_bricks": { + "defaultstate": "minecraft:cracked_nether_bricks", + "properties": {} + }, + "minecraft:cracked_polished_blackstone_bricks": { + "defaultstate": "minecraft:cracked_polished_blackstone_bricks", + "properties": {} + }, + "minecraft:cracked_stone_bricks": { + "defaultstate": "minecraft:cracked_stone_bricks", + "properties": {} + }, + "minecraft:crafting_table": { + "defaultstate": "minecraft:crafting_table", + "properties": {} + }, + "minecraft:creeper_head": { + "defaultstate": "minecraft:creeper_head[rotation=0]", + "properties": { + "rotation": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ] + } + } + }, + "minecraft:creeper_wall_head": { + "defaultstate": "minecraft:creeper_wall_head[facing=north]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:crimson_button": { + "defaultstate": "minecraft:crimson_button[face=wall,facing=north,powered=false]", + "properties": { + "face": { + "type": "enum", + "values": [ + "floor", + "wall", + "ceiling" + ] + }, + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:crimson_door": { + "defaultstate": "minecraft:crimson_door[facing=north,half=lower,hinge=left,open=false,powered=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "upper", + "lower" + ] + }, + "hinge": { + "type": "enum", + "values": [ + "left", + "right" + ] + }, + "open": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:crimson_fence": { + "defaultstate": "minecraft:crimson_fence[east=false,north=false,south=false,waterlogged=false,west=false]", + "properties": { + "east": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "north": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "south": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:crimson_fence_gate": { + "defaultstate": "minecraft:crimson_fence_gate[facing=north,in_wall=false,open=false,powered=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "in_wall": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "open": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:crimson_fungus": { + "defaultstate": "minecraft:crimson_fungus", + "properties": {} + }, + "minecraft:crimson_hyphae": { + "defaultstate": "minecraft:crimson_hyphae[axis=y]", + "properties": { + "axis": { + "type": "enum", + "values": [ + "x", + "y", + "z" + ] + } + } + }, + "minecraft:crimson_nylium": { + "defaultstate": "minecraft:crimson_nylium", + "properties": {} + }, + "minecraft:crimson_planks": { + "defaultstate": "minecraft:crimson_planks", + "properties": {} + }, + "minecraft:crimson_pressure_plate": { + "defaultstate": "minecraft:crimson_pressure_plate[powered=false]", + "properties": { + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:crimson_roots": { + "defaultstate": "minecraft:crimson_roots", + "properties": {} + }, + "minecraft:crimson_sign": { + "defaultstate": "minecraft:crimson_sign[rotation=0,waterlogged=false]", + "properties": { + "rotation": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:crimson_slab": { + "defaultstate": "minecraft:crimson_slab[type=bottom,waterlogged=false]", + "properties": { + "type": { + "type": "enum", + "values": [ + "top", + "bottom", + "double" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:crimson_stairs": { + "defaultstate": "minecraft:crimson_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "shape": { + "type": "enum", + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:crimson_stem": { + "defaultstate": "minecraft:crimson_stem[axis=y]", + "properties": { + "axis": { + "type": "enum", + "values": [ + "x", + "y", + "z" + ] + } + } + }, + "minecraft:crimson_trapdoor": { + "defaultstate": "minecraft:crimson_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "open": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:crimson_wall_sign": { + "defaultstate": "minecraft:crimson_wall_sign[facing=north,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:crying_obsidian": { + "defaultstate": "minecraft:crying_obsidian", + "properties": {} + }, + "minecraft:cut_red_sandstone": { + "defaultstate": "minecraft:cut_red_sandstone", + "properties": {} + }, + "minecraft:cut_red_sandstone_slab": { + "defaultstate": "minecraft:cut_red_sandstone_slab[type=bottom,waterlogged=false]", + "properties": { + "type": { + "type": "enum", + "values": [ + "top", + "bottom", + "double" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:cut_sandstone": { + "defaultstate": "minecraft:cut_sandstone", + "properties": {} + }, + "minecraft:cut_sandstone_slab": { + "defaultstate": "minecraft:cut_sandstone_slab[type=bottom,waterlogged=false]", + "properties": { + "type": { + "type": "enum", + "values": [ + "top", + "bottom", + "double" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:cyan_banner": { + "defaultstate": "minecraft:cyan_banner[rotation=0]", + "properties": { + "rotation": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ] + } + } + }, + "minecraft:cyan_bed": { + "defaultstate": "minecraft:cyan_bed[facing=north,occupied=false,part=foot]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "occupied": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "part": { + "type": "enum", + "values": [ + "head", + "foot" + ] + } + } + }, + "minecraft:cyan_carpet": { + "defaultstate": "minecraft:cyan_carpet", + "properties": {} + }, + "minecraft:cyan_concrete": { + "defaultstate": "minecraft:cyan_concrete", + "properties": {} + }, + "minecraft:cyan_concrete_powder": { + "defaultstate": "minecraft:cyan_concrete_powder", + "properties": {} + }, + "minecraft:cyan_glazed_terracotta": { + "defaultstate": "minecraft:cyan_glazed_terracotta[facing=north]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:cyan_shulker_box": { + "defaultstate": "minecraft:cyan_shulker_box[facing=up]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ] + } + } + }, + "minecraft:cyan_stained_glass": { + "defaultstate": "minecraft:cyan_stained_glass", + "properties": {} + }, + "minecraft:cyan_stained_glass_pane": { + "defaultstate": "minecraft:cyan_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]", + "properties": { + "east": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "north": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "south": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:cyan_terracotta": { + "defaultstate": "minecraft:cyan_terracotta", + "properties": {} + }, + "minecraft:cyan_wall_banner": { + "defaultstate": "minecraft:cyan_wall_banner[facing=north]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:cyan_wool": { + "defaultstate": "minecraft:cyan_wool", + "properties": {} + }, + "minecraft:damaged_anvil": { + "defaultstate": "minecraft:damaged_anvil[facing=north]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:dandelion": { + "defaultstate": "minecraft:dandelion", + "properties": {} + }, + "minecraft:dark_oak_button": { + "defaultstate": "minecraft:dark_oak_button[face=wall,facing=north,powered=false]", + "properties": { + "face": { + "type": "enum", + "values": [ + "floor", + "wall", + "ceiling" + ] + }, + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:dark_oak_door": { + "defaultstate": "minecraft:dark_oak_door[facing=north,half=lower,hinge=left,open=false,powered=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "upper", + "lower" + ] + }, + "hinge": { + "type": "enum", + "values": [ + "left", + "right" + ] + }, + "open": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:dark_oak_fence": { + "defaultstate": "minecraft:dark_oak_fence[east=false,north=false,south=false,waterlogged=false,west=false]", + "properties": { + "east": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "north": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "south": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:dark_oak_fence_gate": { + "defaultstate": "minecraft:dark_oak_fence_gate[facing=north,in_wall=false,open=false,powered=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "in_wall": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "open": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:dark_oak_leaves": { + "defaultstate": "minecraft:dark_oak_leaves[distance=7,persistent=false]", + "properties": { + "distance": { + "type": "int", + "values": [ + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ] + }, + "persistent": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:dark_oak_log": { + "defaultstate": "minecraft:dark_oak_log[axis=y]", + "properties": { + "axis": { + "type": "enum", + "values": [ + "x", + "y", + "z" + ] + } + } + }, + "minecraft:dark_oak_planks": { + "defaultstate": "minecraft:dark_oak_planks", + "properties": {} + }, + "minecraft:dark_oak_pressure_plate": { + "defaultstate": "minecraft:dark_oak_pressure_plate[powered=false]", + "properties": { + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:dark_oak_sapling": { + "defaultstate": "minecraft:dark_oak_sapling[stage=0]", + "properties": { + "stage": { + "type": "int", + "values": [ + "0", + "1" + ] + } + } + }, + "minecraft:dark_oak_sign": { + "defaultstate": "minecraft:dark_oak_sign[rotation=0,waterlogged=false]", + "properties": { + "rotation": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:dark_oak_slab": { + "defaultstate": "minecraft:dark_oak_slab[type=bottom,waterlogged=false]", + "properties": { + "type": { + "type": "enum", + "values": [ + "top", + "bottom", + "double" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:dark_oak_stairs": { + "defaultstate": "minecraft:dark_oak_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "shape": { + "type": "enum", + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:dark_oak_trapdoor": { + "defaultstate": "minecraft:dark_oak_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "open": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:dark_oak_wall_sign": { + "defaultstate": "minecraft:dark_oak_wall_sign[facing=north,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:dark_oak_wood": { + "defaultstate": "minecraft:dark_oak_wood[axis=y]", + "properties": { + "axis": { + "type": "enum", + "values": [ + "x", + "y", + "z" + ] + } + } + }, + "minecraft:dark_prismarine": { + "defaultstate": "minecraft:dark_prismarine", + "properties": {} + }, + "minecraft:dark_prismarine_slab": { + "defaultstate": "minecraft:dark_prismarine_slab[type=bottom,waterlogged=false]", + "properties": { + "type": { + "type": "enum", + "values": [ + "top", + "bottom", + "double" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:dark_prismarine_stairs": { + "defaultstate": "minecraft:dark_prismarine_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "shape": { + "type": "enum", + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:daylight_detector": { + "defaultstate": "minecraft:daylight_detector[inverted=false,power=0]", + "properties": { + "inverted": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "power": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ] + } + } + }, + "minecraft:dead_brain_coral": { + "defaultstate": "minecraft:dead_brain_coral[waterlogged=true]", + "properties": { + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:dead_brain_coral_block": { + "defaultstate": "minecraft:dead_brain_coral_block", + "properties": {} + }, + "minecraft:dead_brain_coral_fan": { + "defaultstate": "minecraft:dead_brain_coral_fan[waterlogged=true]", + "properties": { + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:dead_brain_coral_wall_fan": { + "defaultstate": "minecraft:dead_brain_coral_wall_fan[facing=north,waterlogged=true]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:dead_bubble_coral": { + "defaultstate": "minecraft:dead_bubble_coral[waterlogged=true]", + "properties": { + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:dead_bubble_coral_block": { + "defaultstate": "minecraft:dead_bubble_coral_block", + "properties": {} + }, + "minecraft:dead_bubble_coral_fan": { + "defaultstate": "minecraft:dead_bubble_coral_fan[waterlogged=true]", + "properties": { + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:dead_bubble_coral_wall_fan": { + "defaultstate": "minecraft:dead_bubble_coral_wall_fan[facing=north,waterlogged=true]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:dead_bush": { + "defaultstate": "minecraft:dead_bush", + "properties": {} + }, + "minecraft:dead_fire_coral": { + "defaultstate": "minecraft:dead_fire_coral[waterlogged=true]", + "properties": { + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:dead_fire_coral_block": { + "defaultstate": "minecraft:dead_fire_coral_block", + "properties": {} + }, + "minecraft:dead_fire_coral_fan": { + "defaultstate": "minecraft:dead_fire_coral_fan[waterlogged=true]", + "properties": { + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:dead_fire_coral_wall_fan": { + "defaultstate": "minecraft:dead_fire_coral_wall_fan[facing=north,waterlogged=true]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:dead_horn_coral": { + "defaultstate": "minecraft:dead_horn_coral[waterlogged=true]", + "properties": { + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:dead_horn_coral_block": { + "defaultstate": "minecraft:dead_horn_coral_block", + "properties": {} + }, + "minecraft:dead_horn_coral_fan": { + "defaultstate": "minecraft:dead_horn_coral_fan[waterlogged=true]", + "properties": { + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:dead_horn_coral_wall_fan": { + "defaultstate": "minecraft:dead_horn_coral_wall_fan[facing=north,waterlogged=true]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:dead_tube_coral": { + "defaultstate": "minecraft:dead_tube_coral[waterlogged=true]", + "properties": { + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:dead_tube_coral_block": { + "defaultstate": "minecraft:dead_tube_coral_block", + "properties": {} + }, + "minecraft:dead_tube_coral_fan": { + "defaultstate": "minecraft:dead_tube_coral_fan[waterlogged=true]", + "properties": { + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:dead_tube_coral_wall_fan": { + "defaultstate": "minecraft:dead_tube_coral_wall_fan[facing=north,waterlogged=true]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:detector_rail": { + "defaultstate": "minecraft:detector_rail[powered=false,shape=north_south]", + "properties": { + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "shape": { + "type": "enum", + "values": [ + "north_south", + "east_west", + "ascending_east", + "ascending_west", + "ascending_north", + "ascending_south" + ] + } + } + }, + "minecraft:diamond_block": { + "defaultstate": "minecraft:diamond_block", + "properties": {} + }, + "minecraft:diamond_ore": { + "defaultstate": "minecraft:diamond_ore", + "properties": {} + }, + "minecraft:diorite": { + "defaultstate": "minecraft:diorite", + "properties": {} + }, + "minecraft:diorite_slab": { + "defaultstate": "minecraft:diorite_slab[type=bottom,waterlogged=false]", + "properties": { + "type": { + "type": "enum", + "values": [ + "top", + "bottom", + "double" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:diorite_stairs": { + "defaultstate": "minecraft:diorite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "shape": { + "type": "enum", + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:diorite_wall": { + "defaultstate": "minecraft:diorite_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]", + "properties": { + "east": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "north": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "south": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "up": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + } + } + }, + "minecraft:dirt": { + "defaultstate": "minecraft:dirt", + "properties": {} + }, + "minecraft:dispenser": { + "defaultstate": "minecraft:dispenser[facing=north,triggered=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ] + }, + "triggered": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:dragon_egg": { + "defaultstate": "minecraft:dragon_egg", + "properties": {} + }, + "minecraft:dragon_head": { + "defaultstate": "minecraft:dragon_head[rotation=0]", + "properties": { + "rotation": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ] + } + } + }, + "minecraft:dragon_wall_head": { + "defaultstate": "minecraft:dragon_wall_head[facing=north]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:dried_kelp_block": { + "defaultstate": "minecraft:dried_kelp_block", + "properties": {} + }, + "minecraft:dropper": { + "defaultstate": "minecraft:dropper[facing=north,triggered=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ] + }, + "triggered": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:emerald_block": { + "defaultstate": "minecraft:emerald_block", + "properties": {} + }, + "minecraft:emerald_ore": { + "defaultstate": "minecraft:emerald_ore", + "properties": {} + }, + "minecraft:enchanting_table": { + "defaultstate": "minecraft:enchanting_table", + "properties": {} + }, + "minecraft:end_gateway": { + "defaultstate": "minecraft:end_gateway", + "properties": {} + }, + "minecraft:end_portal": { + "defaultstate": "minecraft:end_portal", + "properties": {} + }, + "minecraft:end_portal_frame": { + "defaultstate": "minecraft:end_portal_frame[eye=false,facing=north]", + "properties": { + "eye": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:end_rod": { + "defaultstate": "minecraft:end_rod[facing=up]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ] + } + } + }, + "minecraft:end_stone": { + "defaultstate": "minecraft:end_stone", + "properties": {} + }, + "minecraft:end_stone_brick_slab": { + "defaultstate": "minecraft:end_stone_brick_slab[type=bottom,waterlogged=false]", + "properties": { + "type": { + "type": "enum", + "values": [ + "top", + "bottom", + "double" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:end_stone_brick_stairs": { + "defaultstate": "minecraft:end_stone_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "shape": { + "type": "enum", + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:end_stone_brick_wall": { + "defaultstate": "minecraft:end_stone_brick_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]", + "properties": { + "east": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "north": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "south": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "up": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + } + } + }, + "minecraft:end_stone_bricks": { + "defaultstate": "minecraft:end_stone_bricks", + "properties": {} + }, + "minecraft:ender_chest": { + "defaultstate": "minecraft:ender_chest[facing=north,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:farmland": { + "defaultstate": "minecraft:farmland[moisture=0]", + "properties": { + "moisture": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ] + } + } + }, + "minecraft:fern": { + "defaultstate": "minecraft:fern", + "properties": {} + }, + "minecraft:fire": { + "defaultstate": "minecraft:fire[age=0,east=false,north=false,south=false,up=false,west=false]", + "properties": { + "age": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ] + }, + "east": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "north": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "south": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "up": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:fire_coral": { + "defaultstate": "minecraft:fire_coral[waterlogged=true]", + "properties": { + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:fire_coral_block": { + "defaultstate": "minecraft:fire_coral_block", + "properties": {} + }, + "minecraft:fire_coral_fan": { + "defaultstate": "minecraft:fire_coral_fan[waterlogged=true]", + "properties": { + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:fire_coral_wall_fan": { + "defaultstate": "minecraft:fire_coral_wall_fan[facing=north,waterlogged=true]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:fletching_table": { + "defaultstate": "minecraft:fletching_table", + "properties": {} + }, + "minecraft:flower_pot": { + "defaultstate": "minecraft:flower_pot", + "properties": {} + }, + "minecraft:frosted_ice": { + "defaultstate": "minecraft:frosted_ice[age=0]", + "properties": { + "age": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3" + ] + } + } + }, + "minecraft:furnace": { + "defaultstate": "minecraft:furnace[facing=north,lit=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "lit": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:gilded_blackstone": { + "defaultstate": "minecraft:gilded_blackstone", + "properties": {} + }, + "minecraft:glass": { + "defaultstate": "minecraft:glass", + "properties": {} + }, + "minecraft:glass_pane": { + "defaultstate": "minecraft:glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]", + "properties": { + "east": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "north": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "south": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:glowstone": { + "defaultstate": "minecraft:glowstone", + "properties": {} + }, + "minecraft:gold_block": { + "defaultstate": "minecraft:gold_block", + "properties": {} + }, + "minecraft:gold_ore": { + "defaultstate": "minecraft:gold_ore", + "properties": {} + }, + "minecraft:granite": { + "defaultstate": "minecraft:granite", + "properties": {} + }, + "minecraft:granite_slab": { + "defaultstate": "minecraft:granite_slab[type=bottom,waterlogged=false]", + "properties": { + "type": { + "type": "enum", + "values": [ + "top", + "bottom", + "double" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:granite_stairs": { + "defaultstate": "minecraft:granite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "shape": { + "type": "enum", + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:granite_wall": { + "defaultstate": "minecraft:granite_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]", + "properties": { + "east": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "north": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "south": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "up": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + } + } + }, + "minecraft:grass": { + "defaultstate": "minecraft:grass", + "properties": {} + }, + "minecraft:grass_block": { + "defaultstate": "minecraft:grass_block[snowy=false]", + "properties": { + "snowy": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:grass_path": { + "defaultstate": "minecraft:grass_path", + "properties": {} + }, + "minecraft:gravel": { + "defaultstate": "minecraft:gravel", + "properties": {} + }, + "minecraft:gray_banner": { + "defaultstate": "minecraft:gray_banner[rotation=0]", + "properties": { + "rotation": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ] + } + } + }, + "minecraft:gray_bed": { + "defaultstate": "minecraft:gray_bed[facing=north,occupied=false,part=foot]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "occupied": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "part": { + "type": "enum", + "values": [ + "head", + "foot" + ] + } + } + }, + "minecraft:gray_carpet": { + "defaultstate": "minecraft:gray_carpet", + "properties": {} + }, + "minecraft:gray_concrete": { + "defaultstate": "minecraft:gray_concrete", + "properties": {} + }, + "minecraft:gray_concrete_powder": { + "defaultstate": "minecraft:gray_concrete_powder", + "properties": {} + }, + "minecraft:gray_glazed_terracotta": { + "defaultstate": "minecraft:gray_glazed_terracotta[facing=north]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:gray_shulker_box": { + "defaultstate": "minecraft:gray_shulker_box[facing=up]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ] + } + } + }, + "minecraft:gray_stained_glass": { + "defaultstate": "minecraft:gray_stained_glass", + "properties": {} + }, + "minecraft:gray_stained_glass_pane": { + "defaultstate": "minecraft:gray_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]", + "properties": { + "east": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "north": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "south": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:gray_terracotta": { + "defaultstate": "minecraft:gray_terracotta", + "properties": {} + }, + "minecraft:gray_wall_banner": { + "defaultstate": "minecraft:gray_wall_banner[facing=north]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:gray_wool": { + "defaultstate": "minecraft:gray_wool", + "properties": {} + }, + "minecraft:green_banner": { + "defaultstate": "minecraft:green_banner[rotation=0]", + "properties": { + "rotation": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ] + } + } + }, + "minecraft:green_bed": { + "defaultstate": "minecraft:green_bed[facing=north,occupied=false,part=foot]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "occupied": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "part": { + "type": "enum", + "values": [ + "head", + "foot" + ] + } + } + }, + "minecraft:green_carpet": { + "defaultstate": "minecraft:green_carpet", + "properties": {} + }, + "minecraft:green_concrete": { + "defaultstate": "minecraft:green_concrete", + "properties": {} + }, + "minecraft:green_concrete_powder": { + "defaultstate": "minecraft:green_concrete_powder", + "properties": {} + }, + "minecraft:green_glazed_terracotta": { + "defaultstate": "minecraft:green_glazed_terracotta[facing=north]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:green_shulker_box": { + "defaultstate": "minecraft:green_shulker_box[facing=up]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ] + } + } + }, + "minecraft:green_stained_glass": { + "defaultstate": "minecraft:green_stained_glass", + "properties": {} + }, + "minecraft:green_stained_glass_pane": { + "defaultstate": "minecraft:green_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]", + "properties": { + "east": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "north": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "south": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:green_terracotta": { + "defaultstate": "minecraft:green_terracotta", + "properties": {} + }, + "minecraft:green_wall_banner": { + "defaultstate": "minecraft:green_wall_banner[facing=north]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:green_wool": { + "defaultstate": "minecraft:green_wool", + "properties": {} + }, + "minecraft:grindstone": { + "defaultstate": "minecraft:grindstone[face=wall,facing=north]", + "properties": { + "face": { + "type": "enum", + "values": [ + "floor", + "wall", + "ceiling" + ] + }, + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:hay_block": { + "defaultstate": "minecraft:hay_block[axis=y]", + "properties": { + "axis": { + "type": "enum", + "values": [ + "x", + "y", + "z" + ] + } + } + }, + "minecraft:heavy_weighted_pressure_plate": { + "defaultstate": "minecraft:heavy_weighted_pressure_plate[power=0]", + "properties": { + "power": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ] + } + } + }, + "minecraft:honey_block": { + "defaultstate": "minecraft:honey_block", + "properties": {} + }, + "minecraft:honeycomb_block": { + "defaultstate": "minecraft:honeycomb_block", + "properties": {} + }, + "minecraft:hopper": { + "defaultstate": "minecraft:hopper[enabled=true,facing=down]", + "properties": { + "enabled": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "facing": { + "type": "direction", + "values": [ + "down", + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:horn_coral": { + "defaultstate": "minecraft:horn_coral[waterlogged=true]", + "properties": { + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:horn_coral_block": { + "defaultstate": "minecraft:horn_coral_block", + "properties": {} + }, + "minecraft:horn_coral_fan": { + "defaultstate": "minecraft:horn_coral_fan[waterlogged=true]", + "properties": { + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:horn_coral_wall_fan": { + "defaultstate": "minecraft:horn_coral_wall_fan[facing=north,waterlogged=true]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:ice": { + "defaultstate": "minecraft:ice", + "properties": {} + }, + "minecraft:infested_chiseled_stone_bricks": { + "defaultstate": "minecraft:infested_chiseled_stone_bricks", + "properties": {} + }, + "minecraft:infested_cobblestone": { + "defaultstate": "minecraft:infested_cobblestone", + "properties": {} + }, + "minecraft:infested_cracked_stone_bricks": { + "defaultstate": "minecraft:infested_cracked_stone_bricks", + "properties": {} + }, + "minecraft:infested_mossy_stone_bricks": { + "defaultstate": "minecraft:infested_mossy_stone_bricks", + "properties": {} + }, + "minecraft:infested_stone": { + "defaultstate": "minecraft:infested_stone", + "properties": {} + }, + "minecraft:infested_stone_bricks": { + "defaultstate": "minecraft:infested_stone_bricks", + "properties": {} + }, + "minecraft:iron_bars": { + "defaultstate": "minecraft:iron_bars[east=false,north=false,south=false,waterlogged=false,west=false]", + "properties": { + "east": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "north": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "south": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:iron_block": { + "defaultstate": "minecraft:iron_block", + "properties": {} + }, + "minecraft:iron_door": { + "defaultstate": "minecraft:iron_door[facing=north,half=lower,hinge=left,open=false,powered=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "upper", + "lower" + ] + }, + "hinge": { + "type": "enum", + "values": [ + "left", + "right" + ] + }, + "open": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:iron_ore": { + "defaultstate": "minecraft:iron_ore", + "properties": {} + }, + "minecraft:iron_trapdoor": { + "defaultstate": "minecraft:iron_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "open": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:jack_o_lantern": { + "defaultstate": "minecraft:jack_o_lantern[facing=north]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:jigsaw": { + "defaultstate": "minecraft:jigsaw[orientation=north_up]", + "properties": { + "orientation": { + "type": "enum", + "values": [ + "down_east", + "down_north", + "down_south", + "down_west", + "up_east", + "up_north", + "up_south", + "up_west", + "west_up", + "east_up", + "north_up", + "south_up" + ] + } + } + }, + "minecraft:jukebox": { + "defaultstate": "minecraft:jukebox[has_record=false]", + "properties": { + "has_record": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:jungle_button": { + "defaultstate": "minecraft:jungle_button[face=wall,facing=north,powered=false]", + "properties": { + "face": { + "type": "enum", + "values": [ + "floor", + "wall", + "ceiling" + ] + }, + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:jungle_door": { + "defaultstate": "minecraft:jungle_door[facing=north,half=lower,hinge=left,open=false,powered=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "upper", + "lower" + ] + }, + "hinge": { + "type": "enum", + "values": [ + "left", + "right" + ] + }, + "open": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:jungle_fence": { + "defaultstate": "minecraft:jungle_fence[east=false,north=false,south=false,waterlogged=false,west=false]", + "properties": { + "east": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "north": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "south": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:jungle_fence_gate": { + "defaultstate": "minecraft:jungle_fence_gate[facing=north,in_wall=false,open=false,powered=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "in_wall": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "open": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:jungle_leaves": { + "defaultstate": "minecraft:jungle_leaves[distance=7,persistent=false]", + "properties": { + "distance": { + "type": "int", + "values": [ + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ] + }, + "persistent": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:jungle_log": { + "defaultstate": "minecraft:jungle_log[axis=y]", + "properties": { + "axis": { + "type": "enum", + "values": [ + "x", + "y", + "z" + ] + } + } + }, + "minecraft:jungle_planks": { + "defaultstate": "minecraft:jungle_planks", + "properties": {} + }, + "minecraft:jungle_pressure_plate": { + "defaultstate": "minecraft:jungle_pressure_plate[powered=false]", + "properties": { + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:jungle_sapling": { + "defaultstate": "minecraft:jungle_sapling[stage=0]", + "properties": { + "stage": { + "type": "int", + "values": [ + "0", + "1" + ] + } + } + }, + "minecraft:jungle_sign": { + "defaultstate": "minecraft:jungle_sign[rotation=0,waterlogged=false]", + "properties": { + "rotation": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:jungle_slab": { + "defaultstate": "minecraft:jungle_slab[type=bottom,waterlogged=false]", + "properties": { + "type": { + "type": "enum", + "values": [ + "top", + "bottom", + "double" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:jungle_stairs": { + "defaultstate": "minecraft:jungle_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "shape": { + "type": "enum", + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:jungle_trapdoor": { + "defaultstate": "minecraft:jungle_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "open": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:jungle_wall_sign": { + "defaultstate": "minecraft:jungle_wall_sign[facing=north,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:jungle_wood": { + "defaultstate": "minecraft:jungle_wood[axis=y]", + "properties": { + "axis": { + "type": "enum", + "values": [ + "x", + "y", + "z" + ] + } + } + }, + "minecraft:kelp": { + "defaultstate": "minecraft:kelp[age=0]", + "properties": { + "age": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15", + "16", + "17", + "18", + "19", + "20", + "21", + "22", + "23", + "24", + "25" + ] + } + } + }, + "minecraft:kelp_plant": { + "defaultstate": "minecraft:kelp_plant", + "properties": {} + }, + "minecraft:ladder": { + "defaultstate": "minecraft:ladder[facing=north,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:lantern": { + "defaultstate": "minecraft:lantern[hanging=false,waterlogged=false]", + "properties": { + "hanging": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:lapis_block": { + "defaultstate": "minecraft:lapis_block", + "properties": {} + }, + "minecraft:lapis_ore": { + "defaultstate": "minecraft:lapis_ore", + "properties": {} + }, + "minecraft:large_fern": { + "defaultstate": "minecraft:large_fern[half=lower]", + "properties": { + "half": { + "type": "enum", + "values": [ + "upper", + "lower" + ] + } + } + }, + "minecraft:lava": { + "defaultstate": "minecraft:lava[level=0]", + "properties": { + "level": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ] + } + } + }, + "minecraft:lectern": { + "defaultstate": "minecraft:lectern[facing=north,has_book=false,powered=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "has_book": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:lever": { + "defaultstate": "minecraft:lever[face=wall,facing=north,powered=false]", + "properties": { + "face": { + "type": "enum", + "values": [ + "floor", + "wall", + "ceiling" + ] + }, + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:light_blue_banner": { + "defaultstate": "minecraft:light_blue_banner[rotation=0]", + "properties": { + "rotation": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ] + } + } + }, + "minecraft:light_blue_bed": { + "defaultstate": "minecraft:light_blue_bed[facing=north,occupied=false,part=foot]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "occupied": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "part": { + "type": "enum", + "values": [ + "head", + "foot" + ] + } + } + }, + "minecraft:light_blue_carpet": { + "defaultstate": "minecraft:light_blue_carpet", + "properties": {} + }, + "minecraft:light_blue_concrete": { + "defaultstate": "minecraft:light_blue_concrete", + "properties": {} + }, + "minecraft:light_blue_concrete_powder": { + "defaultstate": "minecraft:light_blue_concrete_powder", + "properties": {} + }, + "minecraft:light_blue_glazed_terracotta": { + "defaultstate": "minecraft:light_blue_glazed_terracotta[facing=north]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:light_blue_shulker_box": { + "defaultstate": "minecraft:light_blue_shulker_box[facing=up]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ] + } + } + }, + "minecraft:light_blue_stained_glass": { + "defaultstate": "minecraft:light_blue_stained_glass", + "properties": {} + }, + "minecraft:light_blue_stained_glass_pane": { + "defaultstate": "minecraft:light_blue_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]", + "properties": { + "east": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "north": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "south": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:light_blue_terracotta": { + "defaultstate": "minecraft:light_blue_terracotta", + "properties": {} + }, + "minecraft:light_blue_wall_banner": { + "defaultstate": "minecraft:light_blue_wall_banner[facing=north]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:light_blue_wool": { + "defaultstate": "minecraft:light_blue_wool", + "properties": {} + }, + "minecraft:light_gray_banner": { + "defaultstate": "minecraft:light_gray_banner[rotation=0]", + "properties": { + "rotation": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ] + } + } + }, + "minecraft:light_gray_bed": { + "defaultstate": "minecraft:light_gray_bed[facing=north,occupied=false,part=foot]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "occupied": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "part": { + "type": "enum", + "values": [ + "head", + "foot" + ] + } + } + }, + "minecraft:light_gray_carpet": { + "defaultstate": "minecraft:light_gray_carpet", + "properties": {} + }, + "minecraft:light_gray_concrete": { + "defaultstate": "minecraft:light_gray_concrete", + "properties": {} + }, + "minecraft:light_gray_concrete_powder": { + "defaultstate": "minecraft:light_gray_concrete_powder", + "properties": {} + }, + "minecraft:light_gray_glazed_terracotta": { + "defaultstate": "minecraft:light_gray_glazed_terracotta[facing=north]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:light_gray_shulker_box": { + "defaultstate": "minecraft:light_gray_shulker_box[facing=up]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ] + } + } + }, + "minecraft:light_gray_stained_glass": { + "defaultstate": "minecraft:light_gray_stained_glass", + "properties": {} + }, + "minecraft:light_gray_stained_glass_pane": { + "defaultstate": "minecraft:light_gray_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]", + "properties": { + "east": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "north": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "south": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:light_gray_terracotta": { + "defaultstate": "minecraft:light_gray_terracotta", + "properties": {} + }, + "minecraft:light_gray_wall_banner": { + "defaultstate": "minecraft:light_gray_wall_banner[facing=north]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:light_gray_wool": { + "defaultstate": "minecraft:light_gray_wool", + "properties": {} + }, + "minecraft:light_weighted_pressure_plate": { + "defaultstate": "minecraft:light_weighted_pressure_plate[power=0]", + "properties": { + "power": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ] + } + } + }, + "minecraft:lilac": { + "defaultstate": "minecraft:lilac[half=lower]", + "properties": { + "half": { + "type": "enum", + "values": [ + "upper", + "lower" + ] + } + } + }, + "minecraft:lily_of_the_valley": { + "defaultstate": "minecraft:lily_of_the_valley", + "properties": {} + }, + "minecraft:lily_pad": { + "defaultstate": "minecraft:lily_pad", + "properties": {} + }, + "minecraft:lime_banner": { + "defaultstate": "minecraft:lime_banner[rotation=0]", + "properties": { + "rotation": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ] + } + } + }, + "minecraft:lime_bed": { + "defaultstate": "minecraft:lime_bed[facing=north,occupied=false,part=foot]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "occupied": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "part": { + "type": "enum", + "values": [ + "head", + "foot" + ] + } + } + }, + "minecraft:lime_carpet": { + "defaultstate": "minecraft:lime_carpet", + "properties": {} + }, + "minecraft:lime_concrete": { + "defaultstate": "minecraft:lime_concrete", + "properties": {} + }, + "minecraft:lime_concrete_powder": { + "defaultstate": "minecraft:lime_concrete_powder", + "properties": {} + }, + "minecraft:lime_glazed_terracotta": { + "defaultstate": "minecraft:lime_glazed_terracotta[facing=north]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:lime_shulker_box": { + "defaultstate": "minecraft:lime_shulker_box[facing=up]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ] + } + } + }, + "minecraft:lime_stained_glass": { + "defaultstate": "minecraft:lime_stained_glass", + "properties": {} + }, + "minecraft:lime_stained_glass_pane": { + "defaultstate": "minecraft:lime_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]", + "properties": { + "east": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "north": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "south": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:lime_terracotta": { + "defaultstate": "minecraft:lime_terracotta", + "properties": {} + }, + "minecraft:lime_wall_banner": { + "defaultstate": "minecraft:lime_wall_banner[facing=north]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:lime_wool": { + "defaultstate": "minecraft:lime_wool", + "properties": {} + }, + "minecraft:lodestone": { + "defaultstate": "minecraft:lodestone", + "properties": {} + }, + "minecraft:loom": { + "defaultstate": "minecraft:loom[facing=north]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:magenta_banner": { + "defaultstate": "minecraft:magenta_banner[rotation=0]", + "properties": { + "rotation": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ] + } + } + }, + "minecraft:magenta_bed": { + "defaultstate": "minecraft:magenta_bed[facing=north,occupied=false,part=foot]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "occupied": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "part": { + "type": "enum", + "values": [ + "head", + "foot" + ] + } + } + }, + "minecraft:magenta_carpet": { + "defaultstate": "minecraft:magenta_carpet", + "properties": {} + }, + "minecraft:magenta_concrete": { + "defaultstate": "minecraft:magenta_concrete", + "properties": {} + }, + "minecraft:magenta_concrete_powder": { + "defaultstate": "minecraft:magenta_concrete_powder", + "properties": {} + }, + "minecraft:magenta_glazed_terracotta": { + "defaultstate": "minecraft:magenta_glazed_terracotta[facing=north]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:magenta_shulker_box": { + "defaultstate": "minecraft:magenta_shulker_box[facing=up]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ] + } + } + }, + "minecraft:magenta_stained_glass": { + "defaultstate": "minecraft:magenta_stained_glass", + "properties": {} + }, + "minecraft:magenta_stained_glass_pane": { + "defaultstate": "minecraft:magenta_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]", + "properties": { + "east": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "north": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "south": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:magenta_terracotta": { + "defaultstate": "minecraft:magenta_terracotta", + "properties": {} + }, + "minecraft:magenta_wall_banner": { + "defaultstate": "minecraft:magenta_wall_banner[facing=north]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:magenta_wool": { + "defaultstate": "minecraft:magenta_wool", + "properties": {} + }, + "minecraft:magma_block": { + "defaultstate": "minecraft:magma_block", + "properties": {} + }, + "minecraft:melon": { + "defaultstate": "minecraft:melon", + "properties": {} + }, + "minecraft:melon_stem": { + "defaultstate": "minecraft:melon_stem[age=0]", + "properties": { + "age": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ] + } + } + }, + "minecraft:mossy_cobblestone": { + "defaultstate": "minecraft:mossy_cobblestone", + "properties": {} + }, + "minecraft:mossy_cobblestone_slab": { + "defaultstate": "minecraft:mossy_cobblestone_slab[type=bottom,waterlogged=false]", + "properties": { + "type": { + "type": "enum", + "values": [ + "top", + "bottom", + "double" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:mossy_cobblestone_stairs": { + "defaultstate": "minecraft:mossy_cobblestone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "shape": { + "type": "enum", + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:mossy_cobblestone_wall": { + "defaultstate": "minecraft:mossy_cobblestone_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]", + "properties": { + "east": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "north": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "south": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "up": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + } + } + }, + "minecraft:mossy_stone_brick_slab": { + "defaultstate": "minecraft:mossy_stone_brick_slab[type=bottom,waterlogged=false]", + "properties": { + "type": { + "type": "enum", + "values": [ + "top", + "bottom", + "double" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:mossy_stone_brick_stairs": { + "defaultstate": "minecraft:mossy_stone_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "shape": { + "type": "enum", + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:mossy_stone_brick_wall": { + "defaultstate": "minecraft:mossy_stone_brick_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]", + "properties": { + "east": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "north": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "south": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "up": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + } + } + }, + "minecraft:mossy_stone_bricks": { + "defaultstate": "minecraft:mossy_stone_bricks", + "properties": {} + }, + "minecraft:moving_piston": { + "defaultstate": "minecraft:moving_piston[facing=north,type=normal]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ] + }, + "type": { + "type": "enum", + "values": [ + "normal", + "sticky" + ] + } + } + }, + "minecraft:mushroom_stem": { + "defaultstate": "minecraft:mushroom_stem[down=true,east=true,north=true,south=true,up=true,west=true]", + "properties": { + "down": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "east": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "north": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "south": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "up": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:mycelium": { + "defaultstate": "minecraft:mycelium[snowy=false]", + "properties": { + "snowy": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:nether_brick_fence": { + "defaultstate": "minecraft:nether_brick_fence[east=false,north=false,south=false,waterlogged=false,west=false]", + "properties": { + "east": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "north": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "south": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:nether_brick_slab": { + "defaultstate": "minecraft:nether_brick_slab[type=bottom,waterlogged=false]", + "properties": { + "type": { + "type": "enum", + "values": [ + "top", + "bottom", + "double" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:nether_brick_stairs": { + "defaultstate": "minecraft:nether_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "shape": { + "type": "enum", + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:nether_brick_wall": { + "defaultstate": "minecraft:nether_brick_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]", + "properties": { + "east": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "north": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "south": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "up": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + } + } + }, + "minecraft:nether_bricks": { + "defaultstate": "minecraft:nether_bricks", + "properties": {} + }, + "minecraft:nether_gold_ore": { + "defaultstate": "minecraft:nether_gold_ore", + "properties": {} + }, + "minecraft:nether_portal": { + "defaultstate": "minecraft:nether_portal[axis=x]", + "properties": { + "axis": { + "type": "enum", + "values": [ + "x", + "z" + ] + } + } + }, + "minecraft:nether_quartz_ore": { + "defaultstate": "minecraft:nether_quartz_ore", + "properties": {} + }, + "minecraft:nether_sprouts": { + "defaultstate": "minecraft:nether_sprouts", + "properties": {} + }, + "minecraft:nether_wart": { + "defaultstate": "minecraft:nether_wart[age=0]", + "properties": { + "age": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3" + ] + } + } + }, + "minecraft:nether_wart_block": { + "defaultstate": "minecraft:nether_wart_block", + "properties": {} + }, + "minecraft:netherite_block": { + "defaultstate": "minecraft:netherite_block", + "properties": {} + }, + "minecraft:netherrack": { + "defaultstate": "minecraft:netherrack", + "properties": {} + }, + "minecraft:note_block": { + "defaultstate": "minecraft:note_block[instrument=harp,note=0,powered=false]", + "properties": { + "instrument": { + "type": "enum", + "values": [ + "harp", + "basedrum", + "snare", + "hat", + "bass", + "flute", + "bell", + "guitar", + "chime", + "xylophone", + "iron_xylophone", + "cow_bell", + "didgeridoo", + "bit", + "banjo", + "pling" + ] + }, + "note": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15", + "16", + "17", + "18", + "19", + "20", + "21", + "22", + "23", + "24" + ] + }, + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:oak_button": { + "defaultstate": "minecraft:oak_button[face=wall,facing=north,powered=false]", + "properties": { + "face": { + "type": "enum", + "values": [ + "floor", + "wall", + "ceiling" + ] + }, + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:oak_door": { + "defaultstate": "minecraft:oak_door[facing=north,half=lower,hinge=left,open=false,powered=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "upper", + "lower" + ] + }, + "hinge": { + "type": "enum", + "values": [ + "left", + "right" + ] + }, + "open": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:oak_fence": { + "defaultstate": "minecraft:oak_fence[east=false,north=false,south=false,waterlogged=false,west=false]", + "properties": { + "east": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "north": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "south": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:oak_fence_gate": { + "defaultstate": "minecraft:oak_fence_gate[facing=north,in_wall=false,open=false,powered=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "in_wall": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "open": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:oak_leaves": { + "defaultstate": "minecraft:oak_leaves[distance=7,persistent=false]", + "properties": { + "distance": { + "type": "int", + "values": [ + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ] + }, + "persistent": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:oak_log": { + "defaultstate": "minecraft:oak_log[axis=y]", + "properties": { + "axis": { + "type": "enum", + "values": [ + "x", + "y", + "z" + ] + } + } + }, + "minecraft:oak_planks": { + "defaultstate": "minecraft:oak_planks", + "properties": {} + }, + "minecraft:oak_pressure_plate": { + "defaultstate": "minecraft:oak_pressure_plate[powered=false]", + "properties": { + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:oak_sapling": { + "defaultstate": "minecraft:oak_sapling[stage=0]", + "properties": { + "stage": { + "type": "int", + "values": [ + "0", + "1" + ] + } + } + }, + "minecraft:oak_sign": { + "defaultstate": "minecraft:oak_sign[rotation=0,waterlogged=false]", + "properties": { + "rotation": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:oak_slab": { + "defaultstate": "minecraft:oak_slab[type=bottom,waterlogged=false]", + "properties": { + "type": { + "type": "enum", + "values": [ + "top", + "bottom", + "double" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:oak_stairs": { + "defaultstate": "minecraft:oak_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "shape": { + "type": "enum", + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:oak_trapdoor": { + "defaultstate": "minecraft:oak_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "open": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:oak_wall_sign": { + "defaultstate": "minecraft:oak_wall_sign[facing=north,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:oak_wood": { + "defaultstate": "minecraft:oak_wood[axis=y]", + "properties": { + "axis": { + "type": "enum", + "values": [ + "x", + "y", + "z" + ] + } + } + }, + "minecraft:observer": { + "defaultstate": "minecraft:observer[facing=south,powered=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ] + }, + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:obsidian": { + "defaultstate": "minecraft:obsidian", + "properties": {} + }, + "minecraft:orange_banner": { + "defaultstate": "minecraft:orange_banner[rotation=0]", + "properties": { + "rotation": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ] + } + } + }, + "minecraft:orange_bed": { + "defaultstate": "minecraft:orange_bed[facing=north,occupied=false,part=foot]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "occupied": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "part": { + "type": "enum", + "values": [ + "head", + "foot" + ] + } + } + }, + "minecraft:orange_carpet": { + "defaultstate": "minecraft:orange_carpet", + "properties": {} + }, + "minecraft:orange_concrete": { + "defaultstate": "minecraft:orange_concrete", + "properties": {} + }, + "minecraft:orange_concrete_powder": { + "defaultstate": "minecraft:orange_concrete_powder", + "properties": {} + }, + "minecraft:orange_glazed_terracotta": { + "defaultstate": "minecraft:orange_glazed_terracotta[facing=north]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:orange_shulker_box": { + "defaultstate": "minecraft:orange_shulker_box[facing=up]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ] + } + } + }, + "minecraft:orange_stained_glass": { + "defaultstate": "minecraft:orange_stained_glass", + "properties": {} + }, + "minecraft:orange_stained_glass_pane": { + "defaultstate": "minecraft:orange_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]", + "properties": { + "east": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "north": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "south": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:orange_terracotta": { + "defaultstate": "minecraft:orange_terracotta", + "properties": {} + }, + "minecraft:orange_tulip": { + "defaultstate": "minecraft:orange_tulip", + "properties": {} + }, + "minecraft:orange_wall_banner": { + "defaultstate": "minecraft:orange_wall_banner[facing=north]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:orange_wool": { + "defaultstate": "minecraft:orange_wool", + "properties": {} + }, + "minecraft:oxeye_daisy": { + "defaultstate": "minecraft:oxeye_daisy", + "properties": {} + }, + "minecraft:packed_ice": { + "defaultstate": "minecraft:packed_ice", + "properties": {} + }, + "minecraft:peony": { + "defaultstate": "minecraft:peony[half=lower]", + "properties": { + "half": { + "type": "enum", + "values": [ + "upper", + "lower" + ] + } + } + }, + "minecraft:petrified_oak_slab": { + "defaultstate": "minecraft:petrified_oak_slab[type=bottom,waterlogged=false]", + "properties": { + "type": { + "type": "enum", + "values": [ + "top", + "bottom", + "double" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:pink_banner": { + "defaultstate": "minecraft:pink_banner[rotation=0]", + "properties": { + "rotation": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ] + } + } + }, + "minecraft:pink_bed": { + "defaultstate": "minecraft:pink_bed[facing=north,occupied=false,part=foot]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "occupied": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "part": { + "type": "enum", + "values": [ + "head", + "foot" + ] + } + } + }, + "minecraft:pink_carpet": { + "defaultstate": "minecraft:pink_carpet", + "properties": {} + }, + "minecraft:pink_concrete": { + "defaultstate": "minecraft:pink_concrete", + "properties": {} + }, + "minecraft:pink_concrete_powder": { + "defaultstate": "minecraft:pink_concrete_powder", + "properties": {} + }, + "minecraft:pink_glazed_terracotta": { + "defaultstate": "minecraft:pink_glazed_terracotta[facing=north]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:pink_shulker_box": { + "defaultstate": "minecraft:pink_shulker_box[facing=up]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ] + } + } + }, + "minecraft:pink_stained_glass": { + "defaultstate": "minecraft:pink_stained_glass", + "properties": {} + }, + "minecraft:pink_stained_glass_pane": { + "defaultstate": "minecraft:pink_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]", + "properties": { + "east": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "north": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "south": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:pink_terracotta": { + "defaultstate": "minecraft:pink_terracotta", + "properties": {} + }, + "minecraft:pink_tulip": { + "defaultstate": "minecraft:pink_tulip", + "properties": {} + }, + "minecraft:pink_wall_banner": { + "defaultstate": "minecraft:pink_wall_banner[facing=north]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:pink_wool": { + "defaultstate": "minecraft:pink_wool", + "properties": {} + }, + "minecraft:piston": { + "defaultstate": "minecraft:piston[extended=false,facing=north]", + "properties": { + "extended": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "facing": { + "type": "direction", + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ] + } + } + }, + "minecraft:piston_head": { + "defaultstate": "minecraft:piston_head[facing=north,short=false,type=normal]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ] + }, + "short": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "type": { + "type": "enum", + "values": [ + "normal", + "sticky" + ] + } + } + }, + "minecraft:player_head": { + "defaultstate": "minecraft:player_head[rotation=0]", + "properties": { + "rotation": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ] + } + } + }, + "minecraft:player_wall_head": { + "defaultstate": "minecraft:player_wall_head[facing=north]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:podzol": { + "defaultstate": "minecraft:podzol[snowy=false]", + "properties": { + "snowy": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:polished_andesite": { + "defaultstate": "minecraft:polished_andesite", + "properties": {} + }, + "minecraft:polished_andesite_slab": { + "defaultstate": "minecraft:polished_andesite_slab[type=bottom,waterlogged=false]", + "properties": { + "type": { + "type": "enum", + "values": [ + "top", + "bottom", + "double" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:polished_andesite_stairs": { + "defaultstate": "minecraft:polished_andesite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "shape": { + "type": "enum", + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:polished_basalt": { + "defaultstate": "minecraft:polished_basalt[axis=y]", + "properties": { + "axis": { + "type": "enum", + "values": [ + "x", + "y", + "z" + ] + } + } + }, + "minecraft:polished_blackstone": { + "defaultstate": "minecraft:polished_blackstone", + "properties": {} + }, + "minecraft:polished_blackstone_brick_slab": { + "defaultstate": "minecraft:polished_blackstone_brick_slab[type=bottom,waterlogged=false]", + "properties": { + "type": { + "type": "enum", + "values": [ + "top", + "bottom", + "double" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:polished_blackstone_brick_stairs": { + "defaultstate": "minecraft:polished_blackstone_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "shape": { + "type": "enum", + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:polished_blackstone_brick_wall": { + "defaultstate": "minecraft:polished_blackstone_brick_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]", + "properties": { + "east": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "north": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "south": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "up": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + } + } + }, + "minecraft:polished_blackstone_bricks": { + "defaultstate": "minecraft:polished_blackstone_bricks", + "properties": {} + }, + "minecraft:polished_blackstone_button": { + "defaultstate": "minecraft:polished_blackstone_button[face=wall,facing=north,powered=false]", + "properties": { + "face": { + "type": "enum", + "values": [ + "floor", + "wall", + "ceiling" + ] + }, + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:polished_blackstone_pressure_plate": { + "defaultstate": "minecraft:polished_blackstone_pressure_plate[powered=false]", + "properties": { + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:polished_blackstone_slab": { + "defaultstate": "minecraft:polished_blackstone_slab[type=bottom,waterlogged=false]", + "properties": { + "type": { + "type": "enum", + "values": [ + "top", + "bottom", + "double" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:polished_blackstone_stairs": { + "defaultstate": "minecraft:polished_blackstone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "shape": { + "type": "enum", + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:polished_blackstone_wall": { + "defaultstate": "minecraft:polished_blackstone_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]", + "properties": { + "east": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "north": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "south": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "up": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + } + } + }, + "minecraft:polished_diorite": { + "defaultstate": "minecraft:polished_diorite", + "properties": {} + }, + "minecraft:polished_diorite_slab": { + "defaultstate": "minecraft:polished_diorite_slab[type=bottom,waterlogged=false]", + "properties": { + "type": { + "type": "enum", + "values": [ + "top", + "bottom", + "double" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:polished_diorite_stairs": { + "defaultstate": "minecraft:polished_diorite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "shape": { + "type": "enum", + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:polished_granite": { + "defaultstate": "minecraft:polished_granite", + "properties": {} + }, + "minecraft:polished_granite_slab": { + "defaultstate": "minecraft:polished_granite_slab[type=bottom,waterlogged=false]", + "properties": { + "type": { + "type": "enum", + "values": [ + "top", + "bottom", + "double" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:polished_granite_stairs": { + "defaultstate": "minecraft:polished_granite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "shape": { + "type": "enum", + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:poppy": { + "defaultstate": "minecraft:poppy", + "properties": {} + }, + "minecraft:potatoes": { + "defaultstate": "minecraft:potatoes[age=0]", + "properties": { + "age": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ] + } + } + }, + "minecraft:potted_acacia_sapling": { + "defaultstate": "minecraft:potted_acacia_sapling", + "properties": {} + }, + "minecraft:potted_allium": { + "defaultstate": "minecraft:potted_allium", + "properties": {} + }, + "minecraft:potted_azure_bluet": { + "defaultstate": "minecraft:potted_azure_bluet", + "properties": {} + }, + "minecraft:potted_bamboo": { + "defaultstate": "minecraft:potted_bamboo", + "properties": {} + }, + "minecraft:potted_birch_sapling": { + "defaultstate": "minecraft:potted_birch_sapling", + "properties": {} + }, + "minecraft:potted_blue_orchid": { + "defaultstate": "minecraft:potted_blue_orchid", + "properties": {} + }, + "minecraft:potted_brown_mushroom": { + "defaultstate": "minecraft:potted_brown_mushroom", + "properties": {} + }, + "minecraft:potted_cactus": { + "defaultstate": "minecraft:potted_cactus", + "properties": {} + }, + "minecraft:potted_cornflower": { + "defaultstate": "minecraft:potted_cornflower", + "properties": {} + }, + "minecraft:potted_crimson_fungus": { + "defaultstate": "minecraft:potted_crimson_fungus", + "properties": {} + }, + "minecraft:potted_crimson_roots": { + "defaultstate": "minecraft:potted_crimson_roots", + "properties": {} + }, + "minecraft:potted_dandelion": { + "defaultstate": "minecraft:potted_dandelion", + "properties": {} + }, + "minecraft:potted_dark_oak_sapling": { + "defaultstate": "minecraft:potted_dark_oak_sapling", + "properties": {} + }, + "minecraft:potted_dead_bush": { + "defaultstate": "minecraft:potted_dead_bush", + "properties": {} + }, + "minecraft:potted_fern": { + "defaultstate": "minecraft:potted_fern", + "properties": {} + }, + "minecraft:potted_jungle_sapling": { + "defaultstate": "minecraft:potted_jungle_sapling", + "properties": {} + }, + "minecraft:potted_lily_of_the_valley": { + "defaultstate": "minecraft:potted_lily_of_the_valley", + "properties": {} + }, + "minecraft:potted_oak_sapling": { + "defaultstate": "minecraft:potted_oak_sapling", + "properties": {} + }, + "minecraft:potted_orange_tulip": { + "defaultstate": "minecraft:potted_orange_tulip", + "properties": {} + }, + "minecraft:potted_oxeye_daisy": { + "defaultstate": "minecraft:potted_oxeye_daisy", + "properties": {} + }, + "minecraft:potted_pink_tulip": { + "defaultstate": "minecraft:potted_pink_tulip", + "properties": {} + }, + "minecraft:potted_poppy": { + "defaultstate": "minecraft:potted_poppy", + "properties": {} + }, + "minecraft:potted_red_mushroom": { + "defaultstate": "minecraft:potted_red_mushroom", + "properties": {} + }, + "minecraft:potted_red_tulip": { + "defaultstate": "minecraft:potted_red_tulip", + "properties": {} + }, + "minecraft:potted_spruce_sapling": { + "defaultstate": "minecraft:potted_spruce_sapling", + "properties": {} + }, + "minecraft:potted_warped_fungus": { + "defaultstate": "minecraft:potted_warped_fungus", + "properties": {} + }, + "minecraft:potted_warped_roots": { + "defaultstate": "minecraft:potted_warped_roots", + "properties": {} + }, + "minecraft:potted_white_tulip": { + "defaultstate": "minecraft:potted_white_tulip", + "properties": {} + }, + "minecraft:potted_wither_rose": { + "defaultstate": "minecraft:potted_wither_rose", + "properties": {} + }, + "minecraft:powered_rail": { + "defaultstate": "minecraft:powered_rail[powered=false,shape=north_south]", + "properties": { + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "shape": { + "type": "enum", + "values": [ + "north_south", + "east_west", + "ascending_east", + "ascending_west", + "ascending_north", + "ascending_south" + ] + } + } + }, + "minecraft:prismarine": { + "defaultstate": "minecraft:prismarine", + "properties": {} + }, + "minecraft:prismarine_brick_slab": { + "defaultstate": "minecraft:prismarine_brick_slab[type=bottom,waterlogged=false]", + "properties": { + "type": { + "type": "enum", + "values": [ + "top", + "bottom", + "double" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:prismarine_brick_stairs": { + "defaultstate": "minecraft:prismarine_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "shape": { + "type": "enum", + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:prismarine_bricks": { + "defaultstate": "minecraft:prismarine_bricks", + "properties": {} + }, + "minecraft:prismarine_slab": { + "defaultstate": "minecraft:prismarine_slab[type=bottom,waterlogged=false]", + "properties": { + "type": { + "type": "enum", + "values": [ + "top", + "bottom", + "double" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:prismarine_stairs": { + "defaultstate": "minecraft:prismarine_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "shape": { + "type": "enum", + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:prismarine_wall": { + "defaultstate": "minecraft:prismarine_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]", + "properties": { + "east": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "north": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "south": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "up": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + } + } + }, + "minecraft:pumpkin": { + "defaultstate": "minecraft:pumpkin", + "properties": {} + }, + "minecraft:pumpkin_stem": { + "defaultstate": "minecraft:pumpkin_stem[age=0]", + "properties": { + "age": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ] + } + } + }, + "minecraft:purple_banner": { + "defaultstate": "minecraft:purple_banner[rotation=0]", + "properties": { + "rotation": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ] + } + } + }, + "minecraft:purple_bed": { + "defaultstate": "minecraft:purple_bed[facing=north,occupied=false,part=foot]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "occupied": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "part": { + "type": "enum", + "values": [ + "head", + "foot" + ] + } + } + }, + "minecraft:purple_carpet": { + "defaultstate": "minecraft:purple_carpet", + "properties": {} + }, + "minecraft:purple_concrete": { + "defaultstate": "minecraft:purple_concrete", + "properties": {} + }, + "minecraft:purple_concrete_powder": { + "defaultstate": "minecraft:purple_concrete_powder", + "properties": {} + }, + "minecraft:purple_glazed_terracotta": { + "defaultstate": "minecraft:purple_glazed_terracotta[facing=north]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:purple_shulker_box": { + "defaultstate": "minecraft:purple_shulker_box[facing=up]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ] + } + } + }, + "minecraft:purple_stained_glass": { + "defaultstate": "minecraft:purple_stained_glass", + "properties": {} + }, + "minecraft:purple_stained_glass_pane": { + "defaultstate": "minecraft:purple_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]", + "properties": { + "east": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "north": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "south": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:purple_terracotta": { + "defaultstate": "minecraft:purple_terracotta", + "properties": {} + }, + "minecraft:purple_wall_banner": { + "defaultstate": "minecraft:purple_wall_banner[facing=north]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:purple_wool": { + "defaultstate": "minecraft:purple_wool", + "properties": {} + }, + "minecraft:purpur_block": { + "defaultstate": "minecraft:purpur_block", + "properties": {} + }, + "minecraft:purpur_pillar": { + "defaultstate": "minecraft:purpur_pillar[axis=y]", + "properties": { + "axis": { + "type": "enum", + "values": [ + "x", + "y", + "z" + ] + } + } + }, + "minecraft:purpur_slab": { + "defaultstate": "minecraft:purpur_slab[type=bottom,waterlogged=false]", + "properties": { + "type": { + "type": "enum", + "values": [ + "top", + "bottom", + "double" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:purpur_stairs": { + "defaultstate": "minecraft:purpur_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "shape": { + "type": "enum", + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:quartz_block": { + "defaultstate": "minecraft:quartz_block", + "properties": {} + }, + "minecraft:quartz_bricks": { + "defaultstate": "minecraft:quartz_bricks", + "properties": {} + }, + "minecraft:quartz_pillar": { + "defaultstate": "minecraft:quartz_pillar[axis=y]", + "properties": { + "axis": { + "type": "enum", + "values": [ + "x", + "y", + "z" + ] + } + } + }, + "minecraft:quartz_slab": { + "defaultstate": "minecraft:quartz_slab[type=bottom,waterlogged=false]", + "properties": { + "type": { + "type": "enum", + "values": [ + "top", + "bottom", + "double" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:quartz_stairs": { + "defaultstate": "minecraft:quartz_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "shape": { + "type": "enum", + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:rail": { + "defaultstate": "minecraft:rail[shape=north_south]", + "properties": { + "shape": { + "type": "enum", + "values": [ + "north_south", + "east_west", + "ascending_east", + "ascending_west", + "ascending_north", + "ascending_south", + "south_east", + "south_west", + "north_west", + "north_east" + ] + } + } + }, + "minecraft:red_banner": { + "defaultstate": "minecraft:red_banner[rotation=0]", + "properties": { + "rotation": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ] + } + } + }, + "minecraft:red_bed": { + "defaultstate": "minecraft:red_bed[facing=north,occupied=false,part=foot]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "occupied": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "part": { + "type": "enum", + "values": [ + "head", + "foot" + ] + } + } + }, + "minecraft:red_carpet": { + "defaultstate": "minecraft:red_carpet", + "properties": {} + }, + "minecraft:red_concrete": { + "defaultstate": "minecraft:red_concrete", + "properties": {} + }, + "minecraft:red_concrete_powder": { + "defaultstate": "minecraft:red_concrete_powder", + "properties": {} + }, + "minecraft:red_glazed_terracotta": { + "defaultstate": "minecraft:red_glazed_terracotta[facing=north]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:red_mushroom": { + "defaultstate": "minecraft:red_mushroom", + "properties": {} + }, + "minecraft:red_mushroom_block": { + "defaultstate": "minecraft:red_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true]", + "properties": { + "down": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "east": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "north": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "south": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "up": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:red_nether_brick_slab": { + "defaultstate": "minecraft:red_nether_brick_slab[type=bottom,waterlogged=false]", + "properties": { + "type": { + "type": "enum", + "values": [ + "top", + "bottom", + "double" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:red_nether_brick_stairs": { + "defaultstate": "minecraft:red_nether_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "shape": { + "type": "enum", + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:red_nether_brick_wall": { + "defaultstate": "minecraft:red_nether_brick_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]", + "properties": { + "east": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "north": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "south": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "up": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + } + } + }, + "minecraft:red_nether_bricks": { + "defaultstate": "minecraft:red_nether_bricks", + "properties": {} + }, + "minecraft:red_sand": { + "defaultstate": "minecraft:red_sand", + "properties": {} + }, + "minecraft:red_sandstone": { + "defaultstate": "minecraft:red_sandstone", + "properties": {} + }, + "minecraft:red_sandstone_slab": { + "defaultstate": "minecraft:red_sandstone_slab[type=bottom,waterlogged=false]", + "properties": { + "type": { + "type": "enum", + "values": [ + "top", + "bottom", + "double" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:red_sandstone_stairs": { + "defaultstate": "minecraft:red_sandstone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "shape": { + "type": "enum", + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:red_sandstone_wall": { + "defaultstate": "minecraft:red_sandstone_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]", + "properties": { + "east": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "north": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "south": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "up": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + } + } + }, + "minecraft:red_shulker_box": { + "defaultstate": "minecraft:red_shulker_box[facing=up]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ] + } + } + }, + "minecraft:red_stained_glass": { + "defaultstate": "minecraft:red_stained_glass", + "properties": {} + }, + "minecraft:red_stained_glass_pane": { + "defaultstate": "minecraft:red_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]", + "properties": { + "east": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "north": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "south": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:red_terracotta": { + "defaultstate": "minecraft:red_terracotta", + "properties": {} + }, + "minecraft:red_tulip": { + "defaultstate": "minecraft:red_tulip", + "properties": {} + }, + "minecraft:red_wall_banner": { + "defaultstate": "minecraft:red_wall_banner[facing=north]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:red_wool": { + "defaultstate": "minecraft:red_wool", + "properties": {} + }, + "minecraft:redstone_block": { + "defaultstate": "minecraft:redstone_block", + "properties": {} + }, + "minecraft:redstone_lamp": { + "defaultstate": "minecraft:redstone_lamp[lit=false]", + "properties": { + "lit": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:redstone_ore": { + "defaultstate": "minecraft:redstone_ore[lit=false]", + "properties": { + "lit": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:redstone_torch": { + "defaultstate": "minecraft:redstone_torch[lit=true]", + "properties": { + "lit": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:redstone_wall_torch": { + "defaultstate": "minecraft:redstone_wall_torch[facing=north,lit=true]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "lit": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:redstone_wire": { + "defaultstate": "minecraft:redstone_wire[east=none,north=none,power=0,south=none,west=none]", + "properties": { + "east": { + "type": "enum", + "values": [ + "up", + "side", + "none" + ] + }, + "north": { + "type": "enum", + "values": [ + "up", + "side", + "none" + ] + }, + "power": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ] + }, + "south": { + "type": "enum", + "values": [ + "up", + "side", + "none" + ] + }, + "west": { + "type": "enum", + "values": [ + "up", + "side", + "none" + ] + } + } + }, + "minecraft:repeater": { + "defaultstate": "minecraft:repeater[delay=1,facing=north,locked=false,powered=false]", + "properties": { + "delay": { + "type": "int", + "values": [ + "1", + "2", + "3", + "4" + ] + }, + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "locked": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:repeating_command_block": { + "defaultstate": "minecraft:repeating_command_block[conditional=false,facing=north]", + "properties": { + "conditional": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "facing": { + "type": "direction", + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ] + } + } + }, + "minecraft:respawn_anchor": { + "defaultstate": "minecraft:respawn_anchor[charges=0]", + "properties": { + "charges": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4" + ] + } + } + }, + "minecraft:rose_bush": { + "defaultstate": "minecraft:rose_bush[half=lower]", + "properties": { + "half": { + "type": "enum", + "values": [ + "upper", + "lower" + ] + } + } + }, + "minecraft:sand": { + "defaultstate": "minecraft:sand", + "properties": {} + }, + "minecraft:sandstone": { + "defaultstate": "minecraft:sandstone", + "properties": {} + }, + "minecraft:sandstone_slab": { + "defaultstate": "minecraft:sandstone_slab[type=bottom,waterlogged=false]", + "properties": { + "type": { + "type": "enum", + "values": [ + "top", + "bottom", + "double" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:sandstone_stairs": { + "defaultstate": "minecraft:sandstone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "shape": { + "type": "enum", + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:sandstone_wall": { + "defaultstate": "minecraft:sandstone_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]", + "properties": { + "east": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "north": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "south": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "up": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + } + } + }, + "minecraft:scaffolding": { + "defaultstate": "minecraft:scaffolding[bottom=false,distance=7,waterlogged=false]", + "properties": { + "bottom": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "distance": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:sea_lantern": { + "defaultstate": "minecraft:sea_lantern", + "properties": {} + }, + "minecraft:sea_pickle": { + "defaultstate": "minecraft:sea_pickle[pickles=1,waterlogged=true]", + "properties": { + "pickles": { + "type": "int", + "values": [ + "1", + "2", + "3", + "4" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:seagrass": { + "defaultstate": "minecraft:seagrass", + "properties": {} + }, + "minecraft:shroomlight": { + "defaultstate": "minecraft:shroomlight", + "properties": {} + }, + "minecraft:shulker_box": { + "defaultstate": "minecraft:shulker_box[facing=up]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ] + } + } + }, + "minecraft:skeleton_skull": { + "defaultstate": "minecraft:skeleton_skull[rotation=0]", + "properties": { + "rotation": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ] + } + } + }, + "minecraft:skeleton_wall_skull": { + "defaultstate": "minecraft:skeleton_wall_skull[facing=north]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:slime_block": { + "defaultstate": "minecraft:slime_block", + "properties": {} + }, + "minecraft:smithing_table": { + "defaultstate": "minecraft:smithing_table", + "properties": {} + }, + "minecraft:smoker": { + "defaultstate": "minecraft:smoker[facing=north,lit=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "lit": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:smooth_quartz": { + "defaultstate": "minecraft:smooth_quartz", + "properties": {} + }, + "minecraft:smooth_quartz_slab": { + "defaultstate": "minecraft:smooth_quartz_slab[type=bottom,waterlogged=false]", + "properties": { + "type": { + "type": "enum", + "values": [ + "top", + "bottom", + "double" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:smooth_quartz_stairs": { + "defaultstate": "minecraft:smooth_quartz_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "shape": { + "type": "enum", + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:smooth_red_sandstone": { + "defaultstate": "minecraft:smooth_red_sandstone", + "properties": {} + }, + "minecraft:smooth_red_sandstone_slab": { + "defaultstate": "minecraft:smooth_red_sandstone_slab[type=bottom,waterlogged=false]", + "properties": { + "type": { + "type": "enum", + "values": [ + "top", + "bottom", + "double" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:smooth_red_sandstone_stairs": { + "defaultstate": "minecraft:smooth_red_sandstone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "shape": { + "type": "enum", + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:smooth_sandstone": { + "defaultstate": "minecraft:smooth_sandstone", + "properties": {} + }, + "minecraft:smooth_sandstone_slab": { + "defaultstate": "minecraft:smooth_sandstone_slab[type=bottom,waterlogged=false]", + "properties": { + "type": { + "type": "enum", + "values": [ + "top", + "bottom", + "double" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:smooth_sandstone_stairs": { + "defaultstate": "minecraft:smooth_sandstone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "shape": { + "type": "enum", + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:smooth_stone": { + "defaultstate": "minecraft:smooth_stone", + "properties": {} + }, + "minecraft:smooth_stone_slab": { + "defaultstate": "minecraft:smooth_stone_slab[type=bottom,waterlogged=false]", + "properties": { + "type": { + "type": "enum", + "values": [ + "top", + "bottom", + "double" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:snow": { + "defaultstate": "minecraft:snow[layers=1]", + "properties": { + "layers": { + "type": "int", + "values": [ + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8" + ] + } + } + }, + "minecraft:snow_block": { + "defaultstate": "minecraft:snow_block", + "properties": {} + }, + "minecraft:soul_campfire": { + "defaultstate": "minecraft:soul_campfire[facing=north,lit=true,signal_fire=false,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "lit": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "signal_fire": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:soul_fire": { + "defaultstate": "minecraft:soul_fire", + "properties": {} + }, + "minecraft:soul_lantern": { + "defaultstate": "minecraft:soul_lantern[hanging=false,waterlogged=false]", + "properties": { + "hanging": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:soul_sand": { + "defaultstate": "minecraft:soul_sand", + "properties": {} + }, + "minecraft:soul_soil": { + "defaultstate": "minecraft:soul_soil", + "properties": {} + }, + "minecraft:soul_torch": { + "defaultstate": "minecraft:soul_torch", + "properties": {} + }, + "minecraft:soul_wall_torch": { + "defaultstate": "minecraft:soul_wall_torch[facing=north]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:spawner": { + "defaultstate": "minecraft:spawner", + "properties": {} + }, + "minecraft:sponge": { + "defaultstate": "minecraft:sponge", + "properties": {} + }, + "minecraft:spruce_button": { + "defaultstate": "minecraft:spruce_button[face=wall,facing=north,powered=false]", + "properties": { + "face": { + "type": "enum", + "values": [ + "floor", + "wall", + "ceiling" + ] + }, + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:spruce_door": { + "defaultstate": "minecraft:spruce_door[facing=north,half=lower,hinge=left,open=false,powered=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "upper", + "lower" + ] + }, + "hinge": { + "type": "enum", + "values": [ + "left", + "right" + ] + }, + "open": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:spruce_fence": { + "defaultstate": "minecraft:spruce_fence[east=false,north=false,south=false,waterlogged=false,west=false]", + "properties": { + "east": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "north": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "south": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:spruce_fence_gate": { + "defaultstate": "minecraft:spruce_fence_gate[facing=north,in_wall=false,open=false,powered=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "in_wall": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "open": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:spruce_leaves": { + "defaultstate": "minecraft:spruce_leaves[distance=7,persistent=false]", + "properties": { + "distance": { + "type": "int", + "values": [ + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ] + }, + "persistent": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:spruce_log": { + "defaultstate": "minecraft:spruce_log[axis=y]", + "properties": { + "axis": { + "type": "enum", + "values": [ + "x", + "y", + "z" + ] + } + } + }, + "minecraft:spruce_planks": { + "defaultstate": "minecraft:spruce_planks", + "properties": {} + }, + "minecraft:spruce_pressure_plate": { + "defaultstate": "minecraft:spruce_pressure_plate[powered=false]", + "properties": { + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:spruce_sapling": { + "defaultstate": "minecraft:spruce_sapling[stage=0]", + "properties": { + "stage": { + "type": "int", + "values": [ + "0", + "1" + ] + } + } + }, + "minecraft:spruce_sign": { + "defaultstate": "minecraft:spruce_sign[rotation=0,waterlogged=false]", + "properties": { + "rotation": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:spruce_slab": { + "defaultstate": "minecraft:spruce_slab[type=bottom,waterlogged=false]", + "properties": { + "type": { + "type": "enum", + "values": [ + "top", + "bottom", + "double" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:spruce_stairs": { + "defaultstate": "minecraft:spruce_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "shape": { + "type": "enum", + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:spruce_trapdoor": { + "defaultstate": "minecraft:spruce_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "open": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:spruce_wall_sign": { + "defaultstate": "minecraft:spruce_wall_sign[facing=north,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:spruce_wood": { + "defaultstate": "minecraft:spruce_wood[axis=y]", + "properties": { + "axis": { + "type": "enum", + "values": [ + "x", + "y", + "z" + ] + } + } + }, + "minecraft:sticky_piston": { + "defaultstate": "minecraft:sticky_piston[extended=false,facing=north]", + "properties": { + "extended": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "facing": { + "type": "direction", + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ] + } + } + }, + "minecraft:stone": { + "defaultstate": "minecraft:stone", + "properties": {} + }, + "minecraft:stone_brick_slab": { + "defaultstate": "minecraft:stone_brick_slab[type=bottom,waterlogged=false]", + "properties": { + "type": { + "type": "enum", + "values": [ + "top", + "bottom", + "double" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:stone_brick_stairs": { + "defaultstate": "minecraft:stone_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "shape": { + "type": "enum", + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:stone_brick_wall": { + "defaultstate": "minecraft:stone_brick_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]", + "properties": { + "east": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "north": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "south": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "up": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + } + } + }, + "minecraft:stone_bricks": { + "defaultstate": "minecraft:stone_bricks", + "properties": {} + }, + "minecraft:stone_button": { + "defaultstate": "minecraft:stone_button[face=wall,facing=north,powered=false]", + "properties": { + "face": { + "type": "enum", + "values": [ + "floor", + "wall", + "ceiling" + ] + }, + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:stone_pressure_plate": { + "defaultstate": "minecraft:stone_pressure_plate[powered=false]", + "properties": { + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:stone_slab": { + "defaultstate": "minecraft:stone_slab[type=bottom,waterlogged=false]", + "properties": { + "type": { + "type": "enum", + "values": [ + "top", + "bottom", + "double" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:stone_stairs": { + "defaultstate": "minecraft:stone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "shape": { + "type": "enum", + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:stonecutter": { + "defaultstate": "minecraft:stonecutter[facing=north]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:stripped_acacia_log": { + "defaultstate": "minecraft:stripped_acacia_log[axis=y]", + "properties": { + "axis": { + "type": "enum", + "values": [ + "x", + "y", + "z" + ] + } + } + }, + "minecraft:stripped_acacia_wood": { + "defaultstate": "minecraft:stripped_acacia_wood[axis=y]", + "properties": { + "axis": { + "type": "enum", + "values": [ + "x", + "y", + "z" + ] + } + } + }, + "minecraft:stripped_birch_log": { + "defaultstate": "minecraft:stripped_birch_log[axis=y]", + "properties": { + "axis": { + "type": "enum", + "values": [ + "x", + "y", + "z" + ] + } + } + }, + "minecraft:stripped_birch_wood": { + "defaultstate": "minecraft:stripped_birch_wood[axis=y]", + "properties": { + "axis": { + "type": "enum", + "values": [ + "x", + "y", + "z" + ] + } + } + }, + "minecraft:stripped_crimson_hyphae": { + "defaultstate": "minecraft:stripped_crimson_hyphae[axis=y]", + "properties": { + "axis": { + "type": "enum", + "values": [ + "x", + "y", + "z" + ] + } + } + }, + "minecraft:stripped_crimson_stem": { + "defaultstate": "minecraft:stripped_crimson_stem[axis=y]", + "properties": { + "axis": { + "type": "enum", + "values": [ + "x", + "y", + "z" + ] + } + } + }, + "minecraft:stripped_dark_oak_log": { + "defaultstate": "minecraft:stripped_dark_oak_log[axis=y]", + "properties": { + "axis": { + "type": "enum", + "values": [ + "x", + "y", + "z" + ] + } + } + }, + "minecraft:stripped_dark_oak_wood": { + "defaultstate": "minecraft:stripped_dark_oak_wood[axis=y]", + "properties": { + "axis": { + "type": "enum", + "values": [ + "x", + "y", + "z" + ] + } + } + }, + "minecraft:stripped_jungle_log": { + "defaultstate": "minecraft:stripped_jungle_log[axis=y]", + "properties": { + "axis": { + "type": "enum", + "values": [ + "x", + "y", + "z" + ] + } + } + }, + "minecraft:stripped_jungle_wood": { + "defaultstate": "minecraft:stripped_jungle_wood[axis=y]", + "properties": { + "axis": { + "type": "enum", + "values": [ + "x", + "y", + "z" + ] + } + } + }, + "minecraft:stripped_oak_log": { + "defaultstate": "minecraft:stripped_oak_log[axis=y]", + "properties": { + "axis": { + "type": "enum", + "values": [ + "x", + "y", + "z" + ] + } + } + }, + "minecraft:stripped_oak_wood": { + "defaultstate": "minecraft:stripped_oak_wood[axis=y]", + "properties": { + "axis": { + "type": "enum", + "values": [ + "x", + "y", + "z" + ] + } + } + }, + "minecraft:stripped_spruce_log": { + "defaultstate": "minecraft:stripped_spruce_log[axis=y]", + "properties": { + "axis": { + "type": "enum", + "values": [ + "x", + "y", + "z" + ] + } + } + }, + "minecraft:stripped_spruce_wood": { + "defaultstate": "minecraft:stripped_spruce_wood[axis=y]", + "properties": { + "axis": { + "type": "enum", + "values": [ + "x", + "y", + "z" + ] + } + } + }, + "minecraft:stripped_warped_hyphae": { + "defaultstate": "minecraft:stripped_warped_hyphae[axis=y]", + "properties": { + "axis": { + "type": "enum", + "values": [ + "x", + "y", + "z" + ] + } + } + }, + "minecraft:stripped_warped_stem": { + "defaultstate": "minecraft:stripped_warped_stem[axis=y]", + "properties": { + "axis": { + "type": "enum", + "values": [ + "x", + "y", + "z" + ] + } + } + }, + "minecraft:structure_block": { + "defaultstate": "minecraft:structure_block[mode=save]", + "properties": { + "mode": { + "type": "enum", + "values": [ + "save", + "load", + "corner", + "data" + ] + } + } + }, + "minecraft:structure_void": { + "defaultstate": "minecraft:structure_void", + "properties": {} + }, + "minecraft:sugar_cane": { + "defaultstate": "minecraft:sugar_cane[age=0]", + "properties": { + "age": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ] + } + } + }, + "minecraft:sunflower": { + "defaultstate": "minecraft:sunflower[half=lower]", + "properties": { + "half": { + "type": "enum", + "values": [ + "upper", + "lower" + ] + } + } + }, + "minecraft:sweet_berry_bush": { + "defaultstate": "minecraft:sweet_berry_bush[age=0]", + "properties": { + "age": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3" + ] + } + } + }, + "minecraft:tall_grass": { + "defaultstate": "minecraft:tall_grass[half=lower]", + "properties": { + "half": { + "type": "enum", + "values": [ + "upper", + "lower" + ] + } + } + }, + "minecraft:tall_seagrass": { + "defaultstate": "minecraft:tall_seagrass[half=lower]", + "properties": { + "half": { + "type": "enum", + "values": [ + "upper", + "lower" + ] + } + } + }, + "minecraft:target": { + "defaultstate": "minecraft:target[power=0]", + "properties": { + "power": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ] + } + } + }, + "minecraft:terracotta": { + "defaultstate": "minecraft:terracotta", + "properties": {} + }, + "minecraft:tnt": { + "defaultstate": "minecraft:tnt[unstable=false]", + "properties": { + "unstable": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:torch": { + "defaultstate": "minecraft:torch", + "properties": {} + }, + "minecraft:trapped_chest": { + "defaultstate": "minecraft:trapped_chest[facing=north,type=single,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "type": { + "type": "enum", + "values": [ + "single", + "left", + "right" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:tripwire": { + "defaultstate": "minecraft:tripwire[attached=false,disarmed=false,east=false,north=false,powered=false,south=false,west=false]", + "properties": { + "attached": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "disarmed": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "east": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "north": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "south": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:tripwire_hook": { + "defaultstate": "minecraft:tripwire_hook[attached=false,facing=north,powered=false]", + "properties": { + "attached": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:tube_coral": { + "defaultstate": "minecraft:tube_coral[waterlogged=true]", + "properties": { + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:tube_coral_block": { + "defaultstate": "minecraft:tube_coral_block", + "properties": {} + }, + "minecraft:tube_coral_fan": { + "defaultstate": "minecraft:tube_coral_fan[waterlogged=true]", + "properties": { + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:tube_coral_wall_fan": { + "defaultstate": "minecraft:tube_coral_wall_fan[facing=north,waterlogged=true]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:turtle_egg": { + "defaultstate": "minecraft:turtle_egg[eggs=1,hatch=0]", + "properties": { + "eggs": { + "type": "int", + "values": [ + "1", + "2", + "3", + "4" + ] + }, + "hatch": { + "type": "int", + "values": [ + "0", + "1", + "2" + ] + } + } + }, + "minecraft:twisting_vines": { + "defaultstate": "minecraft:twisting_vines[age=0]", + "properties": { + "age": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15", + "16", + "17", + "18", + "19", + "20", + "21", + "22", + "23", + "24", + "25" + ] + } + } + }, + "minecraft:twisting_vines_plant": { + "defaultstate": "minecraft:twisting_vines_plant", + "properties": {} + }, + "minecraft:vine": { + "defaultstate": "minecraft:vine[east=false,north=false,south=false,up=false,west=false]", + "properties": { + "east": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "north": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "south": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "up": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:void_air": { + "defaultstate": "minecraft:void_air", + "properties": {} + }, + "minecraft:wall_torch": { + "defaultstate": "minecraft:wall_torch[facing=north]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:warped_button": { + "defaultstate": "minecraft:warped_button[face=wall,facing=north,powered=false]", + "properties": { + "face": { + "type": "enum", + "values": [ + "floor", + "wall", + "ceiling" + ] + }, + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:warped_door": { + "defaultstate": "minecraft:warped_door[facing=north,half=lower,hinge=left,open=false,powered=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "upper", + "lower" + ] + }, + "hinge": { + "type": "enum", + "values": [ + "left", + "right" + ] + }, + "open": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:warped_fence": { + "defaultstate": "minecraft:warped_fence[east=false,north=false,south=false,waterlogged=false,west=false]", + "properties": { + "east": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "north": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "south": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:warped_fence_gate": { + "defaultstate": "minecraft:warped_fence_gate[facing=north,in_wall=false,open=false,powered=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "in_wall": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "open": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:warped_fungus": { + "defaultstate": "minecraft:warped_fungus", + "properties": {} + }, + "minecraft:warped_hyphae": { + "defaultstate": "minecraft:warped_hyphae[axis=y]", + "properties": { + "axis": { + "type": "enum", + "values": [ + "x", + "y", + "z" + ] + } + } + }, + "minecraft:warped_nylium": { + "defaultstate": "minecraft:warped_nylium", + "properties": {} + }, + "minecraft:warped_planks": { + "defaultstate": "minecraft:warped_planks", + "properties": {} + }, + "minecraft:warped_pressure_plate": { + "defaultstate": "minecraft:warped_pressure_plate[powered=false]", + "properties": { + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:warped_roots": { + "defaultstate": "minecraft:warped_roots", + "properties": {} + }, + "minecraft:warped_sign": { + "defaultstate": "minecraft:warped_sign[rotation=0,waterlogged=false]", + "properties": { + "rotation": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:warped_slab": { + "defaultstate": "minecraft:warped_slab[type=bottom,waterlogged=false]", + "properties": { + "type": { + "type": "enum", + "values": [ + "top", + "bottom", + "double" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:warped_stairs": { + "defaultstate": "minecraft:warped_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "shape": { + "type": "enum", + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:warped_stem": { + "defaultstate": "minecraft:warped_stem[axis=y]", + "properties": { + "axis": { + "type": "enum", + "values": [ + "x", + "y", + "z" + ] + } + } + }, + "minecraft:warped_trapdoor": { + "defaultstate": "minecraft:warped_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "open": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:warped_wall_sign": { + "defaultstate": "minecraft:warped_wall_sign[facing=north,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:warped_wart_block": { + "defaultstate": "minecraft:warped_wart_block", + "properties": {} + }, + "minecraft:water": { + "defaultstate": "minecraft:water[level=0]", + "properties": { + "level": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ] + } + } + }, + "minecraft:weeping_vines": { + "defaultstate": "minecraft:weeping_vines[age=0]", + "properties": { + "age": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15", + "16", + "17", + "18", + "19", + "20", + "21", + "22", + "23", + "24", + "25" + ] + } + } + }, + "minecraft:weeping_vines_plant": { + "defaultstate": "minecraft:weeping_vines_plant", + "properties": {} + }, + "minecraft:wet_sponge": { + "defaultstate": "minecraft:wet_sponge", + "properties": {} + }, + "minecraft:wheat": { + "defaultstate": "minecraft:wheat[age=0]", + "properties": { + "age": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ] + } + } + }, + "minecraft:white_banner": { + "defaultstate": "minecraft:white_banner[rotation=0]", + "properties": { + "rotation": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ] + } + } + }, + "minecraft:white_bed": { + "defaultstate": "minecraft:white_bed[facing=north,occupied=false,part=foot]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "occupied": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "part": { + "type": "enum", + "values": [ + "head", + "foot" + ] + } + } + }, + "minecraft:white_carpet": { + "defaultstate": "minecraft:white_carpet", + "properties": {} + }, + "minecraft:white_concrete": { + "defaultstate": "minecraft:white_concrete", + "properties": {} + }, + "minecraft:white_concrete_powder": { + "defaultstate": "minecraft:white_concrete_powder", + "properties": {} + }, + "minecraft:white_glazed_terracotta": { + "defaultstate": "minecraft:white_glazed_terracotta[facing=north]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:white_shulker_box": { + "defaultstate": "minecraft:white_shulker_box[facing=up]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ] + } + } + }, + "minecraft:white_stained_glass": { + "defaultstate": "minecraft:white_stained_glass", + "properties": {} + }, + "minecraft:white_stained_glass_pane": { + "defaultstate": "minecraft:white_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]", + "properties": { + "east": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "north": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "south": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:white_terracotta": { + "defaultstate": "minecraft:white_terracotta", + "properties": {} + }, + "minecraft:white_tulip": { + "defaultstate": "minecraft:white_tulip", + "properties": {} + }, + "minecraft:white_wall_banner": { + "defaultstate": "minecraft:white_wall_banner[facing=north]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:white_wool": { + "defaultstate": "minecraft:white_wool", + "properties": {} + }, + "minecraft:wither_rose": { + "defaultstate": "minecraft:wither_rose", + "properties": {} + }, + "minecraft:wither_skeleton_skull": { + "defaultstate": "minecraft:wither_skeleton_skull[rotation=0]", + "properties": { + "rotation": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ] + } + } + }, + "minecraft:wither_skeleton_wall_skull": { + "defaultstate": "minecraft:wither_skeleton_wall_skull[facing=north]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:yellow_banner": { + "defaultstate": "minecraft:yellow_banner[rotation=0]", + "properties": { + "rotation": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ] + } + } + }, + "minecraft:yellow_bed": { + "defaultstate": "minecraft:yellow_bed[facing=north,occupied=false,part=foot]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "occupied": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "part": { + "type": "enum", + "values": [ + "head", + "foot" + ] + } + } + }, + "minecraft:yellow_carpet": { + "defaultstate": "minecraft:yellow_carpet", + "properties": {} + }, + "minecraft:yellow_concrete": { + "defaultstate": "minecraft:yellow_concrete", + "properties": {} + }, + "minecraft:yellow_concrete_powder": { + "defaultstate": "minecraft:yellow_concrete_powder", + "properties": {} + }, + "minecraft:yellow_glazed_terracotta": { + "defaultstate": "minecraft:yellow_glazed_terracotta[facing=north]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:yellow_shulker_box": { + "defaultstate": "minecraft:yellow_shulker_box[facing=up]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ] + } + } + }, + "minecraft:yellow_stained_glass": { + "defaultstate": "minecraft:yellow_stained_glass", + "properties": {} + }, + "minecraft:yellow_stained_glass_pane": { + "defaultstate": "minecraft:yellow_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]", + "properties": { + "east": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "north": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "south": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:yellow_terracotta": { + "defaultstate": "minecraft:yellow_terracotta", + "properties": {} + }, + "minecraft:yellow_wall_banner": { + "defaultstate": "minecraft:yellow_wall_banner[facing=north]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:yellow_wool": { + "defaultstate": "minecraft:yellow_wool", + "properties": {} + }, + "minecraft:zombie_head": { + "defaultstate": "minecraft:zombie_head[rotation=0]", + "properties": { + "rotation": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ] + } + } + }, + "minecraft:zombie_wall_head": { + "defaultstate": "minecraft:zombie_wall_head[facing=north]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + } + }, + "blocktags": { + "minecraft:acacia_logs": [ + "minecraft:acacia_log", + "minecraft:acacia_wood", + "minecraft:stripped_acacia_log", + "minecraft:stripped_acacia_wood" + ], + "minecraft:anvil": [ + "minecraft:anvil", + "minecraft:chipped_anvil", + "minecraft:damaged_anvil" + ], + "minecraft:bamboo_plantable_on": [ + "minecraft:bamboo", + "minecraft:bamboo_sapling", + "minecraft:coarse_dirt", + "minecraft:dirt", + "minecraft:grass_block", + "minecraft:gravel", + "minecraft:mycelium", + "minecraft:podzol", + "minecraft:red_sand", + "minecraft:sand" + ], + "minecraft:banners": [ + "minecraft:black_banner", + "minecraft:black_wall_banner", + "minecraft:blue_banner", + "minecraft:blue_wall_banner", + "minecraft:brown_banner", + "minecraft:brown_wall_banner", + "minecraft:cyan_banner", + "minecraft:cyan_wall_banner", + "minecraft:gray_banner", + "minecraft:gray_wall_banner", + "minecraft:green_banner", + "minecraft:green_wall_banner", + "minecraft:light_blue_banner", + "minecraft:light_blue_wall_banner", + "minecraft:light_gray_banner", + "minecraft:light_gray_wall_banner", + "minecraft:lime_banner", + "minecraft:lime_wall_banner", + "minecraft:magenta_banner", + "minecraft:magenta_wall_banner", + "minecraft:orange_banner", + "minecraft:orange_wall_banner", + "minecraft:pink_banner", + "minecraft:pink_wall_banner", + "minecraft:purple_banner", + "minecraft:purple_wall_banner", + "minecraft:red_banner", + "minecraft:red_wall_banner", + "minecraft:white_banner", + "minecraft:white_wall_banner", + "minecraft:yellow_banner", + "minecraft:yellow_wall_banner" + ], + "minecraft:base_stone_nether": [ + "minecraft:basalt", + "minecraft:blackstone", + "minecraft:netherrack" + ], + "minecraft:base_stone_overworld": [ + "minecraft:andesite", + "minecraft:diorite", + "minecraft:granite", + "minecraft:stone" + ], + "minecraft:beacon_base_blocks": [ + "minecraft:diamond_block", + "minecraft:emerald_block", + "minecraft:gold_block", + "minecraft:iron_block", + "minecraft:netherite_block" + ], + "minecraft:beds": [ + "minecraft:black_bed", + "minecraft:blue_bed", + "minecraft:brown_bed", + "minecraft:cyan_bed", + "minecraft:gray_bed", + "minecraft:green_bed", + "minecraft:light_blue_bed", + "minecraft:light_gray_bed", + "minecraft:lime_bed", + "minecraft:magenta_bed", + "minecraft:orange_bed", + "minecraft:pink_bed", + "minecraft:purple_bed", + "minecraft:red_bed", + "minecraft:white_bed", + "minecraft:yellow_bed" + ], + "minecraft:bee_growables": [ + "minecraft:beetroots", + "minecraft:carrots", + "minecraft:melon_stem", + "minecraft:potatoes", + "minecraft:pumpkin_stem", + "minecraft:sweet_berry_bush", + "minecraft:wheat" + ], + "minecraft:beehives": [ + "minecraft:bee_nest", + "minecraft:beehive" + ], + "minecraft:birch_logs": [ + "minecraft:birch_log", + "minecraft:birch_wood", + "minecraft:stripped_birch_log", + "minecraft:stripped_birch_wood" + ], + "minecraft:buttons": [ + "minecraft:acacia_button", + "minecraft:birch_button", + "minecraft:crimson_button", + "minecraft:dark_oak_button", + "minecraft:jungle_button", + "minecraft:oak_button", + "minecraft:polished_blackstone_button", + "minecraft:spruce_button", + "minecraft:stone_button", + "minecraft:warped_button" + ], + "minecraft:campfires": [ + "minecraft:campfire", + "minecraft:soul_campfire" + ], + "minecraft:carpets": [ + "minecraft:black_carpet", + "minecraft:blue_carpet", + "minecraft:brown_carpet", + "minecraft:cyan_carpet", + "minecraft:gray_carpet", + "minecraft:green_carpet", + "minecraft:light_blue_carpet", + "minecraft:light_gray_carpet", + "minecraft:lime_carpet", + "minecraft:magenta_carpet", + "minecraft:orange_carpet", + "minecraft:pink_carpet", + "minecraft:purple_carpet", + "minecraft:red_carpet", + "minecraft:white_carpet", + "minecraft:yellow_carpet" + ], + "minecraft:climbable": [ + "minecraft:ladder", + "minecraft:scaffolding", + "minecraft:twisting_vines", + "minecraft:twisting_vines_plant", + "minecraft:vine", + "minecraft:weeping_vines", + "minecraft:weeping_vines_plant" + ], + "minecraft:coral_blocks": [ + "minecraft:brain_coral_block", + "minecraft:bubble_coral_block", + "minecraft:fire_coral_block", + "minecraft:horn_coral_block", + "minecraft:tube_coral_block" + ], + "minecraft:coral_plants": [ + "minecraft:brain_coral", + "minecraft:bubble_coral", + "minecraft:fire_coral", + "minecraft:horn_coral", + "minecraft:tube_coral" + ], + "minecraft:corals": [ + "minecraft:brain_coral", + "minecraft:brain_coral_fan", + "minecraft:bubble_coral", + "minecraft:bubble_coral_fan", + "minecraft:fire_coral", + "minecraft:fire_coral_fan", + "minecraft:horn_coral", + "minecraft:horn_coral_fan", + "minecraft:tube_coral", + "minecraft:tube_coral_fan" + ], + "minecraft:crimson_stems": [ + "minecraft:crimson_hyphae", + "minecraft:crimson_stem", + "minecraft:stripped_crimson_hyphae", + "minecraft:stripped_crimson_stem" + ], + "minecraft:crops": [ + "minecraft:beetroots", + "minecraft:carrots", + "minecraft:melon_stem", + "minecraft:potatoes", + "minecraft:pumpkin_stem", + "minecraft:wheat" + ], + "minecraft:dark_oak_logs": [ + "minecraft:dark_oak_log", + "minecraft:dark_oak_wood", + "minecraft:stripped_dark_oak_log", + "minecraft:stripped_dark_oak_wood" + ], + "minecraft:doors": [ + "minecraft:acacia_door", + "minecraft:birch_door", + "minecraft:crimson_door", + "minecraft:dark_oak_door", + "minecraft:iron_door", + "minecraft:jungle_door", + "minecraft:oak_door", + "minecraft:spruce_door", + "minecraft:warped_door" + ], + "minecraft:dragon_immune": [ + "minecraft:barrier", + "minecraft:bedrock", + "minecraft:chain_command_block", + "minecraft:command_block", + "minecraft:crying_obsidian", + "minecraft:end_gateway", + "minecraft:end_portal", + "minecraft:end_portal_frame", + "minecraft:end_stone", + "minecraft:iron_bars", + "minecraft:jigsaw", + "minecraft:moving_piston", + "minecraft:obsidian", + "minecraft:repeating_command_block", + "minecraft:respawn_anchor", + "minecraft:structure_block" + ], + "minecraft:enderman_holdable": [ + "minecraft:allium", + "minecraft:azure_bluet", + "minecraft:blue_orchid", + "minecraft:brown_mushroom", + "minecraft:cactus", + "minecraft:carved_pumpkin", + "minecraft:clay", + "minecraft:coarse_dirt", + "minecraft:cornflower", + "minecraft:crimson_fungus", + "minecraft:crimson_nylium", + "minecraft:crimson_roots", + "minecraft:dandelion", + "minecraft:dirt", + "minecraft:grass_block", + "minecraft:gravel", + "minecraft:lily_of_the_valley", + "minecraft:melon", + "minecraft:mycelium", + "minecraft:orange_tulip", + "minecraft:oxeye_daisy", + "minecraft:pink_tulip", + "minecraft:podzol", + "minecraft:poppy", + "minecraft:pumpkin", + "minecraft:red_mushroom", + "minecraft:red_sand", + "minecraft:red_tulip", + "minecraft:sand", + "minecraft:tnt", + "minecraft:warped_fungus", + "minecraft:warped_nylium", + "minecraft:warped_roots", + "minecraft:white_tulip", + "minecraft:wither_rose" + ], + "minecraft:fence_gates": [ + "minecraft:acacia_fence_gate", + "minecraft:birch_fence_gate", + "minecraft:crimson_fence_gate", + "minecraft:dark_oak_fence_gate", + "minecraft:jungle_fence_gate", + "minecraft:oak_fence_gate", + "minecraft:spruce_fence_gate", + "minecraft:warped_fence_gate" + ], + "minecraft:fences": [ + "minecraft:acacia_fence", + "minecraft:birch_fence", + "minecraft:crimson_fence", + "minecraft:dark_oak_fence", + "minecraft:jungle_fence", + "minecraft:nether_brick_fence", + "minecraft:oak_fence", + "minecraft:spruce_fence", + "minecraft:warped_fence" + ], + "minecraft:fire": [ + "minecraft:fire", + "minecraft:soul_fire" + ], + "minecraft:flower_pots": [ + "minecraft:flower_pot", + "minecraft:potted_acacia_sapling", + "minecraft:potted_allium", + "minecraft:potted_azure_bluet", + "minecraft:potted_bamboo", + "minecraft:potted_birch_sapling", + "minecraft:potted_blue_orchid", + "minecraft:potted_brown_mushroom", + "minecraft:potted_cactus", + "minecraft:potted_cornflower", + "minecraft:potted_crimson_fungus", + "minecraft:potted_crimson_roots", + "minecraft:potted_dandelion", + "minecraft:potted_dark_oak_sapling", + "minecraft:potted_dead_bush", + "minecraft:potted_fern", + "minecraft:potted_jungle_sapling", + "minecraft:potted_lily_of_the_valley", + "minecraft:potted_oak_sapling", + "minecraft:potted_orange_tulip", + "minecraft:potted_oxeye_daisy", + "minecraft:potted_pink_tulip", + "minecraft:potted_poppy", + "minecraft:potted_red_mushroom", + "minecraft:potted_red_tulip", + "minecraft:potted_spruce_sapling", + "minecraft:potted_warped_fungus", + "minecraft:potted_warped_roots", + "minecraft:potted_white_tulip", + "minecraft:potted_wither_rose" + ], + "minecraft:flowers": [ + "minecraft:allium", + "minecraft:azure_bluet", + "minecraft:blue_orchid", + "minecraft:cornflower", + "minecraft:dandelion", + "minecraft:lilac", + "minecraft:lily_of_the_valley", + "minecraft:orange_tulip", + "minecraft:oxeye_daisy", + "minecraft:peony", + "minecraft:pink_tulip", + "minecraft:poppy", + "minecraft:red_tulip", + "minecraft:rose_bush", + "minecraft:sunflower", + "minecraft:white_tulip", + "minecraft:wither_rose" + ], + "minecraft:gold_ores": [ + "minecraft:gold_ore", + "minecraft:nether_gold_ore" + ], + "minecraft:guarded_by_piglins": [ + "minecraft:barrel", + "minecraft:black_shulker_box", + "minecraft:blue_shulker_box", + "minecraft:brown_shulker_box", + "minecraft:chest", + "minecraft:cyan_shulker_box", + "minecraft:ender_chest", + "minecraft:gilded_blackstone", + "minecraft:gold_block", + "minecraft:gold_ore", + "minecraft:gray_shulker_box", + "minecraft:green_shulker_box", + "minecraft:light_blue_shulker_box", + "minecraft:light_gray_shulker_box", + "minecraft:lime_shulker_box", + "minecraft:magenta_shulker_box", + "minecraft:nether_gold_ore", + "minecraft:orange_shulker_box", + "minecraft:pink_shulker_box", + "minecraft:purple_shulker_box", + "minecraft:red_shulker_box", + "minecraft:shulker_box", + "minecraft:trapped_chest", + "minecraft:white_shulker_box", + "minecraft:yellow_shulker_box" + ], + "minecraft:hoglin_repellents": [ + "minecraft:nether_portal", + "minecraft:potted_warped_fungus", + "minecraft:respawn_anchor", + "minecraft:warped_fungus" + ], + "minecraft:ice": [ + "minecraft:blue_ice", + "minecraft:frosted_ice", + "minecraft:ice", + "minecraft:packed_ice" + ], + "minecraft:impermeable": [ + "minecraft:black_stained_glass", + "minecraft:blue_stained_glass", + "minecraft:brown_stained_glass", + "minecraft:cyan_stained_glass", + "minecraft:glass", + "minecraft:gray_stained_glass", + "minecraft:green_stained_glass", + "minecraft:light_blue_stained_glass", + "minecraft:light_gray_stained_glass", + "minecraft:lime_stained_glass", + "minecraft:magenta_stained_glass", + "minecraft:orange_stained_glass", + "minecraft:pink_stained_glass", + "minecraft:purple_stained_glass", + "minecraft:red_stained_glass", + "minecraft:white_stained_glass", + "minecraft:yellow_stained_glass" + ], + "minecraft:infiniburn_end": [ + "minecraft:bedrock", + "minecraft:magma_block", + "minecraft:netherrack" + ], + "minecraft:infiniburn_nether": [ + "minecraft:magma_block", + "minecraft:netherrack" + ], + "minecraft:infiniburn_overworld": [ + "minecraft:magma_block", + "minecraft:netherrack" + ], + "minecraft:jungle_logs": [ + "minecraft:jungle_log", + "minecraft:jungle_wood", + "minecraft:stripped_jungle_log", + "minecraft:stripped_jungle_wood" + ], + "minecraft:leaves": [ + "minecraft:acacia_leaves", + "minecraft:birch_leaves", + "minecraft:dark_oak_leaves", + "minecraft:jungle_leaves", + "minecraft:oak_leaves", + "minecraft:spruce_leaves" + ], + "minecraft:logs": [ + "minecraft:acacia_log", + "minecraft:acacia_wood", + "minecraft:birch_log", + "minecraft:birch_wood", + "minecraft:crimson_hyphae", + "minecraft:crimson_stem", + "minecraft:dark_oak_log", + "minecraft:dark_oak_wood", + "minecraft:jungle_log", + "minecraft:jungle_wood", + "minecraft:oak_log", + "minecraft:oak_wood", + "minecraft:spruce_log", + "minecraft:spruce_wood", + "minecraft:stripped_acacia_log", + "minecraft:stripped_acacia_wood", + "minecraft:stripped_birch_log", + "minecraft:stripped_birch_wood", + "minecraft:stripped_crimson_hyphae", + "minecraft:stripped_crimson_stem", + "minecraft:stripped_dark_oak_log", + "minecraft:stripped_dark_oak_wood", + "minecraft:stripped_jungle_log", + "minecraft:stripped_jungle_wood", + "minecraft:stripped_oak_log", + "minecraft:stripped_oak_wood", + "minecraft:stripped_spruce_log", + "minecraft:stripped_spruce_wood", + "minecraft:stripped_warped_hyphae", + "minecraft:stripped_warped_stem", + "minecraft:warped_hyphae", + "minecraft:warped_stem" + ], + "minecraft:logs_that_burn": [ + "minecraft:acacia_log", + "minecraft:acacia_wood", + "minecraft:birch_log", + "minecraft:birch_wood", + "minecraft:dark_oak_log", + "minecraft:dark_oak_wood", + "minecraft:jungle_log", + "minecraft:jungle_wood", + "minecraft:oak_log", + "minecraft:oak_wood", + "minecraft:spruce_log", + "minecraft:spruce_wood", + "minecraft:stripped_acacia_log", + "minecraft:stripped_acacia_wood", + "minecraft:stripped_birch_log", + "minecraft:stripped_birch_wood", + "minecraft:stripped_dark_oak_log", + "minecraft:stripped_dark_oak_wood", + "minecraft:stripped_jungle_log", + "minecraft:stripped_jungle_wood", + "minecraft:stripped_oak_log", + "minecraft:stripped_oak_wood", + "minecraft:stripped_spruce_log", + "minecraft:stripped_spruce_wood" + ], + "minecraft:mushroom_grow_block": [ + "minecraft:crimson_nylium", + "minecraft:mycelium", + "minecraft:podzol", + "minecraft:warped_nylium" + ], + "minecraft:non_flammable_wood": [ + "minecraft:crimson_button", + "minecraft:crimson_door", + "minecraft:crimson_fence", + "minecraft:crimson_fence_gate", + "minecraft:crimson_hyphae", + "minecraft:crimson_planks", + "minecraft:crimson_pressure_plate", + "minecraft:crimson_sign", + "minecraft:crimson_slab", + "minecraft:crimson_stairs", + "minecraft:crimson_stem", + "minecraft:crimson_trapdoor", + "minecraft:crimson_wall_sign", + "minecraft:stripped_crimson_hyphae", + "minecraft:stripped_crimson_stem", + "minecraft:stripped_warped_hyphae", + "minecraft:stripped_warped_stem", + "minecraft:warped_button", + "minecraft:warped_door", + "minecraft:warped_fence", + "minecraft:warped_fence_gate", + "minecraft:warped_hyphae", + "minecraft:warped_planks", + "minecraft:warped_pressure_plate", + "minecraft:warped_sign", + "minecraft:warped_slab", + "minecraft:warped_stairs", + "minecraft:warped_stem", + "minecraft:warped_trapdoor", + "minecraft:warped_wall_sign" + ], + "minecraft:nylium": [ + "minecraft:crimson_nylium", + "minecraft:warped_nylium" + ], + "minecraft:oak_logs": [ + "minecraft:oak_log", + "minecraft:oak_wood", + "minecraft:stripped_oak_log", + "minecraft:stripped_oak_wood" + ], + "minecraft:piglin_repellents": [ + "minecraft:soul_campfire", + "minecraft:soul_fire", + "minecraft:soul_lantern", + "minecraft:soul_torch", + "minecraft:soul_wall_torch" + ], + "minecraft:planks": [ + "minecraft:acacia_planks", + "minecraft:birch_planks", + "minecraft:crimson_planks", + "minecraft:dark_oak_planks", + "minecraft:jungle_planks", + "minecraft:oak_planks", + "minecraft:spruce_planks", + "minecraft:warped_planks" + ], + "minecraft:portals": [ + "minecraft:end_gateway", + "minecraft:end_portal", + "minecraft:nether_portal" + ], + "minecraft:pressure_plates": [ + "minecraft:acacia_pressure_plate", + "minecraft:birch_pressure_plate", + "minecraft:crimson_pressure_plate", + "minecraft:dark_oak_pressure_plate", + "minecraft:heavy_weighted_pressure_plate", + "minecraft:jungle_pressure_plate", + "minecraft:light_weighted_pressure_plate", + "minecraft:oak_pressure_plate", + "minecraft:polished_blackstone_pressure_plate", + "minecraft:spruce_pressure_plate", + "minecraft:stone_pressure_plate", + "minecraft:warped_pressure_plate" + ], + "minecraft:prevent_mob_spawning_inside": [ + "minecraft:activator_rail", + "minecraft:detector_rail", + "minecraft:powered_rail", + "minecraft:rail" + ], + "minecraft:rails": [ + "minecraft:activator_rail", + "minecraft:detector_rail", + "minecraft:powered_rail", + "minecraft:rail" + ], + "minecraft:sand": [ + "minecraft:red_sand", + "minecraft:sand" + ], + "minecraft:saplings": [ + "minecraft:acacia_sapling", + "minecraft:birch_sapling", + "minecraft:dark_oak_sapling", + "minecraft:jungle_sapling", + "minecraft:oak_sapling", + "minecraft:spruce_sapling" + ], + "minecraft:shulker_boxes": [ + "minecraft:black_shulker_box", + "minecraft:blue_shulker_box", + "minecraft:brown_shulker_box", + "minecraft:cyan_shulker_box", + "minecraft:gray_shulker_box", + "minecraft:green_shulker_box", + "minecraft:light_blue_shulker_box", + "minecraft:light_gray_shulker_box", + "minecraft:lime_shulker_box", + "minecraft:magenta_shulker_box", + "minecraft:orange_shulker_box", + "minecraft:pink_shulker_box", + "minecraft:purple_shulker_box", + "minecraft:red_shulker_box", + "minecraft:shulker_box", + "minecraft:white_shulker_box", + "minecraft:yellow_shulker_box" + ], + "minecraft:signs": [ + "minecraft:acacia_sign", + "minecraft:acacia_wall_sign", + "minecraft:birch_sign", + "minecraft:birch_wall_sign", + "minecraft:crimson_sign", + "minecraft:crimson_wall_sign", + "minecraft:dark_oak_sign", + "minecraft:dark_oak_wall_sign", + "minecraft:jungle_sign", + "minecraft:jungle_wall_sign", + "minecraft:oak_sign", + "minecraft:oak_wall_sign", + "minecraft:spruce_sign", + "minecraft:spruce_wall_sign", + "minecraft:warped_sign", + "minecraft:warped_wall_sign" + ], + "minecraft:slabs": [ + "minecraft:acacia_slab", + "minecraft:andesite_slab", + "minecraft:birch_slab", + "minecraft:blackstone_slab", + "minecraft:brick_slab", + "minecraft:cobblestone_slab", + "minecraft:crimson_slab", + "minecraft:cut_red_sandstone_slab", + "minecraft:cut_sandstone_slab", + "minecraft:dark_oak_slab", + "minecraft:dark_prismarine_slab", + "minecraft:diorite_slab", + "minecraft:end_stone_brick_slab", + "minecraft:granite_slab", + "minecraft:jungle_slab", + "minecraft:mossy_cobblestone_slab", + "minecraft:mossy_stone_brick_slab", + "minecraft:nether_brick_slab", + "minecraft:oak_slab", + "minecraft:petrified_oak_slab", + "minecraft:polished_andesite_slab", + "minecraft:polished_blackstone_brick_slab", + "minecraft:polished_blackstone_slab", + "minecraft:polished_diorite_slab", + "minecraft:polished_granite_slab", + "minecraft:prismarine_brick_slab", + "minecraft:prismarine_slab", + "minecraft:purpur_slab", + "minecraft:quartz_slab", + "minecraft:red_nether_brick_slab", + "minecraft:red_sandstone_slab", + "minecraft:sandstone_slab", + "minecraft:smooth_quartz_slab", + "minecraft:smooth_red_sandstone_slab", + "minecraft:smooth_sandstone_slab", + "minecraft:smooth_stone_slab", + "minecraft:spruce_slab", + "minecraft:stone_brick_slab", + "minecraft:stone_slab", + "minecraft:warped_slab" + ], + "minecraft:small_flowers": [ + "minecraft:allium", + "minecraft:azure_bluet", + "minecraft:blue_orchid", + "minecraft:cornflower", + "minecraft:dandelion", + "minecraft:lily_of_the_valley", + "minecraft:orange_tulip", + "minecraft:oxeye_daisy", + "minecraft:pink_tulip", + "minecraft:poppy", + "minecraft:red_tulip", + "minecraft:white_tulip", + "minecraft:wither_rose" + ], + "minecraft:soul_fire_base_blocks": [ + "minecraft:soul_sand", + "minecraft:soul_soil" + ], + "minecraft:soul_speed_blocks": [ + "minecraft:soul_sand", + "minecraft:soul_soil" + ], + "minecraft:spruce_logs": [ + "minecraft:spruce_log", + "minecraft:spruce_wood", + "minecraft:stripped_spruce_log", + "minecraft:stripped_spruce_wood" + ], + "minecraft:stairs": [ + "minecraft:acacia_stairs", + "minecraft:andesite_stairs", + "minecraft:birch_stairs", + "minecraft:blackstone_stairs", + "minecraft:brick_stairs", + "minecraft:cobblestone_stairs", + "minecraft:crimson_stairs", + "minecraft:dark_oak_stairs", + "minecraft:dark_prismarine_stairs", + "minecraft:diorite_stairs", + "minecraft:end_stone_brick_stairs", + "minecraft:granite_stairs", + "minecraft:jungle_stairs", + "minecraft:mossy_cobblestone_stairs", + "minecraft:mossy_stone_brick_stairs", + "minecraft:nether_brick_stairs", + "minecraft:oak_stairs", + "minecraft:polished_andesite_stairs", + "minecraft:polished_blackstone_brick_stairs", + "minecraft:polished_blackstone_stairs", + "minecraft:polished_diorite_stairs", + "minecraft:polished_granite_stairs", + "minecraft:prismarine_brick_stairs", + "minecraft:prismarine_stairs", + "minecraft:purpur_stairs", + "minecraft:quartz_stairs", + "minecraft:red_nether_brick_stairs", + "minecraft:red_sandstone_stairs", + "minecraft:sandstone_stairs", + "minecraft:smooth_quartz_stairs", + "minecraft:smooth_red_sandstone_stairs", + "minecraft:smooth_sandstone_stairs", + "minecraft:spruce_stairs", + "minecraft:stone_brick_stairs", + "minecraft:stone_stairs", + "minecraft:warped_stairs" + ], + "minecraft:standing_signs": [ + "minecraft:acacia_sign", + "minecraft:birch_sign", + "minecraft:crimson_sign", + "minecraft:dark_oak_sign", + "minecraft:jungle_sign", + "minecraft:oak_sign", + "minecraft:spruce_sign", + "minecraft:warped_sign" + ], + "minecraft:stone_bricks": [ + "minecraft:chiseled_stone_bricks", + "minecraft:cracked_stone_bricks", + "minecraft:mossy_stone_bricks", + "minecraft:stone_bricks" + ], + "minecraft:stone_pressure_plates": [ + "minecraft:polished_blackstone_pressure_plate", + "minecraft:stone_pressure_plate" + ], + "minecraft:strider_warm_blocks": [ + "minecraft:lava" + ], + "minecraft:tall_flowers": [ + "minecraft:lilac", + "minecraft:peony", + "minecraft:rose_bush", + "minecraft:sunflower" + ], + "minecraft:trapdoors": [ + "minecraft:acacia_trapdoor", + "minecraft:birch_trapdoor", + "minecraft:crimson_trapdoor", + "minecraft:dark_oak_trapdoor", + "minecraft:iron_trapdoor", + "minecraft:jungle_trapdoor", + "minecraft:oak_trapdoor", + "minecraft:spruce_trapdoor", + "minecraft:warped_trapdoor" + ], + "minecraft:underwater_bonemeals": [ + "minecraft:brain_coral", + "minecraft:brain_coral_fan", + "minecraft:brain_coral_wall_fan", + "minecraft:bubble_coral", + "minecraft:bubble_coral_fan", + "minecraft:bubble_coral_wall_fan", + "minecraft:fire_coral", + "minecraft:fire_coral_fan", + "minecraft:fire_coral_wall_fan", + "minecraft:horn_coral", + "minecraft:horn_coral_fan", + "minecraft:horn_coral_wall_fan", + "minecraft:seagrass", + "minecraft:tube_coral", + "minecraft:tube_coral_fan", + "minecraft:tube_coral_wall_fan" + ], + "minecraft:unstable_bottom_center": [ + "minecraft:acacia_fence_gate", + "minecraft:birch_fence_gate", + "minecraft:crimson_fence_gate", + "minecraft:dark_oak_fence_gate", + "minecraft:jungle_fence_gate", + "minecraft:oak_fence_gate", + "minecraft:spruce_fence_gate", + "minecraft:warped_fence_gate" + ], + "minecraft:valid_spawn": [ + "minecraft:grass_block", + "minecraft:podzol" + ], + "minecraft:wall_corals": [ + "minecraft:brain_coral_wall_fan", + "minecraft:bubble_coral_wall_fan", + "minecraft:fire_coral_wall_fan", + "minecraft:horn_coral_wall_fan", + "minecraft:tube_coral_wall_fan" + ], + "minecraft:wall_post_override": [ + "minecraft:acacia_pressure_plate", + "minecraft:acacia_sign", + "minecraft:acacia_wall_sign", + "minecraft:birch_pressure_plate", + "minecraft:birch_sign", + "minecraft:birch_wall_sign", + "minecraft:black_banner", + "minecraft:black_wall_banner", + "minecraft:blue_banner", + "minecraft:blue_wall_banner", + "minecraft:brown_banner", + "minecraft:brown_wall_banner", + "minecraft:crimson_pressure_plate", + "minecraft:crimson_sign", + "minecraft:crimson_wall_sign", + "minecraft:cyan_banner", + "minecraft:cyan_wall_banner", + "minecraft:dark_oak_pressure_plate", + "minecraft:dark_oak_sign", + "minecraft:dark_oak_wall_sign", + "minecraft:gray_banner", + "minecraft:gray_wall_banner", + "minecraft:green_banner", + "minecraft:green_wall_banner", + "minecraft:heavy_weighted_pressure_plate", + "minecraft:jungle_pressure_plate", + "minecraft:jungle_sign", + "minecraft:jungle_wall_sign", + "minecraft:light_blue_banner", + "minecraft:light_blue_wall_banner", + "minecraft:light_gray_banner", + "minecraft:light_gray_wall_banner", + "minecraft:light_weighted_pressure_plate", + "minecraft:lime_banner", + "minecraft:lime_wall_banner", + "minecraft:magenta_banner", + "minecraft:magenta_wall_banner", + "minecraft:oak_pressure_plate", + "minecraft:oak_sign", + "minecraft:oak_wall_sign", + "minecraft:orange_banner", + "minecraft:orange_wall_banner", + "minecraft:pink_banner", + "minecraft:pink_wall_banner", + "minecraft:polished_blackstone_pressure_plate", + "minecraft:purple_banner", + "minecraft:purple_wall_banner", + "minecraft:red_banner", + "minecraft:red_wall_banner", + "minecraft:redstone_torch", + "minecraft:soul_torch", + "minecraft:spruce_pressure_plate", + "minecraft:spruce_sign", + "minecraft:spruce_wall_sign", + "minecraft:stone_pressure_plate", + "minecraft:torch", + "minecraft:tripwire", + "minecraft:warped_pressure_plate", + "minecraft:warped_sign", + "minecraft:warped_wall_sign", + "minecraft:white_banner", + "minecraft:white_wall_banner", + "minecraft:yellow_banner", + "minecraft:yellow_wall_banner" + ], + "minecraft:wall_signs": [ + "minecraft:acacia_wall_sign", + "minecraft:birch_wall_sign", + "minecraft:crimson_wall_sign", + "minecraft:dark_oak_wall_sign", + "minecraft:jungle_wall_sign", + "minecraft:oak_wall_sign", + "minecraft:spruce_wall_sign", + "minecraft:warped_wall_sign" + ], + "minecraft:walls": [ + "minecraft:andesite_wall", + "minecraft:blackstone_wall", + "minecraft:brick_wall", + "minecraft:cobblestone_wall", + "minecraft:diorite_wall", + "minecraft:end_stone_brick_wall", + "minecraft:granite_wall", + "minecraft:mossy_cobblestone_wall", + "minecraft:mossy_stone_brick_wall", + "minecraft:nether_brick_wall", + "minecraft:polished_blackstone_brick_wall", + "minecraft:polished_blackstone_wall", + "minecraft:prismarine_wall", + "minecraft:red_nether_brick_wall", + "minecraft:red_sandstone_wall", + "minecraft:sandstone_wall", + "minecraft:stone_brick_wall" + ], + "minecraft:warped_stems": [ + "minecraft:stripped_warped_hyphae", + "minecraft:stripped_warped_stem", + "minecraft:warped_hyphae", + "minecraft:warped_stem" + ], + "minecraft:wart_blocks": [ + "minecraft:nether_wart_block", + "minecraft:warped_wart_block" + ], + "minecraft:wither_immune": [ + "minecraft:barrier", + "minecraft:bedrock", + "minecraft:chain_command_block", + "minecraft:command_block", + "minecraft:end_gateway", + "minecraft:end_portal", + "minecraft:end_portal_frame", + "minecraft:jigsaw", + "minecraft:moving_piston", + "minecraft:repeating_command_block", + "minecraft:structure_block" + ], + "minecraft:wither_summon_base_blocks": [ + "minecraft:soul_sand", + "minecraft:soul_soil" + ], + "minecraft:wooden_buttons": [ + "minecraft:acacia_button", + "minecraft:birch_button", + "minecraft:crimson_button", + "minecraft:dark_oak_button", + "minecraft:jungle_button", + "minecraft:oak_button", + "minecraft:spruce_button", + "minecraft:warped_button" + ], + "minecraft:wooden_doors": [ + "minecraft:acacia_door", + "minecraft:birch_door", + "minecraft:crimson_door", + "minecraft:dark_oak_door", + "minecraft:jungle_door", + "minecraft:oak_door", + "minecraft:spruce_door", + "minecraft:warped_door" + ], + "minecraft:wooden_fences": [ + "minecraft:acacia_fence", + "minecraft:birch_fence", + "minecraft:crimson_fence", + "minecraft:dark_oak_fence", + "minecraft:jungle_fence", + "minecraft:oak_fence", + "minecraft:spruce_fence", + "minecraft:warped_fence" + ], + "minecraft:wooden_pressure_plates": [ + "minecraft:acacia_pressure_plate", + "minecraft:birch_pressure_plate", + "minecraft:crimson_pressure_plate", + "minecraft:dark_oak_pressure_plate", + "minecraft:jungle_pressure_plate", + "minecraft:oak_pressure_plate", + "minecraft:spruce_pressure_plate", + "minecraft:warped_pressure_plate" + ], + "minecraft:wooden_slabs": [ + "minecraft:acacia_slab", + "minecraft:birch_slab", + "minecraft:crimson_slab", + "minecraft:dark_oak_slab", + "minecraft:jungle_slab", + "minecraft:oak_slab", + "minecraft:spruce_slab", + "minecraft:warped_slab" + ], + "minecraft:wooden_stairs": [ + "minecraft:acacia_stairs", + "minecraft:birch_stairs", + "minecraft:crimson_stairs", + "minecraft:dark_oak_stairs", + "minecraft:jungle_stairs", + "minecraft:oak_stairs", + "minecraft:spruce_stairs", + "minecraft:warped_stairs" + ], + "minecraft:wooden_trapdoors": [ + "minecraft:acacia_trapdoor", + "minecraft:birch_trapdoor", + "minecraft:crimson_trapdoor", + "minecraft:dark_oak_trapdoor", + "minecraft:jungle_trapdoor", + "minecraft:oak_trapdoor", + "minecraft:spruce_trapdoor", + "minecraft:warped_trapdoor" + ], + "minecraft:wool": [ + "minecraft:black_wool", + "minecraft:blue_wool", + "minecraft:brown_wool", + "minecraft:cyan_wool", + "minecraft:gray_wool", + "minecraft:green_wool", + "minecraft:light_blue_wool", + "minecraft:light_gray_wool", + "minecraft:lime_wool", + "minecraft:magenta_wool", + "minecraft:orange_wool", + "minecraft:pink_wool", + "minecraft:purple_wool", + "minecraft:red_wool", + "minecraft:white_wool", + "minecraft:yellow_wool" + ] + }, + "entities": [ + "minecraft:area_effect_cloud", + "minecraft:armor_stand", + "minecraft:arrow", + "minecraft:bat", + "minecraft:bee", + "minecraft:blaze", + "minecraft:boat", + "minecraft:cat", + "minecraft:cave_spider", + "minecraft:chest_minecart", + "minecraft:chicken", + "minecraft:cod", + "minecraft:command_block_minecart", + "minecraft:cow", + "minecraft:creeper", + "minecraft:dolphin", + "minecraft:donkey", + "minecraft:dragon_fireball", + "minecraft:drowned", + "minecraft:egg", + "minecraft:elder_guardian", + "minecraft:end_crystal", + "minecraft:ender_dragon", + "minecraft:ender_pearl", + "minecraft:enderman", + "minecraft:endermite", + "minecraft:evoker", + "minecraft:evoker_fangs", + "minecraft:experience_bottle", + "minecraft:experience_orb", + "minecraft:eye_of_ender", + "minecraft:falling_block", + "minecraft:fireball", + "minecraft:firework_rocket", + "minecraft:fishing_bobber", + "minecraft:fox", + "minecraft:furnace_minecart", + "minecraft:ghast", + "minecraft:giant", + "minecraft:guardian", + "minecraft:hoglin", + "minecraft:hopper_minecart", + "minecraft:horse", + "minecraft:husk", + "minecraft:illusioner", + "minecraft:iron_golem", + "minecraft:item", + "minecraft:item_frame", + "minecraft:leash_knot", + "minecraft:lightning_bolt", + "minecraft:llama", + "minecraft:llama_spit", + "minecraft:magma_cube", + "minecraft:minecart", + "minecraft:mooshroom", + "minecraft:mule", + "minecraft:ocelot", + "minecraft:painting", + "minecraft:panda", + "minecraft:parrot", + "minecraft:phantom", + "minecraft:pig", + "minecraft:piglin", + "minecraft:piglin_brute", + "minecraft:pillager", + "minecraft:player", + "minecraft:polar_bear", + "minecraft:potion", + "minecraft:pufferfish", + "minecraft:rabbit", + "minecraft:ravager", + "minecraft:salmon", + "minecraft:sheep", + "minecraft:shulker", + "minecraft:shulker_bullet", + "minecraft:silverfish", + "minecraft:skeleton", + "minecraft:skeleton_horse", + "minecraft:slime", + "minecraft:small_fireball", + "minecraft:snow_golem", + "minecraft:snowball", + "minecraft:spawner_minecart", + "minecraft:spectral_arrow", + "minecraft:spider", + "minecraft:squid", + "minecraft:stray", + "minecraft:strider", + "minecraft:tnt", + "minecraft:tnt_minecart", + "minecraft:trader_llama", + "minecraft:trident", + "minecraft:tropical_fish", + "minecraft:turtle", + "minecraft:vex", + "minecraft:villager", + "minecraft:vindicator", + "minecraft:wandering_trader", + "minecraft:witch", + "minecraft:wither", + "minecraft:wither_skeleton", + "minecraft:wither_skull", + "minecraft:wolf", + "minecraft:zoglin", + "minecraft:zombie", + "minecraft:zombie_horse", + "minecraft:zombie_villager", + "minecraft:zombified_piglin" + ], + "entitytags": { + "minecraft:arrows": [ + "minecraft:arrow", + "minecraft:spectral_arrow" + ], + "minecraft:beehive_inhabitors": [ + "minecraft:bee" + ], + "minecraft:impact_projectiles": [ + "minecraft:arrow", + "minecraft:dragon_fireball", + "minecraft:egg", + "minecraft:fireball", + "minecraft:small_fireball", + "minecraft:snowball", + "minecraft:spectral_arrow", + "minecraft:trident", + "minecraft:wither_skull" + ], + "minecraft:raiders": [ + "minecraft:evoker", + "minecraft:illusioner", + "minecraft:pillager", + "minecraft:ravager", + "minecraft:vindicator", + "minecraft:witch" + ], + "minecraft:skeletons": [ + "minecraft:skeleton", + "minecraft:stray", + "minecraft:wither_skeleton" + ] + }, + "items": [ + "minecraft:acacia_boat", + "minecraft:acacia_button", + "minecraft:acacia_door", + "minecraft:acacia_fence", + "minecraft:acacia_fence_gate", + "minecraft:acacia_leaves", + "minecraft:acacia_log", + "minecraft:acacia_planks", + "minecraft:acacia_pressure_plate", + "minecraft:acacia_sapling", + "minecraft:acacia_sign", + "minecraft:acacia_slab", + "minecraft:acacia_stairs", + "minecraft:acacia_trapdoor", + "minecraft:acacia_wood", + "minecraft:activator_rail", + "minecraft:air", + "minecraft:allium", + "minecraft:ancient_debris", + "minecraft:andesite", + "minecraft:andesite_slab", + "minecraft:andesite_stairs", + "minecraft:andesite_wall", + "minecraft:anvil", + "minecraft:apple", + "minecraft:armor_stand", + "minecraft:arrow", + "minecraft:azure_bluet", + "minecraft:baked_potato", + "minecraft:bamboo", + "minecraft:barrel", + "minecraft:barrier", + "minecraft:basalt", + "minecraft:bat_spawn_egg", + "minecraft:beacon", + "minecraft:bedrock", + "minecraft:bee_nest", + "minecraft:bee_spawn_egg", + "minecraft:beef", + "minecraft:beehive", + "minecraft:beetroot", + "minecraft:beetroot_seeds", + "minecraft:beetroot_soup", + "minecraft:bell", + "minecraft:birch_boat", + "minecraft:birch_button", + "minecraft:birch_door", + "minecraft:birch_fence", + "minecraft:birch_fence_gate", + "minecraft:birch_leaves", + "minecraft:birch_log", + "minecraft:birch_planks", + "minecraft:birch_pressure_plate", + "minecraft:birch_sapling", + "minecraft:birch_sign", + "minecraft:birch_slab", + "minecraft:birch_stairs", + "minecraft:birch_trapdoor", + "minecraft:birch_wood", + "minecraft:black_banner", + "minecraft:black_bed", + "minecraft:black_carpet", + "minecraft:black_concrete", + "minecraft:black_concrete_powder", + "minecraft:black_dye", + "minecraft:black_glazed_terracotta", + "minecraft:black_shulker_box", + "minecraft:black_stained_glass", + "minecraft:black_stained_glass_pane", + "minecraft:black_terracotta", + "minecraft:black_wool", + "minecraft:blackstone", + "minecraft:blackstone_slab", + "minecraft:blackstone_stairs", + "minecraft:blackstone_wall", + "minecraft:blast_furnace", + "minecraft:blaze_powder", + "minecraft:blaze_rod", + "minecraft:blaze_spawn_egg", + "minecraft:blue_banner", + "minecraft:blue_bed", + "minecraft:blue_carpet", + "minecraft:blue_concrete", + "minecraft:blue_concrete_powder", + "minecraft:blue_dye", + "minecraft:blue_glazed_terracotta", + "minecraft:blue_ice", + "minecraft:blue_orchid", + "minecraft:blue_shulker_box", + "minecraft:blue_stained_glass", + "minecraft:blue_stained_glass_pane", + "minecraft:blue_terracotta", + "minecraft:blue_wool", + "minecraft:bone", + "minecraft:bone_block", + "minecraft:bone_meal", + "minecraft:book", + "minecraft:bookshelf", + "minecraft:bow", + "minecraft:bowl", + "minecraft:brain_coral", + "minecraft:brain_coral_block", + "minecraft:brain_coral_fan", + "minecraft:bread", + "minecraft:brewing_stand", + "minecraft:brick", + "minecraft:brick_slab", + "minecraft:brick_stairs", + "minecraft:brick_wall", + "minecraft:bricks", + "minecraft:brown_banner", + "minecraft:brown_bed", + "minecraft:brown_carpet", + "minecraft:brown_concrete", + "minecraft:brown_concrete_powder", + "minecraft:brown_dye", + "minecraft:brown_glazed_terracotta", + "minecraft:brown_mushroom", + "minecraft:brown_mushroom_block", + "minecraft:brown_shulker_box", + "minecraft:brown_stained_glass", + "minecraft:brown_stained_glass_pane", + "minecraft:brown_terracotta", + "minecraft:brown_wool", + "minecraft:bubble_coral", + "minecraft:bubble_coral_block", + "minecraft:bubble_coral_fan", + "minecraft:bucket", + "minecraft:cactus", + "minecraft:cake", + "minecraft:campfire", + "minecraft:carrot", + "minecraft:carrot_on_a_stick", + "minecraft:cartography_table", + "minecraft:carved_pumpkin", + "minecraft:cat_spawn_egg", + "minecraft:cauldron", + "minecraft:cave_spider_spawn_egg", + "minecraft:chain", + "minecraft:chain_command_block", + "minecraft:chainmail_boots", + "minecraft:chainmail_chestplate", + "minecraft:chainmail_helmet", + "minecraft:chainmail_leggings", + "minecraft:charcoal", + "minecraft:chest", + "minecraft:chest_minecart", + "minecraft:chicken", + "minecraft:chicken_spawn_egg", + "minecraft:chipped_anvil", + "minecraft:chiseled_nether_bricks", + "minecraft:chiseled_polished_blackstone", + "minecraft:chiseled_quartz_block", + "minecraft:chiseled_red_sandstone", + "minecraft:chiseled_sandstone", + "minecraft:chiseled_stone_bricks", + "minecraft:chorus_flower", + "minecraft:chorus_fruit", + "minecraft:chorus_plant", + "minecraft:clay", + "minecraft:clay_ball", + "minecraft:clock", + "minecraft:coal", + "minecraft:coal_block", + "minecraft:coal_ore", + "minecraft:coarse_dirt", + "minecraft:cobblestone", + "minecraft:cobblestone_slab", + "minecraft:cobblestone_stairs", + "minecraft:cobblestone_wall", + "minecraft:cobweb", + "minecraft:cocoa_beans", + "minecraft:cod", + "minecraft:cod_bucket", + "minecraft:cod_spawn_egg", + "minecraft:command_block", + "minecraft:command_block_minecart", + "minecraft:comparator", + "minecraft:compass", + "minecraft:composter", + "minecraft:conduit", + "minecraft:cooked_beef", + "minecraft:cooked_chicken", + "minecraft:cooked_cod", + "minecraft:cooked_mutton", + "minecraft:cooked_porkchop", + "minecraft:cooked_rabbit", + "minecraft:cooked_salmon", + "minecraft:cookie", + "minecraft:cornflower", + "minecraft:cow_spawn_egg", + "minecraft:cracked_nether_bricks", + "minecraft:cracked_polished_blackstone_bricks", + "minecraft:cracked_stone_bricks", + "minecraft:crafting_table", + "minecraft:creeper_banner_pattern", + "minecraft:creeper_head", + "minecraft:creeper_spawn_egg", + "minecraft:crimson_button", + "minecraft:crimson_door", + "minecraft:crimson_fence", + "minecraft:crimson_fence_gate", + "minecraft:crimson_fungus", + "minecraft:crimson_hyphae", + "minecraft:crimson_nylium", + "minecraft:crimson_planks", + "minecraft:crimson_pressure_plate", + "minecraft:crimson_roots", + "minecraft:crimson_sign", + "minecraft:crimson_slab", + "minecraft:crimson_stairs", + "minecraft:crimson_stem", + "minecraft:crimson_trapdoor", + "minecraft:crossbow", + "minecraft:crying_obsidian", + "minecraft:cut_red_sandstone", + "minecraft:cut_red_sandstone_slab", + "minecraft:cut_sandstone", + "minecraft:cut_sandstone_slab", + "minecraft:cyan_banner", + "minecraft:cyan_bed", + "minecraft:cyan_carpet", + "minecraft:cyan_concrete", + "minecraft:cyan_concrete_powder", + "minecraft:cyan_dye", + "minecraft:cyan_glazed_terracotta", + "minecraft:cyan_shulker_box", + "minecraft:cyan_stained_glass", + "minecraft:cyan_stained_glass_pane", + "minecraft:cyan_terracotta", + "minecraft:cyan_wool", + "minecraft:damaged_anvil", + "minecraft:dandelion", + "minecraft:dark_oak_boat", + "minecraft:dark_oak_button", + "minecraft:dark_oak_door", + "minecraft:dark_oak_fence", + "minecraft:dark_oak_fence_gate", + "minecraft:dark_oak_leaves", + "minecraft:dark_oak_log", + "minecraft:dark_oak_planks", + "minecraft:dark_oak_pressure_plate", + "minecraft:dark_oak_sapling", + "minecraft:dark_oak_sign", + "minecraft:dark_oak_slab", + "minecraft:dark_oak_stairs", + "minecraft:dark_oak_trapdoor", + "minecraft:dark_oak_wood", + "minecraft:dark_prismarine", + "minecraft:dark_prismarine_slab", + "minecraft:dark_prismarine_stairs", + "minecraft:daylight_detector", + "minecraft:dead_brain_coral", + "minecraft:dead_brain_coral_block", + "minecraft:dead_brain_coral_fan", + "minecraft:dead_bubble_coral", + "minecraft:dead_bubble_coral_block", + "minecraft:dead_bubble_coral_fan", + "minecraft:dead_bush", + "minecraft:dead_fire_coral", + "minecraft:dead_fire_coral_block", + "minecraft:dead_fire_coral_fan", + "minecraft:dead_horn_coral", + "minecraft:dead_horn_coral_block", + "minecraft:dead_horn_coral_fan", + "minecraft:dead_tube_coral", + "minecraft:dead_tube_coral_block", + "minecraft:dead_tube_coral_fan", + "minecraft:debug_stick", + "minecraft:detector_rail", + "minecraft:diamond", + "minecraft:diamond_axe", + "minecraft:diamond_block", + "minecraft:diamond_boots", + "minecraft:diamond_chestplate", + "minecraft:diamond_helmet", + "minecraft:diamond_hoe", + "minecraft:diamond_horse_armor", + "minecraft:diamond_leggings", + "minecraft:diamond_ore", + "minecraft:diamond_pickaxe", + "minecraft:diamond_shovel", + "minecraft:diamond_sword", + "minecraft:diorite", + "minecraft:diorite_slab", + "minecraft:diorite_stairs", + "minecraft:diorite_wall", + "minecraft:dirt", + "minecraft:dispenser", + "minecraft:dolphin_spawn_egg", + "minecraft:donkey_spawn_egg", + "minecraft:dragon_breath", + "minecraft:dragon_egg", + "minecraft:dragon_head", + "minecraft:dried_kelp", + "minecraft:dried_kelp_block", + "minecraft:dropper", + "minecraft:drowned_spawn_egg", + "minecraft:egg", + "minecraft:elder_guardian_spawn_egg", + "minecraft:elytra", + "minecraft:emerald", + "minecraft:emerald_block", + "minecraft:emerald_ore", + "minecraft:enchanted_book", + "minecraft:enchanted_golden_apple", + "minecraft:enchanting_table", + "minecraft:end_crystal", + "minecraft:end_portal_frame", + "minecraft:end_rod", + "minecraft:end_stone", + "minecraft:end_stone_brick_slab", + "minecraft:end_stone_brick_stairs", + "minecraft:end_stone_brick_wall", + "minecraft:end_stone_bricks", + "minecraft:ender_chest", + "minecraft:ender_eye", + "minecraft:ender_pearl", + "minecraft:enderman_spawn_egg", + "minecraft:endermite_spawn_egg", + "minecraft:evoker_spawn_egg", + "minecraft:experience_bottle", + "minecraft:farmland", + "minecraft:feather", + "minecraft:fermented_spider_eye", + "minecraft:fern", + "minecraft:filled_map", + "minecraft:fire_charge", + "minecraft:fire_coral", + "minecraft:fire_coral_block", + "minecraft:fire_coral_fan", + "minecraft:firework_rocket", + "minecraft:firework_star", + "minecraft:fishing_rod", + "minecraft:fletching_table", + "minecraft:flint", + "minecraft:flint_and_steel", + "minecraft:flower_banner_pattern", + "minecraft:flower_pot", + "minecraft:fox_spawn_egg", + "minecraft:furnace", + "minecraft:furnace_minecart", + "minecraft:ghast_spawn_egg", + "minecraft:ghast_tear", + "minecraft:gilded_blackstone", + "minecraft:glass", + "minecraft:glass_bottle", + "minecraft:glass_pane", + "minecraft:glistering_melon_slice", + "minecraft:globe_banner_pattern", + "minecraft:glowstone", + "minecraft:glowstone_dust", + "minecraft:gold_block", + "minecraft:gold_ingot", + "minecraft:gold_nugget", + "minecraft:gold_ore", + "minecraft:golden_apple", + "minecraft:golden_axe", + "minecraft:golden_boots", + "minecraft:golden_carrot", + "minecraft:golden_chestplate", + "minecraft:golden_helmet", + "minecraft:golden_hoe", + "minecraft:golden_horse_armor", + "minecraft:golden_leggings", + "minecraft:golden_pickaxe", + "minecraft:golden_shovel", + "minecraft:golden_sword", + "minecraft:granite", + "minecraft:granite_slab", + "minecraft:granite_stairs", + "minecraft:granite_wall", + "minecraft:grass", + "minecraft:grass_block", + "minecraft:grass_path", + "minecraft:gravel", + "minecraft:gray_banner", + "minecraft:gray_bed", + "minecraft:gray_carpet", + "minecraft:gray_concrete", + "minecraft:gray_concrete_powder", + "minecraft:gray_dye", + "minecraft:gray_glazed_terracotta", + "minecraft:gray_shulker_box", + "minecraft:gray_stained_glass", + "minecraft:gray_stained_glass_pane", + "minecraft:gray_terracotta", + "minecraft:gray_wool", + "minecraft:green_banner", + "minecraft:green_bed", + "minecraft:green_carpet", + "minecraft:green_concrete", + "minecraft:green_concrete_powder", + "minecraft:green_dye", + "minecraft:green_glazed_terracotta", + "minecraft:green_shulker_box", + "minecraft:green_stained_glass", + "minecraft:green_stained_glass_pane", + "minecraft:green_terracotta", + "minecraft:green_wool", + "minecraft:grindstone", + "minecraft:guardian_spawn_egg", + "minecraft:gunpowder", + "minecraft:hay_block", + "minecraft:heart_of_the_sea", + "minecraft:heavy_weighted_pressure_plate", + "minecraft:hoglin_spawn_egg", + "minecraft:honey_block", + "minecraft:honey_bottle", + "minecraft:honeycomb", + "minecraft:honeycomb_block", + "minecraft:hopper", + "minecraft:hopper_minecart", + "minecraft:horn_coral", + "minecraft:horn_coral_block", + "minecraft:horn_coral_fan", + "minecraft:horse_spawn_egg", + "minecraft:husk_spawn_egg", + "minecraft:ice", + "minecraft:infested_chiseled_stone_bricks", + "minecraft:infested_cobblestone", + "minecraft:infested_cracked_stone_bricks", + "minecraft:infested_mossy_stone_bricks", + "minecraft:infested_stone", + "minecraft:infested_stone_bricks", + "minecraft:ink_sac", + "minecraft:iron_axe", + "minecraft:iron_bars", + "minecraft:iron_block", + "minecraft:iron_boots", + "minecraft:iron_chestplate", + "minecraft:iron_door", + "minecraft:iron_helmet", + "minecraft:iron_hoe", + "minecraft:iron_horse_armor", + "minecraft:iron_ingot", + "minecraft:iron_leggings", + "minecraft:iron_nugget", + "minecraft:iron_ore", + "minecraft:iron_pickaxe", + "minecraft:iron_shovel", + "minecraft:iron_sword", + "minecraft:iron_trapdoor", + "minecraft:item_frame", + "minecraft:jack_o_lantern", + "minecraft:jigsaw", + "minecraft:jukebox", + "minecraft:jungle_boat", + "minecraft:jungle_button", + "minecraft:jungle_door", + "minecraft:jungle_fence", + "minecraft:jungle_fence_gate", + "minecraft:jungle_leaves", + "minecraft:jungle_log", + "minecraft:jungle_planks", + "minecraft:jungle_pressure_plate", + "minecraft:jungle_sapling", + "minecraft:jungle_sign", + "minecraft:jungle_slab", + "minecraft:jungle_stairs", + "minecraft:jungle_trapdoor", + "minecraft:jungle_wood", + "minecraft:kelp", + "minecraft:knowledge_book", + "minecraft:ladder", + "minecraft:lantern", + "minecraft:lapis_block", + "minecraft:lapis_lazuli", + "minecraft:lapis_ore", + "minecraft:large_fern", + "minecraft:lava_bucket", + "minecraft:lead", + "minecraft:leather", + "minecraft:leather_boots", + "minecraft:leather_chestplate", + "minecraft:leather_helmet", + "minecraft:leather_horse_armor", + "minecraft:leather_leggings", + "minecraft:lectern", + "minecraft:lever", + "minecraft:light_blue_banner", + "minecraft:light_blue_bed", + "minecraft:light_blue_carpet", + "minecraft:light_blue_concrete", + "minecraft:light_blue_concrete_powder", + "minecraft:light_blue_dye", + "minecraft:light_blue_glazed_terracotta", + "minecraft:light_blue_shulker_box", + "minecraft:light_blue_stained_glass", + "minecraft:light_blue_stained_glass_pane", + "minecraft:light_blue_terracotta", + "minecraft:light_blue_wool", + "minecraft:light_gray_banner", + "minecraft:light_gray_bed", + "minecraft:light_gray_carpet", + "minecraft:light_gray_concrete", + "minecraft:light_gray_concrete_powder", + "minecraft:light_gray_dye", + "minecraft:light_gray_glazed_terracotta", + "minecraft:light_gray_shulker_box", + "minecraft:light_gray_stained_glass", + "minecraft:light_gray_stained_glass_pane", + "minecraft:light_gray_terracotta", + "minecraft:light_gray_wool", + "minecraft:light_weighted_pressure_plate", + "minecraft:lilac", + "minecraft:lily_of_the_valley", + "minecraft:lily_pad", + "minecraft:lime_banner", + "minecraft:lime_bed", + "minecraft:lime_carpet", + "minecraft:lime_concrete", + "minecraft:lime_concrete_powder", + "minecraft:lime_dye", + "minecraft:lime_glazed_terracotta", + "minecraft:lime_shulker_box", + "minecraft:lime_stained_glass", + "minecraft:lime_stained_glass_pane", + "minecraft:lime_terracotta", + "minecraft:lime_wool", + "minecraft:lingering_potion", + "minecraft:llama_spawn_egg", + "minecraft:lodestone", + "minecraft:loom", + "minecraft:magenta_banner", + "minecraft:magenta_bed", + "minecraft:magenta_carpet", + "minecraft:magenta_concrete", + "minecraft:magenta_concrete_powder", + "minecraft:magenta_dye", + "minecraft:magenta_glazed_terracotta", + "minecraft:magenta_shulker_box", + "minecraft:magenta_stained_glass", + "minecraft:magenta_stained_glass_pane", + "minecraft:magenta_terracotta", + "minecraft:magenta_wool", + "minecraft:magma_block", + "minecraft:magma_cream", + "minecraft:magma_cube_spawn_egg", + "minecraft:map", + "minecraft:melon", + "minecraft:melon_seeds", + "minecraft:melon_slice", + "minecraft:milk_bucket", + "minecraft:minecart", + "minecraft:mojang_banner_pattern", + "minecraft:mooshroom_spawn_egg", + "minecraft:mossy_cobblestone", + "minecraft:mossy_cobblestone_slab", + "minecraft:mossy_cobblestone_stairs", + "minecraft:mossy_cobblestone_wall", + "minecraft:mossy_stone_brick_slab", + "minecraft:mossy_stone_brick_stairs", + "minecraft:mossy_stone_brick_wall", + "minecraft:mossy_stone_bricks", + "minecraft:mule_spawn_egg", + "minecraft:mushroom_stem", + "minecraft:mushroom_stew", + "minecraft:music_disc_11", + "minecraft:music_disc_13", + "minecraft:music_disc_blocks", + "minecraft:music_disc_cat", + "minecraft:music_disc_chirp", + "minecraft:music_disc_far", + "minecraft:music_disc_mall", + "minecraft:music_disc_mellohi", + "minecraft:music_disc_pigstep", + "minecraft:music_disc_stal", + "minecraft:music_disc_strad", + "minecraft:music_disc_wait", + "minecraft:music_disc_ward", + "minecraft:mutton", + "minecraft:mycelium", + "minecraft:name_tag", + "minecraft:nautilus_shell", + "minecraft:nether_brick", + "minecraft:nether_brick_fence", + "minecraft:nether_brick_slab", + "minecraft:nether_brick_stairs", + "minecraft:nether_brick_wall", + "minecraft:nether_bricks", + "minecraft:nether_gold_ore", + "minecraft:nether_quartz_ore", + "minecraft:nether_sprouts", + "minecraft:nether_star", + "minecraft:nether_wart", + "minecraft:nether_wart_block", + "minecraft:netherite_axe", + "minecraft:netherite_block", + "minecraft:netherite_boots", + "minecraft:netherite_chestplate", + "minecraft:netherite_helmet", + "minecraft:netherite_hoe", + "minecraft:netherite_ingot", + "minecraft:netherite_leggings", + "minecraft:netherite_pickaxe", + "minecraft:netherite_scrap", + "minecraft:netherite_shovel", + "minecraft:netherite_sword", + "minecraft:netherrack", + "minecraft:note_block", + "minecraft:oak_boat", + "minecraft:oak_button", + "minecraft:oak_door", + "minecraft:oak_fence", + "minecraft:oak_fence_gate", + "minecraft:oak_leaves", + "minecraft:oak_log", + "minecraft:oak_planks", + "minecraft:oak_pressure_plate", + "minecraft:oak_sapling", + "minecraft:oak_sign", + "minecraft:oak_slab", + "minecraft:oak_stairs", + "minecraft:oak_trapdoor", + "minecraft:oak_wood", + "minecraft:observer", + "minecraft:obsidian", + "minecraft:ocelot_spawn_egg", + "minecraft:orange_banner", + "minecraft:orange_bed", + "minecraft:orange_carpet", + "minecraft:orange_concrete", + "minecraft:orange_concrete_powder", + "minecraft:orange_dye", + "minecraft:orange_glazed_terracotta", + "minecraft:orange_shulker_box", + "minecraft:orange_stained_glass", + "minecraft:orange_stained_glass_pane", + "minecraft:orange_terracotta", + "minecraft:orange_tulip", + "minecraft:orange_wool", + "minecraft:oxeye_daisy", + "minecraft:packed_ice", + "minecraft:painting", + "minecraft:panda_spawn_egg", + "minecraft:paper", + "minecraft:parrot_spawn_egg", + "minecraft:peony", + "minecraft:petrified_oak_slab", + "minecraft:phantom_membrane", + "minecraft:phantom_spawn_egg", + "minecraft:pig_spawn_egg", + "minecraft:piglin_banner_pattern", + "minecraft:piglin_brute_spawn_egg", + "minecraft:piglin_spawn_egg", + "minecraft:pillager_spawn_egg", + "minecraft:pink_banner", + "minecraft:pink_bed", + "minecraft:pink_carpet", + "minecraft:pink_concrete", + "minecraft:pink_concrete_powder", + "minecraft:pink_dye", + "minecraft:pink_glazed_terracotta", + "minecraft:pink_shulker_box", + "minecraft:pink_stained_glass", + "minecraft:pink_stained_glass_pane", + "minecraft:pink_terracotta", + "minecraft:pink_tulip", + "minecraft:pink_wool", + "minecraft:piston", + "minecraft:player_head", + "minecraft:podzol", + "minecraft:poisonous_potato", + "minecraft:polar_bear_spawn_egg", + "minecraft:polished_andesite", + "minecraft:polished_andesite_slab", + "minecraft:polished_andesite_stairs", + "minecraft:polished_basalt", + "minecraft:polished_blackstone", + "minecraft:polished_blackstone_brick_slab", + "minecraft:polished_blackstone_brick_stairs", + "minecraft:polished_blackstone_brick_wall", + "minecraft:polished_blackstone_bricks", + "minecraft:polished_blackstone_button", + "minecraft:polished_blackstone_pressure_plate", + "minecraft:polished_blackstone_slab", + "minecraft:polished_blackstone_stairs", + "minecraft:polished_blackstone_wall", + "minecraft:polished_diorite", + "minecraft:polished_diorite_slab", + "minecraft:polished_diorite_stairs", + "minecraft:polished_granite", + "minecraft:polished_granite_slab", + "minecraft:polished_granite_stairs", + "minecraft:popped_chorus_fruit", + "minecraft:poppy", + "minecraft:porkchop", + "minecraft:potato", + "minecraft:potion", + "minecraft:powered_rail", + "minecraft:prismarine", + "minecraft:prismarine_brick_slab", + "minecraft:prismarine_brick_stairs", + "minecraft:prismarine_bricks", + "minecraft:prismarine_crystals", + "minecraft:prismarine_shard", + "minecraft:prismarine_slab", + "minecraft:prismarine_stairs", + "minecraft:prismarine_wall", + "minecraft:pufferfish", + "minecraft:pufferfish_bucket", + "minecraft:pufferfish_spawn_egg", + "minecraft:pumpkin", + "minecraft:pumpkin_pie", + "minecraft:pumpkin_seeds", + "minecraft:purple_banner", + "minecraft:purple_bed", + "minecraft:purple_carpet", + "minecraft:purple_concrete", + "minecraft:purple_concrete_powder", + "minecraft:purple_dye", + "minecraft:purple_glazed_terracotta", + "minecraft:purple_shulker_box", + "minecraft:purple_stained_glass", + "minecraft:purple_stained_glass_pane", + "minecraft:purple_terracotta", + "minecraft:purple_wool", + "minecraft:purpur_block", + "minecraft:purpur_pillar", + "minecraft:purpur_slab", + "minecraft:purpur_stairs", + "minecraft:quartz", + "minecraft:quartz_block", + "minecraft:quartz_bricks", + "minecraft:quartz_pillar", + "minecraft:quartz_slab", + "minecraft:quartz_stairs", + "minecraft:rabbit", + "minecraft:rabbit_foot", + "minecraft:rabbit_hide", + "minecraft:rabbit_spawn_egg", + "minecraft:rabbit_stew", + "minecraft:rail", + "minecraft:ravager_spawn_egg", + "minecraft:red_banner", + "minecraft:red_bed", + "minecraft:red_carpet", + "minecraft:red_concrete", + "minecraft:red_concrete_powder", + "minecraft:red_dye", + "minecraft:red_glazed_terracotta", + "minecraft:red_mushroom", + "minecraft:red_mushroom_block", + "minecraft:red_nether_brick_slab", + "minecraft:red_nether_brick_stairs", + "minecraft:red_nether_brick_wall", + "minecraft:red_nether_bricks", + "minecraft:red_sand", + "minecraft:red_sandstone", + "minecraft:red_sandstone_slab", + "minecraft:red_sandstone_stairs", + "minecraft:red_sandstone_wall", + "minecraft:red_shulker_box", + "minecraft:red_stained_glass", + "minecraft:red_stained_glass_pane", + "minecraft:red_terracotta", + "minecraft:red_tulip", + "minecraft:red_wool", + "minecraft:redstone", + "minecraft:redstone_block", + "minecraft:redstone_lamp", + "minecraft:redstone_ore", + "minecraft:redstone_torch", + "minecraft:repeater", + "minecraft:repeating_command_block", + "minecraft:respawn_anchor", + "minecraft:rose_bush", + "minecraft:rotten_flesh", + "minecraft:saddle", + "minecraft:salmon", + "minecraft:salmon_bucket", + "minecraft:salmon_spawn_egg", + "minecraft:sand", + "minecraft:sandstone", + "minecraft:sandstone_slab", + "minecraft:sandstone_stairs", + "minecraft:sandstone_wall", + "minecraft:scaffolding", + "minecraft:scute", + "minecraft:sea_lantern", + "minecraft:sea_pickle", + "minecraft:seagrass", + "minecraft:shears", + "minecraft:sheep_spawn_egg", + "minecraft:shield", + "minecraft:shroomlight", + "minecraft:shulker_box", + "minecraft:shulker_shell", + "minecraft:shulker_spawn_egg", + "minecraft:silverfish_spawn_egg", + "minecraft:skeleton_horse_spawn_egg", + "minecraft:skeleton_skull", + "minecraft:skeleton_spawn_egg", + "minecraft:skull_banner_pattern", + "minecraft:slime_ball", + "minecraft:slime_block", + "minecraft:slime_spawn_egg", + "minecraft:smithing_table", + "minecraft:smoker", + "minecraft:smooth_quartz", + "minecraft:smooth_quartz_slab", + "minecraft:smooth_quartz_stairs", + "minecraft:smooth_red_sandstone", + "minecraft:smooth_red_sandstone_slab", + "minecraft:smooth_red_sandstone_stairs", + "minecraft:smooth_sandstone", + "minecraft:smooth_sandstone_slab", + "minecraft:smooth_sandstone_stairs", + "minecraft:smooth_stone", + "minecraft:smooth_stone_slab", + "minecraft:snow", + "minecraft:snow_block", + "minecraft:snowball", + "minecraft:soul_campfire", + "minecraft:soul_lantern", + "minecraft:soul_sand", + "minecraft:soul_soil", + "minecraft:soul_torch", + "minecraft:spawner", + "minecraft:spectral_arrow", + "minecraft:spider_eye", + "minecraft:spider_spawn_egg", + "minecraft:splash_potion", + "minecraft:sponge", + "minecraft:spruce_boat", + "minecraft:spruce_button", + "minecraft:spruce_door", + "minecraft:spruce_fence", + "minecraft:spruce_fence_gate", + "minecraft:spruce_leaves", + "minecraft:spruce_log", + "minecraft:spruce_planks", + "minecraft:spruce_pressure_plate", + "minecraft:spruce_sapling", + "minecraft:spruce_sign", + "minecraft:spruce_slab", + "minecraft:spruce_stairs", + "minecraft:spruce_trapdoor", + "minecraft:spruce_wood", + "minecraft:squid_spawn_egg", + "minecraft:stick", + "minecraft:sticky_piston", + "minecraft:stone", + "minecraft:stone_axe", + "minecraft:stone_brick_slab", + "minecraft:stone_brick_stairs", + "minecraft:stone_brick_wall", + "minecraft:stone_bricks", + "minecraft:stone_button", + "minecraft:stone_hoe", + "minecraft:stone_pickaxe", + "minecraft:stone_pressure_plate", + "minecraft:stone_shovel", + "minecraft:stone_slab", + "minecraft:stone_stairs", + "minecraft:stone_sword", + "minecraft:stonecutter", + "minecraft:stray_spawn_egg", + "minecraft:strider_spawn_egg", + "minecraft:string", + "minecraft:stripped_acacia_log", + "minecraft:stripped_acacia_wood", + "minecraft:stripped_birch_log", + "minecraft:stripped_birch_wood", + "minecraft:stripped_crimson_hyphae", + "minecraft:stripped_crimson_stem", + "minecraft:stripped_dark_oak_log", + "minecraft:stripped_dark_oak_wood", + "minecraft:stripped_jungle_log", + "minecraft:stripped_jungle_wood", + "minecraft:stripped_oak_log", + "minecraft:stripped_oak_wood", + "minecraft:stripped_spruce_log", + "minecraft:stripped_spruce_wood", + "minecraft:stripped_warped_hyphae", + "minecraft:stripped_warped_stem", + "minecraft:structure_block", + "minecraft:structure_void", + "minecraft:sugar", + "minecraft:sugar_cane", + "minecraft:sunflower", + "minecraft:suspicious_stew", + "minecraft:sweet_berries", + "minecraft:tall_grass", + "minecraft:target", + "minecraft:terracotta", + "minecraft:tipped_arrow", + "minecraft:tnt", + "minecraft:tnt_minecart", + "minecraft:torch", + "minecraft:totem_of_undying", + "minecraft:trader_llama_spawn_egg", + "minecraft:trapped_chest", + "minecraft:trident", + "minecraft:tripwire_hook", + "minecraft:tropical_fish", + "minecraft:tropical_fish_bucket", + "minecraft:tropical_fish_spawn_egg", + "minecraft:tube_coral", + "minecraft:tube_coral_block", + "minecraft:tube_coral_fan", + "minecraft:turtle_egg", + "minecraft:turtle_helmet", + "minecraft:turtle_spawn_egg", + "minecraft:twisting_vines", + "minecraft:vex_spawn_egg", + "minecraft:villager_spawn_egg", + "minecraft:vindicator_spawn_egg", + "minecraft:vine", + "minecraft:wandering_trader_spawn_egg", + "minecraft:warped_button", + "minecraft:warped_door", + "minecraft:warped_fence", + "minecraft:warped_fence_gate", + "minecraft:warped_fungus", + "minecraft:warped_fungus_on_a_stick", + "minecraft:warped_hyphae", + "minecraft:warped_nylium", + "minecraft:warped_planks", + "minecraft:warped_pressure_plate", + "minecraft:warped_roots", + "minecraft:warped_sign", + "minecraft:warped_slab", + "minecraft:warped_stairs", + "minecraft:warped_stem", + "minecraft:warped_trapdoor", + "minecraft:warped_wart_block", + "minecraft:water_bucket", + "minecraft:weeping_vines", + "minecraft:wet_sponge", + "minecraft:wheat", + "minecraft:wheat_seeds", + "minecraft:white_banner", + "minecraft:white_bed", + "minecraft:white_carpet", + "minecraft:white_concrete", + "minecraft:white_concrete_powder", + "minecraft:white_dye", + "minecraft:white_glazed_terracotta", + "minecraft:white_shulker_box", + "minecraft:white_stained_glass", + "minecraft:white_stained_glass_pane", + "minecraft:white_terracotta", + "minecraft:white_tulip", + "minecraft:white_wool", + "minecraft:witch_spawn_egg", + "minecraft:wither_rose", + "minecraft:wither_skeleton_skull", + "minecraft:wither_skeleton_spawn_egg", + "minecraft:wolf_spawn_egg", + "minecraft:wooden_axe", + "minecraft:wooden_hoe", + "minecraft:wooden_pickaxe", + "minecraft:wooden_shovel", + "minecraft:wooden_sword", + "minecraft:writable_book", + "minecraft:written_book", + "minecraft:yellow_banner", + "minecraft:yellow_bed", + "minecraft:yellow_carpet", + "minecraft:yellow_concrete", + "minecraft:yellow_concrete_powder", + "minecraft:yellow_dye", + "minecraft:yellow_glazed_terracotta", + "minecraft:yellow_shulker_box", + "minecraft:yellow_stained_glass", + "minecraft:yellow_stained_glass_pane", + "minecraft:yellow_terracotta", + "minecraft:yellow_wool", + "minecraft:zoglin_spawn_egg", + "minecraft:zombie_head", + "minecraft:zombie_horse_spawn_egg", + "minecraft:zombie_spawn_egg", + "minecraft:zombie_villager_spawn_egg", + "minecraft:zombified_piglin_spawn_egg" + ], + "itemtags": { + "minecraft:acacia_logs": [ + "minecraft:acacia_log", + "minecraft:acacia_wood", + "minecraft:stripped_acacia_log", + "minecraft:stripped_acacia_wood" + ], + "minecraft:anvil": [ + "minecraft:anvil", + "minecraft:chipped_anvil", + "minecraft:damaged_anvil" + ], + "minecraft:arrows": [ + "minecraft:arrow", + "minecraft:spectral_arrow", + "minecraft:tipped_arrow" + ], + "minecraft:banners": [ + "minecraft:black_banner", + "minecraft:blue_banner", + "minecraft:brown_banner", + "minecraft:cyan_banner", + "minecraft:gray_banner", + "minecraft:green_banner", + "minecraft:light_blue_banner", + "minecraft:light_gray_banner", + "minecraft:lime_banner", + "minecraft:magenta_banner", + "minecraft:orange_banner", + "minecraft:pink_banner", + "minecraft:purple_banner", + "minecraft:red_banner", + "minecraft:white_banner", + "minecraft:yellow_banner" + ], + "minecraft:beacon_payment_items": [ + "minecraft:diamond", + "minecraft:emerald", + "minecraft:gold_ingot", + "minecraft:iron_ingot", + "minecraft:netherite_ingot" + ], + "minecraft:beds": [ + "minecraft:black_bed", + "minecraft:blue_bed", + "minecraft:brown_bed", + "minecraft:cyan_bed", + "minecraft:gray_bed", + "minecraft:green_bed", + "minecraft:light_blue_bed", + "minecraft:light_gray_bed", + "minecraft:lime_bed", + "minecraft:magenta_bed", + "minecraft:orange_bed", + "minecraft:pink_bed", + "minecraft:purple_bed", + "minecraft:red_bed", + "minecraft:white_bed", + "minecraft:yellow_bed" + ], + "minecraft:birch_logs": [ + "minecraft:birch_log", + "minecraft:birch_wood", + "minecraft:stripped_birch_log", + "minecraft:stripped_birch_wood" + ], + "minecraft:boats": [ + "minecraft:acacia_boat", + "minecraft:birch_boat", + "minecraft:dark_oak_boat", + "minecraft:jungle_boat", + "minecraft:oak_boat", + "minecraft:spruce_boat" + ], + "minecraft:buttons": [ + "minecraft:acacia_button", + "minecraft:birch_button", + "minecraft:crimson_button", + "minecraft:dark_oak_button", + "minecraft:jungle_button", + "minecraft:oak_button", + "minecraft:polished_blackstone_button", + "minecraft:spruce_button", + "minecraft:stone_button", + "minecraft:warped_button" + ], + "minecraft:carpets": [ + "minecraft:black_carpet", + "minecraft:blue_carpet", + "minecraft:brown_carpet", + "minecraft:cyan_carpet", + "minecraft:gray_carpet", + "minecraft:green_carpet", + "minecraft:light_blue_carpet", + "minecraft:light_gray_carpet", + "minecraft:lime_carpet", + "minecraft:magenta_carpet", + "minecraft:orange_carpet", + "minecraft:pink_carpet", + "minecraft:purple_carpet", + "minecraft:red_carpet", + "minecraft:white_carpet", + "minecraft:yellow_carpet" + ], + "minecraft:coals": [ + "minecraft:charcoal", + "minecraft:coal" + ], + "minecraft:creeper_drop_music_discs": [ + "minecraft:music_disc_11", + "minecraft:music_disc_13", + "minecraft:music_disc_blocks", + "minecraft:music_disc_cat", + "minecraft:music_disc_chirp", + "minecraft:music_disc_far", + "minecraft:music_disc_mall", + "minecraft:music_disc_mellohi", + "minecraft:music_disc_stal", + "minecraft:music_disc_strad", + "minecraft:music_disc_wait", + "minecraft:music_disc_ward" + ], + "minecraft:crimson_stems": [ + "minecraft:crimson_hyphae", + "minecraft:crimson_stem", + "minecraft:stripped_crimson_hyphae", + "minecraft:stripped_crimson_stem" + ], + "minecraft:dark_oak_logs": [ + "minecraft:dark_oak_log", + "minecraft:dark_oak_wood", + "minecraft:stripped_dark_oak_log", + "minecraft:stripped_dark_oak_wood" + ], + "minecraft:doors": [ + "minecraft:acacia_door", + "minecraft:birch_door", + "minecraft:crimson_door", + "minecraft:dark_oak_door", + "minecraft:iron_door", + "minecraft:jungle_door", + "minecraft:oak_door", + "minecraft:spruce_door", + "minecraft:warped_door" + ], + "minecraft:fences": [ + "minecraft:acacia_fence", + "minecraft:birch_fence", + "minecraft:crimson_fence", + "minecraft:dark_oak_fence", + "minecraft:jungle_fence", + "minecraft:nether_brick_fence", + "minecraft:oak_fence", + "minecraft:spruce_fence", + "minecraft:warped_fence" + ], + "minecraft:fishes": [ + "minecraft:cod", + "minecraft:cooked_cod", + "minecraft:cooked_salmon", + "minecraft:pufferfish", + "minecraft:salmon", + "minecraft:tropical_fish" + ], + "minecraft:flowers": [ + "minecraft:allium", + "minecraft:azure_bluet", + "minecraft:blue_orchid", + "minecraft:cornflower", + "minecraft:dandelion", + "minecraft:lilac", + "minecraft:lily_of_the_valley", + "minecraft:orange_tulip", + "minecraft:oxeye_daisy", + "minecraft:peony", + "minecraft:pink_tulip", + "minecraft:poppy", + "minecraft:red_tulip", + "minecraft:rose_bush", + "minecraft:sunflower", + "minecraft:white_tulip", + "minecraft:wither_rose" + ], + "minecraft:gold_ores": [ + "minecraft:gold_ore", + "minecraft:nether_gold_ore" + ], + "minecraft:jungle_logs": [ + "minecraft:jungle_log", + "minecraft:jungle_wood", + "minecraft:stripped_jungle_log", + "minecraft:stripped_jungle_wood" + ], + "minecraft:leaves": [ + "minecraft:acacia_leaves", + "minecraft:birch_leaves", + "minecraft:dark_oak_leaves", + "minecraft:jungle_leaves", + "minecraft:oak_leaves", + "minecraft:spruce_leaves" + ], + "minecraft:lectern_books": [ + "minecraft:writable_book", + "minecraft:written_book" + ], + "minecraft:logs": [ + "minecraft:acacia_log", + "minecraft:acacia_wood", + "minecraft:birch_log", + "minecraft:birch_wood", + "minecraft:crimson_hyphae", + "minecraft:crimson_stem", + "minecraft:dark_oak_log", + "minecraft:dark_oak_wood", + "minecraft:jungle_log", + "minecraft:jungle_wood", + "minecraft:oak_log", + "minecraft:oak_wood", + "minecraft:spruce_log", + "minecraft:spruce_wood", + "minecraft:stripped_acacia_log", + "minecraft:stripped_acacia_wood", + "minecraft:stripped_birch_log", + "minecraft:stripped_birch_wood", + "minecraft:stripped_crimson_hyphae", + "minecraft:stripped_crimson_stem", + "minecraft:stripped_dark_oak_log", + "minecraft:stripped_dark_oak_wood", + "minecraft:stripped_jungle_log", + "minecraft:stripped_jungle_wood", + "minecraft:stripped_oak_log", + "minecraft:stripped_oak_wood", + "minecraft:stripped_spruce_log", + "minecraft:stripped_spruce_wood", + "minecraft:stripped_warped_hyphae", + "minecraft:stripped_warped_stem", + "minecraft:warped_hyphae", + "minecraft:warped_stem" + ], + "minecraft:logs_that_burn": [ + "minecraft:acacia_log", + "minecraft:acacia_wood", + "minecraft:birch_log", + "minecraft:birch_wood", + "minecraft:dark_oak_log", + "minecraft:dark_oak_wood", + "minecraft:jungle_log", + "minecraft:jungle_wood", + "minecraft:oak_log", + "minecraft:oak_wood", + "minecraft:spruce_log", + "minecraft:spruce_wood", + "minecraft:stripped_acacia_log", + "minecraft:stripped_acacia_wood", + "minecraft:stripped_birch_log", + "minecraft:stripped_birch_wood", + "minecraft:stripped_dark_oak_log", + "minecraft:stripped_dark_oak_wood", + "minecraft:stripped_jungle_log", + "minecraft:stripped_jungle_wood", + "minecraft:stripped_oak_log", + "minecraft:stripped_oak_wood", + "minecraft:stripped_spruce_log", + "minecraft:stripped_spruce_wood" + ], + "minecraft:music_discs": [ + "minecraft:music_disc_11", + "minecraft:music_disc_13", + "minecraft:music_disc_blocks", + "minecraft:music_disc_cat", + "minecraft:music_disc_chirp", + "minecraft:music_disc_far", + "minecraft:music_disc_mall", + "minecraft:music_disc_mellohi", + "minecraft:music_disc_pigstep", + "minecraft:music_disc_stal", + "minecraft:music_disc_strad", + "minecraft:music_disc_wait", + "minecraft:music_disc_ward" + ], + "minecraft:non_flammable_wood": [ + "minecraft:crimson_button", + "minecraft:crimson_door", + "minecraft:crimson_fence", + "minecraft:crimson_fence_gate", + "minecraft:crimson_hyphae", + "minecraft:crimson_planks", + "minecraft:crimson_pressure_plate", + "minecraft:crimson_sign", + "minecraft:crimson_slab", + "minecraft:crimson_stairs", + "minecraft:crimson_stem", + "minecraft:crimson_trapdoor", + "minecraft:stripped_crimson_hyphae", + "minecraft:stripped_crimson_stem", + "minecraft:stripped_warped_hyphae", + "minecraft:stripped_warped_stem", + "minecraft:warped_button", + "minecraft:warped_door", + "minecraft:warped_fence", + "minecraft:warped_fence_gate", + "minecraft:warped_hyphae", + "minecraft:warped_planks", + "minecraft:warped_pressure_plate", + "minecraft:warped_sign", + "minecraft:warped_slab", + "minecraft:warped_stairs", + "minecraft:warped_stem", + "minecraft:warped_trapdoor" + ], + "minecraft:oak_logs": [ + "minecraft:oak_log", + "minecraft:oak_wood", + "minecraft:stripped_oak_log", + "minecraft:stripped_oak_wood" + ], + "minecraft:piglin_loved": [ + "minecraft:bell", + "minecraft:clock", + "minecraft:enchanted_golden_apple", + "minecraft:gilded_blackstone", + "minecraft:glistering_melon_slice", + "minecraft:gold_block", + "minecraft:gold_ingot", + "minecraft:gold_ore", + "minecraft:golden_apple", + "minecraft:golden_axe", + "minecraft:golden_boots", + "minecraft:golden_carrot", + "minecraft:golden_chestplate", + "minecraft:golden_helmet", + "minecraft:golden_hoe", + "minecraft:golden_horse_armor", + "minecraft:golden_leggings", + "minecraft:golden_pickaxe", + "minecraft:golden_shovel", + "minecraft:golden_sword", + "minecraft:light_weighted_pressure_plate", + "minecraft:nether_gold_ore" + ], + "minecraft:piglin_repellents": [ + "minecraft:soul_campfire", + "minecraft:soul_lantern", + "minecraft:soul_torch" + ], + "minecraft:planks": [ + "minecraft:acacia_planks", + "minecraft:birch_planks", + "minecraft:crimson_planks", + "minecraft:dark_oak_planks", + "minecraft:jungle_planks", + "minecraft:oak_planks", + "minecraft:spruce_planks", + "minecraft:warped_planks" + ], + "minecraft:rails": [ + "minecraft:activator_rail", + "minecraft:detector_rail", + "minecraft:powered_rail", + "minecraft:rail" + ], + "minecraft:sand": [ + "minecraft:red_sand", + "minecraft:sand" + ], + "minecraft:saplings": [ + "minecraft:acacia_sapling", + "minecraft:birch_sapling", + "minecraft:dark_oak_sapling", + "minecraft:jungle_sapling", + "minecraft:oak_sapling", + "minecraft:spruce_sapling" + ], + "minecraft:signs": [ + "minecraft:acacia_sign", + "minecraft:birch_sign", + "minecraft:crimson_sign", + "minecraft:dark_oak_sign", + "minecraft:jungle_sign", + "minecraft:oak_sign", + "minecraft:spruce_sign", + "minecraft:warped_sign" + ], + "minecraft:slabs": [ + "minecraft:acacia_slab", + "minecraft:andesite_slab", + "minecraft:birch_slab", + "minecraft:blackstone_slab", + "minecraft:brick_slab", + "minecraft:cobblestone_slab", + "minecraft:crimson_slab", + "minecraft:cut_red_sandstone_slab", + "minecraft:cut_sandstone_slab", + "minecraft:dark_oak_slab", + "minecraft:dark_prismarine_slab", + "minecraft:diorite_slab", + "minecraft:end_stone_brick_slab", + "minecraft:granite_slab", + "minecraft:jungle_slab", + "minecraft:mossy_cobblestone_slab", + "minecraft:mossy_stone_brick_slab", + "minecraft:nether_brick_slab", + "minecraft:oak_slab", + "minecraft:petrified_oak_slab", + "minecraft:polished_andesite_slab", + "minecraft:polished_blackstone_brick_slab", + "minecraft:polished_blackstone_slab", + "minecraft:polished_diorite_slab", + "minecraft:polished_granite_slab", + "minecraft:prismarine_brick_slab", + "minecraft:prismarine_slab", + "minecraft:purpur_slab", + "minecraft:quartz_slab", + "minecraft:red_nether_brick_slab", + "minecraft:red_sandstone_slab", + "minecraft:sandstone_slab", + "minecraft:smooth_quartz_slab", + "minecraft:smooth_red_sandstone_slab", + "minecraft:smooth_sandstone_slab", + "minecraft:smooth_stone_slab", + "minecraft:spruce_slab", + "minecraft:stone_brick_slab", + "minecraft:stone_slab", + "minecraft:warped_slab" + ], + "minecraft:small_flowers": [ + "minecraft:allium", + "minecraft:azure_bluet", + "minecraft:blue_orchid", + "minecraft:cornflower", + "minecraft:dandelion", + "minecraft:lily_of_the_valley", + "minecraft:orange_tulip", + "minecraft:oxeye_daisy", + "minecraft:pink_tulip", + "minecraft:poppy", + "minecraft:red_tulip", + "minecraft:white_tulip", + "minecraft:wither_rose" + ], + "minecraft:soul_fire_base_blocks": [ + "minecraft:soul_sand", + "minecraft:soul_soil" + ], + "minecraft:spruce_logs": [ + "minecraft:spruce_log", + "minecraft:spruce_wood", + "minecraft:stripped_spruce_log", + "minecraft:stripped_spruce_wood" + ], + "minecraft:stairs": [ + "minecraft:acacia_stairs", + "minecraft:andesite_stairs", + "minecraft:birch_stairs", + "minecraft:blackstone_stairs", + "minecraft:brick_stairs", + "minecraft:cobblestone_stairs", + "minecraft:crimson_stairs", + "minecraft:dark_oak_stairs", + "minecraft:dark_prismarine_stairs", + "minecraft:diorite_stairs", + "minecraft:end_stone_brick_stairs", + "minecraft:granite_stairs", + "minecraft:jungle_stairs", + "minecraft:mossy_cobblestone_stairs", + "minecraft:mossy_stone_brick_stairs", + "minecraft:nether_brick_stairs", + "minecraft:oak_stairs", + "minecraft:polished_andesite_stairs", + "minecraft:polished_blackstone_brick_stairs", + "minecraft:polished_blackstone_stairs", + "minecraft:polished_diorite_stairs", + "minecraft:polished_granite_stairs", + "minecraft:prismarine_brick_stairs", + "minecraft:prismarine_stairs", + "minecraft:purpur_stairs", + "minecraft:quartz_stairs", + "minecraft:red_nether_brick_stairs", + "minecraft:red_sandstone_stairs", + "minecraft:sandstone_stairs", + "minecraft:smooth_quartz_stairs", + "minecraft:smooth_red_sandstone_stairs", + "minecraft:smooth_sandstone_stairs", + "minecraft:spruce_stairs", + "minecraft:stone_brick_stairs", + "minecraft:stone_stairs", + "minecraft:warped_stairs" + ], + "minecraft:stone_bricks": [ + "minecraft:chiseled_stone_bricks", + "minecraft:cracked_stone_bricks", + "minecraft:mossy_stone_bricks", + "minecraft:stone_bricks" + ], + "minecraft:stone_crafting_materials": [ + "minecraft:blackstone", + "minecraft:cobblestone" + ], + "minecraft:stone_tool_materials": [ + "minecraft:blackstone", + "minecraft:cobblestone" + ], + "minecraft:tall_flowers": [ + "minecraft:lilac", + "minecraft:peony", + "minecraft:rose_bush", + "minecraft:sunflower" + ], + "minecraft:trapdoors": [ + "minecraft:acacia_trapdoor", + "minecraft:birch_trapdoor", + "minecraft:crimson_trapdoor", + "minecraft:dark_oak_trapdoor", + "minecraft:iron_trapdoor", + "minecraft:jungle_trapdoor", + "minecraft:oak_trapdoor", + "minecraft:spruce_trapdoor", + "minecraft:warped_trapdoor" + ], + "minecraft:walls": [ + "minecraft:andesite_wall", + "minecraft:blackstone_wall", + "minecraft:brick_wall", + "minecraft:cobblestone_wall", + "minecraft:diorite_wall", + "minecraft:end_stone_brick_wall", + "minecraft:granite_wall", + "minecraft:mossy_cobblestone_wall", + "minecraft:mossy_stone_brick_wall", + "minecraft:nether_brick_wall", + "minecraft:polished_blackstone_brick_wall", + "minecraft:polished_blackstone_wall", + "minecraft:prismarine_wall", + "minecraft:red_nether_brick_wall", + "minecraft:red_sandstone_wall", + "minecraft:sandstone_wall", + "minecraft:stone_brick_wall" + ], + "minecraft:warped_stems": [ + "minecraft:stripped_warped_hyphae", + "minecraft:stripped_warped_stem", + "minecraft:warped_hyphae", + "minecraft:warped_stem" + ], + "minecraft:wooden_buttons": [ + "minecraft:acacia_button", + "minecraft:birch_button", + "minecraft:crimson_button", + "minecraft:dark_oak_button", + "minecraft:jungle_button", + "minecraft:oak_button", + "minecraft:spruce_button", + "minecraft:warped_button" + ], + "minecraft:wooden_doors": [ + "minecraft:acacia_door", + "minecraft:birch_door", + "minecraft:crimson_door", + "minecraft:dark_oak_door", + "minecraft:jungle_door", + "minecraft:oak_door", + "minecraft:spruce_door", + "minecraft:warped_door" + ], + "minecraft:wooden_fences": [ + "minecraft:acacia_fence", + "minecraft:birch_fence", + "minecraft:crimson_fence", + "minecraft:dark_oak_fence", + "minecraft:jungle_fence", + "minecraft:oak_fence", + "minecraft:spruce_fence", + "minecraft:warped_fence" + ], + "minecraft:wooden_pressure_plates": [ + "minecraft:acacia_pressure_plate", + "minecraft:birch_pressure_plate", + "minecraft:crimson_pressure_plate", + "minecraft:dark_oak_pressure_plate", + "minecraft:jungle_pressure_plate", + "minecraft:oak_pressure_plate", + "minecraft:spruce_pressure_plate", + "minecraft:warped_pressure_plate" + ], + "minecraft:wooden_slabs": [ + "minecraft:acacia_slab", + "minecraft:birch_slab", + "minecraft:crimson_slab", + "minecraft:dark_oak_slab", + "minecraft:jungle_slab", + "minecraft:oak_slab", + "minecraft:spruce_slab", + "minecraft:warped_slab" + ], + "minecraft:wooden_stairs": [ + "minecraft:acacia_stairs", + "minecraft:birch_stairs", + "minecraft:crimson_stairs", + "minecraft:dark_oak_stairs", + "minecraft:jungle_stairs", + "minecraft:oak_stairs", + "minecraft:spruce_stairs", + "minecraft:warped_stairs" + ], + "minecraft:wooden_trapdoors": [ + "minecraft:acacia_trapdoor", + "minecraft:birch_trapdoor", + "minecraft:crimson_trapdoor", + "minecraft:dark_oak_trapdoor", + "minecraft:jungle_trapdoor", + "minecraft:oak_trapdoor", + "minecraft:spruce_trapdoor", + "minecraft:warped_trapdoor" + ], + "minecraft:wool": [ + "minecraft:black_wool", + "minecraft:blue_wool", + "minecraft:brown_wool", + "minecraft:cyan_wool", + "minecraft:gray_wool", + "minecraft:green_wool", + "minecraft:light_blue_wool", + "minecraft:light_gray_wool", + "minecraft:lime_wool", + "minecraft:magenta_wool", + "minecraft:orange_wool", + "minecraft:pink_wool", + "minecraft:purple_wool", + "minecraft:red_wool", + "minecraft:white_wool", + "minecraft:yellow_wool" + ] + } +} diff --git a/worldedit-cli/src/main/resources/com/sk89q/worldedit/cli/data/2724.json b/worldedit-cli/src/main/resources/com/sk89q/worldedit/cli/data/2724.json index 46b135ff1..cafa4158d 100644 --- a/worldedit-cli/src/main/resources/com/sk89q/worldedit/cli/data/2724.json +++ b/worldedit-cli/src/main/resources/com/sk89q/worldedit/cli/data/2724.json @@ -1 +1,19235 @@ -{"biomes":["minecraft:badlands","minecraft:badlands_plateau","minecraft:bamboo_jungle","minecraft:bamboo_jungle_hills","minecraft:basalt_deltas","minecraft:beach","minecraft:birch_forest","minecraft:birch_forest_hills","minecraft:cold_ocean","minecraft:crimson_forest","minecraft:dark_forest","minecraft:dark_forest_hills","minecraft:deep_cold_ocean","minecraft:deep_frozen_ocean","minecraft:deep_lukewarm_ocean","minecraft:deep_ocean","minecraft:deep_warm_ocean","minecraft:desert","minecraft:desert_hills","minecraft:desert_lakes","minecraft:dripstone_caves","minecraft:end_barrens","minecraft:end_highlands","minecraft:end_midlands","minecraft:eroded_badlands","minecraft:flower_forest","minecraft:forest","minecraft:frozen_ocean","minecraft:frozen_river","minecraft:giant_spruce_taiga","minecraft:giant_spruce_taiga_hills","minecraft:giant_tree_taiga","minecraft:giant_tree_taiga_hills","minecraft:gravelly_mountains","minecraft:ice_spikes","minecraft:jungle","minecraft:jungle_edge","minecraft:jungle_hills","minecraft:lukewarm_ocean","minecraft:lush_caves","minecraft:modified_badlands_plateau","minecraft:modified_gravelly_mountains","minecraft:modified_jungle","minecraft:modified_jungle_edge","minecraft:modified_wooded_badlands_plateau","minecraft:mountain_edge","minecraft:mountains","minecraft:mushroom_field_shore","minecraft:mushroom_fields","minecraft:nether_wastes","minecraft:ocean","minecraft:plains","minecraft:river","minecraft:savanna","minecraft:savanna_plateau","minecraft:shattered_savanna","minecraft:shattered_savanna_plateau","minecraft:small_end_islands","minecraft:snowy_beach","minecraft:snowy_mountains","minecraft:snowy_taiga","minecraft:snowy_taiga_hills","minecraft:snowy_taiga_mountains","minecraft:snowy_tundra","minecraft:soul_sand_valley","minecraft:stone_shore","minecraft:sunflower_plains","minecraft:swamp","minecraft:swamp_hills","minecraft:taiga","minecraft:taiga_hills","minecraft:taiga_mountains","minecraft:tall_birch_forest","minecraft:tall_birch_hills","minecraft:the_end","minecraft:the_void","minecraft:warm_ocean","minecraft:warped_forest","minecraft:wooded_badlands_plateau","minecraft:wooded_hills","minecraft:wooded_mountains"],"blocks":{"minecraft:acacia_button":{"defaultstate":"minecraft:acacia_button[face=wall,facing=north,powered=false]","properties":{"face":{"type":"enum","values":["floor","wall","ceiling"]},"facing":{"type":"direction","values":["north","south","west","east"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:acacia_door":{"defaultstate":"minecraft:acacia_door[facing=north,half=lower,hinge=left,open=false,powered=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["upper","lower"]},"hinge":{"type":"enum","values":["left","right"]},"open":{"type":"bool","values":["true","false"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:acacia_fence":{"defaultstate":"minecraft:acacia_fence[east=false,north=false,south=false,waterlogged=false,west=false]","properties":{"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:acacia_fence_gate":{"defaultstate":"minecraft:acacia_fence_gate[facing=north,in_wall=false,open=false,powered=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"in_wall":{"type":"bool","values":["true","false"]},"open":{"type":"bool","values":["true","false"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:acacia_leaves":{"defaultstate":"minecraft:acacia_leaves[distance=7,persistent=false]","properties":{"distance":{"type":"int","values":["1","2","3","4","5","6","7"]},"persistent":{"type":"bool","values":["true","false"]}}},"minecraft:acacia_log":{"defaultstate":"minecraft:acacia_log[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:acacia_planks":{"defaultstate":"minecraft:acacia_planks","properties":{}},"minecraft:acacia_pressure_plate":{"defaultstate":"minecraft:acacia_pressure_plate[powered=false]","properties":{"powered":{"type":"bool","values":["true","false"]}}},"minecraft:acacia_sapling":{"defaultstate":"minecraft:acacia_sapling[stage=0]","properties":{"stage":{"type":"int","values":["0","1"]}}},"minecraft:acacia_sign":{"defaultstate":"minecraft:acacia_sign[rotation=0,waterlogged=false]","properties":{"rotation":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:acacia_slab":{"defaultstate":"minecraft:acacia_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:acacia_stairs":{"defaultstate":"minecraft:acacia_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:acacia_trapdoor":{"defaultstate":"minecraft:acacia_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"open":{"type":"bool","values":["true","false"]},"powered":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:acacia_wall_sign":{"defaultstate":"minecraft:acacia_wall_sign[facing=north,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:acacia_wood":{"defaultstate":"minecraft:acacia_wood[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:activator_rail":{"defaultstate":"minecraft:activator_rail[powered=false,shape=north_south,waterlogged=false]","properties":{"powered":{"type":"bool","values":["true","false"]},"shape":{"type":"enum","values":["north_south","east_west","ascending_east","ascending_west","ascending_north","ascending_south"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:air":{"defaultstate":"minecraft:air","properties":{}},"minecraft:allium":{"defaultstate":"minecraft:allium","properties":{}},"minecraft:amethyst_block":{"defaultstate":"minecraft:amethyst_block","properties":{}},"minecraft:amethyst_cluster":{"defaultstate":"minecraft:amethyst_cluster[facing=up,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","east","south","west","up","down"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:ancient_debris":{"defaultstate":"minecraft:ancient_debris","properties":{}},"minecraft:andesite":{"defaultstate":"minecraft:andesite","properties":{}},"minecraft:andesite_slab":{"defaultstate":"minecraft:andesite_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:andesite_stairs":{"defaultstate":"minecraft:andesite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:andesite_wall":{"defaultstate":"minecraft:andesite_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]","properties":{"east":{"type":"enum","values":["none","low","tall"]},"north":{"type":"enum","values":["none","low","tall"]},"south":{"type":"enum","values":["none","low","tall"]},"up":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"enum","values":["none","low","tall"]}}},"minecraft:anvil":{"defaultstate":"minecraft:anvil[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:attached_melon_stem":{"defaultstate":"minecraft:attached_melon_stem[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:attached_pumpkin_stem":{"defaultstate":"minecraft:attached_pumpkin_stem[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:azalea":{"defaultstate":"minecraft:azalea","properties":{}},"minecraft:azalea_leaves":{"defaultstate":"minecraft:azalea_leaves[distance=7,persistent=false]","properties":{"distance":{"type":"int","values":["1","2","3","4","5","6","7"]},"persistent":{"type":"bool","values":["true","false"]}}},"minecraft:azure_bluet":{"defaultstate":"minecraft:azure_bluet","properties":{}},"minecraft:bamboo":{"defaultstate":"minecraft:bamboo[age=0,leaves=none,stage=0]","properties":{"age":{"type":"int","values":["0","1"]},"leaves":{"type":"enum","values":["none","small","large"]},"stage":{"type":"int","values":["0","1"]}}},"minecraft:bamboo_sapling":{"defaultstate":"minecraft:bamboo_sapling","properties":{}},"minecraft:barrel":{"defaultstate":"minecraft:barrel[facing=north,open=false]","properties":{"facing":{"type":"direction","values":["north","east","south","west","up","down"]},"open":{"type":"bool","values":["true","false"]}}},"minecraft:barrier":{"defaultstate":"minecraft:barrier","properties":{}},"minecraft:basalt":{"defaultstate":"minecraft:basalt[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:beacon":{"defaultstate":"minecraft:beacon","properties":{}},"minecraft:bedrock":{"defaultstate":"minecraft:bedrock","properties":{}},"minecraft:bee_nest":{"defaultstate":"minecraft:bee_nest[facing=north,honey_level=0]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"honey_level":{"type":"int","values":["0","1","2","3","4","5"]}}},"minecraft:beehive":{"defaultstate":"minecraft:beehive[facing=north,honey_level=0]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"honey_level":{"type":"int","values":["0","1","2","3","4","5"]}}},"minecraft:beetroots":{"defaultstate":"minecraft:beetroots[age=0]","properties":{"age":{"type":"int","values":["0","1","2","3"]}}},"minecraft:bell":{"defaultstate":"minecraft:bell[attachment=floor,facing=north,powered=false]","properties":{"attachment":{"type":"enum","values":["floor","ceiling","single_wall","double_wall"]},"facing":{"type":"direction","values":["north","south","west","east"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:big_dripleaf":{"defaultstate":"minecraft:big_dripleaf[facing=north,tilt=none,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"tilt":{"type":"enum","values":["none","unstable","partial","full"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:big_dripleaf_stem":{"defaultstate":"minecraft:big_dripleaf_stem[facing=north,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:birch_button":{"defaultstate":"minecraft:birch_button[face=wall,facing=north,powered=false]","properties":{"face":{"type":"enum","values":["floor","wall","ceiling"]},"facing":{"type":"direction","values":["north","south","west","east"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:birch_door":{"defaultstate":"minecraft:birch_door[facing=north,half=lower,hinge=left,open=false,powered=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["upper","lower"]},"hinge":{"type":"enum","values":["left","right"]},"open":{"type":"bool","values":["true","false"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:birch_fence":{"defaultstate":"minecraft:birch_fence[east=false,north=false,south=false,waterlogged=false,west=false]","properties":{"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:birch_fence_gate":{"defaultstate":"minecraft:birch_fence_gate[facing=north,in_wall=false,open=false,powered=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"in_wall":{"type":"bool","values":["true","false"]},"open":{"type":"bool","values":["true","false"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:birch_leaves":{"defaultstate":"minecraft:birch_leaves[distance=7,persistent=false]","properties":{"distance":{"type":"int","values":["1","2","3","4","5","6","7"]},"persistent":{"type":"bool","values":["true","false"]}}},"minecraft:birch_log":{"defaultstate":"minecraft:birch_log[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:birch_planks":{"defaultstate":"minecraft:birch_planks","properties":{}},"minecraft:birch_pressure_plate":{"defaultstate":"minecraft:birch_pressure_plate[powered=false]","properties":{"powered":{"type":"bool","values":["true","false"]}}},"minecraft:birch_sapling":{"defaultstate":"minecraft:birch_sapling[stage=0]","properties":{"stage":{"type":"int","values":["0","1"]}}},"minecraft:birch_sign":{"defaultstate":"minecraft:birch_sign[rotation=0,waterlogged=false]","properties":{"rotation":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:birch_slab":{"defaultstate":"minecraft:birch_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:birch_stairs":{"defaultstate":"minecraft:birch_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:birch_trapdoor":{"defaultstate":"minecraft:birch_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"open":{"type":"bool","values":["true","false"]},"powered":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:birch_wall_sign":{"defaultstate":"minecraft:birch_wall_sign[facing=north,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:birch_wood":{"defaultstate":"minecraft:birch_wood[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:black_banner":{"defaultstate":"minecraft:black_banner[rotation=0]","properties":{"rotation":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]}}},"minecraft:black_bed":{"defaultstate":"minecraft:black_bed[facing=north,occupied=false,part=foot]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"occupied":{"type":"bool","values":["true","false"]},"part":{"type":"enum","values":["head","foot"]}}},"minecraft:black_candle":{"defaultstate":"minecraft:black_candle[candles=1,lit=false,waterlogged=false]","properties":{"candles":{"type":"int","values":["1","2","3","4"]},"lit":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:black_candle_cake":{"defaultstate":"minecraft:black_candle_cake[lit=false]","properties":{"lit":{"type":"bool","values":["true","false"]}}},"minecraft:black_carpet":{"defaultstate":"minecraft:black_carpet","properties":{}},"minecraft:black_concrete":{"defaultstate":"minecraft:black_concrete","properties":{}},"minecraft:black_concrete_powder":{"defaultstate":"minecraft:black_concrete_powder","properties":{}},"minecraft:black_glazed_terracotta":{"defaultstate":"minecraft:black_glazed_terracotta[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:black_shulker_box":{"defaultstate":"minecraft:black_shulker_box[facing=up]","properties":{"facing":{"type":"direction","values":["north","east","south","west","up","down"]}}},"minecraft:black_stained_glass":{"defaultstate":"minecraft:black_stained_glass","properties":{}},"minecraft:black_stained_glass_pane":{"defaultstate":"minecraft:black_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]","properties":{"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:black_terracotta":{"defaultstate":"minecraft:black_terracotta","properties":{}},"minecraft:black_wall_banner":{"defaultstate":"minecraft:black_wall_banner[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:black_wool":{"defaultstate":"minecraft:black_wool","properties":{}},"minecraft:blackstone":{"defaultstate":"minecraft:blackstone","properties":{}},"minecraft:blackstone_slab":{"defaultstate":"minecraft:blackstone_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:blackstone_stairs":{"defaultstate":"minecraft:blackstone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:blackstone_wall":{"defaultstate":"minecraft:blackstone_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]","properties":{"east":{"type":"enum","values":["none","low","tall"]},"north":{"type":"enum","values":["none","low","tall"]},"south":{"type":"enum","values":["none","low","tall"]},"up":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"enum","values":["none","low","tall"]}}},"minecraft:blast_furnace":{"defaultstate":"minecraft:blast_furnace[facing=north,lit=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"lit":{"type":"bool","values":["true","false"]}}},"minecraft:blue_banner":{"defaultstate":"minecraft:blue_banner[rotation=0]","properties":{"rotation":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]}}},"minecraft:blue_bed":{"defaultstate":"minecraft:blue_bed[facing=north,occupied=false,part=foot]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"occupied":{"type":"bool","values":["true","false"]},"part":{"type":"enum","values":["head","foot"]}}},"minecraft:blue_candle":{"defaultstate":"minecraft:blue_candle[candles=1,lit=false,waterlogged=false]","properties":{"candles":{"type":"int","values":["1","2","3","4"]},"lit":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:blue_candle_cake":{"defaultstate":"minecraft:blue_candle_cake[lit=false]","properties":{"lit":{"type":"bool","values":["true","false"]}}},"minecraft:blue_carpet":{"defaultstate":"minecraft:blue_carpet","properties":{}},"minecraft:blue_concrete":{"defaultstate":"minecraft:blue_concrete","properties":{}},"minecraft:blue_concrete_powder":{"defaultstate":"minecraft:blue_concrete_powder","properties":{}},"minecraft:blue_glazed_terracotta":{"defaultstate":"minecraft:blue_glazed_terracotta[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:blue_ice":{"defaultstate":"minecraft:blue_ice","properties":{}},"minecraft:blue_orchid":{"defaultstate":"minecraft:blue_orchid","properties":{}},"minecraft:blue_shulker_box":{"defaultstate":"minecraft:blue_shulker_box[facing=up]","properties":{"facing":{"type":"direction","values":["north","east","south","west","up","down"]}}},"minecraft:blue_stained_glass":{"defaultstate":"minecraft:blue_stained_glass","properties":{}},"minecraft:blue_stained_glass_pane":{"defaultstate":"minecraft:blue_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]","properties":{"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:blue_terracotta":{"defaultstate":"minecraft:blue_terracotta","properties":{}},"minecraft:blue_wall_banner":{"defaultstate":"minecraft:blue_wall_banner[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:blue_wool":{"defaultstate":"minecraft:blue_wool","properties":{}},"minecraft:bone_block":{"defaultstate":"minecraft:bone_block[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:bookshelf":{"defaultstate":"minecraft:bookshelf","properties":{}},"minecraft:brain_coral":{"defaultstate":"minecraft:brain_coral[waterlogged=true]","properties":{"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:brain_coral_block":{"defaultstate":"minecraft:brain_coral_block","properties":{}},"minecraft:brain_coral_fan":{"defaultstate":"minecraft:brain_coral_fan[waterlogged=true]","properties":{"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:brain_coral_wall_fan":{"defaultstate":"minecraft:brain_coral_wall_fan[facing=north,waterlogged=true]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:brewing_stand":{"defaultstate":"minecraft:brewing_stand[has_bottle_0=false,has_bottle_1=false,has_bottle_2=false]","properties":{"has_bottle_0":{"type":"bool","values":["true","false"]},"has_bottle_1":{"type":"bool","values":["true","false"]},"has_bottle_2":{"type":"bool","values":["true","false"]}}},"minecraft:brick_slab":{"defaultstate":"minecraft:brick_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:brick_stairs":{"defaultstate":"minecraft:brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:brick_wall":{"defaultstate":"minecraft:brick_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]","properties":{"east":{"type":"enum","values":["none","low","tall"]},"north":{"type":"enum","values":["none","low","tall"]},"south":{"type":"enum","values":["none","low","tall"]},"up":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"enum","values":["none","low","tall"]}}},"minecraft:bricks":{"defaultstate":"minecraft:bricks","properties":{}},"minecraft:brown_banner":{"defaultstate":"minecraft:brown_banner[rotation=0]","properties":{"rotation":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]}}},"minecraft:brown_bed":{"defaultstate":"minecraft:brown_bed[facing=north,occupied=false,part=foot]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"occupied":{"type":"bool","values":["true","false"]},"part":{"type":"enum","values":["head","foot"]}}},"minecraft:brown_candle":{"defaultstate":"minecraft:brown_candle[candles=1,lit=false,waterlogged=false]","properties":{"candles":{"type":"int","values":["1","2","3","4"]},"lit":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:brown_candle_cake":{"defaultstate":"minecraft:brown_candle_cake[lit=false]","properties":{"lit":{"type":"bool","values":["true","false"]}}},"minecraft:brown_carpet":{"defaultstate":"minecraft:brown_carpet","properties":{}},"minecraft:brown_concrete":{"defaultstate":"minecraft:brown_concrete","properties":{}},"minecraft:brown_concrete_powder":{"defaultstate":"minecraft:brown_concrete_powder","properties":{}},"minecraft:brown_glazed_terracotta":{"defaultstate":"minecraft:brown_glazed_terracotta[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:brown_mushroom":{"defaultstate":"minecraft:brown_mushroom","properties":{}},"minecraft:brown_mushroom_block":{"defaultstate":"minecraft:brown_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true]","properties":{"down":{"type":"bool","values":["true","false"]},"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"up":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:brown_shulker_box":{"defaultstate":"minecraft:brown_shulker_box[facing=up]","properties":{"facing":{"type":"direction","values":["north","east","south","west","up","down"]}}},"minecraft:brown_stained_glass":{"defaultstate":"minecraft:brown_stained_glass","properties":{}},"minecraft:brown_stained_glass_pane":{"defaultstate":"minecraft:brown_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]","properties":{"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:brown_terracotta":{"defaultstate":"minecraft:brown_terracotta","properties":{}},"minecraft:brown_wall_banner":{"defaultstate":"minecraft:brown_wall_banner[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:brown_wool":{"defaultstate":"minecraft:brown_wool","properties":{}},"minecraft:bubble_column":{"defaultstate":"minecraft:bubble_column[drag=true]","properties":{"drag":{"type":"bool","values":["true","false"]}}},"minecraft:bubble_coral":{"defaultstate":"minecraft:bubble_coral[waterlogged=true]","properties":{"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:bubble_coral_block":{"defaultstate":"minecraft:bubble_coral_block","properties":{}},"minecraft:bubble_coral_fan":{"defaultstate":"minecraft:bubble_coral_fan[waterlogged=true]","properties":{"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:bubble_coral_wall_fan":{"defaultstate":"minecraft:bubble_coral_wall_fan[facing=north,waterlogged=true]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:budding_amethyst":{"defaultstate":"minecraft:budding_amethyst","properties":{}},"minecraft:cactus":{"defaultstate":"minecraft:cactus[age=0]","properties":{"age":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]}}},"minecraft:cake":{"defaultstate":"minecraft:cake[bites=0]","properties":{"bites":{"type":"int","values":["0","1","2","3","4","5","6"]}}},"minecraft:calcite":{"defaultstate":"minecraft:calcite","properties":{}},"minecraft:campfire":{"defaultstate":"minecraft:campfire[facing=north,lit=true,signal_fire=false,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"lit":{"type":"bool","values":["true","false"]},"signal_fire":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:candle":{"defaultstate":"minecraft:candle[candles=1,lit=false,waterlogged=false]","properties":{"candles":{"type":"int","values":["1","2","3","4"]},"lit":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:candle_cake":{"defaultstate":"minecraft:candle_cake[lit=false]","properties":{"lit":{"type":"bool","values":["true","false"]}}},"minecraft:carrots":{"defaultstate":"minecraft:carrots[age=0]","properties":{"age":{"type":"int","values":["0","1","2","3","4","5","6","7"]}}},"minecraft:cartography_table":{"defaultstate":"minecraft:cartography_table","properties":{}},"minecraft:carved_pumpkin":{"defaultstate":"minecraft:carved_pumpkin[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:cauldron":{"defaultstate":"minecraft:cauldron","properties":{}},"minecraft:cave_air":{"defaultstate":"minecraft:cave_air","properties":{}},"minecraft:cave_vines":{"defaultstate":"minecraft:cave_vines[age=0,berries=false]","properties":{"age":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25"]},"berries":{"type":"bool","values":["true","false"]}}},"minecraft:cave_vines_plant":{"defaultstate":"minecraft:cave_vines_plant[berries=false]","properties":{"berries":{"type":"bool","values":["true","false"]}}},"minecraft:chain":{"defaultstate":"minecraft:chain[axis=y,waterlogged=false]","properties":{"axis":{"type":"enum","values":["x","y","z"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:chain_command_block":{"defaultstate":"minecraft:chain_command_block[conditional=false,facing=north]","properties":{"conditional":{"type":"bool","values":["true","false"]},"facing":{"type":"direction","values":["north","east","south","west","up","down"]}}},"minecraft:chest":{"defaultstate":"minecraft:chest[facing=north,type=single,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"type":{"type":"enum","values":["single","left","right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:chipped_anvil":{"defaultstate":"minecraft:chipped_anvil[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:chiseled_deepslate":{"defaultstate":"minecraft:chiseled_deepslate","properties":{}},"minecraft:chiseled_nether_bricks":{"defaultstate":"minecraft:chiseled_nether_bricks","properties":{}},"minecraft:chiseled_polished_blackstone":{"defaultstate":"minecraft:chiseled_polished_blackstone","properties":{}},"minecraft:chiseled_quartz_block":{"defaultstate":"minecraft:chiseled_quartz_block","properties":{}},"minecraft:chiseled_red_sandstone":{"defaultstate":"minecraft:chiseled_red_sandstone","properties":{}},"minecraft:chiseled_sandstone":{"defaultstate":"minecraft:chiseled_sandstone","properties":{}},"minecraft:chiseled_stone_bricks":{"defaultstate":"minecraft:chiseled_stone_bricks","properties":{}},"minecraft:chorus_flower":{"defaultstate":"minecraft:chorus_flower[age=0]","properties":{"age":{"type":"int","values":["0","1","2","3","4","5"]}}},"minecraft:chorus_plant":{"defaultstate":"minecraft:chorus_plant[down=false,east=false,north=false,south=false,up=false,west=false]","properties":{"down":{"type":"bool","values":["true","false"]},"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"up":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:clay":{"defaultstate":"minecraft:clay","properties":{}},"minecraft:coal_block":{"defaultstate":"minecraft:coal_block","properties":{}},"minecraft:coal_ore":{"defaultstate":"minecraft:coal_ore","properties":{}},"minecraft:coarse_dirt":{"defaultstate":"minecraft:coarse_dirt","properties":{}},"minecraft:cobbled_deepslate":{"defaultstate":"minecraft:cobbled_deepslate","properties":{}},"minecraft:cobbled_deepslate_slab":{"defaultstate":"minecraft:cobbled_deepslate_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:cobbled_deepslate_stairs":{"defaultstate":"minecraft:cobbled_deepslate_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:cobbled_deepslate_wall":{"defaultstate":"minecraft:cobbled_deepslate_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]","properties":{"east":{"type":"enum","values":["none","low","tall"]},"north":{"type":"enum","values":["none","low","tall"]},"south":{"type":"enum","values":["none","low","tall"]},"up":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"enum","values":["none","low","tall"]}}},"minecraft:cobblestone":{"defaultstate":"minecraft:cobblestone","properties":{}},"minecraft:cobblestone_slab":{"defaultstate":"minecraft:cobblestone_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:cobblestone_stairs":{"defaultstate":"minecraft:cobblestone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:cobblestone_wall":{"defaultstate":"minecraft:cobblestone_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]","properties":{"east":{"type":"enum","values":["none","low","tall"]},"north":{"type":"enum","values":["none","low","tall"]},"south":{"type":"enum","values":["none","low","tall"]},"up":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"enum","values":["none","low","tall"]}}},"minecraft:cobweb":{"defaultstate":"minecraft:cobweb","properties":{}},"minecraft:cocoa":{"defaultstate":"minecraft:cocoa[age=0,facing=north]","properties":{"age":{"type":"int","values":["0","1","2"]},"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:command_block":{"defaultstate":"minecraft:command_block[conditional=false,facing=north]","properties":{"conditional":{"type":"bool","values":["true","false"]},"facing":{"type":"direction","values":["north","east","south","west","up","down"]}}},"minecraft:comparator":{"defaultstate":"minecraft:comparator[facing=north,mode=compare,powered=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"mode":{"type":"enum","values":["compare","subtract"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:composter":{"defaultstate":"minecraft:composter[level=0]","properties":{"level":{"type":"int","values":["0","1","2","3","4","5","6","7","8"]}}},"minecraft:conduit":{"defaultstate":"minecraft:conduit[waterlogged=true]","properties":{"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:copper_block":{"defaultstate":"minecraft:copper_block","properties":{}},"minecraft:copper_ore":{"defaultstate":"minecraft:copper_ore","properties":{}},"minecraft:cornflower":{"defaultstate":"minecraft:cornflower","properties":{}},"minecraft:cracked_deepslate_bricks":{"defaultstate":"minecraft:cracked_deepslate_bricks","properties":{}},"minecraft:cracked_deepslate_tiles":{"defaultstate":"minecraft:cracked_deepslate_tiles","properties":{}},"minecraft:cracked_nether_bricks":{"defaultstate":"minecraft:cracked_nether_bricks","properties":{}},"minecraft:cracked_polished_blackstone_bricks":{"defaultstate":"minecraft:cracked_polished_blackstone_bricks","properties":{}},"minecraft:cracked_stone_bricks":{"defaultstate":"minecraft:cracked_stone_bricks","properties":{}},"minecraft:crafting_table":{"defaultstate":"minecraft:crafting_table","properties":{}},"minecraft:creeper_head":{"defaultstate":"minecraft:creeper_head[rotation=0]","properties":{"rotation":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]}}},"minecraft:creeper_wall_head":{"defaultstate":"minecraft:creeper_wall_head[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:crimson_button":{"defaultstate":"minecraft:crimson_button[face=wall,facing=north,powered=false]","properties":{"face":{"type":"enum","values":["floor","wall","ceiling"]},"facing":{"type":"direction","values":["north","south","west","east"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:crimson_door":{"defaultstate":"minecraft:crimson_door[facing=north,half=lower,hinge=left,open=false,powered=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["upper","lower"]},"hinge":{"type":"enum","values":["left","right"]},"open":{"type":"bool","values":["true","false"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:crimson_fence":{"defaultstate":"minecraft:crimson_fence[east=false,north=false,south=false,waterlogged=false,west=false]","properties":{"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:crimson_fence_gate":{"defaultstate":"minecraft:crimson_fence_gate[facing=north,in_wall=false,open=false,powered=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"in_wall":{"type":"bool","values":["true","false"]},"open":{"type":"bool","values":["true","false"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:crimson_fungus":{"defaultstate":"minecraft:crimson_fungus","properties":{}},"minecraft:crimson_hyphae":{"defaultstate":"minecraft:crimson_hyphae[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:crimson_nylium":{"defaultstate":"minecraft:crimson_nylium","properties":{}},"minecraft:crimson_planks":{"defaultstate":"minecraft:crimson_planks","properties":{}},"minecraft:crimson_pressure_plate":{"defaultstate":"minecraft:crimson_pressure_plate[powered=false]","properties":{"powered":{"type":"bool","values":["true","false"]}}},"minecraft:crimson_roots":{"defaultstate":"minecraft:crimson_roots","properties":{}},"minecraft:crimson_sign":{"defaultstate":"minecraft:crimson_sign[rotation=0,waterlogged=false]","properties":{"rotation":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:crimson_slab":{"defaultstate":"minecraft:crimson_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:crimson_stairs":{"defaultstate":"minecraft:crimson_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:crimson_stem":{"defaultstate":"minecraft:crimson_stem[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:crimson_trapdoor":{"defaultstate":"minecraft:crimson_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"open":{"type":"bool","values":["true","false"]},"powered":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:crimson_wall_sign":{"defaultstate":"minecraft:crimson_wall_sign[facing=north,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:crying_obsidian":{"defaultstate":"minecraft:crying_obsidian","properties":{}},"minecraft:cut_copper":{"defaultstate":"minecraft:cut_copper","properties":{}},"minecraft:cut_copper_slab":{"defaultstate":"minecraft:cut_copper_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:cut_copper_stairs":{"defaultstate":"minecraft:cut_copper_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:cut_red_sandstone":{"defaultstate":"minecraft:cut_red_sandstone","properties":{}},"minecraft:cut_red_sandstone_slab":{"defaultstate":"minecraft:cut_red_sandstone_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:cut_sandstone":{"defaultstate":"minecraft:cut_sandstone","properties":{}},"minecraft:cut_sandstone_slab":{"defaultstate":"minecraft:cut_sandstone_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:cyan_banner":{"defaultstate":"minecraft:cyan_banner[rotation=0]","properties":{"rotation":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]}}},"minecraft:cyan_bed":{"defaultstate":"minecraft:cyan_bed[facing=north,occupied=false,part=foot]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"occupied":{"type":"bool","values":["true","false"]},"part":{"type":"enum","values":["head","foot"]}}},"minecraft:cyan_candle":{"defaultstate":"minecraft:cyan_candle[candles=1,lit=false,waterlogged=false]","properties":{"candles":{"type":"int","values":["1","2","3","4"]},"lit":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:cyan_candle_cake":{"defaultstate":"minecraft:cyan_candle_cake[lit=false]","properties":{"lit":{"type":"bool","values":["true","false"]}}},"minecraft:cyan_carpet":{"defaultstate":"minecraft:cyan_carpet","properties":{}},"minecraft:cyan_concrete":{"defaultstate":"minecraft:cyan_concrete","properties":{}},"minecraft:cyan_concrete_powder":{"defaultstate":"minecraft:cyan_concrete_powder","properties":{}},"minecraft:cyan_glazed_terracotta":{"defaultstate":"minecraft:cyan_glazed_terracotta[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:cyan_shulker_box":{"defaultstate":"minecraft:cyan_shulker_box[facing=up]","properties":{"facing":{"type":"direction","values":["north","east","south","west","up","down"]}}},"minecraft:cyan_stained_glass":{"defaultstate":"minecraft:cyan_stained_glass","properties":{}},"minecraft:cyan_stained_glass_pane":{"defaultstate":"minecraft:cyan_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]","properties":{"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:cyan_terracotta":{"defaultstate":"minecraft:cyan_terracotta","properties":{}},"minecraft:cyan_wall_banner":{"defaultstate":"minecraft:cyan_wall_banner[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:cyan_wool":{"defaultstate":"minecraft:cyan_wool","properties":{}},"minecraft:damaged_anvil":{"defaultstate":"minecraft:damaged_anvil[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:dandelion":{"defaultstate":"minecraft:dandelion","properties":{}},"minecraft:dark_oak_button":{"defaultstate":"minecraft:dark_oak_button[face=wall,facing=north,powered=false]","properties":{"face":{"type":"enum","values":["floor","wall","ceiling"]},"facing":{"type":"direction","values":["north","south","west","east"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:dark_oak_door":{"defaultstate":"minecraft:dark_oak_door[facing=north,half=lower,hinge=left,open=false,powered=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["upper","lower"]},"hinge":{"type":"enum","values":["left","right"]},"open":{"type":"bool","values":["true","false"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:dark_oak_fence":{"defaultstate":"minecraft:dark_oak_fence[east=false,north=false,south=false,waterlogged=false,west=false]","properties":{"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:dark_oak_fence_gate":{"defaultstate":"minecraft:dark_oak_fence_gate[facing=north,in_wall=false,open=false,powered=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"in_wall":{"type":"bool","values":["true","false"]},"open":{"type":"bool","values":["true","false"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:dark_oak_leaves":{"defaultstate":"minecraft:dark_oak_leaves[distance=7,persistent=false]","properties":{"distance":{"type":"int","values":["1","2","3","4","5","6","7"]},"persistent":{"type":"bool","values":["true","false"]}}},"minecraft:dark_oak_log":{"defaultstate":"minecraft:dark_oak_log[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:dark_oak_planks":{"defaultstate":"minecraft:dark_oak_planks","properties":{}},"minecraft:dark_oak_pressure_plate":{"defaultstate":"minecraft:dark_oak_pressure_plate[powered=false]","properties":{"powered":{"type":"bool","values":["true","false"]}}},"minecraft:dark_oak_sapling":{"defaultstate":"minecraft:dark_oak_sapling[stage=0]","properties":{"stage":{"type":"int","values":["0","1"]}}},"minecraft:dark_oak_sign":{"defaultstate":"minecraft:dark_oak_sign[rotation=0,waterlogged=false]","properties":{"rotation":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:dark_oak_slab":{"defaultstate":"minecraft:dark_oak_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:dark_oak_stairs":{"defaultstate":"minecraft:dark_oak_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:dark_oak_trapdoor":{"defaultstate":"minecraft:dark_oak_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"open":{"type":"bool","values":["true","false"]},"powered":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:dark_oak_wall_sign":{"defaultstate":"minecraft:dark_oak_wall_sign[facing=north,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:dark_oak_wood":{"defaultstate":"minecraft:dark_oak_wood[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:dark_prismarine":{"defaultstate":"minecraft:dark_prismarine","properties":{}},"minecraft:dark_prismarine_slab":{"defaultstate":"minecraft:dark_prismarine_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:dark_prismarine_stairs":{"defaultstate":"minecraft:dark_prismarine_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:daylight_detector":{"defaultstate":"minecraft:daylight_detector[inverted=false,power=0]","properties":{"inverted":{"type":"bool","values":["true","false"]},"power":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]}}},"minecraft:dead_brain_coral":{"defaultstate":"minecraft:dead_brain_coral[waterlogged=true]","properties":{"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:dead_brain_coral_block":{"defaultstate":"minecraft:dead_brain_coral_block","properties":{}},"minecraft:dead_brain_coral_fan":{"defaultstate":"minecraft:dead_brain_coral_fan[waterlogged=true]","properties":{"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:dead_brain_coral_wall_fan":{"defaultstate":"minecraft:dead_brain_coral_wall_fan[facing=north,waterlogged=true]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:dead_bubble_coral":{"defaultstate":"minecraft:dead_bubble_coral[waterlogged=true]","properties":{"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:dead_bubble_coral_block":{"defaultstate":"minecraft:dead_bubble_coral_block","properties":{}},"minecraft:dead_bubble_coral_fan":{"defaultstate":"minecraft:dead_bubble_coral_fan[waterlogged=true]","properties":{"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:dead_bubble_coral_wall_fan":{"defaultstate":"minecraft:dead_bubble_coral_wall_fan[facing=north,waterlogged=true]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:dead_bush":{"defaultstate":"minecraft:dead_bush","properties":{}},"minecraft:dead_fire_coral":{"defaultstate":"minecraft:dead_fire_coral[waterlogged=true]","properties":{"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:dead_fire_coral_block":{"defaultstate":"minecraft:dead_fire_coral_block","properties":{}},"minecraft:dead_fire_coral_fan":{"defaultstate":"minecraft:dead_fire_coral_fan[waterlogged=true]","properties":{"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:dead_fire_coral_wall_fan":{"defaultstate":"minecraft:dead_fire_coral_wall_fan[facing=north,waterlogged=true]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:dead_horn_coral":{"defaultstate":"minecraft:dead_horn_coral[waterlogged=true]","properties":{"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:dead_horn_coral_block":{"defaultstate":"minecraft:dead_horn_coral_block","properties":{}},"minecraft:dead_horn_coral_fan":{"defaultstate":"minecraft:dead_horn_coral_fan[waterlogged=true]","properties":{"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:dead_horn_coral_wall_fan":{"defaultstate":"minecraft:dead_horn_coral_wall_fan[facing=north,waterlogged=true]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:dead_tube_coral":{"defaultstate":"minecraft:dead_tube_coral[waterlogged=true]","properties":{"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:dead_tube_coral_block":{"defaultstate":"minecraft:dead_tube_coral_block","properties":{}},"minecraft:dead_tube_coral_fan":{"defaultstate":"minecraft:dead_tube_coral_fan[waterlogged=true]","properties":{"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:dead_tube_coral_wall_fan":{"defaultstate":"minecraft:dead_tube_coral_wall_fan[facing=north,waterlogged=true]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:deepslate":{"defaultstate":"minecraft:deepslate[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:deepslate_brick_slab":{"defaultstate":"minecraft:deepslate_brick_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:deepslate_brick_stairs":{"defaultstate":"minecraft:deepslate_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:deepslate_brick_wall":{"defaultstate":"minecraft:deepslate_brick_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]","properties":{"east":{"type":"enum","values":["none","low","tall"]},"north":{"type":"enum","values":["none","low","tall"]},"south":{"type":"enum","values":["none","low","tall"]},"up":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"enum","values":["none","low","tall"]}}},"minecraft:deepslate_bricks":{"defaultstate":"minecraft:deepslate_bricks","properties":{}},"minecraft:deepslate_coal_ore":{"defaultstate":"minecraft:deepslate_coal_ore","properties":{}},"minecraft:deepslate_copper_ore":{"defaultstate":"minecraft:deepslate_copper_ore","properties":{}},"minecraft:deepslate_diamond_ore":{"defaultstate":"minecraft:deepslate_diamond_ore","properties":{}},"minecraft:deepslate_emerald_ore":{"defaultstate":"minecraft:deepslate_emerald_ore","properties":{}},"minecraft:deepslate_gold_ore":{"defaultstate":"minecraft:deepslate_gold_ore","properties":{}},"minecraft:deepslate_iron_ore":{"defaultstate":"minecraft:deepslate_iron_ore","properties":{}},"minecraft:deepslate_lapis_ore":{"defaultstate":"minecraft:deepslate_lapis_ore","properties":{}},"minecraft:deepslate_redstone_ore":{"defaultstate":"minecraft:deepslate_redstone_ore[lit=false]","properties":{"lit":{"type":"bool","values":["true","false"]}}},"minecraft:deepslate_tile_slab":{"defaultstate":"minecraft:deepslate_tile_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:deepslate_tile_stairs":{"defaultstate":"minecraft:deepslate_tile_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:deepslate_tile_wall":{"defaultstate":"minecraft:deepslate_tile_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]","properties":{"east":{"type":"enum","values":["none","low","tall"]},"north":{"type":"enum","values":["none","low","tall"]},"south":{"type":"enum","values":["none","low","tall"]},"up":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"enum","values":["none","low","tall"]}}},"minecraft:deepslate_tiles":{"defaultstate":"minecraft:deepslate_tiles","properties":{}},"minecraft:detector_rail":{"defaultstate":"minecraft:detector_rail[powered=false,shape=north_south,waterlogged=false]","properties":{"powered":{"type":"bool","values":["true","false"]},"shape":{"type":"enum","values":["north_south","east_west","ascending_east","ascending_west","ascending_north","ascending_south"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:diamond_block":{"defaultstate":"minecraft:diamond_block","properties":{}},"minecraft:diamond_ore":{"defaultstate":"minecraft:diamond_ore","properties":{}},"minecraft:diorite":{"defaultstate":"minecraft:diorite","properties":{}},"minecraft:diorite_slab":{"defaultstate":"minecraft:diorite_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:diorite_stairs":{"defaultstate":"minecraft:diorite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:diorite_wall":{"defaultstate":"minecraft:diorite_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]","properties":{"east":{"type":"enum","values":["none","low","tall"]},"north":{"type":"enum","values":["none","low","tall"]},"south":{"type":"enum","values":["none","low","tall"]},"up":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"enum","values":["none","low","tall"]}}},"minecraft:dirt":{"defaultstate":"minecraft:dirt","properties":{}},"minecraft:dirt_path":{"defaultstate":"minecraft:dirt_path","properties":{}},"minecraft:dispenser":{"defaultstate":"minecraft:dispenser[facing=north,triggered=false]","properties":{"facing":{"type":"direction","values":["north","east","south","west","up","down"]},"triggered":{"type":"bool","values":["true","false"]}}},"minecraft:dragon_egg":{"defaultstate":"minecraft:dragon_egg","properties":{}},"minecraft:dragon_head":{"defaultstate":"minecraft:dragon_head[rotation=0]","properties":{"rotation":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]}}},"minecraft:dragon_wall_head":{"defaultstate":"minecraft:dragon_wall_head[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:dried_kelp_block":{"defaultstate":"minecraft:dried_kelp_block","properties":{}},"minecraft:dripstone_block":{"defaultstate":"minecraft:dripstone_block","properties":{}},"minecraft:dropper":{"defaultstate":"minecraft:dropper[facing=north,triggered=false]","properties":{"facing":{"type":"direction","values":["north","east","south","west","up","down"]},"triggered":{"type":"bool","values":["true","false"]}}},"minecraft:emerald_block":{"defaultstate":"minecraft:emerald_block","properties":{}},"minecraft:emerald_ore":{"defaultstate":"minecraft:emerald_ore","properties":{}},"minecraft:enchanting_table":{"defaultstate":"minecraft:enchanting_table","properties":{}},"minecraft:end_gateway":{"defaultstate":"minecraft:end_gateway","properties":{}},"minecraft:end_portal":{"defaultstate":"minecraft:end_portal","properties":{}},"minecraft:end_portal_frame":{"defaultstate":"minecraft:end_portal_frame[eye=false,facing=north]","properties":{"eye":{"type":"bool","values":["true","false"]},"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:end_rod":{"defaultstate":"minecraft:end_rod[facing=up]","properties":{"facing":{"type":"direction","values":["north","east","south","west","up","down"]}}},"minecraft:end_stone":{"defaultstate":"minecraft:end_stone","properties":{}},"minecraft:end_stone_brick_slab":{"defaultstate":"minecraft:end_stone_brick_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:end_stone_brick_stairs":{"defaultstate":"minecraft:end_stone_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:end_stone_brick_wall":{"defaultstate":"minecraft:end_stone_brick_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]","properties":{"east":{"type":"enum","values":["none","low","tall"]},"north":{"type":"enum","values":["none","low","tall"]},"south":{"type":"enum","values":["none","low","tall"]},"up":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"enum","values":["none","low","tall"]}}},"minecraft:end_stone_bricks":{"defaultstate":"minecraft:end_stone_bricks","properties":{}},"minecraft:ender_chest":{"defaultstate":"minecraft:ender_chest[facing=north,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:exposed_copper":{"defaultstate":"minecraft:exposed_copper","properties":{}},"minecraft:exposed_cut_copper":{"defaultstate":"minecraft:exposed_cut_copper","properties":{}},"minecraft:exposed_cut_copper_slab":{"defaultstate":"minecraft:exposed_cut_copper_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:exposed_cut_copper_stairs":{"defaultstate":"minecraft:exposed_cut_copper_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:farmland":{"defaultstate":"minecraft:farmland[moisture=0]","properties":{"moisture":{"type":"int","values":["0","1","2","3","4","5","6","7"]}}},"minecraft:fern":{"defaultstate":"minecraft:fern","properties":{}},"minecraft:fire":{"defaultstate":"minecraft:fire[age=0,east=false,north=false,south=false,up=false,west=false]","properties":{"age":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]},"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"up":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:fire_coral":{"defaultstate":"minecraft:fire_coral[waterlogged=true]","properties":{"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:fire_coral_block":{"defaultstate":"minecraft:fire_coral_block","properties":{}},"minecraft:fire_coral_fan":{"defaultstate":"minecraft:fire_coral_fan[waterlogged=true]","properties":{"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:fire_coral_wall_fan":{"defaultstate":"minecraft:fire_coral_wall_fan[facing=north,waterlogged=true]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:fletching_table":{"defaultstate":"minecraft:fletching_table","properties":{}},"minecraft:flower_pot":{"defaultstate":"minecraft:flower_pot","properties":{}},"minecraft:flowering_azalea":{"defaultstate":"minecraft:flowering_azalea","properties":{}},"minecraft:flowering_azalea_leaves":{"defaultstate":"minecraft:flowering_azalea_leaves[distance=7,persistent=false]","properties":{"distance":{"type":"int","values":["1","2","3","4","5","6","7"]},"persistent":{"type":"bool","values":["true","false"]}}},"minecraft:frosted_ice":{"defaultstate":"minecraft:frosted_ice[age=0]","properties":{"age":{"type":"int","values":["0","1","2","3"]}}},"minecraft:furnace":{"defaultstate":"minecraft:furnace[facing=north,lit=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"lit":{"type":"bool","values":["true","false"]}}},"minecraft:gilded_blackstone":{"defaultstate":"minecraft:gilded_blackstone","properties":{}},"minecraft:glass":{"defaultstate":"minecraft:glass","properties":{}},"minecraft:glass_pane":{"defaultstate":"minecraft:glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]","properties":{"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:glow_lichen":{"defaultstate":"minecraft:glow_lichen[down=false,east=false,north=false,south=false,up=false,waterlogged=false,west=false]","properties":{"down":{"type":"bool","values":["true","false"]},"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"up":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:glowstone":{"defaultstate":"minecraft:glowstone","properties":{}},"minecraft:gold_block":{"defaultstate":"minecraft:gold_block","properties":{}},"minecraft:gold_ore":{"defaultstate":"minecraft:gold_ore","properties":{}},"minecraft:granite":{"defaultstate":"minecraft:granite","properties":{}},"minecraft:granite_slab":{"defaultstate":"minecraft:granite_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:granite_stairs":{"defaultstate":"minecraft:granite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:granite_wall":{"defaultstate":"minecraft:granite_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]","properties":{"east":{"type":"enum","values":["none","low","tall"]},"north":{"type":"enum","values":["none","low","tall"]},"south":{"type":"enum","values":["none","low","tall"]},"up":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"enum","values":["none","low","tall"]}}},"minecraft:grass":{"defaultstate":"minecraft:grass","properties":{}},"minecraft:grass_block":{"defaultstate":"minecraft:grass_block[snowy=false]","properties":{"snowy":{"type":"bool","values":["true","false"]}}},"minecraft:gravel":{"defaultstate":"minecraft:gravel","properties":{}},"minecraft:gray_banner":{"defaultstate":"minecraft:gray_banner[rotation=0]","properties":{"rotation":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]}}},"minecraft:gray_bed":{"defaultstate":"minecraft:gray_bed[facing=north,occupied=false,part=foot]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"occupied":{"type":"bool","values":["true","false"]},"part":{"type":"enum","values":["head","foot"]}}},"minecraft:gray_candle":{"defaultstate":"minecraft:gray_candle[candles=1,lit=false,waterlogged=false]","properties":{"candles":{"type":"int","values":["1","2","3","4"]},"lit":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:gray_candle_cake":{"defaultstate":"minecraft:gray_candle_cake[lit=false]","properties":{"lit":{"type":"bool","values":["true","false"]}}},"minecraft:gray_carpet":{"defaultstate":"minecraft:gray_carpet","properties":{}},"minecraft:gray_concrete":{"defaultstate":"minecraft:gray_concrete","properties":{}},"minecraft:gray_concrete_powder":{"defaultstate":"minecraft:gray_concrete_powder","properties":{}},"minecraft:gray_glazed_terracotta":{"defaultstate":"minecraft:gray_glazed_terracotta[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:gray_shulker_box":{"defaultstate":"minecraft:gray_shulker_box[facing=up]","properties":{"facing":{"type":"direction","values":["north","east","south","west","up","down"]}}},"minecraft:gray_stained_glass":{"defaultstate":"minecraft:gray_stained_glass","properties":{}},"minecraft:gray_stained_glass_pane":{"defaultstate":"minecraft:gray_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]","properties":{"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:gray_terracotta":{"defaultstate":"minecraft:gray_terracotta","properties":{}},"minecraft:gray_wall_banner":{"defaultstate":"minecraft:gray_wall_banner[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:gray_wool":{"defaultstate":"minecraft:gray_wool","properties":{}},"minecraft:green_banner":{"defaultstate":"minecraft:green_banner[rotation=0]","properties":{"rotation":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]}}},"minecraft:green_bed":{"defaultstate":"minecraft:green_bed[facing=north,occupied=false,part=foot]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"occupied":{"type":"bool","values":["true","false"]},"part":{"type":"enum","values":["head","foot"]}}},"minecraft:green_candle":{"defaultstate":"minecraft:green_candle[candles=1,lit=false,waterlogged=false]","properties":{"candles":{"type":"int","values":["1","2","3","4"]},"lit":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:green_candle_cake":{"defaultstate":"minecraft:green_candle_cake[lit=false]","properties":{"lit":{"type":"bool","values":["true","false"]}}},"minecraft:green_carpet":{"defaultstate":"minecraft:green_carpet","properties":{}},"minecraft:green_concrete":{"defaultstate":"minecraft:green_concrete","properties":{}},"minecraft:green_concrete_powder":{"defaultstate":"minecraft:green_concrete_powder","properties":{}},"minecraft:green_glazed_terracotta":{"defaultstate":"minecraft:green_glazed_terracotta[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:green_shulker_box":{"defaultstate":"minecraft:green_shulker_box[facing=up]","properties":{"facing":{"type":"direction","values":["north","east","south","west","up","down"]}}},"minecraft:green_stained_glass":{"defaultstate":"minecraft:green_stained_glass","properties":{}},"minecraft:green_stained_glass_pane":{"defaultstate":"minecraft:green_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]","properties":{"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:green_terracotta":{"defaultstate":"minecraft:green_terracotta","properties":{}},"minecraft:green_wall_banner":{"defaultstate":"minecraft:green_wall_banner[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:green_wool":{"defaultstate":"minecraft:green_wool","properties":{}},"minecraft:grindstone":{"defaultstate":"minecraft:grindstone[face=wall,facing=north]","properties":{"face":{"type":"enum","values":["floor","wall","ceiling"]},"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:hanging_roots":{"defaultstate":"minecraft:hanging_roots[waterlogged=false]","properties":{"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:hay_block":{"defaultstate":"minecraft:hay_block[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:heavy_weighted_pressure_plate":{"defaultstate":"minecraft:heavy_weighted_pressure_plate[power=0]","properties":{"power":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]}}},"minecraft:honey_block":{"defaultstate":"minecraft:honey_block","properties":{}},"minecraft:honeycomb_block":{"defaultstate":"minecraft:honeycomb_block","properties":{}},"minecraft:hopper":{"defaultstate":"minecraft:hopper[enabled=true,facing=down]","properties":{"enabled":{"type":"bool","values":["true","false"]},"facing":{"type":"direction","values":["down","north","south","west","east"]}}},"minecraft:horn_coral":{"defaultstate":"minecraft:horn_coral[waterlogged=true]","properties":{"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:horn_coral_block":{"defaultstate":"minecraft:horn_coral_block","properties":{}},"minecraft:horn_coral_fan":{"defaultstate":"minecraft:horn_coral_fan[waterlogged=true]","properties":{"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:horn_coral_wall_fan":{"defaultstate":"minecraft:horn_coral_wall_fan[facing=north,waterlogged=true]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:ice":{"defaultstate":"minecraft:ice","properties":{}},"minecraft:infested_chiseled_stone_bricks":{"defaultstate":"minecraft:infested_chiseled_stone_bricks","properties":{}},"minecraft:infested_cobblestone":{"defaultstate":"minecraft:infested_cobblestone","properties":{}},"minecraft:infested_cracked_stone_bricks":{"defaultstate":"minecraft:infested_cracked_stone_bricks","properties":{}},"minecraft:infested_deepslate":{"defaultstate":"minecraft:infested_deepslate[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:infested_mossy_stone_bricks":{"defaultstate":"minecraft:infested_mossy_stone_bricks","properties":{}},"minecraft:infested_stone":{"defaultstate":"minecraft:infested_stone","properties":{}},"minecraft:infested_stone_bricks":{"defaultstate":"minecraft:infested_stone_bricks","properties":{}},"minecraft:iron_bars":{"defaultstate":"minecraft:iron_bars[east=false,north=false,south=false,waterlogged=false,west=false]","properties":{"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:iron_block":{"defaultstate":"minecraft:iron_block","properties":{}},"minecraft:iron_door":{"defaultstate":"minecraft:iron_door[facing=north,half=lower,hinge=left,open=false,powered=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["upper","lower"]},"hinge":{"type":"enum","values":["left","right"]},"open":{"type":"bool","values":["true","false"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:iron_ore":{"defaultstate":"minecraft:iron_ore","properties":{}},"minecraft:iron_trapdoor":{"defaultstate":"minecraft:iron_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"open":{"type":"bool","values":["true","false"]},"powered":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:jack_o_lantern":{"defaultstate":"minecraft:jack_o_lantern[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:jigsaw":{"defaultstate":"minecraft:jigsaw[orientation=north_up]","properties":{"orientation":{"type":"enum","values":["down_east","down_north","down_south","down_west","up_east","up_north","up_south","up_west","west_up","east_up","north_up","south_up"]}}},"minecraft:jukebox":{"defaultstate":"minecraft:jukebox[has_record=false]","properties":{"has_record":{"type":"bool","values":["true","false"]}}},"minecraft:jungle_button":{"defaultstate":"minecraft:jungle_button[face=wall,facing=north,powered=false]","properties":{"face":{"type":"enum","values":["floor","wall","ceiling"]},"facing":{"type":"direction","values":["north","south","west","east"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:jungle_door":{"defaultstate":"minecraft:jungle_door[facing=north,half=lower,hinge=left,open=false,powered=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["upper","lower"]},"hinge":{"type":"enum","values":["left","right"]},"open":{"type":"bool","values":["true","false"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:jungle_fence":{"defaultstate":"minecraft:jungle_fence[east=false,north=false,south=false,waterlogged=false,west=false]","properties":{"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:jungle_fence_gate":{"defaultstate":"minecraft:jungle_fence_gate[facing=north,in_wall=false,open=false,powered=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"in_wall":{"type":"bool","values":["true","false"]},"open":{"type":"bool","values":["true","false"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:jungle_leaves":{"defaultstate":"minecraft:jungle_leaves[distance=7,persistent=false]","properties":{"distance":{"type":"int","values":["1","2","3","4","5","6","7"]},"persistent":{"type":"bool","values":["true","false"]}}},"minecraft:jungle_log":{"defaultstate":"minecraft:jungle_log[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:jungle_planks":{"defaultstate":"minecraft:jungle_planks","properties":{}},"minecraft:jungle_pressure_plate":{"defaultstate":"minecraft:jungle_pressure_plate[powered=false]","properties":{"powered":{"type":"bool","values":["true","false"]}}},"minecraft:jungle_sapling":{"defaultstate":"minecraft:jungle_sapling[stage=0]","properties":{"stage":{"type":"int","values":["0","1"]}}},"minecraft:jungle_sign":{"defaultstate":"minecraft:jungle_sign[rotation=0,waterlogged=false]","properties":{"rotation":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:jungle_slab":{"defaultstate":"minecraft:jungle_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:jungle_stairs":{"defaultstate":"minecraft:jungle_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:jungle_trapdoor":{"defaultstate":"minecraft:jungle_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"open":{"type":"bool","values":["true","false"]},"powered":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:jungle_wall_sign":{"defaultstate":"minecraft:jungle_wall_sign[facing=north,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:jungle_wood":{"defaultstate":"minecraft:jungle_wood[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:kelp":{"defaultstate":"minecraft:kelp[age=0]","properties":{"age":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25"]}}},"minecraft:kelp_plant":{"defaultstate":"minecraft:kelp_plant","properties":{}},"minecraft:ladder":{"defaultstate":"minecraft:ladder[facing=north,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:lantern":{"defaultstate":"minecraft:lantern[hanging=false,waterlogged=false]","properties":{"hanging":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:lapis_block":{"defaultstate":"minecraft:lapis_block","properties":{}},"minecraft:lapis_ore":{"defaultstate":"minecraft:lapis_ore","properties":{}},"minecraft:large_amethyst_bud":{"defaultstate":"minecraft:large_amethyst_bud[facing=up,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","east","south","west","up","down"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:large_fern":{"defaultstate":"minecraft:large_fern[half=lower]","properties":{"half":{"type":"enum","values":["upper","lower"]}}},"minecraft:lava":{"defaultstate":"minecraft:lava[level=0]","properties":{"level":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]}}},"minecraft:lava_cauldron":{"defaultstate":"minecraft:lava_cauldron","properties":{}},"minecraft:lectern":{"defaultstate":"minecraft:lectern[facing=north,has_book=false,powered=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"has_book":{"type":"bool","values":["true","false"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:lever":{"defaultstate":"minecraft:lever[face=wall,facing=north,powered=false]","properties":{"face":{"type":"enum","values":["floor","wall","ceiling"]},"facing":{"type":"direction","values":["north","south","west","east"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:light":{"defaultstate":"minecraft:light[level=15,waterlogged=false]","properties":{"level":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:light_blue_banner":{"defaultstate":"minecraft:light_blue_banner[rotation=0]","properties":{"rotation":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]}}},"minecraft:light_blue_bed":{"defaultstate":"minecraft:light_blue_bed[facing=north,occupied=false,part=foot]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"occupied":{"type":"bool","values":["true","false"]},"part":{"type":"enum","values":["head","foot"]}}},"minecraft:light_blue_candle":{"defaultstate":"minecraft:light_blue_candle[candles=1,lit=false,waterlogged=false]","properties":{"candles":{"type":"int","values":["1","2","3","4"]},"lit":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:light_blue_candle_cake":{"defaultstate":"minecraft:light_blue_candle_cake[lit=false]","properties":{"lit":{"type":"bool","values":["true","false"]}}},"minecraft:light_blue_carpet":{"defaultstate":"minecraft:light_blue_carpet","properties":{}},"minecraft:light_blue_concrete":{"defaultstate":"minecraft:light_blue_concrete","properties":{}},"minecraft:light_blue_concrete_powder":{"defaultstate":"minecraft:light_blue_concrete_powder","properties":{}},"minecraft:light_blue_glazed_terracotta":{"defaultstate":"minecraft:light_blue_glazed_terracotta[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:light_blue_shulker_box":{"defaultstate":"minecraft:light_blue_shulker_box[facing=up]","properties":{"facing":{"type":"direction","values":["north","east","south","west","up","down"]}}},"minecraft:light_blue_stained_glass":{"defaultstate":"minecraft:light_blue_stained_glass","properties":{}},"minecraft:light_blue_stained_glass_pane":{"defaultstate":"minecraft:light_blue_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]","properties":{"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:light_blue_terracotta":{"defaultstate":"minecraft:light_blue_terracotta","properties":{}},"minecraft:light_blue_wall_banner":{"defaultstate":"minecraft:light_blue_wall_banner[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:light_blue_wool":{"defaultstate":"minecraft:light_blue_wool","properties":{}},"minecraft:light_gray_banner":{"defaultstate":"minecraft:light_gray_banner[rotation=0]","properties":{"rotation":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]}}},"minecraft:light_gray_bed":{"defaultstate":"minecraft:light_gray_bed[facing=north,occupied=false,part=foot]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"occupied":{"type":"bool","values":["true","false"]},"part":{"type":"enum","values":["head","foot"]}}},"minecraft:light_gray_candle":{"defaultstate":"minecraft:light_gray_candle[candles=1,lit=false,waterlogged=false]","properties":{"candles":{"type":"int","values":["1","2","3","4"]},"lit":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:light_gray_candle_cake":{"defaultstate":"minecraft:light_gray_candle_cake[lit=false]","properties":{"lit":{"type":"bool","values":["true","false"]}}},"minecraft:light_gray_carpet":{"defaultstate":"minecraft:light_gray_carpet","properties":{}},"minecraft:light_gray_concrete":{"defaultstate":"minecraft:light_gray_concrete","properties":{}},"minecraft:light_gray_concrete_powder":{"defaultstate":"minecraft:light_gray_concrete_powder","properties":{}},"minecraft:light_gray_glazed_terracotta":{"defaultstate":"minecraft:light_gray_glazed_terracotta[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:light_gray_shulker_box":{"defaultstate":"minecraft:light_gray_shulker_box[facing=up]","properties":{"facing":{"type":"direction","values":["north","east","south","west","up","down"]}}},"minecraft:light_gray_stained_glass":{"defaultstate":"minecraft:light_gray_stained_glass","properties":{}},"minecraft:light_gray_stained_glass_pane":{"defaultstate":"minecraft:light_gray_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]","properties":{"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:light_gray_terracotta":{"defaultstate":"minecraft:light_gray_terracotta","properties":{}},"minecraft:light_gray_wall_banner":{"defaultstate":"minecraft:light_gray_wall_banner[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:light_gray_wool":{"defaultstate":"minecraft:light_gray_wool","properties":{}},"minecraft:light_weighted_pressure_plate":{"defaultstate":"minecraft:light_weighted_pressure_plate[power=0]","properties":{"power":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]}}},"minecraft:lightning_rod":{"defaultstate":"minecraft:lightning_rod[facing=up,powered=false,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","east","south","west","up","down"]},"powered":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:lilac":{"defaultstate":"minecraft:lilac[half=lower]","properties":{"half":{"type":"enum","values":["upper","lower"]}}},"minecraft:lily_of_the_valley":{"defaultstate":"minecraft:lily_of_the_valley","properties":{}},"minecraft:lily_pad":{"defaultstate":"minecraft:lily_pad","properties":{}},"minecraft:lime_banner":{"defaultstate":"minecraft:lime_banner[rotation=0]","properties":{"rotation":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]}}},"minecraft:lime_bed":{"defaultstate":"minecraft:lime_bed[facing=north,occupied=false,part=foot]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"occupied":{"type":"bool","values":["true","false"]},"part":{"type":"enum","values":["head","foot"]}}},"minecraft:lime_candle":{"defaultstate":"minecraft:lime_candle[candles=1,lit=false,waterlogged=false]","properties":{"candles":{"type":"int","values":["1","2","3","4"]},"lit":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:lime_candle_cake":{"defaultstate":"minecraft:lime_candle_cake[lit=false]","properties":{"lit":{"type":"bool","values":["true","false"]}}},"minecraft:lime_carpet":{"defaultstate":"minecraft:lime_carpet","properties":{}},"minecraft:lime_concrete":{"defaultstate":"minecraft:lime_concrete","properties":{}},"minecraft:lime_concrete_powder":{"defaultstate":"minecraft:lime_concrete_powder","properties":{}},"minecraft:lime_glazed_terracotta":{"defaultstate":"minecraft:lime_glazed_terracotta[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:lime_shulker_box":{"defaultstate":"minecraft:lime_shulker_box[facing=up]","properties":{"facing":{"type":"direction","values":["north","east","south","west","up","down"]}}},"minecraft:lime_stained_glass":{"defaultstate":"minecraft:lime_stained_glass","properties":{}},"minecraft:lime_stained_glass_pane":{"defaultstate":"minecraft:lime_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]","properties":{"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:lime_terracotta":{"defaultstate":"minecraft:lime_terracotta","properties":{}},"minecraft:lime_wall_banner":{"defaultstate":"minecraft:lime_wall_banner[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:lime_wool":{"defaultstate":"minecraft:lime_wool","properties":{}},"minecraft:lodestone":{"defaultstate":"minecraft:lodestone","properties":{}},"minecraft:loom":{"defaultstate":"minecraft:loom[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:magenta_banner":{"defaultstate":"minecraft:magenta_banner[rotation=0]","properties":{"rotation":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]}}},"minecraft:magenta_bed":{"defaultstate":"minecraft:magenta_bed[facing=north,occupied=false,part=foot]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"occupied":{"type":"bool","values":["true","false"]},"part":{"type":"enum","values":["head","foot"]}}},"minecraft:magenta_candle":{"defaultstate":"minecraft:magenta_candle[candles=1,lit=false,waterlogged=false]","properties":{"candles":{"type":"int","values":["1","2","3","4"]},"lit":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:magenta_candle_cake":{"defaultstate":"minecraft:magenta_candle_cake[lit=false]","properties":{"lit":{"type":"bool","values":["true","false"]}}},"minecraft:magenta_carpet":{"defaultstate":"minecraft:magenta_carpet","properties":{}},"minecraft:magenta_concrete":{"defaultstate":"minecraft:magenta_concrete","properties":{}},"minecraft:magenta_concrete_powder":{"defaultstate":"minecraft:magenta_concrete_powder","properties":{}},"minecraft:magenta_glazed_terracotta":{"defaultstate":"minecraft:magenta_glazed_terracotta[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:magenta_shulker_box":{"defaultstate":"minecraft:magenta_shulker_box[facing=up]","properties":{"facing":{"type":"direction","values":["north","east","south","west","up","down"]}}},"minecraft:magenta_stained_glass":{"defaultstate":"minecraft:magenta_stained_glass","properties":{}},"minecraft:magenta_stained_glass_pane":{"defaultstate":"minecraft:magenta_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]","properties":{"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:magenta_terracotta":{"defaultstate":"minecraft:magenta_terracotta","properties":{}},"minecraft:magenta_wall_banner":{"defaultstate":"minecraft:magenta_wall_banner[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:magenta_wool":{"defaultstate":"minecraft:magenta_wool","properties":{}},"minecraft:magma_block":{"defaultstate":"minecraft:magma_block","properties":{}},"minecraft:medium_amethyst_bud":{"defaultstate":"minecraft:medium_amethyst_bud[facing=up,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","east","south","west","up","down"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:melon":{"defaultstate":"minecraft:melon","properties":{}},"minecraft:melon_stem":{"defaultstate":"minecraft:melon_stem[age=0]","properties":{"age":{"type":"int","values":["0","1","2","3","4","5","6","7"]}}},"minecraft:moss_block":{"defaultstate":"minecraft:moss_block","properties":{}},"minecraft:moss_carpet":{"defaultstate":"minecraft:moss_carpet","properties":{}},"minecraft:mossy_cobblestone":{"defaultstate":"minecraft:mossy_cobblestone","properties":{}},"minecraft:mossy_cobblestone_slab":{"defaultstate":"minecraft:mossy_cobblestone_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:mossy_cobblestone_stairs":{"defaultstate":"minecraft:mossy_cobblestone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:mossy_cobblestone_wall":{"defaultstate":"minecraft:mossy_cobblestone_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]","properties":{"east":{"type":"enum","values":["none","low","tall"]},"north":{"type":"enum","values":["none","low","tall"]},"south":{"type":"enum","values":["none","low","tall"]},"up":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"enum","values":["none","low","tall"]}}},"minecraft:mossy_stone_brick_slab":{"defaultstate":"minecraft:mossy_stone_brick_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:mossy_stone_brick_stairs":{"defaultstate":"minecraft:mossy_stone_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:mossy_stone_brick_wall":{"defaultstate":"minecraft:mossy_stone_brick_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]","properties":{"east":{"type":"enum","values":["none","low","tall"]},"north":{"type":"enum","values":["none","low","tall"]},"south":{"type":"enum","values":["none","low","tall"]},"up":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"enum","values":["none","low","tall"]}}},"minecraft:mossy_stone_bricks":{"defaultstate":"minecraft:mossy_stone_bricks","properties":{}},"minecraft:moving_piston":{"defaultstate":"minecraft:moving_piston[facing=north,type=normal]","properties":{"facing":{"type":"direction","values":["north","east","south","west","up","down"]},"type":{"type":"enum","values":["normal","sticky"]}}},"minecraft:mushroom_stem":{"defaultstate":"minecraft:mushroom_stem[down=true,east=true,north=true,south=true,up=true,west=true]","properties":{"down":{"type":"bool","values":["true","false"]},"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"up":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:mycelium":{"defaultstate":"minecraft:mycelium[snowy=false]","properties":{"snowy":{"type":"bool","values":["true","false"]}}},"minecraft:nether_brick_fence":{"defaultstate":"minecraft:nether_brick_fence[east=false,north=false,south=false,waterlogged=false,west=false]","properties":{"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:nether_brick_slab":{"defaultstate":"minecraft:nether_brick_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:nether_brick_stairs":{"defaultstate":"minecraft:nether_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:nether_brick_wall":{"defaultstate":"minecraft:nether_brick_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]","properties":{"east":{"type":"enum","values":["none","low","tall"]},"north":{"type":"enum","values":["none","low","tall"]},"south":{"type":"enum","values":["none","low","tall"]},"up":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"enum","values":["none","low","tall"]}}},"minecraft:nether_bricks":{"defaultstate":"minecraft:nether_bricks","properties":{}},"minecraft:nether_gold_ore":{"defaultstate":"minecraft:nether_gold_ore","properties":{}},"minecraft:nether_portal":{"defaultstate":"minecraft:nether_portal[axis=x]","properties":{"axis":{"type":"enum","values":["x","z"]}}},"minecraft:nether_quartz_ore":{"defaultstate":"minecraft:nether_quartz_ore","properties":{}},"minecraft:nether_sprouts":{"defaultstate":"minecraft:nether_sprouts","properties":{}},"minecraft:nether_wart":{"defaultstate":"minecraft:nether_wart[age=0]","properties":{"age":{"type":"int","values":["0","1","2","3"]}}},"minecraft:nether_wart_block":{"defaultstate":"minecraft:nether_wart_block","properties":{}},"minecraft:netherite_block":{"defaultstate":"minecraft:netherite_block","properties":{}},"minecraft:netherrack":{"defaultstate":"minecraft:netherrack","properties":{}},"minecraft:note_block":{"defaultstate":"minecraft:note_block[instrument=harp,note=0,powered=false]","properties":{"instrument":{"type":"enum","values":["harp","basedrum","snare","hat","bass","flute","bell","guitar","chime","xylophone","iron_xylophone","cow_bell","didgeridoo","bit","banjo","pling"]},"note":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:oak_button":{"defaultstate":"minecraft:oak_button[face=wall,facing=north,powered=false]","properties":{"face":{"type":"enum","values":["floor","wall","ceiling"]},"facing":{"type":"direction","values":["north","south","west","east"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:oak_door":{"defaultstate":"minecraft:oak_door[facing=north,half=lower,hinge=left,open=false,powered=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["upper","lower"]},"hinge":{"type":"enum","values":["left","right"]},"open":{"type":"bool","values":["true","false"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:oak_fence":{"defaultstate":"minecraft:oak_fence[east=false,north=false,south=false,waterlogged=false,west=false]","properties":{"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:oak_fence_gate":{"defaultstate":"minecraft:oak_fence_gate[facing=north,in_wall=false,open=false,powered=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"in_wall":{"type":"bool","values":["true","false"]},"open":{"type":"bool","values":["true","false"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:oak_leaves":{"defaultstate":"minecraft:oak_leaves[distance=7,persistent=false]","properties":{"distance":{"type":"int","values":["1","2","3","4","5","6","7"]},"persistent":{"type":"bool","values":["true","false"]}}},"minecraft:oak_log":{"defaultstate":"minecraft:oak_log[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:oak_planks":{"defaultstate":"minecraft:oak_planks","properties":{}},"minecraft:oak_pressure_plate":{"defaultstate":"minecraft:oak_pressure_plate[powered=false]","properties":{"powered":{"type":"bool","values":["true","false"]}}},"minecraft:oak_sapling":{"defaultstate":"minecraft:oak_sapling[stage=0]","properties":{"stage":{"type":"int","values":["0","1"]}}},"minecraft:oak_sign":{"defaultstate":"minecraft:oak_sign[rotation=0,waterlogged=false]","properties":{"rotation":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:oak_slab":{"defaultstate":"minecraft:oak_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:oak_stairs":{"defaultstate":"minecraft:oak_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:oak_trapdoor":{"defaultstate":"minecraft:oak_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"open":{"type":"bool","values":["true","false"]},"powered":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:oak_wall_sign":{"defaultstate":"minecraft:oak_wall_sign[facing=north,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:oak_wood":{"defaultstate":"minecraft:oak_wood[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:observer":{"defaultstate":"minecraft:observer[facing=south,powered=false]","properties":{"facing":{"type":"direction","values":["north","east","south","west","up","down"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:obsidian":{"defaultstate":"minecraft:obsidian","properties":{}},"minecraft:orange_banner":{"defaultstate":"minecraft:orange_banner[rotation=0]","properties":{"rotation":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]}}},"minecraft:orange_bed":{"defaultstate":"minecraft:orange_bed[facing=north,occupied=false,part=foot]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"occupied":{"type":"bool","values":["true","false"]},"part":{"type":"enum","values":["head","foot"]}}},"minecraft:orange_candle":{"defaultstate":"minecraft:orange_candle[candles=1,lit=false,waterlogged=false]","properties":{"candles":{"type":"int","values":["1","2","3","4"]},"lit":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:orange_candle_cake":{"defaultstate":"minecraft:orange_candle_cake[lit=false]","properties":{"lit":{"type":"bool","values":["true","false"]}}},"minecraft:orange_carpet":{"defaultstate":"minecraft:orange_carpet","properties":{}},"minecraft:orange_concrete":{"defaultstate":"minecraft:orange_concrete","properties":{}},"minecraft:orange_concrete_powder":{"defaultstate":"minecraft:orange_concrete_powder","properties":{}},"minecraft:orange_glazed_terracotta":{"defaultstate":"minecraft:orange_glazed_terracotta[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:orange_shulker_box":{"defaultstate":"minecraft:orange_shulker_box[facing=up]","properties":{"facing":{"type":"direction","values":["north","east","south","west","up","down"]}}},"minecraft:orange_stained_glass":{"defaultstate":"minecraft:orange_stained_glass","properties":{}},"minecraft:orange_stained_glass_pane":{"defaultstate":"minecraft:orange_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]","properties":{"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:orange_terracotta":{"defaultstate":"minecraft:orange_terracotta","properties":{}},"minecraft:orange_tulip":{"defaultstate":"minecraft:orange_tulip","properties":{}},"minecraft:orange_wall_banner":{"defaultstate":"minecraft:orange_wall_banner[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:orange_wool":{"defaultstate":"minecraft:orange_wool","properties":{}},"minecraft:oxeye_daisy":{"defaultstate":"minecraft:oxeye_daisy","properties":{}},"minecraft:oxidized_copper":{"defaultstate":"minecraft:oxidized_copper","properties":{}},"minecraft:oxidized_cut_copper":{"defaultstate":"minecraft:oxidized_cut_copper","properties":{}},"minecraft:oxidized_cut_copper_slab":{"defaultstate":"minecraft:oxidized_cut_copper_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:oxidized_cut_copper_stairs":{"defaultstate":"minecraft:oxidized_cut_copper_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:packed_ice":{"defaultstate":"minecraft:packed_ice","properties":{}},"minecraft:peony":{"defaultstate":"minecraft:peony[half=lower]","properties":{"half":{"type":"enum","values":["upper","lower"]}}},"minecraft:petrified_oak_slab":{"defaultstate":"minecraft:petrified_oak_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:pink_banner":{"defaultstate":"minecraft:pink_banner[rotation=0]","properties":{"rotation":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]}}},"minecraft:pink_bed":{"defaultstate":"minecraft:pink_bed[facing=north,occupied=false,part=foot]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"occupied":{"type":"bool","values":["true","false"]},"part":{"type":"enum","values":["head","foot"]}}},"minecraft:pink_candle":{"defaultstate":"minecraft:pink_candle[candles=1,lit=false,waterlogged=false]","properties":{"candles":{"type":"int","values":["1","2","3","4"]},"lit":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:pink_candle_cake":{"defaultstate":"minecraft:pink_candle_cake[lit=false]","properties":{"lit":{"type":"bool","values":["true","false"]}}},"minecraft:pink_carpet":{"defaultstate":"minecraft:pink_carpet","properties":{}},"minecraft:pink_concrete":{"defaultstate":"minecraft:pink_concrete","properties":{}},"minecraft:pink_concrete_powder":{"defaultstate":"minecraft:pink_concrete_powder","properties":{}},"minecraft:pink_glazed_terracotta":{"defaultstate":"minecraft:pink_glazed_terracotta[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:pink_shulker_box":{"defaultstate":"minecraft:pink_shulker_box[facing=up]","properties":{"facing":{"type":"direction","values":["north","east","south","west","up","down"]}}},"minecraft:pink_stained_glass":{"defaultstate":"minecraft:pink_stained_glass","properties":{}},"minecraft:pink_stained_glass_pane":{"defaultstate":"minecraft:pink_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]","properties":{"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:pink_terracotta":{"defaultstate":"minecraft:pink_terracotta","properties":{}},"minecraft:pink_tulip":{"defaultstate":"minecraft:pink_tulip","properties":{}},"minecraft:pink_wall_banner":{"defaultstate":"minecraft:pink_wall_banner[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:pink_wool":{"defaultstate":"minecraft:pink_wool","properties":{}},"minecraft:piston":{"defaultstate":"minecraft:piston[extended=false,facing=north]","properties":{"extended":{"type":"bool","values":["true","false"]},"facing":{"type":"direction","values":["north","east","south","west","up","down"]}}},"minecraft:piston_head":{"defaultstate":"minecraft:piston_head[facing=north,short=false,type=normal]","properties":{"facing":{"type":"direction","values":["north","east","south","west","up","down"]},"short":{"type":"bool","values":["true","false"]},"type":{"type":"enum","values":["normal","sticky"]}}},"minecraft:player_head":{"defaultstate":"minecraft:player_head[rotation=0]","properties":{"rotation":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]}}},"minecraft:player_wall_head":{"defaultstate":"minecraft:player_wall_head[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:podzol":{"defaultstate":"minecraft:podzol[snowy=false]","properties":{"snowy":{"type":"bool","values":["true","false"]}}},"minecraft:pointed_dripstone":{"defaultstate":"minecraft:pointed_dripstone[thickness=tip,vertical_direction=up,waterlogged=false]","properties":{"thickness":{"type":"enum","values":["tip_merge","tip","frustum","middle","base"]},"vertical_direction":{"type":"direction","values":["up","down"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:polished_andesite":{"defaultstate":"minecraft:polished_andesite","properties":{}},"minecraft:polished_andesite_slab":{"defaultstate":"minecraft:polished_andesite_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:polished_andesite_stairs":{"defaultstate":"minecraft:polished_andesite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:polished_basalt":{"defaultstate":"minecraft:polished_basalt[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:polished_blackstone":{"defaultstate":"minecraft:polished_blackstone","properties":{}},"minecraft:polished_blackstone_brick_slab":{"defaultstate":"minecraft:polished_blackstone_brick_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:polished_blackstone_brick_stairs":{"defaultstate":"minecraft:polished_blackstone_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:polished_blackstone_brick_wall":{"defaultstate":"minecraft:polished_blackstone_brick_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]","properties":{"east":{"type":"enum","values":["none","low","tall"]},"north":{"type":"enum","values":["none","low","tall"]},"south":{"type":"enum","values":["none","low","tall"]},"up":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"enum","values":["none","low","tall"]}}},"minecraft:polished_blackstone_bricks":{"defaultstate":"minecraft:polished_blackstone_bricks","properties":{}},"minecraft:polished_blackstone_button":{"defaultstate":"minecraft:polished_blackstone_button[face=wall,facing=north,powered=false]","properties":{"face":{"type":"enum","values":["floor","wall","ceiling"]},"facing":{"type":"direction","values":["north","south","west","east"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:polished_blackstone_pressure_plate":{"defaultstate":"minecraft:polished_blackstone_pressure_plate[powered=false]","properties":{"powered":{"type":"bool","values":["true","false"]}}},"minecraft:polished_blackstone_slab":{"defaultstate":"minecraft:polished_blackstone_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:polished_blackstone_stairs":{"defaultstate":"minecraft:polished_blackstone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:polished_blackstone_wall":{"defaultstate":"minecraft:polished_blackstone_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]","properties":{"east":{"type":"enum","values":["none","low","tall"]},"north":{"type":"enum","values":["none","low","tall"]},"south":{"type":"enum","values":["none","low","tall"]},"up":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"enum","values":["none","low","tall"]}}},"minecraft:polished_deepslate":{"defaultstate":"minecraft:polished_deepslate","properties":{}},"minecraft:polished_deepslate_slab":{"defaultstate":"minecraft:polished_deepslate_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:polished_deepslate_stairs":{"defaultstate":"minecraft:polished_deepslate_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:polished_deepslate_wall":{"defaultstate":"minecraft:polished_deepslate_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]","properties":{"east":{"type":"enum","values":["none","low","tall"]},"north":{"type":"enum","values":["none","low","tall"]},"south":{"type":"enum","values":["none","low","tall"]},"up":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"enum","values":["none","low","tall"]}}},"minecraft:polished_diorite":{"defaultstate":"minecraft:polished_diorite","properties":{}},"minecraft:polished_diorite_slab":{"defaultstate":"minecraft:polished_diorite_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:polished_diorite_stairs":{"defaultstate":"minecraft:polished_diorite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:polished_granite":{"defaultstate":"minecraft:polished_granite","properties":{}},"minecraft:polished_granite_slab":{"defaultstate":"minecraft:polished_granite_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:polished_granite_stairs":{"defaultstate":"minecraft:polished_granite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:poppy":{"defaultstate":"minecraft:poppy","properties":{}},"minecraft:potatoes":{"defaultstate":"minecraft:potatoes[age=0]","properties":{"age":{"type":"int","values":["0","1","2","3","4","5","6","7"]}}},"minecraft:potted_acacia_sapling":{"defaultstate":"minecraft:potted_acacia_sapling","properties":{}},"minecraft:potted_allium":{"defaultstate":"minecraft:potted_allium","properties":{}},"minecraft:potted_azalea_bush":{"defaultstate":"minecraft:potted_azalea_bush","properties":{}},"minecraft:potted_azure_bluet":{"defaultstate":"minecraft:potted_azure_bluet","properties":{}},"minecraft:potted_bamboo":{"defaultstate":"minecraft:potted_bamboo","properties":{}},"minecraft:potted_birch_sapling":{"defaultstate":"minecraft:potted_birch_sapling","properties":{}},"minecraft:potted_blue_orchid":{"defaultstate":"minecraft:potted_blue_orchid","properties":{}},"minecraft:potted_brown_mushroom":{"defaultstate":"minecraft:potted_brown_mushroom","properties":{}},"minecraft:potted_cactus":{"defaultstate":"minecraft:potted_cactus","properties":{}},"minecraft:potted_cornflower":{"defaultstate":"minecraft:potted_cornflower","properties":{}},"minecraft:potted_crimson_fungus":{"defaultstate":"minecraft:potted_crimson_fungus","properties":{}},"minecraft:potted_crimson_roots":{"defaultstate":"minecraft:potted_crimson_roots","properties":{}},"minecraft:potted_dandelion":{"defaultstate":"minecraft:potted_dandelion","properties":{}},"minecraft:potted_dark_oak_sapling":{"defaultstate":"minecraft:potted_dark_oak_sapling","properties":{}},"minecraft:potted_dead_bush":{"defaultstate":"minecraft:potted_dead_bush","properties":{}},"minecraft:potted_fern":{"defaultstate":"minecraft:potted_fern","properties":{}},"minecraft:potted_flowering_azalea_bush":{"defaultstate":"minecraft:potted_flowering_azalea_bush","properties":{}},"minecraft:potted_jungle_sapling":{"defaultstate":"minecraft:potted_jungle_sapling","properties":{}},"minecraft:potted_lily_of_the_valley":{"defaultstate":"minecraft:potted_lily_of_the_valley","properties":{}},"minecraft:potted_oak_sapling":{"defaultstate":"minecraft:potted_oak_sapling","properties":{}},"minecraft:potted_orange_tulip":{"defaultstate":"minecraft:potted_orange_tulip","properties":{}},"minecraft:potted_oxeye_daisy":{"defaultstate":"minecraft:potted_oxeye_daisy","properties":{}},"minecraft:potted_pink_tulip":{"defaultstate":"minecraft:potted_pink_tulip","properties":{}},"minecraft:potted_poppy":{"defaultstate":"minecraft:potted_poppy","properties":{}},"minecraft:potted_red_mushroom":{"defaultstate":"minecraft:potted_red_mushroom","properties":{}},"minecraft:potted_red_tulip":{"defaultstate":"minecraft:potted_red_tulip","properties":{}},"minecraft:potted_spruce_sapling":{"defaultstate":"minecraft:potted_spruce_sapling","properties":{}},"minecraft:potted_warped_fungus":{"defaultstate":"minecraft:potted_warped_fungus","properties":{}},"minecraft:potted_warped_roots":{"defaultstate":"minecraft:potted_warped_roots","properties":{}},"minecraft:potted_white_tulip":{"defaultstate":"minecraft:potted_white_tulip","properties":{}},"minecraft:potted_wither_rose":{"defaultstate":"minecraft:potted_wither_rose","properties":{}},"minecraft:powder_snow":{"defaultstate":"minecraft:powder_snow","properties":{}},"minecraft:powder_snow_cauldron":{"defaultstate":"minecraft:powder_snow_cauldron[level=1]","properties":{"level":{"type":"int","values":["1","2","3"]}}},"minecraft:powered_rail":{"defaultstate":"minecraft:powered_rail[powered=false,shape=north_south,waterlogged=false]","properties":{"powered":{"type":"bool","values":["true","false"]},"shape":{"type":"enum","values":["north_south","east_west","ascending_east","ascending_west","ascending_north","ascending_south"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:prismarine":{"defaultstate":"minecraft:prismarine","properties":{}},"minecraft:prismarine_brick_slab":{"defaultstate":"minecraft:prismarine_brick_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:prismarine_brick_stairs":{"defaultstate":"minecraft:prismarine_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:prismarine_bricks":{"defaultstate":"minecraft:prismarine_bricks","properties":{}},"minecraft:prismarine_slab":{"defaultstate":"minecraft:prismarine_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:prismarine_stairs":{"defaultstate":"minecraft:prismarine_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:prismarine_wall":{"defaultstate":"minecraft:prismarine_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]","properties":{"east":{"type":"enum","values":["none","low","tall"]},"north":{"type":"enum","values":["none","low","tall"]},"south":{"type":"enum","values":["none","low","tall"]},"up":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"enum","values":["none","low","tall"]}}},"minecraft:pumpkin":{"defaultstate":"minecraft:pumpkin","properties":{}},"minecraft:pumpkin_stem":{"defaultstate":"minecraft:pumpkin_stem[age=0]","properties":{"age":{"type":"int","values":["0","1","2","3","4","5","6","7"]}}},"minecraft:purple_banner":{"defaultstate":"minecraft:purple_banner[rotation=0]","properties":{"rotation":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]}}},"minecraft:purple_bed":{"defaultstate":"minecraft:purple_bed[facing=north,occupied=false,part=foot]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"occupied":{"type":"bool","values":["true","false"]},"part":{"type":"enum","values":["head","foot"]}}},"minecraft:purple_candle":{"defaultstate":"minecraft:purple_candle[candles=1,lit=false,waterlogged=false]","properties":{"candles":{"type":"int","values":["1","2","3","4"]},"lit":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:purple_candle_cake":{"defaultstate":"minecraft:purple_candle_cake[lit=false]","properties":{"lit":{"type":"bool","values":["true","false"]}}},"minecraft:purple_carpet":{"defaultstate":"minecraft:purple_carpet","properties":{}},"minecraft:purple_concrete":{"defaultstate":"minecraft:purple_concrete","properties":{}},"minecraft:purple_concrete_powder":{"defaultstate":"minecraft:purple_concrete_powder","properties":{}},"minecraft:purple_glazed_terracotta":{"defaultstate":"minecraft:purple_glazed_terracotta[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:purple_shulker_box":{"defaultstate":"minecraft:purple_shulker_box[facing=up]","properties":{"facing":{"type":"direction","values":["north","east","south","west","up","down"]}}},"minecraft:purple_stained_glass":{"defaultstate":"minecraft:purple_stained_glass","properties":{}},"minecraft:purple_stained_glass_pane":{"defaultstate":"minecraft:purple_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]","properties":{"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:purple_terracotta":{"defaultstate":"minecraft:purple_terracotta","properties":{}},"minecraft:purple_wall_banner":{"defaultstate":"minecraft:purple_wall_banner[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:purple_wool":{"defaultstate":"minecraft:purple_wool","properties":{}},"minecraft:purpur_block":{"defaultstate":"minecraft:purpur_block","properties":{}},"minecraft:purpur_pillar":{"defaultstate":"minecraft:purpur_pillar[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:purpur_slab":{"defaultstate":"minecraft:purpur_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:purpur_stairs":{"defaultstate":"minecraft:purpur_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:quartz_block":{"defaultstate":"minecraft:quartz_block","properties":{}},"minecraft:quartz_bricks":{"defaultstate":"minecraft:quartz_bricks","properties":{}},"minecraft:quartz_pillar":{"defaultstate":"minecraft:quartz_pillar[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:quartz_slab":{"defaultstate":"minecraft:quartz_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:quartz_stairs":{"defaultstate":"minecraft:quartz_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:rail":{"defaultstate":"minecraft:rail[shape=north_south,waterlogged=false]","properties":{"shape":{"type":"enum","values":["north_south","east_west","ascending_east","ascending_west","ascending_north","ascending_south","south_east","south_west","north_west","north_east"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:raw_copper_block":{"defaultstate":"minecraft:raw_copper_block","properties":{}},"minecraft:raw_gold_block":{"defaultstate":"minecraft:raw_gold_block","properties":{}},"minecraft:raw_iron_block":{"defaultstate":"minecraft:raw_iron_block","properties":{}},"minecraft:red_banner":{"defaultstate":"minecraft:red_banner[rotation=0]","properties":{"rotation":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]}}},"minecraft:red_bed":{"defaultstate":"minecraft:red_bed[facing=north,occupied=false,part=foot]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"occupied":{"type":"bool","values":["true","false"]},"part":{"type":"enum","values":["head","foot"]}}},"minecraft:red_candle":{"defaultstate":"minecraft:red_candle[candles=1,lit=false,waterlogged=false]","properties":{"candles":{"type":"int","values":["1","2","3","4"]},"lit":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:red_candle_cake":{"defaultstate":"minecraft:red_candle_cake[lit=false]","properties":{"lit":{"type":"bool","values":["true","false"]}}},"minecraft:red_carpet":{"defaultstate":"minecraft:red_carpet","properties":{}},"minecraft:red_concrete":{"defaultstate":"minecraft:red_concrete","properties":{}},"minecraft:red_concrete_powder":{"defaultstate":"minecraft:red_concrete_powder","properties":{}},"minecraft:red_glazed_terracotta":{"defaultstate":"minecraft:red_glazed_terracotta[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:red_mushroom":{"defaultstate":"minecraft:red_mushroom","properties":{}},"minecraft:red_mushroom_block":{"defaultstate":"minecraft:red_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true]","properties":{"down":{"type":"bool","values":["true","false"]},"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"up":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:red_nether_brick_slab":{"defaultstate":"minecraft:red_nether_brick_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:red_nether_brick_stairs":{"defaultstate":"minecraft:red_nether_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:red_nether_brick_wall":{"defaultstate":"minecraft:red_nether_brick_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]","properties":{"east":{"type":"enum","values":["none","low","tall"]},"north":{"type":"enum","values":["none","low","tall"]},"south":{"type":"enum","values":["none","low","tall"]},"up":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"enum","values":["none","low","tall"]}}},"minecraft:red_nether_bricks":{"defaultstate":"minecraft:red_nether_bricks","properties":{}},"minecraft:red_sand":{"defaultstate":"minecraft:red_sand","properties":{}},"minecraft:red_sandstone":{"defaultstate":"minecraft:red_sandstone","properties":{}},"minecraft:red_sandstone_slab":{"defaultstate":"minecraft:red_sandstone_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:red_sandstone_stairs":{"defaultstate":"minecraft:red_sandstone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:red_sandstone_wall":{"defaultstate":"minecraft:red_sandstone_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]","properties":{"east":{"type":"enum","values":["none","low","tall"]},"north":{"type":"enum","values":["none","low","tall"]},"south":{"type":"enum","values":["none","low","tall"]},"up":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"enum","values":["none","low","tall"]}}},"minecraft:red_shulker_box":{"defaultstate":"minecraft:red_shulker_box[facing=up]","properties":{"facing":{"type":"direction","values":["north","east","south","west","up","down"]}}},"minecraft:red_stained_glass":{"defaultstate":"minecraft:red_stained_glass","properties":{}},"minecraft:red_stained_glass_pane":{"defaultstate":"minecraft:red_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]","properties":{"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:red_terracotta":{"defaultstate":"minecraft:red_terracotta","properties":{}},"minecraft:red_tulip":{"defaultstate":"minecraft:red_tulip","properties":{}},"minecraft:red_wall_banner":{"defaultstate":"minecraft:red_wall_banner[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:red_wool":{"defaultstate":"minecraft:red_wool","properties":{}},"minecraft:redstone_block":{"defaultstate":"minecraft:redstone_block","properties":{}},"minecraft:redstone_lamp":{"defaultstate":"minecraft:redstone_lamp[lit=false]","properties":{"lit":{"type":"bool","values":["true","false"]}}},"minecraft:redstone_ore":{"defaultstate":"minecraft:redstone_ore[lit=false]","properties":{"lit":{"type":"bool","values":["true","false"]}}},"minecraft:redstone_torch":{"defaultstate":"minecraft:redstone_torch[lit=true]","properties":{"lit":{"type":"bool","values":["true","false"]}}},"minecraft:redstone_wall_torch":{"defaultstate":"minecraft:redstone_wall_torch[facing=north,lit=true]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"lit":{"type":"bool","values":["true","false"]}}},"minecraft:redstone_wire":{"defaultstate":"minecraft:redstone_wire[east=none,north=none,power=0,south=none,west=none]","properties":{"east":{"type":"enum","values":["up","side","none"]},"north":{"type":"enum","values":["up","side","none"]},"power":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]},"south":{"type":"enum","values":["up","side","none"]},"west":{"type":"enum","values":["up","side","none"]}}},"minecraft:repeater":{"defaultstate":"minecraft:repeater[delay=1,facing=north,locked=false,powered=false]","properties":{"delay":{"type":"int","values":["1","2","3","4"]},"facing":{"type":"direction","values":["north","south","west","east"]},"locked":{"type":"bool","values":["true","false"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:repeating_command_block":{"defaultstate":"minecraft:repeating_command_block[conditional=false,facing=north]","properties":{"conditional":{"type":"bool","values":["true","false"]},"facing":{"type":"direction","values":["north","east","south","west","up","down"]}}},"minecraft:respawn_anchor":{"defaultstate":"minecraft:respawn_anchor[charges=0]","properties":{"charges":{"type":"int","values":["0","1","2","3","4"]}}},"minecraft:rooted_dirt":{"defaultstate":"minecraft:rooted_dirt","properties":{}},"minecraft:rose_bush":{"defaultstate":"minecraft:rose_bush[half=lower]","properties":{"half":{"type":"enum","values":["upper","lower"]}}},"minecraft:sand":{"defaultstate":"minecraft:sand","properties":{}},"minecraft:sandstone":{"defaultstate":"minecraft:sandstone","properties":{}},"minecraft:sandstone_slab":{"defaultstate":"minecraft:sandstone_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:sandstone_stairs":{"defaultstate":"minecraft:sandstone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:sandstone_wall":{"defaultstate":"minecraft:sandstone_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]","properties":{"east":{"type":"enum","values":["none","low","tall"]},"north":{"type":"enum","values":["none","low","tall"]},"south":{"type":"enum","values":["none","low","tall"]},"up":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"enum","values":["none","low","tall"]}}},"minecraft:scaffolding":{"defaultstate":"minecraft:scaffolding[bottom=false,distance=7,waterlogged=false]","properties":{"bottom":{"type":"bool","values":["true","false"]},"distance":{"type":"int","values":["0","1","2","3","4","5","6","7"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:sculk_sensor":{"defaultstate":"minecraft:sculk_sensor[power=0,sculk_sensor_phase=inactive,waterlogged=false]","properties":{"power":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]},"sculk_sensor_phase":{"type":"enum","values":["inactive","active","cooldown"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:sea_lantern":{"defaultstate":"minecraft:sea_lantern","properties":{}},"minecraft:sea_pickle":{"defaultstate":"minecraft:sea_pickle[pickles=1,waterlogged=true]","properties":{"pickles":{"type":"int","values":["1","2","3","4"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:seagrass":{"defaultstate":"minecraft:seagrass","properties":{}},"minecraft:shroomlight":{"defaultstate":"minecraft:shroomlight","properties":{}},"minecraft:shulker_box":{"defaultstate":"minecraft:shulker_box[facing=up]","properties":{"facing":{"type":"direction","values":["north","east","south","west","up","down"]}}},"minecraft:skeleton_skull":{"defaultstate":"minecraft:skeleton_skull[rotation=0]","properties":{"rotation":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]}}},"minecraft:skeleton_wall_skull":{"defaultstate":"minecraft:skeleton_wall_skull[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:slime_block":{"defaultstate":"minecraft:slime_block","properties":{}},"minecraft:small_amethyst_bud":{"defaultstate":"minecraft:small_amethyst_bud[facing=up,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","east","south","west","up","down"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:small_dripleaf":{"defaultstate":"minecraft:small_dripleaf[facing=north,half=lower,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["upper","lower"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:smithing_table":{"defaultstate":"minecraft:smithing_table","properties":{}},"minecraft:smoker":{"defaultstate":"minecraft:smoker[facing=north,lit=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"lit":{"type":"bool","values":["true","false"]}}},"minecraft:smooth_basalt":{"defaultstate":"minecraft:smooth_basalt","properties":{}},"minecraft:smooth_quartz":{"defaultstate":"minecraft:smooth_quartz","properties":{}},"minecraft:smooth_quartz_slab":{"defaultstate":"minecraft:smooth_quartz_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:smooth_quartz_stairs":{"defaultstate":"minecraft:smooth_quartz_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:smooth_red_sandstone":{"defaultstate":"minecraft:smooth_red_sandstone","properties":{}},"minecraft:smooth_red_sandstone_slab":{"defaultstate":"minecraft:smooth_red_sandstone_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:smooth_red_sandstone_stairs":{"defaultstate":"minecraft:smooth_red_sandstone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:smooth_sandstone":{"defaultstate":"minecraft:smooth_sandstone","properties":{}},"minecraft:smooth_sandstone_slab":{"defaultstate":"minecraft:smooth_sandstone_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:smooth_sandstone_stairs":{"defaultstate":"minecraft:smooth_sandstone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:smooth_stone":{"defaultstate":"minecraft:smooth_stone","properties":{}},"minecraft:smooth_stone_slab":{"defaultstate":"minecraft:smooth_stone_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:snow":{"defaultstate":"minecraft:snow[layers=1]","properties":{"layers":{"type":"int","values":["1","2","3","4","5","6","7","8"]}}},"minecraft:snow_block":{"defaultstate":"minecraft:snow_block","properties":{}},"minecraft:soul_campfire":{"defaultstate":"minecraft:soul_campfire[facing=north,lit=true,signal_fire=false,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"lit":{"type":"bool","values":["true","false"]},"signal_fire":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:soul_fire":{"defaultstate":"minecraft:soul_fire","properties":{}},"minecraft:soul_lantern":{"defaultstate":"minecraft:soul_lantern[hanging=false,waterlogged=false]","properties":{"hanging":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:soul_sand":{"defaultstate":"minecraft:soul_sand","properties":{}},"minecraft:soul_soil":{"defaultstate":"minecraft:soul_soil","properties":{}},"minecraft:soul_torch":{"defaultstate":"minecraft:soul_torch","properties":{}},"minecraft:soul_wall_torch":{"defaultstate":"minecraft:soul_wall_torch[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:spawner":{"defaultstate":"minecraft:spawner","properties":{}},"minecraft:sponge":{"defaultstate":"minecraft:sponge","properties":{}},"minecraft:spore_blossom":{"defaultstate":"minecraft:spore_blossom","properties":{}},"minecraft:spruce_button":{"defaultstate":"minecraft:spruce_button[face=wall,facing=north,powered=false]","properties":{"face":{"type":"enum","values":["floor","wall","ceiling"]},"facing":{"type":"direction","values":["north","south","west","east"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:spruce_door":{"defaultstate":"minecraft:spruce_door[facing=north,half=lower,hinge=left,open=false,powered=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["upper","lower"]},"hinge":{"type":"enum","values":["left","right"]},"open":{"type":"bool","values":["true","false"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:spruce_fence":{"defaultstate":"minecraft:spruce_fence[east=false,north=false,south=false,waterlogged=false,west=false]","properties":{"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:spruce_fence_gate":{"defaultstate":"minecraft:spruce_fence_gate[facing=north,in_wall=false,open=false,powered=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"in_wall":{"type":"bool","values":["true","false"]},"open":{"type":"bool","values":["true","false"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:spruce_leaves":{"defaultstate":"minecraft:spruce_leaves[distance=7,persistent=false]","properties":{"distance":{"type":"int","values":["1","2","3","4","5","6","7"]},"persistent":{"type":"bool","values":["true","false"]}}},"minecraft:spruce_log":{"defaultstate":"minecraft:spruce_log[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:spruce_planks":{"defaultstate":"minecraft:spruce_planks","properties":{}},"minecraft:spruce_pressure_plate":{"defaultstate":"minecraft:spruce_pressure_plate[powered=false]","properties":{"powered":{"type":"bool","values":["true","false"]}}},"minecraft:spruce_sapling":{"defaultstate":"minecraft:spruce_sapling[stage=0]","properties":{"stage":{"type":"int","values":["0","1"]}}},"minecraft:spruce_sign":{"defaultstate":"minecraft:spruce_sign[rotation=0,waterlogged=false]","properties":{"rotation":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:spruce_slab":{"defaultstate":"minecraft:spruce_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:spruce_stairs":{"defaultstate":"minecraft:spruce_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:spruce_trapdoor":{"defaultstate":"minecraft:spruce_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"open":{"type":"bool","values":["true","false"]},"powered":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:spruce_wall_sign":{"defaultstate":"minecraft:spruce_wall_sign[facing=north,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:spruce_wood":{"defaultstate":"minecraft:spruce_wood[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:sticky_piston":{"defaultstate":"minecraft:sticky_piston[extended=false,facing=north]","properties":{"extended":{"type":"bool","values":["true","false"]},"facing":{"type":"direction","values":["north","east","south","west","up","down"]}}},"minecraft:stone":{"defaultstate":"minecraft:stone","properties":{}},"minecraft:stone_brick_slab":{"defaultstate":"minecraft:stone_brick_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:stone_brick_stairs":{"defaultstate":"minecraft:stone_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:stone_brick_wall":{"defaultstate":"minecraft:stone_brick_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]","properties":{"east":{"type":"enum","values":["none","low","tall"]},"north":{"type":"enum","values":["none","low","tall"]},"south":{"type":"enum","values":["none","low","tall"]},"up":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"enum","values":["none","low","tall"]}}},"minecraft:stone_bricks":{"defaultstate":"minecraft:stone_bricks","properties":{}},"minecraft:stone_button":{"defaultstate":"minecraft:stone_button[face=wall,facing=north,powered=false]","properties":{"face":{"type":"enum","values":["floor","wall","ceiling"]},"facing":{"type":"direction","values":["north","south","west","east"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:stone_pressure_plate":{"defaultstate":"minecraft:stone_pressure_plate[powered=false]","properties":{"powered":{"type":"bool","values":["true","false"]}}},"minecraft:stone_slab":{"defaultstate":"minecraft:stone_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:stone_stairs":{"defaultstate":"minecraft:stone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:stonecutter":{"defaultstate":"minecraft:stonecutter[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:stripped_acacia_log":{"defaultstate":"minecraft:stripped_acacia_log[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:stripped_acacia_wood":{"defaultstate":"minecraft:stripped_acacia_wood[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:stripped_birch_log":{"defaultstate":"minecraft:stripped_birch_log[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:stripped_birch_wood":{"defaultstate":"minecraft:stripped_birch_wood[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:stripped_crimson_hyphae":{"defaultstate":"minecraft:stripped_crimson_hyphae[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:stripped_crimson_stem":{"defaultstate":"minecraft:stripped_crimson_stem[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:stripped_dark_oak_log":{"defaultstate":"minecraft:stripped_dark_oak_log[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:stripped_dark_oak_wood":{"defaultstate":"minecraft:stripped_dark_oak_wood[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:stripped_jungle_log":{"defaultstate":"minecraft:stripped_jungle_log[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:stripped_jungle_wood":{"defaultstate":"minecraft:stripped_jungle_wood[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:stripped_oak_log":{"defaultstate":"minecraft:stripped_oak_log[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:stripped_oak_wood":{"defaultstate":"minecraft:stripped_oak_wood[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:stripped_spruce_log":{"defaultstate":"minecraft:stripped_spruce_log[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:stripped_spruce_wood":{"defaultstate":"minecraft:stripped_spruce_wood[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:stripped_warped_hyphae":{"defaultstate":"minecraft:stripped_warped_hyphae[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:stripped_warped_stem":{"defaultstate":"minecraft:stripped_warped_stem[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:structure_block":{"defaultstate":"minecraft:structure_block[mode=load]","properties":{"mode":{"type":"enum","values":["save","load","corner","data"]}}},"minecraft:structure_void":{"defaultstate":"minecraft:structure_void","properties":{}},"minecraft:sugar_cane":{"defaultstate":"minecraft:sugar_cane[age=0]","properties":{"age":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]}}},"minecraft:sunflower":{"defaultstate":"minecraft:sunflower[half=lower]","properties":{"half":{"type":"enum","values":["upper","lower"]}}},"minecraft:sweet_berry_bush":{"defaultstate":"minecraft:sweet_berry_bush[age=0]","properties":{"age":{"type":"int","values":["0","1","2","3"]}}},"minecraft:tall_grass":{"defaultstate":"minecraft:tall_grass[half=lower]","properties":{"half":{"type":"enum","values":["upper","lower"]}}},"minecraft:tall_seagrass":{"defaultstate":"minecraft:tall_seagrass[half=lower]","properties":{"half":{"type":"enum","values":["upper","lower"]}}},"minecraft:target":{"defaultstate":"minecraft:target[power=0]","properties":{"power":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]}}},"minecraft:terracotta":{"defaultstate":"minecraft:terracotta","properties":{}},"minecraft:tinted_glass":{"defaultstate":"minecraft:tinted_glass","properties":{}},"minecraft:tnt":{"defaultstate":"minecraft:tnt[unstable=false]","properties":{"unstable":{"type":"bool","values":["true","false"]}}},"minecraft:torch":{"defaultstate":"minecraft:torch","properties":{}},"minecraft:trapped_chest":{"defaultstate":"minecraft:trapped_chest[facing=north,type=single,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"type":{"type":"enum","values":["single","left","right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:tripwire":{"defaultstate":"minecraft:tripwire[attached=false,disarmed=false,east=false,north=false,powered=false,south=false,west=false]","properties":{"attached":{"type":"bool","values":["true","false"]},"disarmed":{"type":"bool","values":["true","false"]},"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"powered":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:tripwire_hook":{"defaultstate":"minecraft:tripwire_hook[attached=false,facing=north,powered=false]","properties":{"attached":{"type":"bool","values":["true","false"]},"facing":{"type":"direction","values":["north","south","west","east"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:tube_coral":{"defaultstate":"minecraft:tube_coral[waterlogged=true]","properties":{"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:tube_coral_block":{"defaultstate":"minecraft:tube_coral_block","properties":{}},"minecraft:tube_coral_fan":{"defaultstate":"minecraft:tube_coral_fan[waterlogged=true]","properties":{"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:tube_coral_wall_fan":{"defaultstate":"minecraft:tube_coral_wall_fan[facing=north,waterlogged=true]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:tuff":{"defaultstate":"minecraft:tuff","properties":{}},"minecraft:turtle_egg":{"defaultstate":"minecraft:turtle_egg[eggs=1,hatch=0]","properties":{"eggs":{"type":"int","values":["1","2","3","4"]},"hatch":{"type":"int","values":["0","1","2"]}}},"minecraft:twisting_vines":{"defaultstate":"minecraft:twisting_vines[age=0]","properties":{"age":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25"]}}},"minecraft:twisting_vines_plant":{"defaultstate":"minecraft:twisting_vines_plant","properties":{}},"minecraft:vine":{"defaultstate":"minecraft:vine[east=false,north=false,south=false,up=false,west=false]","properties":{"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"up":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:void_air":{"defaultstate":"minecraft:void_air","properties":{}},"minecraft:wall_torch":{"defaultstate":"minecraft:wall_torch[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:warped_button":{"defaultstate":"minecraft:warped_button[face=wall,facing=north,powered=false]","properties":{"face":{"type":"enum","values":["floor","wall","ceiling"]},"facing":{"type":"direction","values":["north","south","west","east"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:warped_door":{"defaultstate":"minecraft:warped_door[facing=north,half=lower,hinge=left,open=false,powered=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["upper","lower"]},"hinge":{"type":"enum","values":["left","right"]},"open":{"type":"bool","values":["true","false"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:warped_fence":{"defaultstate":"minecraft:warped_fence[east=false,north=false,south=false,waterlogged=false,west=false]","properties":{"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:warped_fence_gate":{"defaultstate":"minecraft:warped_fence_gate[facing=north,in_wall=false,open=false,powered=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"in_wall":{"type":"bool","values":["true","false"]},"open":{"type":"bool","values":["true","false"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:warped_fungus":{"defaultstate":"minecraft:warped_fungus","properties":{}},"minecraft:warped_hyphae":{"defaultstate":"minecraft:warped_hyphae[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:warped_nylium":{"defaultstate":"minecraft:warped_nylium","properties":{}},"minecraft:warped_planks":{"defaultstate":"minecraft:warped_planks","properties":{}},"minecraft:warped_pressure_plate":{"defaultstate":"minecraft:warped_pressure_plate[powered=false]","properties":{"powered":{"type":"bool","values":["true","false"]}}},"minecraft:warped_roots":{"defaultstate":"minecraft:warped_roots","properties":{}},"minecraft:warped_sign":{"defaultstate":"minecraft:warped_sign[rotation=0,waterlogged=false]","properties":{"rotation":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:warped_slab":{"defaultstate":"minecraft:warped_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:warped_stairs":{"defaultstate":"minecraft:warped_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:warped_stem":{"defaultstate":"minecraft:warped_stem[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:warped_trapdoor":{"defaultstate":"minecraft:warped_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"open":{"type":"bool","values":["true","false"]},"powered":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:warped_wall_sign":{"defaultstate":"minecraft:warped_wall_sign[facing=north,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:warped_wart_block":{"defaultstate":"minecraft:warped_wart_block","properties":{}},"minecraft:water":{"defaultstate":"minecraft:water[level=0]","properties":{"level":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]}}},"minecraft:water_cauldron":{"defaultstate":"minecraft:water_cauldron[level=1]","properties":{"level":{"type":"int","values":["1","2","3"]}}},"minecraft:waxed_copper_block":{"defaultstate":"minecraft:waxed_copper_block","properties":{}},"minecraft:waxed_cut_copper":{"defaultstate":"minecraft:waxed_cut_copper","properties":{}},"minecraft:waxed_cut_copper_slab":{"defaultstate":"minecraft:waxed_cut_copper_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:waxed_cut_copper_stairs":{"defaultstate":"minecraft:waxed_cut_copper_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:waxed_exposed_copper":{"defaultstate":"minecraft:waxed_exposed_copper","properties":{}},"minecraft:waxed_exposed_cut_copper":{"defaultstate":"minecraft:waxed_exposed_cut_copper","properties":{}},"minecraft:waxed_exposed_cut_copper_slab":{"defaultstate":"minecraft:waxed_exposed_cut_copper_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:waxed_exposed_cut_copper_stairs":{"defaultstate":"minecraft:waxed_exposed_cut_copper_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:waxed_oxidized_copper":{"defaultstate":"minecraft:waxed_oxidized_copper","properties":{}},"minecraft:waxed_oxidized_cut_copper":{"defaultstate":"minecraft:waxed_oxidized_cut_copper","properties":{}},"minecraft:waxed_oxidized_cut_copper_slab":{"defaultstate":"minecraft:waxed_oxidized_cut_copper_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:waxed_oxidized_cut_copper_stairs":{"defaultstate":"minecraft:waxed_oxidized_cut_copper_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:waxed_weathered_copper":{"defaultstate":"minecraft:waxed_weathered_copper","properties":{}},"minecraft:waxed_weathered_cut_copper":{"defaultstate":"minecraft:waxed_weathered_cut_copper","properties":{}},"minecraft:waxed_weathered_cut_copper_slab":{"defaultstate":"minecraft:waxed_weathered_cut_copper_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:waxed_weathered_cut_copper_stairs":{"defaultstate":"minecraft:waxed_weathered_cut_copper_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:weathered_copper":{"defaultstate":"minecraft:weathered_copper","properties":{}},"minecraft:weathered_cut_copper":{"defaultstate":"minecraft:weathered_cut_copper","properties":{}},"minecraft:weathered_cut_copper_slab":{"defaultstate":"minecraft:weathered_cut_copper_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:weathered_cut_copper_stairs":{"defaultstate":"minecraft:weathered_cut_copper_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:weeping_vines":{"defaultstate":"minecraft:weeping_vines[age=0]","properties":{"age":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25"]}}},"minecraft:weeping_vines_plant":{"defaultstate":"minecraft:weeping_vines_plant","properties":{}},"minecraft:wet_sponge":{"defaultstate":"minecraft:wet_sponge","properties":{}},"minecraft:wheat":{"defaultstate":"minecraft:wheat[age=0]","properties":{"age":{"type":"int","values":["0","1","2","3","4","5","6","7"]}}},"minecraft:white_banner":{"defaultstate":"minecraft:white_banner[rotation=0]","properties":{"rotation":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]}}},"minecraft:white_bed":{"defaultstate":"minecraft:white_bed[facing=north,occupied=false,part=foot]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"occupied":{"type":"bool","values":["true","false"]},"part":{"type":"enum","values":["head","foot"]}}},"minecraft:white_candle":{"defaultstate":"minecraft:white_candle[candles=1,lit=false,waterlogged=false]","properties":{"candles":{"type":"int","values":["1","2","3","4"]},"lit":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:white_candle_cake":{"defaultstate":"minecraft:white_candle_cake[lit=false]","properties":{"lit":{"type":"bool","values":["true","false"]}}},"minecraft:white_carpet":{"defaultstate":"minecraft:white_carpet","properties":{}},"minecraft:white_concrete":{"defaultstate":"minecraft:white_concrete","properties":{}},"minecraft:white_concrete_powder":{"defaultstate":"minecraft:white_concrete_powder","properties":{}},"minecraft:white_glazed_terracotta":{"defaultstate":"minecraft:white_glazed_terracotta[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:white_shulker_box":{"defaultstate":"minecraft:white_shulker_box[facing=up]","properties":{"facing":{"type":"direction","values":["north","east","south","west","up","down"]}}},"minecraft:white_stained_glass":{"defaultstate":"minecraft:white_stained_glass","properties":{}},"minecraft:white_stained_glass_pane":{"defaultstate":"minecraft:white_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]","properties":{"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:white_terracotta":{"defaultstate":"minecraft:white_terracotta","properties":{}},"minecraft:white_tulip":{"defaultstate":"minecraft:white_tulip","properties":{}},"minecraft:white_wall_banner":{"defaultstate":"minecraft:white_wall_banner[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:white_wool":{"defaultstate":"minecraft:white_wool","properties":{}},"minecraft:wither_rose":{"defaultstate":"minecraft:wither_rose","properties":{}},"minecraft:wither_skeleton_skull":{"defaultstate":"minecraft:wither_skeleton_skull[rotation=0]","properties":{"rotation":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]}}},"minecraft:wither_skeleton_wall_skull":{"defaultstate":"minecraft:wither_skeleton_wall_skull[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:yellow_banner":{"defaultstate":"minecraft:yellow_banner[rotation=0]","properties":{"rotation":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]}}},"minecraft:yellow_bed":{"defaultstate":"minecraft:yellow_bed[facing=north,occupied=false,part=foot]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"occupied":{"type":"bool","values":["true","false"]},"part":{"type":"enum","values":["head","foot"]}}},"minecraft:yellow_candle":{"defaultstate":"minecraft:yellow_candle[candles=1,lit=false,waterlogged=false]","properties":{"candles":{"type":"int","values":["1","2","3","4"]},"lit":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:yellow_candle_cake":{"defaultstate":"minecraft:yellow_candle_cake[lit=false]","properties":{"lit":{"type":"bool","values":["true","false"]}}},"minecraft:yellow_carpet":{"defaultstate":"minecraft:yellow_carpet","properties":{}},"minecraft:yellow_concrete":{"defaultstate":"minecraft:yellow_concrete","properties":{}},"minecraft:yellow_concrete_powder":{"defaultstate":"minecraft:yellow_concrete_powder","properties":{}},"minecraft:yellow_glazed_terracotta":{"defaultstate":"minecraft:yellow_glazed_terracotta[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:yellow_shulker_box":{"defaultstate":"minecraft:yellow_shulker_box[facing=up]","properties":{"facing":{"type":"direction","values":["north","east","south","west","up","down"]}}},"minecraft:yellow_stained_glass":{"defaultstate":"minecraft:yellow_stained_glass","properties":{}},"minecraft:yellow_stained_glass_pane":{"defaultstate":"minecraft:yellow_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]","properties":{"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:yellow_terracotta":{"defaultstate":"minecraft:yellow_terracotta","properties":{}},"minecraft:yellow_wall_banner":{"defaultstate":"minecraft:yellow_wall_banner[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:yellow_wool":{"defaultstate":"minecraft:yellow_wool","properties":{}},"minecraft:zombie_head":{"defaultstate":"minecraft:zombie_head[rotation=0]","properties":{"rotation":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]}}},"minecraft:zombie_wall_head":{"defaultstate":"minecraft:zombie_wall_head[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}}},"blocktags":{"minecraft:acacia_logs":["minecraft:acacia_log","minecraft:acacia_wood","minecraft:stripped_acacia_log","minecraft:stripped_acacia_wood"],"minecraft:anvil":["minecraft:anvil","minecraft:chipped_anvil","minecraft:damaged_anvil"],"minecraft:bamboo_plantable_on":["minecraft:bamboo","minecraft:bamboo_sapling","minecraft:coarse_dirt","minecraft:dirt","minecraft:grass_block","minecraft:gravel","minecraft:moss_block","minecraft:mycelium","minecraft:podzol","minecraft:red_sand","minecraft:rooted_dirt","minecraft:sand"],"minecraft:banners":["minecraft:black_banner","minecraft:black_wall_banner","minecraft:blue_banner","minecraft:blue_wall_banner","minecraft:brown_banner","minecraft:brown_wall_banner","minecraft:cyan_banner","minecraft:cyan_wall_banner","minecraft:gray_banner","minecraft:gray_wall_banner","minecraft:green_banner","minecraft:green_wall_banner","minecraft:light_blue_banner","minecraft:light_blue_wall_banner","minecraft:light_gray_banner","minecraft:light_gray_wall_banner","minecraft:lime_banner","minecraft:lime_wall_banner","minecraft:magenta_banner","minecraft:magenta_wall_banner","minecraft:orange_banner","minecraft:orange_wall_banner","minecraft:pink_banner","minecraft:pink_wall_banner","minecraft:purple_banner","minecraft:purple_wall_banner","minecraft:red_banner","minecraft:red_wall_banner","minecraft:white_banner","minecraft:white_wall_banner","minecraft:yellow_banner","minecraft:yellow_wall_banner"],"minecraft:base_stone_nether":["minecraft:basalt","minecraft:blackstone","minecraft:netherrack"],"minecraft:base_stone_overworld":["minecraft:andesite","minecraft:deepslate","minecraft:diorite","minecraft:granite","minecraft:stone","minecraft:tuff"],"minecraft:beacon_base_blocks":["minecraft:diamond_block","minecraft:emerald_block","minecraft:gold_block","minecraft:iron_block","minecraft:netherite_block"],"minecraft:beds":["minecraft:black_bed","minecraft:blue_bed","minecraft:brown_bed","minecraft:cyan_bed","minecraft:gray_bed","minecraft:green_bed","minecraft:light_blue_bed","minecraft:light_gray_bed","minecraft:lime_bed","minecraft:magenta_bed","minecraft:orange_bed","minecraft:pink_bed","minecraft:purple_bed","minecraft:red_bed","minecraft:white_bed","minecraft:yellow_bed"],"minecraft:bee_growables":["minecraft:beetroots","minecraft:carrots","minecraft:cave_vines","minecraft:cave_vines_plant","minecraft:melon_stem","minecraft:potatoes","minecraft:pumpkin_stem","minecraft:sweet_berry_bush","minecraft:wheat"],"minecraft:beehives":["minecraft:bee_nest","minecraft:beehive"],"minecraft:birch_logs":["minecraft:birch_log","minecraft:birch_wood","minecraft:stripped_birch_log","minecraft:stripped_birch_wood"],"minecraft:buttons":["minecraft:acacia_button","minecraft:birch_button","minecraft:crimson_button","minecraft:dark_oak_button","minecraft:jungle_button","minecraft:oak_button","minecraft:polished_blackstone_button","minecraft:spruce_button","minecraft:stone_button","minecraft:warped_button"],"minecraft:campfires":["minecraft:campfire","minecraft:soul_campfire"],"minecraft:candle_cakes":["minecraft:black_candle_cake","minecraft:blue_candle_cake","minecraft:brown_candle_cake","minecraft:candle_cake","minecraft:cyan_candle_cake","minecraft:gray_candle_cake","minecraft:green_candle_cake","minecraft:light_blue_candle_cake","minecraft:light_gray_candle_cake","minecraft:lime_candle_cake","minecraft:magenta_candle_cake","minecraft:orange_candle_cake","minecraft:pink_candle_cake","minecraft:purple_candle_cake","minecraft:red_candle_cake","minecraft:white_candle_cake","minecraft:yellow_candle_cake"],"minecraft:candles":["minecraft:black_candle","minecraft:blue_candle","minecraft:brown_candle","minecraft:candle","minecraft:cyan_candle","minecraft:gray_candle","minecraft:green_candle","minecraft:light_blue_candle","minecraft:light_gray_candle","minecraft:lime_candle","minecraft:magenta_candle","minecraft:orange_candle","minecraft:pink_candle","minecraft:purple_candle","minecraft:red_candle","minecraft:white_candle","minecraft:yellow_candle"],"minecraft:carpets":["minecraft:black_carpet","minecraft:blue_carpet","minecraft:brown_carpet","minecraft:cyan_carpet","minecraft:gray_carpet","minecraft:green_carpet","minecraft:light_blue_carpet","minecraft:light_gray_carpet","minecraft:lime_carpet","minecraft:magenta_carpet","minecraft:orange_carpet","minecraft:pink_carpet","minecraft:purple_carpet","minecraft:red_carpet","minecraft:white_carpet","minecraft:yellow_carpet"],"minecraft:cauldrons":["minecraft:cauldron","minecraft:lava_cauldron","minecraft:powder_snow_cauldron","minecraft:water_cauldron"],"minecraft:cave_vines":["minecraft:cave_vines","minecraft:cave_vines_plant"],"minecraft:climbable":["minecraft:cave_vines","minecraft:cave_vines_plant","minecraft:ladder","minecraft:scaffolding","minecraft:twisting_vines","minecraft:twisting_vines_plant","minecraft:vine","minecraft:weeping_vines","minecraft:weeping_vines_plant"],"minecraft:coal_ores":["minecraft:coal_ore","minecraft:deepslate_coal_ore"],"minecraft:copper_ores":["minecraft:copper_ore","minecraft:deepslate_copper_ore"],"minecraft:coral_blocks":["minecraft:brain_coral_block","minecraft:bubble_coral_block","minecraft:fire_coral_block","minecraft:horn_coral_block","minecraft:tube_coral_block"],"minecraft:coral_plants":["minecraft:brain_coral","minecraft:bubble_coral","minecraft:fire_coral","minecraft:horn_coral","minecraft:tube_coral"],"minecraft:corals":["minecraft:brain_coral","minecraft:brain_coral_fan","minecraft:bubble_coral","minecraft:bubble_coral_fan","minecraft:fire_coral","minecraft:fire_coral_fan","minecraft:horn_coral","minecraft:horn_coral_fan","minecraft:tube_coral","minecraft:tube_coral_fan"],"minecraft:crimson_stems":["minecraft:crimson_hyphae","minecraft:crimson_stem","minecraft:stripped_crimson_hyphae","minecraft:stripped_crimson_stem"],"minecraft:crops":["minecraft:beetroots","minecraft:carrots","minecraft:melon_stem","minecraft:potatoes","minecraft:pumpkin_stem","minecraft:wheat"],"minecraft:crystal_sound_blocks":["minecraft:amethyst_block","minecraft:budding_amethyst"],"minecraft:dark_oak_logs":["minecraft:dark_oak_log","minecraft:dark_oak_wood","minecraft:stripped_dark_oak_log","minecraft:stripped_dark_oak_wood"],"minecraft:deepslate_ore_replaceables":["minecraft:deepslate","minecraft:tuff"],"minecraft:diamond_ores":["minecraft:deepslate_diamond_ore","minecraft:diamond_ore"],"minecraft:dirt":["minecraft:coarse_dirt","minecraft:dirt","minecraft:grass_block","minecraft:moss_block","minecraft:mycelium","minecraft:podzol","minecraft:rooted_dirt"],"minecraft:doors":["minecraft:acacia_door","minecraft:birch_door","minecraft:crimson_door","minecraft:dark_oak_door","minecraft:iron_door","minecraft:jungle_door","minecraft:oak_door","minecraft:spruce_door","minecraft:warped_door"],"minecraft:dragon_immune":["minecraft:barrier","minecraft:bedrock","minecraft:chain_command_block","minecraft:command_block","minecraft:crying_obsidian","minecraft:end_gateway","minecraft:end_portal","minecraft:end_portal_frame","minecraft:end_stone","minecraft:iron_bars","minecraft:jigsaw","minecraft:moving_piston","minecraft:obsidian","minecraft:repeating_command_block","minecraft:respawn_anchor","minecraft:structure_block"],"minecraft:dripstone_replaceable_blocks":["minecraft:andesite","minecraft:deepslate","minecraft:diorite","minecraft:dirt","minecraft:granite","minecraft:stone","minecraft:tuff"],"minecraft:emerald_ores":["minecraft:deepslate_emerald_ore","minecraft:emerald_ore"],"minecraft:enderman_holdable":["minecraft:allium","minecraft:azure_bluet","minecraft:blue_orchid","minecraft:brown_mushroom","minecraft:cactus","minecraft:carved_pumpkin","minecraft:clay","minecraft:coarse_dirt","minecraft:cornflower","minecraft:crimson_fungus","minecraft:crimson_nylium","minecraft:crimson_roots","minecraft:dandelion","minecraft:dirt","minecraft:grass_block","minecraft:gravel","minecraft:lily_of_the_valley","minecraft:melon","minecraft:moss_block","minecraft:mycelium","minecraft:orange_tulip","minecraft:oxeye_daisy","minecraft:pink_tulip","minecraft:podzol","minecraft:poppy","minecraft:pumpkin","minecraft:red_mushroom","minecraft:red_sand","minecraft:red_tulip","minecraft:rooted_dirt","minecraft:sand","minecraft:tnt","minecraft:warped_fungus","minecraft:warped_nylium","minecraft:warped_roots","minecraft:white_tulip","minecraft:wither_rose"],"minecraft:features_cannot_replace":["minecraft:bedrock","minecraft:chest","minecraft:end_portal_frame","minecraft:spawner"],"minecraft:fence_gates":["minecraft:acacia_fence_gate","minecraft:birch_fence_gate","minecraft:crimson_fence_gate","minecraft:dark_oak_fence_gate","minecraft:jungle_fence_gate","minecraft:oak_fence_gate","minecraft:spruce_fence_gate","minecraft:warped_fence_gate"],"minecraft:fences":["minecraft:acacia_fence","minecraft:birch_fence","minecraft:crimson_fence","minecraft:dark_oak_fence","minecraft:jungle_fence","minecraft:nether_brick_fence","minecraft:oak_fence","minecraft:spruce_fence","minecraft:warped_fence"],"minecraft:fire":["minecraft:fire","minecraft:soul_fire"],"minecraft:flower_pots":["minecraft:flower_pot","minecraft:potted_acacia_sapling","minecraft:potted_allium","minecraft:potted_azalea_bush","minecraft:potted_azure_bluet","minecraft:potted_bamboo","minecraft:potted_birch_sapling","minecraft:potted_blue_orchid","minecraft:potted_brown_mushroom","minecraft:potted_cactus","minecraft:potted_cornflower","minecraft:potted_crimson_fungus","minecraft:potted_crimson_roots","minecraft:potted_dandelion","minecraft:potted_dark_oak_sapling","minecraft:potted_dead_bush","minecraft:potted_fern","minecraft:potted_flowering_azalea_bush","minecraft:potted_jungle_sapling","minecraft:potted_lily_of_the_valley","minecraft:potted_oak_sapling","minecraft:potted_orange_tulip","minecraft:potted_oxeye_daisy","minecraft:potted_pink_tulip","minecraft:potted_poppy","minecraft:potted_red_mushroom","minecraft:potted_red_tulip","minecraft:potted_spruce_sapling","minecraft:potted_warped_fungus","minecraft:potted_warped_roots","minecraft:potted_white_tulip","minecraft:potted_wither_rose"],"minecraft:flowers":["minecraft:allium","minecraft:azure_bluet","minecraft:blue_orchid","minecraft:cornflower","minecraft:dandelion","minecraft:flowering_azalea","minecraft:flowering_azalea_leaves","minecraft:lilac","minecraft:lily_of_the_valley","minecraft:orange_tulip","minecraft:oxeye_daisy","minecraft:peony","minecraft:pink_tulip","minecraft:poppy","minecraft:red_tulip","minecraft:rose_bush","minecraft:sunflower","minecraft:white_tulip","minecraft:wither_rose"],"minecraft:geode_invalid_blocks":["minecraft:bedrock","minecraft:blue_ice","minecraft:ice","minecraft:lava","minecraft:packed_ice","minecraft:water"],"minecraft:gold_ores":["minecraft:deepslate_gold_ore","minecraft:gold_ore","minecraft:nether_gold_ore"],"minecraft:guarded_by_piglins":["minecraft:barrel","minecraft:black_shulker_box","minecraft:blue_shulker_box","minecraft:brown_shulker_box","minecraft:chest","minecraft:cyan_shulker_box","minecraft:deepslate_gold_ore","minecraft:ender_chest","minecraft:gilded_blackstone","minecraft:gold_block","minecraft:gold_ore","minecraft:gray_shulker_box","minecraft:green_shulker_box","minecraft:light_blue_shulker_box","minecraft:light_gray_shulker_box","minecraft:lime_shulker_box","minecraft:magenta_shulker_box","minecraft:nether_gold_ore","minecraft:orange_shulker_box","minecraft:pink_shulker_box","minecraft:purple_shulker_box","minecraft:raw_gold_block","minecraft:red_shulker_box","minecraft:shulker_box","minecraft:trapped_chest","minecraft:white_shulker_box","minecraft:yellow_shulker_box"],"minecraft:hoglin_repellents":["minecraft:nether_portal","minecraft:potted_warped_fungus","minecraft:respawn_anchor","minecraft:warped_fungus"],"minecraft:ice":["minecraft:blue_ice","minecraft:frosted_ice","minecraft:ice","minecraft:packed_ice"],"minecraft:impermeable":["minecraft:black_stained_glass","minecraft:blue_stained_glass","minecraft:brown_stained_glass","minecraft:cyan_stained_glass","minecraft:glass","minecraft:gray_stained_glass","minecraft:green_stained_glass","minecraft:light_blue_stained_glass","minecraft:light_gray_stained_glass","minecraft:lime_stained_glass","minecraft:magenta_stained_glass","minecraft:orange_stained_glass","minecraft:pink_stained_glass","minecraft:purple_stained_glass","minecraft:red_stained_glass","minecraft:tinted_glass","minecraft:white_stained_glass","minecraft:yellow_stained_glass"],"minecraft:infiniburn_end":["minecraft:bedrock","minecraft:magma_block","minecraft:netherrack"],"minecraft:infiniburn_nether":["minecraft:magma_block","minecraft:netherrack"],"minecraft:infiniburn_overworld":["minecraft:magma_block","minecraft:netherrack"],"minecraft:inside_step_sound_blocks":["minecraft:powder_snow","minecraft:snow"],"minecraft:iron_ores":["minecraft:deepslate_iron_ore","minecraft:iron_ore"],"minecraft:jungle_logs":["minecraft:jungle_log","minecraft:jungle_wood","minecraft:stripped_jungle_log","minecraft:stripped_jungle_wood"],"minecraft:lapis_ores":["minecraft:deepslate_lapis_ore","minecraft:lapis_ore"],"minecraft:lava_pool_stone_replaceables":["minecraft:acacia_leaves","minecraft:azalea_leaves","minecraft:bedrock","minecraft:birch_leaves","minecraft:chest","minecraft:dark_oak_leaves","minecraft:end_portal_frame","minecraft:flowering_azalea_leaves","minecraft:jungle_leaves","minecraft:oak_leaves","minecraft:spawner","minecraft:spruce_leaves"],"minecraft:leaves":["minecraft:acacia_leaves","minecraft:azalea_leaves","minecraft:birch_leaves","minecraft:dark_oak_leaves","minecraft:flowering_azalea_leaves","minecraft:jungle_leaves","minecraft:oak_leaves","minecraft:spruce_leaves"],"minecraft:logs":["minecraft:acacia_log","minecraft:acacia_wood","minecraft:birch_log","minecraft:birch_wood","minecraft:crimson_hyphae","minecraft:crimson_stem","minecraft:dark_oak_log","minecraft:dark_oak_wood","minecraft:jungle_log","minecraft:jungle_wood","minecraft:oak_log","minecraft:oak_wood","minecraft:spruce_log","minecraft:spruce_wood","minecraft:stripped_acacia_log","minecraft:stripped_acacia_wood","minecraft:stripped_birch_log","minecraft:stripped_birch_wood","minecraft:stripped_crimson_hyphae","minecraft:stripped_crimson_stem","minecraft:stripped_dark_oak_log","minecraft:stripped_dark_oak_wood","minecraft:stripped_jungle_log","minecraft:stripped_jungle_wood","minecraft:stripped_oak_log","minecraft:stripped_oak_wood","minecraft:stripped_spruce_log","minecraft:stripped_spruce_wood","minecraft:stripped_warped_hyphae","minecraft:stripped_warped_stem","minecraft:warped_hyphae","minecraft:warped_stem"],"minecraft:logs_that_burn":["minecraft:acacia_log","minecraft:acacia_wood","minecraft:birch_log","minecraft:birch_wood","minecraft:dark_oak_log","minecraft:dark_oak_wood","minecraft:jungle_log","minecraft:jungle_wood","minecraft:oak_log","minecraft:oak_wood","minecraft:spruce_log","minecraft:spruce_wood","minecraft:stripped_acacia_log","minecraft:stripped_acacia_wood","minecraft:stripped_birch_log","minecraft:stripped_birch_wood","minecraft:stripped_dark_oak_log","minecraft:stripped_dark_oak_wood","minecraft:stripped_jungle_log","minecraft:stripped_jungle_wood","minecraft:stripped_oak_log","minecraft:stripped_oak_wood","minecraft:stripped_spruce_log","minecraft:stripped_spruce_wood"],"minecraft:lush_ground_replaceable":["minecraft:andesite","minecraft:cave_vines","minecraft:cave_vines_plant","minecraft:clay","minecraft:coarse_dirt","minecraft:deepslate","minecraft:diorite","minecraft:dirt","minecraft:granite","minecraft:grass_block","minecraft:gravel","minecraft:moss_block","minecraft:mycelium","minecraft:podzol","minecraft:rooted_dirt","minecraft:sand","minecraft:stone","minecraft:tuff"],"minecraft:mineable/axe":["minecraft:acacia_button","minecraft:acacia_door","minecraft:acacia_fence","minecraft:acacia_fence_gate","minecraft:acacia_log","minecraft:acacia_planks","minecraft:acacia_pressure_plate","minecraft:acacia_sapling","minecraft:acacia_sign","minecraft:acacia_slab","minecraft:acacia_stairs","minecraft:acacia_trapdoor","minecraft:acacia_wall_sign","minecraft:acacia_wood","minecraft:allium","minecraft:attached_melon_stem","minecraft:attached_pumpkin_stem","minecraft:azalea","minecraft:azure_bluet","minecraft:bamboo","minecraft:barrel","minecraft:bee_nest","minecraft:beehive","minecraft:beetroots","minecraft:big_dripleaf","minecraft:big_dripleaf_stem","minecraft:birch_button","minecraft:birch_door","minecraft:birch_fence","minecraft:birch_fence_gate","minecraft:birch_log","minecraft:birch_planks","minecraft:birch_pressure_plate","minecraft:birch_sapling","minecraft:birch_sign","minecraft:birch_slab","minecraft:birch_stairs","minecraft:birch_trapdoor","minecraft:birch_wall_sign","minecraft:birch_wood","minecraft:black_banner","minecraft:black_wall_banner","minecraft:blue_banner","minecraft:blue_orchid","minecraft:blue_wall_banner","minecraft:bookshelf","minecraft:brown_banner","minecraft:brown_mushroom","minecraft:brown_mushroom_block","minecraft:brown_wall_banner","minecraft:campfire","minecraft:carrots","minecraft:cartography_table","minecraft:carved_pumpkin","minecraft:cave_vines","minecraft:cave_vines_plant","minecraft:chest","minecraft:chorus_flower","minecraft:chorus_plant","minecraft:cocoa","minecraft:composter","minecraft:cornflower","minecraft:crafting_table","minecraft:crimson_button","minecraft:crimson_door","minecraft:crimson_fence","minecraft:crimson_fence_gate","minecraft:crimson_fungus","minecraft:crimson_hyphae","minecraft:crimson_planks","minecraft:crimson_pressure_plate","minecraft:crimson_sign","minecraft:crimson_slab","minecraft:crimson_stairs","minecraft:crimson_stem","minecraft:crimson_trapdoor","minecraft:crimson_wall_sign","minecraft:cyan_banner","minecraft:cyan_wall_banner","minecraft:dandelion","minecraft:dark_oak_button","minecraft:dark_oak_door","minecraft:dark_oak_fence","minecraft:dark_oak_fence_gate","minecraft:dark_oak_log","minecraft:dark_oak_planks","minecraft:dark_oak_pressure_plate","minecraft:dark_oak_sapling","minecraft:dark_oak_sign","minecraft:dark_oak_slab","minecraft:dark_oak_stairs","minecraft:dark_oak_trapdoor","minecraft:dark_oak_wall_sign","minecraft:dark_oak_wood","minecraft:daylight_detector","minecraft:dead_bush","minecraft:fern","minecraft:fletching_table","minecraft:flowering_azalea","minecraft:flowering_azalea_leaves","minecraft:glow_lichen","minecraft:grass","minecraft:gray_banner","minecraft:gray_wall_banner","minecraft:green_banner","minecraft:green_wall_banner","minecraft:hanging_roots","minecraft:jack_o_lantern","minecraft:jukebox","minecraft:jungle_button","minecraft:jungle_door","minecraft:jungle_fence","minecraft:jungle_fence_gate","minecraft:jungle_log","minecraft:jungle_planks","minecraft:jungle_pressure_plate","minecraft:jungle_sapling","minecraft:jungle_sign","minecraft:jungle_slab","minecraft:jungle_stairs","minecraft:jungle_trapdoor","minecraft:jungle_wall_sign","minecraft:jungle_wood","minecraft:ladder","minecraft:large_fern","minecraft:lectern","minecraft:light_blue_banner","minecraft:light_blue_wall_banner","minecraft:light_gray_banner","minecraft:light_gray_wall_banner","minecraft:lilac","minecraft:lily_of_the_valley","minecraft:lily_pad","minecraft:lime_banner","minecraft:lime_wall_banner","minecraft:loom","minecraft:magenta_banner","minecraft:magenta_wall_banner","minecraft:melon","minecraft:melon_stem","minecraft:mushroom_stem","minecraft:nether_wart","minecraft:note_block","minecraft:oak_button","minecraft:oak_door","minecraft:oak_fence","minecraft:oak_fence_gate","minecraft:oak_log","minecraft:oak_planks","minecraft:oak_pressure_plate","minecraft:oak_sapling","minecraft:oak_sign","minecraft:oak_slab","minecraft:oak_stairs","minecraft:oak_trapdoor","minecraft:oak_wall_sign","minecraft:oak_wood","minecraft:orange_banner","minecraft:orange_tulip","minecraft:orange_wall_banner","minecraft:oxeye_daisy","minecraft:peony","minecraft:pink_banner","minecraft:pink_tulip","minecraft:pink_wall_banner","minecraft:poppy","minecraft:potatoes","minecraft:pumpkin","minecraft:pumpkin_stem","minecraft:purple_banner","minecraft:purple_wall_banner","minecraft:red_banner","minecraft:red_mushroom","minecraft:red_mushroom_block","minecraft:red_tulip","minecraft:red_wall_banner","minecraft:rose_bush","minecraft:scaffolding","minecraft:small_dripleaf","minecraft:smithing_table","minecraft:soul_campfire","minecraft:spore_blossom","minecraft:spruce_button","minecraft:spruce_door","minecraft:spruce_fence","minecraft:spruce_fence_gate","minecraft:spruce_log","minecraft:spruce_planks","minecraft:spruce_pressure_plate","minecraft:spruce_sapling","minecraft:spruce_sign","minecraft:spruce_slab","minecraft:spruce_stairs","minecraft:spruce_trapdoor","minecraft:spruce_wall_sign","minecraft:spruce_wood","minecraft:stripped_acacia_log","minecraft:stripped_acacia_wood","minecraft:stripped_birch_log","minecraft:stripped_birch_wood","minecraft:stripped_crimson_hyphae","minecraft:stripped_crimson_stem","minecraft:stripped_dark_oak_log","minecraft:stripped_dark_oak_wood","minecraft:stripped_jungle_log","minecraft:stripped_jungle_wood","minecraft:stripped_oak_log","minecraft:stripped_oak_wood","minecraft:stripped_spruce_log","minecraft:stripped_spruce_wood","minecraft:stripped_warped_hyphae","minecraft:stripped_warped_stem","minecraft:sugar_cane","minecraft:sunflower","minecraft:sweet_berry_bush","minecraft:tall_grass","minecraft:trapped_chest","minecraft:twisting_vines","minecraft:twisting_vines_plant","minecraft:vine","minecraft:warped_button","minecraft:warped_door","minecraft:warped_fence","minecraft:warped_fence_gate","minecraft:warped_fungus","minecraft:warped_hyphae","minecraft:warped_planks","minecraft:warped_pressure_plate","minecraft:warped_sign","minecraft:warped_slab","minecraft:warped_stairs","minecraft:warped_stem","minecraft:warped_trapdoor","minecraft:warped_wall_sign","minecraft:weeping_vines","minecraft:weeping_vines_plant","minecraft:wheat","minecraft:white_banner","minecraft:white_tulip","minecraft:white_wall_banner","minecraft:wither_rose","minecraft:yellow_banner","minecraft:yellow_wall_banner"],"minecraft:mineable/hoe":["minecraft:acacia_leaves","minecraft:azalea_leaves","minecraft:birch_leaves","minecraft:dark_oak_leaves","minecraft:dried_kelp_block","minecraft:flowering_azalea_leaves","minecraft:hay_block","minecraft:jungle_leaves","minecraft:moss_block","minecraft:moss_carpet","minecraft:nether_wart_block","minecraft:oak_leaves","minecraft:sculk_sensor","minecraft:shroomlight","minecraft:sponge","minecraft:spruce_leaves","minecraft:target","minecraft:warped_wart_block","minecraft:wet_sponge"],"minecraft:mineable/pickaxe":["minecraft:activator_rail","minecraft:amethyst_block","minecraft:amethyst_cluster","minecraft:ancient_debris","minecraft:andesite","minecraft:andesite_slab","minecraft:andesite_stairs","minecraft:andesite_wall","minecraft:anvil","minecraft:basalt","minecraft:bell","minecraft:black_concrete","minecraft:black_glazed_terracotta","minecraft:black_shulker_box","minecraft:black_terracotta","minecraft:blackstone","minecraft:blackstone_slab","minecraft:blackstone_stairs","minecraft:blackstone_wall","minecraft:blast_furnace","minecraft:blue_concrete","minecraft:blue_glazed_terracotta","minecraft:blue_ice","minecraft:blue_shulker_box","minecraft:blue_terracotta","minecraft:bone_block","minecraft:brain_coral_block","minecraft:brewing_stand","minecraft:brick_slab","minecraft:brick_stairs","minecraft:brick_wall","minecraft:bricks","minecraft:brown_concrete","minecraft:brown_glazed_terracotta","minecraft:brown_shulker_box","minecraft:brown_terracotta","minecraft:bubble_coral_block","minecraft:budding_amethyst","minecraft:calcite","minecraft:cauldron","minecraft:chain","minecraft:chipped_anvil","minecraft:chiseled_deepslate","minecraft:chiseled_nether_bricks","minecraft:chiseled_polished_blackstone","minecraft:chiseled_quartz_block","minecraft:chiseled_red_sandstone","minecraft:chiseled_sandstone","minecraft:chiseled_stone_bricks","minecraft:coal_block","minecraft:coal_ore","minecraft:cobbled_deepslate","minecraft:cobbled_deepslate_slab","minecraft:cobbled_deepslate_stairs","minecraft:cobbled_deepslate_wall","minecraft:cobblestone","minecraft:cobblestone_slab","minecraft:cobblestone_stairs","minecraft:cobblestone_wall","minecraft:copper_block","minecraft:copper_ore","minecraft:cracked_deepslate_bricks","minecraft:cracked_deepslate_tiles","minecraft:cracked_nether_bricks","minecraft:cracked_polished_blackstone_bricks","minecraft:cracked_stone_bricks","minecraft:crimson_nylium","minecraft:crying_obsidian","minecraft:cut_copper","minecraft:cut_copper_slab","minecraft:cut_copper_stairs","minecraft:cut_red_sandstone","minecraft:cut_red_sandstone_slab","minecraft:cut_sandstone","minecraft:cut_sandstone_slab","minecraft:cyan_concrete","minecraft:cyan_glazed_terracotta","minecraft:cyan_shulker_box","minecraft:cyan_terracotta","minecraft:damaged_anvil","minecraft:dark_prismarine","minecraft:dark_prismarine_slab","minecraft:dark_prismarine_stairs","minecraft:dead_brain_coral","minecraft:dead_brain_coral_block","minecraft:dead_brain_coral_fan","minecraft:dead_brain_coral_wall_fan","minecraft:dead_bubble_coral","minecraft:dead_bubble_coral_block","minecraft:dead_bubble_coral_fan","minecraft:dead_bubble_coral_wall_fan","minecraft:dead_fire_coral","minecraft:dead_fire_coral_block","minecraft:dead_fire_coral_fan","minecraft:dead_fire_coral_wall_fan","minecraft:dead_horn_coral","minecraft:dead_horn_coral_block","minecraft:dead_horn_coral_fan","minecraft:dead_horn_coral_wall_fan","minecraft:dead_tube_coral","minecraft:dead_tube_coral_block","minecraft:dead_tube_coral_fan","minecraft:dead_tube_coral_wall_fan","minecraft:deepslate","minecraft:deepslate_brick_slab","minecraft:deepslate_brick_stairs","minecraft:deepslate_brick_wall","minecraft:deepslate_bricks","minecraft:deepslate_coal_ore","minecraft:deepslate_copper_ore","minecraft:deepslate_diamond_ore","minecraft:deepslate_emerald_ore","minecraft:deepslate_gold_ore","minecraft:deepslate_iron_ore","minecraft:deepslate_lapis_ore","minecraft:deepslate_redstone_ore","minecraft:deepslate_tile_slab","minecraft:deepslate_tile_stairs","minecraft:deepslate_tile_wall","minecraft:deepslate_tiles","minecraft:detector_rail","minecraft:diamond_block","minecraft:diamond_ore","minecraft:diorite","minecraft:diorite_slab","minecraft:diorite_stairs","minecraft:diorite_wall","minecraft:dispenser","minecraft:dripstone_block","minecraft:dropper","minecraft:emerald_block","minecraft:emerald_ore","minecraft:enchanting_table","minecraft:end_stone","minecraft:end_stone_brick_slab","minecraft:end_stone_brick_stairs","minecraft:end_stone_brick_wall","minecraft:end_stone_bricks","minecraft:ender_chest","minecraft:exposed_copper","minecraft:exposed_cut_copper","minecraft:exposed_cut_copper_slab","minecraft:exposed_cut_copper_stairs","minecraft:fire_coral_block","minecraft:furnace","minecraft:gilded_blackstone","minecraft:gold_block","minecraft:gold_ore","minecraft:granite","minecraft:granite_slab","minecraft:granite_stairs","minecraft:granite_wall","minecraft:gray_concrete","minecraft:gray_glazed_terracotta","minecraft:gray_shulker_box","minecraft:gray_terracotta","minecraft:green_concrete","minecraft:green_glazed_terracotta","minecraft:green_shulker_box","minecraft:green_terracotta","minecraft:grindstone","minecraft:heavy_weighted_pressure_plate","minecraft:hopper","minecraft:horn_coral_block","minecraft:ice","minecraft:infested_chiseled_stone_bricks","minecraft:infested_cobblestone","minecraft:infested_cracked_stone_bricks","minecraft:infested_deepslate","minecraft:infested_mossy_stone_bricks","minecraft:infested_stone","minecraft:infested_stone_bricks","minecraft:iron_bars","minecraft:iron_block","minecraft:iron_door","minecraft:iron_ore","minecraft:iron_trapdoor","minecraft:lantern","minecraft:lapis_block","minecraft:lapis_ore","minecraft:large_amethyst_bud","minecraft:lava_cauldron","minecraft:light_blue_concrete","minecraft:light_blue_glazed_terracotta","minecraft:light_blue_shulker_box","minecraft:light_blue_terracotta","minecraft:light_gray_concrete","minecraft:light_gray_glazed_terracotta","minecraft:light_gray_shulker_box","minecraft:light_gray_terracotta","minecraft:light_weighted_pressure_plate","minecraft:lightning_rod","minecraft:lime_concrete","minecraft:lime_glazed_terracotta","minecraft:lime_shulker_box","minecraft:lime_terracotta","minecraft:lodestone","minecraft:magenta_concrete","minecraft:magenta_glazed_terracotta","minecraft:magenta_shulker_box","minecraft:magenta_terracotta","minecraft:magma_block","minecraft:medium_amethyst_bud","minecraft:mossy_cobblestone","minecraft:mossy_cobblestone_slab","minecraft:mossy_cobblestone_stairs","minecraft:mossy_cobblestone_wall","minecraft:mossy_stone_brick_slab","minecraft:mossy_stone_brick_stairs","minecraft:mossy_stone_brick_wall","minecraft:mossy_stone_bricks","minecraft:nether_brick_fence","minecraft:nether_brick_slab","minecraft:nether_brick_stairs","minecraft:nether_brick_wall","minecraft:nether_bricks","minecraft:nether_gold_ore","minecraft:nether_quartz_ore","minecraft:netherite_block","minecraft:netherrack","minecraft:observer","minecraft:obsidian","minecraft:orange_concrete","minecraft:orange_glazed_terracotta","minecraft:orange_shulker_box","minecraft:orange_terracotta","minecraft:oxidized_copper","minecraft:oxidized_cut_copper","minecraft:oxidized_cut_copper_slab","minecraft:oxidized_cut_copper_stairs","minecraft:packed_ice","minecraft:petrified_oak_slab","minecraft:pink_concrete","minecraft:pink_glazed_terracotta","minecraft:pink_shulker_box","minecraft:pink_terracotta","minecraft:piston","minecraft:piston_head","minecraft:pointed_dripstone","minecraft:polished_andesite","minecraft:polished_andesite_slab","minecraft:polished_andesite_stairs","minecraft:polished_basalt","minecraft:polished_blackstone","minecraft:polished_blackstone_brick_slab","minecraft:polished_blackstone_brick_stairs","minecraft:polished_blackstone_brick_wall","minecraft:polished_blackstone_bricks","minecraft:polished_blackstone_pressure_plate","minecraft:polished_blackstone_slab","minecraft:polished_blackstone_stairs","minecraft:polished_blackstone_wall","minecraft:polished_deepslate","minecraft:polished_deepslate_slab","minecraft:polished_deepslate_stairs","minecraft:polished_deepslate_wall","minecraft:polished_diorite","minecraft:polished_diorite_slab","minecraft:polished_diorite_stairs","minecraft:polished_granite","minecraft:polished_granite_slab","minecraft:polished_granite_stairs","minecraft:powder_snow_cauldron","minecraft:powered_rail","minecraft:prismarine","minecraft:prismarine_brick_slab","minecraft:prismarine_brick_stairs","minecraft:prismarine_bricks","minecraft:prismarine_slab","minecraft:prismarine_stairs","minecraft:prismarine_wall","minecraft:purple_concrete","minecraft:purple_glazed_terracotta","minecraft:purple_shulker_box","minecraft:purple_terracotta","minecraft:purpur_block","minecraft:purpur_pillar","minecraft:purpur_slab","minecraft:purpur_stairs","minecraft:quartz_block","minecraft:quartz_bricks","minecraft:quartz_pillar","minecraft:quartz_slab","minecraft:quartz_stairs","minecraft:rail","minecraft:raw_copper_block","minecraft:raw_gold_block","minecraft:raw_iron_block","minecraft:red_concrete","minecraft:red_glazed_terracotta","minecraft:red_nether_brick_slab","minecraft:red_nether_brick_stairs","minecraft:red_nether_brick_wall","minecraft:red_nether_bricks","minecraft:red_sandstone","minecraft:red_sandstone_slab","minecraft:red_sandstone_stairs","minecraft:red_sandstone_wall","minecraft:red_shulker_box","minecraft:red_terracotta","minecraft:redstone_block","minecraft:redstone_ore","minecraft:respawn_anchor","minecraft:sandstone","minecraft:sandstone_slab","minecraft:sandstone_stairs","minecraft:sandstone_wall","minecraft:shulker_box","minecraft:small_amethyst_bud","minecraft:smoker","minecraft:smooth_basalt","minecraft:smooth_quartz","minecraft:smooth_quartz_slab","minecraft:smooth_quartz_stairs","minecraft:smooth_red_sandstone","minecraft:smooth_red_sandstone_slab","minecraft:smooth_red_sandstone_stairs","minecraft:smooth_sandstone","minecraft:smooth_sandstone_slab","minecraft:smooth_sandstone_stairs","minecraft:smooth_stone","minecraft:smooth_stone_slab","minecraft:soul_lantern","minecraft:spawner","minecraft:sticky_piston","minecraft:stone","minecraft:stone_brick_slab","minecraft:stone_brick_stairs","minecraft:stone_brick_wall","minecraft:stone_bricks","minecraft:stone_button","minecraft:stone_pressure_plate","minecraft:stone_slab","minecraft:stone_stairs","minecraft:stonecutter","minecraft:terracotta","minecraft:tube_coral_block","minecraft:tuff","minecraft:warped_nylium","minecraft:water_cauldron","minecraft:waxed_copper_block","minecraft:waxed_cut_copper","minecraft:waxed_cut_copper_slab","minecraft:waxed_cut_copper_stairs","minecraft:waxed_exposed_copper","minecraft:waxed_exposed_cut_copper","minecraft:waxed_exposed_cut_copper_slab","minecraft:waxed_exposed_cut_copper_stairs","minecraft:waxed_oxidized_copper","minecraft:waxed_oxidized_cut_copper","minecraft:waxed_oxidized_cut_copper_slab","minecraft:waxed_oxidized_cut_copper_stairs","minecraft:waxed_weathered_copper","minecraft:waxed_weathered_cut_copper","minecraft:waxed_weathered_cut_copper_slab","minecraft:waxed_weathered_cut_copper_stairs","minecraft:weathered_copper","minecraft:weathered_cut_copper","minecraft:weathered_cut_copper_slab","minecraft:weathered_cut_copper_stairs","minecraft:white_concrete","minecraft:white_glazed_terracotta","minecraft:white_shulker_box","minecraft:white_terracotta","minecraft:yellow_concrete","minecraft:yellow_glazed_terracotta","minecraft:yellow_shulker_box","minecraft:yellow_terracotta"],"minecraft:mineable/shovel":["minecraft:black_concrete_powder","minecraft:blue_concrete_powder","minecraft:brown_concrete_powder","minecraft:clay","minecraft:coarse_dirt","minecraft:cyan_concrete_powder","minecraft:dirt","minecraft:dirt_path","minecraft:farmland","minecraft:grass_block","minecraft:gravel","minecraft:gray_concrete_powder","minecraft:green_concrete_powder","minecraft:light_blue_concrete_powder","minecraft:light_gray_concrete_powder","minecraft:lime_concrete_powder","minecraft:magenta_concrete_powder","minecraft:mycelium","minecraft:orange_concrete_powder","minecraft:pink_concrete_powder","minecraft:podzol","minecraft:purple_concrete_powder","minecraft:red_concrete_powder","minecraft:red_sand","minecraft:rooted_dirt","minecraft:sand","minecraft:snow","minecraft:snow_block","minecraft:soul_sand","minecraft:soul_soil","minecraft:white_concrete_powder","minecraft:yellow_concrete_powder"],"minecraft:moss_replaceable":["minecraft:andesite","minecraft:cave_vines","minecraft:cave_vines_plant","minecraft:coarse_dirt","minecraft:deepslate","minecraft:diorite","minecraft:dirt","minecraft:granite","minecraft:grass_block","minecraft:moss_block","minecraft:mycelium","minecraft:podzol","minecraft:rooted_dirt","minecraft:stone","minecraft:tuff"],"minecraft:mushroom_grow_block":["minecraft:crimson_nylium","minecraft:mycelium","minecraft:podzol","minecraft:warped_nylium"],"minecraft:needs_diamond_tool":["minecraft:ancient_debris","minecraft:crying_obsidian","minecraft:netherite_block","minecraft:obsidian","minecraft:respawn_anchor"],"minecraft:needs_iron_tool":["minecraft:deepslate_diamond_ore","minecraft:deepslate_emerald_ore","minecraft:deepslate_gold_ore","minecraft:deepslate_redstone_ore","minecraft:diamond_block","minecraft:diamond_ore","minecraft:emerald_block","minecraft:emerald_ore","minecraft:gold_block","minecraft:gold_ore","minecraft:raw_gold_block","minecraft:redstone_ore"],"minecraft:needs_stone_tool":["minecraft:copper_block","minecraft:copper_ore","minecraft:cut_copper","minecraft:cut_copper_slab","minecraft:cut_copper_stairs","minecraft:deepslate_copper_ore","minecraft:deepslate_iron_ore","minecraft:deepslate_lapis_ore","minecraft:exposed_copper","minecraft:exposed_cut_copper","minecraft:exposed_cut_copper_slab","minecraft:exposed_cut_copper_stairs","minecraft:iron_block","minecraft:iron_ore","minecraft:lapis_block","minecraft:lapis_ore","minecraft:lightning_rod","minecraft:oxidized_copper","minecraft:oxidized_cut_copper","minecraft:oxidized_cut_copper_slab","minecraft:oxidized_cut_copper_stairs","minecraft:raw_copper_block","minecraft:raw_iron_block","minecraft:waxed_copper_block","minecraft:waxed_cut_copper","minecraft:waxed_cut_copper_slab","minecraft:waxed_cut_copper_stairs","minecraft:waxed_exposed_copper","minecraft:waxed_exposed_cut_copper","minecraft:waxed_exposed_cut_copper_slab","minecraft:waxed_exposed_cut_copper_stairs","minecraft:waxed_oxidized_copper","minecraft:waxed_oxidized_cut_copper","minecraft:waxed_oxidized_cut_copper_slab","minecraft:waxed_oxidized_cut_copper_stairs","minecraft:waxed_weathered_copper","minecraft:waxed_weathered_cut_copper","minecraft:waxed_weathered_cut_copper_slab","minecraft:waxed_weathered_cut_copper_stairs","minecraft:weathered_copper","minecraft:weathered_cut_copper","minecraft:weathered_cut_copper_slab","minecraft:weathered_cut_copper_stairs"],"minecraft:non_flammable_wood":["minecraft:crimson_button","minecraft:crimson_door","minecraft:crimson_fence","minecraft:crimson_fence_gate","minecraft:crimson_hyphae","minecraft:crimson_planks","minecraft:crimson_pressure_plate","minecraft:crimson_sign","minecraft:crimson_slab","minecraft:crimson_stairs","minecraft:crimson_stem","minecraft:crimson_trapdoor","minecraft:crimson_wall_sign","minecraft:stripped_crimson_hyphae","minecraft:stripped_crimson_stem","minecraft:stripped_warped_hyphae","minecraft:stripped_warped_stem","minecraft:warped_button","minecraft:warped_door","minecraft:warped_fence","minecraft:warped_fence_gate","minecraft:warped_hyphae","minecraft:warped_planks","minecraft:warped_pressure_plate","minecraft:warped_sign","minecraft:warped_slab","minecraft:warped_stairs","minecraft:warped_stem","minecraft:warped_trapdoor","minecraft:warped_wall_sign"],"minecraft:nylium":["minecraft:crimson_nylium","minecraft:warped_nylium"],"minecraft:oak_logs":["minecraft:oak_log","minecraft:oak_wood","minecraft:stripped_oak_log","minecraft:stripped_oak_wood"],"minecraft:occludes_vibration_signals":["minecraft:black_wool","minecraft:blue_wool","minecraft:brown_wool","minecraft:cyan_wool","minecraft:gray_wool","minecraft:green_wool","minecraft:light_blue_wool","minecraft:light_gray_wool","minecraft:lime_wool","minecraft:magenta_wool","minecraft:orange_wool","minecraft:pink_wool","minecraft:purple_wool","minecraft:red_wool","minecraft:white_wool","minecraft:yellow_wool"],"minecraft:piglin_repellents":["minecraft:soul_campfire","minecraft:soul_fire","minecraft:soul_lantern","minecraft:soul_torch","minecraft:soul_wall_torch"],"minecraft:planks":["minecraft:acacia_planks","minecraft:birch_planks","minecraft:crimson_planks","minecraft:dark_oak_planks","minecraft:jungle_planks","minecraft:oak_planks","minecraft:spruce_planks","minecraft:warped_planks"],"minecraft:portals":["minecraft:end_gateway","minecraft:end_portal","minecraft:nether_portal"],"minecraft:pressure_plates":["minecraft:acacia_pressure_plate","minecraft:birch_pressure_plate","minecraft:crimson_pressure_plate","minecraft:dark_oak_pressure_plate","minecraft:heavy_weighted_pressure_plate","minecraft:jungle_pressure_plate","minecraft:light_weighted_pressure_plate","minecraft:oak_pressure_plate","minecraft:polished_blackstone_pressure_plate","minecraft:spruce_pressure_plate","minecraft:stone_pressure_plate","minecraft:warped_pressure_plate"],"minecraft:prevent_mob_spawning_inside":["minecraft:activator_rail","minecraft:detector_rail","minecraft:powered_rail","minecraft:rail"],"minecraft:rails":["minecraft:activator_rail","minecraft:detector_rail","minecraft:powered_rail","minecraft:rail"],"minecraft:redstone_ores":["minecraft:deepslate_redstone_ore","minecraft:redstone_ore"],"minecraft:sand":["minecraft:red_sand","minecraft:sand"],"minecraft:saplings":["minecraft:acacia_sapling","minecraft:azalea","minecraft:birch_sapling","minecraft:dark_oak_sapling","minecraft:flowering_azalea","minecraft:jungle_sapling","minecraft:oak_sapling","minecraft:spruce_sapling"],"minecraft:shulker_boxes":["minecraft:black_shulker_box","minecraft:blue_shulker_box","minecraft:brown_shulker_box","minecraft:cyan_shulker_box","minecraft:gray_shulker_box","minecraft:green_shulker_box","minecraft:light_blue_shulker_box","minecraft:light_gray_shulker_box","minecraft:lime_shulker_box","minecraft:magenta_shulker_box","minecraft:orange_shulker_box","minecraft:pink_shulker_box","minecraft:purple_shulker_box","minecraft:red_shulker_box","minecraft:shulker_box","minecraft:white_shulker_box","minecraft:yellow_shulker_box"],"minecraft:signs":["minecraft:acacia_sign","minecraft:acacia_wall_sign","minecraft:birch_sign","minecraft:birch_wall_sign","minecraft:crimson_sign","minecraft:crimson_wall_sign","minecraft:dark_oak_sign","minecraft:dark_oak_wall_sign","minecraft:jungle_sign","minecraft:jungle_wall_sign","minecraft:oak_sign","minecraft:oak_wall_sign","minecraft:spruce_sign","minecraft:spruce_wall_sign","minecraft:warped_sign","minecraft:warped_wall_sign"],"minecraft:slabs":["minecraft:acacia_slab","minecraft:andesite_slab","minecraft:birch_slab","minecraft:blackstone_slab","minecraft:brick_slab","minecraft:cobbled_deepslate_slab","minecraft:cobblestone_slab","minecraft:crimson_slab","minecraft:cut_copper_slab","minecraft:cut_red_sandstone_slab","minecraft:cut_sandstone_slab","minecraft:dark_oak_slab","minecraft:dark_prismarine_slab","minecraft:deepslate_brick_slab","minecraft:deepslate_tile_slab","minecraft:diorite_slab","minecraft:end_stone_brick_slab","minecraft:exposed_cut_copper_slab","minecraft:granite_slab","minecraft:jungle_slab","minecraft:mossy_cobblestone_slab","minecraft:mossy_stone_brick_slab","minecraft:nether_brick_slab","minecraft:oak_slab","minecraft:oxidized_cut_copper_slab","minecraft:petrified_oak_slab","minecraft:polished_andesite_slab","minecraft:polished_blackstone_brick_slab","minecraft:polished_blackstone_slab","minecraft:polished_deepslate_slab","minecraft:polished_diorite_slab","minecraft:polished_granite_slab","minecraft:prismarine_brick_slab","minecraft:prismarine_slab","minecraft:purpur_slab","minecraft:quartz_slab","minecraft:red_nether_brick_slab","minecraft:red_sandstone_slab","minecraft:sandstone_slab","minecraft:smooth_quartz_slab","minecraft:smooth_red_sandstone_slab","minecraft:smooth_sandstone_slab","minecraft:smooth_stone_slab","minecraft:spruce_slab","minecraft:stone_brick_slab","minecraft:stone_slab","minecraft:warped_slab","minecraft:waxed_cut_copper_slab","minecraft:waxed_exposed_cut_copper_slab","minecraft:waxed_oxidized_cut_copper_slab","minecraft:waxed_weathered_cut_copper_slab","minecraft:weathered_cut_copper_slab"],"minecraft:small_dripleaf_placeable":["minecraft:clay","minecraft:moss_block"],"minecraft:small_flowers":["minecraft:allium","minecraft:azure_bluet","minecraft:blue_orchid","minecraft:cornflower","minecraft:dandelion","minecraft:lily_of_the_valley","minecraft:orange_tulip","minecraft:oxeye_daisy","minecraft:pink_tulip","minecraft:poppy","minecraft:red_tulip","minecraft:white_tulip","minecraft:wither_rose"],"minecraft:snow":["minecraft:powder_snow","minecraft:snow","minecraft:snow_block"],"minecraft:soul_fire_base_blocks":["minecraft:soul_sand","minecraft:soul_soil"],"minecraft:soul_speed_blocks":["minecraft:soul_sand","minecraft:soul_soil"],"minecraft:spruce_logs":["minecraft:spruce_log","minecraft:spruce_wood","minecraft:stripped_spruce_log","minecraft:stripped_spruce_wood"],"minecraft:stairs":["minecraft:acacia_stairs","minecraft:andesite_stairs","minecraft:birch_stairs","minecraft:blackstone_stairs","minecraft:brick_stairs","minecraft:cobbled_deepslate_stairs","minecraft:cobblestone_stairs","minecraft:crimson_stairs","minecraft:cut_copper_stairs","minecraft:dark_oak_stairs","minecraft:dark_prismarine_stairs","minecraft:deepslate_brick_stairs","minecraft:deepslate_tile_stairs","minecraft:diorite_stairs","minecraft:end_stone_brick_stairs","minecraft:exposed_cut_copper_stairs","minecraft:granite_stairs","minecraft:jungle_stairs","minecraft:mossy_cobblestone_stairs","minecraft:mossy_stone_brick_stairs","minecraft:nether_brick_stairs","minecraft:oak_stairs","minecraft:oxidized_cut_copper_stairs","minecraft:polished_andesite_stairs","minecraft:polished_blackstone_brick_stairs","minecraft:polished_blackstone_stairs","minecraft:polished_deepslate_stairs","minecraft:polished_diorite_stairs","minecraft:polished_granite_stairs","minecraft:prismarine_brick_stairs","minecraft:prismarine_stairs","minecraft:purpur_stairs","minecraft:quartz_stairs","minecraft:red_nether_brick_stairs","minecraft:red_sandstone_stairs","minecraft:sandstone_stairs","minecraft:smooth_quartz_stairs","minecraft:smooth_red_sandstone_stairs","minecraft:smooth_sandstone_stairs","minecraft:spruce_stairs","minecraft:stone_brick_stairs","minecraft:stone_stairs","minecraft:warped_stairs","minecraft:waxed_cut_copper_stairs","minecraft:waxed_exposed_cut_copper_stairs","minecraft:waxed_oxidized_cut_copper_stairs","minecraft:waxed_weathered_cut_copper_stairs","minecraft:weathered_cut_copper_stairs"],"minecraft:standing_signs":["minecraft:acacia_sign","minecraft:birch_sign","minecraft:crimson_sign","minecraft:dark_oak_sign","minecraft:jungle_sign","minecraft:oak_sign","minecraft:spruce_sign","minecraft:warped_sign"],"minecraft:stone_bricks":["minecraft:chiseled_stone_bricks","minecraft:cracked_stone_bricks","minecraft:mossy_stone_bricks","minecraft:stone_bricks"],"minecraft:stone_ore_replaceables":["minecraft:andesite","minecraft:diorite","minecraft:granite","minecraft:stone"],"minecraft:stone_pressure_plates":["minecraft:polished_blackstone_pressure_plate","minecraft:stone_pressure_plate"],"minecraft:strider_warm_blocks":["minecraft:lava"],"minecraft:tall_flowers":["minecraft:lilac","minecraft:peony","minecraft:rose_bush","minecraft:sunflower"],"minecraft:trapdoors":["minecraft:acacia_trapdoor","minecraft:birch_trapdoor","minecraft:crimson_trapdoor","minecraft:dark_oak_trapdoor","minecraft:iron_trapdoor","minecraft:jungle_trapdoor","minecraft:oak_trapdoor","minecraft:spruce_trapdoor","minecraft:warped_trapdoor"],"minecraft:underwater_bonemeals":["minecraft:brain_coral","minecraft:brain_coral_fan","minecraft:brain_coral_wall_fan","minecraft:bubble_coral","minecraft:bubble_coral_fan","minecraft:bubble_coral_wall_fan","minecraft:fire_coral","minecraft:fire_coral_fan","minecraft:fire_coral_wall_fan","minecraft:horn_coral","minecraft:horn_coral_fan","minecraft:horn_coral_wall_fan","minecraft:seagrass","minecraft:tube_coral","minecraft:tube_coral_fan","minecraft:tube_coral_wall_fan"],"minecraft:unstable_bottom_center":["minecraft:acacia_fence_gate","minecraft:birch_fence_gate","minecraft:crimson_fence_gate","minecraft:dark_oak_fence_gate","minecraft:jungle_fence_gate","minecraft:oak_fence_gate","minecraft:spruce_fence_gate","minecraft:warped_fence_gate"],"minecraft:valid_spawn":["minecraft:grass_block","minecraft:podzol"],"minecraft:wall_corals":["minecraft:brain_coral_wall_fan","minecraft:bubble_coral_wall_fan","minecraft:fire_coral_wall_fan","minecraft:horn_coral_wall_fan","minecraft:tube_coral_wall_fan"],"minecraft:wall_post_override":["minecraft:acacia_pressure_plate","minecraft:acacia_sign","minecraft:acacia_wall_sign","minecraft:birch_pressure_plate","minecraft:birch_sign","minecraft:birch_wall_sign","minecraft:black_banner","minecraft:black_wall_banner","minecraft:blue_banner","minecraft:blue_wall_banner","minecraft:brown_banner","minecraft:brown_wall_banner","minecraft:crimson_pressure_plate","minecraft:crimson_sign","minecraft:crimson_wall_sign","minecraft:cyan_banner","minecraft:cyan_wall_banner","minecraft:dark_oak_pressure_plate","minecraft:dark_oak_sign","minecraft:dark_oak_wall_sign","minecraft:gray_banner","minecraft:gray_wall_banner","minecraft:green_banner","minecraft:green_wall_banner","minecraft:heavy_weighted_pressure_plate","minecraft:jungle_pressure_plate","minecraft:jungle_sign","minecraft:jungle_wall_sign","minecraft:light_blue_banner","minecraft:light_blue_wall_banner","minecraft:light_gray_banner","minecraft:light_gray_wall_banner","minecraft:light_weighted_pressure_plate","minecraft:lime_banner","minecraft:lime_wall_banner","minecraft:magenta_banner","minecraft:magenta_wall_banner","minecraft:oak_pressure_plate","minecraft:oak_sign","minecraft:oak_wall_sign","minecraft:orange_banner","minecraft:orange_wall_banner","minecraft:pink_banner","minecraft:pink_wall_banner","minecraft:polished_blackstone_pressure_plate","minecraft:purple_banner","minecraft:purple_wall_banner","minecraft:red_banner","minecraft:red_wall_banner","minecraft:redstone_torch","minecraft:soul_torch","minecraft:spruce_pressure_plate","minecraft:spruce_sign","minecraft:spruce_wall_sign","minecraft:stone_pressure_plate","minecraft:torch","minecraft:tripwire","minecraft:warped_pressure_plate","minecraft:warped_sign","minecraft:warped_wall_sign","minecraft:white_banner","minecraft:white_wall_banner","minecraft:yellow_banner","minecraft:yellow_wall_banner"],"minecraft:wall_signs":["minecraft:acacia_wall_sign","minecraft:birch_wall_sign","minecraft:crimson_wall_sign","minecraft:dark_oak_wall_sign","minecraft:jungle_wall_sign","minecraft:oak_wall_sign","minecraft:spruce_wall_sign","minecraft:warped_wall_sign"],"minecraft:walls":["minecraft:andesite_wall","minecraft:blackstone_wall","minecraft:brick_wall","minecraft:cobbled_deepslate_wall","minecraft:cobblestone_wall","minecraft:deepslate_brick_wall","minecraft:deepslate_tile_wall","minecraft:diorite_wall","minecraft:end_stone_brick_wall","minecraft:granite_wall","minecraft:mossy_cobblestone_wall","minecraft:mossy_stone_brick_wall","minecraft:nether_brick_wall","minecraft:polished_blackstone_brick_wall","minecraft:polished_blackstone_wall","minecraft:polished_deepslate_wall","minecraft:prismarine_wall","minecraft:red_nether_brick_wall","minecraft:red_sandstone_wall","minecraft:sandstone_wall","minecraft:stone_brick_wall"],"minecraft:warped_stems":["minecraft:stripped_warped_hyphae","minecraft:stripped_warped_stem","minecraft:warped_hyphae","minecraft:warped_stem"],"minecraft:wart_blocks":["minecraft:nether_wart_block","minecraft:warped_wart_block"],"minecraft:wither_immune":["minecraft:barrier","minecraft:bedrock","minecraft:chain_command_block","minecraft:command_block","minecraft:end_gateway","minecraft:end_portal","minecraft:end_portal_frame","minecraft:jigsaw","minecraft:moving_piston","minecraft:repeating_command_block","minecraft:structure_block"],"minecraft:wither_summon_base_blocks":["minecraft:soul_sand","minecraft:soul_soil"],"minecraft:wooden_buttons":["minecraft:acacia_button","minecraft:birch_button","minecraft:crimson_button","minecraft:dark_oak_button","minecraft:jungle_button","minecraft:oak_button","minecraft:spruce_button","minecraft:warped_button"],"minecraft:wooden_doors":["minecraft:acacia_door","minecraft:birch_door","minecraft:crimson_door","minecraft:dark_oak_door","minecraft:jungle_door","minecraft:oak_door","minecraft:spruce_door","minecraft:warped_door"],"minecraft:wooden_fences":["minecraft:acacia_fence","minecraft:birch_fence","minecraft:crimson_fence","minecraft:dark_oak_fence","minecraft:jungle_fence","minecraft:oak_fence","minecraft:spruce_fence","minecraft:warped_fence"],"minecraft:wooden_pressure_plates":["minecraft:acacia_pressure_plate","minecraft:birch_pressure_plate","minecraft:crimson_pressure_plate","minecraft:dark_oak_pressure_plate","minecraft:jungle_pressure_plate","minecraft:oak_pressure_plate","minecraft:spruce_pressure_plate","minecraft:warped_pressure_plate"],"minecraft:wooden_slabs":["minecraft:acacia_slab","minecraft:birch_slab","minecraft:crimson_slab","minecraft:dark_oak_slab","minecraft:jungle_slab","minecraft:oak_slab","minecraft:spruce_slab","minecraft:warped_slab"],"minecraft:wooden_stairs":["minecraft:acacia_stairs","minecraft:birch_stairs","minecraft:crimson_stairs","minecraft:dark_oak_stairs","minecraft:jungle_stairs","minecraft:oak_stairs","minecraft:spruce_stairs","minecraft:warped_stairs"],"minecraft:wooden_trapdoors":["minecraft:acacia_trapdoor","minecraft:birch_trapdoor","minecraft:crimson_trapdoor","minecraft:dark_oak_trapdoor","minecraft:jungle_trapdoor","minecraft:oak_trapdoor","minecraft:spruce_trapdoor","minecraft:warped_trapdoor"],"minecraft:wool":["minecraft:black_wool","minecraft:blue_wool","minecraft:brown_wool","minecraft:cyan_wool","minecraft:gray_wool","minecraft:green_wool","minecraft:light_blue_wool","minecraft:light_gray_wool","minecraft:lime_wool","minecraft:magenta_wool","minecraft:orange_wool","minecraft:pink_wool","minecraft:purple_wool","minecraft:red_wool","minecraft:white_wool","minecraft:yellow_wool"]},"entities":["minecraft:area_effect_cloud","minecraft:armor_stand","minecraft:arrow","minecraft:axolotl","minecraft:bat","minecraft:bee","minecraft:blaze","minecraft:boat","minecraft:cat","minecraft:cave_spider","minecraft:chest_minecart","minecraft:chicken","minecraft:cod","minecraft:command_block_minecart","minecraft:cow","minecraft:creeper","minecraft:dolphin","minecraft:donkey","minecraft:dragon_fireball","minecraft:drowned","minecraft:egg","minecraft:elder_guardian","minecraft:end_crystal","minecraft:ender_dragon","minecraft:ender_pearl","minecraft:enderman","minecraft:endermite","minecraft:evoker","minecraft:evoker_fangs","minecraft:experience_bottle","minecraft:experience_orb","minecraft:eye_of_ender","minecraft:falling_block","minecraft:fireball","minecraft:firework_rocket","minecraft:fishing_bobber","minecraft:fox","minecraft:furnace_minecart","minecraft:ghast","minecraft:giant","minecraft:glow_item_frame","minecraft:glow_squid","minecraft:goat","minecraft:guardian","minecraft:hoglin","minecraft:hopper_minecart","minecraft:horse","minecraft:husk","minecraft:illusioner","minecraft:iron_golem","minecraft:item","minecraft:item_frame","minecraft:leash_knot","minecraft:lightning_bolt","minecraft:llama","minecraft:llama_spit","minecraft:magma_cube","minecraft:marker","minecraft:minecart","minecraft:mooshroom","minecraft:mule","minecraft:ocelot","minecraft:painting","minecraft:panda","minecraft:parrot","minecraft:phantom","minecraft:pig","minecraft:piglin","minecraft:piglin_brute","minecraft:pillager","minecraft:player","minecraft:polar_bear","minecraft:potion","minecraft:pufferfish","minecraft:rabbit","minecraft:ravager","minecraft:salmon","minecraft:sheep","minecraft:shulker","minecraft:shulker_bullet","minecraft:silverfish","minecraft:skeleton","minecraft:skeleton_horse","minecraft:slime","minecraft:small_fireball","minecraft:snow_golem","minecraft:snowball","minecraft:spawner_minecart","minecraft:spectral_arrow","minecraft:spider","minecraft:squid","minecraft:stray","minecraft:strider","minecraft:tnt","minecraft:tnt_minecart","minecraft:trader_llama","minecraft:trident","minecraft:tropical_fish","minecraft:turtle","minecraft:vex","minecraft:villager","minecraft:vindicator","minecraft:wandering_trader","minecraft:witch","minecraft:wither","minecraft:wither_skeleton","minecraft:wither_skull","minecraft:wolf","minecraft:zoglin","minecraft:zombie","minecraft:zombie_horse","minecraft:zombie_villager","minecraft:zombified_piglin"],"entitytags":{"minecraft:arrows":["minecraft:arrow","minecraft:spectral_arrow"],"minecraft:axolotl_always_hostiles":["minecraft:drowned","minecraft:elder_guardian","minecraft:guardian"],"minecraft:axolotl_hunt_targets":["minecraft:cod","minecraft:glow_squid","minecraft:pufferfish","minecraft:salmon","minecraft:squid","minecraft:tropical_fish"],"minecraft:beehive_inhabitors":["minecraft:bee"],"minecraft:freeze_hurts_extra_types":["minecraft:blaze","minecraft:magma_cube","minecraft:strider"],"minecraft:freeze_immune_entity_types":["minecraft:polar_bear","minecraft:snow_golem","minecraft:stray","minecraft:wither"],"minecraft:impact_projectiles":["minecraft:arrow","minecraft:dragon_fireball","minecraft:egg","minecraft:fireball","minecraft:small_fireball","minecraft:snowball","minecraft:spectral_arrow","minecraft:trident","minecraft:wither_skull"],"minecraft:powder_snow_walkable_mobs":["minecraft:endermite","minecraft:fox","minecraft:rabbit","minecraft:silverfish"],"minecraft:raiders":["minecraft:evoker","minecraft:illusioner","minecraft:pillager","minecraft:ravager","minecraft:vindicator","minecraft:witch"],"minecraft:skeletons":["minecraft:skeleton","minecraft:stray","minecraft:wither_skeleton"]},"items":["minecraft:acacia_boat","minecraft:acacia_button","minecraft:acacia_door","minecraft:acacia_fence","minecraft:acacia_fence_gate","minecraft:acacia_leaves","minecraft:acacia_log","minecraft:acacia_planks","minecraft:acacia_pressure_plate","minecraft:acacia_sapling","minecraft:acacia_sign","minecraft:acacia_slab","minecraft:acacia_stairs","minecraft:acacia_trapdoor","minecraft:acacia_wood","minecraft:activator_rail","minecraft:air","minecraft:allium","minecraft:amethyst_block","minecraft:amethyst_cluster","minecraft:amethyst_shard","minecraft:ancient_debris","minecraft:andesite","minecraft:andesite_slab","minecraft:andesite_stairs","minecraft:andesite_wall","minecraft:anvil","minecraft:apple","minecraft:armor_stand","minecraft:arrow","minecraft:axolotl_bucket","minecraft:axolotl_spawn_egg","minecraft:azalea","minecraft:azalea_leaves","minecraft:azure_bluet","minecraft:baked_potato","minecraft:bamboo","minecraft:barrel","minecraft:barrier","minecraft:basalt","minecraft:bat_spawn_egg","minecraft:beacon","minecraft:bedrock","minecraft:bee_nest","minecraft:bee_spawn_egg","minecraft:beef","minecraft:beehive","minecraft:beetroot","minecraft:beetroot_seeds","minecraft:beetroot_soup","minecraft:bell","minecraft:big_dripleaf","minecraft:birch_boat","minecraft:birch_button","minecraft:birch_door","minecraft:birch_fence","minecraft:birch_fence_gate","minecraft:birch_leaves","minecraft:birch_log","minecraft:birch_planks","minecraft:birch_pressure_plate","minecraft:birch_sapling","minecraft:birch_sign","minecraft:birch_slab","minecraft:birch_stairs","minecraft:birch_trapdoor","minecraft:birch_wood","minecraft:black_banner","minecraft:black_bed","minecraft:black_candle","minecraft:black_carpet","minecraft:black_concrete","minecraft:black_concrete_powder","minecraft:black_dye","minecraft:black_glazed_terracotta","minecraft:black_shulker_box","minecraft:black_stained_glass","minecraft:black_stained_glass_pane","minecraft:black_terracotta","minecraft:black_wool","minecraft:blackstone","minecraft:blackstone_slab","minecraft:blackstone_stairs","minecraft:blackstone_wall","minecraft:blast_furnace","minecraft:blaze_powder","minecraft:blaze_rod","minecraft:blaze_spawn_egg","minecraft:blue_banner","minecraft:blue_bed","minecraft:blue_candle","minecraft:blue_carpet","minecraft:blue_concrete","minecraft:blue_concrete_powder","minecraft:blue_dye","minecraft:blue_glazed_terracotta","minecraft:blue_ice","minecraft:blue_orchid","minecraft:blue_shulker_box","minecraft:blue_stained_glass","minecraft:blue_stained_glass_pane","minecraft:blue_terracotta","minecraft:blue_wool","minecraft:bone","minecraft:bone_block","minecraft:bone_meal","minecraft:book","minecraft:bookshelf","minecraft:bow","minecraft:bowl","minecraft:brain_coral","minecraft:brain_coral_block","minecraft:brain_coral_fan","minecraft:bread","minecraft:brewing_stand","minecraft:brick","minecraft:brick_slab","minecraft:brick_stairs","minecraft:brick_wall","minecraft:bricks","minecraft:brown_banner","minecraft:brown_bed","minecraft:brown_candle","minecraft:brown_carpet","minecraft:brown_concrete","minecraft:brown_concrete_powder","minecraft:brown_dye","minecraft:brown_glazed_terracotta","minecraft:brown_mushroom","minecraft:brown_mushroom_block","minecraft:brown_shulker_box","minecraft:brown_stained_glass","minecraft:brown_stained_glass_pane","minecraft:brown_terracotta","minecraft:brown_wool","minecraft:bubble_coral","minecraft:bubble_coral_block","minecraft:bubble_coral_fan","minecraft:bucket","minecraft:budding_amethyst","minecraft:bundle","minecraft:cactus","minecraft:cake","minecraft:calcite","minecraft:campfire","minecraft:candle","minecraft:carrot","minecraft:carrot_on_a_stick","minecraft:cartography_table","minecraft:carved_pumpkin","minecraft:cat_spawn_egg","minecraft:cauldron","minecraft:cave_spider_spawn_egg","minecraft:chain","minecraft:chain_command_block","minecraft:chainmail_boots","minecraft:chainmail_chestplate","minecraft:chainmail_helmet","minecraft:chainmail_leggings","minecraft:charcoal","minecraft:chest","minecraft:chest_minecart","minecraft:chicken","minecraft:chicken_spawn_egg","minecraft:chipped_anvil","minecraft:chiseled_deepslate","minecraft:chiseled_nether_bricks","minecraft:chiseled_polished_blackstone","minecraft:chiseled_quartz_block","minecraft:chiseled_red_sandstone","minecraft:chiseled_sandstone","minecraft:chiseled_stone_bricks","minecraft:chorus_flower","minecraft:chorus_fruit","minecraft:chorus_plant","minecraft:clay","minecraft:clay_ball","minecraft:clock","minecraft:coal","minecraft:coal_block","minecraft:coal_ore","minecraft:coarse_dirt","minecraft:cobbled_deepslate","minecraft:cobbled_deepslate_slab","minecraft:cobbled_deepslate_stairs","minecraft:cobbled_deepslate_wall","minecraft:cobblestone","minecraft:cobblestone_slab","minecraft:cobblestone_stairs","minecraft:cobblestone_wall","minecraft:cobweb","minecraft:cocoa_beans","minecraft:cod","minecraft:cod_bucket","minecraft:cod_spawn_egg","minecraft:command_block","minecraft:command_block_minecart","minecraft:comparator","minecraft:compass","minecraft:composter","minecraft:conduit","minecraft:cooked_beef","minecraft:cooked_chicken","minecraft:cooked_cod","minecraft:cooked_mutton","minecraft:cooked_porkchop","minecraft:cooked_rabbit","minecraft:cooked_salmon","minecraft:cookie","minecraft:copper_block","minecraft:copper_ingot","minecraft:copper_ore","minecraft:cornflower","minecraft:cow_spawn_egg","minecraft:cracked_deepslate_bricks","minecraft:cracked_deepslate_tiles","minecraft:cracked_nether_bricks","minecraft:cracked_polished_blackstone_bricks","minecraft:cracked_stone_bricks","minecraft:crafting_table","minecraft:creeper_banner_pattern","minecraft:creeper_head","minecraft:creeper_spawn_egg","minecraft:crimson_button","minecraft:crimson_door","minecraft:crimson_fence","minecraft:crimson_fence_gate","minecraft:crimson_fungus","minecraft:crimson_hyphae","minecraft:crimson_nylium","minecraft:crimson_planks","minecraft:crimson_pressure_plate","minecraft:crimson_roots","minecraft:crimson_sign","minecraft:crimson_slab","minecraft:crimson_stairs","minecraft:crimson_stem","minecraft:crimson_trapdoor","minecraft:crossbow","minecraft:crying_obsidian","minecraft:cut_copper","minecraft:cut_copper_slab","minecraft:cut_copper_stairs","minecraft:cut_red_sandstone","minecraft:cut_red_sandstone_slab","minecraft:cut_sandstone","minecraft:cut_sandstone_slab","minecraft:cyan_banner","minecraft:cyan_bed","minecraft:cyan_candle","minecraft:cyan_carpet","minecraft:cyan_concrete","minecraft:cyan_concrete_powder","minecraft:cyan_dye","minecraft:cyan_glazed_terracotta","minecraft:cyan_shulker_box","minecraft:cyan_stained_glass","minecraft:cyan_stained_glass_pane","minecraft:cyan_terracotta","minecraft:cyan_wool","minecraft:damaged_anvil","minecraft:dandelion","minecraft:dark_oak_boat","minecraft:dark_oak_button","minecraft:dark_oak_door","minecraft:dark_oak_fence","minecraft:dark_oak_fence_gate","minecraft:dark_oak_leaves","minecraft:dark_oak_log","minecraft:dark_oak_planks","minecraft:dark_oak_pressure_plate","minecraft:dark_oak_sapling","minecraft:dark_oak_sign","minecraft:dark_oak_slab","minecraft:dark_oak_stairs","minecraft:dark_oak_trapdoor","minecraft:dark_oak_wood","minecraft:dark_prismarine","minecraft:dark_prismarine_slab","minecraft:dark_prismarine_stairs","minecraft:daylight_detector","minecraft:dead_brain_coral","minecraft:dead_brain_coral_block","minecraft:dead_brain_coral_fan","minecraft:dead_bubble_coral","minecraft:dead_bubble_coral_block","minecraft:dead_bubble_coral_fan","minecraft:dead_bush","minecraft:dead_fire_coral","minecraft:dead_fire_coral_block","minecraft:dead_fire_coral_fan","minecraft:dead_horn_coral","minecraft:dead_horn_coral_block","minecraft:dead_horn_coral_fan","minecraft:dead_tube_coral","minecraft:dead_tube_coral_block","minecraft:dead_tube_coral_fan","minecraft:debug_stick","minecraft:deepslate","minecraft:deepslate_brick_slab","minecraft:deepslate_brick_stairs","minecraft:deepslate_brick_wall","minecraft:deepslate_bricks","minecraft:deepslate_coal_ore","minecraft:deepslate_copper_ore","minecraft:deepslate_diamond_ore","minecraft:deepslate_emerald_ore","minecraft:deepslate_gold_ore","minecraft:deepslate_iron_ore","minecraft:deepslate_lapis_ore","minecraft:deepslate_redstone_ore","minecraft:deepslate_tile_slab","minecraft:deepslate_tile_stairs","minecraft:deepslate_tile_wall","minecraft:deepslate_tiles","minecraft:detector_rail","minecraft:diamond","minecraft:diamond_axe","minecraft:diamond_block","minecraft:diamond_boots","minecraft:diamond_chestplate","minecraft:diamond_helmet","minecraft:diamond_hoe","minecraft:diamond_horse_armor","minecraft:diamond_leggings","minecraft:diamond_ore","minecraft:diamond_pickaxe","minecraft:diamond_shovel","minecraft:diamond_sword","minecraft:diorite","minecraft:diorite_slab","minecraft:diorite_stairs","minecraft:diorite_wall","minecraft:dirt","minecraft:dirt_path","minecraft:dispenser","minecraft:dolphin_spawn_egg","minecraft:donkey_spawn_egg","minecraft:dragon_breath","minecraft:dragon_egg","minecraft:dragon_head","minecraft:dried_kelp","minecraft:dried_kelp_block","minecraft:dripstone_block","minecraft:dropper","minecraft:drowned_spawn_egg","minecraft:egg","minecraft:elder_guardian_spawn_egg","minecraft:elytra","minecraft:emerald","minecraft:emerald_block","minecraft:emerald_ore","minecraft:enchanted_book","minecraft:enchanted_golden_apple","minecraft:enchanting_table","minecraft:end_crystal","minecraft:end_portal_frame","minecraft:end_rod","minecraft:end_stone","minecraft:end_stone_brick_slab","minecraft:end_stone_brick_stairs","minecraft:end_stone_brick_wall","minecraft:end_stone_bricks","minecraft:ender_chest","minecraft:ender_eye","minecraft:ender_pearl","minecraft:enderman_spawn_egg","minecraft:endermite_spawn_egg","minecraft:evoker_spawn_egg","minecraft:experience_bottle","minecraft:exposed_copper","minecraft:exposed_cut_copper","minecraft:exposed_cut_copper_slab","minecraft:exposed_cut_copper_stairs","minecraft:farmland","minecraft:feather","minecraft:fermented_spider_eye","minecraft:fern","minecraft:filled_map","minecraft:fire_charge","minecraft:fire_coral","minecraft:fire_coral_block","minecraft:fire_coral_fan","minecraft:firework_rocket","minecraft:firework_star","minecraft:fishing_rod","minecraft:fletching_table","minecraft:flint","minecraft:flint_and_steel","minecraft:flower_banner_pattern","minecraft:flower_pot","minecraft:flowering_azalea","minecraft:flowering_azalea_leaves","minecraft:fox_spawn_egg","minecraft:furnace","minecraft:furnace_minecart","minecraft:ghast_spawn_egg","minecraft:ghast_tear","minecraft:gilded_blackstone","minecraft:glass","minecraft:glass_bottle","minecraft:glass_pane","minecraft:glistering_melon_slice","minecraft:globe_banner_pattern","minecraft:glow_berries","minecraft:glow_ink_sac","minecraft:glow_item_frame","minecraft:glow_lichen","minecraft:glow_squid_spawn_egg","minecraft:glowstone","minecraft:glowstone_dust","minecraft:goat_spawn_egg","minecraft:gold_block","minecraft:gold_ingot","minecraft:gold_nugget","minecraft:gold_ore","minecraft:golden_apple","minecraft:golden_axe","minecraft:golden_boots","minecraft:golden_carrot","minecraft:golden_chestplate","minecraft:golden_helmet","minecraft:golden_hoe","minecraft:golden_horse_armor","minecraft:golden_leggings","minecraft:golden_pickaxe","minecraft:golden_shovel","minecraft:golden_sword","minecraft:granite","minecraft:granite_slab","minecraft:granite_stairs","minecraft:granite_wall","minecraft:grass","minecraft:grass_block","minecraft:gravel","minecraft:gray_banner","minecraft:gray_bed","minecraft:gray_candle","minecraft:gray_carpet","minecraft:gray_concrete","minecraft:gray_concrete_powder","minecraft:gray_dye","minecraft:gray_glazed_terracotta","minecraft:gray_shulker_box","minecraft:gray_stained_glass","minecraft:gray_stained_glass_pane","minecraft:gray_terracotta","minecraft:gray_wool","minecraft:green_banner","minecraft:green_bed","minecraft:green_candle","minecraft:green_carpet","minecraft:green_concrete","minecraft:green_concrete_powder","minecraft:green_dye","minecraft:green_glazed_terracotta","minecraft:green_shulker_box","minecraft:green_stained_glass","minecraft:green_stained_glass_pane","minecraft:green_terracotta","minecraft:green_wool","minecraft:grindstone","minecraft:guardian_spawn_egg","minecraft:gunpowder","minecraft:hanging_roots","minecraft:hay_block","minecraft:heart_of_the_sea","minecraft:heavy_weighted_pressure_plate","minecraft:hoglin_spawn_egg","minecraft:honey_block","minecraft:honey_bottle","minecraft:honeycomb","minecraft:honeycomb_block","minecraft:hopper","minecraft:hopper_minecart","minecraft:horn_coral","minecraft:horn_coral_block","minecraft:horn_coral_fan","minecraft:horse_spawn_egg","minecraft:husk_spawn_egg","minecraft:ice","minecraft:infested_chiseled_stone_bricks","minecraft:infested_cobblestone","minecraft:infested_cracked_stone_bricks","minecraft:infested_deepslate","minecraft:infested_mossy_stone_bricks","minecraft:infested_stone","minecraft:infested_stone_bricks","minecraft:ink_sac","minecraft:iron_axe","minecraft:iron_bars","minecraft:iron_block","minecraft:iron_boots","minecraft:iron_chestplate","minecraft:iron_door","minecraft:iron_helmet","minecraft:iron_hoe","minecraft:iron_horse_armor","minecraft:iron_ingot","minecraft:iron_leggings","minecraft:iron_nugget","minecraft:iron_ore","minecraft:iron_pickaxe","minecraft:iron_shovel","minecraft:iron_sword","minecraft:iron_trapdoor","minecraft:item_frame","minecraft:jack_o_lantern","minecraft:jigsaw","minecraft:jukebox","minecraft:jungle_boat","minecraft:jungle_button","minecraft:jungle_door","minecraft:jungle_fence","minecraft:jungle_fence_gate","minecraft:jungle_leaves","minecraft:jungle_log","minecraft:jungle_planks","minecraft:jungle_pressure_plate","minecraft:jungle_sapling","minecraft:jungle_sign","minecraft:jungle_slab","minecraft:jungle_stairs","minecraft:jungle_trapdoor","minecraft:jungle_wood","minecraft:kelp","minecraft:knowledge_book","minecraft:ladder","minecraft:lantern","minecraft:lapis_block","minecraft:lapis_lazuli","minecraft:lapis_ore","minecraft:large_amethyst_bud","minecraft:large_fern","minecraft:lava_bucket","minecraft:lead","minecraft:leather","minecraft:leather_boots","minecraft:leather_chestplate","minecraft:leather_helmet","minecraft:leather_horse_armor","minecraft:leather_leggings","minecraft:lectern","minecraft:lever","minecraft:light","minecraft:light_blue_banner","minecraft:light_blue_bed","minecraft:light_blue_candle","minecraft:light_blue_carpet","minecraft:light_blue_concrete","minecraft:light_blue_concrete_powder","minecraft:light_blue_dye","minecraft:light_blue_glazed_terracotta","minecraft:light_blue_shulker_box","minecraft:light_blue_stained_glass","minecraft:light_blue_stained_glass_pane","minecraft:light_blue_terracotta","minecraft:light_blue_wool","minecraft:light_gray_banner","minecraft:light_gray_bed","minecraft:light_gray_candle","minecraft:light_gray_carpet","minecraft:light_gray_concrete","minecraft:light_gray_concrete_powder","minecraft:light_gray_dye","minecraft:light_gray_glazed_terracotta","minecraft:light_gray_shulker_box","minecraft:light_gray_stained_glass","minecraft:light_gray_stained_glass_pane","minecraft:light_gray_terracotta","minecraft:light_gray_wool","minecraft:light_weighted_pressure_plate","minecraft:lightning_rod","minecraft:lilac","minecraft:lily_of_the_valley","minecraft:lily_pad","minecraft:lime_banner","minecraft:lime_bed","minecraft:lime_candle","minecraft:lime_carpet","minecraft:lime_concrete","minecraft:lime_concrete_powder","minecraft:lime_dye","minecraft:lime_glazed_terracotta","minecraft:lime_shulker_box","minecraft:lime_stained_glass","minecraft:lime_stained_glass_pane","minecraft:lime_terracotta","minecraft:lime_wool","minecraft:lingering_potion","minecraft:llama_spawn_egg","minecraft:lodestone","minecraft:loom","minecraft:magenta_banner","minecraft:magenta_bed","minecraft:magenta_candle","minecraft:magenta_carpet","minecraft:magenta_concrete","minecraft:magenta_concrete_powder","minecraft:magenta_dye","minecraft:magenta_glazed_terracotta","minecraft:magenta_shulker_box","minecraft:magenta_stained_glass","minecraft:magenta_stained_glass_pane","minecraft:magenta_terracotta","minecraft:magenta_wool","minecraft:magma_block","minecraft:magma_cream","minecraft:magma_cube_spawn_egg","minecraft:map","minecraft:medium_amethyst_bud","minecraft:melon","minecraft:melon_seeds","minecraft:melon_slice","minecraft:milk_bucket","minecraft:minecart","minecraft:mojang_banner_pattern","minecraft:mooshroom_spawn_egg","minecraft:moss_block","minecraft:moss_carpet","minecraft:mossy_cobblestone","minecraft:mossy_cobblestone_slab","minecraft:mossy_cobblestone_stairs","minecraft:mossy_cobblestone_wall","minecraft:mossy_stone_brick_slab","minecraft:mossy_stone_brick_stairs","minecraft:mossy_stone_brick_wall","minecraft:mossy_stone_bricks","minecraft:mule_spawn_egg","minecraft:mushroom_stem","minecraft:mushroom_stew","minecraft:music_disc_11","minecraft:music_disc_13","minecraft:music_disc_blocks","minecraft:music_disc_cat","minecraft:music_disc_chirp","minecraft:music_disc_far","minecraft:music_disc_mall","minecraft:music_disc_mellohi","minecraft:music_disc_pigstep","minecraft:music_disc_stal","minecraft:music_disc_strad","minecraft:music_disc_wait","minecraft:music_disc_ward","minecraft:mutton","minecraft:mycelium","minecraft:name_tag","minecraft:nautilus_shell","minecraft:nether_brick","minecraft:nether_brick_fence","minecraft:nether_brick_slab","minecraft:nether_brick_stairs","minecraft:nether_brick_wall","minecraft:nether_bricks","minecraft:nether_gold_ore","minecraft:nether_quartz_ore","minecraft:nether_sprouts","minecraft:nether_star","minecraft:nether_wart","minecraft:nether_wart_block","minecraft:netherite_axe","minecraft:netherite_block","minecraft:netherite_boots","minecraft:netherite_chestplate","minecraft:netherite_helmet","minecraft:netherite_hoe","minecraft:netherite_ingot","minecraft:netherite_leggings","minecraft:netherite_pickaxe","minecraft:netherite_scrap","minecraft:netherite_shovel","minecraft:netherite_sword","minecraft:netherrack","minecraft:note_block","minecraft:oak_boat","minecraft:oak_button","minecraft:oak_door","minecraft:oak_fence","minecraft:oak_fence_gate","minecraft:oak_leaves","minecraft:oak_log","minecraft:oak_planks","minecraft:oak_pressure_plate","minecraft:oak_sapling","minecraft:oak_sign","minecraft:oak_slab","minecraft:oak_stairs","minecraft:oak_trapdoor","minecraft:oak_wood","minecraft:observer","minecraft:obsidian","minecraft:ocelot_spawn_egg","minecraft:orange_banner","minecraft:orange_bed","minecraft:orange_candle","minecraft:orange_carpet","minecraft:orange_concrete","minecraft:orange_concrete_powder","minecraft:orange_dye","minecraft:orange_glazed_terracotta","minecraft:orange_shulker_box","minecraft:orange_stained_glass","minecraft:orange_stained_glass_pane","minecraft:orange_terracotta","minecraft:orange_tulip","minecraft:orange_wool","minecraft:oxeye_daisy","minecraft:oxidized_copper","minecraft:oxidized_cut_copper","minecraft:oxidized_cut_copper_slab","minecraft:oxidized_cut_copper_stairs","minecraft:packed_ice","minecraft:painting","minecraft:panda_spawn_egg","minecraft:paper","minecraft:parrot_spawn_egg","minecraft:peony","minecraft:petrified_oak_slab","minecraft:phantom_membrane","minecraft:phantom_spawn_egg","minecraft:pig_spawn_egg","minecraft:piglin_banner_pattern","minecraft:piglin_brute_spawn_egg","minecraft:piglin_spawn_egg","minecraft:pillager_spawn_egg","minecraft:pink_banner","minecraft:pink_bed","minecraft:pink_candle","minecraft:pink_carpet","minecraft:pink_concrete","minecraft:pink_concrete_powder","minecraft:pink_dye","minecraft:pink_glazed_terracotta","minecraft:pink_shulker_box","minecraft:pink_stained_glass","minecraft:pink_stained_glass_pane","minecraft:pink_terracotta","minecraft:pink_tulip","minecraft:pink_wool","minecraft:piston","minecraft:player_head","minecraft:podzol","minecraft:pointed_dripstone","minecraft:poisonous_potato","minecraft:polar_bear_spawn_egg","minecraft:polished_andesite","minecraft:polished_andesite_slab","minecraft:polished_andesite_stairs","minecraft:polished_basalt","minecraft:polished_blackstone","minecraft:polished_blackstone_brick_slab","minecraft:polished_blackstone_brick_stairs","minecraft:polished_blackstone_brick_wall","minecraft:polished_blackstone_bricks","minecraft:polished_blackstone_button","minecraft:polished_blackstone_pressure_plate","minecraft:polished_blackstone_slab","minecraft:polished_blackstone_stairs","minecraft:polished_blackstone_wall","minecraft:polished_deepslate","minecraft:polished_deepslate_slab","minecraft:polished_deepslate_stairs","minecraft:polished_deepslate_wall","minecraft:polished_diorite","minecraft:polished_diorite_slab","minecraft:polished_diorite_stairs","minecraft:polished_granite","minecraft:polished_granite_slab","minecraft:polished_granite_stairs","minecraft:popped_chorus_fruit","minecraft:poppy","minecraft:porkchop","minecraft:potato","minecraft:potion","minecraft:powder_snow_bucket","minecraft:powered_rail","minecraft:prismarine","minecraft:prismarine_brick_slab","minecraft:prismarine_brick_stairs","minecraft:prismarine_bricks","minecraft:prismarine_crystals","minecraft:prismarine_shard","minecraft:prismarine_slab","minecraft:prismarine_stairs","minecraft:prismarine_wall","minecraft:pufferfish","minecraft:pufferfish_bucket","minecraft:pufferfish_spawn_egg","minecraft:pumpkin","minecraft:pumpkin_pie","minecraft:pumpkin_seeds","minecraft:purple_banner","minecraft:purple_bed","minecraft:purple_candle","minecraft:purple_carpet","minecraft:purple_concrete","minecraft:purple_concrete_powder","minecraft:purple_dye","minecraft:purple_glazed_terracotta","minecraft:purple_shulker_box","minecraft:purple_stained_glass","minecraft:purple_stained_glass_pane","minecraft:purple_terracotta","minecraft:purple_wool","minecraft:purpur_block","minecraft:purpur_pillar","minecraft:purpur_slab","minecraft:purpur_stairs","minecraft:quartz","minecraft:quartz_block","minecraft:quartz_bricks","minecraft:quartz_pillar","minecraft:quartz_slab","minecraft:quartz_stairs","minecraft:rabbit","minecraft:rabbit_foot","minecraft:rabbit_hide","minecraft:rabbit_spawn_egg","minecraft:rabbit_stew","minecraft:rail","minecraft:ravager_spawn_egg","minecraft:raw_copper","minecraft:raw_copper_block","minecraft:raw_gold","minecraft:raw_gold_block","minecraft:raw_iron","minecraft:raw_iron_block","minecraft:red_banner","minecraft:red_bed","minecraft:red_candle","minecraft:red_carpet","minecraft:red_concrete","minecraft:red_concrete_powder","minecraft:red_dye","minecraft:red_glazed_terracotta","minecraft:red_mushroom","minecraft:red_mushroom_block","minecraft:red_nether_brick_slab","minecraft:red_nether_brick_stairs","minecraft:red_nether_brick_wall","minecraft:red_nether_bricks","minecraft:red_sand","minecraft:red_sandstone","minecraft:red_sandstone_slab","minecraft:red_sandstone_stairs","minecraft:red_sandstone_wall","minecraft:red_shulker_box","minecraft:red_stained_glass","minecraft:red_stained_glass_pane","minecraft:red_terracotta","minecraft:red_tulip","minecraft:red_wool","minecraft:redstone","minecraft:redstone_block","minecraft:redstone_lamp","minecraft:redstone_ore","minecraft:redstone_torch","minecraft:repeater","minecraft:repeating_command_block","minecraft:respawn_anchor","minecraft:rooted_dirt","minecraft:rose_bush","minecraft:rotten_flesh","minecraft:saddle","minecraft:salmon","minecraft:salmon_bucket","minecraft:salmon_spawn_egg","minecraft:sand","minecraft:sandstone","minecraft:sandstone_slab","minecraft:sandstone_stairs","minecraft:sandstone_wall","minecraft:scaffolding","minecraft:sculk_sensor","minecraft:scute","minecraft:sea_lantern","minecraft:sea_pickle","minecraft:seagrass","minecraft:shears","minecraft:sheep_spawn_egg","minecraft:shield","minecraft:shroomlight","minecraft:shulker_box","minecraft:shulker_shell","minecraft:shulker_spawn_egg","minecraft:silverfish_spawn_egg","minecraft:skeleton_horse_spawn_egg","minecraft:skeleton_skull","minecraft:skeleton_spawn_egg","minecraft:skull_banner_pattern","minecraft:slime_ball","minecraft:slime_block","minecraft:slime_spawn_egg","minecraft:small_amethyst_bud","minecraft:small_dripleaf","minecraft:smithing_table","minecraft:smoker","minecraft:smooth_basalt","minecraft:smooth_quartz","minecraft:smooth_quartz_slab","minecraft:smooth_quartz_stairs","minecraft:smooth_red_sandstone","minecraft:smooth_red_sandstone_slab","minecraft:smooth_red_sandstone_stairs","minecraft:smooth_sandstone","minecraft:smooth_sandstone_slab","minecraft:smooth_sandstone_stairs","minecraft:smooth_stone","minecraft:smooth_stone_slab","minecraft:snow","minecraft:snow_block","minecraft:snowball","minecraft:soul_campfire","minecraft:soul_lantern","minecraft:soul_sand","minecraft:soul_soil","minecraft:soul_torch","minecraft:spawner","minecraft:spectral_arrow","minecraft:spider_eye","minecraft:spider_spawn_egg","minecraft:splash_potion","minecraft:sponge","minecraft:spore_blossom","minecraft:spruce_boat","minecraft:spruce_button","minecraft:spruce_door","minecraft:spruce_fence","minecraft:spruce_fence_gate","minecraft:spruce_leaves","minecraft:spruce_log","minecraft:spruce_planks","minecraft:spruce_pressure_plate","minecraft:spruce_sapling","minecraft:spruce_sign","minecraft:spruce_slab","minecraft:spruce_stairs","minecraft:spruce_trapdoor","minecraft:spruce_wood","minecraft:spyglass","minecraft:squid_spawn_egg","minecraft:stick","minecraft:sticky_piston","minecraft:stone","minecraft:stone_axe","minecraft:stone_brick_slab","minecraft:stone_brick_stairs","minecraft:stone_brick_wall","minecraft:stone_bricks","minecraft:stone_button","minecraft:stone_hoe","minecraft:stone_pickaxe","minecraft:stone_pressure_plate","minecraft:stone_shovel","minecraft:stone_slab","minecraft:stone_stairs","minecraft:stone_sword","minecraft:stonecutter","minecraft:stray_spawn_egg","minecraft:strider_spawn_egg","minecraft:string","minecraft:stripped_acacia_log","minecraft:stripped_acacia_wood","minecraft:stripped_birch_log","minecraft:stripped_birch_wood","minecraft:stripped_crimson_hyphae","minecraft:stripped_crimson_stem","minecraft:stripped_dark_oak_log","minecraft:stripped_dark_oak_wood","minecraft:stripped_jungle_log","minecraft:stripped_jungle_wood","minecraft:stripped_oak_log","minecraft:stripped_oak_wood","minecraft:stripped_spruce_log","minecraft:stripped_spruce_wood","minecraft:stripped_warped_hyphae","minecraft:stripped_warped_stem","minecraft:structure_block","minecraft:structure_void","minecraft:sugar","minecraft:sugar_cane","minecraft:sunflower","minecraft:suspicious_stew","minecraft:sweet_berries","minecraft:tall_grass","minecraft:target","minecraft:terracotta","minecraft:tinted_glass","minecraft:tipped_arrow","minecraft:tnt","minecraft:tnt_minecart","minecraft:torch","minecraft:totem_of_undying","minecraft:trader_llama_spawn_egg","minecraft:trapped_chest","minecraft:trident","minecraft:tripwire_hook","minecraft:tropical_fish","minecraft:tropical_fish_bucket","minecraft:tropical_fish_spawn_egg","minecraft:tube_coral","minecraft:tube_coral_block","minecraft:tube_coral_fan","minecraft:tuff","minecraft:turtle_egg","minecraft:turtle_helmet","minecraft:turtle_spawn_egg","minecraft:twisting_vines","minecraft:vex_spawn_egg","minecraft:villager_spawn_egg","minecraft:vindicator_spawn_egg","minecraft:vine","minecraft:wandering_trader_spawn_egg","minecraft:warped_button","minecraft:warped_door","minecraft:warped_fence","minecraft:warped_fence_gate","minecraft:warped_fungus","minecraft:warped_fungus_on_a_stick","minecraft:warped_hyphae","minecraft:warped_nylium","minecraft:warped_planks","minecraft:warped_pressure_plate","minecraft:warped_roots","minecraft:warped_sign","minecraft:warped_slab","minecraft:warped_stairs","minecraft:warped_stem","minecraft:warped_trapdoor","minecraft:warped_wart_block","minecraft:water_bucket","minecraft:waxed_copper_block","minecraft:waxed_cut_copper","minecraft:waxed_cut_copper_slab","minecraft:waxed_cut_copper_stairs","minecraft:waxed_exposed_copper","minecraft:waxed_exposed_cut_copper","minecraft:waxed_exposed_cut_copper_slab","minecraft:waxed_exposed_cut_copper_stairs","minecraft:waxed_oxidized_copper","minecraft:waxed_oxidized_cut_copper","minecraft:waxed_oxidized_cut_copper_slab","minecraft:waxed_oxidized_cut_copper_stairs","minecraft:waxed_weathered_copper","minecraft:waxed_weathered_cut_copper","minecraft:waxed_weathered_cut_copper_slab","minecraft:waxed_weathered_cut_copper_stairs","minecraft:weathered_copper","minecraft:weathered_cut_copper","minecraft:weathered_cut_copper_slab","minecraft:weathered_cut_copper_stairs","minecraft:weeping_vines","minecraft:wet_sponge","minecraft:wheat","minecraft:wheat_seeds","minecraft:white_banner","minecraft:white_bed","minecraft:white_candle","minecraft:white_carpet","minecraft:white_concrete","minecraft:white_concrete_powder","minecraft:white_dye","minecraft:white_glazed_terracotta","minecraft:white_shulker_box","minecraft:white_stained_glass","minecraft:white_stained_glass_pane","minecraft:white_terracotta","minecraft:white_tulip","minecraft:white_wool","minecraft:witch_spawn_egg","minecraft:wither_rose","minecraft:wither_skeleton_skull","minecraft:wither_skeleton_spawn_egg","minecraft:wolf_spawn_egg","minecraft:wooden_axe","minecraft:wooden_hoe","minecraft:wooden_pickaxe","minecraft:wooden_shovel","minecraft:wooden_sword","minecraft:writable_book","minecraft:written_book","minecraft:yellow_banner","minecraft:yellow_bed","minecraft:yellow_candle","minecraft:yellow_carpet","minecraft:yellow_concrete","minecraft:yellow_concrete_powder","minecraft:yellow_dye","minecraft:yellow_glazed_terracotta","minecraft:yellow_shulker_box","minecraft:yellow_stained_glass","minecraft:yellow_stained_glass_pane","minecraft:yellow_terracotta","minecraft:yellow_wool","minecraft:zoglin_spawn_egg","minecraft:zombie_head","minecraft:zombie_horse_spawn_egg","minecraft:zombie_spawn_egg","minecraft:zombie_villager_spawn_egg","minecraft:zombified_piglin_spawn_egg"],"itemtags":{"minecraft:acacia_logs":["minecraft:acacia_log","minecraft:acacia_wood","minecraft:stripped_acacia_log","minecraft:stripped_acacia_wood"],"minecraft:anvil":["minecraft:anvil","minecraft:chipped_anvil","minecraft:damaged_anvil"],"minecraft:arrows":["minecraft:arrow","minecraft:spectral_arrow","minecraft:tipped_arrow"],"minecraft:axolotl_tempt_items":["minecraft:tropical_fish_bucket"],"minecraft:banners":["minecraft:black_banner","minecraft:blue_banner","minecraft:brown_banner","minecraft:cyan_banner","minecraft:gray_banner","minecraft:green_banner","minecraft:light_blue_banner","minecraft:light_gray_banner","minecraft:lime_banner","minecraft:magenta_banner","minecraft:orange_banner","minecraft:pink_banner","minecraft:purple_banner","minecraft:red_banner","minecraft:white_banner","minecraft:yellow_banner"],"minecraft:beacon_payment_items":["minecraft:diamond","minecraft:emerald","minecraft:gold_ingot","minecraft:iron_ingot","minecraft:netherite_ingot"],"minecraft:beds":["minecraft:black_bed","minecraft:blue_bed","minecraft:brown_bed","minecraft:cyan_bed","minecraft:gray_bed","minecraft:green_bed","minecraft:light_blue_bed","minecraft:light_gray_bed","minecraft:lime_bed","minecraft:magenta_bed","minecraft:orange_bed","minecraft:pink_bed","minecraft:purple_bed","minecraft:red_bed","minecraft:white_bed","minecraft:yellow_bed"],"minecraft:birch_logs":["minecraft:birch_log","minecraft:birch_wood","minecraft:stripped_birch_log","minecraft:stripped_birch_wood"],"minecraft:boats":["minecraft:acacia_boat","minecraft:birch_boat","minecraft:dark_oak_boat","minecraft:jungle_boat","minecraft:oak_boat","minecraft:spruce_boat"],"minecraft:buttons":["minecraft:acacia_button","minecraft:birch_button","minecraft:crimson_button","minecraft:dark_oak_button","minecraft:jungle_button","minecraft:oak_button","minecraft:polished_blackstone_button","minecraft:spruce_button","minecraft:stone_button","minecraft:warped_button"],"minecraft:candles":["minecraft:black_candle","minecraft:blue_candle","minecraft:brown_candle","minecraft:candle","minecraft:cyan_candle","minecraft:gray_candle","minecraft:green_candle","minecraft:light_blue_candle","minecraft:light_gray_candle","minecraft:lime_candle","minecraft:magenta_candle","minecraft:orange_candle","minecraft:pink_candle","minecraft:purple_candle","minecraft:red_candle","minecraft:white_candle","minecraft:yellow_candle"],"minecraft:carpets":["minecraft:black_carpet","minecraft:blue_carpet","minecraft:brown_carpet","minecraft:cyan_carpet","minecraft:gray_carpet","minecraft:green_carpet","minecraft:light_blue_carpet","minecraft:light_gray_carpet","minecraft:lime_carpet","minecraft:magenta_carpet","minecraft:orange_carpet","minecraft:pink_carpet","minecraft:purple_carpet","minecraft:red_carpet","minecraft:white_carpet","minecraft:yellow_carpet"],"minecraft:cluster_max_harvestables":["minecraft:diamond_pickaxe","minecraft:golden_pickaxe","minecraft:iron_pickaxe","minecraft:netherite_pickaxe","minecraft:stone_pickaxe","minecraft:wooden_pickaxe"],"minecraft:coal_ores":["minecraft:coal_ore","minecraft:deepslate_coal_ore"],"minecraft:coals":["minecraft:charcoal","minecraft:coal"],"minecraft:copper_ores":["minecraft:copper_ore","minecraft:deepslate_copper_ore"],"minecraft:creeper_drop_music_discs":["minecraft:music_disc_11","minecraft:music_disc_13","minecraft:music_disc_blocks","minecraft:music_disc_cat","minecraft:music_disc_chirp","minecraft:music_disc_far","minecraft:music_disc_mall","minecraft:music_disc_mellohi","minecraft:music_disc_stal","minecraft:music_disc_strad","minecraft:music_disc_wait","minecraft:music_disc_ward"],"minecraft:crimson_stems":["minecraft:crimson_hyphae","minecraft:crimson_stem","minecraft:stripped_crimson_hyphae","minecraft:stripped_crimson_stem"],"minecraft:dark_oak_logs":["minecraft:dark_oak_log","minecraft:dark_oak_wood","minecraft:stripped_dark_oak_log","minecraft:stripped_dark_oak_wood"],"minecraft:diamond_ores":["minecraft:deepslate_diamond_ore","minecraft:diamond_ore"],"minecraft:doors":["minecraft:acacia_door","minecraft:birch_door","minecraft:crimson_door","minecraft:dark_oak_door","minecraft:iron_door","minecraft:jungle_door","minecraft:oak_door","minecraft:spruce_door","minecraft:warped_door"],"minecraft:emerald_ores":["minecraft:deepslate_emerald_ore","minecraft:emerald_ore"],"minecraft:fences":["minecraft:acacia_fence","minecraft:birch_fence","minecraft:crimson_fence","minecraft:dark_oak_fence","minecraft:jungle_fence","minecraft:nether_brick_fence","minecraft:oak_fence","minecraft:spruce_fence","minecraft:warped_fence"],"minecraft:fishes":["minecraft:cod","minecraft:cooked_cod","minecraft:cooked_salmon","minecraft:pufferfish","minecraft:salmon","minecraft:tropical_fish"],"minecraft:flowers":["minecraft:allium","minecraft:azure_bluet","minecraft:blue_orchid","minecraft:cornflower","minecraft:dandelion","minecraft:flowering_azalea","minecraft:flowering_azalea_leaves","minecraft:lilac","minecraft:lily_of_the_valley","minecraft:orange_tulip","minecraft:oxeye_daisy","minecraft:peony","minecraft:pink_tulip","minecraft:poppy","minecraft:red_tulip","minecraft:rose_bush","minecraft:sunflower","minecraft:white_tulip","minecraft:wither_rose"],"minecraft:fox_food":["minecraft:glow_berries","minecraft:sweet_berries"],"minecraft:freeze_immune_wearables":["minecraft:leather_boots","minecraft:leather_chestplate","minecraft:leather_helmet","minecraft:leather_horse_armor","minecraft:leather_leggings"],"minecraft:gold_ores":["minecraft:deepslate_gold_ore","minecraft:gold_ore","minecraft:nether_gold_ore"],"minecraft:ignored_by_piglin_babies":["minecraft:leather"],"minecraft:iron_ores":["minecraft:deepslate_iron_ore","minecraft:iron_ore"],"minecraft:jungle_logs":["minecraft:jungle_log","minecraft:jungle_wood","minecraft:stripped_jungle_log","minecraft:stripped_jungle_wood"],"minecraft:lapis_ores":["minecraft:deepslate_lapis_ore","minecraft:lapis_ore"],"minecraft:leaves":["minecraft:acacia_leaves","minecraft:azalea_leaves","minecraft:birch_leaves","minecraft:dark_oak_leaves","minecraft:flowering_azalea_leaves","minecraft:jungle_leaves","minecraft:oak_leaves","minecraft:spruce_leaves"],"minecraft:lectern_books":["minecraft:writable_book","minecraft:written_book"],"minecraft:logs":["minecraft:acacia_log","minecraft:acacia_wood","minecraft:birch_log","minecraft:birch_wood","minecraft:crimson_hyphae","minecraft:crimson_stem","minecraft:dark_oak_log","minecraft:dark_oak_wood","minecraft:jungle_log","minecraft:jungle_wood","minecraft:oak_log","minecraft:oak_wood","minecraft:spruce_log","minecraft:spruce_wood","minecraft:stripped_acacia_log","minecraft:stripped_acacia_wood","minecraft:stripped_birch_log","minecraft:stripped_birch_wood","minecraft:stripped_crimson_hyphae","minecraft:stripped_crimson_stem","minecraft:stripped_dark_oak_log","minecraft:stripped_dark_oak_wood","minecraft:stripped_jungle_log","minecraft:stripped_jungle_wood","minecraft:stripped_oak_log","minecraft:stripped_oak_wood","minecraft:stripped_spruce_log","minecraft:stripped_spruce_wood","minecraft:stripped_warped_hyphae","minecraft:stripped_warped_stem","minecraft:warped_hyphae","minecraft:warped_stem"],"minecraft:logs_that_burn":["minecraft:acacia_log","minecraft:acacia_wood","minecraft:birch_log","minecraft:birch_wood","minecraft:dark_oak_log","minecraft:dark_oak_wood","minecraft:jungle_log","minecraft:jungle_wood","minecraft:oak_log","minecraft:oak_wood","minecraft:spruce_log","minecraft:spruce_wood","minecraft:stripped_acacia_log","minecraft:stripped_acacia_wood","minecraft:stripped_birch_log","minecraft:stripped_birch_wood","minecraft:stripped_dark_oak_log","minecraft:stripped_dark_oak_wood","minecraft:stripped_jungle_log","minecraft:stripped_jungle_wood","minecraft:stripped_oak_log","minecraft:stripped_oak_wood","minecraft:stripped_spruce_log","minecraft:stripped_spruce_wood"],"minecraft:music_discs":["minecraft:music_disc_11","minecraft:music_disc_13","minecraft:music_disc_blocks","minecraft:music_disc_cat","minecraft:music_disc_chirp","minecraft:music_disc_far","minecraft:music_disc_mall","minecraft:music_disc_mellohi","minecraft:music_disc_pigstep","minecraft:music_disc_stal","minecraft:music_disc_strad","minecraft:music_disc_wait","minecraft:music_disc_ward"],"minecraft:non_flammable_wood":["minecraft:crimson_button","minecraft:crimson_door","minecraft:crimson_fence","minecraft:crimson_fence_gate","minecraft:crimson_hyphae","minecraft:crimson_planks","minecraft:crimson_pressure_plate","minecraft:crimson_sign","minecraft:crimson_slab","minecraft:crimson_stairs","minecraft:crimson_stem","minecraft:crimson_trapdoor","minecraft:stripped_crimson_hyphae","minecraft:stripped_crimson_stem","minecraft:stripped_warped_hyphae","minecraft:stripped_warped_stem","minecraft:warped_button","minecraft:warped_door","minecraft:warped_fence","minecraft:warped_fence_gate","minecraft:warped_hyphae","minecraft:warped_planks","minecraft:warped_pressure_plate","minecraft:warped_sign","minecraft:warped_slab","minecraft:warped_stairs","minecraft:warped_stem","minecraft:warped_trapdoor"],"minecraft:oak_logs":["minecraft:oak_log","minecraft:oak_wood","minecraft:stripped_oak_log","minecraft:stripped_oak_wood"],"minecraft:occludes_vibration_signals":["minecraft:black_wool","minecraft:blue_wool","minecraft:brown_wool","minecraft:cyan_wool","minecraft:gray_wool","minecraft:green_wool","minecraft:light_blue_wool","minecraft:light_gray_wool","minecraft:lime_wool","minecraft:magenta_wool","minecraft:orange_wool","minecraft:pink_wool","minecraft:purple_wool","minecraft:red_wool","minecraft:white_wool","minecraft:yellow_wool"],"minecraft:piglin_food":["minecraft:cooked_porkchop","minecraft:porkchop"],"minecraft:piglin_loved":["minecraft:bell","minecraft:clock","minecraft:deepslate_gold_ore","minecraft:enchanted_golden_apple","minecraft:gilded_blackstone","minecraft:glistering_melon_slice","minecraft:gold_block","minecraft:gold_ingot","minecraft:gold_ore","minecraft:golden_apple","minecraft:golden_axe","minecraft:golden_boots","minecraft:golden_carrot","minecraft:golden_chestplate","minecraft:golden_helmet","minecraft:golden_hoe","minecraft:golden_horse_armor","minecraft:golden_leggings","minecraft:golden_pickaxe","minecraft:golden_shovel","minecraft:golden_sword","minecraft:light_weighted_pressure_plate","minecraft:nether_gold_ore","minecraft:raw_gold","minecraft:raw_gold_block"],"minecraft:piglin_repellents":["minecraft:soul_campfire","minecraft:soul_lantern","minecraft:soul_torch"],"minecraft:planks":["minecraft:acacia_planks","minecraft:birch_planks","minecraft:crimson_planks","minecraft:dark_oak_planks","minecraft:jungle_planks","minecraft:oak_planks","minecraft:spruce_planks","minecraft:warped_planks"],"minecraft:rails":["minecraft:activator_rail","minecraft:detector_rail","minecraft:powered_rail","minecraft:rail"],"minecraft:redstone_ores":["minecraft:deepslate_redstone_ore","minecraft:redstone_ore"],"minecraft:sand":["minecraft:red_sand","minecraft:sand"],"minecraft:saplings":["minecraft:acacia_sapling","minecraft:azalea","minecraft:birch_sapling","minecraft:dark_oak_sapling","minecraft:flowering_azalea","minecraft:jungle_sapling","minecraft:oak_sapling","minecraft:spruce_sapling"],"minecraft:signs":["minecraft:acacia_sign","minecraft:birch_sign","minecraft:crimson_sign","minecraft:dark_oak_sign","minecraft:jungle_sign","minecraft:oak_sign","minecraft:spruce_sign","minecraft:warped_sign"],"minecraft:slabs":["minecraft:acacia_slab","minecraft:andesite_slab","minecraft:birch_slab","minecraft:blackstone_slab","minecraft:brick_slab","minecraft:cobbled_deepslate_slab","minecraft:cobblestone_slab","minecraft:crimson_slab","minecraft:cut_copper_slab","minecraft:cut_red_sandstone_slab","minecraft:cut_sandstone_slab","minecraft:dark_oak_slab","minecraft:dark_prismarine_slab","minecraft:deepslate_brick_slab","minecraft:deepslate_tile_slab","minecraft:diorite_slab","minecraft:end_stone_brick_slab","minecraft:exposed_cut_copper_slab","minecraft:granite_slab","minecraft:jungle_slab","minecraft:mossy_cobblestone_slab","minecraft:mossy_stone_brick_slab","minecraft:nether_brick_slab","minecraft:oak_slab","minecraft:oxidized_cut_copper_slab","minecraft:petrified_oak_slab","minecraft:polished_andesite_slab","minecraft:polished_blackstone_brick_slab","minecraft:polished_blackstone_slab","minecraft:polished_deepslate_slab","minecraft:polished_diorite_slab","minecraft:polished_granite_slab","minecraft:prismarine_brick_slab","minecraft:prismarine_slab","minecraft:purpur_slab","minecraft:quartz_slab","minecraft:red_nether_brick_slab","minecraft:red_sandstone_slab","minecraft:sandstone_slab","minecraft:smooth_quartz_slab","minecraft:smooth_red_sandstone_slab","minecraft:smooth_sandstone_slab","minecraft:smooth_stone_slab","minecraft:spruce_slab","minecraft:stone_brick_slab","minecraft:stone_slab","minecraft:warped_slab","minecraft:waxed_cut_copper_slab","minecraft:waxed_exposed_cut_copper_slab","minecraft:waxed_oxidized_cut_copper_slab","minecraft:waxed_weathered_cut_copper_slab","minecraft:weathered_cut_copper_slab"],"minecraft:small_flowers":["minecraft:allium","minecraft:azure_bluet","minecraft:blue_orchid","minecraft:cornflower","minecraft:dandelion","minecraft:lily_of_the_valley","minecraft:orange_tulip","minecraft:oxeye_daisy","minecraft:pink_tulip","minecraft:poppy","minecraft:red_tulip","minecraft:white_tulip","minecraft:wither_rose"],"minecraft:soul_fire_base_blocks":["minecraft:soul_sand","minecraft:soul_soil"],"minecraft:spruce_logs":["minecraft:spruce_log","minecraft:spruce_wood","minecraft:stripped_spruce_log","minecraft:stripped_spruce_wood"],"minecraft:stairs":["minecraft:acacia_stairs","minecraft:andesite_stairs","minecraft:birch_stairs","minecraft:blackstone_stairs","minecraft:brick_stairs","minecraft:cobbled_deepslate_stairs","minecraft:cobblestone_stairs","minecraft:crimson_stairs","minecraft:cut_copper_stairs","minecraft:dark_oak_stairs","minecraft:dark_prismarine_stairs","minecraft:deepslate_brick_stairs","minecraft:deepslate_tile_stairs","minecraft:diorite_stairs","minecraft:end_stone_brick_stairs","minecraft:exposed_cut_copper_stairs","minecraft:granite_stairs","minecraft:jungle_stairs","minecraft:mossy_cobblestone_stairs","minecraft:mossy_stone_brick_stairs","minecraft:nether_brick_stairs","minecraft:oak_stairs","minecraft:oxidized_cut_copper_stairs","minecraft:polished_andesite_stairs","minecraft:polished_blackstone_brick_stairs","minecraft:polished_blackstone_stairs","minecraft:polished_deepslate_stairs","minecraft:polished_diorite_stairs","minecraft:polished_granite_stairs","minecraft:prismarine_brick_stairs","minecraft:prismarine_stairs","minecraft:purpur_stairs","minecraft:quartz_stairs","minecraft:red_nether_brick_stairs","minecraft:red_sandstone_stairs","minecraft:sandstone_stairs","minecraft:smooth_quartz_stairs","minecraft:smooth_red_sandstone_stairs","minecraft:smooth_sandstone_stairs","minecraft:spruce_stairs","minecraft:stone_brick_stairs","minecraft:stone_stairs","minecraft:warped_stairs","minecraft:waxed_cut_copper_stairs","minecraft:waxed_exposed_cut_copper_stairs","minecraft:waxed_oxidized_cut_copper_stairs","minecraft:waxed_weathered_cut_copper_stairs","minecraft:weathered_cut_copper_stairs"],"minecraft:stone_bricks":["minecraft:chiseled_stone_bricks","minecraft:cracked_stone_bricks","minecraft:mossy_stone_bricks","minecraft:stone_bricks"],"minecraft:stone_crafting_materials":["minecraft:blackstone","minecraft:cobbled_deepslate","minecraft:cobblestone"],"minecraft:stone_tool_materials":["minecraft:blackstone","minecraft:cobbled_deepslate","minecraft:cobblestone"],"minecraft:tall_flowers":["minecraft:lilac","minecraft:peony","minecraft:rose_bush","minecraft:sunflower"],"minecraft:trapdoors":["minecraft:acacia_trapdoor","minecraft:birch_trapdoor","minecraft:crimson_trapdoor","minecraft:dark_oak_trapdoor","minecraft:iron_trapdoor","minecraft:jungle_trapdoor","minecraft:oak_trapdoor","minecraft:spruce_trapdoor","minecraft:warped_trapdoor"],"minecraft:walls":["minecraft:andesite_wall","minecraft:blackstone_wall","minecraft:brick_wall","minecraft:cobbled_deepslate_wall","minecraft:cobblestone_wall","minecraft:deepslate_brick_wall","minecraft:deepslate_tile_wall","minecraft:diorite_wall","minecraft:end_stone_brick_wall","minecraft:granite_wall","minecraft:mossy_cobblestone_wall","minecraft:mossy_stone_brick_wall","minecraft:nether_brick_wall","minecraft:polished_blackstone_brick_wall","minecraft:polished_blackstone_wall","minecraft:polished_deepslate_wall","minecraft:prismarine_wall","minecraft:red_nether_brick_wall","minecraft:red_sandstone_wall","minecraft:sandstone_wall","minecraft:stone_brick_wall"],"minecraft:warped_stems":["minecraft:stripped_warped_hyphae","minecraft:stripped_warped_stem","minecraft:warped_hyphae","minecraft:warped_stem"],"minecraft:wooden_buttons":["minecraft:acacia_button","minecraft:birch_button","minecraft:crimson_button","minecraft:dark_oak_button","minecraft:jungle_button","minecraft:oak_button","minecraft:spruce_button","minecraft:warped_button"],"minecraft:wooden_doors":["minecraft:acacia_door","minecraft:birch_door","minecraft:crimson_door","minecraft:dark_oak_door","minecraft:jungle_door","minecraft:oak_door","minecraft:spruce_door","minecraft:warped_door"],"minecraft:wooden_fences":["minecraft:acacia_fence","minecraft:birch_fence","minecraft:crimson_fence","minecraft:dark_oak_fence","minecraft:jungle_fence","minecraft:oak_fence","minecraft:spruce_fence","minecraft:warped_fence"],"minecraft:wooden_pressure_plates":["minecraft:acacia_pressure_plate","minecraft:birch_pressure_plate","minecraft:crimson_pressure_plate","minecraft:dark_oak_pressure_plate","minecraft:jungle_pressure_plate","minecraft:oak_pressure_plate","minecraft:spruce_pressure_plate","minecraft:warped_pressure_plate"],"minecraft:wooden_slabs":["minecraft:acacia_slab","minecraft:birch_slab","minecraft:crimson_slab","minecraft:dark_oak_slab","minecraft:jungle_slab","minecraft:oak_slab","minecraft:spruce_slab","minecraft:warped_slab"],"minecraft:wooden_stairs":["minecraft:acacia_stairs","minecraft:birch_stairs","minecraft:crimson_stairs","minecraft:dark_oak_stairs","minecraft:jungle_stairs","minecraft:oak_stairs","minecraft:spruce_stairs","minecraft:warped_stairs"],"minecraft:wooden_trapdoors":["minecraft:acacia_trapdoor","minecraft:birch_trapdoor","minecraft:crimson_trapdoor","minecraft:dark_oak_trapdoor","minecraft:jungle_trapdoor","minecraft:oak_trapdoor","minecraft:spruce_trapdoor","minecraft:warped_trapdoor"],"minecraft:wool":["minecraft:black_wool","minecraft:blue_wool","minecraft:brown_wool","minecraft:cyan_wool","minecraft:gray_wool","minecraft:green_wool","minecraft:light_blue_wool","minecraft:light_gray_wool","minecraft:lime_wool","minecraft:magenta_wool","minecraft:orange_wool","minecraft:pink_wool","minecraft:purple_wool","minecraft:red_wool","minecraft:white_wool","minecraft:yellow_wool"]}} +{ + "biomes": [ + "minecraft:badlands", + "minecraft:badlands_plateau", + "minecraft:bamboo_jungle", + "minecraft:bamboo_jungle_hills", + "minecraft:basalt_deltas", + "minecraft:beach", + "minecraft:birch_forest", + "minecraft:birch_forest_hills", + "minecraft:cold_ocean", + "minecraft:crimson_forest", + "minecraft:dark_forest", + "minecraft:dark_forest_hills", + "minecraft:deep_cold_ocean", + "minecraft:deep_frozen_ocean", + "minecraft:deep_lukewarm_ocean", + "minecraft:deep_ocean", + "minecraft:deep_warm_ocean", + "minecraft:desert", + "minecraft:desert_hills", + "minecraft:desert_lakes", + "minecraft:dripstone_caves", + "minecraft:end_barrens", + "minecraft:end_highlands", + "minecraft:end_midlands", + "minecraft:eroded_badlands", + "minecraft:flower_forest", + "minecraft:forest", + "minecraft:frozen_ocean", + "minecraft:frozen_river", + "minecraft:giant_spruce_taiga", + "minecraft:giant_spruce_taiga_hills", + "minecraft:giant_tree_taiga", + "minecraft:giant_tree_taiga_hills", + "minecraft:gravelly_mountains", + "minecraft:ice_spikes", + "minecraft:jungle", + "minecraft:jungle_edge", + "minecraft:jungle_hills", + "minecraft:lukewarm_ocean", + "minecraft:lush_caves", + "minecraft:modified_badlands_plateau", + "minecraft:modified_gravelly_mountains", + "minecraft:modified_jungle", + "minecraft:modified_jungle_edge", + "minecraft:modified_wooded_badlands_plateau", + "minecraft:mountain_edge", + "minecraft:mountains", + "minecraft:mushroom_field_shore", + "minecraft:mushroom_fields", + "minecraft:nether_wastes", + "minecraft:ocean", + "minecraft:plains", + "minecraft:river", + "minecraft:savanna", + "minecraft:savanna_plateau", + "minecraft:shattered_savanna", + "minecraft:shattered_savanna_plateau", + "minecraft:small_end_islands", + "minecraft:snowy_beach", + "minecraft:snowy_mountains", + "minecraft:snowy_taiga", + "minecraft:snowy_taiga_hills", + "minecraft:snowy_taiga_mountains", + "minecraft:snowy_tundra", + "minecraft:soul_sand_valley", + "minecraft:stone_shore", + "minecraft:sunflower_plains", + "minecraft:swamp", + "minecraft:swamp_hills", + "minecraft:taiga", + "minecraft:taiga_hills", + "minecraft:taiga_mountains", + "minecraft:tall_birch_forest", + "minecraft:tall_birch_hills", + "minecraft:the_end", + "minecraft:the_void", + "minecraft:warm_ocean", + "minecraft:warped_forest", + "minecraft:wooded_badlands_plateau", + "minecraft:wooded_hills", + "minecraft:wooded_mountains" + ], + "blocks": { + "minecraft:acacia_button": { + "defaultstate": "minecraft:acacia_button[face=wall,facing=north,powered=false]", + "properties": { + "face": { + "type": "enum", + "values": [ + "floor", + "wall", + "ceiling" + ] + }, + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:acacia_door": { + "defaultstate": "minecraft:acacia_door[facing=north,half=lower,hinge=left,open=false,powered=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "upper", + "lower" + ] + }, + "hinge": { + "type": "enum", + "values": [ + "left", + "right" + ] + }, + "open": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:acacia_fence": { + "defaultstate": "minecraft:acacia_fence[east=false,north=false,south=false,waterlogged=false,west=false]", + "properties": { + "east": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "north": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "south": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:acacia_fence_gate": { + "defaultstate": "minecraft:acacia_fence_gate[facing=north,in_wall=false,open=false,powered=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "in_wall": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "open": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:acacia_leaves": { + "defaultstate": "minecraft:acacia_leaves[distance=7,persistent=false]", + "properties": { + "distance": { + "type": "int", + "values": [ + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ] + }, + "persistent": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:acacia_log": { + "defaultstate": "minecraft:acacia_log[axis=y]", + "properties": { + "axis": { + "type": "enum", + "values": [ + "x", + "y", + "z" + ] + } + } + }, + "minecraft:acacia_planks": { + "defaultstate": "minecraft:acacia_planks", + "properties": {} + }, + "minecraft:acacia_pressure_plate": { + "defaultstate": "minecraft:acacia_pressure_plate[powered=false]", + "properties": { + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:acacia_sapling": { + "defaultstate": "minecraft:acacia_sapling[stage=0]", + "properties": { + "stage": { + "type": "int", + "values": [ + "0", + "1" + ] + } + } + }, + "minecraft:acacia_sign": { + "defaultstate": "minecraft:acacia_sign[rotation=0,waterlogged=false]", + "properties": { + "rotation": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:acacia_slab": { + "defaultstate": "minecraft:acacia_slab[type=bottom,waterlogged=false]", + "properties": { + "type": { + "type": "enum", + "values": [ + "top", + "bottom", + "double" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:acacia_stairs": { + "defaultstate": "minecraft:acacia_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "shape": { + "type": "enum", + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:acacia_trapdoor": { + "defaultstate": "minecraft:acacia_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "open": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:acacia_wall_sign": { + "defaultstate": "minecraft:acacia_wall_sign[facing=north,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:acacia_wood": { + "defaultstate": "minecraft:acacia_wood[axis=y]", + "properties": { + "axis": { + "type": "enum", + "values": [ + "x", + "y", + "z" + ] + } + } + }, + "minecraft:activator_rail": { + "defaultstate": "minecraft:activator_rail[powered=false,shape=north_south,waterlogged=false]", + "properties": { + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "shape": { + "type": "enum", + "values": [ + "north_south", + "east_west", + "ascending_east", + "ascending_west", + "ascending_north", + "ascending_south" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:air": { + "defaultstate": "minecraft:air", + "properties": {} + }, + "minecraft:allium": { + "defaultstate": "minecraft:allium", + "properties": {} + }, + "minecraft:amethyst_block": { + "defaultstate": "minecraft:amethyst_block", + "properties": {} + }, + "minecraft:amethyst_cluster": { + "defaultstate": "minecraft:amethyst_cluster[facing=up,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:ancient_debris": { + "defaultstate": "minecraft:ancient_debris", + "properties": {} + }, + "minecraft:andesite": { + "defaultstate": "minecraft:andesite", + "properties": {} + }, + "minecraft:andesite_slab": { + "defaultstate": "minecraft:andesite_slab[type=bottom,waterlogged=false]", + "properties": { + "type": { + "type": "enum", + "values": [ + "top", + "bottom", + "double" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:andesite_stairs": { + "defaultstate": "minecraft:andesite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "shape": { + "type": "enum", + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:andesite_wall": { + "defaultstate": "minecraft:andesite_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]", + "properties": { + "east": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "north": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "south": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "up": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + } + } + }, + "minecraft:anvil": { + "defaultstate": "minecraft:anvil[facing=north]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:attached_melon_stem": { + "defaultstate": "minecraft:attached_melon_stem[facing=north]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:attached_pumpkin_stem": { + "defaultstate": "minecraft:attached_pumpkin_stem[facing=north]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:azalea": { + "defaultstate": "minecraft:azalea", + "properties": {} + }, + "minecraft:azalea_leaves": { + "defaultstate": "minecraft:azalea_leaves[distance=7,persistent=false]", + "properties": { + "distance": { + "type": "int", + "values": [ + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ] + }, + "persistent": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:azure_bluet": { + "defaultstate": "minecraft:azure_bluet", + "properties": {} + }, + "minecraft:bamboo": { + "defaultstate": "minecraft:bamboo[age=0,leaves=none,stage=0]", + "properties": { + "age": { + "type": "int", + "values": [ + "0", + "1" + ] + }, + "leaves": { + "type": "enum", + "values": [ + "none", + "small", + "large" + ] + }, + "stage": { + "type": "int", + "values": [ + "0", + "1" + ] + } + } + }, + "minecraft:bamboo_sapling": { + "defaultstate": "minecraft:bamboo_sapling", + "properties": {} + }, + "minecraft:barrel": { + "defaultstate": "minecraft:barrel[facing=north,open=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ] + }, + "open": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:barrier": { + "defaultstate": "minecraft:barrier", + "properties": {} + }, + "minecraft:basalt": { + "defaultstate": "minecraft:basalt[axis=y]", + "properties": { + "axis": { + "type": "enum", + "values": [ + "x", + "y", + "z" + ] + } + } + }, + "minecraft:beacon": { + "defaultstate": "minecraft:beacon", + "properties": {} + }, + "minecraft:bedrock": { + "defaultstate": "minecraft:bedrock", + "properties": {} + }, + "minecraft:bee_nest": { + "defaultstate": "minecraft:bee_nest[facing=north,honey_level=0]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "honey_level": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5" + ] + } + } + }, + "minecraft:beehive": { + "defaultstate": "minecraft:beehive[facing=north,honey_level=0]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "honey_level": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5" + ] + } + } + }, + "minecraft:beetroots": { + "defaultstate": "minecraft:beetroots[age=0]", + "properties": { + "age": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3" + ] + } + } + }, + "minecraft:bell": { + "defaultstate": "minecraft:bell[attachment=floor,facing=north,powered=false]", + "properties": { + "attachment": { + "type": "enum", + "values": [ + "floor", + "ceiling", + "single_wall", + "double_wall" + ] + }, + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:big_dripleaf": { + "defaultstate": "minecraft:big_dripleaf[facing=north,tilt=none,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "tilt": { + "type": "enum", + "values": [ + "none", + "unstable", + "partial", + "full" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:big_dripleaf_stem": { + "defaultstate": "minecraft:big_dripleaf_stem[facing=north,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:birch_button": { + "defaultstate": "minecraft:birch_button[face=wall,facing=north,powered=false]", + "properties": { + "face": { + "type": "enum", + "values": [ + "floor", + "wall", + "ceiling" + ] + }, + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:birch_door": { + "defaultstate": "minecraft:birch_door[facing=north,half=lower,hinge=left,open=false,powered=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "upper", + "lower" + ] + }, + "hinge": { + "type": "enum", + "values": [ + "left", + "right" + ] + }, + "open": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:birch_fence": { + "defaultstate": "minecraft:birch_fence[east=false,north=false,south=false,waterlogged=false,west=false]", + "properties": { + "east": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "north": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "south": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:birch_fence_gate": { + "defaultstate": "minecraft:birch_fence_gate[facing=north,in_wall=false,open=false,powered=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "in_wall": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "open": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:birch_leaves": { + "defaultstate": "minecraft:birch_leaves[distance=7,persistent=false]", + "properties": { + "distance": { + "type": "int", + "values": [ + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ] + }, + "persistent": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:birch_log": { + "defaultstate": "minecraft:birch_log[axis=y]", + "properties": { + "axis": { + "type": "enum", + "values": [ + "x", + "y", + "z" + ] + } + } + }, + "minecraft:birch_planks": { + "defaultstate": "minecraft:birch_planks", + "properties": {} + }, + "minecraft:birch_pressure_plate": { + "defaultstate": "minecraft:birch_pressure_plate[powered=false]", + "properties": { + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:birch_sapling": { + "defaultstate": "minecraft:birch_sapling[stage=0]", + "properties": { + "stage": { + "type": "int", + "values": [ + "0", + "1" + ] + } + } + }, + "minecraft:birch_sign": { + "defaultstate": "minecraft:birch_sign[rotation=0,waterlogged=false]", + "properties": { + "rotation": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:birch_slab": { + "defaultstate": "minecraft:birch_slab[type=bottom,waterlogged=false]", + "properties": { + "type": { + "type": "enum", + "values": [ + "top", + "bottom", + "double" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:birch_stairs": { + "defaultstate": "minecraft:birch_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "shape": { + "type": "enum", + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:birch_trapdoor": { + "defaultstate": "minecraft:birch_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "open": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:birch_wall_sign": { + "defaultstate": "minecraft:birch_wall_sign[facing=north,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:birch_wood": { + "defaultstate": "minecraft:birch_wood[axis=y]", + "properties": { + "axis": { + "type": "enum", + "values": [ + "x", + "y", + "z" + ] + } + } + }, + "minecraft:black_banner": { + "defaultstate": "minecraft:black_banner[rotation=0]", + "properties": { + "rotation": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ] + } + } + }, + "minecraft:black_bed": { + "defaultstate": "minecraft:black_bed[facing=north,occupied=false,part=foot]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "occupied": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "part": { + "type": "enum", + "values": [ + "head", + "foot" + ] + } + } + }, + "minecraft:black_candle": { + "defaultstate": "minecraft:black_candle[candles=1,lit=false,waterlogged=false]", + "properties": { + "candles": { + "type": "int", + "values": [ + "1", + "2", + "3", + "4" + ] + }, + "lit": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:black_candle_cake": { + "defaultstate": "minecraft:black_candle_cake[lit=false]", + "properties": { + "lit": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:black_carpet": { + "defaultstate": "minecraft:black_carpet", + "properties": {} + }, + "minecraft:black_concrete": { + "defaultstate": "minecraft:black_concrete", + "properties": {} + }, + "minecraft:black_concrete_powder": { + "defaultstate": "minecraft:black_concrete_powder", + "properties": {} + }, + "minecraft:black_glazed_terracotta": { + "defaultstate": "minecraft:black_glazed_terracotta[facing=north]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:black_shulker_box": { + "defaultstate": "minecraft:black_shulker_box[facing=up]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ] + } + } + }, + "minecraft:black_stained_glass": { + "defaultstate": "minecraft:black_stained_glass", + "properties": {} + }, + "minecraft:black_stained_glass_pane": { + "defaultstate": "minecraft:black_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]", + "properties": { + "east": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "north": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "south": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:black_terracotta": { + "defaultstate": "minecraft:black_terracotta", + "properties": {} + }, + "minecraft:black_wall_banner": { + "defaultstate": "minecraft:black_wall_banner[facing=north]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:black_wool": { + "defaultstate": "minecraft:black_wool", + "properties": {} + }, + "minecraft:blackstone": { + "defaultstate": "minecraft:blackstone", + "properties": {} + }, + "minecraft:blackstone_slab": { + "defaultstate": "minecraft:blackstone_slab[type=bottom,waterlogged=false]", + "properties": { + "type": { + "type": "enum", + "values": [ + "top", + "bottom", + "double" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:blackstone_stairs": { + "defaultstate": "minecraft:blackstone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "shape": { + "type": "enum", + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:blackstone_wall": { + "defaultstate": "minecraft:blackstone_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]", + "properties": { + "east": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "north": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "south": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "up": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + } + } + }, + "minecraft:blast_furnace": { + "defaultstate": "minecraft:blast_furnace[facing=north,lit=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "lit": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:blue_banner": { + "defaultstate": "minecraft:blue_banner[rotation=0]", + "properties": { + "rotation": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ] + } + } + }, + "minecraft:blue_bed": { + "defaultstate": "minecraft:blue_bed[facing=north,occupied=false,part=foot]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "occupied": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "part": { + "type": "enum", + "values": [ + "head", + "foot" + ] + } + } + }, + "minecraft:blue_candle": { + "defaultstate": "minecraft:blue_candle[candles=1,lit=false,waterlogged=false]", + "properties": { + "candles": { + "type": "int", + "values": [ + "1", + "2", + "3", + "4" + ] + }, + "lit": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:blue_candle_cake": { + "defaultstate": "minecraft:blue_candle_cake[lit=false]", + "properties": { + "lit": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:blue_carpet": { + "defaultstate": "minecraft:blue_carpet", + "properties": {} + }, + "minecraft:blue_concrete": { + "defaultstate": "minecraft:blue_concrete", + "properties": {} + }, + "minecraft:blue_concrete_powder": { + "defaultstate": "minecraft:blue_concrete_powder", + "properties": {} + }, + "minecraft:blue_glazed_terracotta": { + "defaultstate": "minecraft:blue_glazed_terracotta[facing=north]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:blue_ice": { + "defaultstate": "minecraft:blue_ice", + "properties": {} + }, + "minecraft:blue_orchid": { + "defaultstate": "minecraft:blue_orchid", + "properties": {} + }, + "minecraft:blue_shulker_box": { + "defaultstate": "minecraft:blue_shulker_box[facing=up]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ] + } + } + }, + "minecraft:blue_stained_glass": { + "defaultstate": "minecraft:blue_stained_glass", + "properties": {} + }, + "minecraft:blue_stained_glass_pane": { + "defaultstate": "minecraft:blue_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]", + "properties": { + "east": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "north": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "south": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:blue_terracotta": { + "defaultstate": "minecraft:blue_terracotta", + "properties": {} + }, + "minecraft:blue_wall_banner": { + "defaultstate": "minecraft:blue_wall_banner[facing=north]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:blue_wool": { + "defaultstate": "minecraft:blue_wool", + "properties": {} + }, + "minecraft:bone_block": { + "defaultstate": "minecraft:bone_block[axis=y]", + "properties": { + "axis": { + "type": "enum", + "values": [ + "x", + "y", + "z" + ] + } + } + }, + "minecraft:bookshelf": { + "defaultstate": "minecraft:bookshelf", + "properties": {} + }, + "minecraft:brain_coral": { + "defaultstate": "minecraft:brain_coral[waterlogged=true]", + "properties": { + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:brain_coral_block": { + "defaultstate": "minecraft:brain_coral_block", + "properties": {} + }, + "minecraft:brain_coral_fan": { + "defaultstate": "minecraft:brain_coral_fan[waterlogged=true]", + "properties": { + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:brain_coral_wall_fan": { + "defaultstate": "minecraft:brain_coral_wall_fan[facing=north,waterlogged=true]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:brewing_stand": { + "defaultstate": "minecraft:brewing_stand[has_bottle_0=false,has_bottle_1=false,has_bottle_2=false]", + "properties": { + "has_bottle_0": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "has_bottle_1": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "has_bottle_2": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:brick_slab": { + "defaultstate": "minecraft:brick_slab[type=bottom,waterlogged=false]", + "properties": { + "type": { + "type": "enum", + "values": [ + "top", + "bottom", + "double" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:brick_stairs": { + "defaultstate": "minecraft:brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "shape": { + "type": "enum", + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:brick_wall": { + "defaultstate": "minecraft:brick_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]", + "properties": { + "east": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "north": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "south": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "up": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + } + } + }, + "minecraft:bricks": { + "defaultstate": "minecraft:bricks", + "properties": {} + }, + "minecraft:brown_banner": { + "defaultstate": "minecraft:brown_banner[rotation=0]", + "properties": { + "rotation": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ] + } + } + }, + "minecraft:brown_bed": { + "defaultstate": "minecraft:brown_bed[facing=north,occupied=false,part=foot]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "occupied": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "part": { + "type": "enum", + "values": [ + "head", + "foot" + ] + } + } + }, + "minecraft:brown_candle": { + "defaultstate": "minecraft:brown_candle[candles=1,lit=false,waterlogged=false]", + "properties": { + "candles": { + "type": "int", + "values": [ + "1", + "2", + "3", + "4" + ] + }, + "lit": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:brown_candle_cake": { + "defaultstate": "minecraft:brown_candle_cake[lit=false]", + "properties": { + "lit": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:brown_carpet": { + "defaultstate": "minecraft:brown_carpet", + "properties": {} + }, + "minecraft:brown_concrete": { + "defaultstate": "minecraft:brown_concrete", + "properties": {} + }, + "minecraft:brown_concrete_powder": { + "defaultstate": "minecraft:brown_concrete_powder", + "properties": {} + }, + "minecraft:brown_glazed_terracotta": { + "defaultstate": "minecraft:brown_glazed_terracotta[facing=north]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:brown_mushroom": { + "defaultstate": "minecraft:brown_mushroom", + "properties": {} + }, + "minecraft:brown_mushroom_block": { + "defaultstate": "minecraft:brown_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true]", + "properties": { + "down": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "east": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "north": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "south": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "up": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:brown_shulker_box": { + "defaultstate": "minecraft:brown_shulker_box[facing=up]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ] + } + } + }, + "minecraft:brown_stained_glass": { + "defaultstate": "minecraft:brown_stained_glass", + "properties": {} + }, + "minecraft:brown_stained_glass_pane": { + "defaultstate": "minecraft:brown_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]", + "properties": { + "east": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "north": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "south": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:brown_terracotta": { + "defaultstate": "minecraft:brown_terracotta", + "properties": {} + }, + "minecraft:brown_wall_banner": { + "defaultstate": "minecraft:brown_wall_banner[facing=north]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:brown_wool": { + "defaultstate": "minecraft:brown_wool", + "properties": {} + }, + "minecraft:bubble_column": { + "defaultstate": "minecraft:bubble_column[drag=true]", + "properties": { + "drag": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:bubble_coral": { + "defaultstate": "minecraft:bubble_coral[waterlogged=true]", + "properties": { + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:bubble_coral_block": { + "defaultstate": "minecraft:bubble_coral_block", + "properties": {} + }, + "minecraft:bubble_coral_fan": { + "defaultstate": "minecraft:bubble_coral_fan[waterlogged=true]", + "properties": { + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:bubble_coral_wall_fan": { + "defaultstate": "minecraft:bubble_coral_wall_fan[facing=north,waterlogged=true]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:budding_amethyst": { + "defaultstate": "minecraft:budding_amethyst", + "properties": {} + }, + "minecraft:cactus": { + "defaultstate": "minecraft:cactus[age=0]", + "properties": { + "age": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ] + } + } + }, + "minecraft:cake": { + "defaultstate": "minecraft:cake[bites=0]", + "properties": { + "bites": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6" + ] + } + } + }, + "minecraft:calcite": { + "defaultstate": "minecraft:calcite", + "properties": {} + }, + "minecraft:campfire": { + "defaultstate": "minecraft:campfire[facing=north,lit=true,signal_fire=false,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "lit": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "signal_fire": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:candle": { + "defaultstate": "minecraft:candle[candles=1,lit=false,waterlogged=false]", + "properties": { + "candles": { + "type": "int", + "values": [ + "1", + "2", + "3", + "4" + ] + }, + "lit": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:candle_cake": { + "defaultstate": "minecraft:candle_cake[lit=false]", + "properties": { + "lit": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:carrots": { + "defaultstate": "minecraft:carrots[age=0]", + "properties": { + "age": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ] + } + } + }, + "minecraft:cartography_table": { + "defaultstate": "minecraft:cartography_table", + "properties": {} + }, + "minecraft:carved_pumpkin": { + "defaultstate": "minecraft:carved_pumpkin[facing=north]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:cauldron": { + "defaultstate": "minecraft:cauldron", + "properties": {} + }, + "minecraft:cave_air": { + "defaultstate": "minecraft:cave_air", + "properties": {} + }, + "minecraft:cave_vines": { + "defaultstate": "minecraft:cave_vines[age=0,berries=false]", + "properties": { + "age": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15", + "16", + "17", + "18", + "19", + "20", + "21", + "22", + "23", + "24", + "25" + ] + }, + "berries": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:cave_vines_plant": { + "defaultstate": "minecraft:cave_vines_plant[berries=false]", + "properties": { + "berries": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:chain": { + "defaultstate": "minecraft:chain[axis=y,waterlogged=false]", + "properties": { + "axis": { + "type": "enum", + "values": [ + "x", + "y", + "z" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:chain_command_block": { + "defaultstate": "minecraft:chain_command_block[conditional=false,facing=north]", + "properties": { + "conditional": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "facing": { + "type": "direction", + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ] + } + } + }, + "minecraft:chest": { + "defaultstate": "minecraft:chest[facing=north,type=single,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "type": { + "type": "enum", + "values": [ + "single", + "left", + "right" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:chipped_anvil": { + "defaultstate": "minecraft:chipped_anvil[facing=north]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:chiseled_deepslate": { + "defaultstate": "minecraft:chiseled_deepslate", + "properties": {} + }, + "minecraft:chiseled_nether_bricks": { + "defaultstate": "minecraft:chiseled_nether_bricks", + "properties": {} + }, + "minecraft:chiseled_polished_blackstone": { + "defaultstate": "minecraft:chiseled_polished_blackstone", + "properties": {} + }, + "minecraft:chiseled_quartz_block": { + "defaultstate": "minecraft:chiseled_quartz_block", + "properties": {} + }, + "minecraft:chiseled_red_sandstone": { + "defaultstate": "minecraft:chiseled_red_sandstone", + "properties": {} + }, + "minecraft:chiseled_sandstone": { + "defaultstate": "minecraft:chiseled_sandstone", + "properties": {} + }, + "minecraft:chiseled_stone_bricks": { + "defaultstate": "minecraft:chiseled_stone_bricks", + "properties": {} + }, + "minecraft:chorus_flower": { + "defaultstate": "minecraft:chorus_flower[age=0]", + "properties": { + "age": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5" + ] + } + } + }, + "minecraft:chorus_plant": { + "defaultstate": "minecraft:chorus_plant[down=false,east=false,north=false,south=false,up=false,west=false]", + "properties": { + "down": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "east": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "north": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "south": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "up": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:clay": { + "defaultstate": "minecraft:clay", + "properties": {} + }, + "minecraft:coal_block": { + "defaultstate": "minecraft:coal_block", + "properties": {} + }, + "minecraft:coal_ore": { + "defaultstate": "minecraft:coal_ore", + "properties": {} + }, + "minecraft:coarse_dirt": { + "defaultstate": "minecraft:coarse_dirt", + "properties": {} + }, + "minecraft:cobbled_deepslate": { + "defaultstate": "minecraft:cobbled_deepslate", + "properties": {} + }, + "minecraft:cobbled_deepslate_slab": { + "defaultstate": "minecraft:cobbled_deepslate_slab[type=bottom,waterlogged=false]", + "properties": { + "type": { + "type": "enum", + "values": [ + "top", + "bottom", + "double" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:cobbled_deepslate_stairs": { + "defaultstate": "minecraft:cobbled_deepslate_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "shape": { + "type": "enum", + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:cobbled_deepslate_wall": { + "defaultstate": "minecraft:cobbled_deepslate_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]", + "properties": { + "east": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "north": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "south": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "up": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + } + } + }, + "minecraft:cobblestone": { + "defaultstate": "minecraft:cobblestone", + "properties": {} + }, + "minecraft:cobblestone_slab": { + "defaultstate": "minecraft:cobblestone_slab[type=bottom,waterlogged=false]", + "properties": { + "type": { + "type": "enum", + "values": [ + "top", + "bottom", + "double" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:cobblestone_stairs": { + "defaultstate": "minecraft:cobblestone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "shape": { + "type": "enum", + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:cobblestone_wall": { + "defaultstate": "minecraft:cobblestone_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]", + "properties": { + "east": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "north": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "south": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "up": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + } + } + }, + "minecraft:cobweb": { + "defaultstate": "minecraft:cobweb", + "properties": {} + }, + "minecraft:cocoa": { + "defaultstate": "minecraft:cocoa[age=0,facing=north]", + "properties": { + "age": { + "type": "int", + "values": [ + "0", + "1", + "2" + ] + }, + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:command_block": { + "defaultstate": "minecraft:command_block[conditional=false,facing=north]", + "properties": { + "conditional": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "facing": { + "type": "direction", + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ] + } + } + }, + "minecraft:comparator": { + "defaultstate": "minecraft:comparator[facing=north,mode=compare,powered=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "mode": { + "type": "enum", + "values": [ + "compare", + "subtract" + ] + }, + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:composter": { + "defaultstate": "minecraft:composter[level=0]", + "properties": { + "level": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8" + ] + } + } + }, + "minecraft:conduit": { + "defaultstate": "minecraft:conduit[waterlogged=true]", + "properties": { + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:copper_block": { + "defaultstate": "minecraft:copper_block", + "properties": {} + }, + "minecraft:copper_ore": { + "defaultstate": "minecraft:copper_ore", + "properties": {} + }, + "minecraft:cornflower": { + "defaultstate": "minecraft:cornflower", + "properties": {} + }, + "minecraft:cracked_deepslate_bricks": { + "defaultstate": "minecraft:cracked_deepslate_bricks", + "properties": {} + }, + "minecraft:cracked_deepslate_tiles": { + "defaultstate": "minecraft:cracked_deepslate_tiles", + "properties": {} + }, + "minecraft:cracked_nether_bricks": { + "defaultstate": "minecraft:cracked_nether_bricks", + "properties": {} + }, + "minecraft:cracked_polished_blackstone_bricks": { + "defaultstate": "minecraft:cracked_polished_blackstone_bricks", + "properties": {} + }, + "minecraft:cracked_stone_bricks": { + "defaultstate": "minecraft:cracked_stone_bricks", + "properties": {} + }, + "minecraft:crafting_table": { + "defaultstate": "minecraft:crafting_table", + "properties": {} + }, + "minecraft:creeper_head": { + "defaultstate": "minecraft:creeper_head[rotation=0]", + "properties": { + "rotation": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ] + } + } + }, + "minecraft:creeper_wall_head": { + "defaultstate": "minecraft:creeper_wall_head[facing=north]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:crimson_button": { + "defaultstate": "minecraft:crimson_button[face=wall,facing=north,powered=false]", + "properties": { + "face": { + "type": "enum", + "values": [ + "floor", + "wall", + "ceiling" + ] + }, + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:crimson_door": { + "defaultstate": "minecraft:crimson_door[facing=north,half=lower,hinge=left,open=false,powered=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "upper", + "lower" + ] + }, + "hinge": { + "type": "enum", + "values": [ + "left", + "right" + ] + }, + "open": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:crimson_fence": { + "defaultstate": "minecraft:crimson_fence[east=false,north=false,south=false,waterlogged=false,west=false]", + "properties": { + "east": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "north": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "south": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:crimson_fence_gate": { + "defaultstate": "minecraft:crimson_fence_gate[facing=north,in_wall=false,open=false,powered=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "in_wall": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "open": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:crimson_fungus": { + "defaultstate": "minecraft:crimson_fungus", + "properties": {} + }, + "minecraft:crimson_hyphae": { + "defaultstate": "minecraft:crimson_hyphae[axis=y]", + "properties": { + "axis": { + "type": "enum", + "values": [ + "x", + "y", + "z" + ] + } + } + }, + "minecraft:crimson_nylium": { + "defaultstate": "minecraft:crimson_nylium", + "properties": {} + }, + "minecraft:crimson_planks": { + "defaultstate": "minecraft:crimson_planks", + "properties": {} + }, + "minecraft:crimson_pressure_plate": { + "defaultstate": "minecraft:crimson_pressure_plate[powered=false]", + "properties": { + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:crimson_roots": { + "defaultstate": "minecraft:crimson_roots", + "properties": {} + }, + "minecraft:crimson_sign": { + "defaultstate": "minecraft:crimson_sign[rotation=0,waterlogged=false]", + "properties": { + "rotation": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:crimson_slab": { + "defaultstate": "minecraft:crimson_slab[type=bottom,waterlogged=false]", + "properties": { + "type": { + "type": "enum", + "values": [ + "top", + "bottom", + "double" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:crimson_stairs": { + "defaultstate": "minecraft:crimson_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "shape": { + "type": "enum", + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:crimson_stem": { + "defaultstate": "minecraft:crimson_stem[axis=y]", + "properties": { + "axis": { + "type": "enum", + "values": [ + "x", + "y", + "z" + ] + } + } + }, + "minecraft:crimson_trapdoor": { + "defaultstate": "minecraft:crimson_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "open": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:crimson_wall_sign": { + "defaultstate": "minecraft:crimson_wall_sign[facing=north,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:crying_obsidian": { + "defaultstate": "minecraft:crying_obsidian", + "properties": {} + }, + "minecraft:cut_copper": { + "defaultstate": "minecraft:cut_copper", + "properties": {} + }, + "minecraft:cut_copper_slab": { + "defaultstate": "minecraft:cut_copper_slab[type=bottom,waterlogged=false]", + "properties": { + "type": { + "type": "enum", + "values": [ + "top", + "bottom", + "double" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:cut_copper_stairs": { + "defaultstate": "minecraft:cut_copper_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "shape": { + "type": "enum", + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:cut_red_sandstone": { + "defaultstate": "minecraft:cut_red_sandstone", + "properties": {} + }, + "minecraft:cut_red_sandstone_slab": { + "defaultstate": "minecraft:cut_red_sandstone_slab[type=bottom,waterlogged=false]", + "properties": { + "type": { + "type": "enum", + "values": [ + "top", + "bottom", + "double" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:cut_sandstone": { + "defaultstate": "minecraft:cut_sandstone", + "properties": {} + }, + "minecraft:cut_sandstone_slab": { + "defaultstate": "minecraft:cut_sandstone_slab[type=bottom,waterlogged=false]", + "properties": { + "type": { + "type": "enum", + "values": [ + "top", + "bottom", + "double" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:cyan_banner": { + "defaultstate": "minecraft:cyan_banner[rotation=0]", + "properties": { + "rotation": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ] + } + } + }, + "minecraft:cyan_bed": { + "defaultstate": "minecraft:cyan_bed[facing=north,occupied=false,part=foot]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "occupied": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "part": { + "type": "enum", + "values": [ + "head", + "foot" + ] + } + } + }, + "minecraft:cyan_candle": { + "defaultstate": "minecraft:cyan_candle[candles=1,lit=false,waterlogged=false]", + "properties": { + "candles": { + "type": "int", + "values": [ + "1", + "2", + "3", + "4" + ] + }, + "lit": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:cyan_candle_cake": { + "defaultstate": "minecraft:cyan_candle_cake[lit=false]", + "properties": { + "lit": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:cyan_carpet": { + "defaultstate": "minecraft:cyan_carpet", + "properties": {} + }, + "minecraft:cyan_concrete": { + "defaultstate": "minecraft:cyan_concrete", + "properties": {} + }, + "minecraft:cyan_concrete_powder": { + "defaultstate": "minecraft:cyan_concrete_powder", + "properties": {} + }, + "minecraft:cyan_glazed_terracotta": { + "defaultstate": "minecraft:cyan_glazed_terracotta[facing=north]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:cyan_shulker_box": { + "defaultstate": "minecraft:cyan_shulker_box[facing=up]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ] + } + } + }, + "minecraft:cyan_stained_glass": { + "defaultstate": "minecraft:cyan_stained_glass", + "properties": {} + }, + "minecraft:cyan_stained_glass_pane": { + "defaultstate": "minecraft:cyan_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]", + "properties": { + "east": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "north": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "south": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:cyan_terracotta": { + "defaultstate": "minecraft:cyan_terracotta", + "properties": {} + }, + "minecraft:cyan_wall_banner": { + "defaultstate": "minecraft:cyan_wall_banner[facing=north]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:cyan_wool": { + "defaultstate": "minecraft:cyan_wool", + "properties": {} + }, + "minecraft:damaged_anvil": { + "defaultstate": "minecraft:damaged_anvil[facing=north]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:dandelion": { + "defaultstate": "minecraft:dandelion", + "properties": {} + }, + "minecraft:dark_oak_button": { + "defaultstate": "minecraft:dark_oak_button[face=wall,facing=north,powered=false]", + "properties": { + "face": { + "type": "enum", + "values": [ + "floor", + "wall", + "ceiling" + ] + }, + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:dark_oak_door": { + "defaultstate": "minecraft:dark_oak_door[facing=north,half=lower,hinge=left,open=false,powered=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "upper", + "lower" + ] + }, + "hinge": { + "type": "enum", + "values": [ + "left", + "right" + ] + }, + "open": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:dark_oak_fence": { + "defaultstate": "minecraft:dark_oak_fence[east=false,north=false,south=false,waterlogged=false,west=false]", + "properties": { + "east": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "north": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "south": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:dark_oak_fence_gate": { + "defaultstate": "minecraft:dark_oak_fence_gate[facing=north,in_wall=false,open=false,powered=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "in_wall": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "open": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:dark_oak_leaves": { + "defaultstate": "minecraft:dark_oak_leaves[distance=7,persistent=false]", + "properties": { + "distance": { + "type": "int", + "values": [ + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ] + }, + "persistent": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:dark_oak_log": { + "defaultstate": "minecraft:dark_oak_log[axis=y]", + "properties": { + "axis": { + "type": "enum", + "values": [ + "x", + "y", + "z" + ] + } + } + }, + "minecraft:dark_oak_planks": { + "defaultstate": "minecraft:dark_oak_planks", + "properties": {} + }, + "minecraft:dark_oak_pressure_plate": { + "defaultstate": "minecraft:dark_oak_pressure_plate[powered=false]", + "properties": { + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:dark_oak_sapling": { + "defaultstate": "minecraft:dark_oak_sapling[stage=0]", + "properties": { + "stage": { + "type": "int", + "values": [ + "0", + "1" + ] + } + } + }, + "minecraft:dark_oak_sign": { + "defaultstate": "minecraft:dark_oak_sign[rotation=0,waterlogged=false]", + "properties": { + "rotation": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:dark_oak_slab": { + "defaultstate": "minecraft:dark_oak_slab[type=bottom,waterlogged=false]", + "properties": { + "type": { + "type": "enum", + "values": [ + "top", + "bottom", + "double" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:dark_oak_stairs": { + "defaultstate": "minecraft:dark_oak_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "shape": { + "type": "enum", + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:dark_oak_trapdoor": { + "defaultstate": "minecraft:dark_oak_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "open": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:dark_oak_wall_sign": { + "defaultstate": "minecraft:dark_oak_wall_sign[facing=north,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:dark_oak_wood": { + "defaultstate": "minecraft:dark_oak_wood[axis=y]", + "properties": { + "axis": { + "type": "enum", + "values": [ + "x", + "y", + "z" + ] + } + } + }, + "minecraft:dark_prismarine": { + "defaultstate": "minecraft:dark_prismarine", + "properties": {} + }, + "minecraft:dark_prismarine_slab": { + "defaultstate": "minecraft:dark_prismarine_slab[type=bottom,waterlogged=false]", + "properties": { + "type": { + "type": "enum", + "values": [ + "top", + "bottom", + "double" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:dark_prismarine_stairs": { + "defaultstate": "minecraft:dark_prismarine_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "shape": { + "type": "enum", + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:daylight_detector": { + "defaultstate": "minecraft:daylight_detector[inverted=false,power=0]", + "properties": { + "inverted": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "power": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ] + } + } + }, + "minecraft:dead_brain_coral": { + "defaultstate": "minecraft:dead_brain_coral[waterlogged=true]", + "properties": { + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:dead_brain_coral_block": { + "defaultstate": "minecraft:dead_brain_coral_block", + "properties": {} + }, + "minecraft:dead_brain_coral_fan": { + "defaultstate": "minecraft:dead_brain_coral_fan[waterlogged=true]", + "properties": { + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:dead_brain_coral_wall_fan": { + "defaultstate": "minecraft:dead_brain_coral_wall_fan[facing=north,waterlogged=true]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:dead_bubble_coral": { + "defaultstate": "minecraft:dead_bubble_coral[waterlogged=true]", + "properties": { + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:dead_bubble_coral_block": { + "defaultstate": "minecraft:dead_bubble_coral_block", + "properties": {} + }, + "minecraft:dead_bubble_coral_fan": { + "defaultstate": "minecraft:dead_bubble_coral_fan[waterlogged=true]", + "properties": { + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:dead_bubble_coral_wall_fan": { + "defaultstate": "minecraft:dead_bubble_coral_wall_fan[facing=north,waterlogged=true]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:dead_bush": { + "defaultstate": "minecraft:dead_bush", + "properties": {} + }, + "minecraft:dead_fire_coral": { + "defaultstate": "minecraft:dead_fire_coral[waterlogged=true]", + "properties": { + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:dead_fire_coral_block": { + "defaultstate": "minecraft:dead_fire_coral_block", + "properties": {} + }, + "minecraft:dead_fire_coral_fan": { + "defaultstate": "minecraft:dead_fire_coral_fan[waterlogged=true]", + "properties": { + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:dead_fire_coral_wall_fan": { + "defaultstate": "minecraft:dead_fire_coral_wall_fan[facing=north,waterlogged=true]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:dead_horn_coral": { + "defaultstate": "minecraft:dead_horn_coral[waterlogged=true]", + "properties": { + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:dead_horn_coral_block": { + "defaultstate": "minecraft:dead_horn_coral_block", + "properties": {} + }, + "minecraft:dead_horn_coral_fan": { + "defaultstate": "minecraft:dead_horn_coral_fan[waterlogged=true]", + "properties": { + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:dead_horn_coral_wall_fan": { + "defaultstate": "minecraft:dead_horn_coral_wall_fan[facing=north,waterlogged=true]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:dead_tube_coral": { + "defaultstate": "minecraft:dead_tube_coral[waterlogged=true]", + "properties": { + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:dead_tube_coral_block": { + "defaultstate": "minecraft:dead_tube_coral_block", + "properties": {} + }, + "minecraft:dead_tube_coral_fan": { + "defaultstate": "minecraft:dead_tube_coral_fan[waterlogged=true]", + "properties": { + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:dead_tube_coral_wall_fan": { + "defaultstate": "minecraft:dead_tube_coral_wall_fan[facing=north,waterlogged=true]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:deepslate": { + "defaultstate": "minecraft:deepslate[axis=y]", + "properties": { + "axis": { + "type": "enum", + "values": [ + "x", + "y", + "z" + ] + } + } + }, + "minecraft:deepslate_brick_slab": { + "defaultstate": "minecraft:deepslate_brick_slab[type=bottom,waterlogged=false]", + "properties": { + "type": { + "type": "enum", + "values": [ + "top", + "bottom", + "double" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:deepslate_brick_stairs": { + "defaultstate": "minecraft:deepslate_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "shape": { + "type": "enum", + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:deepslate_brick_wall": { + "defaultstate": "minecraft:deepslate_brick_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]", + "properties": { + "east": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "north": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "south": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "up": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + } + } + }, + "minecraft:deepslate_bricks": { + "defaultstate": "minecraft:deepslate_bricks", + "properties": {} + }, + "minecraft:deepslate_coal_ore": { + "defaultstate": "minecraft:deepslate_coal_ore", + "properties": {} + }, + "minecraft:deepslate_copper_ore": { + "defaultstate": "minecraft:deepslate_copper_ore", + "properties": {} + }, + "minecraft:deepslate_diamond_ore": { + "defaultstate": "minecraft:deepslate_diamond_ore", + "properties": {} + }, + "minecraft:deepslate_emerald_ore": { + "defaultstate": "minecraft:deepslate_emerald_ore", + "properties": {} + }, + "minecraft:deepslate_gold_ore": { + "defaultstate": "minecraft:deepslate_gold_ore", + "properties": {} + }, + "minecraft:deepslate_iron_ore": { + "defaultstate": "minecraft:deepslate_iron_ore", + "properties": {} + }, + "minecraft:deepslate_lapis_ore": { + "defaultstate": "minecraft:deepslate_lapis_ore", + "properties": {} + }, + "minecraft:deepslate_redstone_ore": { + "defaultstate": "minecraft:deepslate_redstone_ore[lit=false]", + "properties": { + "lit": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:deepslate_tile_slab": { + "defaultstate": "minecraft:deepslate_tile_slab[type=bottom,waterlogged=false]", + "properties": { + "type": { + "type": "enum", + "values": [ + "top", + "bottom", + "double" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:deepslate_tile_stairs": { + "defaultstate": "minecraft:deepslate_tile_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "shape": { + "type": "enum", + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:deepslate_tile_wall": { + "defaultstate": "minecraft:deepslate_tile_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]", + "properties": { + "east": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "north": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "south": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "up": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + } + } + }, + "minecraft:deepslate_tiles": { + "defaultstate": "minecraft:deepslate_tiles", + "properties": {} + }, + "minecraft:detector_rail": { + "defaultstate": "minecraft:detector_rail[powered=false,shape=north_south,waterlogged=false]", + "properties": { + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "shape": { + "type": "enum", + "values": [ + "north_south", + "east_west", + "ascending_east", + "ascending_west", + "ascending_north", + "ascending_south" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:diamond_block": { + "defaultstate": "minecraft:diamond_block", + "properties": {} + }, + "minecraft:diamond_ore": { + "defaultstate": "minecraft:diamond_ore", + "properties": {} + }, + "minecraft:diorite": { + "defaultstate": "minecraft:diorite", + "properties": {} + }, + "minecraft:diorite_slab": { + "defaultstate": "minecraft:diorite_slab[type=bottom,waterlogged=false]", + "properties": { + "type": { + "type": "enum", + "values": [ + "top", + "bottom", + "double" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:diorite_stairs": { + "defaultstate": "minecraft:diorite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "shape": { + "type": "enum", + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:diorite_wall": { + "defaultstate": "minecraft:diorite_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]", + "properties": { + "east": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "north": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "south": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "up": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + } + } + }, + "minecraft:dirt": { + "defaultstate": "minecraft:dirt", + "properties": {} + }, + "minecraft:dirt_path": { + "defaultstate": "minecraft:dirt_path", + "properties": {} + }, + "minecraft:dispenser": { + "defaultstate": "minecraft:dispenser[facing=north,triggered=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ] + }, + "triggered": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:dragon_egg": { + "defaultstate": "minecraft:dragon_egg", + "properties": {} + }, + "minecraft:dragon_head": { + "defaultstate": "minecraft:dragon_head[rotation=0]", + "properties": { + "rotation": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ] + } + } + }, + "minecraft:dragon_wall_head": { + "defaultstate": "minecraft:dragon_wall_head[facing=north]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:dried_kelp_block": { + "defaultstate": "minecraft:dried_kelp_block", + "properties": {} + }, + "minecraft:dripstone_block": { + "defaultstate": "minecraft:dripstone_block", + "properties": {} + }, + "minecraft:dropper": { + "defaultstate": "minecraft:dropper[facing=north,triggered=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ] + }, + "triggered": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:emerald_block": { + "defaultstate": "minecraft:emerald_block", + "properties": {} + }, + "minecraft:emerald_ore": { + "defaultstate": "minecraft:emerald_ore", + "properties": {} + }, + "minecraft:enchanting_table": { + "defaultstate": "minecraft:enchanting_table", + "properties": {} + }, + "minecraft:end_gateway": { + "defaultstate": "minecraft:end_gateway", + "properties": {} + }, + "minecraft:end_portal": { + "defaultstate": "minecraft:end_portal", + "properties": {} + }, + "minecraft:end_portal_frame": { + "defaultstate": "minecraft:end_portal_frame[eye=false,facing=north]", + "properties": { + "eye": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:end_rod": { + "defaultstate": "minecraft:end_rod[facing=up]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ] + } + } + }, + "minecraft:end_stone": { + "defaultstate": "minecraft:end_stone", + "properties": {} + }, + "minecraft:end_stone_brick_slab": { + "defaultstate": "minecraft:end_stone_brick_slab[type=bottom,waterlogged=false]", + "properties": { + "type": { + "type": "enum", + "values": [ + "top", + "bottom", + "double" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:end_stone_brick_stairs": { + "defaultstate": "minecraft:end_stone_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "shape": { + "type": "enum", + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:end_stone_brick_wall": { + "defaultstate": "minecraft:end_stone_brick_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]", + "properties": { + "east": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "north": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "south": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "up": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + } + } + }, + "minecraft:end_stone_bricks": { + "defaultstate": "minecraft:end_stone_bricks", + "properties": {} + }, + "minecraft:ender_chest": { + "defaultstate": "minecraft:ender_chest[facing=north,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:exposed_copper": { + "defaultstate": "minecraft:exposed_copper", + "properties": {} + }, + "minecraft:exposed_cut_copper": { + "defaultstate": "minecraft:exposed_cut_copper", + "properties": {} + }, + "minecraft:exposed_cut_copper_slab": { + "defaultstate": "minecraft:exposed_cut_copper_slab[type=bottom,waterlogged=false]", + "properties": { + "type": { + "type": "enum", + "values": [ + "top", + "bottom", + "double" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:exposed_cut_copper_stairs": { + "defaultstate": "minecraft:exposed_cut_copper_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "shape": { + "type": "enum", + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:farmland": { + "defaultstate": "minecraft:farmland[moisture=0]", + "properties": { + "moisture": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ] + } + } + }, + "minecraft:fern": { + "defaultstate": "minecraft:fern", + "properties": {} + }, + "minecraft:fire": { + "defaultstate": "minecraft:fire[age=0,east=false,north=false,south=false,up=false,west=false]", + "properties": { + "age": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ] + }, + "east": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "north": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "south": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "up": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:fire_coral": { + "defaultstate": "minecraft:fire_coral[waterlogged=true]", + "properties": { + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:fire_coral_block": { + "defaultstate": "minecraft:fire_coral_block", + "properties": {} + }, + "minecraft:fire_coral_fan": { + "defaultstate": "minecraft:fire_coral_fan[waterlogged=true]", + "properties": { + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:fire_coral_wall_fan": { + "defaultstate": "minecraft:fire_coral_wall_fan[facing=north,waterlogged=true]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:fletching_table": { + "defaultstate": "minecraft:fletching_table", + "properties": {} + }, + "minecraft:flower_pot": { + "defaultstate": "minecraft:flower_pot", + "properties": {} + }, + "minecraft:flowering_azalea": { + "defaultstate": "minecraft:flowering_azalea", + "properties": {} + }, + "minecraft:flowering_azalea_leaves": { + "defaultstate": "minecraft:flowering_azalea_leaves[distance=7,persistent=false]", + "properties": { + "distance": { + "type": "int", + "values": [ + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ] + }, + "persistent": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:frosted_ice": { + "defaultstate": "minecraft:frosted_ice[age=0]", + "properties": { + "age": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3" + ] + } + } + }, + "minecraft:furnace": { + "defaultstate": "minecraft:furnace[facing=north,lit=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "lit": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:gilded_blackstone": { + "defaultstate": "minecraft:gilded_blackstone", + "properties": {} + }, + "minecraft:glass": { + "defaultstate": "minecraft:glass", + "properties": {} + }, + "minecraft:glass_pane": { + "defaultstate": "minecraft:glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]", + "properties": { + "east": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "north": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "south": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:glow_lichen": { + "defaultstate": "minecraft:glow_lichen[down=false,east=false,north=false,south=false,up=false,waterlogged=false,west=false]", + "properties": { + "down": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "east": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "north": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "south": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "up": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:glowstone": { + "defaultstate": "minecraft:glowstone", + "properties": {} + }, + "minecraft:gold_block": { + "defaultstate": "minecraft:gold_block", + "properties": {} + }, + "minecraft:gold_ore": { + "defaultstate": "minecraft:gold_ore", + "properties": {} + }, + "minecraft:granite": { + "defaultstate": "minecraft:granite", + "properties": {} + }, + "minecraft:granite_slab": { + "defaultstate": "minecraft:granite_slab[type=bottom,waterlogged=false]", + "properties": { + "type": { + "type": "enum", + "values": [ + "top", + "bottom", + "double" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:granite_stairs": { + "defaultstate": "minecraft:granite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "shape": { + "type": "enum", + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:granite_wall": { + "defaultstate": "minecraft:granite_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]", + "properties": { + "east": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "north": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "south": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "up": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + } + } + }, + "minecraft:grass": { + "defaultstate": "minecraft:grass", + "properties": {} + }, + "minecraft:grass_block": { + "defaultstate": "minecraft:grass_block[snowy=false]", + "properties": { + "snowy": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:gravel": { + "defaultstate": "minecraft:gravel", + "properties": {} + }, + "minecraft:gray_banner": { + "defaultstate": "minecraft:gray_banner[rotation=0]", + "properties": { + "rotation": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ] + } + } + }, + "minecraft:gray_bed": { + "defaultstate": "minecraft:gray_bed[facing=north,occupied=false,part=foot]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "occupied": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "part": { + "type": "enum", + "values": [ + "head", + "foot" + ] + } + } + }, + "minecraft:gray_candle": { + "defaultstate": "minecraft:gray_candle[candles=1,lit=false,waterlogged=false]", + "properties": { + "candles": { + "type": "int", + "values": [ + "1", + "2", + "3", + "4" + ] + }, + "lit": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:gray_candle_cake": { + "defaultstate": "minecraft:gray_candle_cake[lit=false]", + "properties": { + "lit": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:gray_carpet": { + "defaultstate": "minecraft:gray_carpet", + "properties": {} + }, + "minecraft:gray_concrete": { + "defaultstate": "minecraft:gray_concrete", + "properties": {} + }, + "minecraft:gray_concrete_powder": { + "defaultstate": "minecraft:gray_concrete_powder", + "properties": {} + }, + "minecraft:gray_glazed_terracotta": { + "defaultstate": "minecraft:gray_glazed_terracotta[facing=north]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:gray_shulker_box": { + "defaultstate": "minecraft:gray_shulker_box[facing=up]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ] + } + } + }, + "minecraft:gray_stained_glass": { + "defaultstate": "minecraft:gray_stained_glass", + "properties": {} + }, + "minecraft:gray_stained_glass_pane": { + "defaultstate": "minecraft:gray_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]", + "properties": { + "east": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "north": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "south": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:gray_terracotta": { + "defaultstate": "minecraft:gray_terracotta", + "properties": {} + }, + "minecraft:gray_wall_banner": { + "defaultstate": "minecraft:gray_wall_banner[facing=north]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:gray_wool": { + "defaultstate": "minecraft:gray_wool", + "properties": {} + }, + "minecraft:green_banner": { + "defaultstate": "minecraft:green_banner[rotation=0]", + "properties": { + "rotation": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ] + } + } + }, + "minecraft:green_bed": { + "defaultstate": "minecraft:green_bed[facing=north,occupied=false,part=foot]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "occupied": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "part": { + "type": "enum", + "values": [ + "head", + "foot" + ] + } + } + }, + "minecraft:green_candle": { + "defaultstate": "minecraft:green_candle[candles=1,lit=false,waterlogged=false]", + "properties": { + "candles": { + "type": "int", + "values": [ + "1", + "2", + "3", + "4" + ] + }, + "lit": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:green_candle_cake": { + "defaultstate": "minecraft:green_candle_cake[lit=false]", + "properties": { + "lit": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:green_carpet": { + "defaultstate": "minecraft:green_carpet", + "properties": {} + }, + "minecraft:green_concrete": { + "defaultstate": "minecraft:green_concrete", + "properties": {} + }, + "minecraft:green_concrete_powder": { + "defaultstate": "minecraft:green_concrete_powder", + "properties": {} + }, + "minecraft:green_glazed_terracotta": { + "defaultstate": "minecraft:green_glazed_terracotta[facing=north]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:green_shulker_box": { + "defaultstate": "minecraft:green_shulker_box[facing=up]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ] + } + } + }, + "minecraft:green_stained_glass": { + "defaultstate": "minecraft:green_stained_glass", + "properties": {} + }, + "minecraft:green_stained_glass_pane": { + "defaultstate": "minecraft:green_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]", + "properties": { + "east": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "north": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "south": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:green_terracotta": { + "defaultstate": "minecraft:green_terracotta", + "properties": {} + }, + "minecraft:green_wall_banner": { + "defaultstate": "minecraft:green_wall_banner[facing=north]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:green_wool": { + "defaultstate": "minecraft:green_wool", + "properties": {} + }, + "minecraft:grindstone": { + "defaultstate": "minecraft:grindstone[face=wall,facing=north]", + "properties": { + "face": { + "type": "enum", + "values": [ + "floor", + "wall", + "ceiling" + ] + }, + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:hanging_roots": { + "defaultstate": "minecraft:hanging_roots[waterlogged=false]", + "properties": { + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:hay_block": { + "defaultstate": "minecraft:hay_block[axis=y]", + "properties": { + "axis": { + "type": "enum", + "values": [ + "x", + "y", + "z" + ] + } + } + }, + "minecraft:heavy_weighted_pressure_plate": { + "defaultstate": "minecraft:heavy_weighted_pressure_plate[power=0]", + "properties": { + "power": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ] + } + } + }, + "minecraft:honey_block": { + "defaultstate": "minecraft:honey_block", + "properties": {} + }, + "minecraft:honeycomb_block": { + "defaultstate": "minecraft:honeycomb_block", + "properties": {} + }, + "minecraft:hopper": { + "defaultstate": "minecraft:hopper[enabled=true,facing=down]", + "properties": { + "enabled": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "facing": { + "type": "direction", + "values": [ + "down", + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:horn_coral": { + "defaultstate": "minecraft:horn_coral[waterlogged=true]", + "properties": { + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:horn_coral_block": { + "defaultstate": "minecraft:horn_coral_block", + "properties": {} + }, + "minecraft:horn_coral_fan": { + "defaultstate": "minecraft:horn_coral_fan[waterlogged=true]", + "properties": { + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:horn_coral_wall_fan": { + "defaultstate": "minecraft:horn_coral_wall_fan[facing=north,waterlogged=true]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:ice": { + "defaultstate": "minecraft:ice", + "properties": {} + }, + "minecraft:infested_chiseled_stone_bricks": { + "defaultstate": "minecraft:infested_chiseled_stone_bricks", + "properties": {} + }, + "minecraft:infested_cobblestone": { + "defaultstate": "minecraft:infested_cobblestone", + "properties": {} + }, + "minecraft:infested_cracked_stone_bricks": { + "defaultstate": "minecraft:infested_cracked_stone_bricks", + "properties": {} + }, + "minecraft:infested_deepslate": { + "defaultstate": "minecraft:infested_deepslate[axis=y]", + "properties": { + "axis": { + "type": "enum", + "values": [ + "x", + "y", + "z" + ] + } + } + }, + "minecraft:infested_mossy_stone_bricks": { + "defaultstate": "minecraft:infested_mossy_stone_bricks", + "properties": {} + }, + "minecraft:infested_stone": { + "defaultstate": "minecraft:infested_stone", + "properties": {} + }, + "minecraft:infested_stone_bricks": { + "defaultstate": "minecraft:infested_stone_bricks", + "properties": {} + }, + "minecraft:iron_bars": { + "defaultstate": "minecraft:iron_bars[east=false,north=false,south=false,waterlogged=false,west=false]", + "properties": { + "east": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "north": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "south": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:iron_block": { + "defaultstate": "minecraft:iron_block", + "properties": {} + }, + "minecraft:iron_door": { + "defaultstate": "minecraft:iron_door[facing=north,half=lower,hinge=left,open=false,powered=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "upper", + "lower" + ] + }, + "hinge": { + "type": "enum", + "values": [ + "left", + "right" + ] + }, + "open": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:iron_ore": { + "defaultstate": "minecraft:iron_ore", + "properties": {} + }, + "minecraft:iron_trapdoor": { + "defaultstate": "minecraft:iron_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "open": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:jack_o_lantern": { + "defaultstate": "minecraft:jack_o_lantern[facing=north]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:jigsaw": { + "defaultstate": "minecraft:jigsaw[orientation=north_up]", + "properties": { + "orientation": { + "type": "enum", + "values": [ + "down_east", + "down_north", + "down_south", + "down_west", + "up_east", + "up_north", + "up_south", + "up_west", + "west_up", + "east_up", + "north_up", + "south_up" + ] + } + } + }, + "minecraft:jukebox": { + "defaultstate": "minecraft:jukebox[has_record=false]", + "properties": { + "has_record": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:jungle_button": { + "defaultstate": "minecraft:jungle_button[face=wall,facing=north,powered=false]", + "properties": { + "face": { + "type": "enum", + "values": [ + "floor", + "wall", + "ceiling" + ] + }, + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:jungle_door": { + "defaultstate": "minecraft:jungle_door[facing=north,half=lower,hinge=left,open=false,powered=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "upper", + "lower" + ] + }, + "hinge": { + "type": "enum", + "values": [ + "left", + "right" + ] + }, + "open": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:jungle_fence": { + "defaultstate": "minecraft:jungle_fence[east=false,north=false,south=false,waterlogged=false,west=false]", + "properties": { + "east": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "north": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "south": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:jungle_fence_gate": { + "defaultstate": "minecraft:jungle_fence_gate[facing=north,in_wall=false,open=false,powered=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "in_wall": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "open": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:jungle_leaves": { + "defaultstate": "minecraft:jungle_leaves[distance=7,persistent=false]", + "properties": { + "distance": { + "type": "int", + "values": [ + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ] + }, + "persistent": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:jungle_log": { + "defaultstate": "minecraft:jungle_log[axis=y]", + "properties": { + "axis": { + "type": "enum", + "values": [ + "x", + "y", + "z" + ] + } + } + }, + "minecraft:jungle_planks": { + "defaultstate": "minecraft:jungle_planks", + "properties": {} + }, + "minecraft:jungle_pressure_plate": { + "defaultstate": "minecraft:jungle_pressure_plate[powered=false]", + "properties": { + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:jungle_sapling": { + "defaultstate": "minecraft:jungle_sapling[stage=0]", + "properties": { + "stage": { + "type": "int", + "values": [ + "0", + "1" + ] + } + } + }, + "minecraft:jungle_sign": { + "defaultstate": "minecraft:jungle_sign[rotation=0,waterlogged=false]", + "properties": { + "rotation": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:jungle_slab": { + "defaultstate": "minecraft:jungle_slab[type=bottom,waterlogged=false]", + "properties": { + "type": { + "type": "enum", + "values": [ + "top", + "bottom", + "double" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:jungle_stairs": { + "defaultstate": "minecraft:jungle_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "shape": { + "type": "enum", + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:jungle_trapdoor": { + "defaultstate": "minecraft:jungle_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "open": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:jungle_wall_sign": { + "defaultstate": "minecraft:jungle_wall_sign[facing=north,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:jungle_wood": { + "defaultstate": "minecraft:jungle_wood[axis=y]", + "properties": { + "axis": { + "type": "enum", + "values": [ + "x", + "y", + "z" + ] + } + } + }, + "minecraft:kelp": { + "defaultstate": "minecraft:kelp[age=0]", + "properties": { + "age": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15", + "16", + "17", + "18", + "19", + "20", + "21", + "22", + "23", + "24", + "25" + ] + } + } + }, + "minecraft:kelp_plant": { + "defaultstate": "minecraft:kelp_plant", + "properties": {} + }, + "minecraft:ladder": { + "defaultstate": "minecraft:ladder[facing=north,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:lantern": { + "defaultstate": "minecraft:lantern[hanging=false,waterlogged=false]", + "properties": { + "hanging": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:lapis_block": { + "defaultstate": "minecraft:lapis_block", + "properties": {} + }, + "minecraft:lapis_ore": { + "defaultstate": "minecraft:lapis_ore", + "properties": {} + }, + "minecraft:large_amethyst_bud": { + "defaultstate": "minecraft:large_amethyst_bud[facing=up,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:large_fern": { + "defaultstate": "minecraft:large_fern[half=lower]", + "properties": { + "half": { + "type": "enum", + "values": [ + "upper", + "lower" + ] + } + } + }, + "minecraft:lava": { + "defaultstate": "minecraft:lava[level=0]", + "properties": { + "level": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ] + } + } + }, + "minecraft:lava_cauldron": { + "defaultstate": "minecraft:lava_cauldron", + "properties": {} + }, + "minecraft:lectern": { + "defaultstate": "minecraft:lectern[facing=north,has_book=false,powered=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "has_book": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:lever": { + "defaultstate": "minecraft:lever[face=wall,facing=north,powered=false]", + "properties": { + "face": { + "type": "enum", + "values": [ + "floor", + "wall", + "ceiling" + ] + }, + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:light": { + "defaultstate": "minecraft:light[level=15,waterlogged=false]", + "properties": { + "level": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:light_blue_banner": { + "defaultstate": "minecraft:light_blue_banner[rotation=0]", + "properties": { + "rotation": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ] + } + } + }, + "minecraft:light_blue_bed": { + "defaultstate": "minecraft:light_blue_bed[facing=north,occupied=false,part=foot]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "occupied": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "part": { + "type": "enum", + "values": [ + "head", + "foot" + ] + } + } + }, + "minecraft:light_blue_candle": { + "defaultstate": "minecraft:light_blue_candle[candles=1,lit=false,waterlogged=false]", + "properties": { + "candles": { + "type": "int", + "values": [ + "1", + "2", + "3", + "4" + ] + }, + "lit": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:light_blue_candle_cake": { + "defaultstate": "minecraft:light_blue_candle_cake[lit=false]", + "properties": { + "lit": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:light_blue_carpet": { + "defaultstate": "minecraft:light_blue_carpet", + "properties": {} + }, + "minecraft:light_blue_concrete": { + "defaultstate": "minecraft:light_blue_concrete", + "properties": {} + }, + "minecraft:light_blue_concrete_powder": { + "defaultstate": "minecraft:light_blue_concrete_powder", + "properties": {} + }, + "minecraft:light_blue_glazed_terracotta": { + "defaultstate": "minecraft:light_blue_glazed_terracotta[facing=north]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:light_blue_shulker_box": { + "defaultstate": "minecraft:light_blue_shulker_box[facing=up]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ] + } + } + }, + "minecraft:light_blue_stained_glass": { + "defaultstate": "minecraft:light_blue_stained_glass", + "properties": {} + }, + "minecraft:light_blue_stained_glass_pane": { + "defaultstate": "minecraft:light_blue_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]", + "properties": { + "east": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "north": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "south": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:light_blue_terracotta": { + "defaultstate": "minecraft:light_blue_terracotta", + "properties": {} + }, + "minecraft:light_blue_wall_banner": { + "defaultstate": "minecraft:light_blue_wall_banner[facing=north]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:light_blue_wool": { + "defaultstate": "minecraft:light_blue_wool", + "properties": {} + }, + "minecraft:light_gray_banner": { + "defaultstate": "minecraft:light_gray_banner[rotation=0]", + "properties": { + "rotation": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ] + } + } + }, + "minecraft:light_gray_bed": { + "defaultstate": "minecraft:light_gray_bed[facing=north,occupied=false,part=foot]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "occupied": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "part": { + "type": "enum", + "values": [ + "head", + "foot" + ] + } + } + }, + "minecraft:light_gray_candle": { + "defaultstate": "minecraft:light_gray_candle[candles=1,lit=false,waterlogged=false]", + "properties": { + "candles": { + "type": "int", + "values": [ + "1", + "2", + "3", + "4" + ] + }, + "lit": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:light_gray_candle_cake": { + "defaultstate": "minecraft:light_gray_candle_cake[lit=false]", + "properties": { + "lit": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:light_gray_carpet": { + "defaultstate": "minecraft:light_gray_carpet", + "properties": {} + }, + "minecraft:light_gray_concrete": { + "defaultstate": "minecraft:light_gray_concrete", + "properties": {} + }, + "minecraft:light_gray_concrete_powder": { + "defaultstate": "minecraft:light_gray_concrete_powder", + "properties": {} + }, + "minecraft:light_gray_glazed_terracotta": { + "defaultstate": "minecraft:light_gray_glazed_terracotta[facing=north]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:light_gray_shulker_box": { + "defaultstate": "minecraft:light_gray_shulker_box[facing=up]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ] + } + } + }, + "minecraft:light_gray_stained_glass": { + "defaultstate": "minecraft:light_gray_stained_glass", + "properties": {} + }, + "minecraft:light_gray_stained_glass_pane": { + "defaultstate": "minecraft:light_gray_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]", + "properties": { + "east": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "north": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "south": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:light_gray_terracotta": { + "defaultstate": "minecraft:light_gray_terracotta", + "properties": {} + }, + "minecraft:light_gray_wall_banner": { + "defaultstate": "minecraft:light_gray_wall_banner[facing=north]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:light_gray_wool": { + "defaultstate": "minecraft:light_gray_wool", + "properties": {} + }, + "minecraft:light_weighted_pressure_plate": { + "defaultstate": "minecraft:light_weighted_pressure_plate[power=0]", + "properties": { + "power": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ] + } + } + }, + "minecraft:lightning_rod": { + "defaultstate": "minecraft:lightning_rod[facing=up,powered=false,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ] + }, + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:lilac": { + "defaultstate": "minecraft:lilac[half=lower]", + "properties": { + "half": { + "type": "enum", + "values": [ + "upper", + "lower" + ] + } + } + }, + "minecraft:lily_of_the_valley": { + "defaultstate": "minecraft:lily_of_the_valley", + "properties": {} + }, + "minecraft:lily_pad": { + "defaultstate": "minecraft:lily_pad", + "properties": {} + }, + "minecraft:lime_banner": { + "defaultstate": "minecraft:lime_banner[rotation=0]", + "properties": { + "rotation": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ] + } + } + }, + "minecraft:lime_bed": { + "defaultstate": "minecraft:lime_bed[facing=north,occupied=false,part=foot]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "occupied": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "part": { + "type": "enum", + "values": [ + "head", + "foot" + ] + } + } + }, + "minecraft:lime_candle": { + "defaultstate": "minecraft:lime_candle[candles=1,lit=false,waterlogged=false]", + "properties": { + "candles": { + "type": "int", + "values": [ + "1", + "2", + "3", + "4" + ] + }, + "lit": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:lime_candle_cake": { + "defaultstate": "minecraft:lime_candle_cake[lit=false]", + "properties": { + "lit": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:lime_carpet": { + "defaultstate": "minecraft:lime_carpet", + "properties": {} + }, + "minecraft:lime_concrete": { + "defaultstate": "minecraft:lime_concrete", + "properties": {} + }, + "minecraft:lime_concrete_powder": { + "defaultstate": "minecraft:lime_concrete_powder", + "properties": {} + }, + "minecraft:lime_glazed_terracotta": { + "defaultstate": "minecraft:lime_glazed_terracotta[facing=north]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:lime_shulker_box": { + "defaultstate": "minecraft:lime_shulker_box[facing=up]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ] + } + } + }, + "minecraft:lime_stained_glass": { + "defaultstate": "minecraft:lime_stained_glass", + "properties": {} + }, + "minecraft:lime_stained_glass_pane": { + "defaultstate": "minecraft:lime_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]", + "properties": { + "east": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "north": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "south": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:lime_terracotta": { + "defaultstate": "minecraft:lime_terracotta", + "properties": {} + }, + "minecraft:lime_wall_banner": { + "defaultstate": "minecraft:lime_wall_banner[facing=north]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:lime_wool": { + "defaultstate": "minecraft:lime_wool", + "properties": {} + }, + "minecraft:lodestone": { + "defaultstate": "minecraft:lodestone", + "properties": {} + }, + "minecraft:loom": { + "defaultstate": "minecraft:loom[facing=north]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:magenta_banner": { + "defaultstate": "minecraft:magenta_banner[rotation=0]", + "properties": { + "rotation": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ] + } + } + }, + "minecraft:magenta_bed": { + "defaultstate": "minecraft:magenta_bed[facing=north,occupied=false,part=foot]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "occupied": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "part": { + "type": "enum", + "values": [ + "head", + "foot" + ] + } + } + }, + "minecraft:magenta_candle": { + "defaultstate": "minecraft:magenta_candle[candles=1,lit=false,waterlogged=false]", + "properties": { + "candles": { + "type": "int", + "values": [ + "1", + "2", + "3", + "4" + ] + }, + "lit": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:magenta_candle_cake": { + "defaultstate": "minecraft:magenta_candle_cake[lit=false]", + "properties": { + "lit": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:magenta_carpet": { + "defaultstate": "minecraft:magenta_carpet", + "properties": {} + }, + "minecraft:magenta_concrete": { + "defaultstate": "minecraft:magenta_concrete", + "properties": {} + }, + "minecraft:magenta_concrete_powder": { + "defaultstate": "minecraft:magenta_concrete_powder", + "properties": {} + }, + "minecraft:magenta_glazed_terracotta": { + "defaultstate": "minecraft:magenta_glazed_terracotta[facing=north]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:magenta_shulker_box": { + "defaultstate": "minecraft:magenta_shulker_box[facing=up]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ] + } + } + }, + "minecraft:magenta_stained_glass": { + "defaultstate": "minecraft:magenta_stained_glass", + "properties": {} + }, + "minecraft:magenta_stained_glass_pane": { + "defaultstate": "minecraft:magenta_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]", + "properties": { + "east": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "north": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "south": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:magenta_terracotta": { + "defaultstate": "minecraft:magenta_terracotta", + "properties": {} + }, + "minecraft:magenta_wall_banner": { + "defaultstate": "minecraft:magenta_wall_banner[facing=north]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:magenta_wool": { + "defaultstate": "minecraft:magenta_wool", + "properties": {} + }, + "minecraft:magma_block": { + "defaultstate": "minecraft:magma_block", + "properties": {} + }, + "minecraft:medium_amethyst_bud": { + "defaultstate": "minecraft:medium_amethyst_bud[facing=up,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:melon": { + "defaultstate": "minecraft:melon", + "properties": {} + }, + "minecraft:melon_stem": { + "defaultstate": "minecraft:melon_stem[age=0]", + "properties": { + "age": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ] + } + } + }, + "minecraft:moss_block": { + "defaultstate": "minecraft:moss_block", + "properties": {} + }, + "minecraft:moss_carpet": { + "defaultstate": "minecraft:moss_carpet", + "properties": {} + }, + "minecraft:mossy_cobblestone": { + "defaultstate": "minecraft:mossy_cobblestone", + "properties": {} + }, + "minecraft:mossy_cobblestone_slab": { + "defaultstate": "minecraft:mossy_cobblestone_slab[type=bottom,waterlogged=false]", + "properties": { + "type": { + "type": "enum", + "values": [ + "top", + "bottom", + "double" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:mossy_cobblestone_stairs": { + "defaultstate": "minecraft:mossy_cobblestone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "shape": { + "type": "enum", + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:mossy_cobblestone_wall": { + "defaultstate": "minecraft:mossy_cobblestone_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]", + "properties": { + "east": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "north": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "south": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "up": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + } + } + }, + "minecraft:mossy_stone_brick_slab": { + "defaultstate": "minecraft:mossy_stone_brick_slab[type=bottom,waterlogged=false]", + "properties": { + "type": { + "type": "enum", + "values": [ + "top", + "bottom", + "double" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:mossy_stone_brick_stairs": { + "defaultstate": "minecraft:mossy_stone_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "shape": { + "type": "enum", + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:mossy_stone_brick_wall": { + "defaultstate": "minecraft:mossy_stone_brick_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]", + "properties": { + "east": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "north": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "south": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "up": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + } + } + }, + "minecraft:mossy_stone_bricks": { + "defaultstate": "minecraft:mossy_stone_bricks", + "properties": {} + }, + "minecraft:moving_piston": { + "defaultstate": "minecraft:moving_piston[facing=north,type=normal]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ] + }, + "type": { + "type": "enum", + "values": [ + "normal", + "sticky" + ] + } + } + }, + "minecraft:mushroom_stem": { + "defaultstate": "minecraft:mushroom_stem[down=true,east=true,north=true,south=true,up=true,west=true]", + "properties": { + "down": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "east": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "north": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "south": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "up": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:mycelium": { + "defaultstate": "minecraft:mycelium[snowy=false]", + "properties": { + "snowy": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:nether_brick_fence": { + "defaultstate": "minecraft:nether_brick_fence[east=false,north=false,south=false,waterlogged=false,west=false]", + "properties": { + "east": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "north": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "south": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:nether_brick_slab": { + "defaultstate": "minecraft:nether_brick_slab[type=bottom,waterlogged=false]", + "properties": { + "type": { + "type": "enum", + "values": [ + "top", + "bottom", + "double" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:nether_brick_stairs": { + "defaultstate": "minecraft:nether_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "shape": { + "type": "enum", + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:nether_brick_wall": { + "defaultstate": "minecraft:nether_brick_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]", + "properties": { + "east": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "north": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "south": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "up": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + } + } + }, + "minecraft:nether_bricks": { + "defaultstate": "minecraft:nether_bricks", + "properties": {} + }, + "minecraft:nether_gold_ore": { + "defaultstate": "minecraft:nether_gold_ore", + "properties": {} + }, + "minecraft:nether_portal": { + "defaultstate": "minecraft:nether_portal[axis=x]", + "properties": { + "axis": { + "type": "enum", + "values": [ + "x", + "z" + ] + } + } + }, + "minecraft:nether_quartz_ore": { + "defaultstate": "minecraft:nether_quartz_ore", + "properties": {} + }, + "minecraft:nether_sprouts": { + "defaultstate": "minecraft:nether_sprouts", + "properties": {} + }, + "minecraft:nether_wart": { + "defaultstate": "minecraft:nether_wart[age=0]", + "properties": { + "age": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3" + ] + } + } + }, + "minecraft:nether_wart_block": { + "defaultstate": "minecraft:nether_wart_block", + "properties": {} + }, + "minecraft:netherite_block": { + "defaultstate": "minecraft:netherite_block", + "properties": {} + }, + "minecraft:netherrack": { + "defaultstate": "minecraft:netherrack", + "properties": {} + }, + "minecraft:note_block": { + "defaultstate": "minecraft:note_block[instrument=harp,note=0,powered=false]", + "properties": { + "instrument": { + "type": "enum", + "values": [ + "harp", + "basedrum", + "snare", + "hat", + "bass", + "flute", + "bell", + "guitar", + "chime", + "xylophone", + "iron_xylophone", + "cow_bell", + "didgeridoo", + "bit", + "banjo", + "pling" + ] + }, + "note": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15", + "16", + "17", + "18", + "19", + "20", + "21", + "22", + "23", + "24" + ] + }, + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:oak_button": { + "defaultstate": "minecraft:oak_button[face=wall,facing=north,powered=false]", + "properties": { + "face": { + "type": "enum", + "values": [ + "floor", + "wall", + "ceiling" + ] + }, + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:oak_door": { + "defaultstate": "minecraft:oak_door[facing=north,half=lower,hinge=left,open=false,powered=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "upper", + "lower" + ] + }, + "hinge": { + "type": "enum", + "values": [ + "left", + "right" + ] + }, + "open": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:oak_fence": { + "defaultstate": "minecraft:oak_fence[east=false,north=false,south=false,waterlogged=false,west=false]", + "properties": { + "east": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "north": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "south": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:oak_fence_gate": { + "defaultstate": "minecraft:oak_fence_gate[facing=north,in_wall=false,open=false,powered=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "in_wall": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "open": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:oak_leaves": { + "defaultstate": "minecraft:oak_leaves[distance=7,persistent=false]", + "properties": { + "distance": { + "type": "int", + "values": [ + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ] + }, + "persistent": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:oak_log": { + "defaultstate": "minecraft:oak_log[axis=y]", + "properties": { + "axis": { + "type": "enum", + "values": [ + "x", + "y", + "z" + ] + } + } + }, + "minecraft:oak_planks": { + "defaultstate": "minecraft:oak_planks", + "properties": {} + }, + "minecraft:oak_pressure_plate": { + "defaultstate": "minecraft:oak_pressure_plate[powered=false]", + "properties": { + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:oak_sapling": { + "defaultstate": "minecraft:oak_sapling[stage=0]", + "properties": { + "stage": { + "type": "int", + "values": [ + "0", + "1" + ] + } + } + }, + "minecraft:oak_sign": { + "defaultstate": "minecraft:oak_sign[rotation=0,waterlogged=false]", + "properties": { + "rotation": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:oak_slab": { + "defaultstate": "minecraft:oak_slab[type=bottom,waterlogged=false]", + "properties": { + "type": { + "type": "enum", + "values": [ + "top", + "bottom", + "double" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:oak_stairs": { + "defaultstate": "minecraft:oak_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "shape": { + "type": "enum", + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:oak_trapdoor": { + "defaultstate": "minecraft:oak_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "open": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:oak_wall_sign": { + "defaultstate": "minecraft:oak_wall_sign[facing=north,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:oak_wood": { + "defaultstate": "minecraft:oak_wood[axis=y]", + "properties": { + "axis": { + "type": "enum", + "values": [ + "x", + "y", + "z" + ] + } + } + }, + "minecraft:observer": { + "defaultstate": "minecraft:observer[facing=south,powered=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ] + }, + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:obsidian": { + "defaultstate": "minecraft:obsidian", + "properties": {} + }, + "minecraft:orange_banner": { + "defaultstate": "minecraft:orange_banner[rotation=0]", + "properties": { + "rotation": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ] + } + } + }, + "minecraft:orange_bed": { + "defaultstate": "minecraft:orange_bed[facing=north,occupied=false,part=foot]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "occupied": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "part": { + "type": "enum", + "values": [ + "head", + "foot" + ] + } + } + }, + "minecraft:orange_candle": { + "defaultstate": "minecraft:orange_candle[candles=1,lit=false,waterlogged=false]", + "properties": { + "candles": { + "type": "int", + "values": [ + "1", + "2", + "3", + "4" + ] + }, + "lit": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:orange_candle_cake": { + "defaultstate": "minecraft:orange_candle_cake[lit=false]", + "properties": { + "lit": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:orange_carpet": { + "defaultstate": "minecraft:orange_carpet", + "properties": {} + }, + "minecraft:orange_concrete": { + "defaultstate": "minecraft:orange_concrete", + "properties": {} + }, + "minecraft:orange_concrete_powder": { + "defaultstate": "minecraft:orange_concrete_powder", + "properties": {} + }, + "minecraft:orange_glazed_terracotta": { + "defaultstate": "minecraft:orange_glazed_terracotta[facing=north]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:orange_shulker_box": { + "defaultstate": "minecraft:orange_shulker_box[facing=up]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ] + } + } + }, + "minecraft:orange_stained_glass": { + "defaultstate": "minecraft:orange_stained_glass", + "properties": {} + }, + "minecraft:orange_stained_glass_pane": { + "defaultstate": "minecraft:orange_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]", + "properties": { + "east": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "north": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "south": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:orange_terracotta": { + "defaultstate": "minecraft:orange_terracotta", + "properties": {} + }, + "minecraft:orange_tulip": { + "defaultstate": "minecraft:orange_tulip", + "properties": {} + }, + "minecraft:orange_wall_banner": { + "defaultstate": "minecraft:orange_wall_banner[facing=north]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:orange_wool": { + "defaultstate": "minecraft:orange_wool", + "properties": {} + }, + "minecraft:oxeye_daisy": { + "defaultstate": "minecraft:oxeye_daisy", + "properties": {} + }, + "minecraft:oxidized_copper": { + "defaultstate": "minecraft:oxidized_copper", + "properties": {} + }, + "minecraft:oxidized_cut_copper": { + "defaultstate": "minecraft:oxidized_cut_copper", + "properties": {} + }, + "minecraft:oxidized_cut_copper_slab": { + "defaultstate": "minecraft:oxidized_cut_copper_slab[type=bottom,waterlogged=false]", + "properties": { + "type": { + "type": "enum", + "values": [ + "top", + "bottom", + "double" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:oxidized_cut_copper_stairs": { + "defaultstate": "minecraft:oxidized_cut_copper_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "shape": { + "type": "enum", + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:packed_ice": { + "defaultstate": "minecraft:packed_ice", + "properties": {} + }, + "minecraft:peony": { + "defaultstate": "minecraft:peony[half=lower]", + "properties": { + "half": { + "type": "enum", + "values": [ + "upper", + "lower" + ] + } + } + }, + "minecraft:petrified_oak_slab": { + "defaultstate": "minecraft:petrified_oak_slab[type=bottom,waterlogged=false]", + "properties": { + "type": { + "type": "enum", + "values": [ + "top", + "bottom", + "double" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:pink_banner": { + "defaultstate": "minecraft:pink_banner[rotation=0]", + "properties": { + "rotation": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ] + } + } + }, + "minecraft:pink_bed": { + "defaultstate": "minecraft:pink_bed[facing=north,occupied=false,part=foot]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "occupied": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "part": { + "type": "enum", + "values": [ + "head", + "foot" + ] + } + } + }, + "minecraft:pink_candle": { + "defaultstate": "minecraft:pink_candle[candles=1,lit=false,waterlogged=false]", + "properties": { + "candles": { + "type": "int", + "values": [ + "1", + "2", + "3", + "4" + ] + }, + "lit": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:pink_candle_cake": { + "defaultstate": "minecraft:pink_candle_cake[lit=false]", + "properties": { + "lit": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:pink_carpet": { + "defaultstate": "minecraft:pink_carpet", + "properties": {} + }, + "minecraft:pink_concrete": { + "defaultstate": "minecraft:pink_concrete", + "properties": {} + }, + "minecraft:pink_concrete_powder": { + "defaultstate": "minecraft:pink_concrete_powder", + "properties": {} + }, + "minecraft:pink_glazed_terracotta": { + "defaultstate": "minecraft:pink_glazed_terracotta[facing=north]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:pink_shulker_box": { + "defaultstate": "minecraft:pink_shulker_box[facing=up]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ] + } + } + }, + "minecraft:pink_stained_glass": { + "defaultstate": "minecraft:pink_stained_glass", + "properties": {} + }, + "minecraft:pink_stained_glass_pane": { + "defaultstate": "minecraft:pink_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]", + "properties": { + "east": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "north": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "south": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:pink_terracotta": { + "defaultstate": "minecraft:pink_terracotta", + "properties": {} + }, + "minecraft:pink_tulip": { + "defaultstate": "minecraft:pink_tulip", + "properties": {} + }, + "minecraft:pink_wall_banner": { + "defaultstate": "minecraft:pink_wall_banner[facing=north]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:pink_wool": { + "defaultstate": "minecraft:pink_wool", + "properties": {} + }, + "minecraft:piston": { + "defaultstate": "minecraft:piston[extended=false,facing=north]", + "properties": { + "extended": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "facing": { + "type": "direction", + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ] + } + } + }, + "minecraft:piston_head": { + "defaultstate": "minecraft:piston_head[facing=north,short=false,type=normal]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ] + }, + "short": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "type": { + "type": "enum", + "values": [ + "normal", + "sticky" + ] + } + } + }, + "minecraft:player_head": { + "defaultstate": "minecraft:player_head[rotation=0]", + "properties": { + "rotation": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ] + } + } + }, + "minecraft:player_wall_head": { + "defaultstate": "minecraft:player_wall_head[facing=north]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:podzol": { + "defaultstate": "minecraft:podzol[snowy=false]", + "properties": { + "snowy": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:pointed_dripstone": { + "defaultstate": "minecraft:pointed_dripstone[thickness=tip,vertical_direction=up,waterlogged=false]", + "properties": { + "thickness": { + "type": "enum", + "values": [ + "tip_merge", + "tip", + "frustum", + "middle", + "base" + ] + }, + "vertical_direction": { + "type": "direction", + "values": [ + "up", + "down" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:polished_andesite": { + "defaultstate": "minecraft:polished_andesite", + "properties": {} + }, + "minecraft:polished_andesite_slab": { + "defaultstate": "minecraft:polished_andesite_slab[type=bottom,waterlogged=false]", + "properties": { + "type": { + "type": "enum", + "values": [ + "top", + "bottom", + "double" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:polished_andesite_stairs": { + "defaultstate": "minecraft:polished_andesite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "shape": { + "type": "enum", + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:polished_basalt": { + "defaultstate": "minecraft:polished_basalt[axis=y]", + "properties": { + "axis": { + "type": "enum", + "values": [ + "x", + "y", + "z" + ] + } + } + }, + "minecraft:polished_blackstone": { + "defaultstate": "minecraft:polished_blackstone", + "properties": {} + }, + "minecraft:polished_blackstone_brick_slab": { + "defaultstate": "minecraft:polished_blackstone_brick_slab[type=bottom,waterlogged=false]", + "properties": { + "type": { + "type": "enum", + "values": [ + "top", + "bottom", + "double" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:polished_blackstone_brick_stairs": { + "defaultstate": "minecraft:polished_blackstone_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "shape": { + "type": "enum", + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:polished_blackstone_brick_wall": { + "defaultstate": "minecraft:polished_blackstone_brick_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]", + "properties": { + "east": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "north": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "south": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "up": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + } + } + }, + "minecraft:polished_blackstone_bricks": { + "defaultstate": "minecraft:polished_blackstone_bricks", + "properties": {} + }, + "minecraft:polished_blackstone_button": { + "defaultstate": "minecraft:polished_blackstone_button[face=wall,facing=north,powered=false]", + "properties": { + "face": { + "type": "enum", + "values": [ + "floor", + "wall", + "ceiling" + ] + }, + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:polished_blackstone_pressure_plate": { + "defaultstate": "minecraft:polished_blackstone_pressure_plate[powered=false]", + "properties": { + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:polished_blackstone_slab": { + "defaultstate": "minecraft:polished_blackstone_slab[type=bottom,waterlogged=false]", + "properties": { + "type": { + "type": "enum", + "values": [ + "top", + "bottom", + "double" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:polished_blackstone_stairs": { + "defaultstate": "minecraft:polished_blackstone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "shape": { + "type": "enum", + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:polished_blackstone_wall": { + "defaultstate": "minecraft:polished_blackstone_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]", + "properties": { + "east": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "north": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "south": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "up": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + } + } + }, + "minecraft:polished_deepslate": { + "defaultstate": "minecraft:polished_deepslate", + "properties": {} + }, + "minecraft:polished_deepslate_slab": { + "defaultstate": "minecraft:polished_deepslate_slab[type=bottom,waterlogged=false]", + "properties": { + "type": { + "type": "enum", + "values": [ + "top", + "bottom", + "double" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:polished_deepslate_stairs": { + "defaultstate": "minecraft:polished_deepslate_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "shape": { + "type": "enum", + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:polished_deepslate_wall": { + "defaultstate": "minecraft:polished_deepslate_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]", + "properties": { + "east": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "north": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "south": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "up": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + } + } + }, + "minecraft:polished_diorite": { + "defaultstate": "minecraft:polished_diorite", + "properties": {} + }, + "minecraft:polished_diorite_slab": { + "defaultstate": "minecraft:polished_diorite_slab[type=bottom,waterlogged=false]", + "properties": { + "type": { + "type": "enum", + "values": [ + "top", + "bottom", + "double" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:polished_diorite_stairs": { + "defaultstate": "minecraft:polished_diorite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "shape": { + "type": "enum", + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:polished_granite": { + "defaultstate": "minecraft:polished_granite", + "properties": {} + }, + "minecraft:polished_granite_slab": { + "defaultstate": "minecraft:polished_granite_slab[type=bottom,waterlogged=false]", + "properties": { + "type": { + "type": "enum", + "values": [ + "top", + "bottom", + "double" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:polished_granite_stairs": { + "defaultstate": "minecraft:polished_granite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "shape": { + "type": "enum", + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:poppy": { + "defaultstate": "minecraft:poppy", + "properties": {} + }, + "minecraft:potatoes": { + "defaultstate": "minecraft:potatoes[age=0]", + "properties": { + "age": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ] + } + } + }, + "minecraft:potted_acacia_sapling": { + "defaultstate": "minecraft:potted_acacia_sapling", + "properties": {} + }, + "minecraft:potted_allium": { + "defaultstate": "minecraft:potted_allium", + "properties": {} + }, + "minecraft:potted_azalea_bush": { + "defaultstate": "minecraft:potted_azalea_bush", + "properties": {} + }, + "minecraft:potted_azure_bluet": { + "defaultstate": "minecraft:potted_azure_bluet", + "properties": {} + }, + "minecraft:potted_bamboo": { + "defaultstate": "minecraft:potted_bamboo", + "properties": {} + }, + "minecraft:potted_birch_sapling": { + "defaultstate": "minecraft:potted_birch_sapling", + "properties": {} + }, + "minecraft:potted_blue_orchid": { + "defaultstate": "minecraft:potted_blue_orchid", + "properties": {} + }, + "minecraft:potted_brown_mushroom": { + "defaultstate": "minecraft:potted_brown_mushroom", + "properties": {} + }, + "minecraft:potted_cactus": { + "defaultstate": "minecraft:potted_cactus", + "properties": {} + }, + "minecraft:potted_cornflower": { + "defaultstate": "minecraft:potted_cornflower", + "properties": {} + }, + "minecraft:potted_crimson_fungus": { + "defaultstate": "minecraft:potted_crimson_fungus", + "properties": {} + }, + "minecraft:potted_crimson_roots": { + "defaultstate": "minecraft:potted_crimson_roots", + "properties": {} + }, + "minecraft:potted_dandelion": { + "defaultstate": "minecraft:potted_dandelion", + "properties": {} + }, + "minecraft:potted_dark_oak_sapling": { + "defaultstate": "minecraft:potted_dark_oak_sapling", + "properties": {} + }, + "minecraft:potted_dead_bush": { + "defaultstate": "minecraft:potted_dead_bush", + "properties": {} + }, + "minecraft:potted_fern": { + "defaultstate": "minecraft:potted_fern", + "properties": {} + }, + "minecraft:potted_flowering_azalea_bush": { + "defaultstate": "minecraft:potted_flowering_azalea_bush", + "properties": {} + }, + "minecraft:potted_jungle_sapling": { + "defaultstate": "minecraft:potted_jungle_sapling", + "properties": {} + }, + "minecraft:potted_lily_of_the_valley": { + "defaultstate": "minecraft:potted_lily_of_the_valley", + "properties": {} + }, + "minecraft:potted_oak_sapling": { + "defaultstate": "minecraft:potted_oak_sapling", + "properties": {} + }, + "minecraft:potted_orange_tulip": { + "defaultstate": "minecraft:potted_orange_tulip", + "properties": {} + }, + "minecraft:potted_oxeye_daisy": { + "defaultstate": "minecraft:potted_oxeye_daisy", + "properties": {} + }, + "minecraft:potted_pink_tulip": { + "defaultstate": "minecraft:potted_pink_tulip", + "properties": {} + }, + "minecraft:potted_poppy": { + "defaultstate": "minecraft:potted_poppy", + "properties": {} + }, + "minecraft:potted_red_mushroom": { + "defaultstate": "minecraft:potted_red_mushroom", + "properties": {} + }, + "minecraft:potted_red_tulip": { + "defaultstate": "minecraft:potted_red_tulip", + "properties": {} + }, + "minecraft:potted_spruce_sapling": { + "defaultstate": "minecraft:potted_spruce_sapling", + "properties": {} + }, + "minecraft:potted_warped_fungus": { + "defaultstate": "minecraft:potted_warped_fungus", + "properties": {} + }, + "minecraft:potted_warped_roots": { + "defaultstate": "minecraft:potted_warped_roots", + "properties": {} + }, + "minecraft:potted_white_tulip": { + "defaultstate": "minecraft:potted_white_tulip", + "properties": {} + }, + "minecraft:potted_wither_rose": { + "defaultstate": "minecraft:potted_wither_rose", + "properties": {} + }, + "minecraft:powder_snow": { + "defaultstate": "minecraft:powder_snow", + "properties": {} + }, + "minecraft:powder_snow_cauldron": { + "defaultstate": "minecraft:powder_snow_cauldron[level=1]", + "properties": { + "level": { + "type": "int", + "values": [ + "1", + "2", + "3" + ] + } + } + }, + "minecraft:powered_rail": { + "defaultstate": "minecraft:powered_rail[powered=false,shape=north_south,waterlogged=false]", + "properties": { + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "shape": { + "type": "enum", + "values": [ + "north_south", + "east_west", + "ascending_east", + "ascending_west", + "ascending_north", + "ascending_south" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:prismarine": { + "defaultstate": "minecraft:prismarine", + "properties": {} + }, + "minecraft:prismarine_brick_slab": { + "defaultstate": "minecraft:prismarine_brick_slab[type=bottom,waterlogged=false]", + "properties": { + "type": { + "type": "enum", + "values": [ + "top", + "bottom", + "double" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:prismarine_brick_stairs": { + "defaultstate": "minecraft:prismarine_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "shape": { + "type": "enum", + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:prismarine_bricks": { + "defaultstate": "minecraft:prismarine_bricks", + "properties": {} + }, + "minecraft:prismarine_slab": { + "defaultstate": "minecraft:prismarine_slab[type=bottom,waterlogged=false]", + "properties": { + "type": { + "type": "enum", + "values": [ + "top", + "bottom", + "double" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:prismarine_stairs": { + "defaultstate": "minecraft:prismarine_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "shape": { + "type": "enum", + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:prismarine_wall": { + "defaultstate": "minecraft:prismarine_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]", + "properties": { + "east": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "north": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "south": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "up": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + } + } + }, + "minecraft:pumpkin": { + "defaultstate": "minecraft:pumpkin", + "properties": {} + }, + "minecraft:pumpkin_stem": { + "defaultstate": "minecraft:pumpkin_stem[age=0]", + "properties": { + "age": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ] + } + } + }, + "minecraft:purple_banner": { + "defaultstate": "minecraft:purple_banner[rotation=0]", + "properties": { + "rotation": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ] + } + } + }, + "minecraft:purple_bed": { + "defaultstate": "minecraft:purple_bed[facing=north,occupied=false,part=foot]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "occupied": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "part": { + "type": "enum", + "values": [ + "head", + "foot" + ] + } + } + }, + "minecraft:purple_candle": { + "defaultstate": "minecraft:purple_candle[candles=1,lit=false,waterlogged=false]", + "properties": { + "candles": { + "type": "int", + "values": [ + "1", + "2", + "3", + "4" + ] + }, + "lit": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:purple_candle_cake": { + "defaultstate": "minecraft:purple_candle_cake[lit=false]", + "properties": { + "lit": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:purple_carpet": { + "defaultstate": "minecraft:purple_carpet", + "properties": {} + }, + "minecraft:purple_concrete": { + "defaultstate": "minecraft:purple_concrete", + "properties": {} + }, + "minecraft:purple_concrete_powder": { + "defaultstate": "minecraft:purple_concrete_powder", + "properties": {} + }, + "minecraft:purple_glazed_terracotta": { + "defaultstate": "minecraft:purple_glazed_terracotta[facing=north]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:purple_shulker_box": { + "defaultstate": "minecraft:purple_shulker_box[facing=up]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ] + } + } + }, + "minecraft:purple_stained_glass": { + "defaultstate": "minecraft:purple_stained_glass", + "properties": {} + }, + "minecraft:purple_stained_glass_pane": { + "defaultstate": "minecraft:purple_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]", + "properties": { + "east": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "north": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "south": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:purple_terracotta": { + "defaultstate": "minecraft:purple_terracotta", + "properties": {} + }, + "minecraft:purple_wall_banner": { + "defaultstate": "minecraft:purple_wall_banner[facing=north]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:purple_wool": { + "defaultstate": "minecraft:purple_wool", + "properties": {} + }, + "minecraft:purpur_block": { + "defaultstate": "minecraft:purpur_block", + "properties": {} + }, + "minecraft:purpur_pillar": { + "defaultstate": "minecraft:purpur_pillar[axis=y]", + "properties": { + "axis": { + "type": "enum", + "values": [ + "x", + "y", + "z" + ] + } + } + }, + "minecraft:purpur_slab": { + "defaultstate": "minecraft:purpur_slab[type=bottom,waterlogged=false]", + "properties": { + "type": { + "type": "enum", + "values": [ + "top", + "bottom", + "double" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:purpur_stairs": { + "defaultstate": "minecraft:purpur_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "shape": { + "type": "enum", + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:quartz_block": { + "defaultstate": "minecraft:quartz_block", + "properties": {} + }, + "minecraft:quartz_bricks": { + "defaultstate": "minecraft:quartz_bricks", + "properties": {} + }, + "minecraft:quartz_pillar": { + "defaultstate": "minecraft:quartz_pillar[axis=y]", + "properties": { + "axis": { + "type": "enum", + "values": [ + "x", + "y", + "z" + ] + } + } + }, + "minecraft:quartz_slab": { + "defaultstate": "minecraft:quartz_slab[type=bottom,waterlogged=false]", + "properties": { + "type": { + "type": "enum", + "values": [ + "top", + "bottom", + "double" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:quartz_stairs": { + "defaultstate": "minecraft:quartz_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "shape": { + "type": "enum", + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:rail": { + "defaultstate": "minecraft:rail[shape=north_south,waterlogged=false]", + "properties": { + "shape": { + "type": "enum", + "values": [ + "north_south", + "east_west", + "ascending_east", + "ascending_west", + "ascending_north", + "ascending_south", + "south_east", + "south_west", + "north_west", + "north_east" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:raw_copper_block": { + "defaultstate": "minecraft:raw_copper_block", + "properties": {} + }, + "minecraft:raw_gold_block": { + "defaultstate": "minecraft:raw_gold_block", + "properties": {} + }, + "minecraft:raw_iron_block": { + "defaultstate": "minecraft:raw_iron_block", + "properties": {} + }, + "minecraft:red_banner": { + "defaultstate": "minecraft:red_banner[rotation=0]", + "properties": { + "rotation": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ] + } + } + }, + "minecraft:red_bed": { + "defaultstate": "minecraft:red_bed[facing=north,occupied=false,part=foot]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "occupied": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "part": { + "type": "enum", + "values": [ + "head", + "foot" + ] + } + } + }, + "minecraft:red_candle": { + "defaultstate": "minecraft:red_candle[candles=1,lit=false,waterlogged=false]", + "properties": { + "candles": { + "type": "int", + "values": [ + "1", + "2", + "3", + "4" + ] + }, + "lit": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:red_candle_cake": { + "defaultstate": "minecraft:red_candle_cake[lit=false]", + "properties": { + "lit": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:red_carpet": { + "defaultstate": "minecraft:red_carpet", + "properties": {} + }, + "minecraft:red_concrete": { + "defaultstate": "minecraft:red_concrete", + "properties": {} + }, + "minecraft:red_concrete_powder": { + "defaultstate": "minecraft:red_concrete_powder", + "properties": {} + }, + "minecraft:red_glazed_terracotta": { + "defaultstate": "minecraft:red_glazed_terracotta[facing=north]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:red_mushroom": { + "defaultstate": "minecraft:red_mushroom", + "properties": {} + }, + "minecraft:red_mushroom_block": { + "defaultstate": "minecraft:red_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true]", + "properties": { + "down": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "east": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "north": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "south": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "up": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:red_nether_brick_slab": { + "defaultstate": "minecraft:red_nether_brick_slab[type=bottom,waterlogged=false]", + "properties": { + "type": { + "type": "enum", + "values": [ + "top", + "bottom", + "double" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:red_nether_brick_stairs": { + "defaultstate": "minecraft:red_nether_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "shape": { + "type": "enum", + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:red_nether_brick_wall": { + "defaultstate": "minecraft:red_nether_brick_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]", + "properties": { + "east": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "north": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "south": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "up": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + } + } + }, + "minecraft:red_nether_bricks": { + "defaultstate": "minecraft:red_nether_bricks", + "properties": {} + }, + "minecraft:red_sand": { + "defaultstate": "minecraft:red_sand", + "properties": {} + }, + "minecraft:red_sandstone": { + "defaultstate": "minecraft:red_sandstone", + "properties": {} + }, + "minecraft:red_sandstone_slab": { + "defaultstate": "minecraft:red_sandstone_slab[type=bottom,waterlogged=false]", + "properties": { + "type": { + "type": "enum", + "values": [ + "top", + "bottom", + "double" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:red_sandstone_stairs": { + "defaultstate": "minecraft:red_sandstone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "shape": { + "type": "enum", + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:red_sandstone_wall": { + "defaultstate": "minecraft:red_sandstone_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]", + "properties": { + "east": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "north": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "south": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "up": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + } + } + }, + "minecraft:red_shulker_box": { + "defaultstate": "minecraft:red_shulker_box[facing=up]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ] + } + } + }, + "minecraft:red_stained_glass": { + "defaultstate": "minecraft:red_stained_glass", + "properties": {} + }, + "minecraft:red_stained_glass_pane": { + "defaultstate": "minecraft:red_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]", + "properties": { + "east": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "north": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "south": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:red_terracotta": { + "defaultstate": "minecraft:red_terracotta", + "properties": {} + }, + "minecraft:red_tulip": { + "defaultstate": "minecraft:red_tulip", + "properties": {} + }, + "minecraft:red_wall_banner": { + "defaultstate": "minecraft:red_wall_banner[facing=north]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:red_wool": { + "defaultstate": "minecraft:red_wool", + "properties": {} + }, + "minecraft:redstone_block": { + "defaultstate": "minecraft:redstone_block", + "properties": {} + }, + "minecraft:redstone_lamp": { + "defaultstate": "minecraft:redstone_lamp[lit=false]", + "properties": { + "lit": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:redstone_ore": { + "defaultstate": "minecraft:redstone_ore[lit=false]", + "properties": { + "lit": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:redstone_torch": { + "defaultstate": "minecraft:redstone_torch[lit=true]", + "properties": { + "lit": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:redstone_wall_torch": { + "defaultstate": "minecraft:redstone_wall_torch[facing=north,lit=true]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "lit": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:redstone_wire": { + "defaultstate": "minecraft:redstone_wire[east=none,north=none,power=0,south=none,west=none]", + "properties": { + "east": { + "type": "enum", + "values": [ + "up", + "side", + "none" + ] + }, + "north": { + "type": "enum", + "values": [ + "up", + "side", + "none" + ] + }, + "power": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ] + }, + "south": { + "type": "enum", + "values": [ + "up", + "side", + "none" + ] + }, + "west": { + "type": "enum", + "values": [ + "up", + "side", + "none" + ] + } + } + }, + "minecraft:repeater": { + "defaultstate": "minecraft:repeater[delay=1,facing=north,locked=false,powered=false]", + "properties": { + "delay": { + "type": "int", + "values": [ + "1", + "2", + "3", + "4" + ] + }, + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "locked": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:repeating_command_block": { + "defaultstate": "minecraft:repeating_command_block[conditional=false,facing=north]", + "properties": { + "conditional": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "facing": { + "type": "direction", + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ] + } + } + }, + "minecraft:respawn_anchor": { + "defaultstate": "minecraft:respawn_anchor[charges=0]", + "properties": { + "charges": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4" + ] + } + } + }, + "minecraft:rooted_dirt": { + "defaultstate": "minecraft:rooted_dirt", + "properties": {} + }, + "minecraft:rose_bush": { + "defaultstate": "minecraft:rose_bush[half=lower]", + "properties": { + "half": { + "type": "enum", + "values": [ + "upper", + "lower" + ] + } + } + }, + "minecraft:sand": { + "defaultstate": "minecraft:sand", + "properties": {} + }, + "minecraft:sandstone": { + "defaultstate": "minecraft:sandstone", + "properties": {} + }, + "minecraft:sandstone_slab": { + "defaultstate": "minecraft:sandstone_slab[type=bottom,waterlogged=false]", + "properties": { + "type": { + "type": "enum", + "values": [ + "top", + "bottom", + "double" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:sandstone_stairs": { + "defaultstate": "minecraft:sandstone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "shape": { + "type": "enum", + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:sandstone_wall": { + "defaultstate": "minecraft:sandstone_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]", + "properties": { + "east": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "north": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "south": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "up": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + } + } + }, + "minecraft:scaffolding": { + "defaultstate": "minecraft:scaffolding[bottom=false,distance=7,waterlogged=false]", + "properties": { + "bottom": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "distance": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:sculk_sensor": { + "defaultstate": "minecraft:sculk_sensor[power=0,sculk_sensor_phase=inactive,waterlogged=false]", + "properties": { + "power": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ] + }, + "sculk_sensor_phase": { + "type": "enum", + "values": [ + "inactive", + "active", + "cooldown" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:sea_lantern": { + "defaultstate": "minecraft:sea_lantern", + "properties": {} + }, + "minecraft:sea_pickle": { + "defaultstate": "minecraft:sea_pickle[pickles=1,waterlogged=true]", + "properties": { + "pickles": { + "type": "int", + "values": [ + "1", + "2", + "3", + "4" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:seagrass": { + "defaultstate": "minecraft:seagrass", + "properties": {} + }, + "minecraft:shroomlight": { + "defaultstate": "minecraft:shroomlight", + "properties": {} + }, + "minecraft:shulker_box": { + "defaultstate": "minecraft:shulker_box[facing=up]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ] + } + } + }, + "minecraft:skeleton_skull": { + "defaultstate": "minecraft:skeleton_skull[rotation=0]", + "properties": { + "rotation": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ] + } + } + }, + "minecraft:skeleton_wall_skull": { + "defaultstate": "minecraft:skeleton_wall_skull[facing=north]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:slime_block": { + "defaultstate": "minecraft:slime_block", + "properties": {} + }, + "minecraft:small_amethyst_bud": { + "defaultstate": "minecraft:small_amethyst_bud[facing=up,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:small_dripleaf": { + "defaultstate": "minecraft:small_dripleaf[facing=north,half=lower,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "upper", + "lower" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:smithing_table": { + "defaultstate": "minecraft:smithing_table", + "properties": {} + }, + "minecraft:smoker": { + "defaultstate": "minecraft:smoker[facing=north,lit=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "lit": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:smooth_basalt": { + "defaultstate": "minecraft:smooth_basalt", + "properties": {} + }, + "minecraft:smooth_quartz": { + "defaultstate": "minecraft:smooth_quartz", + "properties": {} + }, + "minecraft:smooth_quartz_slab": { + "defaultstate": "minecraft:smooth_quartz_slab[type=bottom,waterlogged=false]", + "properties": { + "type": { + "type": "enum", + "values": [ + "top", + "bottom", + "double" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:smooth_quartz_stairs": { + "defaultstate": "minecraft:smooth_quartz_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "shape": { + "type": "enum", + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:smooth_red_sandstone": { + "defaultstate": "minecraft:smooth_red_sandstone", + "properties": {} + }, + "minecraft:smooth_red_sandstone_slab": { + "defaultstate": "minecraft:smooth_red_sandstone_slab[type=bottom,waterlogged=false]", + "properties": { + "type": { + "type": "enum", + "values": [ + "top", + "bottom", + "double" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:smooth_red_sandstone_stairs": { + "defaultstate": "minecraft:smooth_red_sandstone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "shape": { + "type": "enum", + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:smooth_sandstone": { + "defaultstate": "minecraft:smooth_sandstone", + "properties": {} + }, + "minecraft:smooth_sandstone_slab": { + "defaultstate": "minecraft:smooth_sandstone_slab[type=bottom,waterlogged=false]", + "properties": { + "type": { + "type": "enum", + "values": [ + "top", + "bottom", + "double" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:smooth_sandstone_stairs": { + "defaultstate": "minecraft:smooth_sandstone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "shape": { + "type": "enum", + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:smooth_stone": { + "defaultstate": "minecraft:smooth_stone", + "properties": {} + }, + "minecraft:smooth_stone_slab": { + "defaultstate": "minecraft:smooth_stone_slab[type=bottom,waterlogged=false]", + "properties": { + "type": { + "type": "enum", + "values": [ + "top", + "bottom", + "double" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:snow": { + "defaultstate": "minecraft:snow[layers=1]", + "properties": { + "layers": { + "type": "int", + "values": [ + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8" + ] + } + } + }, + "minecraft:snow_block": { + "defaultstate": "minecraft:snow_block", + "properties": {} + }, + "minecraft:soul_campfire": { + "defaultstate": "minecraft:soul_campfire[facing=north,lit=true,signal_fire=false,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "lit": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "signal_fire": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:soul_fire": { + "defaultstate": "minecraft:soul_fire", + "properties": {} + }, + "minecraft:soul_lantern": { + "defaultstate": "minecraft:soul_lantern[hanging=false,waterlogged=false]", + "properties": { + "hanging": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:soul_sand": { + "defaultstate": "minecraft:soul_sand", + "properties": {} + }, + "minecraft:soul_soil": { + "defaultstate": "minecraft:soul_soil", + "properties": {} + }, + "minecraft:soul_torch": { + "defaultstate": "minecraft:soul_torch", + "properties": {} + }, + "minecraft:soul_wall_torch": { + "defaultstate": "minecraft:soul_wall_torch[facing=north]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:spawner": { + "defaultstate": "minecraft:spawner", + "properties": {} + }, + "minecraft:sponge": { + "defaultstate": "minecraft:sponge", + "properties": {} + }, + "minecraft:spore_blossom": { + "defaultstate": "minecraft:spore_blossom", + "properties": {} + }, + "minecraft:spruce_button": { + "defaultstate": "minecraft:spruce_button[face=wall,facing=north,powered=false]", + "properties": { + "face": { + "type": "enum", + "values": [ + "floor", + "wall", + "ceiling" + ] + }, + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:spruce_door": { + "defaultstate": "minecraft:spruce_door[facing=north,half=lower,hinge=left,open=false,powered=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "upper", + "lower" + ] + }, + "hinge": { + "type": "enum", + "values": [ + "left", + "right" + ] + }, + "open": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:spruce_fence": { + "defaultstate": "minecraft:spruce_fence[east=false,north=false,south=false,waterlogged=false,west=false]", + "properties": { + "east": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "north": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "south": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:spruce_fence_gate": { + "defaultstate": "minecraft:spruce_fence_gate[facing=north,in_wall=false,open=false,powered=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "in_wall": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "open": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:spruce_leaves": { + "defaultstate": "minecraft:spruce_leaves[distance=7,persistent=false]", + "properties": { + "distance": { + "type": "int", + "values": [ + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ] + }, + "persistent": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:spruce_log": { + "defaultstate": "minecraft:spruce_log[axis=y]", + "properties": { + "axis": { + "type": "enum", + "values": [ + "x", + "y", + "z" + ] + } + } + }, + "minecraft:spruce_planks": { + "defaultstate": "minecraft:spruce_planks", + "properties": {} + }, + "minecraft:spruce_pressure_plate": { + "defaultstate": "minecraft:spruce_pressure_plate[powered=false]", + "properties": { + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:spruce_sapling": { + "defaultstate": "minecraft:spruce_sapling[stage=0]", + "properties": { + "stage": { + "type": "int", + "values": [ + "0", + "1" + ] + } + } + }, + "minecraft:spruce_sign": { + "defaultstate": "minecraft:spruce_sign[rotation=0,waterlogged=false]", + "properties": { + "rotation": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:spruce_slab": { + "defaultstate": "minecraft:spruce_slab[type=bottom,waterlogged=false]", + "properties": { + "type": { + "type": "enum", + "values": [ + "top", + "bottom", + "double" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:spruce_stairs": { + "defaultstate": "minecraft:spruce_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "shape": { + "type": "enum", + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:spruce_trapdoor": { + "defaultstate": "minecraft:spruce_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "open": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:spruce_wall_sign": { + "defaultstate": "minecraft:spruce_wall_sign[facing=north,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:spruce_wood": { + "defaultstate": "minecraft:spruce_wood[axis=y]", + "properties": { + "axis": { + "type": "enum", + "values": [ + "x", + "y", + "z" + ] + } + } + }, + "minecraft:sticky_piston": { + "defaultstate": "minecraft:sticky_piston[extended=false,facing=north]", + "properties": { + "extended": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "facing": { + "type": "direction", + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ] + } + } + }, + "minecraft:stone": { + "defaultstate": "minecraft:stone", + "properties": {} + }, + "minecraft:stone_brick_slab": { + "defaultstate": "minecraft:stone_brick_slab[type=bottom,waterlogged=false]", + "properties": { + "type": { + "type": "enum", + "values": [ + "top", + "bottom", + "double" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:stone_brick_stairs": { + "defaultstate": "minecraft:stone_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "shape": { + "type": "enum", + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:stone_brick_wall": { + "defaultstate": "minecraft:stone_brick_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]", + "properties": { + "east": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "north": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "south": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + }, + "up": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "enum", + "values": [ + "none", + "low", + "tall" + ] + } + } + }, + "minecraft:stone_bricks": { + "defaultstate": "minecraft:stone_bricks", + "properties": {} + }, + "minecraft:stone_button": { + "defaultstate": "minecraft:stone_button[face=wall,facing=north,powered=false]", + "properties": { + "face": { + "type": "enum", + "values": [ + "floor", + "wall", + "ceiling" + ] + }, + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:stone_pressure_plate": { + "defaultstate": "minecraft:stone_pressure_plate[powered=false]", + "properties": { + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:stone_slab": { + "defaultstate": "minecraft:stone_slab[type=bottom,waterlogged=false]", + "properties": { + "type": { + "type": "enum", + "values": [ + "top", + "bottom", + "double" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:stone_stairs": { + "defaultstate": "minecraft:stone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "shape": { + "type": "enum", + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:stonecutter": { + "defaultstate": "minecraft:stonecutter[facing=north]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:stripped_acacia_log": { + "defaultstate": "minecraft:stripped_acacia_log[axis=y]", + "properties": { + "axis": { + "type": "enum", + "values": [ + "x", + "y", + "z" + ] + } + } + }, + "minecraft:stripped_acacia_wood": { + "defaultstate": "minecraft:stripped_acacia_wood[axis=y]", + "properties": { + "axis": { + "type": "enum", + "values": [ + "x", + "y", + "z" + ] + } + } + }, + "minecraft:stripped_birch_log": { + "defaultstate": "minecraft:stripped_birch_log[axis=y]", + "properties": { + "axis": { + "type": "enum", + "values": [ + "x", + "y", + "z" + ] + } + } + }, + "minecraft:stripped_birch_wood": { + "defaultstate": "minecraft:stripped_birch_wood[axis=y]", + "properties": { + "axis": { + "type": "enum", + "values": [ + "x", + "y", + "z" + ] + } + } + }, + "minecraft:stripped_crimson_hyphae": { + "defaultstate": "minecraft:stripped_crimson_hyphae[axis=y]", + "properties": { + "axis": { + "type": "enum", + "values": [ + "x", + "y", + "z" + ] + } + } + }, + "minecraft:stripped_crimson_stem": { + "defaultstate": "minecraft:stripped_crimson_stem[axis=y]", + "properties": { + "axis": { + "type": "enum", + "values": [ + "x", + "y", + "z" + ] + } + } + }, + "minecraft:stripped_dark_oak_log": { + "defaultstate": "minecraft:stripped_dark_oak_log[axis=y]", + "properties": { + "axis": { + "type": "enum", + "values": [ + "x", + "y", + "z" + ] + } + } + }, + "minecraft:stripped_dark_oak_wood": { + "defaultstate": "minecraft:stripped_dark_oak_wood[axis=y]", + "properties": { + "axis": { + "type": "enum", + "values": [ + "x", + "y", + "z" + ] + } + } + }, + "minecraft:stripped_jungle_log": { + "defaultstate": "minecraft:stripped_jungle_log[axis=y]", + "properties": { + "axis": { + "type": "enum", + "values": [ + "x", + "y", + "z" + ] + } + } + }, + "minecraft:stripped_jungle_wood": { + "defaultstate": "minecraft:stripped_jungle_wood[axis=y]", + "properties": { + "axis": { + "type": "enum", + "values": [ + "x", + "y", + "z" + ] + } + } + }, + "minecraft:stripped_oak_log": { + "defaultstate": "minecraft:stripped_oak_log[axis=y]", + "properties": { + "axis": { + "type": "enum", + "values": [ + "x", + "y", + "z" + ] + } + } + }, + "minecraft:stripped_oak_wood": { + "defaultstate": "minecraft:stripped_oak_wood[axis=y]", + "properties": { + "axis": { + "type": "enum", + "values": [ + "x", + "y", + "z" + ] + } + } + }, + "minecraft:stripped_spruce_log": { + "defaultstate": "minecraft:stripped_spruce_log[axis=y]", + "properties": { + "axis": { + "type": "enum", + "values": [ + "x", + "y", + "z" + ] + } + } + }, + "minecraft:stripped_spruce_wood": { + "defaultstate": "minecraft:stripped_spruce_wood[axis=y]", + "properties": { + "axis": { + "type": "enum", + "values": [ + "x", + "y", + "z" + ] + } + } + }, + "minecraft:stripped_warped_hyphae": { + "defaultstate": "minecraft:stripped_warped_hyphae[axis=y]", + "properties": { + "axis": { + "type": "enum", + "values": [ + "x", + "y", + "z" + ] + } + } + }, + "minecraft:stripped_warped_stem": { + "defaultstate": "minecraft:stripped_warped_stem[axis=y]", + "properties": { + "axis": { + "type": "enum", + "values": [ + "x", + "y", + "z" + ] + } + } + }, + "minecraft:structure_block": { + "defaultstate": "minecraft:structure_block[mode=load]", + "properties": { + "mode": { + "type": "enum", + "values": [ + "save", + "load", + "corner", + "data" + ] + } + } + }, + "minecraft:structure_void": { + "defaultstate": "minecraft:structure_void", + "properties": {} + }, + "minecraft:sugar_cane": { + "defaultstate": "minecraft:sugar_cane[age=0]", + "properties": { + "age": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ] + } + } + }, + "minecraft:sunflower": { + "defaultstate": "minecraft:sunflower[half=lower]", + "properties": { + "half": { + "type": "enum", + "values": [ + "upper", + "lower" + ] + } + } + }, + "minecraft:sweet_berry_bush": { + "defaultstate": "minecraft:sweet_berry_bush[age=0]", + "properties": { + "age": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3" + ] + } + } + }, + "minecraft:tall_grass": { + "defaultstate": "minecraft:tall_grass[half=lower]", + "properties": { + "half": { + "type": "enum", + "values": [ + "upper", + "lower" + ] + } + } + }, + "minecraft:tall_seagrass": { + "defaultstate": "minecraft:tall_seagrass[half=lower]", + "properties": { + "half": { + "type": "enum", + "values": [ + "upper", + "lower" + ] + } + } + }, + "minecraft:target": { + "defaultstate": "minecraft:target[power=0]", + "properties": { + "power": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ] + } + } + }, + "minecraft:terracotta": { + "defaultstate": "minecraft:terracotta", + "properties": {} + }, + "minecraft:tinted_glass": { + "defaultstate": "minecraft:tinted_glass", + "properties": {} + }, + "minecraft:tnt": { + "defaultstate": "minecraft:tnt[unstable=false]", + "properties": { + "unstable": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:torch": { + "defaultstate": "minecraft:torch", + "properties": {} + }, + "minecraft:trapped_chest": { + "defaultstate": "minecraft:trapped_chest[facing=north,type=single,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "type": { + "type": "enum", + "values": [ + "single", + "left", + "right" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:tripwire": { + "defaultstate": "minecraft:tripwire[attached=false,disarmed=false,east=false,north=false,powered=false,south=false,west=false]", + "properties": { + "attached": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "disarmed": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "east": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "north": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "south": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:tripwire_hook": { + "defaultstate": "minecraft:tripwire_hook[attached=false,facing=north,powered=false]", + "properties": { + "attached": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:tube_coral": { + "defaultstate": "minecraft:tube_coral[waterlogged=true]", + "properties": { + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:tube_coral_block": { + "defaultstate": "minecraft:tube_coral_block", + "properties": {} + }, + "minecraft:tube_coral_fan": { + "defaultstate": "minecraft:tube_coral_fan[waterlogged=true]", + "properties": { + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:tube_coral_wall_fan": { + "defaultstate": "minecraft:tube_coral_wall_fan[facing=north,waterlogged=true]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:tuff": { + "defaultstate": "minecraft:tuff", + "properties": {} + }, + "minecraft:turtle_egg": { + "defaultstate": "minecraft:turtle_egg[eggs=1,hatch=0]", + "properties": { + "eggs": { + "type": "int", + "values": [ + "1", + "2", + "3", + "4" + ] + }, + "hatch": { + "type": "int", + "values": [ + "0", + "1", + "2" + ] + } + } + }, + "minecraft:twisting_vines": { + "defaultstate": "minecraft:twisting_vines[age=0]", + "properties": { + "age": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15", + "16", + "17", + "18", + "19", + "20", + "21", + "22", + "23", + "24", + "25" + ] + } + } + }, + "minecraft:twisting_vines_plant": { + "defaultstate": "minecraft:twisting_vines_plant", + "properties": {} + }, + "minecraft:vine": { + "defaultstate": "minecraft:vine[east=false,north=false,south=false,up=false,west=false]", + "properties": { + "east": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "north": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "south": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "up": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:void_air": { + "defaultstate": "minecraft:void_air", + "properties": {} + }, + "minecraft:wall_torch": { + "defaultstate": "minecraft:wall_torch[facing=north]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:warped_button": { + "defaultstate": "minecraft:warped_button[face=wall,facing=north,powered=false]", + "properties": { + "face": { + "type": "enum", + "values": [ + "floor", + "wall", + "ceiling" + ] + }, + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:warped_door": { + "defaultstate": "minecraft:warped_door[facing=north,half=lower,hinge=left,open=false,powered=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "upper", + "lower" + ] + }, + "hinge": { + "type": "enum", + "values": [ + "left", + "right" + ] + }, + "open": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:warped_fence": { + "defaultstate": "minecraft:warped_fence[east=false,north=false,south=false,waterlogged=false,west=false]", + "properties": { + "east": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "north": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "south": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:warped_fence_gate": { + "defaultstate": "minecraft:warped_fence_gate[facing=north,in_wall=false,open=false,powered=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "in_wall": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "open": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:warped_fungus": { + "defaultstate": "minecraft:warped_fungus", + "properties": {} + }, + "minecraft:warped_hyphae": { + "defaultstate": "minecraft:warped_hyphae[axis=y]", + "properties": { + "axis": { + "type": "enum", + "values": [ + "x", + "y", + "z" + ] + } + } + }, + "minecraft:warped_nylium": { + "defaultstate": "minecraft:warped_nylium", + "properties": {} + }, + "minecraft:warped_planks": { + "defaultstate": "minecraft:warped_planks", + "properties": {} + }, + "minecraft:warped_pressure_plate": { + "defaultstate": "minecraft:warped_pressure_plate[powered=false]", + "properties": { + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:warped_roots": { + "defaultstate": "minecraft:warped_roots", + "properties": {} + }, + "minecraft:warped_sign": { + "defaultstate": "minecraft:warped_sign[rotation=0,waterlogged=false]", + "properties": { + "rotation": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:warped_slab": { + "defaultstate": "minecraft:warped_slab[type=bottom,waterlogged=false]", + "properties": { + "type": { + "type": "enum", + "values": [ + "top", + "bottom", + "double" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:warped_stairs": { + "defaultstate": "minecraft:warped_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "shape": { + "type": "enum", + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:warped_stem": { + "defaultstate": "minecraft:warped_stem[axis=y]", + "properties": { + "axis": { + "type": "enum", + "values": [ + "x", + "y", + "z" + ] + } + } + }, + "minecraft:warped_trapdoor": { + "defaultstate": "minecraft:warped_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "open": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "powered": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:warped_wall_sign": { + "defaultstate": "minecraft:warped_wall_sign[facing=north,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:warped_wart_block": { + "defaultstate": "minecraft:warped_wart_block", + "properties": {} + }, + "minecraft:water": { + "defaultstate": "minecraft:water[level=0]", + "properties": { + "level": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ] + } + } + }, + "minecraft:water_cauldron": { + "defaultstate": "minecraft:water_cauldron[level=1]", + "properties": { + "level": { + "type": "int", + "values": [ + "1", + "2", + "3" + ] + } + } + }, + "minecraft:waxed_copper_block": { + "defaultstate": "minecraft:waxed_copper_block", + "properties": {} + }, + "minecraft:waxed_cut_copper": { + "defaultstate": "minecraft:waxed_cut_copper", + "properties": {} + }, + "minecraft:waxed_cut_copper_slab": { + "defaultstate": "minecraft:waxed_cut_copper_slab[type=bottom,waterlogged=false]", + "properties": { + "type": { + "type": "enum", + "values": [ + "top", + "bottom", + "double" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:waxed_cut_copper_stairs": { + "defaultstate": "minecraft:waxed_cut_copper_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "shape": { + "type": "enum", + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:waxed_exposed_copper": { + "defaultstate": "minecraft:waxed_exposed_copper", + "properties": {} + }, + "minecraft:waxed_exposed_cut_copper": { + "defaultstate": "minecraft:waxed_exposed_cut_copper", + "properties": {} + }, + "minecraft:waxed_exposed_cut_copper_slab": { + "defaultstate": "minecraft:waxed_exposed_cut_copper_slab[type=bottom,waterlogged=false]", + "properties": { + "type": { + "type": "enum", + "values": [ + "top", + "bottom", + "double" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:waxed_exposed_cut_copper_stairs": { + "defaultstate": "minecraft:waxed_exposed_cut_copper_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "shape": { + "type": "enum", + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:waxed_oxidized_copper": { + "defaultstate": "minecraft:waxed_oxidized_copper", + "properties": {} + }, + "minecraft:waxed_oxidized_cut_copper": { + "defaultstate": "minecraft:waxed_oxidized_cut_copper", + "properties": {} + }, + "minecraft:waxed_oxidized_cut_copper_slab": { + "defaultstate": "minecraft:waxed_oxidized_cut_copper_slab[type=bottom,waterlogged=false]", + "properties": { + "type": { + "type": "enum", + "values": [ + "top", + "bottom", + "double" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:waxed_oxidized_cut_copper_stairs": { + "defaultstate": "minecraft:waxed_oxidized_cut_copper_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "shape": { + "type": "enum", + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:waxed_weathered_copper": { + "defaultstate": "minecraft:waxed_weathered_copper", + "properties": {} + }, + "minecraft:waxed_weathered_cut_copper": { + "defaultstate": "minecraft:waxed_weathered_cut_copper", + "properties": {} + }, + "minecraft:waxed_weathered_cut_copper_slab": { + "defaultstate": "minecraft:waxed_weathered_cut_copper_slab[type=bottom,waterlogged=false]", + "properties": { + "type": { + "type": "enum", + "values": [ + "top", + "bottom", + "double" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:waxed_weathered_cut_copper_stairs": { + "defaultstate": "minecraft:waxed_weathered_cut_copper_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "shape": { + "type": "enum", + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:weathered_copper": { + "defaultstate": "minecraft:weathered_copper", + "properties": {} + }, + "minecraft:weathered_cut_copper": { + "defaultstate": "minecraft:weathered_cut_copper", + "properties": {} + }, + "minecraft:weathered_cut_copper_slab": { + "defaultstate": "minecraft:weathered_cut_copper_slab[type=bottom,waterlogged=false]", + "properties": { + "type": { + "type": "enum", + "values": [ + "top", + "bottom", + "double" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:weathered_cut_copper_stairs": { + "defaultstate": "minecraft:weathered_cut_copper_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "half": { + "type": "enum", + "values": [ + "top", + "bottom" + ] + }, + "shape": { + "type": "enum", + "values": [ + "straight", + "inner_left", + "inner_right", + "outer_left", + "outer_right" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:weeping_vines": { + "defaultstate": "minecraft:weeping_vines[age=0]", + "properties": { + "age": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15", + "16", + "17", + "18", + "19", + "20", + "21", + "22", + "23", + "24", + "25" + ] + } + } + }, + "minecraft:weeping_vines_plant": { + "defaultstate": "minecraft:weeping_vines_plant", + "properties": {} + }, + "minecraft:wet_sponge": { + "defaultstate": "minecraft:wet_sponge", + "properties": {} + }, + "minecraft:wheat": { + "defaultstate": "minecraft:wheat[age=0]", + "properties": { + "age": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7" + ] + } + } + }, + "minecraft:white_banner": { + "defaultstate": "minecraft:white_banner[rotation=0]", + "properties": { + "rotation": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ] + } + } + }, + "minecraft:white_bed": { + "defaultstate": "minecraft:white_bed[facing=north,occupied=false,part=foot]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "occupied": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "part": { + "type": "enum", + "values": [ + "head", + "foot" + ] + } + } + }, + "minecraft:white_candle": { + "defaultstate": "minecraft:white_candle[candles=1,lit=false,waterlogged=false]", + "properties": { + "candles": { + "type": "int", + "values": [ + "1", + "2", + "3", + "4" + ] + }, + "lit": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:white_candle_cake": { + "defaultstate": "minecraft:white_candle_cake[lit=false]", + "properties": { + "lit": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:white_carpet": { + "defaultstate": "minecraft:white_carpet", + "properties": {} + }, + "minecraft:white_concrete": { + "defaultstate": "minecraft:white_concrete", + "properties": {} + }, + "minecraft:white_concrete_powder": { + "defaultstate": "minecraft:white_concrete_powder", + "properties": {} + }, + "minecraft:white_glazed_terracotta": { + "defaultstate": "minecraft:white_glazed_terracotta[facing=north]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:white_shulker_box": { + "defaultstate": "minecraft:white_shulker_box[facing=up]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ] + } + } + }, + "minecraft:white_stained_glass": { + "defaultstate": "minecraft:white_stained_glass", + "properties": {} + }, + "minecraft:white_stained_glass_pane": { + "defaultstate": "minecraft:white_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]", + "properties": { + "east": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "north": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "south": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:white_terracotta": { + "defaultstate": "minecraft:white_terracotta", + "properties": {} + }, + "minecraft:white_tulip": { + "defaultstate": "minecraft:white_tulip", + "properties": {} + }, + "minecraft:white_wall_banner": { + "defaultstate": "minecraft:white_wall_banner[facing=north]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:white_wool": { + "defaultstate": "minecraft:white_wool", + "properties": {} + }, + "minecraft:wither_rose": { + "defaultstate": "minecraft:wither_rose", + "properties": {} + }, + "minecraft:wither_skeleton_skull": { + "defaultstate": "minecraft:wither_skeleton_skull[rotation=0]", + "properties": { + "rotation": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ] + } + } + }, + "minecraft:wither_skeleton_wall_skull": { + "defaultstate": "minecraft:wither_skeleton_wall_skull[facing=north]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:yellow_banner": { + "defaultstate": "minecraft:yellow_banner[rotation=0]", + "properties": { + "rotation": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ] + } + } + }, + "minecraft:yellow_bed": { + "defaultstate": "minecraft:yellow_bed[facing=north,occupied=false,part=foot]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + }, + "occupied": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "part": { + "type": "enum", + "values": [ + "head", + "foot" + ] + } + } + }, + "minecraft:yellow_candle": { + "defaultstate": "minecraft:yellow_candle[candles=1,lit=false,waterlogged=false]", + "properties": { + "candles": { + "type": "int", + "values": [ + "1", + "2", + "3", + "4" + ] + }, + "lit": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:yellow_candle_cake": { + "defaultstate": "minecraft:yellow_candle_cake[lit=false]", + "properties": { + "lit": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:yellow_carpet": { + "defaultstate": "minecraft:yellow_carpet", + "properties": {} + }, + "minecraft:yellow_concrete": { + "defaultstate": "minecraft:yellow_concrete", + "properties": {} + }, + "minecraft:yellow_concrete_powder": { + "defaultstate": "minecraft:yellow_concrete_powder", + "properties": {} + }, + "minecraft:yellow_glazed_terracotta": { + "defaultstate": "minecraft:yellow_glazed_terracotta[facing=north]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:yellow_shulker_box": { + "defaultstate": "minecraft:yellow_shulker_box[facing=up]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "east", + "south", + "west", + "up", + "down" + ] + } + } + }, + "minecraft:yellow_stained_glass": { + "defaultstate": "minecraft:yellow_stained_glass", + "properties": {} + }, + "minecraft:yellow_stained_glass_pane": { + "defaultstate": "minecraft:yellow_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]", + "properties": { + "east": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "north": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "south": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "waterlogged": { + "type": "bool", + "values": [ + "true", + "false" + ] + }, + "west": { + "type": "bool", + "values": [ + "true", + "false" + ] + } + } + }, + "minecraft:yellow_terracotta": { + "defaultstate": "minecraft:yellow_terracotta", + "properties": {} + }, + "minecraft:yellow_wall_banner": { + "defaultstate": "minecraft:yellow_wall_banner[facing=north]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + }, + "minecraft:yellow_wool": { + "defaultstate": "minecraft:yellow_wool", + "properties": {} + }, + "minecraft:zombie_head": { + "defaultstate": "minecraft:zombie_head[rotation=0]", + "properties": { + "rotation": { + "type": "int", + "values": [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ] + } + } + }, + "minecraft:zombie_wall_head": { + "defaultstate": "minecraft:zombie_wall_head[facing=north]", + "properties": { + "facing": { + "type": "direction", + "values": [ + "north", + "south", + "west", + "east" + ] + } + } + } + }, + "blocktags": { + "minecraft:acacia_logs": [ + "minecraft:acacia_log", + "minecraft:acacia_wood", + "minecraft:stripped_acacia_log", + "minecraft:stripped_acacia_wood" + ], + "minecraft:anvil": [ + "minecraft:anvil", + "minecraft:chipped_anvil", + "minecraft:damaged_anvil" + ], + "minecraft:bamboo_plantable_on": [ + "minecraft:bamboo", + "minecraft:bamboo_sapling", + "minecraft:coarse_dirt", + "minecraft:dirt", + "minecraft:grass_block", + "minecraft:gravel", + "minecraft:moss_block", + "minecraft:mycelium", + "minecraft:podzol", + "minecraft:red_sand", + "minecraft:rooted_dirt", + "minecraft:sand" + ], + "minecraft:banners": [ + "minecraft:black_banner", + "minecraft:black_wall_banner", + "minecraft:blue_banner", + "minecraft:blue_wall_banner", + "minecraft:brown_banner", + "minecraft:brown_wall_banner", + "minecraft:cyan_banner", + "minecraft:cyan_wall_banner", + "minecraft:gray_banner", + "minecraft:gray_wall_banner", + "minecraft:green_banner", + "minecraft:green_wall_banner", + "minecraft:light_blue_banner", + "minecraft:light_blue_wall_banner", + "minecraft:light_gray_banner", + "minecraft:light_gray_wall_banner", + "minecraft:lime_banner", + "minecraft:lime_wall_banner", + "minecraft:magenta_banner", + "minecraft:magenta_wall_banner", + "minecraft:orange_banner", + "minecraft:orange_wall_banner", + "minecraft:pink_banner", + "minecraft:pink_wall_banner", + "minecraft:purple_banner", + "minecraft:purple_wall_banner", + "minecraft:red_banner", + "minecraft:red_wall_banner", + "minecraft:white_banner", + "minecraft:white_wall_banner", + "minecraft:yellow_banner", + "minecraft:yellow_wall_banner" + ], + "minecraft:base_stone_nether": [ + "minecraft:basalt", + "minecraft:blackstone", + "minecraft:netherrack" + ], + "minecraft:base_stone_overworld": [ + "minecraft:andesite", + "minecraft:deepslate", + "minecraft:diorite", + "minecraft:granite", + "minecraft:stone", + "minecraft:tuff" + ], + "minecraft:beacon_base_blocks": [ + "minecraft:diamond_block", + "minecraft:emerald_block", + "minecraft:gold_block", + "minecraft:iron_block", + "minecraft:netherite_block" + ], + "minecraft:beds": [ + "minecraft:black_bed", + "minecraft:blue_bed", + "minecraft:brown_bed", + "minecraft:cyan_bed", + "minecraft:gray_bed", + "minecraft:green_bed", + "minecraft:light_blue_bed", + "minecraft:light_gray_bed", + "minecraft:lime_bed", + "minecraft:magenta_bed", + "minecraft:orange_bed", + "minecraft:pink_bed", + "minecraft:purple_bed", + "minecraft:red_bed", + "minecraft:white_bed", + "minecraft:yellow_bed" + ], + "minecraft:bee_growables": [ + "minecraft:beetroots", + "minecraft:carrots", + "minecraft:cave_vines", + "minecraft:cave_vines_plant", + "minecraft:melon_stem", + "minecraft:potatoes", + "minecraft:pumpkin_stem", + "minecraft:sweet_berry_bush", + "minecraft:wheat" + ], + "minecraft:beehives": [ + "minecraft:bee_nest", + "minecraft:beehive" + ], + "minecraft:birch_logs": [ + "minecraft:birch_log", + "minecraft:birch_wood", + "minecraft:stripped_birch_log", + "minecraft:stripped_birch_wood" + ], + "minecraft:buttons": [ + "minecraft:acacia_button", + "minecraft:birch_button", + "minecraft:crimson_button", + "minecraft:dark_oak_button", + "minecraft:jungle_button", + "minecraft:oak_button", + "minecraft:polished_blackstone_button", + "minecraft:spruce_button", + "minecraft:stone_button", + "minecraft:warped_button" + ], + "minecraft:campfires": [ + "minecraft:campfire", + "minecraft:soul_campfire" + ], + "minecraft:candle_cakes": [ + "minecraft:black_candle_cake", + "minecraft:blue_candle_cake", + "minecraft:brown_candle_cake", + "minecraft:candle_cake", + "minecraft:cyan_candle_cake", + "minecraft:gray_candle_cake", + "minecraft:green_candle_cake", + "minecraft:light_blue_candle_cake", + "minecraft:light_gray_candle_cake", + "minecraft:lime_candle_cake", + "minecraft:magenta_candle_cake", + "minecraft:orange_candle_cake", + "minecraft:pink_candle_cake", + "minecraft:purple_candle_cake", + "minecraft:red_candle_cake", + "minecraft:white_candle_cake", + "minecraft:yellow_candle_cake" + ], + "minecraft:candles": [ + "minecraft:black_candle", + "minecraft:blue_candle", + "minecraft:brown_candle", + "minecraft:candle", + "minecraft:cyan_candle", + "minecraft:gray_candle", + "minecraft:green_candle", + "minecraft:light_blue_candle", + "minecraft:light_gray_candle", + "minecraft:lime_candle", + "minecraft:magenta_candle", + "minecraft:orange_candle", + "minecraft:pink_candle", + "minecraft:purple_candle", + "minecraft:red_candle", + "minecraft:white_candle", + "minecraft:yellow_candle" + ], + "minecraft:carpets": [ + "minecraft:black_carpet", + "minecraft:blue_carpet", + "minecraft:brown_carpet", + "minecraft:cyan_carpet", + "minecraft:gray_carpet", + "minecraft:green_carpet", + "minecraft:light_blue_carpet", + "minecraft:light_gray_carpet", + "minecraft:lime_carpet", + "minecraft:magenta_carpet", + "minecraft:orange_carpet", + "minecraft:pink_carpet", + "minecraft:purple_carpet", + "minecraft:red_carpet", + "minecraft:white_carpet", + "minecraft:yellow_carpet" + ], + "minecraft:cauldrons": [ + "minecraft:cauldron", + "minecraft:lava_cauldron", + "minecraft:powder_snow_cauldron", + "minecraft:water_cauldron" + ], + "minecraft:cave_vines": [ + "minecraft:cave_vines", + "minecraft:cave_vines_plant" + ], + "minecraft:climbable": [ + "minecraft:cave_vines", + "minecraft:cave_vines_plant", + "minecraft:ladder", + "minecraft:scaffolding", + "minecraft:twisting_vines", + "minecraft:twisting_vines_plant", + "minecraft:vine", + "minecraft:weeping_vines", + "minecraft:weeping_vines_plant" + ], + "minecraft:coal_ores": [ + "minecraft:coal_ore", + "minecraft:deepslate_coal_ore" + ], + "minecraft:copper_ores": [ + "minecraft:copper_ore", + "minecraft:deepslate_copper_ore" + ], + "minecraft:coral_blocks": [ + "minecraft:brain_coral_block", + "minecraft:bubble_coral_block", + "minecraft:fire_coral_block", + "minecraft:horn_coral_block", + "minecraft:tube_coral_block" + ], + "minecraft:coral_plants": [ + "minecraft:brain_coral", + "minecraft:bubble_coral", + "minecraft:fire_coral", + "minecraft:horn_coral", + "minecraft:tube_coral" + ], + "minecraft:corals": [ + "minecraft:brain_coral", + "minecraft:brain_coral_fan", + "minecraft:bubble_coral", + "minecraft:bubble_coral_fan", + "minecraft:fire_coral", + "minecraft:fire_coral_fan", + "minecraft:horn_coral", + "minecraft:horn_coral_fan", + "minecraft:tube_coral", + "minecraft:tube_coral_fan" + ], + "minecraft:crimson_stems": [ + "minecraft:crimson_hyphae", + "minecraft:crimson_stem", + "minecraft:stripped_crimson_hyphae", + "minecraft:stripped_crimson_stem" + ], + "minecraft:crops": [ + "minecraft:beetroots", + "minecraft:carrots", + "minecraft:melon_stem", + "minecraft:potatoes", + "minecraft:pumpkin_stem", + "minecraft:wheat" + ], + "minecraft:crystal_sound_blocks": [ + "minecraft:amethyst_block", + "minecraft:budding_amethyst" + ], + "minecraft:dark_oak_logs": [ + "minecraft:dark_oak_log", + "minecraft:dark_oak_wood", + "minecraft:stripped_dark_oak_log", + "minecraft:stripped_dark_oak_wood" + ], + "minecraft:deepslate_ore_replaceables": [ + "minecraft:deepslate", + "minecraft:tuff" + ], + "minecraft:diamond_ores": [ + "minecraft:deepslate_diamond_ore", + "minecraft:diamond_ore" + ], + "minecraft:dirt": [ + "minecraft:coarse_dirt", + "minecraft:dirt", + "minecraft:grass_block", + "minecraft:moss_block", + "minecraft:mycelium", + "minecraft:podzol", + "minecraft:rooted_dirt" + ], + "minecraft:doors": [ + "minecraft:acacia_door", + "minecraft:birch_door", + "minecraft:crimson_door", + "minecraft:dark_oak_door", + "minecraft:iron_door", + "minecraft:jungle_door", + "minecraft:oak_door", + "minecraft:spruce_door", + "minecraft:warped_door" + ], + "minecraft:dragon_immune": [ + "minecraft:barrier", + "minecraft:bedrock", + "minecraft:chain_command_block", + "minecraft:command_block", + "minecraft:crying_obsidian", + "minecraft:end_gateway", + "minecraft:end_portal", + "minecraft:end_portal_frame", + "minecraft:end_stone", + "minecraft:iron_bars", + "minecraft:jigsaw", + "minecraft:moving_piston", + "minecraft:obsidian", + "minecraft:repeating_command_block", + "minecraft:respawn_anchor", + "minecraft:structure_block" + ], + "minecraft:dripstone_replaceable_blocks": [ + "minecraft:andesite", + "minecraft:deepslate", + "minecraft:diorite", + "minecraft:dirt", + "minecraft:granite", + "minecraft:stone", + "minecraft:tuff" + ], + "minecraft:emerald_ores": [ + "minecraft:deepslate_emerald_ore", + "minecraft:emerald_ore" + ], + "minecraft:enderman_holdable": [ + "minecraft:allium", + "minecraft:azure_bluet", + "minecraft:blue_orchid", + "minecraft:brown_mushroom", + "minecraft:cactus", + "minecraft:carved_pumpkin", + "minecraft:clay", + "minecraft:coarse_dirt", + "minecraft:cornflower", + "minecraft:crimson_fungus", + "minecraft:crimson_nylium", + "minecraft:crimson_roots", + "minecraft:dandelion", + "minecraft:dirt", + "minecraft:grass_block", + "minecraft:gravel", + "minecraft:lily_of_the_valley", + "minecraft:melon", + "minecraft:moss_block", + "minecraft:mycelium", + "minecraft:orange_tulip", + "minecraft:oxeye_daisy", + "minecraft:pink_tulip", + "minecraft:podzol", + "minecraft:poppy", + "minecraft:pumpkin", + "minecraft:red_mushroom", + "minecraft:red_sand", + "minecraft:red_tulip", + "minecraft:rooted_dirt", + "minecraft:sand", + "minecraft:tnt", + "minecraft:warped_fungus", + "minecraft:warped_nylium", + "minecraft:warped_roots", + "minecraft:white_tulip", + "minecraft:wither_rose" + ], + "minecraft:features_cannot_replace": [ + "minecraft:bedrock", + "minecraft:chest", + "minecraft:end_portal_frame", + "minecraft:spawner" + ], + "minecraft:fence_gates": [ + "minecraft:acacia_fence_gate", + "minecraft:birch_fence_gate", + "minecraft:crimson_fence_gate", + "minecraft:dark_oak_fence_gate", + "minecraft:jungle_fence_gate", + "minecraft:oak_fence_gate", + "minecraft:spruce_fence_gate", + "minecraft:warped_fence_gate" + ], + "minecraft:fences": [ + "minecraft:acacia_fence", + "minecraft:birch_fence", + "minecraft:crimson_fence", + "minecraft:dark_oak_fence", + "minecraft:jungle_fence", + "minecraft:nether_brick_fence", + "minecraft:oak_fence", + "minecraft:spruce_fence", + "minecraft:warped_fence" + ], + "minecraft:fire": [ + "minecraft:fire", + "minecraft:soul_fire" + ], + "minecraft:flower_pots": [ + "minecraft:flower_pot", + "minecraft:potted_acacia_sapling", + "minecraft:potted_allium", + "minecraft:potted_azalea_bush", + "minecraft:potted_azure_bluet", + "minecraft:potted_bamboo", + "minecraft:potted_birch_sapling", + "minecraft:potted_blue_orchid", + "minecraft:potted_brown_mushroom", + "minecraft:potted_cactus", + "minecraft:potted_cornflower", + "minecraft:potted_crimson_fungus", + "minecraft:potted_crimson_roots", + "minecraft:potted_dandelion", + "minecraft:potted_dark_oak_sapling", + "minecraft:potted_dead_bush", + "minecraft:potted_fern", + "minecraft:potted_flowering_azalea_bush", + "minecraft:potted_jungle_sapling", + "minecraft:potted_lily_of_the_valley", + "minecraft:potted_oak_sapling", + "minecraft:potted_orange_tulip", + "minecraft:potted_oxeye_daisy", + "minecraft:potted_pink_tulip", + "minecraft:potted_poppy", + "minecraft:potted_red_mushroom", + "minecraft:potted_red_tulip", + "minecraft:potted_spruce_sapling", + "minecraft:potted_warped_fungus", + "minecraft:potted_warped_roots", + "minecraft:potted_white_tulip", + "minecraft:potted_wither_rose" + ], + "minecraft:flowers": [ + "minecraft:allium", + "minecraft:azure_bluet", + "minecraft:blue_orchid", + "minecraft:cornflower", + "minecraft:dandelion", + "minecraft:flowering_azalea", + "minecraft:flowering_azalea_leaves", + "minecraft:lilac", + "minecraft:lily_of_the_valley", + "minecraft:orange_tulip", + "minecraft:oxeye_daisy", + "minecraft:peony", + "minecraft:pink_tulip", + "minecraft:poppy", + "minecraft:red_tulip", + "minecraft:rose_bush", + "minecraft:sunflower", + "minecraft:white_tulip", + "minecraft:wither_rose" + ], + "minecraft:geode_invalid_blocks": [ + "minecraft:bedrock", + "minecraft:blue_ice", + "minecraft:ice", + "minecraft:lava", + "minecraft:packed_ice", + "minecraft:water" + ], + "minecraft:gold_ores": [ + "minecraft:deepslate_gold_ore", + "minecraft:gold_ore", + "minecraft:nether_gold_ore" + ], + "minecraft:guarded_by_piglins": [ + "minecraft:barrel", + "minecraft:black_shulker_box", + "minecraft:blue_shulker_box", + "minecraft:brown_shulker_box", + "minecraft:chest", + "minecraft:cyan_shulker_box", + "minecraft:deepslate_gold_ore", + "minecraft:ender_chest", + "minecraft:gilded_blackstone", + "minecraft:gold_block", + "minecraft:gold_ore", + "minecraft:gray_shulker_box", + "minecraft:green_shulker_box", + "minecraft:light_blue_shulker_box", + "minecraft:light_gray_shulker_box", + "minecraft:lime_shulker_box", + "minecraft:magenta_shulker_box", + "minecraft:nether_gold_ore", + "minecraft:orange_shulker_box", + "minecraft:pink_shulker_box", + "minecraft:purple_shulker_box", + "minecraft:raw_gold_block", + "minecraft:red_shulker_box", + "minecraft:shulker_box", + "minecraft:trapped_chest", + "minecraft:white_shulker_box", + "minecraft:yellow_shulker_box" + ], + "minecraft:hoglin_repellents": [ + "minecraft:nether_portal", + "minecraft:potted_warped_fungus", + "minecraft:respawn_anchor", + "minecraft:warped_fungus" + ], + "minecraft:ice": [ + "minecraft:blue_ice", + "minecraft:frosted_ice", + "minecraft:ice", + "minecraft:packed_ice" + ], + "minecraft:impermeable": [ + "minecraft:black_stained_glass", + "minecraft:blue_stained_glass", + "minecraft:brown_stained_glass", + "minecraft:cyan_stained_glass", + "minecraft:glass", + "minecraft:gray_stained_glass", + "minecraft:green_stained_glass", + "minecraft:light_blue_stained_glass", + "minecraft:light_gray_stained_glass", + "minecraft:lime_stained_glass", + "minecraft:magenta_stained_glass", + "minecraft:orange_stained_glass", + "minecraft:pink_stained_glass", + "minecraft:purple_stained_glass", + "minecraft:red_stained_glass", + "minecraft:tinted_glass", + "minecraft:white_stained_glass", + "minecraft:yellow_stained_glass" + ], + "minecraft:infiniburn_end": [ + "minecraft:bedrock", + "minecraft:magma_block", + "minecraft:netherrack" + ], + "minecraft:infiniburn_nether": [ + "minecraft:magma_block", + "minecraft:netherrack" + ], + "minecraft:infiniburn_overworld": [ + "minecraft:magma_block", + "minecraft:netherrack" + ], + "minecraft:inside_step_sound_blocks": [ + "minecraft:powder_snow", + "minecraft:snow" + ], + "minecraft:iron_ores": [ + "minecraft:deepslate_iron_ore", + "minecraft:iron_ore" + ], + "minecraft:jungle_logs": [ + "minecraft:jungle_log", + "minecraft:jungle_wood", + "minecraft:stripped_jungle_log", + "minecraft:stripped_jungle_wood" + ], + "minecraft:lapis_ores": [ + "minecraft:deepslate_lapis_ore", + "minecraft:lapis_ore" + ], + "minecraft:lava_pool_stone_replaceables": [ + "minecraft:acacia_leaves", + "minecraft:azalea_leaves", + "minecraft:bedrock", + "minecraft:birch_leaves", + "minecraft:chest", + "minecraft:dark_oak_leaves", + "minecraft:end_portal_frame", + "minecraft:flowering_azalea_leaves", + "minecraft:jungle_leaves", + "minecraft:oak_leaves", + "minecraft:spawner", + "minecraft:spruce_leaves" + ], + "minecraft:leaves": [ + "minecraft:acacia_leaves", + "minecraft:azalea_leaves", + "minecraft:birch_leaves", + "minecraft:dark_oak_leaves", + "minecraft:flowering_azalea_leaves", + "minecraft:jungle_leaves", + "minecraft:oak_leaves", + "minecraft:spruce_leaves" + ], + "minecraft:logs": [ + "minecraft:acacia_log", + "minecraft:acacia_wood", + "minecraft:birch_log", + "minecraft:birch_wood", + "minecraft:crimson_hyphae", + "minecraft:crimson_stem", + "minecraft:dark_oak_log", + "minecraft:dark_oak_wood", + "minecraft:jungle_log", + "minecraft:jungle_wood", + "minecraft:oak_log", + "minecraft:oak_wood", + "minecraft:spruce_log", + "minecraft:spruce_wood", + "minecraft:stripped_acacia_log", + "minecraft:stripped_acacia_wood", + "minecraft:stripped_birch_log", + "minecraft:stripped_birch_wood", + "minecraft:stripped_crimson_hyphae", + "minecraft:stripped_crimson_stem", + "minecraft:stripped_dark_oak_log", + "minecraft:stripped_dark_oak_wood", + "minecraft:stripped_jungle_log", + "minecraft:stripped_jungle_wood", + "minecraft:stripped_oak_log", + "minecraft:stripped_oak_wood", + "minecraft:stripped_spruce_log", + "minecraft:stripped_spruce_wood", + "minecraft:stripped_warped_hyphae", + "minecraft:stripped_warped_stem", + "minecraft:warped_hyphae", + "minecraft:warped_stem" + ], + "minecraft:logs_that_burn": [ + "minecraft:acacia_log", + "minecraft:acacia_wood", + "minecraft:birch_log", + "minecraft:birch_wood", + "minecraft:dark_oak_log", + "minecraft:dark_oak_wood", + "minecraft:jungle_log", + "minecraft:jungle_wood", + "minecraft:oak_log", + "minecraft:oak_wood", + "minecraft:spruce_log", + "minecraft:spruce_wood", + "minecraft:stripped_acacia_log", + "minecraft:stripped_acacia_wood", + "minecraft:stripped_birch_log", + "minecraft:stripped_birch_wood", + "minecraft:stripped_dark_oak_log", + "minecraft:stripped_dark_oak_wood", + "minecraft:stripped_jungle_log", + "minecraft:stripped_jungle_wood", + "minecraft:stripped_oak_log", + "minecraft:stripped_oak_wood", + "minecraft:stripped_spruce_log", + "minecraft:stripped_spruce_wood" + ], + "minecraft:lush_ground_replaceable": [ + "minecraft:andesite", + "minecraft:cave_vines", + "minecraft:cave_vines_plant", + "minecraft:clay", + "minecraft:coarse_dirt", + "minecraft:deepslate", + "minecraft:diorite", + "minecraft:dirt", + "minecraft:granite", + "minecraft:grass_block", + "minecraft:gravel", + "minecraft:moss_block", + "minecraft:mycelium", + "minecraft:podzol", + "minecraft:rooted_dirt", + "minecraft:sand", + "minecraft:stone", + "minecraft:tuff" + ], + "minecraft:mineable/axe": [ + "minecraft:acacia_button", + "minecraft:acacia_door", + "minecraft:acacia_fence", + "minecraft:acacia_fence_gate", + "minecraft:acacia_log", + "minecraft:acacia_planks", + "minecraft:acacia_pressure_plate", + "minecraft:acacia_sapling", + "minecraft:acacia_sign", + "minecraft:acacia_slab", + "minecraft:acacia_stairs", + "minecraft:acacia_trapdoor", + "minecraft:acacia_wall_sign", + "minecraft:acacia_wood", + "minecraft:allium", + "minecraft:attached_melon_stem", + "minecraft:attached_pumpkin_stem", + "minecraft:azalea", + "minecraft:azure_bluet", + "minecraft:bamboo", + "minecraft:barrel", + "minecraft:bee_nest", + "minecraft:beehive", + "minecraft:beetroots", + "minecraft:big_dripleaf", + "minecraft:big_dripleaf_stem", + "minecraft:birch_button", + "minecraft:birch_door", + "minecraft:birch_fence", + "minecraft:birch_fence_gate", + "minecraft:birch_log", + "minecraft:birch_planks", + "minecraft:birch_pressure_plate", + "minecraft:birch_sapling", + "minecraft:birch_sign", + "minecraft:birch_slab", + "minecraft:birch_stairs", + "minecraft:birch_trapdoor", + "minecraft:birch_wall_sign", + "minecraft:birch_wood", + "minecraft:black_banner", + "minecraft:black_wall_banner", + "minecraft:blue_banner", + "minecraft:blue_orchid", + "minecraft:blue_wall_banner", + "minecraft:bookshelf", + "minecraft:brown_banner", + "minecraft:brown_mushroom", + "minecraft:brown_mushroom_block", + "minecraft:brown_wall_banner", + "minecraft:campfire", + "minecraft:carrots", + "minecraft:cartography_table", + "minecraft:carved_pumpkin", + "minecraft:cave_vines", + "minecraft:cave_vines_plant", + "minecraft:chest", + "minecraft:chorus_flower", + "minecraft:chorus_plant", + "minecraft:cocoa", + "minecraft:composter", + "minecraft:cornflower", + "minecraft:crafting_table", + "minecraft:crimson_button", + "minecraft:crimson_door", + "minecraft:crimson_fence", + "minecraft:crimson_fence_gate", + "minecraft:crimson_fungus", + "minecraft:crimson_hyphae", + "minecraft:crimson_planks", + "minecraft:crimson_pressure_plate", + "minecraft:crimson_sign", + "minecraft:crimson_slab", + "minecraft:crimson_stairs", + "minecraft:crimson_stem", + "minecraft:crimson_trapdoor", + "minecraft:crimson_wall_sign", + "minecraft:cyan_banner", + "minecraft:cyan_wall_banner", + "minecraft:dandelion", + "minecraft:dark_oak_button", + "minecraft:dark_oak_door", + "minecraft:dark_oak_fence", + "minecraft:dark_oak_fence_gate", + "minecraft:dark_oak_log", + "minecraft:dark_oak_planks", + "minecraft:dark_oak_pressure_plate", + "minecraft:dark_oak_sapling", + "minecraft:dark_oak_sign", + "minecraft:dark_oak_slab", + "minecraft:dark_oak_stairs", + "minecraft:dark_oak_trapdoor", + "minecraft:dark_oak_wall_sign", + "minecraft:dark_oak_wood", + "minecraft:daylight_detector", + "minecraft:dead_bush", + "minecraft:fern", + "minecraft:fletching_table", + "minecraft:flowering_azalea", + "minecraft:flowering_azalea_leaves", + "minecraft:glow_lichen", + "minecraft:grass", + "minecraft:gray_banner", + "minecraft:gray_wall_banner", + "minecraft:green_banner", + "minecraft:green_wall_banner", + "minecraft:hanging_roots", + "minecraft:jack_o_lantern", + "minecraft:jukebox", + "minecraft:jungle_button", + "minecraft:jungle_door", + "minecraft:jungle_fence", + "minecraft:jungle_fence_gate", + "minecraft:jungle_log", + "minecraft:jungle_planks", + "minecraft:jungle_pressure_plate", + "minecraft:jungle_sapling", + "minecraft:jungle_sign", + "minecraft:jungle_slab", + "minecraft:jungle_stairs", + "minecraft:jungle_trapdoor", + "minecraft:jungle_wall_sign", + "minecraft:jungle_wood", + "minecraft:ladder", + "minecraft:large_fern", + "minecraft:lectern", + "minecraft:light_blue_banner", + "minecraft:light_blue_wall_banner", + "minecraft:light_gray_banner", + "minecraft:light_gray_wall_banner", + "minecraft:lilac", + "minecraft:lily_of_the_valley", + "minecraft:lily_pad", + "minecraft:lime_banner", + "minecraft:lime_wall_banner", + "minecraft:loom", + "minecraft:magenta_banner", + "minecraft:magenta_wall_banner", + "minecraft:melon", + "minecraft:melon_stem", + "minecraft:mushroom_stem", + "minecraft:nether_wart", + "minecraft:note_block", + "minecraft:oak_button", + "minecraft:oak_door", + "minecraft:oak_fence", + "minecraft:oak_fence_gate", + "minecraft:oak_log", + "minecraft:oak_planks", + "minecraft:oak_pressure_plate", + "minecraft:oak_sapling", + "minecraft:oak_sign", + "minecraft:oak_slab", + "minecraft:oak_stairs", + "minecraft:oak_trapdoor", + "minecraft:oak_wall_sign", + "minecraft:oak_wood", + "minecraft:orange_banner", + "minecraft:orange_tulip", + "minecraft:orange_wall_banner", + "minecraft:oxeye_daisy", + "minecraft:peony", + "minecraft:pink_banner", + "minecraft:pink_tulip", + "minecraft:pink_wall_banner", + "minecraft:poppy", + "minecraft:potatoes", + "minecraft:pumpkin", + "minecraft:pumpkin_stem", + "minecraft:purple_banner", + "minecraft:purple_wall_banner", + "minecraft:red_banner", + "minecraft:red_mushroom", + "minecraft:red_mushroom_block", + "minecraft:red_tulip", + "minecraft:red_wall_banner", + "minecraft:rose_bush", + "minecraft:scaffolding", + "minecraft:small_dripleaf", + "minecraft:smithing_table", + "minecraft:soul_campfire", + "minecraft:spore_blossom", + "minecraft:spruce_button", + "minecraft:spruce_door", + "minecraft:spruce_fence", + "minecraft:spruce_fence_gate", + "minecraft:spruce_log", + "minecraft:spruce_planks", + "minecraft:spruce_pressure_plate", + "minecraft:spruce_sapling", + "minecraft:spruce_sign", + "minecraft:spruce_slab", + "minecraft:spruce_stairs", + "minecraft:spruce_trapdoor", + "minecraft:spruce_wall_sign", + "minecraft:spruce_wood", + "minecraft:stripped_acacia_log", + "minecraft:stripped_acacia_wood", + "minecraft:stripped_birch_log", + "minecraft:stripped_birch_wood", + "minecraft:stripped_crimson_hyphae", + "minecraft:stripped_crimson_stem", + "minecraft:stripped_dark_oak_log", + "minecraft:stripped_dark_oak_wood", + "minecraft:stripped_jungle_log", + "minecraft:stripped_jungle_wood", + "minecraft:stripped_oak_log", + "minecraft:stripped_oak_wood", + "minecraft:stripped_spruce_log", + "minecraft:stripped_spruce_wood", + "minecraft:stripped_warped_hyphae", + "minecraft:stripped_warped_stem", + "minecraft:sugar_cane", + "minecraft:sunflower", + "minecraft:sweet_berry_bush", + "minecraft:tall_grass", + "minecraft:trapped_chest", + "minecraft:twisting_vines", + "minecraft:twisting_vines_plant", + "minecraft:vine", + "minecraft:warped_button", + "minecraft:warped_door", + "minecraft:warped_fence", + "minecraft:warped_fence_gate", + "minecraft:warped_fungus", + "minecraft:warped_hyphae", + "minecraft:warped_planks", + "minecraft:warped_pressure_plate", + "minecraft:warped_sign", + "minecraft:warped_slab", + "minecraft:warped_stairs", + "minecraft:warped_stem", + "minecraft:warped_trapdoor", + "minecraft:warped_wall_sign", + "minecraft:weeping_vines", + "minecraft:weeping_vines_plant", + "minecraft:wheat", + "minecraft:white_banner", + "minecraft:white_tulip", + "minecraft:white_wall_banner", + "minecraft:wither_rose", + "minecraft:yellow_banner", + "minecraft:yellow_wall_banner" + ], + "minecraft:mineable/hoe": [ + "minecraft:acacia_leaves", + "minecraft:azalea_leaves", + "minecraft:birch_leaves", + "minecraft:dark_oak_leaves", + "minecraft:dried_kelp_block", + "minecraft:flowering_azalea_leaves", + "minecraft:hay_block", + "minecraft:jungle_leaves", + "minecraft:moss_block", + "minecraft:moss_carpet", + "minecraft:nether_wart_block", + "minecraft:oak_leaves", + "minecraft:sculk_sensor", + "minecraft:shroomlight", + "minecraft:sponge", + "minecraft:spruce_leaves", + "minecraft:target", + "minecraft:warped_wart_block", + "minecraft:wet_sponge" + ], + "minecraft:mineable/pickaxe": [ + "minecraft:activator_rail", + "minecraft:amethyst_block", + "minecraft:amethyst_cluster", + "minecraft:ancient_debris", + "minecraft:andesite", + "minecraft:andesite_slab", + "minecraft:andesite_stairs", + "minecraft:andesite_wall", + "minecraft:anvil", + "minecraft:basalt", + "minecraft:bell", + "minecraft:black_concrete", + "minecraft:black_glazed_terracotta", + "minecraft:black_shulker_box", + "minecraft:black_terracotta", + "minecraft:blackstone", + "minecraft:blackstone_slab", + "minecraft:blackstone_stairs", + "minecraft:blackstone_wall", + "minecraft:blast_furnace", + "minecraft:blue_concrete", + "minecraft:blue_glazed_terracotta", + "minecraft:blue_ice", + "minecraft:blue_shulker_box", + "minecraft:blue_terracotta", + "minecraft:bone_block", + "minecraft:brain_coral_block", + "minecraft:brewing_stand", + "minecraft:brick_slab", + "minecraft:brick_stairs", + "minecraft:brick_wall", + "minecraft:bricks", + "minecraft:brown_concrete", + "minecraft:brown_glazed_terracotta", + "minecraft:brown_shulker_box", + "minecraft:brown_terracotta", + "minecraft:bubble_coral_block", + "minecraft:budding_amethyst", + "minecraft:calcite", + "minecraft:cauldron", + "minecraft:chain", + "minecraft:chipped_anvil", + "minecraft:chiseled_deepslate", + "minecraft:chiseled_nether_bricks", + "minecraft:chiseled_polished_blackstone", + "minecraft:chiseled_quartz_block", + "minecraft:chiseled_red_sandstone", + "minecraft:chiseled_sandstone", + "minecraft:chiseled_stone_bricks", + "minecraft:coal_block", + "minecraft:coal_ore", + "minecraft:cobbled_deepslate", + "minecraft:cobbled_deepslate_slab", + "minecraft:cobbled_deepslate_stairs", + "minecraft:cobbled_deepslate_wall", + "minecraft:cobblestone", + "minecraft:cobblestone_slab", + "minecraft:cobblestone_stairs", + "minecraft:cobblestone_wall", + "minecraft:copper_block", + "minecraft:copper_ore", + "minecraft:cracked_deepslate_bricks", + "minecraft:cracked_deepslate_tiles", + "minecraft:cracked_nether_bricks", + "minecraft:cracked_polished_blackstone_bricks", + "minecraft:cracked_stone_bricks", + "minecraft:crimson_nylium", + "minecraft:crying_obsidian", + "minecraft:cut_copper", + "minecraft:cut_copper_slab", + "minecraft:cut_copper_stairs", + "minecraft:cut_red_sandstone", + "minecraft:cut_red_sandstone_slab", + "minecraft:cut_sandstone", + "minecraft:cut_sandstone_slab", + "minecraft:cyan_concrete", + "minecraft:cyan_glazed_terracotta", + "minecraft:cyan_shulker_box", + "minecraft:cyan_terracotta", + "minecraft:damaged_anvil", + "minecraft:dark_prismarine", + "minecraft:dark_prismarine_slab", + "minecraft:dark_prismarine_stairs", + "minecraft:dead_brain_coral", + "minecraft:dead_brain_coral_block", + "minecraft:dead_brain_coral_fan", + "minecraft:dead_brain_coral_wall_fan", + "minecraft:dead_bubble_coral", + "minecraft:dead_bubble_coral_block", + "minecraft:dead_bubble_coral_fan", + "minecraft:dead_bubble_coral_wall_fan", + "minecraft:dead_fire_coral", + "minecraft:dead_fire_coral_block", + "minecraft:dead_fire_coral_fan", + "minecraft:dead_fire_coral_wall_fan", + "minecraft:dead_horn_coral", + "minecraft:dead_horn_coral_block", + "minecraft:dead_horn_coral_fan", + "minecraft:dead_horn_coral_wall_fan", + "minecraft:dead_tube_coral", + "minecraft:dead_tube_coral_block", + "minecraft:dead_tube_coral_fan", + "minecraft:dead_tube_coral_wall_fan", + "minecraft:deepslate", + "minecraft:deepslate_brick_slab", + "minecraft:deepslate_brick_stairs", + "minecraft:deepslate_brick_wall", + "minecraft:deepslate_bricks", + "minecraft:deepslate_coal_ore", + "minecraft:deepslate_copper_ore", + "minecraft:deepslate_diamond_ore", + "minecraft:deepslate_emerald_ore", + "minecraft:deepslate_gold_ore", + "minecraft:deepslate_iron_ore", + "minecraft:deepslate_lapis_ore", + "minecraft:deepslate_redstone_ore", + "minecraft:deepslate_tile_slab", + "minecraft:deepslate_tile_stairs", + "minecraft:deepslate_tile_wall", + "minecraft:deepslate_tiles", + "minecraft:detector_rail", + "minecraft:diamond_block", + "minecraft:diamond_ore", + "minecraft:diorite", + "minecraft:diorite_slab", + "minecraft:diorite_stairs", + "minecraft:diorite_wall", + "minecraft:dispenser", + "minecraft:dripstone_block", + "minecraft:dropper", + "minecraft:emerald_block", + "minecraft:emerald_ore", + "minecraft:enchanting_table", + "minecraft:end_stone", + "minecraft:end_stone_brick_slab", + "minecraft:end_stone_brick_stairs", + "minecraft:end_stone_brick_wall", + "minecraft:end_stone_bricks", + "minecraft:ender_chest", + "minecraft:exposed_copper", + "minecraft:exposed_cut_copper", + "minecraft:exposed_cut_copper_slab", + "minecraft:exposed_cut_copper_stairs", + "minecraft:fire_coral_block", + "minecraft:furnace", + "minecraft:gilded_blackstone", + "minecraft:gold_block", + "minecraft:gold_ore", + "minecraft:granite", + "minecraft:granite_slab", + "minecraft:granite_stairs", + "minecraft:granite_wall", + "minecraft:gray_concrete", + "minecraft:gray_glazed_terracotta", + "minecraft:gray_shulker_box", + "minecraft:gray_terracotta", + "minecraft:green_concrete", + "minecraft:green_glazed_terracotta", + "minecraft:green_shulker_box", + "minecraft:green_terracotta", + "minecraft:grindstone", + "minecraft:heavy_weighted_pressure_plate", + "minecraft:hopper", + "minecraft:horn_coral_block", + "minecraft:ice", + "minecraft:infested_chiseled_stone_bricks", + "minecraft:infested_cobblestone", + "minecraft:infested_cracked_stone_bricks", + "minecraft:infested_deepslate", + "minecraft:infested_mossy_stone_bricks", + "minecraft:infested_stone", + "minecraft:infested_stone_bricks", + "minecraft:iron_bars", + "minecraft:iron_block", + "minecraft:iron_door", + "minecraft:iron_ore", + "minecraft:iron_trapdoor", + "minecraft:lantern", + "minecraft:lapis_block", + "minecraft:lapis_ore", + "minecraft:large_amethyst_bud", + "minecraft:lava_cauldron", + "minecraft:light_blue_concrete", + "minecraft:light_blue_glazed_terracotta", + "minecraft:light_blue_shulker_box", + "minecraft:light_blue_terracotta", + "minecraft:light_gray_concrete", + "minecraft:light_gray_glazed_terracotta", + "minecraft:light_gray_shulker_box", + "minecraft:light_gray_terracotta", + "minecraft:light_weighted_pressure_plate", + "minecraft:lightning_rod", + "minecraft:lime_concrete", + "minecraft:lime_glazed_terracotta", + "minecraft:lime_shulker_box", + "minecraft:lime_terracotta", + "minecraft:lodestone", + "minecraft:magenta_concrete", + "minecraft:magenta_glazed_terracotta", + "minecraft:magenta_shulker_box", + "minecraft:magenta_terracotta", + "minecraft:magma_block", + "minecraft:medium_amethyst_bud", + "minecraft:mossy_cobblestone", + "minecraft:mossy_cobblestone_slab", + "minecraft:mossy_cobblestone_stairs", + "minecraft:mossy_cobblestone_wall", + "minecraft:mossy_stone_brick_slab", + "minecraft:mossy_stone_brick_stairs", + "minecraft:mossy_stone_brick_wall", + "minecraft:mossy_stone_bricks", + "minecraft:nether_brick_fence", + "minecraft:nether_brick_slab", + "minecraft:nether_brick_stairs", + "minecraft:nether_brick_wall", + "minecraft:nether_bricks", + "minecraft:nether_gold_ore", + "minecraft:nether_quartz_ore", + "minecraft:netherite_block", + "minecraft:netherrack", + "minecraft:observer", + "minecraft:obsidian", + "minecraft:orange_concrete", + "minecraft:orange_glazed_terracotta", + "minecraft:orange_shulker_box", + "minecraft:orange_terracotta", + "minecraft:oxidized_copper", + "minecraft:oxidized_cut_copper", + "minecraft:oxidized_cut_copper_slab", + "minecraft:oxidized_cut_copper_stairs", + "minecraft:packed_ice", + "minecraft:petrified_oak_slab", + "minecraft:pink_concrete", + "minecraft:pink_glazed_terracotta", + "minecraft:pink_shulker_box", + "minecraft:pink_terracotta", + "minecraft:piston", + "minecraft:piston_head", + "minecraft:pointed_dripstone", + "minecraft:polished_andesite", + "minecraft:polished_andesite_slab", + "minecraft:polished_andesite_stairs", + "minecraft:polished_basalt", + "minecraft:polished_blackstone", + "minecraft:polished_blackstone_brick_slab", + "minecraft:polished_blackstone_brick_stairs", + "minecraft:polished_blackstone_brick_wall", + "minecraft:polished_blackstone_bricks", + "minecraft:polished_blackstone_pressure_plate", + "minecraft:polished_blackstone_slab", + "minecraft:polished_blackstone_stairs", + "minecraft:polished_blackstone_wall", + "minecraft:polished_deepslate", + "minecraft:polished_deepslate_slab", + "minecraft:polished_deepslate_stairs", + "minecraft:polished_deepslate_wall", + "minecraft:polished_diorite", + "minecraft:polished_diorite_slab", + "minecraft:polished_diorite_stairs", + "minecraft:polished_granite", + "minecraft:polished_granite_slab", + "minecraft:polished_granite_stairs", + "minecraft:powder_snow_cauldron", + "minecraft:powered_rail", + "minecraft:prismarine", + "minecraft:prismarine_brick_slab", + "minecraft:prismarine_brick_stairs", + "minecraft:prismarine_bricks", + "minecraft:prismarine_slab", + "minecraft:prismarine_stairs", + "minecraft:prismarine_wall", + "minecraft:purple_concrete", + "minecraft:purple_glazed_terracotta", + "minecraft:purple_shulker_box", + "minecraft:purple_terracotta", + "minecraft:purpur_block", + "minecraft:purpur_pillar", + "minecraft:purpur_slab", + "minecraft:purpur_stairs", + "minecraft:quartz_block", + "minecraft:quartz_bricks", + "minecraft:quartz_pillar", + "minecraft:quartz_slab", + "minecraft:quartz_stairs", + "minecraft:rail", + "minecraft:raw_copper_block", + "minecraft:raw_gold_block", + "minecraft:raw_iron_block", + "minecraft:red_concrete", + "minecraft:red_glazed_terracotta", + "minecraft:red_nether_brick_slab", + "minecraft:red_nether_brick_stairs", + "minecraft:red_nether_brick_wall", + "minecraft:red_nether_bricks", + "minecraft:red_sandstone", + "minecraft:red_sandstone_slab", + "minecraft:red_sandstone_stairs", + "minecraft:red_sandstone_wall", + "minecraft:red_shulker_box", + "minecraft:red_terracotta", + "minecraft:redstone_block", + "minecraft:redstone_ore", + "minecraft:respawn_anchor", + "minecraft:sandstone", + "minecraft:sandstone_slab", + "minecraft:sandstone_stairs", + "minecraft:sandstone_wall", + "minecraft:shulker_box", + "minecraft:small_amethyst_bud", + "minecraft:smoker", + "minecraft:smooth_basalt", + "minecraft:smooth_quartz", + "minecraft:smooth_quartz_slab", + "minecraft:smooth_quartz_stairs", + "minecraft:smooth_red_sandstone", + "minecraft:smooth_red_sandstone_slab", + "minecraft:smooth_red_sandstone_stairs", + "minecraft:smooth_sandstone", + "minecraft:smooth_sandstone_slab", + "minecraft:smooth_sandstone_stairs", + "minecraft:smooth_stone", + "minecraft:smooth_stone_slab", + "minecraft:soul_lantern", + "minecraft:spawner", + "minecraft:sticky_piston", + "minecraft:stone", + "minecraft:stone_brick_slab", + "minecraft:stone_brick_stairs", + "minecraft:stone_brick_wall", + "minecraft:stone_bricks", + "minecraft:stone_button", + "minecraft:stone_pressure_plate", + "minecraft:stone_slab", + "minecraft:stone_stairs", + "minecraft:stonecutter", + "minecraft:terracotta", + "minecraft:tube_coral_block", + "minecraft:tuff", + "minecraft:warped_nylium", + "minecraft:water_cauldron", + "minecraft:waxed_copper_block", + "minecraft:waxed_cut_copper", + "minecraft:waxed_cut_copper_slab", + "minecraft:waxed_cut_copper_stairs", + "minecraft:waxed_exposed_copper", + "minecraft:waxed_exposed_cut_copper", + "minecraft:waxed_exposed_cut_copper_slab", + "minecraft:waxed_exposed_cut_copper_stairs", + "minecraft:waxed_oxidized_copper", + "minecraft:waxed_oxidized_cut_copper", + "minecraft:waxed_oxidized_cut_copper_slab", + "minecraft:waxed_oxidized_cut_copper_stairs", + "minecraft:waxed_weathered_copper", + "minecraft:waxed_weathered_cut_copper", + "minecraft:waxed_weathered_cut_copper_slab", + "minecraft:waxed_weathered_cut_copper_stairs", + "minecraft:weathered_copper", + "minecraft:weathered_cut_copper", + "minecraft:weathered_cut_copper_slab", + "minecraft:weathered_cut_copper_stairs", + "minecraft:white_concrete", + "minecraft:white_glazed_terracotta", + "minecraft:white_shulker_box", + "minecraft:white_terracotta", + "minecraft:yellow_concrete", + "minecraft:yellow_glazed_terracotta", + "minecraft:yellow_shulker_box", + "minecraft:yellow_terracotta" + ], + "minecraft:mineable/shovel": [ + "minecraft:black_concrete_powder", + "minecraft:blue_concrete_powder", + "minecraft:brown_concrete_powder", + "minecraft:clay", + "minecraft:coarse_dirt", + "minecraft:cyan_concrete_powder", + "minecraft:dirt", + "minecraft:dirt_path", + "minecraft:farmland", + "minecraft:grass_block", + "minecraft:gravel", + "minecraft:gray_concrete_powder", + "minecraft:green_concrete_powder", + "minecraft:light_blue_concrete_powder", + "minecraft:light_gray_concrete_powder", + "minecraft:lime_concrete_powder", + "minecraft:magenta_concrete_powder", + "minecraft:mycelium", + "minecraft:orange_concrete_powder", + "minecraft:pink_concrete_powder", + "minecraft:podzol", + "minecraft:purple_concrete_powder", + "minecraft:red_concrete_powder", + "minecraft:red_sand", + "minecraft:rooted_dirt", + "minecraft:sand", + "minecraft:snow", + "minecraft:snow_block", + "minecraft:soul_sand", + "minecraft:soul_soil", + "minecraft:white_concrete_powder", + "minecraft:yellow_concrete_powder" + ], + "minecraft:moss_replaceable": [ + "minecraft:andesite", + "minecraft:cave_vines", + "minecraft:cave_vines_plant", + "minecraft:coarse_dirt", + "minecraft:deepslate", + "minecraft:diorite", + "minecraft:dirt", + "minecraft:granite", + "minecraft:grass_block", + "minecraft:moss_block", + "minecraft:mycelium", + "minecraft:podzol", + "minecraft:rooted_dirt", + "minecraft:stone", + "minecraft:tuff" + ], + "minecraft:mushroom_grow_block": [ + "minecraft:crimson_nylium", + "minecraft:mycelium", + "minecraft:podzol", + "minecraft:warped_nylium" + ], + "minecraft:needs_diamond_tool": [ + "minecraft:ancient_debris", + "minecraft:crying_obsidian", + "minecraft:netherite_block", + "minecraft:obsidian", + "minecraft:respawn_anchor" + ], + "minecraft:needs_iron_tool": [ + "minecraft:deepslate_diamond_ore", + "minecraft:deepslate_emerald_ore", + "minecraft:deepslate_gold_ore", + "minecraft:deepslate_redstone_ore", + "minecraft:diamond_block", + "minecraft:diamond_ore", + "minecraft:emerald_block", + "minecraft:emerald_ore", + "minecraft:gold_block", + "minecraft:gold_ore", + "minecraft:raw_gold_block", + "minecraft:redstone_ore" + ], + "minecraft:needs_stone_tool": [ + "minecraft:copper_block", + "minecraft:copper_ore", + "minecraft:cut_copper", + "minecraft:cut_copper_slab", + "minecraft:cut_copper_stairs", + "minecraft:deepslate_copper_ore", + "minecraft:deepslate_iron_ore", + "minecraft:deepslate_lapis_ore", + "minecraft:exposed_copper", + "minecraft:exposed_cut_copper", + "minecraft:exposed_cut_copper_slab", + "minecraft:exposed_cut_copper_stairs", + "minecraft:iron_block", + "minecraft:iron_ore", + "minecraft:lapis_block", + "minecraft:lapis_ore", + "minecraft:lightning_rod", + "minecraft:oxidized_copper", + "minecraft:oxidized_cut_copper", + "minecraft:oxidized_cut_copper_slab", + "minecraft:oxidized_cut_copper_stairs", + "minecraft:raw_copper_block", + "minecraft:raw_iron_block", + "minecraft:waxed_copper_block", + "minecraft:waxed_cut_copper", + "minecraft:waxed_cut_copper_slab", + "minecraft:waxed_cut_copper_stairs", + "minecraft:waxed_exposed_copper", + "minecraft:waxed_exposed_cut_copper", + "minecraft:waxed_exposed_cut_copper_slab", + "minecraft:waxed_exposed_cut_copper_stairs", + "minecraft:waxed_oxidized_copper", + "minecraft:waxed_oxidized_cut_copper", + "minecraft:waxed_oxidized_cut_copper_slab", + "minecraft:waxed_oxidized_cut_copper_stairs", + "minecraft:waxed_weathered_copper", + "minecraft:waxed_weathered_cut_copper", + "minecraft:waxed_weathered_cut_copper_slab", + "minecraft:waxed_weathered_cut_copper_stairs", + "minecraft:weathered_copper", + "minecraft:weathered_cut_copper", + "minecraft:weathered_cut_copper_slab", + "minecraft:weathered_cut_copper_stairs" + ], + "minecraft:non_flammable_wood": [ + "minecraft:crimson_button", + "minecraft:crimson_door", + "minecraft:crimson_fence", + "minecraft:crimson_fence_gate", + "minecraft:crimson_hyphae", + "minecraft:crimson_planks", + "minecraft:crimson_pressure_plate", + "minecraft:crimson_sign", + "minecraft:crimson_slab", + "minecraft:crimson_stairs", + "minecraft:crimson_stem", + "minecraft:crimson_trapdoor", + "minecraft:crimson_wall_sign", + "minecraft:stripped_crimson_hyphae", + "minecraft:stripped_crimson_stem", + "minecraft:stripped_warped_hyphae", + "minecraft:stripped_warped_stem", + "minecraft:warped_button", + "minecraft:warped_door", + "minecraft:warped_fence", + "minecraft:warped_fence_gate", + "minecraft:warped_hyphae", + "minecraft:warped_planks", + "minecraft:warped_pressure_plate", + "minecraft:warped_sign", + "minecraft:warped_slab", + "minecraft:warped_stairs", + "minecraft:warped_stem", + "minecraft:warped_trapdoor", + "minecraft:warped_wall_sign" + ], + "minecraft:nylium": [ + "minecraft:crimson_nylium", + "minecraft:warped_nylium" + ], + "minecraft:oak_logs": [ + "minecraft:oak_log", + "minecraft:oak_wood", + "minecraft:stripped_oak_log", + "minecraft:stripped_oak_wood" + ], + "minecraft:occludes_vibration_signals": [ + "minecraft:black_wool", + "minecraft:blue_wool", + "minecraft:brown_wool", + "minecraft:cyan_wool", + "minecraft:gray_wool", + "minecraft:green_wool", + "minecraft:light_blue_wool", + "minecraft:light_gray_wool", + "minecraft:lime_wool", + "minecraft:magenta_wool", + "minecraft:orange_wool", + "minecraft:pink_wool", + "minecraft:purple_wool", + "minecraft:red_wool", + "minecraft:white_wool", + "minecraft:yellow_wool" + ], + "minecraft:piglin_repellents": [ + "minecraft:soul_campfire", + "minecraft:soul_fire", + "minecraft:soul_lantern", + "minecraft:soul_torch", + "minecraft:soul_wall_torch" + ], + "minecraft:planks": [ + "minecraft:acacia_planks", + "minecraft:birch_planks", + "minecraft:crimson_planks", + "minecraft:dark_oak_planks", + "minecraft:jungle_planks", + "minecraft:oak_planks", + "minecraft:spruce_planks", + "minecraft:warped_planks" + ], + "minecraft:portals": [ + "minecraft:end_gateway", + "minecraft:end_portal", + "minecraft:nether_portal" + ], + "minecraft:pressure_plates": [ + "minecraft:acacia_pressure_plate", + "minecraft:birch_pressure_plate", + "minecraft:crimson_pressure_plate", + "minecraft:dark_oak_pressure_plate", + "minecraft:heavy_weighted_pressure_plate", + "minecraft:jungle_pressure_plate", + "minecraft:light_weighted_pressure_plate", + "minecraft:oak_pressure_plate", + "minecraft:polished_blackstone_pressure_plate", + "minecraft:spruce_pressure_plate", + "minecraft:stone_pressure_plate", + "minecraft:warped_pressure_plate" + ], + "minecraft:prevent_mob_spawning_inside": [ + "minecraft:activator_rail", + "minecraft:detector_rail", + "minecraft:powered_rail", + "minecraft:rail" + ], + "minecraft:rails": [ + "minecraft:activator_rail", + "minecraft:detector_rail", + "minecraft:powered_rail", + "minecraft:rail" + ], + "minecraft:redstone_ores": [ + "minecraft:deepslate_redstone_ore", + "minecraft:redstone_ore" + ], + "minecraft:sand": [ + "minecraft:red_sand", + "minecraft:sand" + ], + "minecraft:saplings": [ + "minecraft:acacia_sapling", + "minecraft:azalea", + "minecraft:birch_sapling", + "minecraft:dark_oak_sapling", + "minecraft:flowering_azalea", + "minecraft:jungle_sapling", + "minecraft:oak_sapling", + "minecraft:spruce_sapling" + ], + "minecraft:shulker_boxes": [ + "minecraft:black_shulker_box", + "minecraft:blue_shulker_box", + "minecraft:brown_shulker_box", + "minecraft:cyan_shulker_box", + "minecraft:gray_shulker_box", + "minecraft:green_shulker_box", + "minecraft:light_blue_shulker_box", + "minecraft:light_gray_shulker_box", + "minecraft:lime_shulker_box", + "minecraft:magenta_shulker_box", + "minecraft:orange_shulker_box", + "minecraft:pink_shulker_box", + "minecraft:purple_shulker_box", + "minecraft:red_shulker_box", + "minecraft:shulker_box", + "minecraft:white_shulker_box", + "minecraft:yellow_shulker_box" + ], + "minecraft:signs": [ + "minecraft:acacia_sign", + "minecraft:acacia_wall_sign", + "minecraft:birch_sign", + "minecraft:birch_wall_sign", + "minecraft:crimson_sign", + "minecraft:crimson_wall_sign", + "minecraft:dark_oak_sign", + "minecraft:dark_oak_wall_sign", + "minecraft:jungle_sign", + "minecraft:jungle_wall_sign", + "minecraft:oak_sign", + "minecraft:oak_wall_sign", + "minecraft:spruce_sign", + "minecraft:spruce_wall_sign", + "minecraft:warped_sign", + "minecraft:warped_wall_sign" + ], + "minecraft:slabs": [ + "minecraft:acacia_slab", + "minecraft:andesite_slab", + "minecraft:birch_slab", + "minecraft:blackstone_slab", + "minecraft:brick_slab", + "minecraft:cobbled_deepslate_slab", + "minecraft:cobblestone_slab", + "minecraft:crimson_slab", + "minecraft:cut_copper_slab", + "minecraft:cut_red_sandstone_slab", + "minecraft:cut_sandstone_slab", + "minecraft:dark_oak_slab", + "minecraft:dark_prismarine_slab", + "minecraft:deepslate_brick_slab", + "minecraft:deepslate_tile_slab", + "minecraft:diorite_slab", + "minecraft:end_stone_brick_slab", + "minecraft:exposed_cut_copper_slab", + "minecraft:granite_slab", + "minecraft:jungle_slab", + "minecraft:mossy_cobblestone_slab", + "minecraft:mossy_stone_brick_slab", + "minecraft:nether_brick_slab", + "minecraft:oak_slab", + "minecraft:oxidized_cut_copper_slab", + "minecraft:petrified_oak_slab", + "minecraft:polished_andesite_slab", + "minecraft:polished_blackstone_brick_slab", + "minecraft:polished_blackstone_slab", + "minecraft:polished_deepslate_slab", + "minecraft:polished_diorite_slab", + "minecraft:polished_granite_slab", + "minecraft:prismarine_brick_slab", + "minecraft:prismarine_slab", + "minecraft:purpur_slab", + "minecraft:quartz_slab", + "minecraft:red_nether_brick_slab", + "minecraft:red_sandstone_slab", + "minecraft:sandstone_slab", + "minecraft:smooth_quartz_slab", + "minecraft:smooth_red_sandstone_slab", + "minecraft:smooth_sandstone_slab", + "minecraft:smooth_stone_slab", + "minecraft:spruce_slab", + "minecraft:stone_brick_slab", + "minecraft:stone_slab", + "minecraft:warped_slab", + "minecraft:waxed_cut_copper_slab", + "minecraft:waxed_exposed_cut_copper_slab", + "minecraft:waxed_oxidized_cut_copper_slab", + "minecraft:waxed_weathered_cut_copper_slab", + "minecraft:weathered_cut_copper_slab" + ], + "minecraft:small_dripleaf_placeable": [ + "minecraft:clay", + "minecraft:moss_block" + ], + "minecraft:small_flowers": [ + "minecraft:allium", + "minecraft:azure_bluet", + "minecraft:blue_orchid", + "minecraft:cornflower", + "minecraft:dandelion", + "minecraft:lily_of_the_valley", + "minecraft:orange_tulip", + "minecraft:oxeye_daisy", + "minecraft:pink_tulip", + "minecraft:poppy", + "minecraft:red_tulip", + "minecraft:white_tulip", + "minecraft:wither_rose" + ], + "minecraft:snow": [ + "minecraft:powder_snow", + "minecraft:snow", + "minecraft:snow_block" + ], + "minecraft:soul_fire_base_blocks": [ + "minecraft:soul_sand", + "minecraft:soul_soil" + ], + "minecraft:soul_speed_blocks": [ + "minecraft:soul_sand", + "minecraft:soul_soil" + ], + "minecraft:spruce_logs": [ + "minecraft:spruce_log", + "minecraft:spruce_wood", + "minecraft:stripped_spruce_log", + "minecraft:stripped_spruce_wood" + ], + "minecraft:stairs": [ + "minecraft:acacia_stairs", + "minecraft:andesite_stairs", + "minecraft:birch_stairs", + "minecraft:blackstone_stairs", + "minecraft:brick_stairs", + "minecraft:cobbled_deepslate_stairs", + "minecraft:cobblestone_stairs", + "minecraft:crimson_stairs", + "minecraft:cut_copper_stairs", + "minecraft:dark_oak_stairs", + "minecraft:dark_prismarine_stairs", + "minecraft:deepslate_brick_stairs", + "minecraft:deepslate_tile_stairs", + "minecraft:diorite_stairs", + "minecraft:end_stone_brick_stairs", + "minecraft:exposed_cut_copper_stairs", + "minecraft:granite_stairs", + "minecraft:jungle_stairs", + "minecraft:mossy_cobblestone_stairs", + "minecraft:mossy_stone_brick_stairs", + "minecraft:nether_brick_stairs", + "minecraft:oak_stairs", + "minecraft:oxidized_cut_copper_stairs", + "minecraft:polished_andesite_stairs", + "minecraft:polished_blackstone_brick_stairs", + "minecraft:polished_blackstone_stairs", + "minecraft:polished_deepslate_stairs", + "minecraft:polished_diorite_stairs", + "minecraft:polished_granite_stairs", + "minecraft:prismarine_brick_stairs", + "minecraft:prismarine_stairs", + "minecraft:purpur_stairs", + "minecraft:quartz_stairs", + "minecraft:red_nether_brick_stairs", + "minecraft:red_sandstone_stairs", + "minecraft:sandstone_stairs", + "minecraft:smooth_quartz_stairs", + "minecraft:smooth_red_sandstone_stairs", + "minecraft:smooth_sandstone_stairs", + "minecraft:spruce_stairs", + "minecraft:stone_brick_stairs", + "minecraft:stone_stairs", + "minecraft:warped_stairs", + "minecraft:waxed_cut_copper_stairs", + "minecraft:waxed_exposed_cut_copper_stairs", + "minecraft:waxed_oxidized_cut_copper_stairs", + "minecraft:waxed_weathered_cut_copper_stairs", + "minecraft:weathered_cut_copper_stairs" + ], + "minecraft:standing_signs": [ + "minecraft:acacia_sign", + "minecraft:birch_sign", + "minecraft:crimson_sign", + "minecraft:dark_oak_sign", + "minecraft:jungle_sign", + "minecraft:oak_sign", + "minecraft:spruce_sign", + "minecraft:warped_sign" + ], + "minecraft:stone_bricks": [ + "minecraft:chiseled_stone_bricks", + "minecraft:cracked_stone_bricks", + "minecraft:mossy_stone_bricks", + "minecraft:stone_bricks" + ], + "minecraft:stone_ore_replaceables": [ + "minecraft:andesite", + "minecraft:diorite", + "minecraft:granite", + "minecraft:stone" + ], + "minecraft:stone_pressure_plates": [ + "minecraft:polished_blackstone_pressure_plate", + "minecraft:stone_pressure_plate" + ], + "minecraft:strider_warm_blocks": [ + "minecraft:lava" + ], + "minecraft:tall_flowers": [ + "minecraft:lilac", + "minecraft:peony", + "minecraft:rose_bush", + "minecraft:sunflower" + ], + "minecraft:trapdoors": [ + "minecraft:acacia_trapdoor", + "minecraft:birch_trapdoor", + "minecraft:crimson_trapdoor", + "minecraft:dark_oak_trapdoor", + "minecraft:iron_trapdoor", + "minecraft:jungle_trapdoor", + "minecraft:oak_trapdoor", + "minecraft:spruce_trapdoor", + "minecraft:warped_trapdoor" + ], + "minecraft:underwater_bonemeals": [ + "minecraft:brain_coral", + "minecraft:brain_coral_fan", + "minecraft:brain_coral_wall_fan", + "minecraft:bubble_coral", + "minecraft:bubble_coral_fan", + "minecraft:bubble_coral_wall_fan", + "minecraft:fire_coral", + "minecraft:fire_coral_fan", + "minecraft:fire_coral_wall_fan", + "minecraft:horn_coral", + "minecraft:horn_coral_fan", + "minecraft:horn_coral_wall_fan", + "minecraft:seagrass", + "minecraft:tube_coral", + "minecraft:tube_coral_fan", + "minecraft:tube_coral_wall_fan" + ], + "minecraft:unstable_bottom_center": [ + "minecraft:acacia_fence_gate", + "minecraft:birch_fence_gate", + "minecraft:crimson_fence_gate", + "minecraft:dark_oak_fence_gate", + "minecraft:jungle_fence_gate", + "minecraft:oak_fence_gate", + "minecraft:spruce_fence_gate", + "minecraft:warped_fence_gate" + ], + "minecraft:valid_spawn": [ + "minecraft:grass_block", + "minecraft:podzol" + ], + "minecraft:wall_corals": [ + "minecraft:brain_coral_wall_fan", + "minecraft:bubble_coral_wall_fan", + "minecraft:fire_coral_wall_fan", + "minecraft:horn_coral_wall_fan", + "minecraft:tube_coral_wall_fan" + ], + "minecraft:wall_post_override": [ + "minecraft:acacia_pressure_plate", + "minecraft:acacia_sign", + "minecraft:acacia_wall_sign", + "minecraft:birch_pressure_plate", + "minecraft:birch_sign", + "minecraft:birch_wall_sign", + "minecraft:black_banner", + "minecraft:black_wall_banner", + "minecraft:blue_banner", + "minecraft:blue_wall_banner", + "minecraft:brown_banner", + "minecraft:brown_wall_banner", + "minecraft:crimson_pressure_plate", + "minecraft:crimson_sign", + "minecraft:crimson_wall_sign", + "minecraft:cyan_banner", + "minecraft:cyan_wall_banner", + "minecraft:dark_oak_pressure_plate", + "minecraft:dark_oak_sign", + "minecraft:dark_oak_wall_sign", + "minecraft:gray_banner", + "minecraft:gray_wall_banner", + "minecraft:green_banner", + "minecraft:green_wall_banner", + "minecraft:heavy_weighted_pressure_plate", + "minecraft:jungle_pressure_plate", + "minecraft:jungle_sign", + "minecraft:jungle_wall_sign", + "minecraft:light_blue_banner", + "minecraft:light_blue_wall_banner", + "minecraft:light_gray_banner", + "minecraft:light_gray_wall_banner", + "minecraft:light_weighted_pressure_plate", + "minecraft:lime_banner", + "minecraft:lime_wall_banner", + "minecraft:magenta_banner", + "minecraft:magenta_wall_banner", + "minecraft:oak_pressure_plate", + "minecraft:oak_sign", + "minecraft:oak_wall_sign", + "minecraft:orange_banner", + "minecraft:orange_wall_banner", + "minecraft:pink_banner", + "minecraft:pink_wall_banner", + "minecraft:polished_blackstone_pressure_plate", + "minecraft:purple_banner", + "minecraft:purple_wall_banner", + "minecraft:red_banner", + "minecraft:red_wall_banner", + "minecraft:redstone_torch", + "minecraft:soul_torch", + "minecraft:spruce_pressure_plate", + "minecraft:spruce_sign", + "minecraft:spruce_wall_sign", + "minecraft:stone_pressure_plate", + "minecraft:torch", + "minecraft:tripwire", + "minecraft:warped_pressure_plate", + "minecraft:warped_sign", + "minecraft:warped_wall_sign", + "minecraft:white_banner", + "minecraft:white_wall_banner", + "minecraft:yellow_banner", + "minecraft:yellow_wall_banner" + ], + "minecraft:wall_signs": [ + "minecraft:acacia_wall_sign", + "minecraft:birch_wall_sign", + "minecraft:crimson_wall_sign", + "minecraft:dark_oak_wall_sign", + "minecraft:jungle_wall_sign", + "minecraft:oak_wall_sign", + "minecraft:spruce_wall_sign", + "minecraft:warped_wall_sign" + ], + "minecraft:walls": [ + "minecraft:andesite_wall", + "minecraft:blackstone_wall", + "minecraft:brick_wall", + "minecraft:cobbled_deepslate_wall", + "minecraft:cobblestone_wall", + "minecraft:deepslate_brick_wall", + "minecraft:deepslate_tile_wall", + "minecraft:diorite_wall", + "minecraft:end_stone_brick_wall", + "minecraft:granite_wall", + "minecraft:mossy_cobblestone_wall", + "minecraft:mossy_stone_brick_wall", + "minecraft:nether_brick_wall", + "minecraft:polished_blackstone_brick_wall", + "minecraft:polished_blackstone_wall", + "minecraft:polished_deepslate_wall", + "minecraft:prismarine_wall", + "minecraft:red_nether_brick_wall", + "minecraft:red_sandstone_wall", + "minecraft:sandstone_wall", + "minecraft:stone_brick_wall" + ], + "minecraft:warped_stems": [ + "minecraft:stripped_warped_hyphae", + "minecraft:stripped_warped_stem", + "minecraft:warped_hyphae", + "minecraft:warped_stem" + ], + "minecraft:wart_blocks": [ + "minecraft:nether_wart_block", + "minecraft:warped_wart_block" + ], + "minecraft:wither_immune": [ + "minecraft:barrier", + "minecraft:bedrock", + "minecraft:chain_command_block", + "minecraft:command_block", + "minecraft:end_gateway", + "minecraft:end_portal", + "minecraft:end_portal_frame", + "minecraft:jigsaw", + "minecraft:moving_piston", + "minecraft:repeating_command_block", + "minecraft:structure_block" + ], + "minecraft:wither_summon_base_blocks": [ + "minecraft:soul_sand", + "minecraft:soul_soil" + ], + "minecraft:wooden_buttons": [ + "minecraft:acacia_button", + "minecraft:birch_button", + "minecraft:crimson_button", + "minecraft:dark_oak_button", + "minecraft:jungle_button", + "minecraft:oak_button", + "minecraft:spruce_button", + "minecraft:warped_button" + ], + "minecraft:wooden_doors": [ + "minecraft:acacia_door", + "minecraft:birch_door", + "minecraft:crimson_door", + "minecraft:dark_oak_door", + "minecraft:jungle_door", + "minecraft:oak_door", + "minecraft:spruce_door", + "minecraft:warped_door" + ], + "minecraft:wooden_fences": [ + "minecraft:acacia_fence", + "minecraft:birch_fence", + "minecraft:crimson_fence", + "minecraft:dark_oak_fence", + "minecraft:jungle_fence", + "minecraft:oak_fence", + "minecraft:spruce_fence", + "minecraft:warped_fence" + ], + "minecraft:wooden_pressure_plates": [ + "minecraft:acacia_pressure_plate", + "minecraft:birch_pressure_plate", + "minecraft:crimson_pressure_plate", + "minecraft:dark_oak_pressure_plate", + "minecraft:jungle_pressure_plate", + "minecraft:oak_pressure_plate", + "minecraft:spruce_pressure_plate", + "minecraft:warped_pressure_plate" + ], + "minecraft:wooden_slabs": [ + "minecraft:acacia_slab", + "minecraft:birch_slab", + "minecraft:crimson_slab", + "minecraft:dark_oak_slab", + "minecraft:jungle_slab", + "minecraft:oak_slab", + "minecraft:spruce_slab", + "minecraft:warped_slab" + ], + "minecraft:wooden_stairs": [ + "minecraft:acacia_stairs", + "minecraft:birch_stairs", + "minecraft:crimson_stairs", + "minecraft:dark_oak_stairs", + "minecraft:jungle_stairs", + "minecraft:oak_stairs", + "minecraft:spruce_stairs", + "minecraft:warped_stairs" + ], + "minecraft:wooden_trapdoors": [ + "minecraft:acacia_trapdoor", + "minecraft:birch_trapdoor", + "minecraft:crimson_trapdoor", + "minecraft:dark_oak_trapdoor", + "minecraft:jungle_trapdoor", + "minecraft:oak_trapdoor", + "minecraft:spruce_trapdoor", + "minecraft:warped_trapdoor" + ], + "minecraft:wool": [ + "minecraft:black_wool", + "minecraft:blue_wool", + "minecraft:brown_wool", + "minecraft:cyan_wool", + "minecraft:gray_wool", + "minecraft:green_wool", + "minecraft:light_blue_wool", + "minecraft:light_gray_wool", + "minecraft:lime_wool", + "minecraft:magenta_wool", + "minecraft:orange_wool", + "minecraft:pink_wool", + "minecraft:purple_wool", + "minecraft:red_wool", + "minecraft:white_wool", + "minecraft:yellow_wool" + ] + }, + "entities": [ + "minecraft:area_effect_cloud", + "minecraft:armor_stand", + "minecraft:arrow", + "minecraft:axolotl", + "minecraft:bat", + "minecraft:bee", + "minecraft:blaze", + "minecraft:boat", + "minecraft:cat", + "minecraft:cave_spider", + "minecraft:chest_minecart", + "minecraft:chicken", + "minecraft:cod", + "minecraft:command_block_minecart", + "minecraft:cow", + "minecraft:creeper", + "minecraft:dolphin", + "minecraft:donkey", + "minecraft:dragon_fireball", + "minecraft:drowned", + "minecraft:egg", + "minecraft:elder_guardian", + "minecraft:end_crystal", + "minecraft:ender_dragon", + "minecraft:ender_pearl", + "minecraft:enderman", + "minecraft:endermite", + "minecraft:evoker", + "minecraft:evoker_fangs", + "minecraft:experience_bottle", + "minecraft:experience_orb", + "minecraft:eye_of_ender", + "minecraft:falling_block", + "minecraft:fireball", + "minecraft:firework_rocket", + "minecraft:fishing_bobber", + "minecraft:fox", + "minecraft:furnace_minecart", + "minecraft:ghast", + "minecraft:giant", + "minecraft:glow_item_frame", + "minecraft:glow_squid", + "minecraft:goat", + "minecraft:guardian", + "minecraft:hoglin", + "minecraft:hopper_minecart", + "minecraft:horse", + "minecraft:husk", + "minecraft:illusioner", + "minecraft:iron_golem", + "minecraft:item", + "minecraft:item_frame", + "minecraft:leash_knot", + "minecraft:lightning_bolt", + "minecraft:llama", + "minecraft:llama_spit", + "minecraft:magma_cube", + "minecraft:marker", + "minecraft:minecart", + "minecraft:mooshroom", + "minecraft:mule", + "minecraft:ocelot", + "minecraft:painting", + "minecraft:panda", + "minecraft:parrot", + "minecraft:phantom", + "minecraft:pig", + "minecraft:piglin", + "minecraft:piglin_brute", + "minecraft:pillager", + "minecraft:player", + "minecraft:polar_bear", + "minecraft:potion", + "minecraft:pufferfish", + "minecraft:rabbit", + "minecraft:ravager", + "minecraft:salmon", + "minecraft:sheep", + "minecraft:shulker", + "minecraft:shulker_bullet", + "minecraft:silverfish", + "minecraft:skeleton", + "minecraft:skeleton_horse", + "minecraft:slime", + "minecraft:small_fireball", + "minecraft:snow_golem", + "minecraft:snowball", + "minecraft:spawner_minecart", + "minecraft:spectral_arrow", + "minecraft:spider", + "minecraft:squid", + "minecraft:stray", + "minecraft:strider", + "minecraft:tnt", + "minecraft:tnt_minecart", + "minecraft:trader_llama", + "minecraft:trident", + "minecraft:tropical_fish", + "minecraft:turtle", + "minecraft:vex", + "minecraft:villager", + "minecraft:vindicator", + "minecraft:wandering_trader", + "minecraft:witch", + "minecraft:wither", + "minecraft:wither_skeleton", + "minecraft:wither_skull", + "minecraft:wolf", + "minecraft:zoglin", + "minecraft:zombie", + "minecraft:zombie_horse", + "minecraft:zombie_villager", + "minecraft:zombified_piglin" + ], + "entitytags": { + "minecraft:arrows": [ + "minecraft:arrow", + "minecraft:spectral_arrow" + ], + "minecraft:axolotl_always_hostiles": [ + "minecraft:drowned", + "minecraft:elder_guardian", + "minecraft:guardian" + ], + "minecraft:axolotl_hunt_targets": [ + "minecraft:cod", + "minecraft:glow_squid", + "minecraft:pufferfish", + "minecraft:salmon", + "minecraft:squid", + "minecraft:tropical_fish" + ], + "minecraft:beehive_inhabitors": [ + "minecraft:bee" + ], + "minecraft:freeze_hurts_extra_types": [ + "minecraft:blaze", + "minecraft:magma_cube", + "minecraft:strider" + ], + "minecraft:freeze_immune_entity_types": [ + "minecraft:polar_bear", + "minecraft:snow_golem", + "minecraft:stray", + "minecraft:wither" + ], + "minecraft:impact_projectiles": [ + "minecraft:arrow", + "minecraft:dragon_fireball", + "minecraft:egg", + "minecraft:fireball", + "minecraft:small_fireball", + "minecraft:snowball", + "minecraft:spectral_arrow", + "minecraft:trident", + "minecraft:wither_skull" + ], + "minecraft:powder_snow_walkable_mobs": [ + "minecraft:endermite", + "minecraft:fox", + "minecraft:rabbit", + "minecraft:silverfish" + ], + "minecraft:raiders": [ + "minecraft:evoker", + "minecraft:illusioner", + "minecraft:pillager", + "minecraft:ravager", + "minecraft:vindicator", + "minecraft:witch" + ], + "minecraft:skeletons": [ + "minecraft:skeleton", + "minecraft:stray", + "minecraft:wither_skeleton" + ] + }, + "items": [ + "minecraft:acacia_boat", + "minecraft:acacia_button", + "minecraft:acacia_door", + "minecraft:acacia_fence", + "minecraft:acacia_fence_gate", + "minecraft:acacia_leaves", + "minecraft:acacia_log", + "minecraft:acacia_planks", + "minecraft:acacia_pressure_plate", + "minecraft:acacia_sapling", + "minecraft:acacia_sign", + "minecraft:acacia_slab", + "minecraft:acacia_stairs", + "minecraft:acacia_trapdoor", + "minecraft:acacia_wood", + "minecraft:activator_rail", + "minecraft:air", + "minecraft:allium", + "minecraft:amethyst_block", + "minecraft:amethyst_cluster", + "minecraft:amethyst_shard", + "minecraft:ancient_debris", + "minecraft:andesite", + "minecraft:andesite_slab", + "minecraft:andesite_stairs", + "minecraft:andesite_wall", + "minecraft:anvil", + "minecraft:apple", + "minecraft:armor_stand", + "minecraft:arrow", + "minecraft:axolotl_bucket", + "minecraft:axolotl_spawn_egg", + "minecraft:azalea", + "minecraft:azalea_leaves", + "minecraft:azure_bluet", + "minecraft:baked_potato", + "minecraft:bamboo", + "minecraft:barrel", + "minecraft:barrier", + "minecraft:basalt", + "minecraft:bat_spawn_egg", + "minecraft:beacon", + "minecraft:bedrock", + "minecraft:bee_nest", + "minecraft:bee_spawn_egg", + "minecraft:beef", + "minecraft:beehive", + "minecraft:beetroot", + "minecraft:beetroot_seeds", + "minecraft:beetroot_soup", + "minecraft:bell", + "minecraft:big_dripleaf", + "minecraft:birch_boat", + "minecraft:birch_button", + "minecraft:birch_door", + "minecraft:birch_fence", + "minecraft:birch_fence_gate", + "minecraft:birch_leaves", + "minecraft:birch_log", + "minecraft:birch_planks", + "minecraft:birch_pressure_plate", + "minecraft:birch_sapling", + "minecraft:birch_sign", + "minecraft:birch_slab", + "minecraft:birch_stairs", + "minecraft:birch_trapdoor", + "minecraft:birch_wood", + "minecraft:black_banner", + "minecraft:black_bed", + "minecraft:black_candle", + "minecraft:black_carpet", + "minecraft:black_concrete", + "minecraft:black_concrete_powder", + "minecraft:black_dye", + "minecraft:black_glazed_terracotta", + "minecraft:black_shulker_box", + "minecraft:black_stained_glass", + "minecraft:black_stained_glass_pane", + "minecraft:black_terracotta", + "minecraft:black_wool", + "minecraft:blackstone", + "minecraft:blackstone_slab", + "minecraft:blackstone_stairs", + "minecraft:blackstone_wall", + "minecraft:blast_furnace", + "minecraft:blaze_powder", + "minecraft:blaze_rod", + "minecraft:blaze_spawn_egg", + "minecraft:blue_banner", + "minecraft:blue_bed", + "minecraft:blue_candle", + "minecraft:blue_carpet", + "minecraft:blue_concrete", + "minecraft:blue_concrete_powder", + "minecraft:blue_dye", + "minecraft:blue_glazed_terracotta", + "minecraft:blue_ice", + "minecraft:blue_orchid", + "minecraft:blue_shulker_box", + "minecraft:blue_stained_glass", + "minecraft:blue_stained_glass_pane", + "minecraft:blue_terracotta", + "minecraft:blue_wool", + "minecraft:bone", + "minecraft:bone_block", + "minecraft:bone_meal", + "minecraft:book", + "minecraft:bookshelf", + "minecraft:bow", + "minecraft:bowl", + "minecraft:brain_coral", + "minecraft:brain_coral_block", + "minecraft:brain_coral_fan", + "minecraft:bread", + "minecraft:brewing_stand", + "minecraft:brick", + "minecraft:brick_slab", + "minecraft:brick_stairs", + "minecraft:brick_wall", + "minecraft:bricks", + "minecraft:brown_banner", + "minecraft:brown_bed", + "minecraft:brown_candle", + "minecraft:brown_carpet", + "minecraft:brown_concrete", + "minecraft:brown_concrete_powder", + "minecraft:brown_dye", + "minecraft:brown_glazed_terracotta", + "minecraft:brown_mushroom", + "minecraft:brown_mushroom_block", + "minecraft:brown_shulker_box", + "minecraft:brown_stained_glass", + "minecraft:brown_stained_glass_pane", + "minecraft:brown_terracotta", + "minecraft:brown_wool", + "minecraft:bubble_coral", + "minecraft:bubble_coral_block", + "minecraft:bubble_coral_fan", + "minecraft:bucket", + "minecraft:budding_amethyst", + "minecraft:bundle", + "minecraft:cactus", + "minecraft:cake", + "minecraft:calcite", + "minecraft:campfire", + "minecraft:candle", + "minecraft:carrot", + "minecraft:carrot_on_a_stick", + "minecraft:cartography_table", + "minecraft:carved_pumpkin", + "minecraft:cat_spawn_egg", + "minecraft:cauldron", + "minecraft:cave_spider_spawn_egg", + "minecraft:chain", + "minecraft:chain_command_block", + "minecraft:chainmail_boots", + "minecraft:chainmail_chestplate", + "minecraft:chainmail_helmet", + "minecraft:chainmail_leggings", + "minecraft:charcoal", + "minecraft:chest", + "minecraft:chest_minecart", + "minecraft:chicken", + "minecraft:chicken_spawn_egg", + "minecraft:chipped_anvil", + "minecraft:chiseled_deepslate", + "minecraft:chiseled_nether_bricks", + "minecraft:chiseled_polished_blackstone", + "minecraft:chiseled_quartz_block", + "minecraft:chiseled_red_sandstone", + "minecraft:chiseled_sandstone", + "minecraft:chiseled_stone_bricks", + "minecraft:chorus_flower", + "minecraft:chorus_fruit", + "minecraft:chorus_plant", + "minecraft:clay", + "minecraft:clay_ball", + "minecraft:clock", + "minecraft:coal", + "minecraft:coal_block", + "minecraft:coal_ore", + "minecraft:coarse_dirt", + "minecraft:cobbled_deepslate", + "minecraft:cobbled_deepslate_slab", + "minecraft:cobbled_deepslate_stairs", + "minecraft:cobbled_deepslate_wall", + "minecraft:cobblestone", + "minecraft:cobblestone_slab", + "minecraft:cobblestone_stairs", + "minecraft:cobblestone_wall", + "minecraft:cobweb", + "minecraft:cocoa_beans", + "minecraft:cod", + "minecraft:cod_bucket", + "minecraft:cod_spawn_egg", + "minecraft:command_block", + "minecraft:command_block_minecart", + "minecraft:comparator", + "minecraft:compass", + "minecraft:composter", + "minecraft:conduit", + "minecraft:cooked_beef", + "minecraft:cooked_chicken", + "minecraft:cooked_cod", + "minecraft:cooked_mutton", + "minecraft:cooked_porkchop", + "minecraft:cooked_rabbit", + "minecraft:cooked_salmon", + "minecraft:cookie", + "minecraft:copper_block", + "minecraft:copper_ingot", + "minecraft:copper_ore", + "minecraft:cornflower", + "minecraft:cow_spawn_egg", + "minecraft:cracked_deepslate_bricks", + "minecraft:cracked_deepslate_tiles", + "minecraft:cracked_nether_bricks", + "minecraft:cracked_polished_blackstone_bricks", + "minecraft:cracked_stone_bricks", + "minecraft:crafting_table", + "minecraft:creeper_banner_pattern", + "minecraft:creeper_head", + "minecraft:creeper_spawn_egg", + "minecraft:crimson_button", + "minecraft:crimson_door", + "minecraft:crimson_fence", + "minecraft:crimson_fence_gate", + "minecraft:crimson_fungus", + "minecraft:crimson_hyphae", + "minecraft:crimson_nylium", + "minecraft:crimson_planks", + "minecraft:crimson_pressure_plate", + "minecraft:crimson_roots", + "minecraft:crimson_sign", + "minecraft:crimson_slab", + "minecraft:crimson_stairs", + "minecraft:crimson_stem", + "minecraft:crimson_trapdoor", + "minecraft:crossbow", + "minecraft:crying_obsidian", + "minecraft:cut_copper", + "minecraft:cut_copper_slab", + "minecraft:cut_copper_stairs", + "minecraft:cut_red_sandstone", + "minecraft:cut_red_sandstone_slab", + "minecraft:cut_sandstone", + "minecraft:cut_sandstone_slab", + "minecraft:cyan_banner", + "minecraft:cyan_bed", + "minecraft:cyan_candle", + "minecraft:cyan_carpet", + "minecraft:cyan_concrete", + "minecraft:cyan_concrete_powder", + "minecraft:cyan_dye", + "minecraft:cyan_glazed_terracotta", + "minecraft:cyan_shulker_box", + "minecraft:cyan_stained_glass", + "minecraft:cyan_stained_glass_pane", + "minecraft:cyan_terracotta", + "minecraft:cyan_wool", + "minecraft:damaged_anvil", + "minecraft:dandelion", + "minecraft:dark_oak_boat", + "minecraft:dark_oak_button", + "minecraft:dark_oak_door", + "minecraft:dark_oak_fence", + "minecraft:dark_oak_fence_gate", + "minecraft:dark_oak_leaves", + "minecraft:dark_oak_log", + "minecraft:dark_oak_planks", + "minecraft:dark_oak_pressure_plate", + "minecraft:dark_oak_sapling", + "minecraft:dark_oak_sign", + "minecraft:dark_oak_slab", + "minecraft:dark_oak_stairs", + "minecraft:dark_oak_trapdoor", + "minecraft:dark_oak_wood", + "minecraft:dark_prismarine", + "minecraft:dark_prismarine_slab", + "minecraft:dark_prismarine_stairs", + "minecraft:daylight_detector", + "minecraft:dead_brain_coral", + "minecraft:dead_brain_coral_block", + "minecraft:dead_brain_coral_fan", + "minecraft:dead_bubble_coral", + "minecraft:dead_bubble_coral_block", + "minecraft:dead_bubble_coral_fan", + "minecraft:dead_bush", + "minecraft:dead_fire_coral", + "minecraft:dead_fire_coral_block", + "minecraft:dead_fire_coral_fan", + "minecraft:dead_horn_coral", + "minecraft:dead_horn_coral_block", + "minecraft:dead_horn_coral_fan", + "minecraft:dead_tube_coral", + "minecraft:dead_tube_coral_block", + "minecraft:dead_tube_coral_fan", + "minecraft:debug_stick", + "minecraft:deepslate", + "minecraft:deepslate_brick_slab", + "minecraft:deepslate_brick_stairs", + "minecraft:deepslate_brick_wall", + "minecraft:deepslate_bricks", + "minecraft:deepslate_coal_ore", + "minecraft:deepslate_copper_ore", + "minecraft:deepslate_diamond_ore", + "minecraft:deepslate_emerald_ore", + "minecraft:deepslate_gold_ore", + "minecraft:deepslate_iron_ore", + "minecraft:deepslate_lapis_ore", + "minecraft:deepslate_redstone_ore", + "minecraft:deepslate_tile_slab", + "minecraft:deepslate_tile_stairs", + "minecraft:deepslate_tile_wall", + "minecraft:deepslate_tiles", + "minecraft:detector_rail", + "minecraft:diamond", + "minecraft:diamond_axe", + "minecraft:diamond_block", + "minecraft:diamond_boots", + "minecraft:diamond_chestplate", + "minecraft:diamond_helmet", + "minecraft:diamond_hoe", + "minecraft:diamond_horse_armor", + "minecraft:diamond_leggings", + "minecraft:diamond_ore", + "minecraft:diamond_pickaxe", + "minecraft:diamond_shovel", + "minecraft:diamond_sword", + "minecraft:diorite", + "minecraft:diorite_slab", + "minecraft:diorite_stairs", + "minecraft:diorite_wall", + "minecraft:dirt", + "minecraft:dirt_path", + "minecraft:dispenser", + "minecraft:dolphin_spawn_egg", + "minecraft:donkey_spawn_egg", + "minecraft:dragon_breath", + "minecraft:dragon_egg", + "minecraft:dragon_head", + "minecraft:dried_kelp", + "minecraft:dried_kelp_block", + "minecraft:dripstone_block", + "minecraft:dropper", + "minecraft:drowned_spawn_egg", + "minecraft:egg", + "minecraft:elder_guardian_spawn_egg", + "minecraft:elytra", + "minecraft:emerald", + "minecraft:emerald_block", + "minecraft:emerald_ore", + "minecraft:enchanted_book", + "minecraft:enchanted_golden_apple", + "minecraft:enchanting_table", + "minecraft:end_crystal", + "minecraft:end_portal_frame", + "minecraft:end_rod", + "minecraft:end_stone", + "minecraft:end_stone_brick_slab", + "minecraft:end_stone_brick_stairs", + "minecraft:end_stone_brick_wall", + "minecraft:end_stone_bricks", + "minecraft:ender_chest", + "minecraft:ender_eye", + "minecraft:ender_pearl", + "minecraft:enderman_spawn_egg", + "minecraft:endermite_spawn_egg", + "minecraft:evoker_spawn_egg", + "minecraft:experience_bottle", + "minecraft:exposed_copper", + "minecraft:exposed_cut_copper", + "minecraft:exposed_cut_copper_slab", + "minecraft:exposed_cut_copper_stairs", + "minecraft:farmland", + "minecraft:feather", + "minecraft:fermented_spider_eye", + "minecraft:fern", + "minecraft:filled_map", + "minecraft:fire_charge", + "minecraft:fire_coral", + "minecraft:fire_coral_block", + "minecraft:fire_coral_fan", + "minecraft:firework_rocket", + "minecraft:firework_star", + "minecraft:fishing_rod", + "minecraft:fletching_table", + "minecraft:flint", + "minecraft:flint_and_steel", + "minecraft:flower_banner_pattern", + "minecraft:flower_pot", + "minecraft:flowering_azalea", + "minecraft:flowering_azalea_leaves", + "minecraft:fox_spawn_egg", + "minecraft:furnace", + "minecraft:furnace_minecart", + "minecraft:ghast_spawn_egg", + "minecraft:ghast_tear", + "minecraft:gilded_blackstone", + "minecraft:glass", + "minecraft:glass_bottle", + "minecraft:glass_pane", + "minecraft:glistering_melon_slice", + "minecraft:globe_banner_pattern", + "minecraft:glow_berries", + "minecraft:glow_ink_sac", + "minecraft:glow_item_frame", + "minecraft:glow_lichen", + "minecraft:glow_squid_spawn_egg", + "minecraft:glowstone", + "minecraft:glowstone_dust", + "minecraft:goat_spawn_egg", + "minecraft:gold_block", + "minecraft:gold_ingot", + "minecraft:gold_nugget", + "minecraft:gold_ore", + "minecraft:golden_apple", + "minecraft:golden_axe", + "minecraft:golden_boots", + "minecraft:golden_carrot", + "minecraft:golden_chestplate", + "minecraft:golden_helmet", + "minecraft:golden_hoe", + "minecraft:golden_horse_armor", + "minecraft:golden_leggings", + "minecraft:golden_pickaxe", + "minecraft:golden_shovel", + "minecraft:golden_sword", + "minecraft:granite", + "minecraft:granite_slab", + "minecraft:granite_stairs", + "minecraft:granite_wall", + "minecraft:grass", + "minecraft:grass_block", + "minecraft:gravel", + "minecraft:gray_banner", + "minecraft:gray_bed", + "minecraft:gray_candle", + "minecraft:gray_carpet", + "minecraft:gray_concrete", + "minecraft:gray_concrete_powder", + "minecraft:gray_dye", + "minecraft:gray_glazed_terracotta", + "minecraft:gray_shulker_box", + "minecraft:gray_stained_glass", + "minecraft:gray_stained_glass_pane", + "minecraft:gray_terracotta", + "minecraft:gray_wool", + "minecraft:green_banner", + "minecraft:green_bed", + "minecraft:green_candle", + "minecraft:green_carpet", + "minecraft:green_concrete", + "minecraft:green_concrete_powder", + "minecraft:green_dye", + "minecraft:green_glazed_terracotta", + "minecraft:green_shulker_box", + "minecraft:green_stained_glass", + "minecraft:green_stained_glass_pane", + "minecraft:green_terracotta", + "minecraft:green_wool", + "minecraft:grindstone", + "minecraft:guardian_spawn_egg", + "minecraft:gunpowder", + "minecraft:hanging_roots", + "minecraft:hay_block", + "minecraft:heart_of_the_sea", + "minecraft:heavy_weighted_pressure_plate", + "minecraft:hoglin_spawn_egg", + "minecraft:honey_block", + "minecraft:honey_bottle", + "minecraft:honeycomb", + "minecraft:honeycomb_block", + "minecraft:hopper", + "minecraft:hopper_minecart", + "minecraft:horn_coral", + "minecraft:horn_coral_block", + "minecraft:horn_coral_fan", + "minecraft:horse_spawn_egg", + "minecraft:husk_spawn_egg", + "minecraft:ice", + "minecraft:infested_chiseled_stone_bricks", + "minecraft:infested_cobblestone", + "minecraft:infested_cracked_stone_bricks", + "minecraft:infested_deepslate", + "minecraft:infested_mossy_stone_bricks", + "minecraft:infested_stone", + "minecraft:infested_stone_bricks", + "minecraft:ink_sac", + "minecraft:iron_axe", + "minecraft:iron_bars", + "minecraft:iron_block", + "minecraft:iron_boots", + "minecraft:iron_chestplate", + "minecraft:iron_door", + "minecraft:iron_helmet", + "minecraft:iron_hoe", + "minecraft:iron_horse_armor", + "minecraft:iron_ingot", + "minecraft:iron_leggings", + "minecraft:iron_nugget", + "minecraft:iron_ore", + "minecraft:iron_pickaxe", + "minecraft:iron_shovel", + "minecraft:iron_sword", + "minecraft:iron_trapdoor", + "minecraft:item_frame", + "minecraft:jack_o_lantern", + "minecraft:jigsaw", + "minecraft:jukebox", + "minecraft:jungle_boat", + "minecraft:jungle_button", + "minecraft:jungle_door", + "minecraft:jungle_fence", + "minecraft:jungle_fence_gate", + "minecraft:jungle_leaves", + "minecraft:jungle_log", + "minecraft:jungle_planks", + "minecraft:jungle_pressure_plate", + "minecraft:jungle_sapling", + "minecraft:jungle_sign", + "minecraft:jungle_slab", + "minecraft:jungle_stairs", + "minecraft:jungle_trapdoor", + "minecraft:jungle_wood", + "minecraft:kelp", + "minecraft:knowledge_book", + "minecraft:ladder", + "minecraft:lantern", + "minecraft:lapis_block", + "minecraft:lapis_lazuli", + "minecraft:lapis_ore", + "minecraft:large_amethyst_bud", + "minecraft:large_fern", + "minecraft:lava_bucket", + "minecraft:lead", + "minecraft:leather", + "minecraft:leather_boots", + "minecraft:leather_chestplate", + "minecraft:leather_helmet", + "minecraft:leather_horse_armor", + "minecraft:leather_leggings", + "minecraft:lectern", + "minecraft:lever", + "minecraft:light", + "minecraft:light_blue_banner", + "minecraft:light_blue_bed", + "minecraft:light_blue_candle", + "minecraft:light_blue_carpet", + "minecraft:light_blue_concrete", + "minecraft:light_blue_concrete_powder", + "minecraft:light_blue_dye", + "minecraft:light_blue_glazed_terracotta", + "minecraft:light_blue_shulker_box", + "minecraft:light_blue_stained_glass", + "minecraft:light_blue_stained_glass_pane", + "minecraft:light_blue_terracotta", + "minecraft:light_blue_wool", + "minecraft:light_gray_banner", + "minecraft:light_gray_bed", + "minecraft:light_gray_candle", + "minecraft:light_gray_carpet", + "minecraft:light_gray_concrete", + "minecraft:light_gray_concrete_powder", + "minecraft:light_gray_dye", + "minecraft:light_gray_glazed_terracotta", + "minecraft:light_gray_shulker_box", + "minecraft:light_gray_stained_glass", + "minecraft:light_gray_stained_glass_pane", + "minecraft:light_gray_terracotta", + "minecraft:light_gray_wool", + "minecraft:light_weighted_pressure_plate", + "minecraft:lightning_rod", + "minecraft:lilac", + "minecraft:lily_of_the_valley", + "minecraft:lily_pad", + "minecraft:lime_banner", + "minecraft:lime_bed", + "minecraft:lime_candle", + "minecraft:lime_carpet", + "minecraft:lime_concrete", + "minecraft:lime_concrete_powder", + "minecraft:lime_dye", + "minecraft:lime_glazed_terracotta", + "minecraft:lime_shulker_box", + "minecraft:lime_stained_glass", + "minecraft:lime_stained_glass_pane", + "minecraft:lime_terracotta", + "minecraft:lime_wool", + "minecraft:lingering_potion", + "minecraft:llama_spawn_egg", + "minecraft:lodestone", + "minecraft:loom", + "minecraft:magenta_banner", + "minecraft:magenta_bed", + "minecraft:magenta_candle", + "minecraft:magenta_carpet", + "minecraft:magenta_concrete", + "minecraft:magenta_concrete_powder", + "minecraft:magenta_dye", + "minecraft:magenta_glazed_terracotta", + "minecraft:magenta_shulker_box", + "minecraft:magenta_stained_glass", + "minecraft:magenta_stained_glass_pane", + "minecraft:magenta_terracotta", + "minecraft:magenta_wool", + "minecraft:magma_block", + "minecraft:magma_cream", + "minecraft:magma_cube_spawn_egg", + "minecraft:map", + "minecraft:medium_amethyst_bud", + "minecraft:melon", + "minecraft:melon_seeds", + "minecraft:melon_slice", + "minecraft:milk_bucket", + "minecraft:minecart", + "minecraft:mojang_banner_pattern", + "minecraft:mooshroom_spawn_egg", + "minecraft:moss_block", + "minecraft:moss_carpet", + "minecraft:mossy_cobblestone", + "minecraft:mossy_cobblestone_slab", + "minecraft:mossy_cobblestone_stairs", + "minecraft:mossy_cobblestone_wall", + "minecraft:mossy_stone_brick_slab", + "minecraft:mossy_stone_brick_stairs", + "minecraft:mossy_stone_brick_wall", + "minecraft:mossy_stone_bricks", + "minecraft:mule_spawn_egg", + "minecraft:mushroom_stem", + "minecraft:mushroom_stew", + "minecraft:music_disc_11", + "minecraft:music_disc_13", + "minecraft:music_disc_blocks", + "minecraft:music_disc_cat", + "minecraft:music_disc_chirp", + "minecraft:music_disc_far", + "minecraft:music_disc_mall", + "minecraft:music_disc_mellohi", + "minecraft:music_disc_pigstep", + "minecraft:music_disc_stal", + "minecraft:music_disc_strad", + "minecraft:music_disc_wait", + "minecraft:music_disc_ward", + "minecraft:mutton", + "minecraft:mycelium", + "minecraft:name_tag", + "minecraft:nautilus_shell", + "minecraft:nether_brick", + "minecraft:nether_brick_fence", + "minecraft:nether_brick_slab", + "minecraft:nether_brick_stairs", + "minecraft:nether_brick_wall", + "minecraft:nether_bricks", + "minecraft:nether_gold_ore", + "minecraft:nether_quartz_ore", + "minecraft:nether_sprouts", + "minecraft:nether_star", + "minecraft:nether_wart", + "minecraft:nether_wart_block", + "minecraft:netherite_axe", + "minecraft:netherite_block", + "minecraft:netherite_boots", + "minecraft:netherite_chestplate", + "minecraft:netherite_helmet", + "minecraft:netherite_hoe", + "minecraft:netherite_ingot", + "minecraft:netherite_leggings", + "minecraft:netherite_pickaxe", + "minecraft:netherite_scrap", + "minecraft:netherite_shovel", + "minecraft:netherite_sword", + "minecraft:netherrack", + "minecraft:note_block", + "minecraft:oak_boat", + "minecraft:oak_button", + "minecraft:oak_door", + "minecraft:oak_fence", + "minecraft:oak_fence_gate", + "minecraft:oak_leaves", + "minecraft:oak_log", + "minecraft:oak_planks", + "minecraft:oak_pressure_plate", + "minecraft:oak_sapling", + "minecraft:oak_sign", + "minecraft:oak_slab", + "minecraft:oak_stairs", + "minecraft:oak_trapdoor", + "minecraft:oak_wood", + "minecraft:observer", + "minecraft:obsidian", + "minecraft:ocelot_spawn_egg", + "minecraft:orange_banner", + "minecraft:orange_bed", + "minecraft:orange_candle", + "minecraft:orange_carpet", + "minecraft:orange_concrete", + "minecraft:orange_concrete_powder", + "minecraft:orange_dye", + "minecraft:orange_glazed_terracotta", + "minecraft:orange_shulker_box", + "minecraft:orange_stained_glass", + "minecraft:orange_stained_glass_pane", + "minecraft:orange_terracotta", + "minecraft:orange_tulip", + "minecraft:orange_wool", + "minecraft:oxeye_daisy", + "minecraft:oxidized_copper", + "minecraft:oxidized_cut_copper", + "minecraft:oxidized_cut_copper_slab", + "minecraft:oxidized_cut_copper_stairs", + "minecraft:packed_ice", + "minecraft:painting", + "minecraft:panda_spawn_egg", + "minecraft:paper", + "minecraft:parrot_spawn_egg", + "minecraft:peony", + "minecraft:petrified_oak_slab", + "minecraft:phantom_membrane", + "minecraft:phantom_spawn_egg", + "minecraft:pig_spawn_egg", + "minecraft:piglin_banner_pattern", + "minecraft:piglin_brute_spawn_egg", + "minecraft:piglin_spawn_egg", + "minecraft:pillager_spawn_egg", + "minecraft:pink_banner", + "minecraft:pink_bed", + "minecraft:pink_candle", + "minecraft:pink_carpet", + "minecraft:pink_concrete", + "minecraft:pink_concrete_powder", + "minecraft:pink_dye", + "minecraft:pink_glazed_terracotta", + "minecraft:pink_shulker_box", + "minecraft:pink_stained_glass", + "minecraft:pink_stained_glass_pane", + "minecraft:pink_terracotta", + "minecraft:pink_tulip", + "minecraft:pink_wool", + "minecraft:piston", + "minecraft:player_head", + "minecraft:podzol", + "minecraft:pointed_dripstone", + "minecraft:poisonous_potato", + "minecraft:polar_bear_spawn_egg", + "minecraft:polished_andesite", + "minecraft:polished_andesite_slab", + "minecraft:polished_andesite_stairs", + "minecraft:polished_basalt", + "minecraft:polished_blackstone", + "minecraft:polished_blackstone_brick_slab", + "minecraft:polished_blackstone_brick_stairs", + "minecraft:polished_blackstone_brick_wall", + "minecraft:polished_blackstone_bricks", + "minecraft:polished_blackstone_button", + "minecraft:polished_blackstone_pressure_plate", + "minecraft:polished_blackstone_slab", + "minecraft:polished_blackstone_stairs", + "minecraft:polished_blackstone_wall", + "minecraft:polished_deepslate", + "minecraft:polished_deepslate_slab", + "minecraft:polished_deepslate_stairs", + "minecraft:polished_deepslate_wall", + "minecraft:polished_diorite", + "minecraft:polished_diorite_slab", + "minecraft:polished_diorite_stairs", + "minecraft:polished_granite", + "minecraft:polished_granite_slab", + "minecraft:polished_granite_stairs", + "minecraft:popped_chorus_fruit", + "minecraft:poppy", + "minecraft:porkchop", + "minecraft:potato", + "minecraft:potion", + "minecraft:powder_snow_bucket", + "minecraft:powered_rail", + "minecraft:prismarine", + "minecraft:prismarine_brick_slab", + "minecraft:prismarine_brick_stairs", + "minecraft:prismarine_bricks", + "minecraft:prismarine_crystals", + "minecraft:prismarine_shard", + "minecraft:prismarine_slab", + "minecraft:prismarine_stairs", + "minecraft:prismarine_wall", + "minecraft:pufferfish", + "minecraft:pufferfish_bucket", + "minecraft:pufferfish_spawn_egg", + "minecraft:pumpkin", + "minecraft:pumpkin_pie", + "minecraft:pumpkin_seeds", + "minecraft:purple_banner", + "minecraft:purple_bed", + "minecraft:purple_candle", + "minecraft:purple_carpet", + "minecraft:purple_concrete", + "minecraft:purple_concrete_powder", + "minecraft:purple_dye", + "minecraft:purple_glazed_terracotta", + "minecraft:purple_shulker_box", + "minecraft:purple_stained_glass", + "minecraft:purple_stained_glass_pane", + "minecraft:purple_terracotta", + "minecraft:purple_wool", + "minecraft:purpur_block", + "minecraft:purpur_pillar", + "minecraft:purpur_slab", + "minecraft:purpur_stairs", + "minecraft:quartz", + "minecraft:quartz_block", + "minecraft:quartz_bricks", + "minecraft:quartz_pillar", + "minecraft:quartz_slab", + "minecraft:quartz_stairs", + "minecraft:rabbit", + "minecraft:rabbit_foot", + "minecraft:rabbit_hide", + "minecraft:rabbit_spawn_egg", + "minecraft:rabbit_stew", + "minecraft:rail", + "minecraft:ravager_spawn_egg", + "minecraft:raw_copper", + "minecraft:raw_copper_block", + "minecraft:raw_gold", + "minecraft:raw_gold_block", + "minecraft:raw_iron", + "minecraft:raw_iron_block", + "minecraft:red_banner", + "minecraft:red_bed", + "minecraft:red_candle", + "minecraft:red_carpet", + "minecraft:red_concrete", + "minecraft:red_concrete_powder", + "minecraft:red_dye", + "minecraft:red_glazed_terracotta", + "minecraft:red_mushroom", + "minecraft:red_mushroom_block", + "minecraft:red_nether_brick_slab", + "minecraft:red_nether_brick_stairs", + "minecraft:red_nether_brick_wall", + "minecraft:red_nether_bricks", + "minecraft:red_sand", + "minecraft:red_sandstone", + "minecraft:red_sandstone_slab", + "minecraft:red_sandstone_stairs", + "minecraft:red_sandstone_wall", + "minecraft:red_shulker_box", + "minecraft:red_stained_glass", + "minecraft:red_stained_glass_pane", + "minecraft:red_terracotta", + "minecraft:red_tulip", + "minecraft:red_wool", + "minecraft:redstone", + "minecraft:redstone_block", + "minecraft:redstone_lamp", + "minecraft:redstone_ore", + "minecraft:redstone_torch", + "minecraft:repeater", + "minecraft:repeating_command_block", + "minecraft:respawn_anchor", + "minecraft:rooted_dirt", + "minecraft:rose_bush", + "minecraft:rotten_flesh", + "minecraft:saddle", + "minecraft:salmon", + "minecraft:salmon_bucket", + "minecraft:salmon_spawn_egg", + "minecraft:sand", + "minecraft:sandstone", + "minecraft:sandstone_slab", + "minecraft:sandstone_stairs", + "minecraft:sandstone_wall", + "minecraft:scaffolding", + "minecraft:sculk_sensor", + "minecraft:scute", + "minecraft:sea_lantern", + "minecraft:sea_pickle", + "minecraft:seagrass", + "minecraft:shears", + "minecraft:sheep_spawn_egg", + "minecraft:shield", + "minecraft:shroomlight", + "minecraft:shulker_box", + "minecraft:shulker_shell", + "minecraft:shulker_spawn_egg", + "minecraft:silverfish_spawn_egg", + "minecraft:skeleton_horse_spawn_egg", + "minecraft:skeleton_skull", + "minecraft:skeleton_spawn_egg", + "minecraft:skull_banner_pattern", + "minecraft:slime_ball", + "minecraft:slime_block", + "minecraft:slime_spawn_egg", + "minecraft:small_amethyst_bud", + "minecraft:small_dripleaf", + "minecraft:smithing_table", + "minecraft:smoker", + "minecraft:smooth_basalt", + "minecraft:smooth_quartz", + "minecraft:smooth_quartz_slab", + "minecraft:smooth_quartz_stairs", + "minecraft:smooth_red_sandstone", + "minecraft:smooth_red_sandstone_slab", + "minecraft:smooth_red_sandstone_stairs", + "minecraft:smooth_sandstone", + "minecraft:smooth_sandstone_slab", + "minecraft:smooth_sandstone_stairs", + "minecraft:smooth_stone", + "minecraft:smooth_stone_slab", + "minecraft:snow", + "minecraft:snow_block", + "minecraft:snowball", + "minecraft:soul_campfire", + "minecraft:soul_lantern", + "minecraft:soul_sand", + "minecraft:soul_soil", + "minecraft:soul_torch", + "minecraft:spawner", + "minecraft:spectral_arrow", + "minecraft:spider_eye", + "minecraft:spider_spawn_egg", + "minecraft:splash_potion", + "minecraft:sponge", + "minecraft:spore_blossom", + "minecraft:spruce_boat", + "minecraft:spruce_button", + "minecraft:spruce_door", + "minecraft:spruce_fence", + "minecraft:spruce_fence_gate", + "minecraft:spruce_leaves", + "minecraft:spruce_log", + "minecraft:spruce_planks", + "minecraft:spruce_pressure_plate", + "minecraft:spruce_sapling", + "minecraft:spruce_sign", + "minecraft:spruce_slab", + "minecraft:spruce_stairs", + "minecraft:spruce_trapdoor", + "minecraft:spruce_wood", + "minecraft:spyglass", + "minecraft:squid_spawn_egg", + "minecraft:stick", + "minecraft:sticky_piston", + "minecraft:stone", + "minecraft:stone_axe", + "minecraft:stone_brick_slab", + "minecraft:stone_brick_stairs", + "minecraft:stone_brick_wall", + "minecraft:stone_bricks", + "minecraft:stone_button", + "minecraft:stone_hoe", + "minecraft:stone_pickaxe", + "minecraft:stone_pressure_plate", + "minecraft:stone_shovel", + "minecraft:stone_slab", + "minecraft:stone_stairs", + "minecraft:stone_sword", + "minecraft:stonecutter", + "minecraft:stray_spawn_egg", + "minecraft:strider_spawn_egg", + "minecraft:string", + "minecraft:stripped_acacia_log", + "minecraft:stripped_acacia_wood", + "minecraft:stripped_birch_log", + "minecraft:stripped_birch_wood", + "minecraft:stripped_crimson_hyphae", + "minecraft:stripped_crimson_stem", + "minecraft:stripped_dark_oak_log", + "minecraft:stripped_dark_oak_wood", + "minecraft:stripped_jungle_log", + "minecraft:stripped_jungle_wood", + "minecraft:stripped_oak_log", + "minecraft:stripped_oak_wood", + "minecraft:stripped_spruce_log", + "minecraft:stripped_spruce_wood", + "minecraft:stripped_warped_hyphae", + "minecraft:stripped_warped_stem", + "minecraft:structure_block", + "minecraft:structure_void", + "minecraft:sugar", + "minecraft:sugar_cane", + "minecraft:sunflower", + "minecraft:suspicious_stew", + "minecraft:sweet_berries", + "minecraft:tall_grass", + "minecraft:target", + "minecraft:terracotta", + "minecraft:tinted_glass", + "minecraft:tipped_arrow", + "minecraft:tnt", + "minecraft:tnt_minecart", + "minecraft:torch", + "minecraft:totem_of_undying", + "minecraft:trader_llama_spawn_egg", + "minecraft:trapped_chest", + "minecraft:trident", + "minecraft:tripwire_hook", + "minecraft:tropical_fish", + "minecraft:tropical_fish_bucket", + "minecraft:tropical_fish_spawn_egg", + "minecraft:tube_coral", + "minecraft:tube_coral_block", + "minecraft:tube_coral_fan", + "minecraft:tuff", + "minecraft:turtle_egg", + "minecraft:turtle_helmet", + "minecraft:turtle_spawn_egg", + "minecraft:twisting_vines", + "minecraft:vex_spawn_egg", + "minecraft:villager_spawn_egg", + "minecraft:vindicator_spawn_egg", + "minecraft:vine", + "minecraft:wandering_trader_spawn_egg", + "minecraft:warped_button", + "minecraft:warped_door", + "minecraft:warped_fence", + "minecraft:warped_fence_gate", + "minecraft:warped_fungus", + "minecraft:warped_fungus_on_a_stick", + "minecraft:warped_hyphae", + "minecraft:warped_nylium", + "minecraft:warped_planks", + "minecraft:warped_pressure_plate", + "minecraft:warped_roots", + "minecraft:warped_sign", + "minecraft:warped_slab", + "minecraft:warped_stairs", + "minecraft:warped_stem", + "minecraft:warped_trapdoor", + "minecraft:warped_wart_block", + "minecraft:water_bucket", + "minecraft:waxed_copper_block", + "minecraft:waxed_cut_copper", + "minecraft:waxed_cut_copper_slab", + "minecraft:waxed_cut_copper_stairs", + "minecraft:waxed_exposed_copper", + "minecraft:waxed_exposed_cut_copper", + "minecraft:waxed_exposed_cut_copper_slab", + "minecraft:waxed_exposed_cut_copper_stairs", + "minecraft:waxed_oxidized_copper", + "minecraft:waxed_oxidized_cut_copper", + "minecraft:waxed_oxidized_cut_copper_slab", + "minecraft:waxed_oxidized_cut_copper_stairs", + "minecraft:waxed_weathered_copper", + "minecraft:waxed_weathered_cut_copper", + "minecraft:waxed_weathered_cut_copper_slab", + "minecraft:waxed_weathered_cut_copper_stairs", + "minecraft:weathered_copper", + "minecraft:weathered_cut_copper", + "minecraft:weathered_cut_copper_slab", + "minecraft:weathered_cut_copper_stairs", + "minecraft:weeping_vines", + "minecraft:wet_sponge", + "minecraft:wheat", + "minecraft:wheat_seeds", + "minecraft:white_banner", + "minecraft:white_bed", + "minecraft:white_candle", + "minecraft:white_carpet", + "minecraft:white_concrete", + "minecraft:white_concrete_powder", + "minecraft:white_dye", + "minecraft:white_glazed_terracotta", + "minecraft:white_shulker_box", + "minecraft:white_stained_glass", + "minecraft:white_stained_glass_pane", + "minecraft:white_terracotta", + "minecraft:white_tulip", + "minecraft:white_wool", + "minecraft:witch_spawn_egg", + "minecraft:wither_rose", + "minecraft:wither_skeleton_skull", + "minecraft:wither_skeleton_spawn_egg", + "minecraft:wolf_spawn_egg", + "minecraft:wooden_axe", + "minecraft:wooden_hoe", + "minecraft:wooden_pickaxe", + "minecraft:wooden_shovel", + "minecraft:wooden_sword", + "minecraft:writable_book", + "minecraft:written_book", + "minecraft:yellow_banner", + "minecraft:yellow_bed", + "minecraft:yellow_candle", + "minecraft:yellow_carpet", + "minecraft:yellow_concrete", + "minecraft:yellow_concrete_powder", + "minecraft:yellow_dye", + "minecraft:yellow_glazed_terracotta", + "minecraft:yellow_shulker_box", + "minecraft:yellow_stained_glass", + "minecraft:yellow_stained_glass_pane", + "minecraft:yellow_terracotta", + "minecraft:yellow_wool", + "minecraft:zoglin_spawn_egg", + "minecraft:zombie_head", + "minecraft:zombie_horse_spawn_egg", + "minecraft:zombie_spawn_egg", + "minecraft:zombie_villager_spawn_egg", + "minecraft:zombified_piglin_spawn_egg" + ], + "itemtags": { + "minecraft:acacia_logs": [ + "minecraft:acacia_log", + "minecraft:acacia_wood", + "minecraft:stripped_acacia_log", + "minecraft:stripped_acacia_wood" + ], + "minecraft:anvil": [ + "minecraft:anvil", + "minecraft:chipped_anvil", + "minecraft:damaged_anvil" + ], + "minecraft:arrows": [ + "minecraft:arrow", + "minecraft:spectral_arrow", + "minecraft:tipped_arrow" + ], + "minecraft:axolotl_tempt_items": [ + "minecraft:tropical_fish_bucket" + ], + "minecraft:banners": [ + "minecraft:black_banner", + "minecraft:blue_banner", + "minecraft:brown_banner", + "minecraft:cyan_banner", + "minecraft:gray_banner", + "minecraft:green_banner", + "minecraft:light_blue_banner", + "minecraft:light_gray_banner", + "minecraft:lime_banner", + "minecraft:magenta_banner", + "minecraft:orange_banner", + "minecraft:pink_banner", + "minecraft:purple_banner", + "minecraft:red_banner", + "minecraft:white_banner", + "minecraft:yellow_banner" + ], + "minecraft:beacon_payment_items": [ + "minecraft:diamond", + "minecraft:emerald", + "minecraft:gold_ingot", + "minecraft:iron_ingot", + "minecraft:netherite_ingot" + ], + "minecraft:beds": [ + "minecraft:black_bed", + "minecraft:blue_bed", + "minecraft:brown_bed", + "minecraft:cyan_bed", + "minecraft:gray_bed", + "minecraft:green_bed", + "minecraft:light_blue_bed", + "minecraft:light_gray_bed", + "minecraft:lime_bed", + "minecraft:magenta_bed", + "minecraft:orange_bed", + "minecraft:pink_bed", + "minecraft:purple_bed", + "minecraft:red_bed", + "minecraft:white_bed", + "minecraft:yellow_bed" + ], + "minecraft:birch_logs": [ + "minecraft:birch_log", + "minecraft:birch_wood", + "minecraft:stripped_birch_log", + "minecraft:stripped_birch_wood" + ], + "minecraft:boats": [ + "minecraft:acacia_boat", + "minecraft:birch_boat", + "minecraft:dark_oak_boat", + "minecraft:jungle_boat", + "minecraft:oak_boat", + "minecraft:spruce_boat" + ], + "minecraft:buttons": [ + "minecraft:acacia_button", + "minecraft:birch_button", + "minecraft:crimson_button", + "minecraft:dark_oak_button", + "minecraft:jungle_button", + "minecraft:oak_button", + "minecraft:polished_blackstone_button", + "minecraft:spruce_button", + "minecraft:stone_button", + "minecraft:warped_button" + ], + "minecraft:candles": [ + "minecraft:black_candle", + "minecraft:blue_candle", + "minecraft:brown_candle", + "minecraft:candle", + "minecraft:cyan_candle", + "minecraft:gray_candle", + "minecraft:green_candle", + "minecraft:light_blue_candle", + "minecraft:light_gray_candle", + "minecraft:lime_candle", + "minecraft:magenta_candle", + "minecraft:orange_candle", + "minecraft:pink_candle", + "minecraft:purple_candle", + "minecraft:red_candle", + "minecraft:white_candle", + "minecraft:yellow_candle" + ], + "minecraft:carpets": [ + "minecraft:black_carpet", + "minecraft:blue_carpet", + "minecraft:brown_carpet", + "minecraft:cyan_carpet", + "minecraft:gray_carpet", + "minecraft:green_carpet", + "minecraft:light_blue_carpet", + "minecraft:light_gray_carpet", + "minecraft:lime_carpet", + "minecraft:magenta_carpet", + "minecraft:orange_carpet", + "minecraft:pink_carpet", + "minecraft:purple_carpet", + "minecraft:red_carpet", + "minecraft:white_carpet", + "minecraft:yellow_carpet" + ], + "minecraft:cluster_max_harvestables": [ + "minecraft:diamond_pickaxe", + "minecraft:golden_pickaxe", + "minecraft:iron_pickaxe", + "minecraft:netherite_pickaxe", + "minecraft:stone_pickaxe", + "minecraft:wooden_pickaxe" + ], + "minecraft:coal_ores": [ + "minecraft:coal_ore", + "minecraft:deepslate_coal_ore" + ], + "minecraft:coals": [ + "minecraft:charcoal", + "minecraft:coal" + ], + "minecraft:copper_ores": [ + "minecraft:copper_ore", + "minecraft:deepslate_copper_ore" + ], + "minecraft:creeper_drop_music_discs": [ + "minecraft:music_disc_11", + "minecraft:music_disc_13", + "minecraft:music_disc_blocks", + "minecraft:music_disc_cat", + "minecraft:music_disc_chirp", + "minecraft:music_disc_far", + "minecraft:music_disc_mall", + "minecraft:music_disc_mellohi", + "minecraft:music_disc_stal", + "minecraft:music_disc_strad", + "minecraft:music_disc_wait", + "minecraft:music_disc_ward" + ], + "minecraft:crimson_stems": [ + "minecraft:crimson_hyphae", + "minecraft:crimson_stem", + "minecraft:stripped_crimson_hyphae", + "minecraft:stripped_crimson_stem" + ], + "minecraft:dark_oak_logs": [ + "minecraft:dark_oak_log", + "minecraft:dark_oak_wood", + "minecraft:stripped_dark_oak_log", + "minecraft:stripped_dark_oak_wood" + ], + "minecraft:diamond_ores": [ + "minecraft:deepslate_diamond_ore", + "minecraft:diamond_ore" + ], + "minecraft:doors": [ + "minecraft:acacia_door", + "minecraft:birch_door", + "minecraft:crimson_door", + "minecraft:dark_oak_door", + "minecraft:iron_door", + "minecraft:jungle_door", + "minecraft:oak_door", + "minecraft:spruce_door", + "minecraft:warped_door" + ], + "minecraft:emerald_ores": [ + "minecraft:deepslate_emerald_ore", + "minecraft:emerald_ore" + ], + "minecraft:fences": [ + "minecraft:acacia_fence", + "minecraft:birch_fence", + "minecraft:crimson_fence", + "minecraft:dark_oak_fence", + "minecraft:jungle_fence", + "minecraft:nether_brick_fence", + "minecraft:oak_fence", + "minecraft:spruce_fence", + "minecraft:warped_fence" + ], + "minecraft:fishes": [ + "minecraft:cod", + "minecraft:cooked_cod", + "minecraft:cooked_salmon", + "minecraft:pufferfish", + "minecraft:salmon", + "minecraft:tropical_fish" + ], + "minecraft:flowers": [ + "minecraft:allium", + "minecraft:azure_bluet", + "minecraft:blue_orchid", + "minecraft:cornflower", + "minecraft:dandelion", + "minecraft:flowering_azalea", + "minecraft:flowering_azalea_leaves", + "minecraft:lilac", + "minecraft:lily_of_the_valley", + "minecraft:orange_tulip", + "minecraft:oxeye_daisy", + "minecraft:peony", + "minecraft:pink_tulip", + "minecraft:poppy", + "minecraft:red_tulip", + "minecraft:rose_bush", + "minecraft:sunflower", + "minecraft:white_tulip", + "minecraft:wither_rose" + ], + "minecraft:fox_food": [ + "minecraft:glow_berries", + "minecraft:sweet_berries" + ], + "minecraft:freeze_immune_wearables": [ + "minecraft:leather_boots", + "minecraft:leather_chestplate", + "minecraft:leather_helmet", + "minecraft:leather_horse_armor", + "minecraft:leather_leggings" + ], + "minecraft:gold_ores": [ + "minecraft:deepslate_gold_ore", + "minecraft:gold_ore", + "minecraft:nether_gold_ore" + ], + "minecraft:ignored_by_piglin_babies": [ + "minecraft:leather" + ], + "minecraft:iron_ores": [ + "minecraft:deepslate_iron_ore", + "minecraft:iron_ore" + ], + "minecraft:jungle_logs": [ + "minecraft:jungle_log", + "minecraft:jungle_wood", + "minecraft:stripped_jungle_log", + "minecraft:stripped_jungle_wood" + ], + "minecraft:lapis_ores": [ + "minecraft:deepslate_lapis_ore", + "minecraft:lapis_ore" + ], + "minecraft:leaves": [ + "minecraft:acacia_leaves", + "minecraft:azalea_leaves", + "minecraft:birch_leaves", + "minecraft:dark_oak_leaves", + "minecraft:flowering_azalea_leaves", + "minecraft:jungle_leaves", + "minecraft:oak_leaves", + "minecraft:spruce_leaves" + ], + "minecraft:lectern_books": [ + "minecraft:writable_book", + "minecraft:written_book" + ], + "minecraft:logs": [ + "minecraft:acacia_log", + "minecraft:acacia_wood", + "minecraft:birch_log", + "minecraft:birch_wood", + "minecraft:crimson_hyphae", + "minecraft:crimson_stem", + "minecraft:dark_oak_log", + "minecraft:dark_oak_wood", + "minecraft:jungle_log", + "minecraft:jungle_wood", + "minecraft:oak_log", + "minecraft:oak_wood", + "minecraft:spruce_log", + "minecraft:spruce_wood", + "minecraft:stripped_acacia_log", + "minecraft:stripped_acacia_wood", + "minecraft:stripped_birch_log", + "minecraft:stripped_birch_wood", + "minecraft:stripped_crimson_hyphae", + "minecraft:stripped_crimson_stem", + "minecraft:stripped_dark_oak_log", + "minecraft:stripped_dark_oak_wood", + "minecraft:stripped_jungle_log", + "minecraft:stripped_jungle_wood", + "minecraft:stripped_oak_log", + "minecraft:stripped_oak_wood", + "minecraft:stripped_spruce_log", + "minecraft:stripped_spruce_wood", + "minecraft:stripped_warped_hyphae", + "minecraft:stripped_warped_stem", + "minecraft:warped_hyphae", + "minecraft:warped_stem" + ], + "minecraft:logs_that_burn": [ + "minecraft:acacia_log", + "minecraft:acacia_wood", + "minecraft:birch_log", + "minecraft:birch_wood", + "minecraft:dark_oak_log", + "minecraft:dark_oak_wood", + "minecraft:jungle_log", + "minecraft:jungle_wood", + "minecraft:oak_log", + "minecraft:oak_wood", + "minecraft:spruce_log", + "minecraft:spruce_wood", + "minecraft:stripped_acacia_log", + "minecraft:stripped_acacia_wood", + "minecraft:stripped_birch_log", + "minecraft:stripped_birch_wood", + "minecraft:stripped_dark_oak_log", + "minecraft:stripped_dark_oak_wood", + "minecraft:stripped_jungle_log", + "minecraft:stripped_jungle_wood", + "minecraft:stripped_oak_log", + "minecraft:stripped_oak_wood", + "minecraft:stripped_spruce_log", + "minecraft:stripped_spruce_wood" + ], + "minecraft:music_discs": [ + "minecraft:music_disc_11", + "minecraft:music_disc_13", + "minecraft:music_disc_blocks", + "minecraft:music_disc_cat", + "minecraft:music_disc_chirp", + "minecraft:music_disc_far", + "minecraft:music_disc_mall", + "minecraft:music_disc_mellohi", + "minecraft:music_disc_pigstep", + "minecraft:music_disc_stal", + "minecraft:music_disc_strad", + "minecraft:music_disc_wait", + "minecraft:music_disc_ward" + ], + "minecraft:non_flammable_wood": [ + "minecraft:crimson_button", + "minecraft:crimson_door", + "minecraft:crimson_fence", + "minecraft:crimson_fence_gate", + "minecraft:crimson_hyphae", + "minecraft:crimson_planks", + "minecraft:crimson_pressure_plate", + "minecraft:crimson_sign", + "minecraft:crimson_slab", + "minecraft:crimson_stairs", + "minecraft:crimson_stem", + "minecraft:crimson_trapdoor", + "minecraft:stripped_crimson_hyphae", + "minecraft:stripped_crimson_stem", + "minecraft:stripped_warped_hyphae", + "minecraft:stripped_warped_stem", + "minecraft:warped_button", + "minecraft:warped_door", + "minecraft:warped_fence", + "minecraft:warped_fence_gate", + "minecraft:warped_hyphae", + "minecraft:warped_planks", + "minecraft:warped_pressure_plate", + "minecraft:warped_sign", + "minecraft:warped_slab", + "minecraft:warped_stairs", + "minecraft:warped_stem", + "minecraft:warped_trapdoor" + ], + "minecraft:oak_logs": [ + "minecraft:oak_log", + "minecraft:oak_wood", + "minecraft:stripped_oak_log", + "minecraft:stripped_oak_wood" + ], + "minecraft:occludes_vibration_signals": [ + "minecraft:black_wool", + "minecraft:blue_wool", + "minecraft:brown_wool", + "minecraft:cyan_wool", + "minecraft:gray_wool", + "minecraft:green_wool", + "minecraft:light_blue_wool", + "minecraft:light_gray_wool", + "minecraft:lime_wool", + "minecraft:magenta_wool", + "minecraft:orange_wool", + "minecraft:pink_wool", + "minecraft:purple_wool", + "minecraft:red_wool", + "minecraft:white_wool", + "minecraft:yellow_wool" + ], + "minecraft:piglin_food": [ + "minecraft:cooked_porkchop", + "minecraft:porkchop" + ], + "minecraft:piglin_loved": [ + "minecraft:bell", + "minecraft:clock", + "minecraft:deepslate_gold_ore", + "minecraft:enchanted_golden_apple", + "minecraft:gilded_blackstone", + "minecraft:glistering_melon_slice", + "minecraft:gold_block", + "minecraft:gold_ingot", + "minecraft:gold_ore", + "minecraft:golden_apple", + "minecraft:golden_axe", + "minecraft:golden_boots", + "minecraft:golden_carrot", + "minecraft:golden_chestplate", + "minecraft:golden_helmet", + "minecraft:golden_hoe", + "minecraft:golden_horse_armor", + "minecraft:golden_leggings", + "minecraft:golden_pickaxe", + "minecraft:golden_shovel", + "minecraft:golden_sword", + "minecraft:light_weighted_pressure_plate", + "minecraft:nether_gold_ore", + "minecraft:raw_gold", + "minecraft:raw_gold_block" + ], + "minecraft:piglin_repellents": [ + "minecraft:soul_campfire", + "minecraft:soul_lantern", + "minecraft:soul_torch" + ], + "minecraft:planks": [ + "minecraft:acacia_planks", + "minecraft:birch_planks", + "minecraft:crimson_planks", + "minecraft:dark_oak_planks", + "minecraft:jungle_planks", + "minecraft:oak_planks", + "minecraft:spruce_planks", + "minecraft:warped_planks" + ], + "minecraft:rails": [ + "minecraft:activator_rail", + "minecraft:detector_rail", + "minecraft:powered_rail", + "minecraft:rail" + ], + "minecraft:redstone_ores": [ + "minecraft:deepslate_redstone_ore", + "minecraft:redstone_ore" + ], + "minecraft:sand": [ + "minecraft:red_sand", + "minecraft:sand" + ], + "minecraft:saplings": [ + "minecraft:acacia_sapling", + "minecraft:azalea", + "minecraft:birch_sapling", + "minecraft:dark_oak_sapling", + "minecraft:flowering_azalea", + "minecraft:jungle_sapling", + "minecraft:oak_sapling", + "minecraft:spruce_sapling" + ], + "minecraft:signs": [ + "minecraft:acacia_sign", + "minecraft:birch_sign", + "minecraft:crimson_sign", + "minecraft:dark_oak_sign", + "minecraft:jungle_sign", + "minecraft:oak_sign", + "minecraft:spruce_sign", + "minecraft:warped_sign" + ], + "minecraft:slabs": [ + "minecraft:acacia_slab", + "minecraft:andesite_slab", + "minecraft:birch_slab", + "minecraft:blackstone_slab", + "minecraft:brick_slab", + "minecraft:cobbled_deepslate_slab", + "minecraft:cobblestone_slab", + "minecraft:crimson_slab", + "minecraft:cut_copper_slab", + "minecraft:cut_red_sandstone_slab", + "minecraft:cut_sandstone_slab", + "minecraft:dark_oak_slab", + "minecraft:dark_prismarine_slab", + "minecraft:deepslate_brick_slab", + "minecraft:deepslate_tile_slab", + "minecraft:diorite_slab", + "minecraft:end_stone_brick_slab", + "minecraft:exposed_cut_copper_slab", + "minecraft:granite_slab", + "minecraft:jungle_slab", + "minecraft:mossy_cobblestone_slab", + "minecraft:mossy_stone_brick_slab", + "minecraft:nether_brick_slab", + "minecraft:oak_slab", + "minecraft:oxidized_cut_copper_slab", + "minecraft:petrified_oak_slab", + "minecraft:polished_andesite_slab", + "minecraft:polished_blackstone_brick_slab", + "minecraft:polished_blackstone_slab", + "minecraft:polished_deepslate_slab", + "minecraft:polished_diorite_slab", + "minecraft:polished_granite_slab", + "minecraft:prismarine_brick_slab", + "minecraft:prismarine_slab", + "minecraft:purpur_slab", + "minecraft:quartz_slab", + "minecraft:red_nether_brick_slab", + "minecraft:red_sandstone_slab", + "minecraft:sandstone_slab", + "minecraft:smooth_quartz_slab", + "minecraft:smooth_red_sandstone_slab", + "minecraft:smooth_sandstone_slab", + "minecraft:smooth_stone_slab", + "minecraft:spruce_slab", + "minecraft:stone_brick_slab", + "minecraft:stone_slab", + "minecraft:warped_slab", + "minecraft:waxed_cut_copper_slab", + "minecraft:waxed_exposed_cut_copper_slab", + "minecraft:waxed_oxidized_cut_copper_slab", + "minecraft:waxed_weathered_cut_copper_slab", + "minecraft:weathered_cut_copper_slab" + ], + "minecraft:small_flowers": [ + "minecraft:allium", + "minecraft:azure_bluet", + "minecraft:blue_orchid", + "minecraft:cornflower", + "minecraft:dandelion", + "minecraft:lily_of_the_valley", + "minecraft:orange_tulip", + "minecraft:oxeye_daisy", + "minecraft:pink_tulip", + "minecraft:poppy", + "minecraft:red_tulip", + "minecraft:white_tulip", + "minecraft:wither_rose" + ], + "minecraft:soul_fire_base_blocks": [ + "minecraft:soul_sand", + "minecraft:soul_soil" + ], + "minecraft:spruce_logs": [ + "minecraft:spruce_log", + "minecraft:spruce_wood", + "minecraft:stripped_spruce_log", + "minecraft:stripped_spruce_wood" + ], + "minecraft:stairs": [ + "minecraft:acacia_stairs", + "minecraft:andesite_stairs", + "minecraft:birch_stairs", + "minecraft:blackstone_stairs", + "minecraft:brick_stairs", + "minecraft:cobbled_deepslate_stairs", + "minecraft:cobblestone_stairs", + "minecraft:crimson_stairs", + "minecraft:cut_copper_stairs", + "minecraft:dark_oak_stairs", + "minecraft:dark_prismarine_stairs", + "minecraft:deepslate_brick_stairs", + "minecraft:deepslate_tile_stairs", + "minecraft:diorite_stairs", + "minecraft:end_stone_brick_stairs", + "minecraft:exposed_cut_copper_stairs", + "minecraft:granite_stairs", + "minecraft:jungle_stairs", + "minecraft:mossy_cobblestone_stairs", + "minecraft:mossy_stone_brick_stairs", + "minecraft:nether_brick_stairs", + "minecraft:oak_stairs", + "minecraft:oxidized_cut_copper_stairs", + "minecraft:polished_andesite_stairs", + "minecraft:polished_blackstone_brick_stairs", + "minecraft:polished_blackstone_stairs", + "minecraft:polished_deepslate_stairs", + "minecraft:polished_diorite_stairs", + "minecraft:polished_granite_stairs", + "minecraft:prismarine_brick_stairs", + "minecraft:prismarine_stairs", + "minecraft:purpur_stairs", + "minecraft:quartz_stairs", + "minecraft:red_nether_brick_stairs", + "minecraft:red_sandstone_stairs", + "minecraft:sandstone_stairs", + "minecraft:smooth_quartz_stairs", + "minecraft:smooth_red_sandstone_stairs", + "minecraft:smooth_sandstone_stairs", + "minecraft:spruce_stairs", + "minecraft:stone_brick_stairs", + "minecraft:stone_stairs", + "minecraft:warped_stairs", + "minecraft:waxed_cut_copper_stairs", + "minecraft:waxed_exposed_cut_copper_stairs", + "minecraft:waxed_oxidized_cut_copper_stairs", + "minecraft:waxed_weathered_cut_copper_stairs", + "minecraft:weathered_cut_copper_stairs" + ], + "minecraft:stone_bricks": [ + "minecraft:chiseled_stone_bricks", + "minecraft:cracked_stone_bricks", + "minecraft:mossy_stone_bricks", + "minecraft:stone_bricks" + ], + "minecraft:stone_crafting_materials": [ + "minecraft:blackstone", + "minecraft:cobbled_deepslate", + "minecraft:cobblestone" + ], + "minecraft:stone_tool_materials": [ + "minecraft:blackstone", + "minecraft:cobbled_deepslate", + "minecraft:cobblestone" + ], + "minecraft:tall_flowers": [ + "minecraft:lilac", + "minecraft:peony", + "minecraft:rose_bush", + "minecraft:sunflower" + ], + "minecraft:trapdoors": [ + "minecraft:acacia_trapdoor", + "minecraft:birch_trapdoor", + "minecraft:crimson_trapdoor", + "minecraft:dark_oak_trapdoor", + "minecraft:iron_trapdoor", + "minecraft:jungle_trapdoor", + "minecraft:oak_trapdoor", + "minecraft:spruce_trapdoor", + "minecraft:warped_trapdoor" + ], + "minecraft:walls": [ + "minecraft:andesite_wall", + "minecraft:blackstone_wall", + "minecraft:brick_wall", + "minecraft:cobbled_deepslate_wall", + "minecraft:cobblestone_wall", + "minecraft:deepslate_brick_wall", + "minecraft:deepslate_tile_wall", + "minecraft:diorite_wall", + "minecraft:end_stone_brick_wall", + "minecraft:granite_wall", + "minecraft:mossy_cobblestone_wall", + "minecraft:mossy_stone_brick_wall", + "minecraft:nether_brick_wall", + "minecraft:polished_blackstone_brick_wall", + "minecraft:polished_blackstone_wall", + "minecraft:polished_deepslate_wall", + "minecraft:prismarine_wall", + "minecraft:red_nether_brick_wall", + "minecraft:red_sandstone_wall", + "minecraft:sandstone_wall", + "minecraft:stone_brick_wall" + ], + "minecraft:warped_stems": [ + "minecraft:stripped_warped_hyphae", + "minecraft:stripped_warped_stem", + "minecraft:warped_hyphae", + "minecraft:warped_stem" + ], + "minecraft:wooden_buttons": [ + "minecraft:acacia_button", + "minecraft:birch_button", + "minecraft:crimson_button", + "minecraft:dark_oak_button", + "minecraft:jungle_button", + "minecraft:oak_button", + "minecraft:spruce_button", + "minecraft:warped_button" + ], + "minecraft:wooden_doors": [ + "minecraft:acacia_door", + "minecraft:birch_door", + "minecraft:crimson_door", + "minecraft:dark_oak_door", + "minecraft:jungle_door", + "minecraft:oak_door", + "minecraft:spruce_door", + "minecraft:warped_door" + ], + "minecraft:wooden_fences": [ + "minecraft:acacia_fence", + "minecraft:birch_fence", + "minecraft:crimson_fence", + "minecraft:dark_oak_fence", + "minecraft:jungle_fence", + "minecraft:oak_fence", + "minecraft:spruce_fence", + "minecraft:warped_fence" + ], + "minecraft:wooden_pressure_plates": [ + "minecraft:acacia_pressure_plate", + "minecraft:birch_pressure_plate", + "minecraft:crimson_pressure_plate", + "minecraft:dark_oak_pressure_plate", + "minecraft:jungle_pressure_plate", + "minecraft:oak_pressure_plate", + "minecraft:spruce_pressure_plate", + "minecraft:warped_pressure_plate" + ], + "minecraft:wooden_slabs": [ + "minecraft:acacia_slab", + "minecraft:birch_slab", + "minecraft:crimson_slab", + "minecraft:dark_oak_slab", + "minecraft:jungle_slab", + "minecraft:oak_slab", + "minecraft:spruce_slab", + "minecraft:warped_slab" + ], + "minecraft:wooden_stairs": [ + "minecraft:acacia_stairs", + "minecraft:birch_stairs", + "minecraft:crimson_stairs", + "minecraft:dark_oak_stairs", + "minecraft:jungle_stairs", + "minecraft:oak_stairs", + "minecraft:spruce_stairs", + "minecraft:warped_stairs" + ], + "minecraft:wooden_trapdoors": [ + "minecraft:acacia_trapdoor", + "minecraft:birch_trapdoor", + "minecraft:crimson_trapdoor", + "minecraft:dark_oak_trapdoor", + "minecraft:jungle_trapdoor", + "minecraft:oak_trapdoor", + "minecraft:spruce_trapdoor", + "minecraft:warped_trapdoor" + ], + "minecraft:wool": [ + "minecraft:black_wool", + "minecraft:blue_wool", + "minecraft:brown_wool", + "minecraft:cyan_wool", + "minecraft:gray_wool", + "minecraft:green_wool", + "minecraft:light_blue_wool", + "minecraft:light_gray_wool", + "minecraft:lime_wool", + "minecraft:magenta_wool", + "minecraft:orange_wool", + "minecraft:pink_wool", + "minecraft:purple_wool", + "minecraft:red_wool", + "minecraft:white_wool", + "minecraft:yellow_wool" + ] + } +} diff --git a/worldedit-cli/src/main/resources/log4j2.xml b/worldedit-cli/src/main/resources/log4j2.xml index 9642c1b7d..722cc6fbb 100644 --- a/worldedit-cli/src/main/resources/log4j2.xml +++ b/worldedit-cli/src/main/resources/log4j2.xml @@ -2,13 +2,13 @@ - + - + - - + + diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/Fawe.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/Fawe.java index eff0ac4a4..4cbdac5fa 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/Fawe.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/Fawe.java @@ -1,7 +1,7 @@ package com.fastasyncworldedit.core; -import com.fastasyncworldedit.core.queue.implementation.QueueHandler; import com.fastasyncworldedit.core.configuration.Settings; +import com.fastasyncworldedit.core.queue.implementation.QueueHandler; import com.fastasyncworldedit.core.util.CachedTextureUtil; import com.fastasyncworldedit.core.util.CleanTextureUtil; import com.fastasyncworldedit.core.util.FaweTimer; @@ -16,6 +16,9 @@ import com.sk89q.worldedit.WorldEdit; import com.sk89q.worldedit.internal.util.LogManagerCompat; import org.apache.logging.log4j.Logger; +import javax.annotation.Nullable; +import javax.management.InstanceAlreadyExistsException; +import javax.management.NotificationEmitter; import java.io.BufferedReader; import java.io.File; import java.io.FileNotFoundException; @@ -29,28 +32,25 @@ import java.lang.management.MemoryUsage; import java.util.Date; import java.util.List; import java.util.concurrent.TimeUnit; -import javax.annotation.Nullable; -import javax.management.InstanceAlreadyExistsException; -import javax.management.NotificationEmitter; /** * [ WorldEdit action] - * | + * | * \|/ * [ EditSession ] - The change is processed (area restrictions, change limit, block type) - * | + * | * \|/ * [Block change] - A block change from some location - * | + * | * \|/ * [ Set Queue ] - The SetQueue manages the implementation specific queue - * | + * | * \|/ * [ Fawe Queue] - A queue of chunks - check if the queue has the chunk for a change - * | + * | * \|/ * [ Fawe Chunk Implementation ] - Otherwise create a new FaweChunk object which is a wrapper around the Chunk object - * | + * | * \|/ * [ Execution ] - When done, the queue then sets the blocks for the chunk, performs lighting updates and sends the chunk packet to the clients *

@@ -131,10 +131,18 @@ public class Fawe { TaskManager.IMP = this.implementation.getTaskManager(); TaskManager.IMP.async(() -> { - MainUtil.deleteOlder(MainUtil.getFile(this.implementation - .getDirectory(), Settings.IMP.PATHS.HISTORY), TimeUnit.DAYS.toMillis(Settings.IMP.HISTORY.DELETE_AFTER_DAYS), false); - MainUtil.deleteOlder(MainUtil.getFile(this.implementation - .getDirectory(), Settings.IMP.PATHS.CLIPBOARD), TimeUnit.DAYS.toMillis(Settings.IMP.CLIPBOARD.DELETE_AFTER_DAYS), false); + MainUtil.deleteOlder( + MainUtil.getFile(this.implementation + .getDirectory(), Settings.IMP.PATHS.HISTORY), + TimeUnit.DAYS.toMillis(Settings.IMP.HISTORY.DELETE_AFTER_DAYS), + false + ); + MainUtil.deleteOlder( + MainUtil.getFile(this.implementation + .getDirectory(), Settings.IMP.PATHS.CLIPBOARD), + TimeUnit.DAYS.toMillis(Settings.IMP.CLIPBOARD.DELETE_AFTER_DAYS), + false + ); }); /* @@ -208,7 +216,6 @@ public class Fawe { /** * The FAWE version. * - * @apiNote Unofficial jars may be lacking version information * @return FaweVersion */ @Nullable @@ -226,7 +233,7 @@ public class Fawe { File file = new File(this.implementation.getDirectory(), "config.yml"); Settings.IMP.PLATFORM = implementation.getPlatform().replace("\"", ""); try (InputStream stream = getClass().getResourceAsStream("/fawe.properties"); - BufferedReader br = new BufferedReader(new InputStreamReader(stream))) { + BufferedReader br = new BufferedReader(new InputStreamReader(stream))) { String versionString = br.readLine(); String commitString = br.readLine(); String dateString = br.readLine(); @@ -263,14 +270,14 @@ public class Fawe { Settings.IMP.CLIPBOARD.COMPRESSION_LEVEL = Math.min(6, Settings.IMP.CLIPBOARD.COMPRESSION_LEVEL); Settings.IMP.HISTORY.COMPRESSION_LEVEL = Math.min(6, Settings.IMP.HISTORY.COMPRESSION_LEVEL); LOGGER.error("ZSTD Compression Binding Not Found.\n" - + "FAWE will still work but compression won't work as well.\n", e); + + "FAWE will still work but compression won't work as well.\n", e); } } try { net.jpountz.util.Native.load(); } catch (Throwable e) { LOGGER.error("LZ4 Compression Binding Not Found.\n" - + "FAWE will still work but compression will be slower.\n", e); + + "FAWE will still work but compression will be slower.\n", e); } } @@ -313,8 +320,8 @@ public class Fawe { } } catch (Throwable ignored) { LOGGER.error("FAWE encountered an error trying to listen to JVM memory.\n" - + "Please change your Java security settings or disable this message by" - + "changing 'max-memory-percent' in the config files to '-1'."); + + "Please change your Java security settings or disable this message by" + + "changing 'max-memory-percent' in the config files to '-1'."); } } @@ -335,4 +342,5 @@ public class Fawe { public Thread setMainThread() { return this.thread = Thread.currentThread(); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/FaweAPI.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/FaweAPI.java index 463f024f1..6bf5a2d51 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/FaweAPI.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/FaweAPI.java @@ -1,16 +1,16 @@ package com.fastasyncworldedit.core; -import com.fastasyncworldedit.core.queue.IQueueChunk; -import com.fastasyncworldedit.core.queue.IQueueExtent; -import com.fastasyncworldedit.core.extent.processor.lighting.Relighter; -import com.fastasyncworldedit.core.queue.implementation.ParallelQueueExtent; import com.fastasyncworldedit.core.configuration.Settings; -import com.fastasyncworldedit.core.regions.RegionWrapper; import com.fastasyncworldedit.core.extent.processor.lighting.RelightMode; +import com.fastasyncworldedit.core.extent.processor.lighting.Relighter; import com.fastasyncworldedit.core.history.DiskStorageHistory; import com.fastasyncworldedit.core.history.changeset.SimpleChangeSetSummary; import com.fastasyncworldedit.core.internal.exception.FaweException; +import com.fastasyncworldedit.core.queue.IQueueChunk; +import com.fastasyncworldedit.core.queue.IQueueExtent; +import com.fastasyncworldedit.core.queue.implementation.ParallelQueueExtent; import com.fastasyncworldedit.core.regions.FaweMaskManager; +import com.fastasyncworldedit.core.regions.RegionWrapper; import com.fastasyncworldedit.core.util.EditSessionBuilder; import com.fastasyncworldedit.core.util.MainUtil; import com.fastasyncworldedit.core.util.MemUtil; @@ -88,7 +88,7 @@ public class FaweAPI { * EditSession} can do a lot more. Remember to commit when you are done! *

* - * @param world The name of the world + * @param world The name of the world * @param autoQueue If it should start dispatching before you enqueue it. * @return the queue extent */ @@ -115,7 +115,7 @@ public class FaweAPI { * Upload the clipboard to the configured web interface. * * @param clipboard The clipboard (may not be null) - * @param format The format to use (some formats may not be supported) + * @param format The format to use (some formats may not be supported) * @return The download URL or null */ public static URL upload(final Clipboard clipboard, final ClipboardFormat format) { @@ -192,7 +192,7 @@ public class FaweAPI { if (!file.getName().toLowerCase(Locale.ROOT).endsWith(".bd")) { throw new IllegalArgumentException("Not a BD file!"); } - String[] path = file.getPath().split(File.separatorChar=='\\' ? "\\\\" : File.separator); + String[] path = file.getPath().split(File.separatorChar == '\\' ? "\\\\" : File.separator); if (path.length < 3) { throw new IllegalArgumentException("Not in history directory!"); } @@ -214,16 +214,13 @@ public class FaweAPI { /** * Used in the rollback to generate a list of {@link DiskStorageHistory} objects. * - * @param origin - The origin location - * @param user - The uuid (may be null) - * @param radius - The radius from the origin of the edit + * @param origin - The origin location + * @param user - The uuid (may be null) + * @param radius - The radius from the origin of the edit * @param timediff - The max age of the file in milliseconds - * @param shallow - If shallow is true, FAWE will only read the first {@link - * Settings.HISTORY#BUFFER_SIZE} bytes to obtain history info + * @param shallow - If shallow is true, FAWE will only read the first {@link + * Settings.HISTORY#BUFFER_SIZE} bytes to obtain history info * @return a list of DiskStorageHistory Objects - * @apiNote An edit outside the radius may be included if it overlaps with an edit inside - * that depends on it. Reading only part of the file will result in unreliable bounds info - * for large edits. */ public static List getBDFiles(Location origin, UUID user, int radius, long timediff, boolean shallow) { Extent extent = origin.getExtent(); @@ -270,7 +267,12 @@ public class FaweAPI { long value = aI - bI; return value == 0 ? 0 : value < 0 ? -1 : 1; }); - RegionWrapper bounds = new RegionWrapper(origin.getBlockX() - radius, origin.getBlockX() + radius, origin.getBlockZ() - radius, origin.getBlockZ() + radius); + RegionWrapper bounds = new RegionWrapper( + origin.getBlockX() - radius, + origin.getBlockX() + radius, + origin.getBlockZ() - radius, + origin.getBlockZ() + radius + ); RegionWrapper boundsPlus = new RegionWrapper(bounds.minX - 64, bounds.maxX + 512, bounds.minZ - 64, bounds.maxZ + 512); HashSet regionSet = Sets.newHashSet(bounds); ArrayList result = new ArrayList<>(); @@ -302,7 +304,6 @@ public class FaweAPI { /** * The DiskStorageHistory class is what FAWE uses to represent the undo on disk. - * */ public static DiskStorageHistory getChangeSetFromDisk(World world, UUID uuid, int index) { return new DiskStorageHistory(world, uuid, index); @@ -317,13 +318,18 @@ public class FaweAPI { *
  • Resends the chunks to the client.
  • * * - * @param world World to relight in + * @param world World to relight in * @param selection Region to relight - * @param queue Queue to relight in/from - * @param mode The mode to relight with + * @param queue Queue to relight in/from + * @param mode The mode to relight with * @return Chunks changed */ - public static int fixLighting(World world, Region selection, @Nullable IQueueExtent queue, final RelightMode mode) { + public static int fixLighting( + World world, + Region selection, + @Nullable IQueueExtent queue, + final RelightMode mode + ) { final BlockVector3 bot = selection.getMinimumPoint(); final BlockVector3 top = selection.getMaximumPoint(); @@ -341,7 +347,7 @@ public class FaweAPI { queue = (IQueueExtent) unwrapped; } else if (Settings.IMP.QUEUE.PARALLEL_THREADS > 1) { ParallelQueueExtent parallel = - new ParallelQueueExtent(Fawe.get().getQueueHandler(), world, true); + new ParallelQueueExtent(Fawe.get().getQueueHandler(), world, true); queue = parallel.getExtent(); } else { queue = Fawe.get().getQueueHandler().getQueue(world); diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/FaweCache.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/FaweCache.java index a8ca8965e..6e7048e7e 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/FaweCache.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/FaweCache.java @@ -1,18 +1,20 @@ package com.fastasyncworldedit.core; -import com.fastasyncworldedit.core.queue.IChunkSet; -import com.fastasyncworldedit.core.queue.Trimable; -import com.fastasyncworldedit.core.queue.Pool; -import com.fastasyncworldedit.core.queue.implementation.QueuePool; import com.fastasyncworldedit.core.configuration.Caption; import com.fastasyncworldedit.core.configuration.Settings; -import com.fastasyncworldedit.core.math.BitArray; -import com.fastasyncworldedit.core.math.BitArrayUnstretched; -import com.fastasyncworldedit.core.util.collection.CleanableThreadLocal; import com.fastasyncworldedit.core.internal.exception.FaweBlockBagException; import com.fastasyncworldedit.core.internal.exception.FaweChunkLoadException; import com.fastasyncworldedit.core.internal.exception.FaweException; +import com.fastasyncworldedit.core.math.BitArray; +import com.fastasyncworldedit.core.math.BitArrayUnstretched; +import com.fastasyncworldedit.core.math.MutableBlockVector3; +import com.fastasyncworldedit.core.math.MutableVector3; +import com.fastasyncworldedit.core.queue.IChunkSet; +import com.fastasyncworldedit.core.queue.Pool; +import com.fastasyncworldedit.core.queue.Trimable; +import com.fastasyncworldedit.core.queue.implementation.QueuePool; import com.fastasyncworldedit.core.util.MathMan; +import com.fastasyncworldedit.core.util.collection.CleanableThreadLocal; import com.google.common.cache.CacheBuilder; import com.google.common.cache.CacheLoader; import com.google.common.cache.LoadingCache; @@ -31,12 +33,10 @@ import com.sk89q.jnbt.ShortTag; import com.sk89q.jnbt.StringTag; import com.sk89q.jnbt.Tag; import com.sk89q.worldedit.internal.util.LogManagerCompat; -import com.fastasyncworldedit.core.math.MutableBlockVector3; -import com.fastasyncworldedit.core.math.MutableVector3; import com.sk89q.worldedit.world.block.BlockTypesCache; import org.apache.logging.log4j.Logger; -import javax.annotation.Nonnull; +import javax.annotation.Nonnull; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; @@ -59,8 +59,7 @@ import java.util.function.Supplier; import static com.google.common.base.Preconditions.checkNotNull; public enum FaweCache implements Trimable { - IMP - ; // singleton + IMP; // singleton private static final Logger LOGGER = LogManagerCompat.getLogger(); @@ -140,13 +139,16 @@ public enum FaweCache implements Trimable { public static final FaweBlockBagException BLOCK_BAG = new FaweBlockBagException(); public static final FaweException MANUAL = new FaweException(Caption.of("fawe.cancel.worldedit.cancel.reason.manual")); public static final FaweException NO_REGION = new FaweException(Caption.of("fawe.cancel.worldedit.cancel.reason.no.region")); - public static final FaweException OUTSIDE_REGION = new FaweException(Caption.of("fawe.cancel.worldedit.cancel.reason.outside.region")); + public static final FaweException OUTSIDE_REGION = new FaweException(Caption.of( + "fawe.cancel.worldedit.cancel.reason.outside.region")); public static final FaweException MAX_CHECKS = new FaweException(Caption.of("fawe.cancel.worldedit.cancel.reason.max.checks")); public static final FaweException MAX_CHANGES = new FaweException(Caption.of("fawe.cancel.worldedit.cancel.reason.max.changes")); public static final FaweException LOW_MEMORY = new FaweException(Caption.of("fawe.cancel.worldedit.cancel.reason.low.memory")); - public static final FaweException MAX_ENTITIES = new FaweException(Caption.of("fawe.cancel.worldedit.cancel.reason.max.entities")); + public static final FaweException MAX_ENTITIES = new FaweException(Caption.of( + "fawe.cancel.worldedit.cancel.reason.max.entities")); public static final FaweException MAX_TILES = new FaweException(Caption.of("fawe.cancel.worldedit.cancel.reason.max.tiles")); - public static final FaweException MAX_ITERATIONS = new FaweException(Caption.of("fawe.cancel.worldedit.cancel.reason.max.iterations")); + public static final FaweException MAX_ITERATIONS = new FaweException(Caption.of( + "fawe.cancel.worldedit.cancel.reason.max.iterations")); /* thread cache @@ -167,9 +169,9 @@ public enum FaweCache implements Trimable { public final CleanableThreadLocal PALETTE_TO_BLOCK = new CleanableThreadLocal<>(() -> new int[Character.MAX_VALUE + 1]); public final CleanableThreadLocal PALETTE_TO_BLOCK_CHAR = new CleanableThreadLocal<>( - () -> new char[Character.MAX_VALUE + 1], a -> { - Arrays.fill(a, Character.MAX_VALUE); - } + () -> new char[Character.MAX_VALUE + 1], a -> { + Arrays.fill(a, Character.MAX_VALUE); + } ); public final CleanableThreadLocal BLOCK_STATES = new CleanableThreadLocal<>(() -> new long[2048]); @@ -182,6 +184,7 @@ public enum FaweCache implements Trimable { * Holds data for a palette used in a chunk section */ public static final class Palette { + public int bitsPerEntry; public int paletteToBlockLength; @@ -195,12 +198,14 @@ public enum FaweCache implements Trimable { * Reusable buffer array, MUST check blockStatesLength for actual length */ public long[] blockStates; + } private final CleanableThreadLocal PALETTE_CACHE = new CleanableThreadLocal<>(Palette::new); /** * Convert raw char array to palette + * * @param layerOffset * @param blocks * @return palette @@ -211,6 +216,7 @@ public enum FaweCache implements Trimable { /** * Convert raw int array to palette + * * @param layerOffset * @param blocks * @return palette @@ -296,6 +302,7 @@ public enum FaweCache implements Trimable { /** * Convert raw int array to unstretched palette (1.16) + * * @param layerOffset * @param blocks * @return palette @@ -531,9 +538,10 @@ public enum FaweCache implements Trimable { int nThreads = Settings.IMP.QUEUE.PARALLEL_THREADS; ArrayBlockingQueue queue = new ArrayBlockingQueue<>(nThreads); return new ThreadPoolExecutor(nThreads, nThreads, - 0L, TimeUnit.MILLISECONDS, queue, - Executors.defaultThreadFactory(), - new ThreadPoolExecutor.CallerRunsPolicy()) { + 0L, TimeUnit.MILLISECONDS, queue, + Executors.defaultThreadFactory(), + new ThreadPoolExecutor.CallerRunsPolicy() + ) { protected void afterExecute(Runnable r, Throwable t) { try { super.afterExecute(r, t); diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/FaweVersion.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/FaweVersion.java index 604d1430e..4593b13da 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/FaweVersion.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/FaweVersion.java @@ -1,7 +1,10 @@ package com.fastasyncworldedit.core; -/** An internal FAWE class not meant for public use. **/ +/** + * An internal FAWE class not meant for public use. + **/ public class FaweVersion { + public final int year; public final int month; public final int day; @@ -40,7 +43,8 @@ public class FaweVersion { } } - @Override public String toString() { + @Override + public String toString() { if (hash == 0 && build == 0) { return "FastAsyncWorldEdit-1.17-NoVer-SNAPSHOT"; } else { @@ -51,4 +55,5 @@ public class FaweVersion { public boolean isNewer(FaweVersion other) { return other.build < this.build; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/IFawe.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/IFawe.java index 345009367..54b75e8a0 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/IFawe.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/IFawe.java @@ -1,7 +1,7 @@ package com.fastasyncworldedit.core; -import com.fastasyncworldedit.core.queue.implementation.preloader.Preloader; import com.fastasyncworldedit.core.queue.implementation.QueueHandler; +import com.fastasyncworldedit.core.queue.implementation.preloader.Preloader; import com.fastasyncworldedit.core.regions.FaweMaskManager; import com.fastasyncworldedit.core.util.TaskManager; import com.fastasyncworldedit.core.util.image.ImageViewer; diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/Resettable.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/Resettable.java index 6d24faa32..367e71aef 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/Resettable.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/Resettable.java @@ -3,4 +3,5 @@ package com.fastasyncworldedit.core; public interface Resettable { void reset(); + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/AnvilCommands.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/AnvilCommands.java index 2bb9eb884..88d1cb06c 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/AnvilCommands.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/AnvilCommands.java @@ -21,11 +21,10 @@ import java.io.IOException; import static com.google.common.base.Preconditions.checkNotNull; /** - * * @deprecated Anvil classes were used on versions prior to 1.13 to trim chunks. - * The way how it's been done was unsafe and led to issues back the years, hence it - * hasn't been implemented in any modern version. Therefore the current - * implementation is deprecated for removal without replacement. + * The way how it's been done was unsafe and led to issues back the years, hence it + * hasn't been implemented in any modern version. Therefore the current + * implementation is deprecated for removal without replacement. */ @Deprecated @CommandContainer(superTypes = CommandPermissionsConditionGenerator.Registration.class) @@ -117,17 +116,19 @@ public class AnvilCommands { // } @Command( - name = "replaceall", - aliases = {"rea", "repall"}, - desc = "Replace all blocks in the selection with another" + name = "replaceall", + aliases = {"rea", "repall"}, + desc = "Replace all blocks in the selection with another" ) @CommandPermissions("worldedit.anvil.replaceall") - public void replaceAll(Player player, String folder, - @Arg(name = "from", desc = "String", def = "") - String fromPattern, - String toPatternStr, - @Switch(name = 'd', desc = "Disable wildcard data matching") - boolean useData) throws WorldEditException { + public void replaceAll( + Player player, String folder, + @Arg(name = "from", desc = "String", def = "") + String fromPattern, + String toPatternStr, + @Switch(name = 'd', desc = "Disable wildcard data matching") + boolean useData + ) throws WorldEditException { // final FaweBlockMatcher matchFrom; TODO NOT IMPLEMENTED // if (from == null) { // matchFrom = FaweBlockMatcher.NOT_AIR; @@ -144,9 +145,9 @@ public class AnvilCommands { } @Command( - name = "remapall", - descFooter = "Remap the world between MCPE/PC values", - desc = "Remap the world between MCPE/PC values" + name = "remapall", + descFooter = "Remap the world between MCPE/PC values", + desc = "Remap the world between MCPE/PC values" ) @CommandPermissions("worldedit.anvil.remapall") public void remapall(Player player, String folder) throws WorldEditException { @@ -163,18 +164,20 @@ public class AnvilCommands { @Command( - name = "deleteallunvisited", - aliases = {"delunvisited" }, - desc = "Delete all chunks which haven't been occupied", - descFooter = "occupied for `age-ticks` (20t = 1s) and \n" - + "Have not been accessed since `file-duration` (ms) after creation and\n" - + "Have not been used in the past `chunk-inactivity` (ms)" - + "The auto-save interval is the recommended value for `file-duration` and `chunk-inactivity`" + name = "deleteallunvisited", + aliases = {"delunvisited"}, + desc = "Delete all chunks which haven't been occupied", + descFooter = "occupied for `age-ticks` (20t = 1s) and \n" + + "Have not been accessed since `file-duration` (ms) after creation and\n" + + "Have not been used in the past `chunk-inactivity` (ms)" + + "The auto-save interval is the recommended value for `file-duration` and `chunk-inactivity`" ) @CommandPermissions("worldedit.anvil.deleteallunvisited") - public void deleteAllUnvisited(Player player, String folder, int inhabitedTicks, - @Arg(desc = "int", def = "60000") - int fileDurationMillis) throws WorldEditException { + public void deleteAllUnvisited( + Player player, String folder, int inhabitedTicks, + @Arg(desc = "int", def = "60000") + int fileDurationMillis + ) throws WorldEditException { // DeleteUninhabitedFilter filter = new DeleteUninhabitedFilter(fileDurationMillis, inhabitedTicks, fileDurationMillis); TODO NOT IMPLEMENTED // DeleteUninhabitedFilter result = runWithWorld(player, folder, filter, true); // if (result != null) { @@ -183,21 +186,23 @@ public class AnvilCommands { } @Command( - name = "deleteallunclaimed", - aliases = {"delallunclaimed" }, - desc = "Delete all chunks which haven't been occupied", - descFooter = "Supports: WorldGuard, PlotSquared, GriefPrevention:\n" - + "Delete all chunks which aren't claimed AND haven't been occupied for `age-ticks` (20t = 1s) and \n" - + "Have not been accessed since `file-duration` (ms) after creation and\n" - + "Have not been used in the past `chunk-inactivity` (ms)" - + "The auto-save interval is the recommended value for `file-duration` and `chunk-inactivity`" + name = "deleteallunclaimed", + aliases = {"delallunclaimed"}, + desc = "Delete all chunks which haven't been occupied", + descFooter = "Supports: WorldGuard, PlotSquared, GriefPrevention:\n" + + "Delete all chunks which aren't claimed AND haven't been occupied for `age-ticks` (20t = 1s) and \n" + + "Have not been accessed since `file-duration` (ms) after creation and\n" + + "Have not been used in the past `chunk-inactivity` (ms)" + + "The auto-save interval is the recommended value for `file-duration` and `chunk-inactivity`" ) @CommandPermissions("worldedit.anvil.deleteallunclaimed") - public void deleteAllUnclaimed(Player player, int inhabitedTicks, - @Arg(desc = "int", def = "60000") - int fileDurationMillis, - @Switch(name = 'd', desc = "The flag will debug the task") - boolean debug) throws WorldEditException { + public void deleteAllUnclaimed( + Player player, int inhabitedTicks, + @Arg(desc = "int", def = "60000") + int fileDurationMillis, + @Switch(name = 'd', desc = "The flag will debug the task") + boolean debug + ) throws WorldEditException { // String folder = player.getWorld().getName(); TODO NOT IMPLEMENTED // DeleteUnclaimedFilter filter = new DeleteUnclaimedFilter(player.getWorld(), fileDurationMillis, inhabitedTicks, fileDurationMillis); // if (debug) { @@ -210,21 +215,23 @@ public class AnvilCommands { } @Command( - name = "deleteunclaimed", - desc = "Delete all chunks which haven't been occupied", - descFooter = "(Supports: WorldGuard, PlotSquared, GriefPrevention):\n" - + "Is not claimed\n" - + "Has not been occupied for `age-ticks` (20t = 1s) and \n" - + "Have not been accessed since `file-duration` (ms) after creation and\n" - + "Have not been used in the past `chunk-inactivity` (ms)" - + "The auto-save interval is the recommended value for `file-duration` and `chunk-inactivity`" + name = "deleteunclaimed", + desc = "Delete all chunks which haven't been occupied", + descFooter = "(Supports: WorldGuard, PlotSquared, GriefPrevention):\n" + + "Is not claimed\n" + + "Has not been occupied for `age-ticks` (20t = 1s) and \n" + + "Have not been accessed since `file-duration` (ms) after creation and\n" + + "Have not been used in the past `chunk-inactivity` (ms)" + + "The auto-save interval is the recommended value for `file-duration` and `chunk-inactivity`" ) @CommandPermissions("worldedit.anvil.deleteunclaimed") - public void deleteUnclaimed(Player player, EditSession editSession, @Selection Region selection, int inhabitedTicks, - @Arg(desc = "int", def = "60000") - int fileDurationMillis, - @Switch(name = 'd', desc = "The flag will debug the task") - boolean debug) throws WorldEditException { + public void deleteUnclaimed( + Player player, EditSession editSession, @Selection Region selection, int inhabitedTicks, + @Arg(desc = "int", def = "60000") + int fileDurationMillis, + @Switch(name = 'd', desc = "The flag will debug the task") + boolean debug + ) throws WorldEditException { // DeleteUnclaimedFilter filter = new DeleteUnclaimedFilter(player.getWorld(), fileDurationMillis, inhabitedTicks, fileDurationMillis); TODO NOT IMPLEMENTED // if (debug) { // filter.enableDebug(); @@ -236,11 +243,11 @@ public class AnvilCommands { } @Command( - name = "deletealloldregions", - aliases = {"deloldreg" }, - desc = "Delete regions which haven't been accessed in a certain amount of time", - descFooter = "You can use seconds (s), minutes (m), hours (h), days (d), weeks (w), years (y)\n" - + "(months are not a unit of time) e.g., 8h5m12s\n" + name = "deletealloldregions", + aliases = {"deloldreg"}, + desc = "Delete regions which haven't been accessed in a certain amount of time", + descFooter = "You can use seconds (s), minutes (m), hours (h), days (d), weeks (w), years (y)\n" + + "(months are not a unit of time) e.g., 8h5m12s\n" ) @CommandPermissions("worldedit.anvil.deletealloldregions") public void deleteAllOldRegions(Player player, String folder, String time) throws WorldEditException { @@ -253,14 +260,16 @@ public class AnvilCommands { } @Command( - name = "trimallplots", - desc = "Trim chunks in a Plot World", - descFooter = "Unclaimed chunks will be deleted\nUnmodified chunks will be deleted\n" + name = "trimallplots", + desc = "Trim chunks in a Plot World", + descFooter = "Unclaimed chunks will be deleted\nUnmodified chunks will be deleted\n" ) @CommandPermissions("worldedit.anvil.trimallplots") - public void trimAllPlots(Player player, - @Switch(name = 'v', desc = "Delete unvisited chunks") - boolean deleteUnvisited) throws WorldEditException { + public void trimAllPlots( + Player player, + @Switch(name = 'v', desc = "Delete unvisited chunks") + boolean deleteUnvisited + ) throws WorldEditException { // String folder = player.getWorld().getName(); TODO NOT IMPLEMENTED // int visitTime = deleteUnvisited ? 1 : -1; // PlotTrimFilter filter = new PlotTrimFilter(player.getWorld(), 0, visitTime, 600000); @@ -274,13 +283,15 @@ public class AnvilCommands { } @Command( - name = "deletebiomechunks", - desc = "Delete chunks matching a specific biome" + name = "deletebiomechunks", + desc = "Delete chunks matching a specific biome" ) @CommandPermissions("worldedit.anvil.trimallair") - public void deleteBiome(Player player, String folder, BiomeType biome, - @Switch(name = 'u', desc = "The flag will run the task unsafe") - boolean unsafe) { + public void deleteBiome( + Player player, String folder, BiomeType biome, + @Switch(name = 'u', desc = "The flag will run the task unsafe") + boolean unsafe + ) { // DeleteBiomeFilterSimple filter = new DeleteBiomeFilterSimple(biome); TODO NOT IMPLEMENTED // DeleteBiomeFilterSimple result = runWithWorld(player, folder, filter, true, unsafe); // if (result != null) { @@ -289,13 +300,15 @@ public class AnvilCommands { } @Command( - name = "trimallair", - desc = "Trim all air in the world" + name = "trimallair", + desc = "Trim all air in the world" ) @CommandPermissions("worldedit.anvil.trimallair") - public void trimAllAir(Player player, String folder, - @Switch(name = 'u', desc = "The flag will run the task unsafe") - boolean unsafe) throws WorldEditException { + public void trimAllAir( + Player player, String folder, + @Switch(name = 'u', desc = "The flag will run the task unsafe") + boolean unsafe + ) throws WorldEditException { // TrimAirFilter filter = new TrimAirFilter(); TODO NOT IMPLEMENTED // TrimAirFilter result = runWithWorld(player, folder, filter, true, unsafe); // if (result != null) { @@ -304,8 +317,8 @@ public class AnvilCommands { } @Command( - name = "debugfixroads", - desc = "debug - do not use" + name = "debugfixroads", + desc = "debug - do not use" ) @CommandPermissions("worldedit.anvil.debugfixroads") public void debugfixroads(Player player, String folder) throws WorldEditException { @@ -317,18 +330,20 @@ public class AnvilCommands { } @Command( - name = "replaceallpattern", - aliases = {"reap", "repallpat"}, - desc = "Replace all blocks in the selection with another" + name = "replaceallpattern", + aliases = {"reap", "repallpat"}, + desc = "Replace all blocks in the selection with another" ) @CommandPermissions("worldedit.anvil.replaceall") - public void replaceAllPattern(Player player, String folder, - @Arg(desc = "String", def = "") - String from, Pattern toPattern, - @Switch(name = 'd', desc = "The flag specifies the data to use") - boolean useData, - @Switch(name = 'm', desc = "The flag specifies the map to use") - boolean useMap) throws WorldEditException { + public void replaceAllPattern( + Player player, String folder, + @Arg(desc = "String", def = "") + String from, Pattern toPattern, + @Switch(name = 'd', desc = "The flag specifies the data to use") + boolean useData, + @Switch(name = 'm', desc = "The flag specifies the map to use") + boolean useMap + ) throws WorldEditException { // MCAFilterCounter filter; TODO NOT IMPLEMENTED // if (useMap) { // if (to instanceof RandomPattern) { @@ -353,13 +368,15 @@ public class AnvilCommands { // @Command( - name = "countall", - desc = "Count all blocks in a world" + name = "countall", + desc = "Count all blocks in a world" ) @CommandPermissions("worldedit.anvil.countall") - public void countAll(Player player, EditSession editSession, String folder, String argStr, - @Switch(name = 'd', desc = "The flag specifies the data to use") - boolean useData) throws WorldEditException { + public void countAll( + Player player, EditSession editSession, String folder, String argStr, + @Switch(name = 'd', desc = "The flag specifies the data to use") + boolean useData + ) throws WorldEditException { // Set searchBlocks = worldEdit.getBlocks(player, arg, true); // MCAFilterCounter filter; // if (useData || arg.contains(":")) { // Optimize for both cases @@ -376,9 +393,9 @@ public class AnvilCommands { } @Command( - name = "clear", - aliases = {"unset"}, - desc = "Clear the chunks in a selection (delete without defrag)" + name = "clear", + aliases = {"unset"}, + desc = "Clear the chunks in a selection (delete without defrag)" ) @CommandPermissions("worldedit.anvil.clear") public void unset(Player player, EditSession editSession, @Selection Region selection) throws WorldEditException { @@ -429,13 +446,15 @@ public class AnvilCommands { } @Command( - name = "count", - desc = "Count blocks in a selection" + name = "count", + desc = "Count blocks in a selection" ) @CommandPermissions("worldedit.anvil.count") - public void count(Player player, EditSession editSession, @Selection Region selection, String argStr, - @Switch(name = 'd', desc = "The flag specifies the data to use") - boolean useData) throws WorldEditException { + public void count( + Player player, EditSession editSession, @Selection Region selection, String argStr, + @Switch(name = 'd', desc = "The flag specifies the data to use") + boolean useData + ) throws WorldEditException { // Set searchBlocks = worldEdit.getBlocks(player, arg, true); TODO NOT IMPLEMENTED // MCAFilterCounter filter; // if (useData || arg.contains(":")) { // Optimize for both cases @@ -453,13 +472,15 @@ public class AnvilCommands { // @Command( - name = "distr", - desc = "Replace all blocks in the selection with another" + name = "distr", + desc = "Replace all blocks in the selection with another" ) @CommandPermissions("worldedit.anvil.distr") - public void distr(Player player, EditSession editSession, @Selection Region selection, - @Switch(name = 'd', desc = "The flag specifies the data to use") - boolean useData) throws WorldEditException { + public void distr( + Player player, EditSession editSession, @Selection Region selection, + @Switch(name = 'd', desc = "The flag specifies the data to use") + boolean useData + ) throws WorldEditException { // long total = 0; TODO NOT IMPLEMENTED // long[] count; // MCAFilter counts; @@ -533,16 +554,18 @@ public class AnvilCommands { // @Command( - name = "replace", - aliases = {"r"}, - desc = "Replace all blocks in the selection with another" + name = "replace", + aliases = {"r"}, + desc = "Replace all blocks in the selection with another" ) @CommandPermissions("worldedit.anvil.replace") - public void replace(Player player, EditSession editSession, @Selection Region selection, - @Arg(desc = "String", def = "") - String from, String toStr, - @Switch(name = 'd', desc = "The flag specifies the data to use") - boolean useData) throws WorldEditException { + public void replace( + Player player, EditSession editSession, @Selection Region selection, + @Arg(desc = "String", def = "") + String from, String toStr, + @Switch(name = 'd', desc = "The flag specifies the data to use") + boolean useData + ) throws WorldEditException { // final FaweBlockMatcher matchFrom; TODO NOT IMPLEMENTED // if (from == null) { // matchFrom = FaweBlockMatcher.NOT_AIR; @@ -559,18 +582,20 @@ public class AnvilCommands { // @Command( - name = "replacepattern", - aliases = {"preplace", "rp"}, - desc = "Replace all blocks in the selection with a pattern" + name = "replacepattern", + aliases = {"preplace", "rp"}, + desc = "Replace all blocks in the selection with a pattern" ) @CommandPermissions("worldedit.anvil.replace") - public void replacePattern(Player player, EditSession editSession, @Selection Region selection, - @Arg(desc = "String", def = "") - String from, final Pattern toPattern, - @Switch(name = 'd', desc = "The flag specifies the data to use") - boolean useData, - @Switch(name = 'm', desc = "The flag specifies the map to use") - boolean useMap) throws WorldEditException { + public void replacePattern( + Player player, EditSession editSession, @Selection Region selection, + @Arg(desc = "String", def = "") + String from, final Pattern toPattern, + @Switch(name = 'd', desc = "The flag specifies the data to use") + boolean useData, + @Switch(name = 'm', desc = "The flag specifies the map to use") + boolean useMap + ) throws WorldEditException { // MCAFilterCounter filter; TODO NOT IMPLEMENTED // if (useMap) { // if (to instanceof RandomPattern) { @@ -596,12 +621,13 @@ public class AnvilCommands { } @Command( - name = "set", - desc = "Set all blocks in the selection with a pattern" + name = "set", + desc = "Set all blocks in the selection with a pattern" ) @CommandPermissions("worldedit.anvil.set") // Player player, String folder, @Arg(name = "from", desc = "String", def = "") String from, final Pattern toPattern, @Switch(name = 'd', desc = "The flag specifies the data to use") boolean useData, @Switch(name = 'm', desc = "The flag specifies the map to use") boolean useMap - public void set(Player player, EditSession editSession, @Selection Region selection, final Pattern toPattern) throws WorldEditException { + public void set(Player player, EditSession editSession, @Selection Region selection, final Pattern toPattern) throws + WorldEditException { // MCAFilterCounter filter = new SetPatternFilter(to); TODO NOT IMPLEMENTED // MCAFilterCounter result = runWithSelection(player, editSession, selection, filter); // if (result != null) { @@ -610,12 +636,13 @@ public class AnvilCommands { } @Command( - name = "removelayers", - desc = "Removes matching chunk layers", - descFooter = "Only if a chunk matches the provided id" + name = "removelayers", + desc = "Removes matching chunk layers", + descFooter = "Only if a chunk matches the provided id" ) @CommandPermissions("worldedit.anvil.removelayer") - public void removeLayers(Player player, EditSession editSession, @Selection Region selection, int id) throws WorldEditException { + public void removeLayers(Player player, EditSession editSession, @Selection Region selection, int id) throws + WorldEditException { // BlockVector3 min = selection.getMinimumPoint(); TODO NOT IMPLEMENTED // BlockVector3 max = selection.getMaximumPoint(); // int minY = min.getBlockY(); @@ -629,11 +656,12 @@ public class AnvilCommands { @Command( - name = "copy", - desc = "Lazily copy chunks to your anvil clipboard" + name = "copy", + desc = "Lazily copy chunks to your anvil clipboard" ) @CommandPermissions("worldedit.anvil.copychunks") - public void copy(Player player, LocalSession session, EditSession editSession, @Selection Region selection) throws WorldEditException { + public void copy(Player player, LocalSession session, EditSession editSession, @Selection Region selection) throws + WorldEditException { // if (!(selection instanceof CuboidRegion)) { TODO NOT IMPLEMENTED // player.print(TranslatableComponent.of("fawe.error.no.region")) // return; @@ -650,14 +678,16 @@ public class AnvilCommands { } @Command( - name = "paste", - desc = "Paste chunks from your anvil clipboard", - descFooter = "Paste the chunks from your anvil clipboard." + name = "paste", + desc = "Paste chunks from your anvil clipboard", + descFooter = "Paste the chunks from your anvil clipboard." ) @CommandPermissions("worldedit.anvil.pastechunks") - public void paste(Player player, LocalSession session, EditSession editSession, - @Switch(name = 'c', desc = "Align to chunks") - boolean alignChunk) throws WorldEditException, IOException { + public void paste( + Player player, LocalSession session, EditSession editSession, + @Switch(name = 'c', desc = "Align to chunks") + boolean alignChunk + ) throws WorldEditException, IOException { // FawePlayer fp = FawePlayer.wrap(player); TODO NOT IMPLEMENTED // MCAClipboard clipboard = fp.getMeta(FawePlayer.METADATA_KEYS.ANVIL_CLIPBOARD); // if (clipboard == null) { @@ -686,4 +716,5 @@ public class AnvilCommands { // }); // player.print(TranslatableComponent.of("fawe.worldedit.paste.command.paste", player.getPosition().toBlockVector())); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/ListFilters.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/ListFilters.java index 61fd874c5..ebb75b247 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/ListFilters.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/ListFilters.java @@ -15,7 +15,9 @@ import java.util.regex.PatternSyntaxException; //@CommandContainer public class ListFilters { + public class Filter { + public boolean listPrivate() { return true; } @@ -31,6 +33,7 @@ public class ListFilters { public boolean applies(File file) { return true; } + } @Command( @@ -128,4 +131,5 @@ public class ListFilters { }; } } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/SuggestInputParseException.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/SuggestInputParseException.java index dae899ca1..c38b38888 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/SuggestInputParseException.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/SuggestInputParseException.java @@ -80,4 +80,5 @@ public class SuggestInputParseException extends InputParseException { this.prefix = input + prefix; return this; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/MovableTool.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/MovableTool.java index 8e4d8904b..a5b58fb93 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/MovableTool.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/MovableTool.java @@ -3,5 +3,7 @@ package com.fastasyncworldedit.core.command.tool; import com.sk89q.worldedit.entity.Player; public interface MovableTool { + boolean move(Player player); + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/ResettableTool.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/ResettableTool.java index f2a431f27..b356bfa28 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/ResettableTool.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/ResettableTool.java @@ -1,5 +1,7 @@ package com.fastasyncworldedit.core.command.tool; public interface ResettableTool { + boolean reset(); + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/AngleBrush.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/AngleBrush.java index 6a033afa2..623722878 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/AngleBrush.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/AngleBrush.java @@ -18,7 +18,8 @@ public class AngleBrush implements Brush { } @Override - public void build(EditSession editSession, BlockVector3 position, Pattern pattern, double size) throws MaxChangedBlocksException { + public void build(EditSession editSession, BlockVector3 position, Pattern pattern, double size) throws + MaxChangedBlocksException { SurfaceMask surface = new SurfaceMask(editSession); final SolidBlockMask solid = new SolidBlockMask(editSession); final RadiusMask radius = new RadiusMask(0, (int) size); @@ -26,4 +27,5 @@ public class AngleBrush implements Brush { // replace \[angle] } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/BlendBall.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/BlendBall.java index 4e5fa9acb..1695ebb8d 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/BlendBall.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/BlendBall.java @@ -13,7 +13,8 @@ import java.util.Arrays; public class BlendBall implements Brush { @Override - public void build(EditSession editSession, BlockVector3 position, Pattern pattern, double size) throws MaxChangedBlocksException { + public void build(EditSession editSession, BlockVector3 position, Pattern pattern, double size) throws + MaxChangedBlocksException { final int outsetSize = (int) (size + 1); double brushSizeSquared = size * size; diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/BlobBrush.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/BlobBrush.java index 260047483..d9a410ac9 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/BlobBrush.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/BlobBrush.java @@ -1,5 +1,6 @@ package com.fastasyncworldedit.core.command.tool.brush; +import com.fastasyncworldedit.core.math.MutableVector3; import com.fastasyncworldedit.core.math.random.SimplexNoise; import com.fastasyncworldedit.core.util.MathMan; import com.sk89q.worldedit.EditSession; @@ -7,13 +8,13 @@ import com.sk89q.worldedit.MaxChangedBlocksException; import com.sk89q.worldedit.command.tool.brush.Brush; import com.sk89q.worldedit.function.pattern.Pattern; import com.sk89q.worldedit.math.BlockVector3; -import com.fastasyncworldedit.core.math.MutableVector3; import com.sk89q.worldedit.math.Vector3; import com.sk89q.worldedit.math.transform.AffineTransform; import java.util.concurrent.ThreadLocalRandom; public class BlobBrush implements Brush { + private final double amplitude; private final double frequency; private final Vector3 radius; @@ -27,7 +28,8 @@ public class BlobBrush implements Brush { } @Override - public void build(EditSession editSession, BlockVector3 position, Pattern pattern, double size) throws MaxChangedBlocksException { + public void build(EditSession editSession, BlockVector3 position, Pattern pattern, double size) throws + MaxChangedBlocksException { double seedX = ThreadLocalRandom.current().nextDouble(); double seedY = ThreadLocalRandom.current().nextDouble(); double seedZ = ThreadLocalRandom.current().nextDouble(); @@ -64,9 +66,9 @@ public class BlobBrush implements Brush { } } else { AffineTransform transform = new AffineTransform() - .rotateX(ThreadLocalRandom.current().nextInt(360)) - .rotateY(ThreadLocalRandom.current().nextInt(360)) - .rotateZ(ThreadLocalRandom.current().nextInt(360)); + .rotateX(ThreadLocalRandom.current().nextInt(360)) + .rotateY(ThreadLocalRandom.current().nextInt(360)) + .rotateZ(ThreadLocalRandom.current().nextInt(360)); double manScaleX = 1.25 + seedX * 0.5; double manScaleY = 1.25 + seedY * 0.5; @@ -93,9 +95,18 @@ public class BlobBrush implements Brush { double manDist = xScaled + yScaled + zScaled; double distSqr = x * x * modX + z * z * modZ + y * y * modY; - double distance = Math.sqrt(distSqr) * sphericity + MathMan.max(manDist, xScaled * manScaleX, yScaled * manScaleY, zScaled * manScaleZ) * roughness; + double distance = Math.sqrt(distSqr) * sphericity + MathMan.max( + manDist, + xScaled * manScaleX, + yScaled * manScaleY, + zScaled * manScaleZ + ) * roughness; - double noise = this.amplitude * SimplexNoise.noise(seedX + x * distort, seedZ + z * distort, seedZ + z * distort); + double noise = this.amplitude * SimplexNoise.noise( + seedX + x * distort, + seedZ + z * distort, + seedZ + z * distort + ); if (distance + distance * noise < radius) { editSession.setBlock(px + xr, py + yr, pz + zr, pattern); } @@ -104,4 +115,5 @@ public class BlobBrush implements Brush { } } } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/BrushSettings.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/BrushSettings.java index d77d1f3e8..2a18f856a 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/BrushSettings.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/BrushSettings.java @@ -19,6 +19,7 @@ import static com.fastasyncworldedit.core.command.tool.brush.BrushSettings.Setti import static com.google.common.base.Preconditions.checkNotNull; public class BrushSettings { + public enum SettingType { BRUSH, SIZE, @@ -41,7 +42,7 @@ public class BrushSettings { private ResettableExtent transform; private Pattern material; private Expression size = DEFAULT_SIZE; - private Set permissions; + private final Set permissions; private Scroll scrollAction; public BrushSettings() { @@ -273,4 +274,5 @@ public class BrushSettings { name = brush.getClass().getName(); return name.substring(name.lastIndexOf('.') + 1); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/CatenaryBrush.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/CatenaryBrush.java index 11b81be66..4b8cc4687 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/CatenaryBrush.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/CatenaryBrush.java @@ -34,7 +34,8 @@ public class CatenaryBrush implements Brush, ResettableTool { } @Override - public void build(EditSession editSession, BlockVector3 pos2, final Pattern pattern, double size) throws MaxChangedBlocksException { + public void build(EditSession editSession, BlockVector3 pos2, final Pattern pattern, double size) throws + MaxChangedBlocksException { Player player = editSession.getPlayer(); if (player == null) { return; //todo throw error @@ -90,7 +91,6 @@ public class CatenaryBrush implements Brush, ResettableTool { double g = Math.sqrt(curveLen * curveLen - dy * dy) / 2; double a = 0.00001; for (; g < a * Math.sinh(dh / (2 * a)); a *= 1.00001) { - ; } double vertX = (dh - a * Math.log((curveLen + dy) / (curveLen - dy))) / 2.0; double z = (dh / 2) / a; @@ -98,4 +98,5 @@ public class CatenaryBrush implements Brush, ResettableTool { double vertY = a * 1 + oY; return pos1.add(pos2.subtract(pos1).multiply(vertX / dh).add(0, vertY, 0)).round().toBlockPoint(); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/CircleBrush.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/CircleBrush.java index 7a547b059..8a88455e0 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/CircleBrush.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/CircleBrush.java @@ -19,7 +19,8 @@ public class CircleBrush implements Brush { } @Override - public void build(EditSession editSession, BlockVector3 position, Pattern pattern, double size) throws MaxChangedBlocksException { + public void build(EditSession editSession, BlockVector3 position, Pattern pattern, double size) throws + MaxChangedBlocksException { Player player = editSession.getPlayer(); if (player == null) { return; @@ -40,4 +41,5 @@ public class CircleBrush implements Brush { Vector3 random = affine.apply(normal); return random.cross(normal).normalize(); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/CommandBrush.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/CommandBrush.java index ffad2cdee..5165f3087 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/CommandBrush.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/CommandBrush.java @@ -26,9 +26,14 @@ public class CommandBrush implements Brush { } @Override - public void build(EditSession editSession, BlockVector3 position, Pattern pattern, double size) throws MaxChangedBlocksException { + public void build(EditSession editSession, BlockVector3 position, Pattern pattern, double size) throws + MaxChangedBlocksException { int radius = (int) size; - CuboidRegionSelector selector = new CuboidRegionSelector(editSession.getWorld(), position.subtract(radius, radius, radius), position.add(radius, radius, radius)); + CuboidRegionSelector selector = new CuboidRegionSelector( + editSession.getWorld(), + position.subtract(radius, radius, radius), + position.add(radius, radius, radius) + ); String replaced = command.replace("{x}", position.getBlockX() + "") .replace("{y}", Integer.toString(position.getBlockY())) .replace("{z}", Integer.toString(position.getBlockZ())) @@ -43,11 +48,15 @@ public class CommandBrush implements Brush { position = position.add(face.getDirection().toBlockPoint()); } player.setSelection(selector); - AsyncPlayer wePlayer = new SilentPlayerWrapper(new LocationMaskedPlayerWrapper(player, new Location(player.getExtent(), position.toVector3()))); + AsyncPlayer wePlayer = new SilentPlayerWrapper(new LocationMaskedPlayerWrapper( + player, + new Location(player.getExtent(), position.toVector3()) + )); List cmds = StringMan.split(replaced, ';'); for (String cmd : cmds) { CommandEvent event = new CommandEvent(wePlayer, cmd); PlatformCommandManager.getInstance().handleCommandOnCurrentThread(event); } } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/CopyPastaBrush.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/CopyPastaBrush.java index 4a9e93957..7d809e094 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/CopyPastaBrush.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/CopyPastaBrush.java @@ -49,7 +49,8 @@ public class CopyPastaBrush implements Brush, ResettableTool { } @Override - public void build(EditSession editSession, BlockVector3 position, Pattern pattern, double size) throws MaxChangedBlocksException { + public void build(EditSession editSession, BlockVector3 position, Pattern pattern, double size) throws + MaxChangedBlocksException { Player player = editSession.getPlayer(); if (player == null) { return; @@ -117,4 +118,5 @@ public class CopyPastaBrush implements Brush, ResettableTool { editSession.flushQueue(); } } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/ErodeBrush.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/ErodeBrush.java index 03cd09d6d..13490dc2f 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/ErodeBrush.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/ErodeBrush.java @@ -19,7 +19,11 @@ import java.util.Arrays; public class ErodeBrush implements Brush { - private static final BlockVector3[] FACES_TO_CHECK = Direction.valuesOf(Direction.Flag.CARDINAL).stream().map(Direction::toBlockVector).toArray(BlockVector3[]::new); + private static final BlockVector3[] FACES_TO_CHECK = Direction + .valuesOf(Direction.Flag.CARDINAL) + .stream() + .map(Direction::toBlockVector) + .toArray(BlockVector3[]::new); private final int erodeFaces; private final int erodeRecursion; private final int fillFaces; @@ -37,11 +41,20 @@ public class ErodeBrush implements Brush { } @Override - public void build(EditSession editSession, BlockVector3 position, Pattern pattern, double size) throws MaxChangedBlocksException { + public void build(EditSession editSession, BlockVector3 position, Pattern pattern, double size) throws + MaxChangedBlocksException { this.erosion(editSession, erodeFaces, erodeRecursion, fillFaces, fillRecursion, position, size); } - public void erosion(final EditSession es, int erodeFaces, int erodeRecursion, int fillFaces, int fillRecursion, BlockVector3 target, double size) { + public void erosion( + final EditSession es, + int erodeFaces, + int erodeRecursion, + int fillFaces, + int fillRecursion, + BlockVector3 target, + double size + ) { int brushSize = (int) size; int brushSizeSquared = (int) (size * size); Location min = new Location(es.getWorld(), target.toVector3().subtract(size, size, size)); @@ -69,12 +82,24 @@ public class ErodeBrush implements Brush { int swap = 0; for (int i = 0; i < erodeRecursion; ++i) { - erosionIteration(brushSize, brushSizeSquared, erodeFaces, swap % 2 == 0 ? buffer1 : buffer2, swap % 2 == 1 ? buffer1 : buffer2); + erosionIteration( + brushSize, + brushSizeSquared, + erodeFaces, + swap % 2 == 0 ? buffer1 : buffer2, + swap % 2 == 1 ? buffer1 : buffer2 + ); swap++; } for (int i = 0; i < fillRecursion; ++i) { - fillIteration(brushSize, brushSizeSquared, fillFaces, swap % 2 == 0 ? buffer1 : buffer2, swap % 2 == 1 ? buffer1 : buffer2); + fillIteration( + brushSize, + brushSizeSquared, + fillFaces, + swap % 2 == 0 ? buffer1 : buffer2, + swap % 2 == 1 ? buffer1 : buffer2 + ); swap++; } Clipboard finalBuffer = swap % 2 == 0 ? buffer1 : buffer2; @@ -85,8 +110,10 @@ public class ErodeBrush implements Brush { } } - private void fillIteration(int brushSize, int brushSizeSquared, int fillFaces, - Clipboard current, Clipboard target) { + private void fillIteration( + int brushSize, int brushSizeSquared, int fillFaces, + Clipboard current, Clipboard target + ) { int[] frequency = null; for (int x = -brushSize, relx = 0; x <= brushSize; x++, relx++) { int x2 = x * x; @@ -111,7 +138,11 @@ public class ErodeBrush implements Brush { int total = 0; int highest = 1; for (BlockVector3 offs : FACES_TO_CHECK) { - BaseBlock next = current.getFullBlock(relx + offs.getBlockX(), rely + offs.getBlockY(), relz + offs.getBlockZ()); + BaseBlock next = current.getFullBlock( + relx + offs.getBlockX(), + rely + offs.getBlockY(), + relz + offs.getBlockZ() + ); if (!next.getBlockType().getMaterial().isMovementBlocker()) { continue; } @@ -130,8 +161,10 @@ public class ErodeBrush implements Brush { } } - private void erosionIteration(int brushSize, int brushSizeSquared, int erodeFaces, - Clipboard current, Clipboard target) { + private void erosionIteration( + int brushSize, int brushSizeSquared, int erodeFaces, + Clipboard current, Clipboard target + ) { int[] frequency = null; for (int x = -brushSize, relx = 0; x <= brushSize; x++, relx++) { int x2 = x * x; @@ -156,7 +189,11 @@ public class ErodeBrush implements Brush { int highest = 1; int total = 0; for (BlockVector3 offs : FACES_TO_CHECK) { - BaseBlock next = current.getFullBlock(relx + offs.getBlockX(), rely + offs.getBlockY(), relz + offs.getBlockZ()); + BaseBlock next = current.getFullBlock( + relx + offs.getBlockX(), + rely + offs.getBlockY(), + relz + offs.getBlockZ() + ); if (next.getMaterial().isMovementBlocker()) { continue; } @@ -174,4 +211,5 @@ public class ErodeBrush implements Brush { } } } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/FallingSphere.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/FallingSphere.java index e4796cd3c..98c1d160c 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/FallingSphere.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/FallingSphere.java @@ -8,8 +8,10 @@ import com.sk89q.worldedit.function.pattern.Pattern; import com.sk89q.worldedit.math.BlockVector3; public class FallingSphere implements Brush { + @Override - public void build(EditSession editSession, BlockVector3 position, Pattern pattern, double size) throws MaxChangedBlocksException { + public void build(EditSession editSession, BlockVector3 position, Pattern pattern, double size) throws + MaxChangedBlocksException { int px = position.getBlockX(); int py = position.getBlockY(); int pz = position.getBlockZ(); @@ -54,4 +56,5 @@ public class FallingSphere implements Brush { } } } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/FlattenBrush.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/FlattenBrush.java index 4eacf1e2e..172b5c5fc 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/FlattenBrush.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/FlattenBrush.java @@ -14,12 +14,21 @@ import java.io.InputStream; public class FlattenBrush extends HeightBrush { - public FlattenBrush(InputStream stream, int rotation, double yscale, boolean layers, boolean smooth, Clipboard clipboard, ScalableHeightMap.Shape shape) { + public FlattenBrush( + InputStream stream, + int rotation, + double yscale, + boolean layers, + boolean smooth, + Clipboard clipboard, + ScalableHeightMap.Shape shape + ) { super(stream, rotation, yscale, layers, smooth, clipboard, shape); } @Override - public void build(EditSession editSession, BlockVector3 position, Pattern pattern, double sizeDouble) throws MaxChangedBlocksException { + public void build(EditSession editSession, BlockVector3 position, Pattern pattern, double sizeDouble) throws + MaxChangedBlocksException { int size = (int) sizeDouble; Mask mask = editSession.getMask(); if (mask == Masks.alwaysTrue() || mask == Masks.alwaysTrue2D()) { @@ -29,4 +38,5 @@ public class FlattenBrush extends HeightBrush { map.setSize(size); map.perform(editSession, mask, position, size, rotation, yscale, smooth, true, layers); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/HeightBrush.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/HeightBrush.java index b5a2c8c5a..47615319b 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/HeightBrush.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/HeightBrush.java @@ -31,7 +31,15 @@ public class HeightBrush implements Brush { this(stream, rotation, yscale, layers, smooth, clipboard, ScalableHeightMap.Shape.CONE); } - public HeightBrush(InputStream stream, int rotation, double yscale, boolean layers, boolean smooth, Clipboard clipboard, ScalableHeightMap.Shape shape) { + public HeightBrush( + InputStream stream, + int rotation, + double yscale, + boolean layers, + boolean smooth, + Clipboard clipboard, + ScalableHeightMap.Shape shape + ) { this.rotation = (rotation / 90) % 4; this.yscale = yscale; this.layers = layers; @@ -65,7 +73,8 @@ public class HeightBrush implements Brush { } @Override - public void build(EditSession editSession, BlockVector3 position, Pattern pattern, double sizeDouble) throws MaxChangedBlocksException { + public void build(EditSession editSession, BlockVector3 position, Pattern pattern, double sizeDouble) throws + MaxChangedBlocksException { int size = (int) sizeDouble; HeightMap map = getHeightMap(); map.setSize(size); @@ -76,4 +85,5 @@ public class HeightBrush implements Brush { } map.perform(editSession, mask, position, size, rotation, yscale, smooth, false, layers); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/ImageBrush.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/ImageBrush.java index 37003ba68..350fa1637 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/ImageBrush.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/ImageBrush.java @@ -1,9 +1,9 @@ package com.fastasyncworldedit.core.command.tool.brush; import com.fastasyncworldedit.core.function.mask.ImageBrushMask; -import com.fastasyncworldedit.core.util.collection.SummedColorTable; import com.fastasyncworldedit.core.function.mask.SurfaceMask; import com.fastasyncworldedit.core.util.TextureUtil; +import com.fastasyncworldedit.core.util.collection.SummedColorTable; import com.sk89q.worldedit.EditSession; import com.sk89q.worldedit.LocalSession; import com.sk89q.worldedit.MaxChangedBlocksException; @@ -12,6 +12,7 @@ import com.sk89q.worldedit.extent.Extent; import com.sk89q.worldedit.function.mask.Mask; import com.sk89q.worldedit.function.operation.Operations; import com.sk89q.worldedit.function.pattern.Pattern; +import com.sk89q.worldedit.function.visitor.BreadthFirstSearch; import com.sk89q.worldedit.function.visitor.RecursiveVisitor; import com.sk89q.worldedit.math.BlockVector3; import com.sk89q.worldedit.math.transform.AffineTransform; @@ -23,6 +24,7 @@ import java.io.IOException; import java.util.Arrays; public class ImageBrush implements Brush { + private final LocalSession session; private final SummedColorTable table; private final int width; @@ -63,11 +65,14 @@ public class ImageBrush implements Brush { } public interface ColorFunction { + int call(int x1, int z1, int x2, int z2, Extent extent, BlockVector3 pos); + } @Override - public void build(EditSession editSession, BlockVector3 center, Pattern pattern, double sizeDouble) throws MaxChangedBlocksException { + public void build(EditSession editSession, BlockVector3 center, Pattern pattern, double sizeDouble) throws + MaxChangedBlocksException { final Mask solid = new SurfaceMask(editSession); double scale = Math.max(width, height) / sizeDouble; @@ -77,9 +82,20 @@ public class ImageBrush implements Brush { float pitch = loc.getPitch(); AffineTransform transform = new AffineTransform().rotateY((-yaw) % 360).rotateX((pitch - 90) % 360).inverse(); RecursiveVisitor visitor = new RecursiveVisitor( - new ImageBrushMask(solid, center, transform, scale, centerImageX, centerImageZ, width, height, colorFunction, editSession, - session.getTextureUtil()), vector -> true, Integer.MAX_VALUE); - visitor.setDirections(Arrays.asList(visitor.DIAGONAL_DIRECTIONS)); + new ImageBrushMask( + solid, + center, + transform, + scale, + centerImageX, + centerImageZ, + width, + height, + colorFunction, + editSession, + session.getTextureUtil() + ), vector -> true, Integer.MAX_VALUE); + visitor.setDirections(Arrays.asList(BreadthFirstSearch.DIAGONAL_DIRECTIONS)); visitor.visit(center); Operations.completeBlindly(visitor); } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/InspectBrush.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/InspectBrush.java index 6d2cc4d4b..898e94266 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/InspectBrush.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/InspectBrush.java @@ -70,8 +70,10 @@ public class InspectBrush extends BrushTool { return false; } if (!Settings.IMP.HISTORY.USE_DATABASE) { - player.print(Caption.of("fawe.error.setting.disable", - "history.use-database (Import with /history import )")); + player.print(Caption.of( + "fawe.error.setting.disable", + "history.use-database (Import with /history import )" + )); LOGGER.debug("No db"); return false; } @@ -101,7 +103,13 @@ public class InspectBrush extends BrushTool { String ageFormatted = MainUtil.secToTime(age / 1000); BlockState blockFrom = BlockState.getFromOrdinal(from); BlockState blockTo = BlockState.getFromOrdinal(to); - TranslatableComponent msg = Caption.of("fawe.worldedit.tool.tool.inspect.info", name, blockFrom, blockTo, ageFormatted); + TranslatableComponent msg = Caption.of( + "fawe.worldedit.tool.tool.inspect.info", + name, + blockFrom, + blockTo, + ageFormatted + ); TextComponent hover = TextComponent.of("/tool inspect", TextColor.GOLD); String infoCmd = "//history summary " + uuid + " " + index; @@ -121,4 +129,5 @@ public class InspectBrush extends BrushTool { public boolean canUse(Actor actor) { return actor.hasPermission("worldedit.tool.inspect"); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/LayerBrush.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/LayerBrush.java index 64d82f5b7..e9301692c 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/LayerBrush.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/LayerBrush.java @@ -1,9 +1,9 @@ package com.fastasyncworldedit.core.command.tool.brush; -import com.fastasyncworldedit.core.function.mask.LayerBrushMask; -import com.fastasyncworldedit.core.math.BlockVectorSet; import com.fastasyncworldedit.core.function.mask.AdjacentAnyMask; +import com.fastasyncworldedit.core.function.mask.LayerBrushMask; import com.fastasyncworldedit.core.function.mask.RadiusMask; +import com.fastasyncworldedit.core.math.BlockVectorSet; import com.sk89q.worldedit.EditSession; import com.sk89q.worldedit.MaxChangedBlocksException; import com.sk89q.worldedit.command.tool.brush.Brush; @@ -30,8 +30,13 @@ public class LayerBrush implements Brush { } @Override - public void build(EditSession editSession, BlockVector3 position, Pattern ignore, double size) throws MaxChangedBlocksException { - final AdjacentAnyMask adjacent = new AdjacentAnyMask(new BlockMask(editSession).add(BlockTypes.AIR, BlockTypes.CAVE_AIR, BlockTypes.VOID_AIR)); + public void build(EditSession editSession, BlockVector3 position, Pattern ignore, double size) throws + MaxChangedBlocksException { + final AdjacentAnyMask adjacent = new AdjacentAnyMask(new BlockMask(editSession).add( + BlockTypes.AIR, + BlockTypes.CAVE_AIR, + BlockTypes.VOID_AIR + )); final SolidBlockMask solid = new SolidBlockMask(editSession); final RadiusMask radius = new RadiusMask(0, (int) size); visitor = new RecursiveVisitor(new MaskIntersection(adjacent, solid, radius), function -> true); diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/LineBrush.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/LineBrush.java index fc6606044..059705564 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/LineBrush.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/LineBrush.java @@ -22,7 +22,8 @@ public class LineBrush implements Brush, ResettableTool { } @Override - public void build(EditSession editSession, BlockVector3 position, Pattern pattern, double size) throws MaxChangedBlocksException { + public void build(EditSession editSession, BlockVector3 position, Pattern pattern, double size) throws + MaxChangedBlocksException { if (pos1 == null) { pos1 = position; editSession.getPlayer().print(Caption.of("fawe.worldedit.brush.brush.line.primary", position)); @@ -42,4 +43,5 @@ public class LineBrush implements Brush, ResettableTool { pos1 = null; return true; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/PopulateSchem.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/PopulateSchem.java index c6254a404..7df98ddfb 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/PopulateSchem.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/PopulateSchem.java @@ -15,6 +15,7 @@ import com.sk89q.worldedit.session.ClipboardHolder; import java.util.List; public class PopulateSchem implements Brush { + private final Mask mask; private final boolean randomRotate; private final List clipboards; @@ -28,14 +29,20 @@ public class PopulateSchem implements Brush { } @Override - public void build(EditSession editSession, BlockVector3 position, Pattern pattern, double size) throws MaxChangedBlocksException { + public void build(EditSession editSession, BlockVector3 position, Pattern pattern, double size) throws + MaxChangedBlocksException { new MaskTraverser(mask).reset(editSession); int size1 = MathMan.roundInt(size); - CuboidRegion cuboid = new CuboidRegion(editSession.getWorld(), position.subtract(size1, size1, size1), position.add(size1, size1, size1)); + CuboidRegion cuboid = new CuboidRegion( + editSession.getWorld(), + position.subtract(size1, size1, size1), + position.add(size1, size1, size1) + ); try { editSession.addSchems(cuboid, mask, clipboards, rarity, randomRotate); } catch (WorldEditException e) { throw new RuntimeException(e); } } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/RaiseBrush.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/RaiseBrush.java index f4f5ac6e3..9ba846c4e 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/RaiseBrush.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/RaiseBrush.java @@ -1,10 +1,13 @@ package com.fastasyncworldedit.core.command.tool.brush; public class RaiseBrush extends ErodeBrush { + public RaiseBrush() { this(6, 0, 1, 1); } + public RaiseBrush(int erodeFaces, int erodeRec, int fillFaces, int fillRec) { super(erodeFaces, erodeRec, fillFaces, fillRec); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/RecurseBrush.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/RecurseBrush.java index 0019833ac..c9234084e 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/RecurseBrush.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/RecurseBrush.java @@ -59,4 +59,5 @@ public class RecurseBrush implements Brush { Operations.completeBlindly(visitor); } } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/RockBrush.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/RockBrush.java index 52704d1bb..ed72fa52f 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/RockBrush.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/RockBrush.java @@ -11,6 +11,7 @@ import com.sk89q.worldedit.math.Vector3; import java.util.concurrent.ThreadLocalRandom; public class RockBrush implements Brush { + private final double amplitude; private final double frequency; private final Vector3 radius; @@ -22,7 +23,8 @@ public class RockBrush implements Brush { } @Override - public void build(EditSession editSession, BlockVector3 position, Pattern pattern, double size) throws MaxChangedBlocksException { + public void build(EditSession editSession, BlockVector3 position, Pattern pattern, double size) throws + MaxChangedBlocksException { double seedX = ThreadLocalRandom.current().nextDouble(); double seedY = ThreadLocalRandom.current().nextDouble(); double seedZ = ThreadLocalRandom.current().nextDouble(); @@ -56,4 +58,5 @@ public class RockBrush implements Brush { } } } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/ScatterBrush.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/ScatterBrush.java index 78183387d..54aaf864e 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/ScatterBrush.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/ScatterBrush.java @@ -1,10 +1,10 @@ package com.fastasyncworldedit.core.command.tool.brush; -import com.fastasyncworldedit.core.math.BlockVectorSet; -import com.fastasyncworldedit.core.math.LocalBlockVectorSet; import com.fastasyncworldedit.core.function.mask.AdjacentAnyMask; import com.fastasyncworldedit.core.function.mask.RadiusMask; import com.fastasyncworldedit.core.function.mask.SurfaceMask; +import com.fastasyncworldedit.core.math.BlockVectorSet; +import com.fastasyncworldedit.core.math.LocalBlockVectorSet; import com.sk89q.worldedit.EditSession; import com.sk89q.worldedit.MaxChangedBlocksException; import com.sk89q.worldedit.command.tool.brush.Brush; @@ -41,7 +41,8 @@ public class ScatterBrush implements Brush { } @Override - public void build(EditSession editSession, BlockVector3 position, Pattern pattern, double size) throws MaxChangedBlocksException { + public void build(EditSession editSession, BlockVector3 position, Pattern pattern, double size) throws + MaxChangedBlocksException { this.mask = editSession.getMask(); if (this.mask == null) { this.mask = Masks.alwaysTrue(); @@ -95,7 +96,9 @@ public class ScatterBrush implements Brush { return surface.direction(pt); } - public void apply(EditSession editSession, LocalBlockVectorSet placed, BlockVector3 pt, Pattern p, double size) throws MaxChangedBlocksException { + public void apply(EditSession editSession, LocalBlockVectorSet placed, BlockVector3 pt, Pattern p, double size) throws + MaxChangedBlocksException { editSession.setBlock(pt, p); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/ScatterCommand.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/ScatterCommand.java index de8c94e79..2a4e2a5b1 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/ScatterCommand.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/ScatterCommand.java @@ -14,6 +14,7 @@ import com.sk89q.worldedit.regions.selector.CuboidRegionSelector; import java.util.List; public class ScatterCommand extends ScatterBrush { + private final String command; public ScatterCommand(int count, int distance, String command) { @@ -22,9 +23,14 @@ public class ScatterCommand extends ScatterBrush { } @Override - public void apply(EditSession editSession, LocalBlockVectorSet placed, BlockVector3 position, Pattern p, double size) throws MaxChangedBlocksException { + public void apply(EditSession editSession, LocalBlockVectorSet placed, BlockVector3 position, Pattern p, double size) throws + MaxChangedBlocksException { int radius = getDistance(); - CuboidRegionSelector selector = new CuboidRegionSelector(editSession.getWorld(), position.subtract(radius, radius, radius), position.add(radius, radius, radius)); + CuboidRegionSelector selector = new CuboidRegionSelector( + editSession.getWorld(), + position.subtract(radius, radius, radius), + position.add(radius, radius, radius) + ); String replaced = command.replace("{x}", position.getBlockX() + "") .replace("{y}", Integer.toString(position.getBlockY())) .replace("{z}", Integer.toString(position.getBlockZ())) @@ -39,4 +45,5 @@ public class ScatterCommand extends ScatterBrush { PlatformCommandManager.getInstance().handleCommandOnCurrentThread(event); } } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/ScatterOverlayBrush.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/ScatterOverlayBrush.java index d9efc25f6..b12ea73de 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/ScatterOverlayBrush.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/ScatterOverlayBrush.java @@ -7,16 +7,19 @@ import com.sk89q.worldedit.function.pattern.Pattern; import com.sk89q.worldedit.math.BlockVector3; public class ScatterOverlayBrush extends ScatterBrush { + public ScatterOverlayBrush(int count, int distance) { super(count, distance); } @Override - public void apply(EditSession editSession, LocalBlockVectorSet placed, BlockVector3 pt, Pattern p, double size) throws MaxChangedBlocksException { + public void apply(EditSession editSession, LocalBlockVectorSet placed, BlockVector3 pt, Pattern p, double size) throws + MaxChangedBlocksException { int x = pt.getBlockX(); int y = pt.getBlockY(); int z = pt.getBlockZ(); BlockVector3 dir = getDirection(pt); editSession.setBlock(x + dir.getBlockX(), y + dir.getBlockY(), z + dir.getBlockZ(), p); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/ShatterBrush.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/ShatterBrush.java index 7a8629933..58fdb4997 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/ShatterBrush.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/ShatterBrush.java @@ -1,7 +1,8 @@ package com.fastasyncworldedit.core.command.tool.brush; -import com.fastasyncworldedit.core.math.LocalBlockVectorSet; import com.fastasyncworldedit.core.function.mask.SurfaceMask; +import com.fastasyncworldedit.core.math.LocalBlockVectorSet; +import com.fastasyncworldedit.core.math.MutableBlockVector3; import com.sk89q.worldedit.EditSession; import com.sk89q.worldedit.MaxChangedBlocksException; import com.sk89q.worldedit.function.mask.Mask; @@ -9,11 +10,11 @@ import com.sk89q.worldedit.function.mask.Masks; import com.sk89q.worldedit.function.pattern.Pattern; import com.sk89q.worldedit.function.visitor.BreadthFirstSearch; import com.sk89q.worldedit.math.BlockVector3; -import com.fastasyncworldedit.core.math.MutableBlockVector3; import java.util.concurrent.ThreadLocalRandom; public class ShatterBrush extends ScatterBrush { + private final MutableBlockVector3 mutable = new MutableBlockVector3(); public ShatterBrush(int count) { @@ -21,11 +22,23 @@ public class ShatterBrush extends ScatterBrush { } @Override - public void apply(final EditSession editSession, final LocalBlockVectorSet placed, final BlockVector3 position, Pattern p, double size) throws MaxChangedBlocksException { + public void apply( + final EditSession editSession, + final LocalBlockVectorSet placed, + final BlockVector3 position, + Pattern p, + double size + ) throws MaxChangedBlocksException { } @Override - public void finish(EditSession editSession, LocalBlockVectorSet placed, final BlockVector3 position, Pattern pattern, double size) { + public void finish( + EditSession editSession, + LocalBlockVectorSet placed, + final BlockVector3 position, + Pattern pattern, + double size + ) { int radius2 = (int) (size * size); // Individual frontier for each point LocalBlockVectorSet[] frontiers = new LocalBlockVectorSet[placed.size()]; @@ -76,7 +89,7 @@ public class ShatterBrush extends ScatterBrush { int dSqr = (dx * dx) + (dy * dy) + (dz * dz); if (dSqr <= radius2) { BlockVector3 bv = mutable.setComponents(x2, y2, z2); - if (surfaceTest.test(bv) && finalMask.test( bv)) { + if (surfaceTest.test(bv) && finalMask.test(bv)) { // (collision) If it's visited and part of another frontier, set the block if (!placed.add(x2, y2, z2)) { if (!frontierVisited.contains(x2, y2, z2)) { @@ -98,4 +111,5 @@ public class ShatterBrush extends ScatterBrush { } } } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/SplatterBrush.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/SplatterBrush.java index d5d63fbfd..135c067a8 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/SplatterBrush.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/SplatterBrush.java @@ -1,8 +1,8 @@ package com.fastasyncworldedit.core.command.tool.brush; import com.fastasyncworldedit.core.function.mask.SplatterBrushMask; -import com.fastasyncworldedit.core.math.LocalBlockVectorSet; import com.fastasyncworldedit.core.function.mask.SurfaceMask; +import com.fastasyncworldedit.core.math.LocalBlockVectorSet; import com.sk89q.worldedit.EditSession; import com.sk89q.worldedit.MaxChangedBlocksException; import com.sk89q.worldedit.function.operation.Operations; @@ -14,6 +14,7 @@ import com.sk89q.worldedit.math.BlockVector3; import java.util.Arrays; public class SplatterBrush extends ScatterBrush { + private final boolean solid; private final int recursion; @@ -24,7 +25,13 @@ public class SplatterBrush extends ScatterBrush { } @Override - public void apply(final EditSession editSession, final LocalBlockVectorSet placed, final BlockVector3 position, Pattern p, double size) throws MaxChangedBlocksException { + public void apply( + final EditSession editSession, + final LocalBlockVectorSet placed, + final BlockVector3 position, + Pattern p, + double size + ) throws MaxChangedBlocksException { final Pattern finalPattern; if (solid) { finalPattern = p.applyBlock(position); @@ -35,10 +42,12 @@ public class SplatterBrush extends ScatterBrush { SurfaceMask surface = new SurfaceMask(editSession); RecursiveVisitor visitor = new RecursiveVisitor(new SplatterBrushMask(editSession, position, size2, surface, placed), - vector -> editSession.setBlock(vector, finalPattern), recursion); + vector -> editSession.setBlock(vector, finalPattern), recursion + ); visitor.setMaxBranch(2); visitor.setDirections(Arrays.asList(BreadthFirstSearch.DIAGONAL_DIRECTIONS)); visitor.visit(position); Operations.completeBlindly(visitor); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/SplineBrush.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/SplineBrush.java index f1ff105ac..3f6d1cf16 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/SplineBrush.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/SplineBrush.java @@ -5,6 +5,7 @@ import com.fastasyncworldedit.core.command.tool.ResettableTool; import com.fastasyncworldedit.core.configuration.Caption; import com.fastasyncworldedit.core.function.mask.IdMask; import com.fastasyncworldedit.core.function.visitor.DFSRecursiveVisitor; +import com.fastasyncworldedit.core.math.MutableVector3; import com.sk89q.worldedit.EditSession; import com.sk89q.worldedit.WorldEditException; import com.sk89q.worldedit.command.tool.brush.Brush; @@ -14,7 +15,6 @@ import com.sk89q.worldedit.function.mask.MaskIntersection; import com.sk89q.worldedit.function.operation.Operations; import com.sk89q.worldedit.function.pattern.Pattern; import com.sk89q.worldedit.math.BlockVector3; -import com.fastasyncworldedit.core.math.MutableVector3; import com.sk89q.worldedit.math.Vector3; import com.sk89q.worldedit.math.interpolation.Node; @@ -25,7 +25,7 @@ import java.util.List; public class SplineBrush implements Brush, ResettableTool { public static int MAX_POINTS = 15; - private ArrayList> positionSets; + private final ArrayList> positionSets; private int numSplines; private final Player player; @@ -193,4 +193,5 @@ public class SplineBrush implements Brush, ResettableTool { } return dir.normalize(); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/StencilBrush.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/StencilBrush.java index b2d185653..b4a81bef7 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/StencilBrush.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/StencilBrush.java @@ -18,6 +18,7 @@ import java.io.InputStream; import java.util.Arrays; public class StencilBrush extends HeightBrush { + private final boolean onlyWhite; public StencilBrush(InputStream stream, int rotation, double yscale, boolean onlyWhite, Clipboard clipboard) { @@ -26,7 +27,8 @@ public class StencilBrush extends HeightBrush { } @Override - public void build(EditSession editSession, BlockVector3 center, Pattern pattern, double sizeDouble) throws MaxChangedBlocksException { + public void build(EditSession editSession, BlockVector3 center, Pattern pattern, double sizeDouble) throws + MaxChangedBlocksException { int size = (int) sizeDouble; int size2 = (int) (sizeDouble * sizeDouble); int maxY = editSession.getMaxY(); @@ -48,10 +50,24 @@ public class StencilBrush extends HeightBrush { double scale = (yscale / sizeDouble) * (maxY + 1); RecursiveVisitor visitor = - new RecursiveVisitor(new StencilBrushMask(editSession, solid, center, transform, size2, map, scale, add, cutoff, maxY, pattern), - vector -> true, Integer.MAX_VALUE); + new RecursiveVisitor(new StencilBrushMask( + editSession, + solid, + center, + transform, + size2, + map, + scale, + add, + cutoff, + maxY, + pattern + ), + vector -> true, Integer.MAX_VALUE + ); visitor.setDirections(Arrays.asList(BreadthFirstSearch.DIAGONAL_DIRECTIONS)); visitor.visit(center); Operations.completeBlindly(visitor); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/SurfaceSphereBrush.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/SurfaceSphereBrush.java index 9de687268..234a2d497 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/SurfaceSphereBrush.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/SurfaceSphereBrush.java @@ -16,14 +16,20 @@ import com.sk89q.worldedit.math.BlockVector3; import java.util.Arrays; public class SurfaceSphereBrush implements Brush { + @Override - public void build(EditSession editSession, BlockVector3 position, Pattern pattern, double size) throws MaxChangedBlocksException { + public void build(EditSession editSession, BlockVector3 position, Pattern pattern, double size) throws + MaxChangedBlocksException { SurfaceMask surface = new SurfaceMask(editSession); final SolidBlockMask solid = new SolidBlockMask(editSession); final RadiusMask radius = new RadiusMask(0, (int) size); - RecursiveVisitor visitor = new RecursiveVisitor(new MaskIntersection(surface, radius), vector -> editSession.setBlock(vector, pattern)); + RecursiveVisitor visitor = new RecursiveVisitor( + new MaskIntersection(surface, radius), + vector -> editSession.setBlock(vector, pattern) + ); visitor.visit(position); visitor.setDirections(Arrays.asList(BreadthFirstSearch.DIAGONAL_DIRECTIONS)); Operations.completeBlindly(visitor); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/SurfaceSpline.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/SurfaceSpline.java index 9b9c0350a..aff11cf6c 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/SurfaceSpline.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/brush/SurfaceSpline.java @@ -2,6 +2,7 @@ package com.fastasyncworldedit.core.command.tool.brush; import com.fastasyncworldedit.core.configuration.Caption; import com.fastasyncworldedit.core.math.LocalBlockVectorSet; +import com.fastasyncworldedit.core.math.MutableBlockVector3; import com.fastasyncworldedit.core.util.MathMan; import com.sk89q.worldedit.EditSession; import com.sk89q.worldedit.MaxChangedBlocksException; @@ -9,7 +10,6 @@ import com.sk89q.worldedit.WorldEditException; import com.sk89q.worldedit.command.tool.brush.Brush; import com.sk89q.worldedit.function.pattern.Pattern; import com.sk89q.worldedit.math.BlockVector3; -import com.fastasyncworldedit.core.math.MutableBlockVector3; import com.sk89q.worldedit.math.Vector3; import com.sk89q.worldedit.math.interpolation.KochanekBartelsInterpolation; import com.sk89q.worldedit.math.interpolation.Node; @@ -18,6 +18,7 @@ import java.util.ArrayList; import java.util.List; public class SurfaceSpline implements Brush { + private final double tension; private final double bias; private final double continuity; @@ -30,13 +31,20 @@ public class SurfaceSpline implements Brush { this.quality = quality; } - private ArrayList path = new ArrayList<>(); + private final ArrayList path = new ArrayList<>(); @Override - public void build(EditSession editSession, BlockVector3 pos, Pattern pattern, double radius) throws MaxChangedBlocksException { + public void build(EditSession editSession, BlockVector3 pos, Pattern pattern, double radius) throws + MaxChangedBlocksException { int maxY = editSession.getMaxY(); if (path.isEmpty() || !pos.equals(path.get(path.size() - 1))) { - int max = editSession.getNearestSurfaceTerrainBlock(pos.getBlockX(), pos.getBlockZ(), pos.getBlockY(), 0, editSession.getMaxY()); + int max = editSession.getNearestSurfaceTerrainBlock( + pos.getBlockX(), + pos.getBlockZ(), + pos.getBlockY(), + 0, + editSession.getMaxY() + ); if (max == -1) { return; } @@ -103,4 +111,5 @@ public class SurfaceSpline implements Brush { } editSession.getPlayer().print(Caption.of("fawe.worldedit.brush.spline.secondary")); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/scroll/Scroll.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/scroll/Scroll.java index 9de9615a8..ca32cc5f6 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/scroll/Scroll.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/scroll/Scroll.java @@ -18,6 +18,7 @@ import java.util.List; import java.util.Locale; public abstract class Scroll implements ScrollTool { + private BrushTool tool; public enum Action { @@ -38,7 +39,14 @@ public abstract class Scroll implements ScrollTool { return fromArguments(tool, player, session, mode, args, message); } - public static Scroll fromArguments(BrushTool tool, Player player, LocalSession session, Action mode, List arguments, boolean message) throws InputParseException { + public static Scroll fromArguments( + BrushTool tool, + Player player, + LocalSession session, + Action mode, + List arguments, + boolean message + ) throws InputParseException { ParserContext parserContext = new ParserContext(); parserContext.setActor(player); parserContext.setWorld(player.getWorld()); @@ -114,4 +122,5 @@ public abstract class Scroll implements ScrollTool { public BrushTool getTool() { return tool; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/scroll/ScrollClipboard.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/scroll/ScrollClipboard.java index 4699611e1..d153c3a6c 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/scroll/ScrollClipboard.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/scroll/ScrollClipboard.java @@ -9,6 +9,7 @@ import com.sk89q.worldedit.session.ClipboardHolder; import java.util.List; public class ScrollClipboard extends Scroll { + private final List clipboards; private final LocalSession session; private int index = 0; @@ -26,4 +27,5 @@ public class ScrollClipboard extends Scroll { session.setClipboard(clipboard); return true; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/scroll/ScrollMask.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/scroll/ScrollMask.java index 037fb7ef7..983bfab70 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/scroll/ScrollMask.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/scroll/ScrollMask.java @@ -6,6 +6,7 @@ import com.sk89q.worldedit.entity.Player; import com.sk89q.worldedit.function.mask.Mask; public class ScrollMask extends Scroll { + private final Mask[] masks; private int index; @@ -23,4 +24,5 @@ public class ScrollMask extends Scroll { } return false; } -} \ No newline at end of file + +} diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/scroll/ScrollPattern.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/scroll/ScrollPattern.java index 4aca2ff21..5776ffcbe 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/scroll/ScrollPattern.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/scroll/ScrollPattern.java @@ -6,6 +6,7 @@ import com.sk89q.worldedit.entity.Player; import com.sk89q.worldedit.function.pattern.Pattern; public class ScrollPattern extends Scroll { + private final Pattern[] patterns; private int index; @@ -23,4 +24,5 @@ public class ScrollPattern extends Scroll { } return false; } -} \ No newline at end of file + +} diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/scroll/ScrollRange.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/scroll/ScrollRange.java index 9afaf84c4..405b62b81 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/scroll/ScrollRange.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/scroll/ScrollRange.java @@ -6,6 +6,7 @@ import com.sk89q.worldedit.command.tool.BrushTool; import com.sk89q.worldedit.entity.Player; public class ScrollRange extends Scroll { + public ScrollRange(BrushTool tool) { super(tool); } @@ -17,4 +18,5 @@ public class ScrollRange extends Scroll { getTool().setRange(newSize); return true; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/scroll/ScrollSize.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/scroll/ScrollSize.java index 448a72271..cf60639f5 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/scroll/ScrollSize.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/scroll/ScrollSize.java @@ -5,6 +5,7 @@ import com.sk89q.worldedit.command.tool.BrushTool; import com.sk89q.worldedit.entity.Player; public class ScrollSize extends Scroll { + public ScrollSize(BrushTool tool) { super(tool); } @@ -16,4 +17,5 @@ public class ScrollSize extends Scroll { getTool().setSize(newSize); return true; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/scroll/ScrollTarget.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/scroll/ScrollTarget.java index 475e162e0..18cedd7bf 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/scroll/ScrollTarget.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/scroll/ScrollTarget.java @@ -6,6 +6,7 @@ import com.sk89q.worldedit.command.tool.BrushTool; import com.sk89q.worldedit.entity.Player; public class ScrollTarget extends Scroll { + public ScrollTarget(BrushTool tool) { super(tool); } @@ -19,4 +20,5 @@ public class ScrollTarget extends Scroll { getTool().setTargetMode(newMode); return true; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/scroll/ScrollTargetOffset.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/scroll/ScrollTargetOffset.java index f6612b68f..593754182 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/scroll/ScrollTargetOffset.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/scroll/ScrollTargetOffset.java @@ -4,6 +4,7 @@ import com.sk89q.worldedit.command.tool.BrushTool; import com.sk89q.worldedit.entity.Player; public class ScrollTargetOffset extends Scroll { + public ScrollTargetOffset(BrushTool tool) { super(tool); } @@ -14,4 +15,5 @@ public class ScrollTargetOffset extends Scroll { tool.setTargetOffset(tool.getTargetOffset() + amount); return true; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/scroll/ScrollTool.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/scroll/ScrollTool.java index 7300a2846..ce9fd3e15 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/scroll/ScrollTool.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/scroll/ScrollTool.java @@ -3,5 +3,7 @@ package com.fastasyncworldedit.core.command.tool.scroll; import com.sk89q.worldedit.entity.Player; public interface ScrollTool { + boolean increment(Player player, int amount); + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/sweep/ClipboardSpline.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/sweep/ClipboardSpline.java index acd41f34e..e2b29cd54 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/sweep/ClipboardSpline.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/sweep/ClipboardSpline.java @@ -1,6 +1,7 @@ package com.fastasyncworldedit.core.command.tool.sweep; import com.fastasyncworldedit.core.math.LocalBlockVectorSet; +import com.fastasyncworldedit.core.math.transform.RoundedTransform; import com.sk89q.worldedit.EditSession; import com.sk89q.worldedit.MaxChangedBlocksException; import com.sk89q.worldedit.extent.clipboard.Clipboard; @@ -11,37 +12,35 @@ import com.sk89q.worldedit.math.BlockVector3; import com.sk89q.worldedit.math.Vector3; import com.sk89q.worldedit.math.interpolation.Interpolation; import com.sk89q.worldedit.math.transform.AffineTransform; -import com.fastasyncworldedit.core.math.transform.RoundedTransform; import com.sk89q.worldedit.math.transform.Transform; import com.sk89q.worldedit.regions.Region; import com.sk89q.worldedit.session.ClipboardHolder; /** * An implementation of a {@link Spline} using a Clipboard as source for the structure. + * * @author Schuwi * @version 1.0 */ public class ClipboardSpline extends Spline { private final Transform transform; - private ClipboardHolder clipboardHolder; - private BlockVector3 originalOrigin; - private Transform originalTransform; + private final ClipboardHolder clipboardHolder; + private final BlockVector3 originalOrigin; + private final Transform originalTransform; private BlockVector3 center; - private BlockVector3 centerOffset; - private LocalBlockVectorSet buffer; + private final BlockVector3 centerOffset; + private final LocalBlockVectorSet buffer; /** * Constructor without position-correction. Use this constructor for an interpolation * implementation which does not need position-correction. * - * @param editSession The EditSession which will be used when pasting the clipboard content + * @param editSession The EditSession which will be used when pasting the clipboard content * @param clipboardHolder The clipboard that will be pasted along the spline - * @param interpolation An implementation of the interpolation algorithm used to calculate - * the curve - * @apiNote Be advised that currently subsequent changes to the interpolation parameters may - * not be supported. + * @param interpolation An implementation of the interpolation algorithm used to calculate + * the curve */ public ClipboardSpline(EditSession editSession, ClipboardHolder clipboardHolder, Interpolation interpolation) { this(editSession, clipboardHolder, interpolation, new AffineTransform(), -1); @@ -64,15 +63,19 @@ public class ClipboardSpline extends Spline { * amount to 0.25 × 40 = 10 units of curve length between these two positions. *

    * - * @param editSession The EditSession which will be used when pasting the clipboard content + * @param editSession The EditSession which will be used when pasting the clipboard content * @param clipboardHolder The clipboard that will be pasted along the spline - * @param interpolation An implementation of the interpolation algorithm used to calculate - * the curve - * @param nodeCount The number of nodes provided to the interpolation object - * @apiNote Be advised that currently subsequent changes to the interpolation parameters may - * not be supported. + * @param interpolation An implementation of the interpolation algorithm used to calculate + * the curve + * @param nodeCount The number of nodes provided to the interpolation object */ - public ClipboardSpline(EditSession editSession, ClipboardHolder clipboardHolder, Interpolation interpolation, Transform transform, int nodeCount) { + public ClipboardSpline( + EditSession editSession, + ClipboardHolder clipboardHolder, + Interpolation interpolation, + Transform transform, + int nodeCount + ) { super(editSession, interpolation, nodeCount); this.clipboardHolder = clipboardHolder; @@ -126,4 +129,5 @@ public class ClipboardSpline extends Spline { return operation instanceof ForwardExtentCopy ? ((ForwardExtentCopy) operation).getAffected() : 0; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/sweep/Spline.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/sweep/Spline.java index 27566d6c0..9926492c3 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/sweep/Spline.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/sweep/Spline.java @@ -15,6 +15,7 @@ import java.util.List; * Embodies an abstract implementation for pasting structures along a spline.
    * A curve is being interpolated by the provided {@link Interpolation} implementation * and the structure is pasted along this curve by the specific Spline implementation. + * * @author Schuwi * @version 1.0 */ @@ -24,17 +25,18 @@ public abstract class Spline { private final int nodeCount; protected EditSession editSession; - private Interpolation interpolation; + private final Interpolation interpolation; private List
    sections; - private double splineLength; + private final double splineLength; /** * Constructor without position-correction. Use this constructor for an interpolation implementation which does not need position-correction. *

    * Be advised that currently subsequent changes to the interpolation parameters may not be supported. - * @param editSession The EditSession which will be used when pasting the structure - * @param interpolation An implementation of the interpolation algorithm used to calculate the curve + * + * @param editSession The EditSession which will be used when pasting the structure + * @param interpolation An implementation of the interpolation algorithm used to calculate the curve */ protected Spline(EditSession editSession, Interpolation interpolation) { this(editSession, interpolation, -1); @@ -53,9 +55,10 @@ public abstract class Spline { * 0.25 * 40 = 10 units of curve length between these two positions. *

    * Be advised that currently subsequent changes to the interpolation parameters may not be supported. - * @param editSession The EditSession which will be used when pasting the structure - * @param interpolation An implementation of the interpolation algorithm used to calculate the curve - * @param nodeCount The number of nodes provided to the interpolation object + * + * @param editSession The EditSession which will be used when pasting the structure + * @param interpolation An implementation of the interpolation algorithm used to calculate the curve + * @param nodeCount The number of nodes provided to the interpolation object */ protected Spline(EditSession editSession, Interpolation interpolation, int nodeCount) { this.editSession = editSession; @@ -76,6 +79,7 @@ public abstract class Spline { * is rotated by that angle to follow the curve slope. *

    * The default direction is a (1;0) vector (pointing in the positive x-direction). + * * @param direction A vector representing the horizontal forward direction of the clipboard content */ public void setDirection(Vector2 direction) { @@ -90,6 +94,7 @@ public abstract class Spline { * is rotated by that angle to follow the curve slope. *

    * The default direction is a (1;0) vector (pointing in the positive x-direction). + * * @return A vector representing the horizontal forward direction of the clipboard content */ public Vector2 getDirection() { @@ -99,8 +104,9 @@ public abstract class Spline { /** * Paste the structure at the provided position on the curve. The position will be position-corrected if the * nodeCount provided to the constructor is bigger than 2. + * * @param position The position on the curve. Must be between 0.0 and 1.0 (both inclusive) - * @return The amount of blocks that have been changed + * @return The amount of blocks that have been changed * @throws MaxChangedBlocksException Thrown by WorldEdit if the limit of block changes for the {@link EditSession} has been reached */ public int pastePosition(double position) throws MaxChangedBlocksException { @@ -124,8 +130,9 @@ public abstract class Spline { /** * Paste structure at the provided position on the curve. The position will not be position-corrected * but will be passed directly to the interpolation algorithm. + * * @param position The position on the curve. Must be between 0.0 and 1.0 (both inclusive) - * @return The amount of blocks that have been changed + * @return The amount of blocks that have been changed * @throws MaxChangedBlocksException Thrown by WorldEdit if the limit of block changes for the {@link EditSession} has been reached */ public int pastePositionDirect(double position) throws MaxChangedBlocksException { @@ -142,9 +149,9 @@ public abstract class Spline { Vector3 deriv = interpolation.get1stDerivative(position); Vector2 deriv2D = Vector2.at(deriv.getX(), deriv.getZ()).normalize(); double angle = Math.toDegrees( - -Math.atan2(cross2D(direction, deriv2D), direction.dot(deriv2D)) + -Math.atan2(cross2D(direction, deriv2D), direction.dot(deriv2D)) ); - + angle = ((angle % 360) + 360) % 360; // Wrap to 360 degrees return pasteBlocks(blockTarget, offset, angle); @@ -196,6 +203,7 @@ public abstract class Spline { } private class Section { + final double uniStart; final double uniLength; final double flexStart; @@ -207,5 +215,7 @@ public abstract class Spline { this.flexStart = flexStart; this.flexLength = flexLength; } + } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/sweep/SweepBrush.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/sweep/SweepBrush.java index 87287e639..1d348a89f 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/sweep/SweepBrush.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/command/tool/sweep/SweepBrush.java @@ -24,9 +24,10 @@ import java.util.List; import java.util.stream.Collectors; public class SweepBrush implements Brush, ResettableTool { - private List positions; + + private final List positions; private BlockVector3 position; - private int copies; + private final int copies; private static final double tension = 0D; private static final double bias = 0D; @@ -38,7 +39,8 @@ public class SweepBrush implements Brush, ResettableTool { } @Override - public void build(EditSession editSession, BlockVector3 position, Pattern pattern, double size) throws MaxChangedBlocksException { + public void build(EditSession editSession, BlockVector3 position, Pattern pattern, double size) throws + MaxChangedBlocksException { boolean newPos = !position.equals(this.position); this.position = position; @@ -100,7 +102,7 @@ public class SweepBrush implements Brush, ResettableTool { break; } default: { - for (double pos = 0D; pos <= 1D; pos += 1D / (copies - 1)) { + for (double pos = 0D; pos <= 1D; pos += 1D / (copies - 1)) { spline.pastePosition(pos); } break; @@ -116,4 +118,5 @@ public class SweepBrush implements Brush, ResettableTool { position = null; return true; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/configuration/Caption.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/configuration/Caption.java index a35a6d9e3..72ad879d4 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/configuration/Caption.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/configuration/Caption.java @@ -8,8 +8,9 @@ import com.sk89q.worldedit.util.formatting.text.TranslatableComponent; import com.sk89q.worldedit.util.formatting.text.format.Style; import com.sk89q.worldedit.util.formatting.text.format.TextColor; import com.sk89q.worldedit.util.formatting.text.serializer.legacy.LegacyComponentSerializer; -import javax.annotation.Nullable; +import javax.annotation.Nonnull; +import javax.annotation.Nullable; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; @@ -18,7 +19,6 @@ import java.util.Locale; import java.util.Objects; import java.util.regex.Pattern; import java.util.stream.Collectors; -import javax.annotation.Nonnull; public class Caption { @@ -104,7 +104,11 @@ public class Caption { return parent; } - public static TranslatableComponent of(@Nonnull final String key, @Nullable final TextColor color, @Nonnull final List args) { + public static TranslatableComponent of( + @Nonnull final String key, + @Nullable final TextColor color, + @Nonnull final List args + ) { return TranslatableComponent.of(key, color, Collections.emptySet(), args); } @@ -115,4 +119,5 @@ public class Caption { .collect(Collectors.toList()); return TranslatableComponent.of(key, components); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/configuration/Config.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/configuration/Config.java index 43b6c4dd0..431d7ec44 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/configuration/Config.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/configuration/Config.java @@ -124,6 +124,7 @@ public class Config { @Retention(RetentionPolicy.RUNTIME) @Target({ElementType.FIELD}) public @interface Create { + } /** @@ -132,6 +133,7 @@ public class Config { @Retention(RetentionPolicy.RUNTIME) @Target({ElementType.FIELD}) public @interface Final { + } /** @@ -140,7 +142,9 @@ public class Config { @Retention(RetentionPolicy.RUNTIME) @Target({ElementType.FIELD, ElementType.TYPE}) public @interface Comment { + String[] value(); + } /** @@ -149,7 +153,9 @@ public class Config { @Retention(RetentionPolicy.RUNTIME) @Target({ElementType.FIELD, ElementType.TYPE}) public @interface BlockName { + String[] value(); + } /** @@ -158,12 +164,13 @@ public class Config { @Retention(RetentionPolicy.RUNTIME) @Target({ElementType.FIELD, ElementType.TYPE}) public @interface Ignore { + } @Ignore // This is not part of the config public static class ConfigBlock { - private HashMap INSTANCES = new HashMap<>(); + private final HashMap INSTANCES = new HashMap<>(); public T remove(String key) { return INSTANCES.remove(key); @@ -188,6 +195,7 @@ public class Config { private Map getRaw() { return INSTANCES; } + } /** @@ -297,7 +305,10 @@ public class Config { save(writer, current, value, indent + 2); continue; } else { - writer.write(spacing + toNodeName(field.getName() + ": ") + toYamlString(field.get(instance), spacing) + CTRF); + writer.write(spacing + toNodeName(field.getName() + ": ") + toYamlString( + field.get(instance), + spacing + ) + CTRF); } } } catch (Throwable e) { @@ -332,7 +343,9 @@ public class Config { setAccessible(field); return field; } catch (Throwable ignored) { - LOGGER.debug("Invalid config field: " + StringMan.join(split, ".") + " for " + toNodeName(instance.getClass().getSimpleName())); + LOGGER.debug("Invalid config field: " + StringMan.join(split, ".") + " for " + toNodeName(instance + .getClass() + .getSimpleName())); return null; } } @@ -437,4 +450,5 @@ public class Config { modifiersField.setInt(field, field.getModifiers() & ~Modifier.FINAL); } } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/configuration/Configuration.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/configuration/Configuration.java index 3518b2136..b0be72b29 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/configuration/Configuration.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/configuration/Configuration.java @@ -19,7 +19,7 @@ public interface Configuration extends ConfigurationSection { * If value is null, the value will be removed from the default Configuration source. *

    * - * @param path Path of the value to set. + * @param path Path of the value to set. * @param value Value to set the default to. * @throws IllegalArgumentException Thrown if path is null. */ @@ -94,4 +94,5 @@ public interface Configuration extends ConfigurationSection { * @return Options for this configuration */ ConfigurationOptions options(); + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/configuration/ConfigurationOptions.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/configuration/ConfigurationOptions.java index dd27b7ab4..ce2c8c3cc 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/configuration/ConfigurationOptions.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/configuration/ConfigurationOptions.java @@ -5,6 +5,7 @@ package com.fastasyncworldedit.core.configuration; * Configuration} */ public class ConfigurationOptions { + private char pathSeparator = '.'; private boolean copyDefaults = false; private final Configuration configuration; @@ -87,4 +88,5 @@ public class ConfigurationOptions { copyDefaults = value; return this; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/configuration/ConfigurationSection.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/configuration/ConfigurationSection.java index 8b93dce44..8111471fd 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/configuration/ConfigurationSection.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/configuration/ConfigurationSection.java @@ -90,7 +90,7 @@ public interface ConfigurationSection { *

    * To retrieve the single name of this section, that is, the final part of the path returned by * this method, you may use {@link #getName()}. - *

    + *

    * * @return Path of this section relative to its root */ @@ -163,7 +163,7 @@ public interface ConfigurationSection { *

    * * @param path Path of the Object to get. - * @param def The default value to return if the path is not found. + * @param def The default value to return if the path is not found. * @return Requested Object. */ Object get(String path, Object def); @@ -182,7 +182,7 @@ public interface ConfigurationSection { * ConfigurationSection}s, please use {@link #createSection(String)} for that. *

    * - * @param path Path of the object to set. + * @param path Path of the object to set. * @param value New value to set the path to. */ void set(String path, Object value); @@ -209,7 +209,7 @@ public interface ConfigurationSection { *

    * * @param path Path to create the section at. - * @param map The values to used. + * @param map The values to used. * @return Newly created section */ ConfigurationSection createSection(String path, Map map); @@ -265,7 +265,7 @@ public interface ConfigurationSection { * Gets the requested int by a path. * *

    - * If the int does not exist, but a default value has been specified, this + * If the int does not exist, but a default value has been specified, this * will return the default value. If the int does not exist and no default * value was specified, this will return 0. *

    @@ -284,7 +284,7 @@ public interface ConfigurationSection { *

    * * @param path Path of the int to get. - * @param def The default value to return if the path is not found or is not an int. + * @param def The default value to return if the path is not found or is not an int. * @return Requested int. */ int getInt(String path, int def); @@ -326,7 +326,7 @@ public interface ConfigurationSection { *

    * * @param path Path of the boolean to get. - * @param def The default value to return if the path is not found or is not a boolean. + * @param def The default value to return if the path is not found or is not a boolean. * @return Requested boolean. */ boolean getBoolean(String path, boolean def); @@ -368,7 +368,7 @@ public interface ConfigurationSection { *

    * * @param path Path of the double to get. - * @param def The default value to return if the path is not found or is not a double. + * @param def The default value to return if the path is not found or is not a double. * @return Requested double. */ double getDouble(String path, double def); @@ -410,7 +410,7 @@ public interface ConfigurationSection { *

    * * @param path Path of the long to get. - * @param def The default value to return if the path is not found or is not a long. + * @param def The default value to return if the path is not found or is not a long. * @return Requested long. */ long getLong(String path, long def); @@ -454,7 +454,7 @@ public interface ConfigurationSection { *

    * * @param path Path of the List to get. - * @param def The default value to return if the path is not found or is not a List. + * @param def The default value to return if the path is not found or is not a List. * @return Requested List. */ List getList(String path, List def); @@ -724,9 +724,10 @@ public interface ConfigurationSection { * section at the path, replacing anything that may have existed there previously. *

    * - * @param path Path of the value to set. + * @param path Path of the value to set. * @param value Value to set the default to. * @throws IllegalArgumentException Thrown if path is null. */ void addDefault(String path, Object value); + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/configuration/InvalidConfigurationException.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/configuration/InvalidConfigurationException.java index 10ab59ea7..b22705c8f 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/configuration/InvalidConfigurationException.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/configuration/InvalidConfigurationException.java @@ -43,4 +43,5 @@ public class InvalidConfigurationException extends Exception { public InvalidConfigurationException(final String msg, final Throwable cause) { super(msg, cause); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/configuration/MemoryConfiguration.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/configuration/MemoryConfiguration.java index 258647f4c..7f080a344 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/configuration/MemoryConfiguration.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/configuration/MemoryConfiguration.java @@ -8,6 +8,7 @@ import java.util.Map; * This is useful for temporary Configurations for providing defaults. */ public class MemoryConfiguration extends MemorySection implements Configuration { + protected Configuration defaults; protected MemoryConfigurationOptions options; @@ -87,4 +88,5 @@ public class MemoryConfiguration extends MemorySection implements Configuration return options; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/configuration/MemoryConfigurationOptions.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/configuration/MemoryConfigurationOptions.java index 1e7e59e5d..58f4f6c8b 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/configuration/MemoryConfigurationOptions.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/configuration/MemoryConfigurationOptions.java @@ -5,6 +5,7 @@ package com.fastasyncworldedit.core.configuration; * MemoryConfiguration} */ public class MemoryConfigurationOptions extends ConfigurationOptions { + protected MemoryConfigurationOptions(final MemoryConfiguration configuration) { super(configuration); } @@ -25,4 +26,5 @@ public class MemoryConfigurationOptions extends ConfigurationOptions { super.pathSeparator(value); return this; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/configuration/MemorySection.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/configuration/MemorySection.java index fb4e87fa4..18f9b624a 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/configuration/MemorySection.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/configuration/MemorySection.java @@ -842,7 +842,10 @@ public class MemorySection implements ConfigurationSection { @Override public String toString() { Configuration root = getRoot(); - return getClass().getSimpleName() + "[path='" + getCurrentPath() + "', root='" + (root == null ? null : root.getClass().getSimpleName()) + + return getClass().getSimpleName() + "[path='" + getCurrentPath() + "', root='" + (root == null + ? null + : root.getClass().getSimpleName()) + "']"; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/configuration/Settings.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/configuration/Settings.java index baff47898..e0ba6d05e 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/configuration/Settings.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/configuration/Settings.java @@ -10,6 +10,7 @@ import java.util.HashSet; import java.util.List; public class Settings extends Config { + @Ignore public static final Settings IMP = new Settings(); @@ -72,20 +73,23 @@ public class Settings extends Config { @Comment("Enable or disable core components") public static final class ENABLED_COMPONENTS { + public boolean COMMANDS = true; @Comment({ - "Disable the FAWE-PlotSquared hook to take over most intense P2 queueing", - "Specific aspects can be turned on and off further below", - "Only disables/enables the hook with v4. For v6, see PlotSquared settings.yml" + "Disable the FAWE-PlotSquared hook to take over most intense P2 queueing", + "Specific aspects can be turned on and off further below", + "Only disables/enables the hook with v4. For v6, see PlotSquared settings.yml" }) public boolean PLOTSQUARED_v4_HOOK = true; @Comment({"Show additional information in console. It helps us at IntellectualSites to find out more about an issue.", "Leave it off if you don't need it, it can spam your console."}) public boolean DEBUG = false; + } @Comment("Paths for various directories") public static final class PATHS { + @Comment({ "Put any minecraft or mod jars for FAWE to be aware of block textures", }) @@ -99,16 +103,19 @@ public class Settings extends Config { public String CLIPBOARD = "clipboard"; @Comment("Each player has his or her own sub directory for schematics") public boolean PER_PLAYER_SCHEMATICS = true; + } @Comment("Region restriction settings") public static final class REGION_RESTRICTIONS_OPTIONS { + @Comment({ "What type of users are allowed to WorldEdit in a region", " - MEMBER = Players added to a region", " - OWNER = Players who own the region" }) public String MODE = "MEMBER"; + } @Comment({ @@ -119,6 +126,7 @@ public class Settings extends Config { }) @BlockName("default") // The name for the default block public static class LIMITS extends ConfigBlock { + @Comment("Max actions that can be run concurrently (i.e. commands)") public int MAX_ACTIONS = 1; @Comment("Max number of block changes (e.g. by `//set stone`).") @@ -168,17 +176,19 @@ public class Settings extends Config { }) public boolean CONFIRM_LARGE = true; @Comment({ - "If undo and redo commands should be restricted to allowed regions", - " - Prevents scenarios where players can delete/reset a region, and then continue to undo/redo on it" + "If undo and redo commands should be restricted to allowed regions", + " - Prevents scenarios where players can delete/reset a region, and then continue to undo/redo on it" }) public boolean RESTRICT_HISTORY_TO_REGIONS = true; @Comment({ "List of blocks to strip nbt from", }) public List STRIP_NBT = new ArrayList<>(); + } public static class HISTORY { + @Comment({ "Should history be saved on disk:", " - Frees up a lot of memory", @@ -200,9 +210,9 @@ public class Settings extends Config { }) public boolean COMBINE_STAGES = true; @Comment({ - "Do not wait for a chunk's history to save before sending it", - " - Undo/redo commands will wait until the history has been written to disk before executing", - " - Requires combine-stages = true" + "Do not wait for a chunk's history to save before sending it", + " - Undo/redo commands will wait until the history has been written to disk before executing", + " - Requires combine-stages = true" }) public boolean SEND_BEFORE_HISTORY = true; @Comment({ @@ -266,10 +276,12 @@ public class Settings extends Config { " - Reduces history size by ~10%", }) public boolean SMALL_EDITS = false; + } @Comment("This relates to how FAWE places chunks") public static class QUEUE { + @Comment({ "This should equal the number of processors you have", }) @@ -325,11 +337,12 @@ public class Settings extends Config { public int DISCARD_AFTER_MS = 60000; @Comment({ - "When using fastmode also do not bother to fix existing ticking blocks" + "When using fastmode also do not bother to fix existing ticking blocks" }) public boolean NO_TICK_FASTMODE = true; public static class PROGRESS { + @Comment({"Display constant titles about the progress of a user's edit", " - false = disabled", " - title = Display progress titles", @@ -340,7 +353,9 @@ public class Settings extends Config { public int INTERVAL = 1; @Comment("Delay sending progress in milliseconds (so quick edits don't spam)") public int DELAY = 5000; + } + } @Comment({ @@ -349,6 +364,7 @@ public class Settings extends Config { " - SAFE = Can be buggy but unlikely to cause any damage" }) public static class EXPERIMENTAL { + @Comment({ "[UNSAFE] Directly modify the region files. (OBSOLETE - USE ANVIL COMMANDS)", " - IMPROPER USE CAN CAUSE WORLD CORRUPTION!", @@ -384,14 +400,14 @@ public class Settings extends Config { public boolean OTHER = false; @Comment({ - "Allow blocks placed by WorldEdit to tick. This could cause the big lags.", - "This has no effect on existing blocks one way or the other." + "Allow blocks placed by WorldEdit to tick. This could cause the big lags.", + "This has no effect on existing blocks one way or the other." }) public boolean ALLOW_TICK_PLACED = false; @Comment({ - "Force re-ticking of existing blocks not edited by FAWE.", - "This will increase time taken slightly." + "Force re-ticking of existing blocks not edited by FAWE.", + "This will increase time taken slightly." }) public boolean ALLOW_TICK_EXISTING = true; @@ -406,18 +422,22 @@ public class Settings extends Config { "Set to -1 to disable" }) public int PER_PLAYER_FILE_NUM_LIMIT = -1; + } public static class PLOTSQUARED_INTEGRATION { + @Comment({ - "Only disables/enables the components with PlotSquared v4.", - "For v6, see PlotSquared settings.yml" + "Only disables/enables the components with PlotSquared v4.", + "For v6, see PlotSquared settings.yml" }) public boolean CLEAR = true; public boolean COPY_AND_SWAP = true; + } public static class WEB { + @Comment({ "The web interface for clipboards", " - All schematics are anonymous and private", @@ -425,9 +445,11 @@ public class Settings extends Config { " - Supports clipboard uploads, downloads and saves", }) public String URL = "https://schem.intellectualsites.com/fawe/"; + } public static class EXTENT { + @Comment({ "Don't bug console when these plugins slow down WorldEdit operations", " - You'll see a message in console if you need to change this option" @@ -435,10 +457,12 @@ public class Settings extends Config { public List ALLOWED_PLUGINS = new ArrayList<>(); @Comment("Should debug messages be sent when third party extents are used?") public boolean DEBUG = true; + } @Comment("Generic tick limiter (not necessarily WorldEdit related, but useful to stop abuse)") public static class TICK_LIMITER { + @Comment("Enable the limiter") public boolean ENABLED = true; @Comment("The interval in ticks") @@ -455,9 +479,11 @@ public class Settings extends Config { " - Horizontal fireworks can be hacked in to crash a server" }) public boolean FIREWORKS_LOAD_CHUNKS = false; + } public static class CLIPBOARD { + @Comment({ "Store the clipboard on disk instead of memory", " - Will be slightly slower", @@ -474,9 +500,11 @@ public class Settings extends Config { public int COMPRESSION_LEVEL = 1; @Comment("Number of days to keep history on disk before deleting it") public int DELETE_AFTER_DAYS = 1; + } public static class LIGHTING { + @Comment({ "If packet sending should be delayed until relight is finished", }) @@ -491,6 +519,7 @@ public class Settings extends Config { public int MODE = 1; @Comment({"If existing lighting should be removed before relighting"}) public boolean REMOVE_FIRST = true; + } public void reload(File file) { @@ -515,15 +544,39 @@ public class Settings extends Config { if (actor.hasPermission("fawe.limit." + key) || !limitFound && key.equals("default")) { limitFound = true; LIMITS newLimit = LIMITS.get(key); - limit.MAX_ACTIONS = Math.max(limit.MAX_ACTIONS, newLimit.MAX_ACTIONS != -1 ? newLimit.MAX_ACTIONS : Integer.MAX_VALUE); - limit.MAX_CHANGES = Math.max(limit.MAX_CHANGES, newLimit.MAX_CHANGES != -1 ? newLimit.MAX_CHANGES : Integer.MAX_VALUE); - limit.MAX_BLOCKSTATES = Math.max(limit.MAX_BLOCKSTATES, newLimit.MAX_BLOCKSTATES != -1 ? newLimit.MAX_BLOCKSTATES : Integer.MAX_VALUE); - limit.MAX_CHECKS = Math.max(limit.MAX_CHECKS, newLimit.MAX_CHECKS != -1 ? newLimit.MAX_CHECKS : Integer.MAX_VALUE); - limit.MAX_ENTITIES = Math.max(limit.MAX_ENTITIES, newLimit.MAX_ENTITIES != -1 ? newLimit.MAX_ENTITIES : Integer.MAX_VALUE); + limit.MAX_ACTIONS = Math.max( + limit.MAX_ACTIONS, + newLimit.MAX_ACTIONS != -1 ? newLimit.MAX_ACTIONS : Integer.MAX_VALUE + ); + limit.MAX_CHANGES = Math.max( + limit.MAX_CHANGES, + newLimit.MAX_CHANGES != -1 ? newLimit.MAX_CHANGES : Integer.MAX_VALUE + ); + limit.MAX_BLOCKSTATES = Math.max( + limit.MAX_BLOCKSTATES, + newLimit.MAX_BLOCKSTATES != -1 ? newLimit.MAX_BLOCKSTATES : Integer.MAX_VALUE + ); + limit.MAX_CHECKS = Math.max( + limit.MAX_CHECKS, + newLimit.MAX_CHECKS != -1 ? newLimit.MAX_CHECKS : Integer.MAX_VALUE + ); + limit.MAX_ENTITIES = Math.max( + limit.MAX_ENTITIES, + newLimit.MAX_ENTITIES != -1 ? newLimit.MAX_ENTITIES : Integer.MAX_VALUE + ); limit.MAX_FAILS = Math.max(limit.MAX_FAILS, newLimit.MAX_FAILS != -1 ? newLimit.MAX_FAILS : Integer.MAX_VALUE); - limit.MAX_ITERATIONS = Math.max(limit.MAX_ITERATIONS, newLimit.MAX_ITERATIONS != -1 ? newLimit.MAX_ITERATIONS : Integer.MAX_VALUE); - limit.MAX_HISTORY = Math.max(limit.MAX_HISTORY, newLimit.MAX_HISTORY_MB != -1 ? newLimit.MAX_HISTORY_MB : Integer.MAX_VALUE); - limit.MAX_EXPRESSION_MS = Math.max(limit.MAX_EXPRESSION_MS, newLimit.MAX_EXPRESSION_MS != -1 ? newLimit.MAX_EXPRESSION_MS : Integer.MAX_VALUE); + limit.MAX_ITERATIONS = Math.max( + limit.MAX_ITERATIONS, + newLimit.MAX_ITERATIONS != -1 ? newLimit.MAX_ITERATIONS : Integer.MAX_VALUE + ); + limit.MAX_HISTORY = Math.max( + limit.MAX_HISTORY, + newLimit.MAX_HISTORY_MB != -1 ? newLimit.MAX_HISTORY_MB : Integer.MAX_VALUE + ); + limit.MAX_EXPRESSION_MS = Math.max( + limit.MAX_EXPRESSION_MS, + newLimit.MAX_EXPRESSION_MS != -1 ? newLimit.MAX_EXPRESSION_MS : Integer.MAX_VALUE + ); limit.INVENTORY_MODE = Math.min(limit.INVENTORY_MODE, newLimit.INVENTORY_MODE); limit.SPEED_REDUCTION = Math.min(limit.SPEED_REDUCTION, newLimit.SPEED_REDUCTION); limit.FAST_PLACEMENT |= newLimit.FAST_PLACEMENT; @@ -544,4 +597,5 @@ public class Settings extends Config { } return limit; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/configuration/TypeDescription.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/configuration/TypeDescription.java index 42d38ad44..0dfa1b0f7 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/configuration/TypeDescription.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/configuration/TypeDescription.java @@ -10,11 +10,12 @@ import java.util.Map; * instance. */ public final class TypeDescription { + private final Class type; private Tag tag; - private Map> listProperties; - private Map> keyProperties; - private Map> valueProperties; + private final Map> listProperties; + private final Map> keyProperties; + private final Map> valueProperties; public TypeDescription(Class clazz, Tag tag) { this.type = clazz; @@ -68,7 +69,7 @@ public final class TypeDescription { * Specify that the property is a type-safe {@code List}. * * @param property name of the JavaBean property - * @param type class of List values + * @param type class of List values */ public void putListPropertyType(String property, Class type) { listProperties.put(property, type); @@ -88,11 +89,13 @@ public final class TypeDescription { * Specify that the property is a type-safe {@code Map}. * * @param property property name of this JavaBean - * @param key class of keys in Map - * @param value class of values in Map + * @param key class of keys in Map + * @param value class of values in Map */ - public void putMapPropertyType(String property, Class key, - Class value) { + public void putMapPropertyType( + String property, Class key, + Class value + ) { keyProperties.put(property, key); valueProperties.put(property, value); } @@ -121,4 +124,5 @@ public final class TypeDescription { public String toString() { return "TypeDescription for " + getType() + " (tag='" + getTag() + "')"; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/configuration/Yaml.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/configuration/Yaml.java index 9bc0d5408..ebcd286d9 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/configuration/Yaml.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/configuration/Yaml.java @@ -35,6 +35,7 @@ import java.util.regex.Pattern; * Public YAML interface. Each Thread must have its own instance. */ public class Yaml { + protected final Resolver resolver; protected BaseConstructor constructor; protected Representer representer; @@ -93,7 +94,7 @@ public class Yaml { * Create Yaml instance. It is safe to create a few instances and use them * in different Threads. * - * @param representer Representer to emit outgoing objects + * @param representer Representer to emit outgoing objects * @param dumperOptions DumperOptions to configure outgoing objects */ public Yaml(Representer representer, DumperOptions dumperOptions) { @@ -104,8 +105,8 @@ public class Yaml { * Create Yaml instance. It is safe to create a few instances and use them * in different Threads. * - * @param constructor BaseConstructor to construct incoming documents - * @param representer Representer to emit outgoing objects + * @param constructor BaseConstructor to construct incoming documents + * @param representer Representer to emit outgoing objects * @param dumperOptions DumperOptions to configure outgoing objects */ public Yaml(BaseConstructor constructor, Representer representer, DumperOptions dumperOptions) { @@ -116,10 +117,10 @@ public class Yaml { * Create Yaml instance. It is safe to create a few instances and use them * in different Threads. * - * @param constructor BaseConstructor to construct incoming documents - * @param representer Representer to emit outgoing objects + * @param constructor BaseConstructor to construct incoming documents + * @param representer Representer to emit outgoing objects * @param dumperOptions DumperOptions to configure outgoing objects - * @param resolver Resolver to detect implicit type + * @param resolver Resolver to detect implicit type */ public Yaml(BaseConstructor constructor, Representer representer, DumperOptions dumperOptions, Resolver resolver) { if (!constructor.isExplicitPropertyUtils()) { @@ -156,7 +157,7 @@ public class Yaml { * @param data instance to build the representation tree for * @return representation tree * @see Figure 3.1. Processing - * Overview + * Overview */ public Node represent(Object data) { return representer.represent(data); @@ -177,7 +178,7 @@ public class Yaml { /** * Serialize a Java object into a YAML stream. * - * @param data Java object to be serialized to YAML + * @param data Java object to be serialized to YAML * @param output stream to write to */ public void dump(Object data, Writer output) { @@ -189,7 +190,7 @@ public class Yaml { /** * Serialize a sequence of Java objects into a YAML stream. * - * @param data Iterator with Objects + * @param data Iterator with Objects * @param output stream to write to */ public void dumpAll(Iterator data, Writer output) { @@ -235,15 +236,15 @@ public class Yaml { * handled as an instance of YourClass when loaded. *

    * - * @param data Java object to be serialized to YAML - * @param rootTag the tag for the whole YAML document. The tag should be Tag.MAP - * for a JavaBean to make the tag disappear (to use implicit tag - * !!map). If {@code null} is provided then the standard tag - * with the full class name is used. + * @param data Java object to be serialized to YAML + * @param rootTag the tag for the whole YAML document. The tag should be Tag.MAP + * for a JavaBean to make the tag disappear (to use implicit tag + * !!map). If {@code null} is provided then the standard tag + * with the full class name is used. * @param flowStyle flow style for the whole document. See Chapter 10. Collection - * Styles http://yaml.org/spec/1.1/#id930798. If - * {@code null} is provided then the flow style from - * DumperOptions is used. + * Styles http://yaml.org/spec/1.1/#id930798. If + * {@code null} is provided then the flow style from + * DumperOptions is used. * @return YAML String */ public String dumpAs(Object data, Tag rootTag, FlowStyle flowStyle) { @@ -338,8 +339,8 @@ public class Yaml { * Parse the only YAML document in a stream and produce the corresponding * Java object. * - * @param Class is defined by the second argument - * @param io data to load from (BOM must not be present) + * @param Class is defined by the second argument + * @param io data to load from (BOM must not be present) * @param type Class of the object to be created * @return parsed object */ @@ -352,7 +353,7 @@ public class Yaml { * Parse the only YAML document in a String and produce the corresponding * Java object. (Because the encoding in known BOM is not respected.) * - * @param Class is defined by the second argument + * @param Class is defined by the second argument * @param yaml YAML data to load from (BOM must not be present) * @param type Class of the object to be created * @return parsed object @@ -366,9 +367,9 @@ public class Yaml { * Parse the only YAML document in a stream and produce the corresponding * Java object. * - * @param Class is defined by the second argument + * @param Class is defined by the second argument * @param input data to load from (BOM is respected and removed) - * @param type Class of the object to be created + * @param type Class of the object to be created * @return parsed object */ @SuppressWarnings("unchecked") @@ -388,7 +389,7 @@ public class Yaml { * * @param yaml YAML data to load from (BOM must not be present) * @return an iterator over the parsed Java objects in this String in proper - * sequence + * sequence */ public Iterable loadAll(Reader yaml) { Composer composer = new Composer(new ParserImpl(new StreamReader(yaml)), resolver); @@ -416,7 +417,7 @@ public class Yaml { * * @param yaml YAML data to load from (BOM must not be present) * @return an iterator over the parsed Java objects in this String in proper - * sequence + * sequence */ public Iterable loadAll(String yaml) { return loadAll(new StringReader(yaml)); @@ -428,7 +429,7 @@ public class Yaml { * * @param yaml YAML data to load from (BOM is respected and ignored) * @return an iterator over the parsed Java objects in this stream in proper - * sequence + * sequence */ public Iterable loadAll(InputStream yaml) { return loadAll(new UnicodeReader(yaml)); @@ -441,7 +442,7 @@ public class Yaml { * @param yaml YAML document * @return parsed root Node for the specified YAML document * @see Figure 3.1. Processing - * Overview + * Overview */ public Node compose(Reader yaml) { Composer composer = new Composer(new ParserImpl(new StreamReader(yaml)), resolver); @@ -480,9 +481,9 @@ public class Yaml { * Add an implicit scalar detector. If an implicit scalar value matches the * given regexp, the corresponding tag is assigned to the scalar. * - * @param tag tag to assign to the node + * @param tag tag to assign to the node * @param regexp regular expression to match against - * @param first a sequence of possible initial characters or null (which means any). + * @param first a sequence of possible initial characters or null (which means any). */ public void addImplicitResolver(Tag tag, Pattern regexp, String first) { resolver.addImplicitResolver(tag, regexp, first); @@ -545,7 +546,8 @@ public class Yaml { private static class SilentEmitter implements Emitable { - private List events = new ArrayList<>(100); + + private final List events = new ArrayList<>(100); public List getEvents() { return events; @@ -554,11 +556,13 @@ public class Yaml { public void emit(Event event) throws IOException { events.add(event); } + } private static class YamlIterable implements Iterable { - private Iterator iterator; + + private final Iterator iterator; public YamlIterable(Iterator iterator) { this.iterator = iterator; @@ -567,11 +571,13 @@ public class Yaml { public Iterator iterator() { return iterator; } + } private static class NodeIterable implements Iterable { - private Iterator iterator; + + private final Iterator iterator; public NodeIterable(Iterator iterator) { this.iterator = iterator; @@ -580,11 +586,13 @@ public class Yaml { public Iterator iterator() { return iterator; } + } private static class EventIterable implements Iterable { - private Iterator iterator; + + private final Iterator iterator; public EventIterable(Iterator iterator) { this.iterator = iterator; @@ -593,6 +601,7 @@ public class Yaml { public Iterator iterator() { return iterator; } + } } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/configuration/file/FileConfiguration.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/configuration/file/FileConfiguration.java index 816060877..824da0713 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/configuration/file/FileConfiguration.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/configuration/file/FileConfiguration.java @@ -107,12 +107,12 @@ public abstract class FileConfiguration extends MemoryConfiguration { *

    * * @param file File to load from. - * @throws java.io.FileNotFoundException Thrown when the given file cannot be - * opened. - * @throws java.io.IOException Thrown when the given file cannot be read. + * @throws java.io.FileNotFoundException Thrown when the given file cannot be + * opened. + * @throws java.io.IOException Thrown when the given file cannot be read. * @throws InvalidConfigurationException Thrown when the given file is not - * a valid Configuration. - * @throws IllegalArgumentException Thrown when file is null. + * a valid Configuration. + * @throws IllegalArgumentException Thrown when file is null. */ public void load(File file) throws IOException, InvalidConfigurationException { if (file == null) { @@ -132,10 +132,10 @@ public abstract class FileConfiguration extends MemoryConfiguration { * from the given stream. * * @param reader the reader to load from - * @throws java.io.IOException thrown when underlying reader throws an IOException + * @throws java.io.IOException thrown when underlying reader throws an IOException * @throws InvalidConfigurationException thrown when the reader does not - * represent a valid Configuration - * @throws IllegalArgumentException thrown when reader is null + * represent a valid Configuration + * @throws IllegalArgumentException thrown when reader is null */ public void load(Reader reader) throws IOException, InvalidConfigurationException { @@ -164,12 +164,12 @@ public abstract class FileConfiguration extends MemoryConfiguration { * thrown. * * @param file File to load from. - * @throws java.io.FileNotFoundException Thrown when the given file cannot be - * opened. - * @throws java.io.IOException Thrown when the given file cannot be read. + * @throws java.io.FileNotFoundException Thrown when the given file cannot be + * opened. + * @throws java.io.IOException Thrown when the given file cannot be read. * @throws InvalidConfigurationException Thrown when the given file is not - * a valid Configuration. - * @throws IllegalArgumentException Thrown when file is null. + * a valid Configuration. + * @throws IllegalArgumentException Thrown when file is null. */ public void load(String file) throws IOException, InvalidConfigurationException { if (file == null) { @@ -191,8 +191,8 @@ public abstract class FileConfiguration extends MemoryConfiguration { * * @param contents Contents of a Configuration to load. * @throws InvalidConfigurationException Thrown if the specified string is - * invalid. - * @throws IllegalArgumentException Thrown if contents is null. + * invalid. + * @throws IllegalArgumentException Thrown if contents is null. */ public abstract void loadFromString(String contents) throws InvalidConfigurationException; @@ -216,4 +216,5 @@ public abstract class FileConfiguration extends MemoryConfiguration { return (FileConfigurationOptions) this.options; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/configuration/file/FileConfigurationOptions.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/configuration/file/FileConfigurationOptions.java index 8367abebd..2627b45ba 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/configuration/file/FileConfigurationOptions.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/configuration/file/FileConfigurationOptions.java @@ -1,14 +1,15 @@ package com.fastasyncworldedit.core.configuration.file; +import com.fastasyncworldedit.core.configuration.Configuration; import com.fastasyncworldedit.core.configuration.MemoryConfiguration; import com.fastasyncworldedit.core.configuration.MemoryConfigurationOptions; -import com.fastasyncworldedit.core.configuration.Configuration; /** * Various settings for controlling the input and output of a {@link * FileConfiguration} */ public class FileConfigurationOptions extends MemoryConfigurationOptions { + private String header = null; private boolean copyHeader = true; @@ -117,4 +118,5 @@ public class FileConfigurationOptions extends MemoryConfigurationOptions { return this; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/configuration/file/YamlConfiguration.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/configuration/file/YamlConfiguration.java index 70c76c934..b1570963a 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/configuration/file/YamlConfiguration.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/configuration/file/YamlConfiguration.java @@ -3,10 +3,10 @@ package com.fastasyncworldedit.core.configuration.file; import com.fastasyncworldedit.core.configuration.Configuration; import com.fastasyncworldedit.core.configuration.ConfigurationSection; import com.fastasyncworldedit.core.configuration.InvalidConfigurationException; +import com.fastasyncworldedit.core.configuration.Yaml; import com.sk89q.worldedit.internal.util.LogManagerCompat; import org.apache.logging.log4j.Logger; import org.yaml.snakeyaml.DumperOptions; -import com.fastasyncworldedit.core.configuration.Yaml; import org.yaml.snakeyaml.error.YAMLException; import org.yaml.snakeyaml.representer.Representer; @@ -232,4 +232,5 @@ public class YamlConfiguration extends FileConfiguration { return (YamlConfigurationOptions) options; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/configuration/file/YamlConfigurationOptions.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/configuration/file/YamlConfigurationOptions.java index 1451d5d84..b5372a172 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/configuration/file/YamlConfigurationOptions.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/configuration/file/YamlConfigurationOptions.java @@ -4,6 +4,7 @@ package com.fastasyncworldedit.core.configuration.file; * Various settings for controlling the input and output of a {@link YamlConfiguration}. */ public class YamlConfigurationOptions extends FileConfigurationOptions { + private int indent = 2; protected YamlConfigurationOptions(final YamlConfiguration configuration) { @@ -58,6 +59,7 @@ public class YamlConfigurationOptions extends FileConfigurationOptions { *

    * The minimum value this may be is 2, and the maximum is 9. *

    + * * @param value New indent * @return This object, for chaining */ @@ -72,4 +74,5 @@ public class YamlConfigurationOptions extends FileConfigurationOptions { indent = value; return this; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/configuration/file/YamlConstructor.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/configuration/file/YamlConstructor.java index 92aa9c8ff..72fce11e9 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/configuration/file/YamlConstructor.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/configuration/file/YamlConstructor.java @@ -16,6 +16,7 @@ public class YamlConstructor extends SafeConstructor { } private class ConstructCustomObject extends ConstructYamlMap { + @Override public Object construct(final Node node) { if (node.isTwoStepsConstruction()) { @@ -44,5 +45,7 @@ public class YamlConstructor extends SafeConstructor { public void construct2ndStep(final Node node, final Object object) { throw new YAMLException("Unexpected referential mapping structure. Node: " + node); } + } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/configuration/file/YamlRepresenter.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/configuration/file/YamlRepresenter.java index 26de3fb06..d784eb483 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/configuration/file/YamlRepresenter.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/configuration/file/YamlRepresenter.java @@ -22,6 +22,7 @@ public class YamlRepresenter extends Representer { public Node representData(Object data) { return super.representData(((ConfigurationSection) data).getValues(false)); } + } private class RepresentConfigurationSerializable extends RepresentMap { @@ -30,10 +31,15 @@ public class YamlRepresenter extends Representer { public Node representData(Object data) { ConfigurationSerializable serializable = (ConfigurationSerializable) data; Map values = new LinkedHashMap<>(); - values.put(ConfigurationSerialization.SERIALIZED_TYPE_KEY, ConfigurationSerialization.getAlias(serializable.getClass())); + values.put( + ConfigurationSerialization.SERIALIZED_TYPE_KEY, + ConfigurationSerialization.getAlias(serializable.getClass()) + ); values.putAll(serializable.serialize()); return super.representData(values); } + } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/configuration/serialization/ConfigurationSerializable.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/configuration/serialization/ConfigurationSerializable.java index 146d95cfd..f60c23d6a 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/configuration/serialization/ConfigurationSerializable.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/configuration/serialization/ConfigurationSerializable.java @@ -32,4 +32,5 @@ public interface ConfigurationSerializable { * @return Map containing the current state of this class */ Map serialize(); + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/configuration/serialization/ConfigurationSerialization.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/configuration/serialization/ConfigurationSerialization.java index b4b312d74..536a393d1 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/configuration/serialization/ConfigurationSerialization.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/configuration/serialization/ConfigurationSerialization.java @@ -10,6 +10,7 @@ import java.lang.reflect.Method; import java.lang.reflect.Modifier; import java.util.HashMap; import java.util.Map; + /** * Utility class for storing and retrieving classes for {@link Configuration}. */ @@ -19,7 +20,7 @@ public class ConfigurationSerialization { public static final String SERIALIZED_TYPE_KEY = "=="; private static final Map> aliases = - new HashMap<>(); + new HashMap<>(); private final Class clazz; protected ConfigurationSerialization(Class clazz) { @@ -41,7 +42,10 @@ public class ConfigurationSerialization { * @param clazz Class to deserialize into * @return New instance of the specified class */ - public static ConfigurationSerializable deserializeObject(Map args, Class clazz) { + public static ConfigurationSerializable deserializeObject( + Map args, + Class clazz + ) { return new ConfigurationSerialization(clazz).deserialize(args); } @@ -199,26 +203,33 @@ public class ConfigurationSerialization { ConfigurationSerializable result = (ConfigurationSerializable) method.invoke(null, args); if (result == null) { - LOGGER.error("Could not call method '" + method.toString() + "' of " + this.clazz + " for deserialization: method returned null"); + LOGGER.error("Could not call method '" + method + "' of " + this.clazz + " for deserialization: method returned null"); } else { return result; } } catch (Throwable ex) { - LOGGER.error("Could not call method '" + method.toString() + "' of " + this.clazz + LOGGER.error( + "Could not call method '" + method.toString() + "' of " + this.clazz + " for deserialization", - ex instanceof InvocationTargetException ? ex.getCause() : ex); + ex instanceof InvocationTargetException ? ex.getCause() : ex + ); } return null; } - protected ConfigurationSerializable deserializeViaCtor(Constructor ctor, Map args) { + protected ConfigurationSerializable deserializeViaCtor( + Constructor ctor, + Map args + ) { try { return ctor.newInstance(args); } catch (Throwable ex) { - LOGGER.error("Could not call constructor '" + ctor.toString() + "' of " + this.clazz + LOGGER.error( + "Could not call constructor '" + ctor.toString() + "' of " + this.clazz + " for deserialization", - ex instanceof InvocationTargetException ? ex.getCause() : ex); + ex instanceof InvocationTargetException ? ex.getCause() : ex + ); } return null; @@ -253,4 +264,5 @@ public class ConfigurationSerialization { return result; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/configuration/serialization/DelegateDeserialization.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/configuration/serialization/DelegateDeserialization.java index 863e95b78..f3efc06e9 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/configuration/serialization/DelegateDeserialization.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/configuration/serialization/DelegateDeserialization.java @@ -12,6 +12,7 @@ import java.lang.annotation.Target; @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.TYPE) public @interface DelegateDeserialization { + /** * Which class should be used as a delegate for this classes * deserialization @@ -19,4 +20,5 @@ public @interface DelegateDeserialization { * @return Delegate class */ Class value(); + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/configuration/serialization/SerializableAs.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/configuration/serialization/SerializableAs.java index cfed0f477..b650ab3a7 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/configuration/serialization/SerializableAs.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/configuration/serialization/SerializableAs.java @@ -22,6 +22,7 @@ import java.lang.annotation.Target; @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.TYPE) public @interface SerializableAs { + /** * This is the name your class will be stored and retrieved as. *

    @@ -31,4 +32,5 @@ public @interface SerializableAs { * @return Name to serialize the class as. */ String value(); + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/database/RollbackDatabase.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/database/RollbackDatabase.java index f7e11331c..209f93e3f 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/database/RollbackDatabase.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/database/RollbackDatabase.java @@ -3,17 +3,17 @@ package com.fastasyncworldedit.core.database; import com.fastasyncworldedit.core.Fawe; import com.fastasyncworldedit.core.configuration.Settings; import com.fastasyncworldedit.core.history.RollbackOptimizedHistory; +import com.fastasyncworldedit.core.util.MainUtil; import com.fastasyncworldedit.core.util.collection.YieldIterable; import com.fastasyncworldedit.core.util.task.AsyncNotifyQueue; -import com.fastasyncworldedit.core.util.MainUtil; import com.sk89q.worldedit.internal.util.LogManagerCompat; import com.sk89q.worldedit.math.BlockVector3; import com.sk89q.worldedit.regions.CuboidRegion; import com.sk89q.worldedit.world.World; import org.apache.logging.log4j.Logger; import org.intellij.lang.annotations.Language; -import javax.annotation.Nonnull; +import javax.annotation.Nonnull; import java.io.File; import java.io.IOException; import java.nio.ByteBuffer; @@ -71,7 +71,10 @@ public class RollbackDatabase extends AsyncNotifyQueue { super((t, e) -> e.printStackTrace()); this.prefix = ""; this.world = world; - this.dbLocation = MainUtil.getFile(Fawe.imp().getDirectory(), Settings.IMP.PATHS.HISTORY + File.separator + world.getName() + File.separator + "summary.db"); + this.dbLocation = MainUtil.getFile( + Fawe.imp().getDirectory(), + Settings.IMP.PATHS.HISTORY + File.separator + world.getName() + File.separator + "summary.db" + ); connection = openConnection(); // update vars @@ -100,7 +103,7 @@ public class RollbackDatabase extends AsyncNotifyQueue { return ByteBuffer.allocate(16).putLong(uuid.getMostSignificantBits()).putLong(uuid.getLeastSignificantBits()).array(); } - public Future init() { + public Future init() { return call(() -> { try (PreparedStatement stmt = connection.prepareStatement(createTable)) { stmt.executeUpdate(); @@ -180,7 +183,14 @@ public class RollbackDatabase extends AsyncNotifyQueue { return getEdits(null, 0, pos, pos, false, ascending); } - public Iterable> getEdits(UUID uuid, long minTime, BlockVector3 pos1, BlockVector3 pos2, boolean delete, boolean ascending) { + public Iterable> getEdits( + UUID uuid, + long minTime, + BlockVector3 pos1, + BlockVector3 pos2, + boolean delete, + boolean ascending + ) { YieldIterable> yieldIterable = new YieldIterable<>(); Future future = call(() -> { @@ -219,7 +229,11 @@ public class RollbackDatabase extends AsyncNotifyQueue { stmt.setInt(5, pos2.getBlockZ()); stmt.setByte(6, (byte) (pos1.getBlockY() - 128)); stmt.setByte(7, (byte) (pos2.getBlockY() - 128)); - byte[] uuidBytes = ByteBuffer.allocate(16).putLong(uuid.getMostSignificantBits()).putLong(uuid.getLeastSignificantBits()).array(); + byte[] uuidBytes = ByteBuffer + .allocate(16) + .putLong(uuid.getMostSignificantBits()) + .putLong(uuid.getLeastSignificantBits()) + .array(); stmt.setBytes(8, uuidBytes); } } @@ -251,7 +265,7 @@ public class RollbackDatabase extends AsyncNotifyQueue { } RollbackOptimizedHistory[] copy = IntStream.range(0, size) - .mapToObj(i -> historyChanges.poll()).toArray(RollbackOptimizedHistory[]::new); + .mapToObj(i -> historyChanges.poll()).toArray(RollbackOptimizedHistory[]::new); try (PreparedStatement stmt = connection.prepareStatement(insertEdit)) { // `player`,`id`,`time`,`x1`,`x2`,`z1`,`z2`,`y1`,`y2`,`command`,`size`) VALUES(?,?,?,?,?,?,?,?,?,?,?)" @@ -381,4 +395,5 @@ public class RollbackDatabase extends AsyncNotifyQueue { } super.close(); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/entity/LazyBaseEntity.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/entity/LazyBaseEntity.java index 4d510b713..3f0ca3f0c 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/entity/LazyBaseEntity.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/entity/LazyBaseEntity.java @@ -6,11 +6,13 @@ import com.sk89q.jnbt.CompoundTag; import com.sk89q.worldedit.entity.BaseEntity; import com.sk89q.worldedit.world.entity.EntityType; -import java.util.function.Supplier; import javax.annotation.Nullable; +import java.util.function.Supplier; public class LazyBaseEntity extends BaseEntity { + private Supplier saveTag; + public LazyBaseEntity(EntityType type, Supplier saveTag) { super(type); this.saveTag = saveTag; @@ -30,4 +32,5 @@ public class LazyBaseEntity extends BaseEntity { } return super.getNbtData(); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/entity/MapMetadatable.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/entity/MapMetadatable.java index 6c0839ab3..3cfd9735c 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/entity/MapMetadatable.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/entity/MapMetadatable.java @@ -1,7 +1,6 @@ package com.fastasyncworldedit.core.entity; import javax.annotation.Nonnull; - import java.util.Map; public interface MapMetadatable extends Metadatable { @@ -62,4 +61,5 @@ public interface MapMetadatable extends Metadatable { default V deleteMeta(String key) { return (V) getRawMeta().remove(key); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/entity/Metadatable.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/entity/Metadatable.java index 88101bdaf..2526e2d12 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/entity/Metadatable.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/entity/Metadatable.java @@ -35,14 +35,15 @@ public interface Metadatable { * Gets the metadata value to which the specified key is mapped, * or the default value if no metadata exists for the key. * - * @param key the key of the metadata value to retrieve + * @param key the key of the metadata value to retrieve * @param defaultValue the value to return if there is no metadata for the given key * @return the metadata value for the key, if present; else the default value */ @Nonnull default V getMeta(String key, @Nonnull V defaultValue) { V value = getMeta(key); - return value == null ? defaultValue : value; } + return value == null ? defaultValue : value; + } /** * Deletes the given metadata key from object. Do not delete metadata set by another plugin @@ -58,5 +59,7 @@ public interface Metadatable { public static final String ANVIL_CLIPBOARD = "anvil-clipboard"; public static final String ROLLBACK = "rollback"; + } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/event/extent/ActorSaveClipboardEvent.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/event/extent/ActorSaveClipboardEvent.java index 4507d9c75..b416edd30 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/event/extent/ActorSaveClipboardEvent.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/event/extent/ActorSaveClipboardEvent.java @@ -8,6 +8,7 @@ import com.sk89q.worldedit.extent.clipboard.Clipboard; import java.net.URI; public class ActorSaveClipboardEvent extends Event implements Cancellable { + private final Actor actor; private final Clipboard clipboard; private final URI source; @@ -46,4 +47,5 @@ public class ActorSaveClipboardEvent extends Event implements Cancellable { public Actor getActor() { return actor; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/event/extent/PasteEvent.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/event/extent/PasteEvent.java index c4928b587..de538f937 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/event/extent/PasteEvent.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/event/extent/PasteEvent.java @@ -68,4 +68,5 @@ public class PasteEvent extends Event implements Cancellable { PasteEvent clone = new PasteEvent(actor, clipboard, uri, extent, to); return clone; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/RichParser.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/RichParser.java index 1bcb72b83..0dabf6d85 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/RichParser.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/RichParser.java @@ -7,8 +7,8 @@ import com.sk89q.worldedit.extension.input.InputParseException; import com.sk89q.worldedit.extension.input.ParserContext; import com.sk89q.worldedit.internal.registry.InputParser; import com.sk89q.worldedit.util.formatting.text.TextComponent; -import javax.annotation.Nonnull; +import javax.annotation.Nonnull; import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -23,13 +23,14 @@ import java.util.stream.Stream; * @param the parse result. */ public abstract class RichParser extends InputParser { + private final String[] prefixes; /** * Create a new rich parser with a defined prefix for the result, e.g. {@code #simplex}. * * @param worldEdit the worldedit instance. - * @param aliases the prefix of this parser result. + * @param aliases the prefix of this parser result. */ protected RichParser(WorldEdit worldEdit, String... aliases) { super(worldEdit); @@ -147,4 +148,5 @@ public abstract class RichParser extends InputParser { } return arguments.toArray(new String[0]); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/mask/AdjacentMaskParser.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/mask/AdjacentMaskParser.java index 2ff5e8bff..750f8bd63 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/mask/AdjacentMaskParser.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/mask/AdjacentMaskParser.java @@ -1,15 +1,15 @@ package com.fastasyncworldedit.core.extension.factory.parser.mask; +import com.fastasyncworldedit.core.extension.factory.parser.RichParser; import com.fastasyncworldedit.core.function.mask.AdjacentAnyMask; import com.fastasyncworldedit.core.function.mask.AdjacentMask; import com.sk89q.worldedit.WorldEdit; import com.sk89q.worldedit.command.util.SuggestionHelper; -import com.fastasyncworldedit.core.extension.factory.parser.RichParser; import com.sk89q.worldedit.extension.input.InputParseException; import com.sk89q.worldedit.extension.input.ParserContext; import com.sk89q.worldedit.function.mask.Mask; -import javax.annotation.Nonnull; +import javax.annotation.Nonnull; import java.util.stream.Stream; public class AdjacentMaskParser extends RichParser { @@ -47,4 +47,5 @@ public class AdjacentMaskParser extends RichParser { } return new AdjacentMask(subMask, min, max); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/mask/AngleMaskParser.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/mask/AngleMaskParser.java index 615397471..895afbec6 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/mask/AngleMaskParser.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/mask/AngleMaskParser.java @@ -1,16 +1,16 @@ package com.fastasyncworldedit.core.extension.factory.parser.mask; import com.fastasyncworldedit.core.configuration.Caption; +import com.fastasyncworldedit.core.extension.factory.parser.RichParser; import com.fastasyncworldedit.core.function.mask.AngleMask; import com.sk89q.worldedit.WorldEdit; import com.sk89q.worldedit.command.util.SuggestionHelper; -import com.fastasyncworldedit.core.extension.factory.parser.RichParser; import com.sk89q.worldedit.extension.input.InputParseException; import com.sk89q.worldedit.extension.input.ParserContext; import com.sk89q.worldedit.function.mask.Mask; import com.sk89q.worldedit.util.formatting.text.TextComponent; -import javax.annotation.Nonnull; +import javax.annotation.Nonnull; import java.util.stream.Stream; public class AngleMaskParser extends RichParser { @@ -49,8 +49,10 @@ public class AngleMaskParser extends RichParser { if (flag.equals("-o")) { overlay = true; } else { - throw new InputParseException(Caption.of("fawe.error.invalid-flag", - TextComponent.of(flag))); + throw new InputParseException(Caption.of( + "fawe.error.invalid-flag", + TextComponent.of(flag) + )); } } } @@ -68,4 +70,5 @@ public class AngleMaskParser extends RichParser { return new AngleMask(context.getExtent(), min, max, overlay, 1); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/mask/ExtremaMaskParser.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/mask/ExtremaMaskParser.java index 92325d02a..a875ec802 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/mask/ExtremaMaskParser.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/mask/ExtremaMaskParser.java @@ -1,16 +1,16 @@ package com.fastasyncworldedit.core.extension.factory.parser.mask; import com.fastasyncworldedit.core.configuration.Caption; +import com.fastasyncworldedit.core.extension.factory.parser.RichParser; import com.fastasyncworldedit.core.function.mask.ExtremaMask; import com.sk89q.worldedit.WorldEdit; import com.sk89q.worldedit.command.util.SuggestionHelper; -import com.fastasyncworldedit.core.extension.factory.parser.RichParser; import com.sk89q.worldedit.extension.input.InputParseException; import com.sk89q.worldedit.extension.input.ParserContext; import com.sk89q.worldedit.function.mask.Mask; import com.sk89q.worldedit.util.formatting.text.TextComponent; -import javax.annotation.Nonnull; +import javax.annotation.Nonnull; import java.util.stream.Stream; public class ExtremaMaskParser extends RichParser { @@ -51,8 +51,10 @@ public class ExtremaMaskParser extends RichParser { if (flag.equals("-o")) { overlay = true; } else { - throw new InputParseException(Caption.of("fawe.error.invalid-flag", - TextComponent.of(flag))); + throw new InputParseException(Caption.of( + "fawe.error.invalid-flag", + TextComponent.of(flag) + )); } } } @@ -68,4 +70,5 @@ public class ExtremaMaskParser extends RichParser { return new ExtremaMask(context.getExtent(), min, max, overlay, 4); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/mask/FalseMaskParser.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/mask/FalseMaskParser.java index 64e8780d9..6cd24c916 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/mask/FalseMaskParser.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/mask/FalseMaskParser.java @@ -26,4 +26,5 @@ public class FalseMaskParser extends SimpleInputParser { public Mask parseFromSimpleInput(String input, ParserContext context) { return Masks.alwaysFalse(); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/mask/LiquidMaskParser.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/mask/LiquidMaskParser.java index fcf54ae93..782b2dd9e 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/mask/LiquidMaskParser.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/mask/LiquidMaskParser.java @@ -26,4 +26,5 @@ public class LiquidMaskParser extends SimpleInputParser { public Mask parseFromSimpleInput(String input, ParserContext context) { return new LiquidMask(context.getExtent()); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/mask/ROCAngleMaskParser.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/mask/ROCAngleMaskParser.java index 88ed881db..dff4e8f32 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/mask/ROCAngleMaskParser.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/mask/ROCAngleMaskParser.java @@ -1,16 +1,16 @@ package com.fastasyncworldedit.core.extension.factory.parser.mask; import com.fastasyncworldedit.core.configuration.Caption; +import com.fastasyncworldedit.core.extension.factory.parser.RichParser; import com.fastasyncworldedit.core.function.mask.ROCAngleMask; import com.sk89q.worldedit.WorldEdit; import com.sk89q.worldedit.command.util.SuggestionHelper; -import com.fastasyncworldedit.core.extension.factory.parser.RichParser; import com.sk89q.worldedit.extension.input.InputParseException; import com.sk89q.worldedit.extension.input.ParserContext; import com.sk89q.worldedit.function.mask.Mask; import com.sk89q.worldedit.util.formatting.text.TextComponent; -import javax.annotation.Nonnull; +import javax.annotation.Nonnull; import java.util.stream.Stream; public class ROCAngleMaskParser extends RichParser { @@ -51,8 +51,10 @@ public class ROCAngleMaskParser extends RichParser { if (flag.equals("-o")) { overlay = true; } else { - throw new InputParseException(Caption.of("fawe.error.invalid-flag", - TextComponent.of(flag))); + throw new InputParseException(Caption.of( + "fawe.error.invalid-flag", + TextComponent.of(flag) + )); } } } @@ -68,4 +70,5 @@ public class ROCAngleMaskParser extends RichParser { return new ROCAngleMask(context.getExtent(), min, max, overlay, 4); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/mask/RadiusMaskParser.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/mask/RadiusMaskParser.java index d9bca165a..efbb3ad72 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/mask/RadiusMaskParser.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/mask/RadiusMaskParser.java @@ -1,14 +1,14 @@ package com.fastasyncworldedit.core.extension.factory.parser.mask; +import com.fastasyncworldedit.core.extension.factory.parser.RichParser; import com.fastasyncworldedit.core.function.mask.RadiusMask; import com.sk89q.worldedit.WorldEdit; import com.sk89q.worldedit.command.util.SuggestionHelper; -import com.fastasyncworldedit.core.extension.factory.parser.RichParser; import com.sk89q.worldedit.extension.input.InputParseException; import com.sk89q.worldedit.extension.input.ParserContext; import com.sk89q.worldedit.function.mask.Mask; -import javax.annotation.Nonnull; +import javax.annotation.Nonnull; import java.util.stream.Stream; public class RadiusMaskParser extends RichParser { @@ -34,4 +34,5 @@ public class RadiusMaskParser extends RichParser { int max = Integer.parseInt(arguments[1]); return new RadiusMask(min, max); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/mask/RichOffsetMaskParser.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/mask/RichOffsetMaskParser.java index 90b329b0d..30c8f4ead 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/mask/RichOffsetMaskParser.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/mask/RichOffsetMaskParser.java @@ -1,8 +1,8 @@ package com.fastasyncworldedit.core.extension.factory.parser.mask; +import com.fastasyncworldedit.core.extension.factory.parser.RichParser; import com.sk89q.worldedit.WorldEdit; import com.sk89q.worldedit.command.util.SuggestionHelper; -import com.fastasyncworldedit.core.extension.factory.parser.RichParser; import com.sk89q.worldedit.extension.input.InputParseException; import com.sk89q.worldedit.extension.input.ParserContext; import com.sk89q.worldedit.function.mask.Mask; @@ -10,8 +10,8 @@ import com.sk89q.worldedit.function.mask.MaskIntersection; import com.sk89q.worldedit.function.mask.Masks; import com.sk89q.worldedit.function.mask.OffsetMask; import com.sk89q.worldedit.math.BlockVector3; -import javax.annotation.Nonnull; +import javax.annotation.Nonnull; import java.util.stream.Stream; public class RichOffsetMaskParser extends RichParser { @@ -48,4 +48,5 @@ public class RichOffsetMaskParser extends RichParser { OffsetMask offsetMask = new OffsetMask(submask, BlockVector3.at(x, y, z)); return new MaskIntersection(offsetMask, Masks.negate(submask)); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/mask/SimplexMaskParser.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/mask/SimplexMaskParser.java index f9c7f5cbf..4674057b2 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/mask/SimplexMaskParser.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/mask/SimplexMaskParser.java @@ -1,17 +1,18 @@ package com.fastasyncworldedit.core.extension.factory.parser.mask; +import com.fastasyncworldedit.core.extension.factory.parser.RichParser; import com.fastasyncworldedit.core.function.mask.SimplexMask; import com.sk89q.worldedit.WorldEdit; import com.sk89q.worldedit.command.util.SuggestionHelper; -import com.fastasyncworldedit.core.extension.factory.parser.RichParser; import com.sk89q.worldedit.extension.input.InputParseException; import com.sk89q.worldedit.extension.input.ParserContext; import com.sk89q.worldedit.function.mask.Mask; -import javax.annotation.Nonnull; +import javax.annotation.Nonnull; import java.util.stream.Stream; public class SimplexMaskParser extends RichParser { + private static final String SIMPLEX_PREFIX = "#simplex"; public SimplexMaskParser(WorldEdit worldEdit) { @@ -39,4 +40,5 @@ public class SimplexMaskParser extends RichParser { max = (max - 50d) / 50d; return new SimplexMask(scale, min, max); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/mask/SurfaceMaskParser.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/mask/SurfaceMaskParser.java index ad8a2b9d1..c21ece965 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/mask/SurfaceMaskParser.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/mask/SurfaceMaskParser.java @@ -27,4 +27,5 @@ public class SurfaceMaskParser extends SimpleInputParser { public Mask parseFromSimpleInput(String input, ParserContext context) throws InputParseException { return new SurfaceMask(context.getExtent()); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/mask/TrueMaskParser.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/mask/TrueMaskParser.java index 17a5da720..5e99fbe89 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/mask/TrueMaskParser.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/mask/TrueMaskParser.java @@ -26,4 +26,5 @@ public class TrueMaskParser extends SimpleInputParser { public Mask parseFromSimpleInput(String input, ParserContext context) { return Masks.alwaysTrue(); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/mask/WallMaskParser.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/mask/WallMaskParser.java index 7c81b996f..0142213e9 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/mask/WallMaskParser.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/mask/WallMaskParser.java @@ -29,6 +29,10 @@ public class WallMaskParser extends SimpleInputParser { @Override public Mask parseFromSimpleInput(String input, ParserContext context) throws InputParseException { - return new MaskIntersection(new ExistingBlockMask(context.getExtent()), new WallMask(new BlockMask(context.getExtent(), BlockTypes.AIR.getDefaultState().toBaseBlock()), 1, 8)); + return new MaskIntersection( + new ExistingBlockMask(context.getExtent()), + new WallMask(new BlockMask(context.getExtent(), BlockTypes.AIR.getDefaultState().toBaseBlock()), 1, 8) + ); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/mask/XAxisMaskParser.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/mask/XAxisMaskParser.java index a2a9b04d8..a291f7c6f 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/mask/XAxisMaskParser.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/mask/XAxisMaskParser.java @@ -26,4 +26,5 @@ public class XAxisMaskParser extends SimpleInputParser { public Mask parseFromSimpleInput(String input, ParserContext context) { return new XAxisMask(context.getExtent()); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/mask/YAxisMaskParser.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/mask/YAxisMaskParser.java index d37fbbe4a..8c4b38073 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/mask/YAxisMaskParser.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/mask/YAxisMaskParser.java @@ -26,4 +26,5 @@ public class YAxisMaskParser extends SimpleInputParser { public Mask parseFromSimpleInput(String input, ParserContext context) { return new YAxisMask(context.getExtent()); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/mask/ZAxisMaskParser.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/mask/ZAxisMaskParser.java index 015a5ff9d..ae6d0efef 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/mask/ZAxisMaskParser.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/mask/ZAxisMaskParser.java @@ -26,4 +26,5 @@ public class ZAxisMaskParser extends SimpleInputParser { public Mask parseFromSimpleInput(String input, ParserContext context) { return new ZAxisMask(); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/pattern/BiomePatternParser.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/pattern/BiomePatternParser.java index d1dbeb40f..49ca52ab7 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/pattern/BiomePatternParser.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/pattern/BiomePatternParser.java @@ -1,9 +1,9 @@ package com.fastasyncworldedit.core.extension.factory.parser.pattern; import com.fastasyncworldedit.core.configuration.Caption; +import com.fastasyncworldedit.core.extension.factory.parser.RichParser; import com.fastasyncworldedit.core.function.pattern.BiomeApplyingPattern; import com.sk89q.worldedit.WorldEdit; -import com.fastasyncworldedit.core.extension.factory.parser.RichParser; import com.sk89q.worldedit.extension.input.InputParseException; import com.sk89q.worldedit.extension.input.NoMatchException; import com.sk89q.worldedit.extension.input.ParserContext; @@ -11,11 +11,12 @@ import com.sk89q.worldedit.function.pattern.Pattern; import com.sk89q.worldedit.util.formatting.text.TextComponent; import com.sk89q.worldedit.world.biome.BiomeType; import com.sk89q.worldedit.world.biome.BiomeTypes; -import javax.annotation.Nonnull; +import javax.annotation.Nonnull; import java.util.stream.Stream; public class BiomePatternParser extends RichParser { + private final static String BIOME_PREFIX = "$"; /** @@ -71,4 +72,5 @@ public class BiomePatternParser extends RichParser { } return new BiomeApplyingPattern(context.requireExtent(), biomeType); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/pattern/BufferedPatternParser.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/pattern/BufferedPatternParser.java index 24e71b9b0..fe62b5d67 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/pattern/BufferedPatternParser.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/pattern/BufferedPatternParser.java @@ -1,15 +1,15 @@ package com.fastasyncworldedit.core.extension.factory.parser.pattern; import com.fastasyncworldedit.core.configuration.Caption; +import com.fastasyncworldedit.core.extension.factory.parser.RichParser; import com.fastasyncworldedit.core.function.pattern.BufferedPattern; import com.sk89q.worldedit.WorldEdit; -import com.fastasyncworldedit.core.extension.factory.parser.RichParser; import com.sk89q.worldedit.extension.input.InputParseException; import com.sk89q.worldedit.extension.input.ParserContext; import com.sk89q.worldedit.function.pattern.Pattern; import com.sk89q.worldedit.util.formatting.text.TextComponent; -import javax.annotation.Nonnull; +import javax.annotation.Nonnull; import java.util.stream.Stream; public class BufferedPatternParser extends RichParser { @@ -34,10 +34,13 @@ public class BufferedPatternParser extends RichParser { @Override protected Pattern parseFromInput(@Nonnull String[] arguments, ParserContext context) throws InputParseException { if (arguments.length != 1) { - throw new InputParseException(Caption.of("fawe.error.command.syntax", - TextComponent.of(getPrefix() + "[pattern] (e.g. " + getPrefix() + "[stone,dirt])"))); + throw new InputParseException(Caption.of( + "fawe.error.command.syntax", + TextComponent.of(getPrefix() + "[pattern] (e.g. " + getPrefix() + "[stone,dirt])") + )); } Pattern inner = this.worldEdit.getPatternFactory().parseFromInput(arguments[0], context); return new BufferedPattern(context.requireActor(), inner); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/pattern/ExistingPatternParser.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/pattern/ExistingPatternParser.java index c1c6d618b..f77bdd287 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/pattern/ExistingPatternParser.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/pattern/ExistingPatternParser.java @@ -11,6 +11,7 @@ import java.util.Collections; import java.util.List; public class ExistingPatternParser extends SimpleInputParser { + private final List aliases = Collections.singletonList("#existing"); public ExistingPatternParser(WorldEdit worldEdit) { @@ -26,4 +27,5 @@ public class ExistingPatternParser extends SimpleInputParser { public Pattern parseFromSimpleInput(String input, ParserContext context) throws InputParseException { return new ExistingPattern(context.requireExtent()); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/pattern/Linear2DPatternParser.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/pattern/Linear2DPatternParser.java index ebd0c4827..de3e725d4 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/pattern/Linear2DPatternParser.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/pattern/Linear2DPatternParser.java @@ -1,19 +1,19 @@ package com.fastasyncworldedit.core.extension.factory.parser.pattern; import com.fastasyncworldedit.core.configuration.Caption; +import com.fastasyncworldedit.core.extension.factory.parser.RichParser; import com.fastasyncworldedit.core.function.pattern.Linear2DBlockPattern; import com.google.common.base.Preconditions; import com.sk89q.worldedit.WorldEdit; import com.sk89q.worldedit.command.util.SuggestionHelper; -import com.fastasyncworldedit.core.extension.factory.parser.RichParser; import com.sk89q.worldedit.extension.input.InputParseException; import com.sk89q.worldedit.extension.input.ParserContext; import com.sk89q.worldedit.function.pattern.Pattern; import com.sk89q.worldedit.function.pattern.RandomPattern; import com.sk89q.worldedit.util.formatting.text.TextComponent; import com.sk89q.worldedit.world.block.BlockStateHolder; -import javax.annotation.Nonnull; +import javax.annotation.Nonnull; import java.util.Set; import java.util.stream.Stream; @@ -44,8 +44,10 @@ public class Linear2DPatternParser extends RichParser { @Override protected Pattern parseFromInput(@Nonnull String[] arguments, ParserContext context) throws InputParseException { if (arguments.length == 0 || arguments.length > 3) { - throw new InputParseException(Caption.of("fawe.error.command.syntax", - TextComponent.of(getPrefix() + "[pattern] (e.g. " + getPrefix() + "[stone,dirt])"))); + throw new InputParseException(Caption.of( + "fawe.error.command.syntax", + TextComponent.of(getPrefix() + "[pattern] (e.g. " + getPrefix() + "[stone,dirt])") + )); } Pattern inner = this.worldEdit.getPatternFactory().parseFromInput(arguments[0], context); if (inner instanceof BlockStateHolder) { @@ -68,4 +70,5 @@ public class Linear2DPatternParser extends RichParser { throw new InputParseException(TextComponent.of("Pattern " + inner.getClass().getSimpleName() + " cannot be used with " + getPrefix())); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/pattern/Linear3DPatternParser.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/pattern/Linear3DPatternParser.java index 93cf2d11f..859afdafc 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/pattern/Linear3DPatternParser.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/pattern/Linear3DPatternParser.java @@ -1,19 +1,19 @@ package com.fastasyncworldedit.core.extension.factory.parser.pattern; import com.fastasyncworldedit.core.configuration.Caption; +import com.fastasyncworldedit.core.extension.factory.parser.RichParser; import com.fastasyncworldedit.core.function.pattern.Linear3DBlockPattern; import com.google.common.base.Preconditions; import com.sk89q.worldedit.WorldEdit; import com.sk89q.worldedit.command.util.SuggestionHelper; -import com.fastasyncworldedit.core.extension.factory.parser.RichParser; import com.sk89q.worldedit.extension.input.InputParseException; import com.sk89q.worldedit.extension.input.ParserContext; import com.sk89q.worldedit.function.pattern.Pattern; import com.sk89q.worldedit.function.pattern.RandomPattern; import com.sk89q.worldedit.util.formatting.text.TextComponent; import com.sk89q.worldedit.world.block.BlockStateHolder; -import javax.annotation.Nonnull; +import javax.annotation.Nonnull; import java.util.Set; import java.util.stream.Stream; @@ -45,8 +45,10 @@ public class Linear3DPatternParser extends RichParser { @Override protected Pattern parseFromInput(@Nonnull String[] arguments, ParserContext context) throws InputParseException { if (arguments.length == 0 || arguments.length > 4) { - throw new InputParseException(Caption.of("fawe.error.command.syntax", - TextComponent.of(getPrefix() + "[pattern] (e.g. " + getPrefix() + "[stone,dirt])"))); + throw new InputParseException(Caption.of( + "fawe.error.command.syntax", + TextComponent.of(getPrefix() + "[pattern] (e.g. " + getPrefix() + "[stone,dirt])") + )); } Pattern inner = this.worldEdit.getPatternFactory().parseFromInput(arguments[0], context); if (inner instanceof BlockStateHolder) { @@ -69,9 +71,10 @@ public class Linear3DPatternParser extends RichParser { } if (inner instanceof RandomPattern) { Set patterns = ((RandomPattern) inner).getPatterns(); - return new Linear3DBlockPattern(patterns.toArray(new Pattern[0]), xScale, yScale,zScale); + return new Linear3DBlockPattern(patterns.toArray(new Pattern[0]), xScale, yScale, zScale); } throw new InputParseException(TextComponent.of("Pattern " + inner.getClass().getSimpleName() + " cannot be used with " + getPrefix())); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/pattern/NoisePatternParser.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/pattern/NoisePatternParser.java index c281b560a..37ad97417 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/pattern/NoisePatternParser.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/pattern/NoisePatternParser.java @@ -1,10 +1,10 @@ package com.fastasyncworldedit.core.extension.factory.parser.pattern; import com.fastasyncworldedit.core.configuration.Caption; +import com.fastasyncworldedit.core.extension.factory.parser.RichParser; import com.fastasyncworldedit.core.math.random.NoiseRandom; import com.sk89q.worldedit.WorldEdit; import com.sk89q.worldedit.command.util.SuggestionHelper; -import com.fastasyncworldedit.core.extension.factory.parser.RichParser; import com.sk89q.worldedit.extension.input.InputParseException; import com.sk89q.worldedit.extension.input.ParserContext; import com.sk89q.worldedit.function.pattern.Pattern; @@ -12,8 +12,8 @@ import com.sk89q.worldedit.function.pattern.RandomPattern; import com.sk89q.worldedit.math.noise.NoiseGenerator; import com.sk89q.worldedit.util.formatting.text.TextComponent; import com.sk89q.worldedit.world.block.BlockStateHolder; -import javax.annotation.Nonnull; +import javax.annotation.Nonnull; import java.util.function.Supplier; import java.util.stream.Stream; @@ -49,8 +49,10 @@ public abstract class NoisePatternParser extends RichParser { @Override protected Pattern parseFromInput(@Nonnull String[] arguments, ParserContext context) { if (arguments.length != 2) { - throw new InputParseException(Caption.of("fawe.error.command.syntax", - TextComponent.of(getPrefix() + "[scale][pattern] (e.g. " + getPrefix() + "[5][dirt,stone])"))); + throw new InputParseException(Caption.of( + "fawe.error.command.syntax", + TextComponent.of(getPrefix() + "[scale][pattern] (e.g. " + getPrefix() + "[5][dirt,stone])") + )); } double scale = parseScale(arguments[0]); Pattern inner = worldEdit.getPatternFactory().parseFromInput(arguments[1], context); @@ -74,4 +76,5 @@ public abstract class NoisePatternParser extends RichParser { double scale = Double.parseDouble(argument); return 1d / Math.max(1, scale); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/pattern/PerlinPatternParser.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/pattern/PerlinPatternParser.java index 8bd9e2987..eec0e5aed 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/pattern/PerlinPatternParser.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/pattern/PerlinPatternParser.java @@ -4,6 +4,7 @@ import com.sk89q.worldedit.WorldEdit; import com.sk89q.worldedit.math.noise.PerlinNoise; public class PerlinPatternParser extends NoisePatternParser { + private static final String PERLIN_NAME = "perlin"; /** @@ -14,4 +15,5 @@ public class PerlinPatternParser extends NoisePatternParser { public PerlinPatternParser(WorldEdit worldEdit) { super(worldEdit, PERLIN_NAME, PerlinNoise::new); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/pattern/RandomPatternParser.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/pattern/RandomPatternParser.java index 16ace2476..6908f49e7 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/pattern/RandomPatternParser.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/pattern/RandomPatternParser.java @@ -62,7 +62,10 @@ public class RandomPatternParser extends InputParser { String[] p = token.split("%", 2); if (p.length < 2) { - throw new InputParseException(Caption.of("worldedit.error.parser.missing-random-type", TextComponent.of(input))); + throw new InputParseException(Caption.of( + "worldedit.error.parser.missing-random-type", + TextComponent.of(input) + )); } else { chance = Double.parseDouble(p[0]); innerPattern = worldEdit.getPatternFactory().parseFromInput(p[1], context); @@ -77,4 +80,5 @@ public class RandomPatternParser extends InputParser { return randomPattern; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/pattern/RidgedMultiFractalPatternParser.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/pattern/RidgedMultiFractalPatternParser.java index 1ac5fa62e..b091aa728 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/pattern/RidgedMultiFractalPatternParser.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/pattern/RidgedMultiFractalPatternParser.java @@ -15,4 +15,5 @@ public class RidgedMultiFractalPatternParser extends NoisePatternParser { public RidgedMultiFractalPatternParser(WorldEdit worldEdit) { super(worldEdit, RIDGED_MULTI_FRACTAL_NAME, RidgedMultiFractalNoise::new); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/pattern/SimplexPatternParser.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/pattern/SimplexPatternParser.java index 1f5fe17c1..6bf4dd123 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/pattern/SimplexPatternParser.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/pattern/SimplexPatternParser.java @@ -1,12 +1,14 @@ package com.fastasyncworldedit.core.extension.factory.parser.pattern; -import com.sk89q.worldedit.WorldEdit; import com.fastasyncworldedit.core.math.random.SimplexNoiseGenerator; +import com.sk89q.worldedit.WorldEdit; public class SimplexPatternParser extends NoisePatternParser { + private static final String SIMPLEX_NAME = "simplex"; public SimplexPatternParser(WorldEdit worldEdit) { super(worldEdit, SIMPLEX_NAME, SimplexNoiseGenerator::new); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/pattern/VoronoiPatternParser.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/pattern/VoronoiPatternParser.java index 9cc3b185d..f642e3c85 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/pattern/VoronoiPatternParser.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/factory/parser/pattern/VoronoiPatternParser.java @@ -15,4 +15,5 @@ public class VoronoiPatternParser extends NoisePatternParser { public VoronoiPatternParser(WorldEdit worldEdit) { super(worldEdit, VORONOI_NAME, VoronoiNoise::new); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/platform/binding/Binding.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/platform/binding/Binding.java index c40c6aabe..83c4904c9 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/platform/binding/Binding.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/platform/binding/Binding.java @@ -5,5 +5,7 @@ import java.lang.annotation.RetentionPolicy; @Retention(RetentionPolicy.RUNTIME) public @interface Binding { + String value() default ""; + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/platform/binding/Bindings.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/platform/binding/Bindings.java index c383cc82d..bd0120354 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/platform/binding/Bindings.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/platform/binding/Bindings.java @@ -53,7 +53,7 @@ public class Bindings { // Get the key Class ret = method.getReturnType(); Key key; - if ( annotations.length == 1) { + if (annotations.length == 1) { key = Key.of(ret); } else if (annotations.length == 2) { Annotation annotation = annotations[0] == binding ? annotations[1] : annotations[0]; @@ -112,7 +112,12 @@ public class Bindings { return true; } - private Object invoke(String arg, Function[] argsFunc, InjectedValueAccess access, Method method) { + private Object invoke( + String arg, + Function[] argsFunc, + InjectedValueAccess access, + Method method + ) { try { Object[] args = new Object[argsFunc.length]; for (int i = 0; i < argsFunc.length; i++) { @@ -132,4 +137,5 @@ public class Bindings { return null; } } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/platform/binding/CommandBindings.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/platform/binding/CommandBindings.java index fa359fb48..364cef5e5 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/platform/binding/CommandBindings.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/platform/binding/CommandBindings.java @@ -7,4 +7,5 @@ public class CommandBindings extends Bindings { public CommandBindings(WorldEdit worldEdit) { super(worldEdit); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/platform/binding/ConsumeBindings.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/platform/binding/ConsumeBindings.java index bf13f657b..322c41caa 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/platform/binding/ConsumeBindings.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/platform/binding/ConsumeBindings.java @@ -6,6 +6,7 @@ import com.fastasyncworldedit.core.util.MainUtil; import com.fastasyncworldedit.core.util.image.ImageUtil; import com.sk89q.worldedit.WorldEdit; import com.sk89q.worldedit.command.util.annotation.Confirm; +import com.sk89q.worldedit.command.util.annotation.Time; import com.sk89q.worldedit.entity.Entity; import com.sk89q.worldedit.extension.input.InputParseException; import com.sk89q.worldedit.extension.input.NoMatchException; @@ -14,7 +15,6 @@ import com.sk89q.worldedit.extension.platform.Actor; import com.sk89q.worldedit.extension.platform.PlatformCommandManager; import com.sk89q.worldedit.extent.Extent; import com.sk89q.worldedit.internal.annotation.Selection; -import com.sk89q.worldedit.command.util.annotation.Time; import com.sk89q.worldedit.internal.expression.Expression; import com.sk89q.worldedit.math.BlockVector2; import com.sk89q.worldedit.math.BlockVector3; @@ -31,6 +31,7 @@ import org.enginehub.piston.inject.InjectedValueAccess; import java.util.UUID; public class ConsumeBindings extends Bindings { + private final PlatformCommandManager manager; public ConsumeBindings(WorldEdit worldEdit, PlatformCommandManager manager) { @@ -158,4 +159,5 @@ public class ConsumeBindings extends Bindings { throw new InputParseException(Caption.of(e.getMessage())); } } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/platform/binding/PrimitiveBindings.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/platform/binding/PrimitiveBindings.java index 8d4859bbc..8a39813dd 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/platform/binding/PrimitiveBindings.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/platform/binding/PrimitiveBindings.java @@ -12,10 +12,11 @@ import com.sk89q.worldedit.math.Vector2; import com.sk89q.worldedit.math.Vector3; import com.sk89q.worldedit.util.formatting.text.TextComponent; -import java.util.Locale; import javax.annotation.Nullable; +import java.util.Locale; public class PrimitiveBindings extends Bindings { + public PrimitiveBindings(WorldEdit worldEdit) { super(worldEdit); } @@ -242,4 +243,5 @@ public class PrimitiveBindings extends Bindings { } } } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/platform/binding/ProvideBindings.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/platform/binding/ProvideBindings.java index 009658dbd..027d01ebd 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/platform/binding/ProvideBindings.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extension/platform/binding/ProvideBindings.java @@ -10,11 +10,11 @@ import com.sk89q.worldedit.EditSession; import com.sk89q.worldedit.LocalSession; import com.sk89q.worldedit.WorldEdit; import com.sk89q.worldedit.command.argument.Arguments; +import com.sk89q.worldedit.command.util.annotation.AllowedRegion; import com.sk89q.worldedit.entity.Player; import com.sk89q.worldedit.extension.input.InputParseException; import com.sk89q.worldedit.extension.platform.Actor; import com.sk89q.worldedit.extent.Extent; -import com.sk89q.worldedit.command.util.annotation.AllowedRegion; import com.sk89q.worldedit.internal.annotation.Selection; import com.sk89q.worldedit.regions.Region; import com.sk89q.worldedit.session.request.Request; @@ -29,6 +29,7 @@ import java.net.URI; import java.util.Optional; public class ProvideBindings extends Bindings { + public ProvideBindings(WorldEdit worldEdit) { super(worldEdit); } @@ -96,6 +97,7 @@ public class ProvideBindings extends Bindings { } public static class ImageUri { + public final URI uri; private BufferedImage image; @@ -109,6 +111,7 @@ public class ProvideBindings extends Bindings { } return image = ImageUtil.load(uri); } + } @Binding @@ -129,4 +132,5 @@ public class ProvideBindings extends Bindings { } return editSession; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/BlockTranslateExtent.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/BlockTranslateExtent.java index 977d8c19e..71b56c87a 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/BlockTranslateExtent.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/BlockTranslateExtent.java @@ -1,20 +1,21 @@ package com.fastasyncworldedit.core.extent; +import com.fastasyncworldedit.core.math.MutableBlockVector3; import com.sk89q.worldedit.WorldEditException; import com.sk89q.worldedit.extent.AbstractDelegateExtent; import com.sk89q.worldedit.extent.Extent; import com.sk89q.worldedit.math.BlockVector3; -import com.fastasyncworldedit.core.math.MutableBlockVector3; import com.sk89q.worldedit.world.biome.BiomeType; import com.sk89q.worldedit.world.block.BaseBlock; import com.sk89q.worldedit.world.block.BlockState; import com.sk89q.worldedit.world.block.BlockStateHolder; public class BlockTranslateExtent extends AbstractDelegateExtent { + private final int dx; private final int dy; private final int dz; - private MutableBlockVector3 mutable = new MutableBlockVector3(); + private final MutableBlockVector3 mutable = new MutableBlockVector3(); public BlockTranslateExtent(Extent extent, int dx, int dy, int dz) { super(extent); @@ -65,4 +66,5 @@ public class BlockTranslateExtent extends AbstractDelegateExtent { public BaseBlock getFullBlock(BlockVector3 pos) { return super.getFullBlock(pos.add(dx, dy, dz)); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/ExtentHeightCacher.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/ExtentHeightCacher.java index a2b98d4be..647df1ae5 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/ExtentHeightCacher.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/ExtentHeightCacher.java @@ -46,8 +46,9 @@ public class ExtentHeightCacher extends PassthroughExtent { int result = cacheHeights[index] & 0xFF; if (result == 0) { cacheHeights[index] = (byte) (result = lastY = super - .getNearestSurfaceTerrainBlock(x, z, lastY, minY, maxY)); + .getNearestSurfaceTerrainBlock(x, z, lastY, minY, maxY)); } return result; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/FaweRegionExtent.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/FaweRegionExtent.java index 4382f7d37..17c59e7d0 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/FaweRegionExtent.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/FaweRegionExtent.java @@ -1,9 +1,9 @@ package com.fastasyncworldedit.core.extent; import com.fastasyncworldedit.core.FaweCache; -import com.fastasyncworldedit.core.queue.IBatchProcessor; import com.fastasyncworldedit.core.extent.processor.ProcessorScope; import com.fastasyncworldedit.core.object.FaweLimit; +import com.fastasyncworldedit.core.queue.IBatchProcessor; import com.fastasyncworldedit.core.util.ExtentTraverser; import com.fastasyncworldedit.core.util.WEManager; import com.sk89q.worldedit.WorldEditException; @@ -20,8 +20,8 @@ import com.sk89q.worldedit.world.block.BlockState; import com.sk89q.worldedit.world.block.BlockStateHolder; import com.sk89q.worldedit.world.block.BlockTypes; -import java.util.Collection; import javax.annotation.Nullable; +import java.util.Collection; public abstract class FaweRegionExtent extends ResettableExtent implements IBatchProcessor { @@ -72,7 +72,7 @@ public abstract class FaweRegionExtent extends ResettableExtent implements IBatc @Override public > boolean setBlock(int x, int y, int z, B block) - throws WorldEditException { + throws WorldEditException { if (!contains(x, y, z)) { if (!limit.MAX_FAILS()) { WEManager.IMP.cancelEditSafe(this, FaweCache.OUTSIDE_REGION); @@ -153,4 +153,5 @@ public abstract class FaweRegionExtent extends ResettableExtent implements IBatc public ProcessorScope getScope() { return ProcessorScope.READING_SET_BLOCKS; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/HeightBoundExtent.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/HeightBoundExtent.java index 1e13912c3..4ce795c11 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/HeightBoundExtent.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/HeightBoundExtent.java @@ -1,9 +1,9 @@ package com.fastasyncworldedit.core.extent; +import com.fastasyncworldedit.core.object.FaweLimit; import com.fastasyncworldedit.core.queue.IChunk; import com.fastasyncworldedit.core.queue.IChunkGet; import com.fastasyncworldedit.core.queue.IChunkSet; -import com.fastasyncworldedit.core.object.FaweLimit; import com.fastasyncworldedit.core.regions.RegionWrapper; import com.sk89q.worldedit.extent.Extent; import com.sk89q.worldedit.regions.Region; @@ -43,8 +43,9 @@ public class HeightBoundExtent extends FaweRegionExtent { @Override public Collection getRegions() { return Collections.singletonList( - new RegionWrapper(Integer.MIN_VALUE, Integer.MAX_VALUE, min, max, Integer.MIN_VALUE, - Integer.MAX_VALUE)); + new RegionWrapper(Integer.MIN_VALUE, Integer.MAX_VALUE, min, max, Integer.MIN_VALUE, + Integer.MAX_VALUE + )); } @Override @@ -59,4 +60,5 @@ public class HeightBoundExtent extends FaweRegionExtent { public Future postProcessSet(IChunk chunk, IChunkGet get, IChunkSet set) { return CompletableFuture.completedFuture(set); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/HistoryExtent.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/HistoryExtent.java index ce6f7265b..969be5e26 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/HistoryExtent.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/HistoryExtent.java @@ -14,9 +14,9 @@ import com.sk89q.worldedit.world.biome.BiomeType; import com.sk89q.worldedit.world.block.BaseBlock; import com.sk89q.worldedit.world.block.BlockStateHolder; +import javax.annotation.Nullable; import java.util.ArrayList; import java.util.List; -import javax.annotation.Nullable; import static com.google.common.base.Preconditions.checkNotNull; @@ -30,7 +30,7 @@ public class HistoryExtent extends AbstractDelegateExtent { /** * Create a new instance. * - * @param extent the extent + * @param extent the extent * @param changeSet the change set */ public HistoryExtent(Extent extent, AbstractChangeSet changeSet) { @@ -117,6 +117,7 @@ public class HistoryExtent extends AbstractDelegateExtent { } public class TrackedEntity implements Entity { + private final Entity entity; private TrackedEntity(Entity entity) { @@ -159,10 +160,12 @@ public class HistoryExtent extends AbstractDelegateExtent { public boolean setLocation(Location location) { return this.entity.setLocation(location); } + } @Override public Extent disableHistory() { return getExtent(); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/MemoryCheckingExtent.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/MemoryCheckingExtent.java index 1114a67d7..62db9759a 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/MemoryCheckingExtent.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/MemoryCheckingExtent.java @@ -21,8 +21,10 @@ public class MemoryCheckingExtent extends PassthroughExtent { public Extent getExtent() { if (MemUtil.isMemoryLimited()) { if (this.player != null) { - player.print(Caption.of("fawe.cancel.worldedit.cancel.reason", - Caption.of("fawe.cancel.worldedit.cancel.reason.low.memory"))); + player.print(Caption.of( + "fawe.cancel.worldedit.cancel.reason", + Caption.of("fawe.cancel.worldedit.cancel.reason.low.memory") + )); if (Permission.hasPermission(this.player, "worldedit.fast")) { this.player.print(Caption.of("fawe.info.worldedit.oom.admin")); } @@ -31,4 +33,5 @@ public class MemoryCheckingExtent extends PassthroughExtent { } return super.getExtent(); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/MultiRegionExtent.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/MultiRegionExtent.java index f74af24d9..e934099f9 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/MultiRegionExtent.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/MultiRegionExtent.java @@ -1,9 +1,9 @@ package com.fastasyncworldedit.core.extent; +import com.fastasyncworldedit.core.object.FaweLimit; import com.fastasyncworldedit.core.queue.IChunk; import com.fastasyncworldedit.core.queue.IChunkGet; import com.fastasyncworldedit.core.queue.IChunkSet; -import com.fastasyncworldedit.core.object.FaweLimit; import com.sk89q.worldedit.extent.Extent; import com.sk89q.worldedit.regions.Region; import com.sk89q.worldedit.regions.RegionIntersection; @@ -92,4 +92,5 @@ public class MultiRegionExtent extends FaweRegionExtent { public Future postProcessSet(IChunk chunk, IChunkGet get, IChunkSet set) { return intersection.postProcessSet(chunk, get, set); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/NullExtent.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/NullExtent.java index 98b1384a9..82a84b3e6 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/NullExtent.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/NullExtent.java @@ -1,13 +1,15 @@ package com.fastasyncworldedit.core.extent; import com.fastasyncworldedit.core.FaweCache; +import com.fastasyncworldedit.core.extent.processor.ProcessorScope; +import com.fastasyncworldedit.core.function.generator.GenBase; +import com.fastasyncworldedit.core.function.generator.Resource; +import com.fastasyncworldedit.core.internal.exception.FaweException; +import com.fastasyncworldedit.core.object.FaweLimit; import com.fastasyncworldedit.core.queue.IBatchProcessor; import com.fastasyncworldedit.core.queue.IChunk; import com.fastasyncworldedit.core.queue.IChunkGet; import com.fastasyncworldedit.core.queue.IChunkSet; -import com.fastasyncworldedit.core.extent.processor.ProcessorScope; -import com.fastasyncworldedit.core.object.FaweLimit; -import com.fastasyncworldedit.core.internal.exception.FaweException; import com.sk89q.jnbt.CompoundTag; import com.sk89q.worldedit.MaxChangedBlocksException; import com.sk89q.worldedit.WorldEditException; @@ -15,8 +17,6 @@ import com.sk89q.worldedit.entity.BaseEntity; import com.sk89q.worldedit.entity.Entity; import com.sk89q.worldedit.extent.Extent; import com.sk89q.worldedit.extent.clipboard.BlockArrayClipboard; -import com.fastasyncworldedit.core.function.generator.GenBase; -import com.fastasyncworldedit.core.function.generator.Resource; import com.sk89q.worldedit.function.mask.Mask; import com.sk89q.worldedit.function.operation.Operation; import com.sk89q.worldedit.function.pattern.Pattern; @@ -34,12 +34,12 @@ import com.sk89q.worldedit.world.block.BlockStateHolder; import com.sk89q.worldedit.world.block.BlockType; import com.sk89q.worldedit.world.block.BlockTypes; +import javax.annotation.Nullable; import java.util.Collection; import java.util.Collections; import java.util.List; import java.util.Set; import java.util.concurrent.Future; -import javax.annotation.Nullable; //todo This should be removed in favor of com.sk89q.worldedit.extent.NullExtent public class NullExtent extends FaweRegionExtent implements IBatchProcessor { @@ -127,7 +127,7 @@ public class NullExtent extends FaweRegionExtent implements IBatchProcessor { @Override public > boolean setBlock(int x, int y, int z, T block) - throws WorldEditException { + throws WorldEditException { return false; } @@ -243,7 +243,8 @@ public class NullExtent extends FaweRegionExtent implements IBatchProcessor { } @Override - public > int replaceBlocks(Region region, Set filter, B replacement) throws MaxChangedBlocksException { + public > int replaceBlocks(Region region, Set filter, B replacement) throws + MaxChangedBlocksException { throw reason; } @@ -293,7 +294,16 @@ public class NullExtent extends FaweRegionExtent implements IBatchProcessor { } @Override - public int getNearestSurfaceTerrainBlock(int x, int z, int y, int minY, int maxY, int failedMin, int failedMax, boolean ignoreAir) { + public int getNearestSurfaceTerrainBlock( + int x, + int z, + int y, + int minY, + int maxY, + int failedMin, + int failedMax, + boolean ignoreAir + ) { throw reason; } @@ -308,7 +318,8 @@ public class NullExtent extends FaweRegionExtent implements IBatchProcessor { } @Override - public void addSchems(Region region, Mask mask, List clipboards, int rarity, boolean rotate) throws WorldEditException { + public void addSchems(Region region, Mask mask, List clipboards, int rarity, boolean rotate) throws + WorldEditException { throw reason; } @@ -318,7 +329,8 @@ public class NullExtent extends FaweRegionExtent implements IBatchProcessor { } @Override - public void addOre(Region region, Mask mask, Pattern material, int size, int frequency, int rarity, int minY, int maxY) throws WorldEditException { + public void addOre(Region region, Mask mask, Pattern material, int size, int frequency, int rarity, int minY, int maxY) throws + WorldEditException { throw reason; } @@ -361,4 +373,5 @@ public class NullExtent extends FaweRegionExtent implements IBatchProcessor { public ProcessorScope getScope() { return ProcessorScope.ADDING_BLOCKS; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/OffsetExtent.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/OffsetExtent.java index 165c783b4..bd2aa14b0 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/OffsetExtent.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/OffsetExtent.java @@ -22,8 +22,9 @@ public class OffsetExtent extends ResettableExtent { @Override public boolean setBiome(BlockVector3 position, BiomeType biome) { return getExtent() - .setBiome(position.getBlockX() + dx, position.getBlockY() + dy, position.getBlockZ() + dz, - biome); + .setBiome(position.getBlockX() + dx, position.getBlockY() + dy, position.getBlockZ() + dz, + biome + ); } @Override @@ -33,14 +34,16 @@ public class OffsetExtent extends ResettableExtent { @Override public > boolean setBlock(BlockVector3 location, T block) - throws WorldEditException { + throws WorldEditException { return getExtent().setBlock(location.getBlockX() + dx, location.getBlockY() + dy, - location.getBlockZ() + dz, block); + location.getBlockZ() + dz, block + ); } @Override public > boolean setBlock(int x, int y, int z, T block) - throws WorldEditException { + throws WorldEditException { return getExtent().setBlock(x + dx, y + dy, z + dz, block); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/PassthroughExtent.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/PassthroughExtent.java index b088710ca..5ac2f9d7b 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/PassthroughExtent.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/PassthroughExtent.java @@ -1,5 +1,7 @@ package com.fastasyncworldedit.core.extent; +import com.fastasyncworldedit.core.function.generator.GenBase; +import com.fastasyncworldedit.core.function.generator.Resource; import com.fastasyncworldedit.core.queue.Filter; import com.sk89q.jnbt.CompoundTag; import com.sk89q.worldedit.MaxChangedBlocksException; @@ -7,8 +9,6 @@ import com.sk89q.worldedit.WorldEditException; import com.sk89q.worldedit.extent.AbstractDelegateExtent; import com.sk89q.worldedit.extent.Extent; import com.sk89q.worldedit.extent.clipboard.Clipboard; -import com.fastasyncworldedit.core.function.generator.GenBase; -import com.fastasyncworldedit.core.function.generator.Resource; import com.sk89q.worldedit.function.mask.Mask; import com.sk89q.worldedit.function.operation.Operation; import com.sk89q.worldedit.function.pattern.Pattern; @@ -22,9 +22,9 @@ import com.sk89q.worldedit.world.block.BlockState; import com.sk89q.worldedit.world.block.BlockStateHolder; import com.sk89q.worldedit.world.block.BlockType; +import javax.annotation.Nullable; import java.util.List; import java.util.Set; -import javax.annotation.Nullable; public class PassthroughExtent extends AbstractDelegateExtent { @@ -78,7 +78,16 @@ public class PassthroughExtent extends AbstractDelegateExtent { } @Override - public int getNearestSurfaceTerrainBlock(int x, int z, int y, int minY, int maxY, int failedMin, int failedMax, boolean ignoreAir) { + public int getNearestSurfaceTerrainBlock( + int x, + int z, + int y, + int minY, + int maxY, + int failedMin, + int failedMax, + boolean ignoreAir + ) { return getExtent().getNearestSurfaceTerrainBlock(x, z, y, minY, maxY, failedMin, failedMax, ignoreAir); } @@ -93,7 +102,8 @@ public class PassthroughExtent extends AbstractDelegateExtent { } @Override - public void addSchems(Region region, Mask mask, List clipboards, int rarity, boolean rotate) throws WorldEditException { + public void addSchems(Region region, Mask mask, List clipboards, int rarity, boolean rotate) throws + WorldEditException { getExtent().addSchems(region, mask, clipboards, rarity, rotate); } @@ -108,7 +118,8 @@ public class PassthroughExtent extends AbstractDelegateExtent { } @Override - public void addOre(Region region, Mask mask, Pattern material, int size, int frequency, int rarity, int minY, int maxY) throws WorldEditException { + public void addOre(Region region, Mask mask, Pattern material, int size, int frequency, int rarity, int minY, int maxY) throws + WorldEditException { getExtent().addOre(region, mask, material, size, frequency, rarity, minY, maxY); } @@ -153,7 +164,8 @@ public class PassthroughExtent extends AbstractDelegateExtent { } @Override - public > int replaceBlocks(Region region, Set filter, B replacement) throws MaxChangedBlocksException { + public > int replaceBlocks(Region region, Set filter, B replacement) throws + MaxChangedBlocksException { return getExtent().replaceBlocks(region, filter, replacement); } @@ -243,4 +255,5 @@ public class PassthroughExtent extends AbstractDelegateExtent { public T apply(Iterable positions, T filter) { return getExtent().apply(positions, filter); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/PositionTransformExtent.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/PositionTransformExtent.java index 77c50db98..75751654f 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/PositionTransformExtent.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/PositionTransformExtent.java @@ -1,10 +1,10 @@ package com.fastasyncworldedit.core.extent; +import com.fastasyncworldedit.core.math.MutableBlockVector3; +import com.fastasyncworldedit.core.math.MutableVector3; import com.sk89q.worldedit.WorldEditException; import com.sk89q.worldedit.extent.Extent; import com.sk89q.worldedit.math.BlockVector3; -import com.fastasyncworldedit.core.math.MutableBlockVector3; -import com.fastasyncworldedit.core.math.MutableVector3; import com.sk89q.worldedit.math.transform.Transform; import com.sk89q.worldedit.world.biome.BiomeType; import com.sk89q.worldedit.world.block.BaseBlock; @@ -90,4 +90,5 @@ public class PositionTransformExtent extends ResettableExtent { public void setTransform(Transform transform) { this.transform = transform; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/ProcessedWEExtent.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/ProcessedWEExtent.java index 95617a5ee..8efb1bf5c 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/ProcessedWEExtent.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/ProcessedWEExtent.java @@ -65,7 +65,7 @@ public class ProcessedWEExtent extends AbstractDelegateExtent { @Override public > boolean setBlock(BlockVector3 location, B block) - throws WorldEditException { + throws WorldEditException { return setBlock(location.getBlockX(), location.getBlockY(), location.getBlockZ(), block); } @@ -76,7 +76,7 @@ public class ProcessedWEExtent extends AbstractDelegateExtent { @Override public > boolean setBlock(int x, int y, int z, B block) - throws WorldEditException { + throws WorldEditException { boolean hasNbt = block instanceof BaseBlock && block.hasNbtData(); if (hasNbt) { if (!limit.MAX_BLOCKSTATES()) { @@ -106,4 +106,5 @@ public class ProcessedWEExtent extends AbstractDelegateExtent { } return super.setBiome(position, biome); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/RandomOffsetTransform.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/RandomOffsetTransform.java index f13c8f2eb..218ff00c3 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/RandomOffsetTransform.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/RandomOffsetTransform.java @@ -33,7 +33,7 @@ public class RandomOffsetTransform extends ResettableExtent { @Override public > boolean setBlock(BlockVector3 pos, T block) - throws WorldEditException { + throws WorldEditException { int x = pos.getBlockX() + random.nextInt(1 + (dx << 1)) - dx; int y = pos.getBlockY() + random.nextInt(1 + (dy << 1)) - dy; int z = pos.getBlockZ() + random.nextInt(1 + (dz << 1)) - dz; @@ -42,7 +42,7 @@ public class RandomOffsetTransform extends ResettableExtent { @Override public > boolean setBlock(int x, int y, int z, T block) - throws WorldEditException { + throws WorldEditException { x = x + random.nextInt(1 + (dx << 1)) - dx; y = y + random.nextInt(1 + (dy << 1)) - dy; z = z + random.nextInt(1 + (dz << 1)) - dz; @@ -54,4 +54,5 @@ public class RandomOffsetTransform extends ResettableExtent { random = new SplittableRandom(); return super.setExtent(extent); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/ResettableExtent.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/ResettableExtent.java index 50f19a99a..a0a4e3298 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/ResettableExtent.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/ResettableExtent.java @@ -35,7 +35,7 @@ public class ResettableExtent extends AbstractDelegateExtent implements Serializ checkNotNull(extent); Extent next = getExtent(); if (!(next instanceof NullExtent) && !(next instanceof World) - && next instanceof ResettableExtent) { + && next instanceof ResettableExtent) { ((ResettableExtent) next).setExtent(extent); } else { new ExtentTraverser(this).setNext(new AbstractDelegateExtent(extent)); @@ -54,7 +54,7 @@ public class ResettableExtent extends AbstractDelegateExtent implements Serializ } private void readObject(java.io.ObjectInputStream stream) - throws IOException, ClassNotFoundException { + throws IOException, ClassNotFoundException { stream.defaultReadObject(); if (stream.readBoolean()) { try { @@ -65,4 +65,5 @@ public class ResettableExtent extends AbstractDelegateExtent implements Serializ } } } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/SingleRegionExtent.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/SingleRegionExtent.java index 2a848305c..f30861ebc 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/SingleRegionExtent.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/SingleRegionExtent.java @@ -1,9 +1,9 @@ package com.fastasyncworldedit.core.extent; +import com.fastasyncworldedit.core.object.FaweLimit; import com.fastasyncworldedit.core.queue.IChunk; import com.fastasyncworldedit.core.queue.IChunkGet; import com.fastasyncworldedit.core.queue.IChunkSet; -import com.fastasyncworldedit.core.object.FaweLimit; import com.sk89q.worldedit.extent.Extent; import com.sk89q.worldedit.regions.Region; @@ -54,4 +54,5 @@ public class SingleRegionExtent extends FaweRegionExtent { public boolean processGet(int chunkX, int chunkZ) { return region.containsChunk(chunkX, chunkZ); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/SlowExtent.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/SlowExtent.java index 4e83befd0..6aa07b116 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/SlowExtent.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/SlowExtent.java @@ -7,7 +7,8 @@ import com.sk89q.worldedit.extent.Extent; import com.sk89q.worldedit.world.block.BlockStateHolder; public class SlowExtent extends AbstractDelegateExtent { - private long THRESHOLD = 50 * 1000000; // 1 tick + + private final long THRESHOLD = 50 * 1000000; // 1 tick private final long nanos; private long increment; @@ -36,4 +37,5 @@ public class SlowExtent extends AbstractDelegateExtent { increment -= wait * 1000000; } } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/SourceMaskExtent.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/SourceMaskExtent.java index 53589b5f6..333ea30bb 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/SourceMaskExtent.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/SourceMaskExtent.java @@ -1,17 +1,18 @@ package com.fastasyncworldedit.core.extent; +import com.fastasyncworldedit.core.math.MutableBlockVector3; import com.sk89q.worldedit.WorldEditException; import com.sk89q.worldedit.extent.Extent; import com.sk89q.worldedit.function.mask.Mask; import com.sk89q.worldedit.math.BlockVector3; -import com.fastasyncworldedit.core.math.MutableBlockVector3; import com.sk89q.worldedit.world.block.BlockStateHolder; import static com.google.common.base.Preconditions.checkNotNull; public class SourceMaskExtent extends TemporalExtent { + private Mask mask; - private MutableBlockVector3 mutable = new MutableBlockVector3(); + private final MutableBlockVector3 mutable = new MutableBlockVector3(); public SourceMaskExtent(Extent extent, Mask mask) { super(extent); @@ -52,4 +53,5 @@ public class SourceMaskExtent extends TemporalExtent { mutable.mutZ(z); return mask.test(mutable) && super.setBlock(x, y, z, block); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/StripNBTExtent.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/StripNBTExtent.java index e01ee063c..b44cdb58b 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/StripNBTExtent.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/StripNBTExtent.java @@ -13,12 +13,13 @@ import com.sk89q.worldedit.world.NbtValued; import com.sk89q.worldedit.world.block.BaseBlock; import com.sk89q.worldedit.world.block.BlockStateHolder; +import javax.annotation.Nullable; import java.util.HashMap; import java.util.Map; import java.util.Set; -import javax.annotation.Nullable; public class StripNBTExtent extends AbstractDelegateExtent { + private final String[] strip; /** @@ -75,4 +76,5 @@ public class StripNBTExtent extends AbstractDelegateExtent { entity.setNbtData(new CompoundTag(value)); return entity; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/SupplyingExtent.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/SupplyingExtent.java index 3be2937ee..640243d5d 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/SupplyingExtent.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/SupplyingExtent.java @@ -20,4 +20,5 @@ public class SupplyingExtent extends PassthroughExtent { public Extent getExtent() { return this.extentSupplier.get(); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/TemporalExtent.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/TemporalExtent.java index 41953d966..ac36bef5a 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/TemporalExtent.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/TemporalExtent.java @@ -9,6 +9,7 @@ import com.sk89q.worldedit.world.block.BlockStateHolder; import com.sk89q.worldedit.world.block.BlockTypes; public class TemporalExtent extends PassthroughExtent { + private int x; private int y; private int z = Integer.MAX_VALUE; @@ -76,4 +77,5 @@ public class TemporalExtent extends PassthroughExtent { } return super.getBiome(position); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/TransformExtent.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/TransformExtent.java index 057c6ce27..d948fe4be 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/TransformExtent.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/TransformExtent.java @@ -1,11 +1,11 @@ package com.fastasyncworldedit.core.extent; +import com.fastasyncworldedit.core.math.MutableBlockVector3; +import com.fastasyncworldedit.core.math.MutableVector3; import com.sk89q.worldedit.WorldEditException; import com.sk89q.worldedit.extent.Extent; import com.sk89q.worldedit.extent.transform.BlockTransformExtent; import com.sk89q.worldedit.math.BlockVector3; -import com.fastasyncworldedit.core.math.MutableBlockVector3; -import com.fastasyncworldedit.core.math.MutableVector3; import com.sk89q.worldedit.math.Vector3; import com.sk89q.worldedit.world.biome.BiomeType; import com.sk89q.worldedit.world.block.BaseBlock; @@ -94,14 +94,14 @@ public class TransformExtent extends BlockTransformExtent { @Override public > boolean setBlock(int x, int y, int z, T block) - throws WorldEditException { + throws WorldEditException { return super.setBlock(getPos(x, y, z), transformInverse(block)); } @Override public > boolean setBlock(BlockVector3 location, B block) - throws WorldEditException { + throws WorldEditException { return super.setBlock(getPos(location), transformInverse(block)); } @@ -110,4 +110,5 @@ public class TransformExtent extends BlockTransformExtent { BlockVector3 p = getPos(x, y, z); return super.setBiome(p.getX(), p.getY(), p.getZ(), biome); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/clipboard/CPUOptimizedClipboard.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/clipboard/CPUOptimizedClipboard.java index ccfba4f6e..95d52b2be 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/clipboard/CPUOptimizedClipboard.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/clipboard/CPUOptimizedClipboard.java @@ -70,7 +70,7 @@ public class CPUOptimizedClipboard extends LinearClipboard { return; } try { - for (int y = 0; y < getHeight(); y ++) { + for (int y = 0; y < getHeight(); y++) { for (int z = 0; z < getLength(); z++) { for (int x = 0; x < getWidth(); x++) { task.applyInt(getIndex(x, y, z), biomes[getBiomeIndex(x, y, z)].getInternalId()); @@ -177,7 +177,7 @@ public class CPUOptimizedClipboard extends LinearClipboard { @Override public boolean setTile(int x, int y, int z, CompoundTag tag) { - nbtMapLoc.put(new IntTriple(x, y, z), new CompoundTag(tag.getValue())); + nbtMapLoc.put(new IntTriple(x, y, z), new CompoundTag(tag.getValue())); return true; } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/clipboard/DiskOptimizedClipboard.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/clipboard/DiskOptimizedClipboard.java index 5c282af12..ca39fb1f5 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/clipboard/DiskOptimizedClipboard.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/clipboard/DiskOptimizedClipboard.java @@ -67,17 +67,30 @@ public class DiskOptimizedClipboard extends LinearClipboard implements Closeable private boolean canHaveBiomes = true; public DiskOptimizedClipboard(Region region, UUID uuid) { - this(region.getDimensions(), MainUtil.getFile(Fawe.get() != null ? Fawe.imp().getDirectory() : new File("."), Settings.IMP.PATHS.CLIPBOARD + File.separator + uuid + ".bd")); + this( + region.getDimensions(), + MainUtil.getFile( + Fawe.get() != null ? Fawe.imp().getDirectory() : new File("."), + Settings.IMP.PATHS.CLIPBOARD + File.separator + uuid + ".bd" + ) + ); } public DiskOptimizedClipboard(BlockVector3 dimensions) { - this(dimensions, MainUtil.getFile(Fawe.imp() != null ? Fawe.imp().getDirectory() : new File("."), Settings.IMP.PATHS.CLIPBOARD + File.separator + UUID.randomUUID() + ".bd")); + this( + dimensions, + MainUtil.getFile( + Fawe.imp() != null ? Fawe.imp().getDirectory() : new File("."), + Settings.IMP.PATHS.CLIPBOARD + File.separator + UUID.randomUUID() + ".bd" + ) + ); } public DiskOptimizedClipboard(BlockVector3 dimensions, File file) { super(dimensions); if (HEADER_SIZE + ((long) getVolume() << 1) >= Integer.MAX_VALUE) { - throw new IllegalArgumentException("Dimensions too large for this clipboard format. Use //lazycopy for large selections."); + throw new IllegalArgumentException( + "Dimensions too large for this clipboard format. Use //lazycopy for large selections."); } else if (HEADER_SIZE + ((long) getVolume() << 1) + (long) ((getHeight() >> 2) + 1) * ((getLength() >> 2) + 1) * ((getWidth() >> 2) + 1) >= Integer.MAX_VALUE) { LOGGER.error("Dimensions are too large for biomes to be stored in a DiskOptimizedClipboard"); canHaveBiomes = false; @@ -219,7 +232,7 @@ public class DiskOptimizedClipboard extends LinearClipboard implements Closeable } int mbbIndex = HEADER_SIZE + (getVolume() << 1); try { - for (int y = 0; y < getHeight(); y ++) { + for (int y = 0; y < getHeight(); y++) { for (int z = 0; z < getLength(); z++) { for (int x = 0; x < getWidth(); x++) { int biome = byteBuffer.get(mbbIndex + getBiomeIndex(x, y, z)) & 0xFF; @@ -245,7 +258,10 @@ public class DiskOptimizedClipboard extends LinearClipboard implements Closeable public BlockArrayClipboard toClipboard() { try { - CuboidRegion region = new CuboidRegion(BlockVector3.at(0, 0, 0), BlockVector3.at(getWidth() - 1, getHeight() - 1, getLength() - 1)); + CuboidRegion region = new CuboidRegion( + BlockVector3.at(0, 0, 0), + BlockVector3.at(getWidth() - 1, getHeight() - 1, getLength() - 1) + ); int ox = byteBuffer.getShort(8); int oy = byteBuffer.getShort(10); int oz = byteBuffer.getShort(12); @@ -441,7 +457,10 @@ public class DiskOptimizedClipboard extends LinearClipboard implements Closeable @Override public List getEntities(Region region) { - return new ArrayList<>(entities.stream().filter(e -> region.contains(e.getLocation().toBlockPoint())).collect(Collectors.toList())); + return new ArrayList<>(entities + .stream() + .filter(e -> region.contains(e.getLocation().toBlockPoint())) + .collect(Collectors.toList())); } @Override @@ -466,4 +485,5 @@ public class DiskOptimizedClipboard extends LinearClipboard implements Closeable } } } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/clipboard/EmptyClipboard.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/clipboard/EmptyClipboard.java index d9263a753..8e18c2c19 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/clipboard/EmptyClipboard.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/clipboard/EmptyClipboard.java @@ -13,10 +13,12 @@ import com.sk89q.worldedit.world.block.BaseBlock; import com.sk89q.worldedit.world.block.BlockState; import com.sk89q.worldedit.world.block.BlockStateHolder; import com.sk89q.worldedit.world.block.BlockTypes; + import javax.annotation.Nonnull; import javax.annotation.Nullable; public final class EmptyClipboard implements Clipboard { + private static final EmptyClipboard instance = new EmptyClipboard(); public static EmptyClipboard getInstance() { diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/clipboard/LazyClipboardHolder.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/clipboard/LazyClipboardHolder.java index 508af1efd..4934fc126 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/clipboard/LazyClipboardHolder.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/clipboard/LazyClipboardHolder.java @@ -11,6 +11,7 @@ import java.net.URI; import java.util.UUID; public class LazyClipboardHolder extends URIClipboardHolder { + private final ByteSource source; private final ClipboardFormat format; private final UUID uuid; @@ -18,7 +19,6 @@ public class LazyClipboardHolder extends URIClipboardHolder { /** * Create a new instance with the given clipboard. - * */ public LazyClipboardHolder(URI uri, ByteSource source, ClipboardFormat format, UUID uuid) { super(uri, EmptyClipboard.getInstance()); @@ -56,8 +56,9 @@ public class LazyClipboardHolder extends URIClipboardHolder { @Override public synchronized void close() { if (clipboard instanceof BlockArrayClipboard) { - ((BlockArrayClipboard) clipboard).close(); + clipboard.close(); } clipboard = null; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/clipboard/LinearClipboard.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/clipboard/LinearClipboard.java index 399660453..2c1bfb36f 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/clipboard/LinearClipboard.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/clipboard/LinearClipboard.java @@ -1,12 +1,12 @@ package com.fastasyncworldedit.core.extent.clipboard; import com.fastasyncworldedit.core.extent.filter.block.AbstractFilterBlock; +import com.fastasyncworldedit.core.function.visitor.Order; import com.fastasyncworldedit.core.jnbt.streamer.IntValueReader; import com.google.common.collect.ForwardingIterator; import com.sk89q.jnbt.CompoundTag; import com.sk89q.worldedit.extent.Extent; import com.sk89q.worldedit.extent.clipboard.BlockArrayClipboard.ClipboardEntity; -import com.fastasyncworldedit.core.function.visitor.Order; import com.sk89q.worldedit.math.BlockVector3; import com.sk89q.worldedit.regions.CuboidRegion; import com.sk89q.worldedit.regions.Region; @@ -14,8 +14,8 @@ import com.sk89q.worldedit.world.biome.BiomeType; import com.sk89q.worldedit.world.block.BaseBlock; import com.sk89q.worldedit.world.block.BlockState; import com.sk89q.worldedit.world.block.BlockStateHolder; -import javax.annotation.Nonnull; +import javax.annotation.Nonnull; import java.util.Collection; import java.util.HashSet; import java.util.Iterator; @@ -49,7 +49,8 @@ public abstract class LinearClipboard extends SimpleClipboard { public abstract Collection getTileEntities(); - public void flush() {} + public void flush() { + } @Override protected void finalize() { @@ -103,6 +104,7 @@ public abstract class LinearClipboard extends SimpleClipboard { } private class LinearFilter extends AbstractFilterBlock { + private int index = -1; private BlockVector3 position; @@ -111,6 +113,7 @@ public abstract class LinearClipboard extends SimpleClipboard { index++; return this; } + @Override public BaseBlock getFullBlock() { return LinearClipboard.this.getFullBlock(index); @@ -130,5 +133,7 @@ public abstract class LinearClipboard extends SimpleClipboard { public Extent getExtent() { return LinearClipboard.this; } + } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/clipboard/MemoryOptimizedClipboard.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/clipboard/MemoryOptimizedClipboard.java index 6836c9790..98163d6bf 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/clipboard/MemoryOptimizedClipboard.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/clipboard/MemoryOptimizedClipboard.java @@ -22,6 +22,7 @@ import com.sk89q.worldedit.world.block.BlockStateHolder; import com.sk89q.worldedit.world.block.BlockType; import com.sk89q.worldedit.world.block.BlockTypes; +import javax.annotation.Nullable; import java.io.IOException; import java.util.ArrayList; import java.util.Collection; @@ -29,7 +30,6 @@ import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.stream.Collectors; -import javax.annotation.Nullable; public class MemoryOptimizedClipboard extends LinearClipboard { @@ -51,7 +51,7 @@ public class MemoryOptimizedClipboard extends LinearClipboard { private boolean saveOrdinals = false; - private int compressionLevel; + private final int compressionLevel; public MemoryOptimizedClipboard(Region region) { this(region, Settings.IMP.CLIPBOARD.COMPRESSION_LEVEL); @@ -95,7 +95,7 @@ public class MemoryOptimizedClipboard extends LinearClipboard { return; } try { - for (int y = 0; y < getHeight(); y ++) { + for (int y = 0; y < getHeight(); y++) { for (int z = 0; z < getLength(); z++) { for (int x = 0; x < getWidth(); x++) { task.applyInt(getIndex(x, y, z), biomes[getBiomeIndex(x, y, z)] & 0xFF); @@ -285,7 +285,7 @@ public class MemoryOptimizedClipboard extends LinearClipboard { boolean hasNbt = block instanceof BaseBlock && block.hasNbtData(); if (hasNbt) { int y = index / getArea(); - int newI = index- y * getArea(); + int newI = index - y * getArea(); int z = newI / getWidth(); int x = newI - z * getWidth(); setTile(x, y, z, block.getNbtData()); @@ -308,7 +308,10 @@ public class MemoryOptimizedClipboard extends LinearClipboard { @Override public List getEntities(Region region) { - return new ArrayList<>(entities.stream().filter(e -> region.contains(e.getLocation().toBlockPoint())).collect(Collectors.toList())); + return new ArrayList<>(entities + .stream() + .filter(e -> region.contains(e.getLocation().toBlockPoint())) + .collect(Collectors.toList())); } @Override @@ -317,4 +320,5 @@ public class MemoryOptimizedClipboard extends LinearClipboard { this.entities.remove(entity); } } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/clipboard/MultiClipboardHolder.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/clipboard/MultiClipboardHolder.java index 9f83a4a89..c2402d3ee 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/clipboard/MultiClipboardHolder.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/clipboard/MultiClipboardHolder.java @@ -14,6 +14,7 @@ import java.util.concurrent.ThreadLocalRandom; import static com.google.common.base.Preconditions.checkNotNull; public class MultiClipboardHolder extends URIClipboardHolder { + private final List holders; private Clipboard[] cached; @@ -150,8 +151,10 @@ public class MultiClipboardHolder extends URIClipboardHolder { cached = available = getClipboards().toArray(new Clipboard[0]); } switch (available.length) { - case 0: return EmptyClipboard.getInstance(); - case 1: return available[0]; + case 0: + return EmptyClipboard.getInstance(); + case 1: + return available[0]; } int index = ThreadLocalRandom.current().nextInt(available.length); @@ -179,4 +182,5 @@ public class MultiClipboardHolder extends URIClipboardHolder { holder.close(); } } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/clipboard/ReadOnlyClipboard.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/clipboard/ReadOnlyClipboard.java index 801cae39c..24b3a4daf 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/clipboard/ReadOnlyClipboard.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/clipboard/ReadOnlyClipboard.java @@ -18,6 +18,7 @@ import java.util.List; import java.util.function.Supplier; public abstract class ReadOnlyClipboard extends SimpleClipboard { + public final Region region; public ReadOnlyClipboard(Region region) { @@ -106,4 +107,5 @@ public abstract class ReadOnlyClipboard extends SimpleClipboard { public void removeEntity(Entity entity) { throw new UnsupportedOperationException("Clipboard is immutable"); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/clipboard/ResizableClipboardBuilder.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/clipboard/ResizableClipboardBuilder.java index b32216070..b713fed8f 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/clipboard/ResizableClipboardBuilder.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/clipboard/ResizableClipboardBuilder.java @@ -1,8 +1,8 @@ package com.fastasyncworldedit.core.extent.clipboard; +import com.fastasyncworldedit.core.history.MemoryOptimizedHistory; import com.fastasyncworldedit.core.history.change.MutableBlockChange; import com.fastasyncworldedit.core.history.change.MutableTileChange; -import com.fastasyncworldedit.core.history.MemoryOptimizedHistory; import com.sk89q.worldedit.WorldEditException; import com.sk89q.worldedit.extent.clipboard.BlockArrayClipboard; import com.sk89q.worldedit.extent.clipboard.Clipboard; @@ -75,7 +75,7 @@ public class ResizableClipboardBuilder extends MemoryOptimizedHistory { int x = tileChange.tag.getInt("x"); int y = tileChange.tag.getInt("y"); int z = tileChange.tag.getInt("z"); - clipboard.setTile(x,y,z, tileChange.tag); + clipboard.setTile(x, y, z, tileChange.tag); } } } catch (WorldEditException e) { @@ -84,4 +84,5 @@ public class ResizableClipboardBuilder extends MemoryOptimizedHistory { return clipboard; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/clipboard/SimpleClipboard.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/clipboard/SimpleClipboard.java index 94956c161..7ffc03cd7 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/clipboard/SimpleClipboard.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/clipboard/SimpleClipboard.java @@ -6,6 +6,7 @@ import com.sk89q.worldedit.regions.CuboidRegion; import com.sk89q.worldedit.regions.Region; public abstract class SimpleClipboard implements Clipboard { + private final BlockVector3 size; private final int area; private final int volume; @@ -80,4 +81,5 @@ public abstract class SimpleClipboard implements Clipboard { public int getVolume() { return volume; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/clipboard/URIClipboardHolder.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/clipboard/URIClipboardHolder.java index a3bd02bb0..536f3636d 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/clipboard/URIClipboardHolder.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/clipboard/URIClipboardHolder.java @@ -10,6 +10,7 @@ import java.util.Set; import static com.google.common.base.Preconditions.checkNotNull; public class URIClipboardHolder extends ClipboardHolder { + private final URI uri; public URIClipboardHolder(URI uri, Clipboard clipboard) { @@ -25,8 +26,9 @@ public class URIClipboardHolder extends ClipboardHolder { /** * Get the original clipboard source, typically a file or uri. - * @deprecated If a holder has multiple sources, this will return an empty URI + * * @return the source of the clipboard + * @deprecated If a holder has multiple sources, this will return an empty URI */ @Deprecated public URI getUri() { @@ -40,4 +42,5 @@ public class URIClipboardHolder extends ClipboardHolder { public URI getURI(Clipboard clipboard) { return getClipboard() == clipboard ? getUri() : null; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/clipboard/io/FastSchematicReader.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/clipboard/io/FastSchematicReader.java index f637f8cbb..8f9b1340e 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/clipboard/io/FastSchematicReader.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/clipboard/io/FastSchematicReader.java @@ -1,13 +1,13 @@ package com.fastasyncworldedit.core.extent.clipboard.io; import com.fastasyncworldedit.core.FaweCache; -import com.fastasyncworldedit.core.jnbt.streamer.StreamDelegate; -import com.fastasyncworldedit.core.jnbt.streamer.ValueReader; -import com.fastasyncworldedit.core.internal.io.FaweInputStream; -import com.fastasyncworldedit.core.internal.io.FaweOutputStream; import com.fastasyncworldedit.core.extent.clipboard.LinearClipboard; import com.fastasyncworldedit.core.internal.io.FastByteArrayOutputStream; import com.fastasyncworldedit.core.internal.io.FastByteArraysInputStream; +import com.fastasyncworldedit.core.internal.io.FaweInputStream; +import com.fastasyncworldedit.core.internal.io.FaweOutputStream; +import com.fastasyncworldedit.core.jnbt.streamer.StreamDelegate; +import com.fastasyncworldedit.core.jnbt.streamer.ValueReader; import com.sk89q.jnbt.AdventureNBTConverter; import com.sk89q.jnbt.CompoundTag; import com.sk89q.jnbt.IntTag; @@ -251,7 +251,7 @@ public class FastSchematicReader extends NBTSchematicReader { BlockVector3 dimensions = BlockVector3.at(width, height, length); BlockVector3 origin; - if (offsetX != Integer.MIN_VALUE && offsetY != Integer.MIN_VALUE && offsetZ != Integer.MIN_VALUE) { + if (offsetX != Integer.MIN_VALUE && offsetY != Integer.MIN_VALUE && offsetZ != Integer.MIN_VALUE) { origin = BlockVector3.at(-offsetX, -offsetY, -offsetZ); } else { origin = BlockVector3.ZERO; @@ -303,7 +303,7 @@ public class FastSchematicReader extends NBTSchematicReader { for (int z = 0; z < length; z++) { for (int x = 0; x < width; x++) { BiomeType biome = getBiomeType(fis); - for (int y = 0; y < height; y ++) { + for (int y = 0; y < height; y++) { clipboard.setBiome(x, y, z, biome); } } @@ -342,7 +342,12 @@ public class FastSchematicReader extends NBTSchematicReader { values.remove("Id"); values.remove("Pos"); - clipboard.setTile(x, y, z, (CompoundTag) AdventureNBTConverter.fromAdventure(fixBlockEntity(new CompoundTag(values)))); + clipboard.setTile( + x, + y, + z, + (CompoundTag) AdventureNBTConverter.fromAdventure(fixBlockEntity(new CompoundTag(values))) + ); } } @@ -375,12 +380,12 @@ public class FastSchematicReader extends NBTSchematicReader { int locZ = loc.getBlockZ(); BlockVector3 max = min.add(dimensions).subtract(BlockVector3.ONE); if (locX < min.getX() || locY < min.getY() || locZ < min.getZ() - || locX > max.getX() || locY > max.getY() || locZ > max.getZ()) { + || locX > max.getX() || locY > max.getY() || locZ > max.getZ()) { for (Entity e : clipboard.getEntities()) { clipboard.removeEntity(e); } LOGGER.error("Detected schematic entity outside clipboard region. FAWE will not load entities. " - + "Please try loading the schematic with the format \"legacyentity\""); + + "Please try loading the schematic with the format \"legacyentity\""); break; } } @@ -403,4 +408,5 @@ public class FastSchematicReader extends NBTSchematicReader { public void close() throws IOException { inputStream.close(); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/clipboard/io/FastSchematicWriter.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/clipboard/io/FastSchematicWriter.java index b8c02d12a..90c35bc47 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/clipboard/io/FastSchematicWriter.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/clipboard/io/FastSchematicWriter.java @@ -1,8 +1,9 @@ package com.fastasyncworldedit.core.extent.clipboard.io; import com.fastasyncworldedit.core.Fawe; -import com.fastasyncworldedit.core.jnbt.streamer.IntValueReader; +import com.fastasyncworldedit.core.function.visitor.Order; import com.fastasyncworldedit.core.internal.io.FaweOutputStream; +import com.fastasyncworldedit.core.jnbt.streamer.IntValueReader; import com.fastasyncworldedit.core.util.IOUtil; import com.sk89q.jnbt.CompoundTag; import com.sk89q.jnbt.IntArrayTag; @@ -18,7 +19,6 @@ import com.sk89q.worldedit.extension.platform.Capability; import com.sk89q.worldedit.extent.clipboard.BlockArrayClipboard; import com.sk89q.worldedit.extent.clipboard.Clipboard; import com.sk89q.worldedit.extent.clipboard.io.ClipboardWriter; -import com.fastasyncworldedit.core.function.visitor.Order; import com.sk89q.worldedit.math.BlockVector3; import com.sk89q.worldedit.regions.Region; import com.sk89q.worldedit.util.Location; @@ -101,7 +101,10 @@ public class FastSchematicWriter implements ClipboardWriter { final DataOutput rawStream = outputStream.getOutputStream(); outputStream.writeLazyCompoundTag("Schematic", out -> { - out.writeNamedTag("DataVersion", WorldEdit.getInstance().getPlatformManager().queryCapability(Capability.WORLD_EDITING).getDataVersion()); + out.writeNamedTag( + "DataVersion", + WorldEdit.getInstance().getPlatformManager().queryCapability(Capability.WORLD_EDITING).getDataVersion() + ); out.writeNamedTag("Version", CURRENT_VERSION); out.writeNamedTag("Width", (short) width); out.writeNamedTag("Height", (short) height); @@ -109,9 +112,9 @@ public class FastSchematicWriter implements ClipboardWriter { // The Sponge format Offset refers to the 'min' points location in the world. That's our 'Origin' out.writeNamedTag("Offset", new int[]{ - min.getBlockX(), - min.getBlockY(), - min.getBlockZ(), + min.getBlockX(), + min.getBlockY(), + min.getBlockZ(), }); out.writeLazyCompoundTag("Metadata", out1 -> { @@ -157,9 +160,9 @@ public class FastSchematicWriter implements ClipboardWriter { // Dum. values.remove("id"); values.put("Pos", new IntArrayTag(new int[]{ - pos.getX(), - pos.getY(), - pos.getZ() + pos.getX(), + pos.getY(), + pos.getZ() })); numTiles++; @@ -307,4 +310,5 @@ public class FastSchematicWriter implements ClipboardWriter { public void close() throws IOException { outputStream.close(); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/clipboard/io/schematic/MinecraftStructure.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/clipboard/io/schematic/MinecraftStructure.java index d684744ee..852958c98 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/clipboard/io/schematic/MinecraftStructure.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/clipboard/io/schematic/MinecraftStructure.java @@ -1,6 +1,7 @@ package com.fastasyncworldedit.core.extent.clipboard.io.schematic; import com.fastasyncworldedit.core.FaweCache; +import com.fastasyncworldedit.core.math.MutableBlockVector3; import com.sk89q.jnbt.CompoundTag; import com.sk89q.jnbt.IntTag; import com.sk89q.jnbt.ListTag; @@ -17,7 +18,6 @@ import com.sk89q.worldedit.extent.clipboard.io.ClipboardReader; import com.sk89q.worldedit.extent.clipboard.io.ClipboardWriter; import com.sk89q.worldedit.internal.util.LogManagerCompat; import com.sk89q.worldedit.math.BlockVector3; -import com.fastasyncworldedit.core.math.MutableBlockVector3; import com.sk89q.worldedit.regions.CuboidRegion; import com.sk89q.worldedit.regions.Region; import com.sk89q.worldedit.registry.state.AbstractProperty; @@ -31,8 +31,8 @@ import com.sk89q.worldedit.world.entity.EntityTypes; import com.sk89q.worldedit.world.storage.NBTConversions; import it.unimi.dsi.fastutil.ints.Int2ObjectArrayMap; import org.apache.logging.log4j.Logger; -import javax.annotation.Nonnull; +import javax.annotation.Nonnull; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; @@ -215,12 +215,13 @@ public class MinecraftStructure implements ClipboardReader, ClipboardWriter { int combined = block.getInternalId(); int index = indexes.get(combined); List pos = Arrays.asList(point.getX() - min.getX(), - point.getY() - min.getY(), point.getZ() - min.getZ()); + point.getY() - min.getY(), point.getZ() - min.getZ() + ); if (!block.hasNbtData()) { blocks.add(FaweCache.IMP.asMap("state", index, "pos", pos)); } else { blocks.add( - FaweCache.IMP.asMap("state", index, "pos", pos, "nbt", block.getNbtData())); + FaweCache.IMP.asMap("state", index, "pos", pos, "nbt", block.getNbtData())); } } } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/clipboard/io/schematic/PNGWriter.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/clipboard/io/schematic/PNGWriter.java index d14b14353..f0b6d91ed 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/clipboard/io/schematic/PNGWriter.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/clipboard/io/schematic/PNGWriter.java @@ -1,21 +1,21 @@ package com.fastasyncworldedit.core.extent.clipboard.io.schematic; import com.fastasyncworldedit.core.Fawe; +import com.fastasyncworldedit.core.math.MutableBlockVector3; import com.fastasyncworldedit.core.util.TextureUtil; import com.sk89q.worldedit.extent.clipboard.Clipboard; import com.sk89q.worldedit.extent.clipboard.io.ClipboardWriter; import com.sk89q.worldedit.math.BlockVector3; -import com.fastasyncworldedit.core.math.MutableBlockVector3; import com.sk89q.worldedit.regions.Region; import com.sk89q.worldedit.world.block.BlockState; +import javax.imageio.ImageIO; +import javax.imageio.stream.ImageOutputStream; import java.awt.Color; import java.awt.Graphics2D; import java.awt.image.BufferedImage; import java.io.IOException; import java.io.OutputStream; -import javax.imageio.ImageIO; -import javax.imageio.stream.ImageOutputStream; public class PNGWriter implements ClipboardWriter { @@ -104,8 +104,8 @@ public class PNGWriter implements ClipboardWriter { mutableRight.mutY(y); mutableLeft.mutY(y); if (!clipboard.getBlock(mutableTop).getBlockType().getMaterial().isAir() && - !clipboard.getBlock(mutableRight).getBlockType().getMaterial().isAir() && - !clipboard.getBlock(mutableLeft).getBlockType().getMaterial().isAir() ) { + !clipboard.getBlock(mutableRight).getBlockType().getMaterial().isAir() && + !clipboard.getBlock(mutableLeft).getBlockType().getMaterial().isAir()) { continue; } double cpy = cpy2 - dpxi[y - y0]; @@ -162,4 +162,5 @@ public class PNGWriter implements ClipboardWriter { public void close() throws IOException { out.close(); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/filter/ArrayImageMask.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/filter/ArrayImageMask.java index a9e46a792..4976af5f7 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/filter/ArrayImageMask.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/filter/ArrayImageMask.java @@ -1,7 +1,7 @@ package com.fastasyncworldedit.core.extent.filter; -import com.fastasyncworldedit.core.queue.FilterBlockMask; import com.fastasyncworldedit.core.extent.filter.block.FilterBlock; +import com.fastasyncworldedit.core.queue.FilterBlockMask; import java.awt.image.BufferedImage; import java.util.concurrent.ThreadLocalRandom; @@ -23,4 +23,5 @@ public class ArrayImageMask implements FilterBlockMask { int height = image.getRGB(block.getX(), block.getZ()) & 0xFF; return height == 255 || height > 0 && !white && random.nextInt(256) <= height; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/filter/CountFilter.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/filter/CountFilter.java index 375cdb8e3..72ee73013 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/filter/CountFilter.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/filter/CountFilter.java @@ -32,4 +32,5 @@ public class CountFilter extends ForkedFilter { public int getTotal() { return total; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/filter/DistrFilter.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/filter/DistrFilter.java index 681c9b23d..78a7ea293 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/filter/DistrFilter.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/filter/DistrFilter.java @@ -1,8 +1,8 @@ package com.fastasyncworldedit.core.extent.filter; import com.fastasyncworldedit.core.extent.filter.block.FilterBlock; -import com.sk89q.worldedit.extension.platform.Actor; import com.fastasyncworldedit.core.function.mask.ABlockMask; +import com.sk89q.worldedit.extension.platform.Actor; import com.sk89q.worldedit.util.Countable; import com.sk89q.worldedit.util.formatting.text.TextComponent; import com.sk89q.worldedit.world.block.BlockState; @@ -97,11 +97,14 @@ public class DistrFilter extends ForkedFilter { public void print(Actor actor, long size) { for (Countable c : getDistribution()) { final String name = c.getID().toString(); - final String str = String.format("%-7s (%.3f%%) %s", - c.getAmount(), - c.getAmount() / (double) size * 100, - name); + final String str = String.format( + "%-7s (%.3f%%) %s", + c.getAmount(), + c.getAmount() / (double) size * 100, + name + ); actor.printInfo(TextComponent.of(str)); } } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/filter/ForkedFilter.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/filter/ForkedFilter.java index 9bff8deab..28d57ef34 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/filter/ForkedFilter.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/filter/ForkedFilter.java @@ -37,4 +37,5 @@ public abstract class ForkedFilter> implements Filter } public abstract void join(T filter); + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/filter/LinkedFilter.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/filter/LinkedFilter.java index 776b74da7..25627c451 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/filter/LinkedFilter.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/filter/LinkedFilter.java @@ -1,8 +1,8 @@ package com.fastasyncworldedit.core.extent.filter; -import com.fastasyncworldedit.core.queue.Filter; import com.fastasyncworldedit.core.extent.filter.block.DelegateFilter; import com.fastasyncworldedit.core.extent.filter.block.FilterBlock; +import com.fastasyncworldedit.core.queue.Filter; /** * Filter which links two Filters together for single-filter-input operations. @@ -30,7 +30,8 @@ public final class LinkedFilter extends Dele } @Override - public LinkedFilter, Filter> newInstance(Filter other) { + public LinkedFilter, Filter> newInstance(Filter other) { return new LinkedFilter<>(this, other); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/filter/MaskFilter.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/filter/MaskFilter.java index bccd3e07f..e68de30bc 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/filter/MaskFilter.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/filter/MaskFilter.java @@ -1,8 +1,8 @@ package com.fastasyncworldedit.core.extent.filter; -import com.fastasyncworldedit.core.queue.Filter; import com.fastasyncworldedit.core.extent.filter.block.DelegateFilter; import com.fastasyncworldedit.core.extent.filter.block.FilterBlock; +import com.fastasyncworldedit.core.queue.Filter; import com.sk89q.worldedit.function.mask.AbstractExtentMask; import com.sk89q.worldedit.function.mask.Mask; @@ -15,6 +15,7 @@ import java.util.function.Supplier; * @param Parent which extends Filter */ public class MaskFilter extends DelegateFilter { + private final Supplier supplier; private final Mask mask; private final AtomicInteger changes; @@ -69,4 +70,5 @@ public class MaskFilter extends DelegateFilter { public Filter fork() { return new MaskFilter<>(getParent().fork(), mask::copy, mask.copy(), changes); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/filter/block/AbstractExtentFilterBlock.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/filter/block/AbstractExtentFilterBlock.java index 00110fbdd..ab92a9815 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/filter/block/AbstractExtentFilterBlock.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/filter/block/AbstractExtentFilterBlock.java @@ -17,4 +17,5 @@ public abstract class AbstractExtentFilterBlock extends FilterBlock { public final Extent getExtent() { return extent; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/filter/block/AbstractFilterBlock.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/filter/block/AbstractFilterBlock.java index 0c08aa0bc..2d916e37f 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/filter/block/AbstractFilterBlock.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/filter/block/AbstractFilterBlock.java @@ -81,7 +81,7 @@ public abstract class AbstractFilterBlock extends FilterBlock { @Override public > boolean setBlock(int x, int y, int z, T block) - throws WorldEditException { + throws WorldEditException { if (x == this.getX() && y == this.getY() && z == this.getZ()) { setFullBlock(block.toBaseBlock()); return true; @@ -93,4 +93,5 @@ public abstract class AbstractFilterBlock extends FilterBlock { public boolean setBiome(int x, int y, int z, BiomeType biome) { return getExtent().setBiome(x, y, z, biome); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/filter/block/AbstractSingleFilterBlock.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/filter/block/AbstractSingleFilterBlock.java index 6e8cf181c..07fd9ee1a 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/filter/block/AbstractSingleFilterBlock.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/filter/block/AbstractSingleFilterBlock.java @@ -77,7 +77,7 @@ public abstract class AbstractSingleFilterBlock extends FilterBlock { @Override public > boolean setBlock(int x, int y, int z, T block) - throws WorldEditException { + throws WorldEditException { if (x == this.getX() && y == this.getY() && z == this.getZ()) { setFullBlock(block.toBaseBlock()); return true; @@ -89,4 +89,5 @@ public abstract class AbstractSingleFilterBlock extends FilterBlock { public boolean setBiome(int x, int y, int z, BiomeType biome) { return getExtent().setBiome(x, y, z, biome); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/filter/block/ArrayFilterBlock.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/filter/block/ArrayFilterBlock.java index ea117f69a..572c085ea 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/filter/block/ArrayFilterBlock.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/filter/block/ArrayFilterBlock.java @@ -22,8 +22,10 @@ public class ArrayFilterBlock extends AbstractExtentFilterBlock { private int z; private int index; - public ArrayFilterBlock(Extent extent, char[] blocks, byte[] heights, int width, int length, - int yOffset) { + public ArrayFilterBlock( + Extent extent, char[] blocks, byte[] heights, int width, int length, + int yOffset + ) { super(extent); this.blocks = blocks; this.width = width; @@ -95,7 +97,7 @@ public class ArrayFilterBlock extends AbstractExtentFilterBlock { @Override public > boolean setBlock(int x, int y, int z, T block) - throws WorldEditException { + throws WorldEditException { return getExtent().setBlock(x, y, z, block); } @@ -103,4 +105,5 @@ public class ArrayFilterBlock extends AbstractExtentFilterBlock { public boolean setBiome(int x, int y, int z, BiomeType biome) { return getExtent().setBiome(x, y, z, biome); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/filter/block/CharFilterBlock.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/filter/block/CharFilterBlock.java index b98a16f82..ffe30d7ec 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/filter/block/CharFilterBlock.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/filter/block/CharFilterBlock.java @@ -3,10 +3,10 @@ package com.fastasyncworldedit.core.extent.filter.block; import com.fastasyncworldedit.core.FaweCache; import com.fastasyncworldedit.core.queue.Filter; import com.fastasyncworldedit.core.queue.FilterBlockMask; -import com.fastasyncworldedit.core.queue.implementation.Flood; import com.fastasyncworldedit.core.queue.IBlocks; import com.fastasyncworldedit.core.queue.IChunkGet; import com.fastasyncworldedit.core.queue.IChunkSet; +import com.fastasyncworldedit.core.queue.implementation.Flood; import com.fastasyncworldedit.core.queue.implementation.blocks.CharGetBlocks; import com.sk89q.jnbt.CompoundTag; import com.sk89q.worldedit.WorldEditException; @@ -20,8 +20,8 @@ import com.sk89q.worldedit.world.block.BlockStateHolder; import com.sk89q.worldedit.world.block.BlockTypes; import com.sk89q.worldedit.world.block.BlockTypesCache; import com.sk89q.worldedit.world.registry.BlockMaterial; -import javax.annotation.Nonnull; +import javax.annotation.Nonnull; import javax.annotation.Nullable; import static com.sk89q.worldedit.world.block.BlockTypesCache.states; @@ -84,8 +84,10 @@ public class CharFilterBlock extends ChunkFilterBlock { } @Override - public void flood(IChunkGet iget, IChunkSet iset, int layer, Flood flood, - FilterBlockMask mask) { + public void flood( + IChunkGet iget, IChunkSet iset, int layer, Flood flood, + FilterBlockMask mask + ) { final int maxDepth = flood.getMaxDepth(); final boolean checkDepth = maxDepth < Character.MAX_VALUE; if (initLayer(iget, iset, layer) != null) { // TODO replace with hasSection @@ -424,7 +426,7 @@ public class CharFilterBlock extends ChunkFilterBlock { @Override public > boolean setBlock(int x, int y, int z, T block) - throws WorldEditException { + throws WorldEditException { return getExtent().setBlock(x, y, z, block); } @@ -444,5 +446,7 @@ public class CharFilterBlock extends ChunkFilterBlock { private interface SetDelegate { void set(@Nonnull CharFilterBlock block, char value); + } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/filter/block/ChunkFilterBlock.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/filter/block/ChunkFilterBlock.java index 121bad7f4..a91bab7bc 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/filter/block/ChunkFilterBlock.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/filter/block/ChunkFilterBlock.java @@ -2,11 +2,11 @@ package com.fastasyncworldedit.core.extent.filter.block; import com.fastasyncworldedit.core.queue.Filter; import com.fastasyncworldedit.core.queue.FilterBlockMask; -import com.fastasyncworldedit.core.queue.implementation.Flood; import com.fastasyncworldedit.core.queue.IBlocks; import com.fastasyncworldedit.core.queue.IChunk; import com.fastasyncworldedit.core.queue.IChunkGet; import com.fastasyncworldedit.core.queue.IChunkSet; +import com.fastasyncworldedit.core.queue.implementation.Flood; import com.sk89q.worldedit.extent.Extent; import com.sk89q.worldedit.regions.Region; @@ -32,8 +32,10 @@ public abstract class ChunkFilterBlock extends AbstractExtentFilterBlock { */ public abstract ChunkFilterBlock initLayer(IBlocks iget, IChunkSet iset, int layer); - public abstract void flood(IChunkGet iget, IChunkSet iset, int layer, - Flood flood, FilterBlockMask mask); + public abstract void flood( + IChunkGet iget, IChunkSet iset, int layer, + Flood flood, FilterBlockMask mask + ); /** @@ -44,8 +46,10 @@ public abstract class ChunkFilterBlock extends AbstractExtentFilterBlock { /** * Filter a cuboid region. */ - public abstract void filter(Filter filter, int minX, int minY, int minZ, int maxX, int maxY, - int maxZ); + public abstract void filter( + Filter filter, int minX, int minY, int minZ, int maxX, int maxY, + int maxZ + ); /** * Filter everything in the layer. @@ -93,4 +97,5 @@ public abstract class ChunkFilterBlock extends AbstractExtentFilterBlock { } return set; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/filter/block/DelegateFilter.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/filter/block/DelegateFilter.java index 88d10753c..b2dfb42ae 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/filter/block/DelegateFilter.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/filter/block/DelegateFilter.java @@ -15,4 +15,5 @@ public abstract class DelegateFilter implements IDelegateFilte public final T getParent() { return (T) parent; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/filter/block/ExtentFilterBlock.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/filter/block/ExtentFilterBlock.java index c94119a6d..d2b63970c 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/filter/block/ExtentFilterBlock.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/filter/block/ExtentFilterBlock.java @@ -5,6 +5,7 @@ import com.sk89q.worldedit.math.BlockVector3; import com.sk89q.worldedit.world.block.BaseBlock; public class ExtentFilterBlock extends AbstractFilterBlock { + private final Extent extent; private BlockVector3 pos; @@ -37,4 +38,5 @@ public class ExtentFilterBlock extends AbstractFilterBlock { public Extent getExtent() { return extent; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/filter/block/FilterBlock.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/filter/block/FilterBlock.java index 3b3e89ebb..4aab008f1 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/filter/block/FilterBlock.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/filter/block/FilterBlock.java @@ -13,7 +13,7 @@ import javax.annotation.Nullable; /** * A class representing a block with a position - * - Used for optimized block operations to avoid lookups + * - Used for optimized block operations to avoid lookups */ public abstract class FilterBlock extends BlockVector3 implements Extent, TileEntityBlock { @@ -185,7 +185,8 @@ public abstract class FilterBlock extends BlockVector3 implements Extent, TileEn return getBlockRelativeY(y); } - @Override @Nullable + @Override + @Nullable public BiomeType getBiome(BlockVector3 position) { return null; } @@ -194,4 +195,5 @@ public abstract class FilterBlock extends BlockVector3 implements Extent, TileEn public boolean setBiome(BlockVector3 position, BiomeType biome) { return setBiome(position.getX(), position.getY(), position.getZ(), biome); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/filter/block/SingleFilterBlock.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/filter/block/SingleFilterBlock.java index 899fd3d66..5516ae3bb 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/filter/block/SingleFilterBlock.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/filter/block/SingleFilterBlock.java @@ -30,4 +30,5 @@ public class SingleFilterBlock extends AbstractSingleFilterBlock { public int getZ() { return z; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/inventory/SlottableBlockBag.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/inventory/SlottableBlockBag.java index f3f8940de..0cadd4fa4 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/inventory/SlottableBlockBag.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/inventory/SlottableBlockBag.java @@ -3,6 +3,7 @@ package com.fastasyncworldedit.core.extent.inventory; import com.sk89q.worldedit.blocks.BaseItem; public interface SlottableBlockBag { + BaseItem getItem(int slot); void setItem(int slot, BaseItem block); @@ -14,4 +15,5 @@ public interface SlottableBlockBag { default int getSelectedSlot() { return -1; } -} \ No newline at end of file + +} diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/BatchProcessorHolder.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/BatchProcessorHolder.java index 55be0618a..aec836426 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/BatchProcessorHolder.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/BatchProcessorHolder.java @@ -8,6 +8,7 @@ import com.fastasyncworldedit.core.queue.IChunkSet; import java.util.concurrent.Future; public class BatchProcessorHolder implements IBatchProcessorHolder { + private IBatchProcessor processor = EmptyBatchProcessor.getInstance(); private IBatchProcessor postProcessor = EmptyBatchProcessor.getInstance(); @@ -56,4 +57,5 @@ public class BatchProcessorHolder implements IBatchProcessorHolder { public ProcessorScope getScope() { return getProcessor().getScope(); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/EmptyBatchProcessor.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/EmptyBatchProcessor.java index 1db95bd48..cd04ca615 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/EmptyBatchProcessor.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/EmptyBatchProcessor.java @@ -8,11 +8,11 @@ import com.sk89q.worldedit.extent.Extent; import javax.annotation.Nonnull; import javax.annotation.Nullable; - import java.util.concurrent.CompletableFuture; import java.util.concurrent.Future; public final class EmptyBatchProcessor implements IBatchProcessor { + private static final EmptyBatchProcessor instance = new EmptyBatchProcessor(); public static EmptyBatchProcessor getInstance() { diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/ExtentBatchProcessorHolder.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/ExtentBatchProcessorHolder.java index e7938da79..b83ea2c4b 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/ExtentBatchProcessorHolder.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/ExtentBatchProcessorHolder.java @@ -1,11 +1,12 @@ package com.fastasyncworldedit.core.extent.processor; -import com.fastasyncworldedit.core.queue.IBatchProcessor; import com.fastasyncworldedit.core.configuration.Settings; import com.fastasyncworldedit.core.history.changeset.AbstractChangeSet; +import com.fastasyncworldedit.core.queue.IBatchProcessor; import com.sk89q.worldedit.extent.Extent; public abstract class ExtentBatchProcessorHolder extends BatchProcessorHolder implements Extent { + @Override public Extent addProcessor(IBatchProcessor processor) { join(processor); @@ -32,4 +33,5 @@ public abstract class ExtentBatchProcessorHolder extends BatchProcessorHolder im this.remove(AbstractChangeSet.class); return this; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/HeightmapProcessor.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/HeightmapProcessor.java index 53daf8f31..5ac86684e 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/HeightmapProcessor.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/HeightmapProcessor.java @@ -1,22 +1,23 @@ package com.fastasyncworldedit.core.extent.processor; +import com.fastasyncworldedit.core.extent.processor.heightmap.HeightMapType; import com.fastasyncworldedit.core.queue.IBatchProcessor; import com.fastasyncworldedit.core.queue.IChunk; import com.fastasyncworldedit.core.queue.IChunkGet; import com.fastasyncworldedit.core.queue.IChunkSet; -import com.fastasyncworldedit.core.extent.processor.heightmap.HeightMapType; import com.sk89q.worldedit.extent.Extent; import com.sk89q.worldedit.world.World; import com.sk89q.worldedit.world.block.BlockState; import com.sk89q.worldedit.world.block.BlockType; import com.sk89q.worldedit.world.block.BlockTypes; -import javax.annotation.Nullable; +import javax.annotation.Nullable; import java.util.BitSet; import java.util.concurrent.CompletableFuture; import java.util.concurrent.Future; public class HeightmapProcessor implements IBatchProcessor { + private static final HeightMapType[] TYPES = HeightMapType.values(); private static final BlockType RESERVED = BlockTypes.__RESERVED__; private static final int SECTION_SIDE_LENGTH = 16; @@ -54,13 +55,19 @@ public class HeightmapProcessor implements IBatchProcessor { block = set.getBlock(x, y, z); } if (block == null || block.getBlockType() == RESERVED) { - if (!hasSectionGet) continue; + if (!hasSectionGet) { + continue; + } block = get.getBlock(x, y, z); } // fast skip if block isn't relevant for any height map - if (block.isAir()) continue; + if (block.isAir()) { + continue; + } for (int i = 0; i < TYPES.length; i++) { - if ((skip & (1 << i)) != 0) continue; // skip finished height map + if ((skip & (1 << i)) != 0) { + continue; // skip finished height map + } HeightMapType type = TYPES[i]; int index = (z << 4) | x; if (!updated[i].get(index) // ignore if that position was already set @@ -77,7 +84,9 @@ public class HeightmapProcessor implements IBatchProcessor { skip |= 1 << i; } } - if (skip != allSkipped) continue; + if (skip != allSkipped) { + continue; + } break; // all maps are processed } for (int i = 0; i < TYPES.length; i++) { @@ -92,7 +101,8 @@ public class HeightmapProcessor implements IBatchProcessor { } @Override - public @Nullable Extent construct(Extent child) { + @Nullable + public Extent construct(Extent child) { throw new UnsupportedOperationException("Processing only"); } @@ -100,4 +110,5 @@ public class HeightmapProcessor implements IBatchProcessor { public ProcessorScope getScope() { return ProcessorScope.READING_SET_BLOCKS; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/IBatchProcessorHolder.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/IBatchProcessorHolder.java index 0dd75f8b4..ff7968e57 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/IBatchProcessorHolder.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/IBatchProcessorHolder.java @@ -13,12 +13,14 @@ import java.util.concurrent.Future; * (Join and remove operations affect the held processor) */ public interface IBatchProcessorHolder extends IBatchProcessor { + IBatchProcessor getProcessor(); IBatchProcessor getPostProcessor(); /** * Set the held processor + * * @param set */ void setProcessor(IBatchProcessor set); @@ -62,4 +64,5 @@ public interface IBatchProcessorHolder extends IBatchProcessor { setProcessor(getProcessor().remove(clazz)); return this; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/LimitExtent.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/LimitExtent.java index ff98949f4..308e0ae93 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/LimitExtent.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/LimitExtent.java @@ -1,10 +1,12 @@ package com.fastasyncworldedit.core.extent.processor; import com.fastasyncworldedit.core.FaweCache; -import com.fastasyncworldedit.core.queue.Filter; import com.fastasyncworldedit.core.extent.filter.block.ExtentFilterBlock; -import com.fastasyncworldedit.core.object.FaweLimit; +import com.fastasyncworldedit.core.function.generator.GenBase; +import com.fastasyncworldedit.core.function.generator.Resource; import com.fastasyncworldedit.core.internal.exception.FaweException; +import com.fastasyncworldedit.core.object.FaweLimit; +import com.fastasyncworldedit.core.queue.Filter; import com.sk89q.jnbt.CompoundTag; import com.sk89q.worldedit.MaxChangedBlocksException; import com.sk89q.worldedit.WorldEditException; @@ -12,8 +14,6 @@ import com.sk89q.worldedit.entity.BaseEntity; import com.sk89q.worldedit.entity.Entity; import com.sk89q.worldedit.extent.AbstractDelegateExtent; import com.sk89q.worldedit.extent.Extent; -import com.fastasyncworldedit.core.function.generator.GenBase; -import com.fastasyncworldedit.core.function.generator.Resource; import com.sk89q.worldedit.function.mask.Mask; import com.sk89q.worldedit.function.pattern.Pattern; import com.sk89q.worldedit.math.BlockVector3; @@ -29,21 +29,22 @@ import com.sk89q.worldedit.world.block.BlockStateHolder; import com.sk89q.worldedit.world.block.BlockType; import com.sk89q.worldedit.world.block.BlockTypes; +import javax.annotation.Nullable; import java.util.Collection; import java.util.Collections; import java.util.List; import java.util.Set; import java.util.UUID; -import javax.annotation.Nullable; public class LimitExtent extends AbstractDelegateExtent { + private final FaweLimit limit; /** - * Create a new instance. - * - * @param extent the extent - */ + * Create a new instance. + * + * @param extent the extent + */ public LimitExtent(Extent extent, FaweLimit limit) { super(extent); this.limit = limit; @@ -208,7 +209,16 @@ public class LimitExtent extends AbstractDelegateExtent { } @Override - public int getNearestSurfaceTerrainBlock(int x, int z, int y, int minY, int maxY, int failedMin, int failedMax, boolean ignoreAir) { + public int getNearestSurfaceTerrainBlock( + int x, + int z, + int y, + int minY, + int maxY, + int failedMin, + int failedMax, + boolean ignoreAir + ) { limit.THROW_MAX_CHECKS(FaweCache.IMP.WORLD_HEIGHT); try { return super.getNearestSurfaceTerrainBlock(x, z, y, minY, maxY, failedMin, failedMax, ignoreAir); @@ -235,7 +245,8 @@ public class LimitExtent extends AbstractDelegateExtent { } @Override - public void addSchems(Region region, Mask mask, List clipboards, int rarity, boolean rotate) throws WorldEditException { + public void addSchems(Region region, Mask mask, List clipboards, int rarity, boolean rotate) throws + WorldEditException { limit.THROW_MAX_CHECKS(region.getVolume()); limit.THROW_MAX_CHANGES(region.getVolume()); super.addSchems(region, mask, clipboards, rarity, rotate); @@ -249,7 +260,8 @@ public class LimitExtent extends AbstractDelegateExtent { } @Override - public void addOre(Region region, Mask mask, Pattern material, int size, int frequency, int rarity, int minY, int maxY) throws WorldEditException { + public void addOre(Region region, Mask mask, Pattern material, int size, int frequency, int rarity, int minY, int maxY) throws + WorldEditException { limit.THROW_MAX_CHECKS(region.getVolume()); limit.THROW_MAX_CHANGES(region.getVolume()); super.addOre(region, mask, material, size, frequency, rarity, minY, maxY); @@ -299,7 +311,8 @@ public class LimitExtent extends AbstractDelegateExtent { } @Override - public > int replaceBlocks(Region region, Set filter, B replacement) throws MaxChangedBlocksException { + public > int replaceBlocks(Region region, Set filter, B replacement) throws + MaxChangedBlocksException { limit.THROW_MAX_CHECKS(region.getVolume()); limit.THROW_MAX_CHANGES(region.getVolume()); return super.replaceBlocks(region, filter, replacement); @@ -521,4 +534,5 @@ public class LimitExtent extends AbstractDelegateExtent { return false; } } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/MultiBatchProcessor.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/MultiBatchProcessor.java index f12c4c46d..fff441987 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/MultiBatchProcessor.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/MultiBatchProcessor.java @@ -9,8 +9,8 @@ import com.fastasyncworldedit.core.queue.IChunkSet; import com.fastasyncworldedit.core.util.StringMan; import com.google.common.cache.LoadingCache; import com.sk89q.worldedit.extent.Extent; -import javax.annotation.Nullable; +import javax.annotation.Nullable; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; @@ -28,7 +28,8 @@ public class MultiBatchProcessor implements IBatchProcessor { private IBatchProcessor[] processors; private final LoadingCache, Map> classToThreadIdToFilter = - FaweCache.IMP.createCache((Supplier>) ConcurrentHashMap::new); + FaweCache.IMP.createCache((Supplier>) ConcurrentHashMap::new); + public MultiBatchProcessor(IBatchProcessor... processors) { this.processors = processors; } @@ -75,10 +76,14 @@ public class MultiBatchProcessor implements IBatchProcessor { IChunkSet chunkSet = set; for (IBatchProcessor processor : processors) { if (processor.getScope() != ProcessorScope.ADDING_BLOCKS) { - ordered.merge(processor.getScope().intValue(), new HashSet<>(Collections.singleton(processor)), (existing, theNew) -> { - existing.add(processor); - return existing; - }); + ordered.merge( + processor.getScope().intValue(), + new HashSet<>(Collections.singleton(processor)), + (existing, theNew) -> { + existing.add(processor); + return existing; + } + ); continue; } chunkSet = processSet(processor, chunk, get, chunkSet); @@ -90,7 +95,7 @@ public class MultiBatchProcessor implements IBatchProcessor { continue; } for (IBatchProcessor processor : processors) { - chunkSet = processSet(processor,chunk, get, chunkSet); + chunkSet = processSet(processor, chunk, get, chunkSet); if (chunkSet == null) { return null; } @@ -108,7 +113,11 @@ public class MultiBatchProcessor implements IBatchProcessor { private IChunkSet processSet(IBatchProcessor processor, IChunk chunk, IChunkGet get, IChunkSet chunkSet) { if (processor instanceof Filter) { chunkSet = ((IBatchProcessor) classToThreadIdToFilter.getUnchecked(processor.getClass()) - .computeIfAbsent(Thread.currentThread().getId(), k -> ((Filter) processor).fork())).processSet(chunk, get, chunkSet); + .computeIfAbsent(Thread.currentThread().getId(), k -> ((Filter) processor).fork())).processSet( + chunk, + get, + chunkSet + ); } else { chunkSet = processor.processSet(chunk, get, chunkSet); } @@ -204,4 +213,5 @@ public class MultiBatchProcessor implements IBatchProcessor { } return ProcessorScope.valueOf(0); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/NullProcessor.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/NullProcessor.java index 2ef58f42c..d741ce93a 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/NullProcessor.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/NullProcessor.java @@ -6,12 +6,13 @@ import com.fastasyncworldedit.core.queue.IChunkGet; import com.fastasyncworldedit.core.queue.IChunkSet; import com.sk89q.worldedit.extent.Extent; import com.sk89q.worldedit.extent.NullExtent; + import javax.annotation.Nonnull; import javax.annotation.Nullable; - import java.util.concurrent.Future; public final class NullProcessor implements IBatchProcessor { + private static final NullProcessor instance = new NullProcessor(); public static NullProcessor getInstance() { diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/ProcessorScope.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/ProcessorScope.java index 4314a0be7..7fdd3e67a 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/ProcessorScope.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/ProcessorScope.java @@ -3,14 +3,18 @@ package com.fastasyncworldedit.core.extent.processor; /** * The scope of a processor. * Order in which processors are executed: - * - ADDING_BLOCKS (processors that strictly ADD blocks to an edit ONLY) - * - CHANGING_BLOCKS (processors that strictly ADD or CHANGE blocks being set) - * - REMOVING_BLOCKS (processors that string ADD, CHANGE or REMOVE blocks being set) - * - CUSTOM (processors that do not specify a SCOPE) - * - READING_SET_BLOCKS (processors that do not alter blocks at all, and read the blocks that are actually going to set, e.g. history processors) + * - ADDING_BLOCKS (processors that strictly ADD blocks to an edit ONLY) + * - CHANGING_BLOCKS (processors that strictly ADD or CHANGE blocks being set) + * - REMOVING_BLOCKS (processors that string ADD, CHANGE or REMOVE blocks being set) + * - CUSTOM (processors that do not specify a SCOPE) + * - READING_SET_BLOCKS (processors that do not alter blocks at all, and read the blocks that are actually going to set, e.g. history processors) */ public enum ProcessorScope { - ADDING_BLOCKS(0), CHANGING_BLOCKS(1), REMOVING_BLOCKS(2), CUSTOM(3), READING_SET_BLOCKS(4); + ADDING_BLOCKS(0), + CHANGING_BLOCKS(1), + REMOVING_BLOCKS(2), + CUSTOM(3), + READING_SET_BLOCKS(4); private final int value; diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/heightmap/AbstractDelegateHeightMap.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/heightmap/AbstractDelegateHeightMap.java index 9c3d86b4b..e13674574 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/heightmap/AbstractDelegateHeightMap.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/heightmap/AbstractDelegateHeightMap.java @@ -17,4 +17,5 @@ public class AbstractDelegateHeightMap implements HeightMap { public void setSize(int size) { parent.setSize(size); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/heightmap/ArrayHeightMap.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/heightmap/ArrayHeightMap.java index 292aff20c..6b977cce8 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/heightmap/ArrayHeightMap.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/heightmap/ArrayHeightMap.java @@ -1,6 +1,7 @@ package com.fastasyncworldedit.core.extent.processor.heightmap; public class ArrayHeightMap extends ScalableHeightMap { + // The heights private final byte[][] height; // The height map width/length @@ -32,4 +33,5 @@ public class ArrayHeightMap extends ScalableHeightMap { return ((height[x][z] & 0xFF) * size) / 256d; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/heightmap/AverageHeightMapFilter.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/heightmap/AverageHeightMapFilter.java index d1e891115..6009ef5cf 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/heightmap/AverageHeightMapFilter.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/heightmap/AverageHeightMapFilter.java @@ -1,6 +1,7 @@ package com.fastasyncworldedit.core.extent.processor.heightmap; public class AverageHeightMapFilter { + private int[] inData; private int[] buffer; private final int width; @@ -46,4 +47,5 @@ public class AverageHeightMapFilter { } return val; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/heightmap/FlatScalableHeightMap.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/heightmap/FlatScalableHeightMap.java index b1839acff..0c790436e 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/heightmap/FlatScalableHeightMap.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/heightmap/FlatScalableHeightMap.java @@ -1,6 +1,7 @@ package com.fastasyncworldedit.core.extent.processor.heightmap; public class FlatScalableHeightMap extends ScalableHeightMap { + public FlatScalableHeightMap() { super(); } @@ -15,4 +16,5 @@ public class FlatScalableHeightMap extends ScalableHeightMap { } return size; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/heightmap/HeightMap.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/heightmap/HeightMap.java index 1f6d28bc2..f98288743 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/heightmap/HeightMap.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/heightmap/HeightMap.java @@ -19,21 +19,46 @@ public interface HeightMap { void setSize(int size); - default void perform(EditSession session, Mask mask, BlockVector3 pos, int size, int rotationMode, double yscale, boolean smooth, boolean towards, boolean layers) throws MaxChangedBlocksException { + default void perform( + EditSession session, + Mask mask, + BlockVector3 pos, + int size, + int rotationMode, + double yscale, + boolean smooth, + boolean towards, + boolean layers + ) throws MaxChangedBlocksException { int[][] data = generateHeightData(session, mask, pos, size, rotationMode, yscale, smooth, towards, layers); applyHeightMapData(data, session, pos, size, yscale, smooth, towards, layers); } - default void applyHeightMapData(int[][] data, EditSession session, BlockVector3 pos, int size, double yscale, boolean smooth, boolean towards, boolean layers) throws MaxChangedBlocksException { + default void applyHeightMapData( + int[][] data, + EditSession session, + BlockVector3 pos, + int size, + double yscale, + boolean smooth, + boolean towards, + boolean layers + ) throws MaxChangedBlocksException { BlockVector3 top = session.getMaximumPoint(); int maxY = top.getBlockY(); Location min = new Location(session.getWorld(), pos.subtract(size, maxY, size).toVector3()); BlockVector3 max = pos.add(size, maxY, size); Region region = new CuboidRegion(session.getWorld(), min.toBlockPoint(), max); - com.sk89q.worldedit.math.convolution.HeightMap heightMap = new com.sk89q.worldedit.math.convolution.HeightMap(session, region, data[0], layers); + com.sk89q.worldedit.math.convolution.HeightMap heightMap = new com.sk89q.worldedit.math.convolution.HeightMap( + session, + region, + data[0], + layers + ); if (smooth) { try { - HeightMapFilter filter = (HeightMapFilter) HeightMapFilter.class.getConstructors()[0].newInstance(GaussianKernel.class.getConstructors()[0].newInstance(5, 1)); + HeightMapFilter filter = (HeightMapFilter) HeightMapFilter.class.getConstructors()[0].newInstance(GaussianKernel.class + .getConstructors()[0].newInstance(5, 1)); int diameter = 2 * size + 1; data[1] = filter.filter(data[1], diameter, diameter); } catch (Throwable e) { @@ -47,7 +72,17 @@ public interface HeightMap { } } - default int[][] generateHeightData(EditSession session, Mask mask, BlockVector3 pos, int size, final int rotationMode, double yscale, boolean smooth, boolean towards, final boolean layers) { + default int[][] generateHeightData( + EditSession session, + Mask mask, + BlockVector3 pos, + int size, + final int rotationMode, + double yscale, + boolean smooth, + boolean towards, + final boolean layers + ) { BlockVector3 top = session.getMaximumPoint(); int maxY = top.getBlockY(); int diameter = 2 * size + 1; @@ -102,7 +137,8 @@ public interface HeightMap { int diff = targetY - height; double raiseScaled = diff * (raisePow * sizePowInv); double raiseScaledAbs = Math.abs(raiseScaled); - int random = ThreadLocalRandom.current().nextInt(256) < (int) ((Math.ceil(raiseScaledAbs) - Math.floor(raiseScaledAbs)) * 256) ? (diff > 0 ? 1 : -1) : 0; + int random = ThreadLocalRandom.current().nextInt(256) < (int) ((Math.ceil(raiseScaledAbs) - Math.floor( + raiseScaledAbs)) * 256) ? (diff > 0 ? 1 : -1) : 0; int raiseScaledInt = (int) raiseScaled + random; newData[index] = height + raiseScaledInt; } @@ -151,4 +187,5 @@ public interface HeightMap { } return new int[][]{oldData, newData}; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/heightmap/HeightMapType.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/heightmap/HeightMapType.java index ce458a6f5..d49644f24 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/heightmap/HeightMapType.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/heightmap/HeightMapType.java @@ -1,13 +1,13 @@ package com.fastasyncworldedit.core.extent.processor.heightmap; -import com.sk89q.worldedit.registry.state.Property; import com.fastasyncworldedit.core.registry.state.PropertyKey; +import com.sk89q.worldedit.registry.state.Property; import com.sk89q.worldedit.world.block.BlockCategories; import com.sk89q.worldedit.world.block.BlockState; /** * This enum represents the different types of height maps available in minecraft. - * + *

    * Heightmaps are used to describe the highest position for given {@code (x, z)} coordinates. * What's considered as highest position depends on the height map type and the blocks at that column. * The highest position is a {@code max(y + 1)} such that the block at {@code (x, y, z)} is @@ -55,10 +55,16 @@ public enum HeightMapType { * @return {@code true} if the block state has any fluid present. */ private static boolean hasFluid(BlockState state) { - if (state.getMaterial().isLiquid()) return true; - if (!state.getBlockType().hasProperty(PropertyKey.WATERLOGGED)) return false; + if (state.getMaterial().isLiquid()) { + return true; + } + if (!state.getBlockType().hasProperty(PropertyKey.WATERLOGGED)) { + return false; + } Property waterlogged = state.getBlockType().getProperty(PropertyKey.WATERLOGGED); - if (waterlogged == null) return false; + if (waterlogged == null) { + return false; + } return state.getState(waterlogged); } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/heightmap/RotatableHeightMap.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/heightmap/RotatableHeightMap.java index 633b02507..cf5230a7c 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/heightmap/RotatableHeightMap.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/heightmap/RotatableHeightMap.java @@ -1,10 +1,11 @@ package com.fastasyncworldedit.core.extent.processor.heightmap; -import com.sk89q.worldedit.math.BlockVector3; import com.fastasyncworldedit.core.math.MutableVector3; +import com.sk89q.worldedit.math.BlockVector3; import com.sk89q.worldedit.math.transform.AffineTransform; public class RotatableHeightMap extends AbstractDelegateHeightMap { + private AffineTransform transform; private final MutableVector3 mutable; @@ -25,4 +26,5 @@ public class RotatableHeightMap extends AbstractDelegateHeightMap { BlockVector3 pos = transform.apply(mutable.setComponents(x, 0, z)).toBlockPoint(); return super.getHeight(pos.getBlockX(), pos.getBlockZ()); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/heightmap/ScalableHeightMap.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/heightmap/ScalableHeightMap.java index f795a8eb7..d384bd416 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/heightmap/ScalableHeightMap.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/heightmap/ScalableHeightMap.java @@ -1,11 +1,11 @@ package com.fastasyncworldedit.core.extent.processor.heightmap; import com.fastasyncworldedit.core.math.IntPair; +import com.fastasyncworldedit.core.math.MutableBlockVector3; import com.fastasyncworldedit.core.util.MainUtil; import com.fastasyncworldedit.core.util.MathMan; import com.sk89q.worldedit.extent.clipboard.Clipboard; import com.sk89q.worldedit.math.BlockVector3; -import com.fastasyncworldedit.core.math.MutableBlockVector3; import com.sk89q.worldedit.world.block.BlockState; import java.awt.image.BufferedImage; @@ -15,6 +15,7 @@ import java.io.InputStream; import java.util.HashSet; public class ScalableHeightMap implements HeightMap { + public int size2; public int size; @@ -113,4 +114,5 @@ public class ScalableHeightMap implements HeightMap { } return new ArrayHeightMap(array); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/lighting/NMSRelighter.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/lighting/NMSRelighter.java index 21e8dfe2c..800da9be0 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/lighting/NMSRelighter.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/lighting/NMSRelighter.java @@ -1,15 +1,15 @@ package com.fastasyncworldedit.core.extent.processor.lighting; import com.fastasyncworldedit.core.Fawe; +import com.fastasyncworldedit.core.configuration.Settings; +import com.fastasyncworldedit.core.math.BlockVectorSet; +import com.fastasyncworldedit.core.math.MutableBlockVector3; import com.fastasyncworldedit.core.queue.IQueueChunk; import com.fastasyncworldedit.core.queue.IQueueExtent; import com.fastasyncworldedit.core.queue.implementation.chunk.ChunkHolder; -import com.fastasyncworldedit.core.configuration.Settings; -import com.fastasyncworldedit.core.util.task.RunnableVal; -import com.fastasyncworldedit.core.math.BlockVectorSet; import com.fastasyncworldedit.core.util.MathMan; import com.fastasyncworldedit.core.util.TaskManager; -import com.fastasyncworldedit.core.math.MutableBlockVector3; +import com.fastasyncworldedit.core.util.task.RunnableVal; import com.sk89q.worldedit.registry.state.DirectionalProperty; import com.sk89q.worldedit.registry.state.EnumProperty; import com.sk89q.worldedit.registry.state.Property; @@ -79,7 +79,8 @@ public class NMSRelighter implements Relighter { this.lightingLock = new ReentrantLock(); } - @Override public boolean isEmpty() { + @Override + public boolean isEmpty() { return skyToRelight.isEmpty() && lightQueue.isEmpty() && extendSkyToRelight.isEmpty() && concurrentLightQueue.isEmpty(); } @@ -93,7 +94,8 @@ public class NMSRelighter implements Relighter { return finished.get(); } - @Override public synchronized void removeAndRelight(boolean sky) { + @Override + public synchronized void removeAndRelight(boolean sky) { removeFirst = true; fixLightingSafe(sky); removeFirst = false; @@ -245,7 +247,7 @@ public class NMSRelighter implements Relighter { MutableBlockVector3 node = new MutableBlockVector3(x, y, z); if (newLevel < oldLevel) { removalVisited.put(node, present); - lightRemovalQueue.add(new Object[] {node, oldLevel}); + lightRemovalQueue.add(new Object[]{node, oldLevel}); } else { visited.put(node, present); lightPropagationQueue.add(node); @@ -265,22 +267,70 @@ public class NMSRelighter implements Relighter { MutableBlockVector3 node = (MutableBlockVector3) val[0]; int lightLevel = (int) val[1]; - this.computeRemoveBlockLight(node.getX() - 1, node.getY(), node.getZ(), lightLevel, lightRemovalQueue, lightPropagationQueue, - removalVisited, visited); - this.computeRemoveBlockLight(node.getX() + 1, node.getY(), node.getZ(), lightLevel, lightRemovalQueue, lightPropagationQueue, - removalVisited, visited); + this.computeRemoveBlockLight( + node.getX() - 1, + node.getY(), + node.getZ(), + lightLevel, + lightRemovalQueue, + lightPropagationQueue, + removalVisited, + visited + ); + this.computeRemoveBlockLight( + node.getX() + 1, + node.getY(), + node.getZ(), + lightLevel, + lightRemovalQueue, + lightPropagationQueue, + removalVisited, + visited + ); if (node.getY() > 0) { - this.computeRemoveBlockLight(node.getX(), node.getY() - 1, node.getZ(), lightLevel, lightRemovalQueue, lightPropagationQueue, - removalVisited, visited); + this.computeRemoveBlockLight( + node.getX(), + node.getY() - 1, + node.getZ(), + lightLevel, + lightRemovalQueue, + lightPropagationQueue, + removalVisited, + visited + ); } if (node.getY() < 255) { - this.computeRemoveBlockLight(node.getX(), node.getY() + 1, node.getZ(), lightLevel, lightRemovalQueue, lightPropagationQueue, - removalVisited, visited); + this.computeRemoveBlockLight( + node.getX(), + node.getY() + 1, + node.getZ(), + lightLevel, + lightRemovalQueue, + lightPropagationQueue, + removalVisited, + visited + ); } - this.computeRemoveBlockLight(node.getX(), node.getY(), node.getZ() - 1, lightLevel, lightRemovalQueue, lightPropagationQueue, - removalVisited, visited); - this.computeRemoveBlockLight(node.getX(), node.getY(), node.getZ() + 1, lightLevel, lightRemovalQueue, lightPropagationQueue, - removalVisited, visited); + this.computeRemoveBlockLight( + node.getX(), + node.getY(), + node.getZ() - 1, + lightLevel, + lightRemovalQueue, + lightPropagationQueue, + removalVisited, + visited + ); + this.computeRemoveBlockLight( + node.getX(), + node.getY(), + node.getZ() + 1, + lightLevel, + lightRemovalQueue, + lightPropagationQueue, + removalVisited, + visited + ); } while (!lightPropagationQueue.isEmpty()) { @@ -302,27 +352,39 @@ public class NMSRelighter implements Relighter { boolean top = state.getState(stairHalf).equalsIgnoreCase("top"); Direction direction = getStairDir(state); String shape = getStairShape(state); - computeStair(node.getX(), node.getY(), node.getZ(), lightLevel, lightPropagationQueue, visited, top, direction, shape); + computeStair( + node.getX(), + node.getY(), + node.getZ(), + lightLevel, + lightPropagationQueue, + visited, + top, + direction, + shape + ); } else { computeNormal(node.getX(), node.getY(), node.getZ(), lightLevel, lightPropagationQueue, visited); } } } - private void computeStair(int x, - int y, - int z, - int currentLight, - Queue queue, - Map visited, - boolean top, - Direction direction, - String shape) { + private void computeStair( + int x, + int y, + int z, + int currentLight, + Queue queue, + Map visited, + boolean top, + Direction direction, + String shape + ) { east: { // Block East if (direction != Direction.WEST && !((direction == Direction.NORTH && !shape.equals("inner_left")) || (direction == Direction.SOUTH - && !shape.equals("inner_right")) || (direction == Direction.EAST && shape.contains("outer")))) { + && !shape.equals("inner_right")) || (direction == Direction.EAST && shape.contains("outer")))) { break east; } BlockState state = this.queue.getBlock(x + 1, y, z); @@ -336,9 +398,11 @@ public class NMSRelighter implements Relighter { Direction otherDir = getStairDir(state); String otherShape = getStairShape(state); boolean b1 = - (otherDir == Direction.NORTH && !otherShape.equals("outer_right")) || (otherDir == Direction.EAST && otherShape.equals("inner_left")); + (otherDir == Direction.NORTH && !otherShape.equals("outer_right")) || (otherDir == Direction.EAST && otherShape + .equals("inner_left")); boolean b2 = - (otherDir == Direction.SOUTH && !otherShape.equals("outer_left")) || (otherDir == Direction.EAST && otherShape.equals("inner_right")); + (otherDir == Direction.SOUTH && !otherShape.equals("outer_left")) || (otherDir == Direction.EAST && otherShape + .equals("inner_right")); switch (direction) { case EAST: if (shape.equals("outer_right") && b1) { @@ -373,7 +437,7 @@ public class NMSRelighter implements Relighter { { // Block West if (direction != Direction.EAST && !((direction == Direction.SOUTH && !shape.equals("inner_left")) || (direction == Direction.NORTH - && !shape.equals("inner_right")) || (direction == Direction.WEST && shape.contains("outer")))) { + && !shape.equals("inner_right")) || (direction == Direction.WEST && shape.contains("outer")))) { break west; } BlockState state = this.queue.getBlock(x - 1, y, z); @@ -387,9 +451,11 @@ public class NMSRelighter implements Relighter { Direction otherDir = getStairDir(state); String otherShape = getStairShape(state); boolean b1 = - (otherDir == Direction.SOUTH && !otherShape.equals("outer_right")) || (otherDir == Direction.WEST && otherShape.equals("inner_left")); + (otherDir == Direction.SOUTH && !otherShape.equals("outer_right")) || (otherDir == Direction.WEST && otherShape + .equals("inner_left")); boolean b2 = - (otherDir == Direction.NORTH && !otherShape.equals("outer_left")) || (otherDir == Direction.WEST && otherShape.equals("inner_right")); + (otherDir == Direction.NORTH && !otherShape.equals("outer_left")) || (otherDir == Direction.WEST && otherShape + .equals("inner_right")); switch (direction) { case WEST: if (shape.equals("outer_right") && b1) { @@ -424,7 +490,7 @@ public class NMSRelighter implements Relighter { { // Block South if (direction != Direction.NORTH && !((direction == Direction.WEST && !shape.equals("inner_left")) || (direction == Direction.EAST - && !shape.equals("inner_right")) || (direction == Direction.SOUTH && shape.contains("outer")))) { + && !shape.equals("inner_right")) || (direction == Direction.SOUTH && shape.contains("outer")))) { break south; } BlockState state = this.queue.getBlock(x, y, z + 1); @@ -438,9 +504,11 @@ public class NMSRelighter implements Relighter { Direction otherDir = getStairDir(state); String otherShape = getStairShape(state); boolean b1 = - (otherDir == Direction.EAST && !otherShape.equals("outer_right")) || (otherDir == Direction.SOUTH && otherShape.equals("inner_left")); + (otherDir == Direction.EAST && !otherShape.equals("outer_right")) || (otherDir == Direction.SOUTH && otherShape + .equals("inner_left")); boolean b2 = - (otherDir == Direction.WEST && !otherShape.equals("outer_left")) || (otherDir == Direction.SOUTH && otherShape.equals("inner_right")); + (otherDir == Direction.WEST && !otherShape.equals("outer_left")) || (otherDir == Direction.SOUTH && otherShape + .equals("inner_right")); switch (direction) { case SOUTH: if (shape.equals("outer_right") && b1) { @@ -475,7 +543,7 @@ public class NMSRelighter implements Relighter { { // Block North if (direction != Direction.SOUTH && !((direction == Direction.EAST && !shape.equals("inner_left")) || (direction == Direction.WEST - && !shape.equals("inner_right")) || (direction == Direction.NORTH && shape.contains("outer")))) { + && !shape.equals("inner_right")) || (direction == Direction.NORTH && shape.contains("outer")))) { break north; } BlockState state = this.queue.getBlock(x, y, z - 1); @@ -489,9 +557,11 @@ public class NMSRelighter implements Relighter { Direction otherDir = getStairDir(state); String otherShape = getStairShape(state); boolean b1 = - (otherDir == Direction.WEST && !otherShape.equals("outer_right")) || (otherDir == Direction.NORTH && otherShape.equals("inner_left")); + (otherDir == Direction.WEST && !otherShape.equals("outer_right")) || (otherDir == Direction.NORTH && otherShape + .equals("inner_left")); boolean b2 = - (otherDir == Direction.EAST && !otherShape.equals("outer_left")) || (otherDir == Direction.NORTH && otherShape.equals("inner_right")); + (otherDir == Direction.EAST && !otherShape.equals("outer_left")) || (otherDir == Direction.NORTH && otherShape + .equals("inner_right")); switch (direction) { case NORTH: if (shape.equals("outer_right") && b1) { @@ -526,13 +596,15 @@ public class NMSRelighter implements Relighter { } - private void computeSlab(int x, - int y, - int z, - int currentLight, - Queue queue, - Map visited, - boolean top) { + private void computeSlab( + int x, + int y, + int z, + int currentLight, + Queue queue, + Map visited, + boolean top + ) { { // Block East BlockState state = this.queue.getBlock(x + 1, y, z); @@ -564,13 +636,15 @@ public class NMSRelighter implements Relighter { computeUpDown(x, y, z, currentLight, queue, visited, top); } - private void computeUpDown(int x, - int y, - int z, - int currentLight, - Queue queue, - Map visited, - boolean top) { + private void computeUpDown( + int x, + int y, + int z, + int currentLight, + Queue queue, + Map visited, + boolean top + ) { BlockState state = this.queue.getBlock(x, y - 1, z); if (y > 0 && top && isSlabOrTrueValue(state, "bottom") && isStairOrTrueTop(state, false)) { this.computeSpreadBlockLight(x, y - 1, z, currentLight, queue, visited); @@ -581,7 +655,14 @@ public class NMSRelighter implements Relighter { } } - private void computeNormal(int x, int y, int z, int currentLight, Queue queue, Map visited) { + private void computeNormal( + int x, + int y, + int z, + int currentLight, + Queue queue, + Map visited + ) { { // Block East BlockState state = this.queue.getBlock(x + 1, y, z); @@ -708,14 +789,16 @@ public class NMSRelighter implements Relighter { return !state.getBlockType().getId().contains("slab") || state.getState(slabHalf).equals(value); } - private void computeRemoveBlockLight(int x, - int y, - int z, - int currentLight, - Queue queue, - Queue spreadQueue, - Map visited, - Map spreadVisited) { + private void computeRemoveBlockLight( + int x, + int y, + int z, + int currentLight, + Queue queue, + Queue spreadQueue, + Map visited, + Map spreadVisited + ) { ChunkHolder iChunk = (ChunkHolder) this.queue.getOrCreateChunk(x >> 4, z >> 4); if (!iChunk.isInit()) { iChunk.init(this.queue, x >> 4, z >> 4); @@ -727,7 +810,7 @@ public class NMSRelighter implements Relighter { if (!visited.containsKey(mutableBlockPos)) { MutableBlockVector3 index = new MutableBlockVector3(x, y, z); visited.put(index, present); - queue.add(new Object[] {index, current}); + queue.add(new Object[]{index, current}); } } } else if (current >= currentLight) { @@ -740,12 +823,14 @@ public class NMSRelighter implements Relighter { } } - private void computeSpreadBlockLight(int x, - int y, - int z, - int currentLight, - Queue queue, - Map visited) { + private void computeSpreadBlockLight( + int x, + int y, + int z, + int currentLight, + Queue queue, + Map visited + ) { BlockMaterial material = this.queue.getBlock(x, y, z).getMaterial(); boolean solidNeedsLight = (!material.isSolid() || !material.isFullCube()) && material.getLightOpacity() > 0 && material.getLightValue() == 0; currentLight = !solidNeedsLight ? currentLight - Math.max(1, material.getLightOpacity()) : currentLight - 1; @@ -935,7 +1020,7 @@ public class NMSRelighter implements Relighter { int x = chunk.x; int z = chunk.z; if (tmpSet.contains(x + 1, 0, z) && tmpSet.contains(x - 1, 0, z) && tmpSet.contains(x, 0, z + 1) && tmpSet - .contains(x, 0, z - 1)) { + .contains(x, 0, z - 1)) { chunkSet.add(x, 0, z); } } @@ -997,7 +1082,10 @@ public class NMSRelighter implements Relighter { case 14: if (opacity >= value) { mask[j] = 0; - if (!isStairOrTrueTop(state, true) || !(isSlabOrTrueValue(state, "top") || isSlabOrTrueValue(state, "double"))) { + if (!isStairOrTrueTop(state, true) || !(isSlabOrTrueValue( + state, + "top" + ) || isSlabOrTrueValue(state, "double"))) { iChunk.setSkyLight(x, y, z, value); } else { iChunk.setSkyLight(x, y, z, 0); @@ -1015,7 +1103,10 @@ public class NMSRelighter implements Relighter { value -= opacity; mask[j] = value; } - if (!isStairOrTrueTop(state, true) || !(isSlabOrTrueValue(state, "top") || isSlabOrTrueValue(state, "double"))) { + if (!isStairOrTrueTop(state, true) || !(isSlabOrTrueValue(state, "top") || isSlabOrTrueValue( + state, + "double" + ))) { iChunk.setSkyLight(x, y, z, value + opacity); } else { iChunk.setSkyLight(x, y, z, value); @@ -1144,6 +1235,7 @@ public class NMSRelighter implements Relighter { } private class RelightSkyEntry implements Comparable { + public final int x; public final int z; public final byte[] mask; @@ -1166,11 +1258,13 @@ public class NMSRelighter implements Relighter { } } - @Override public String toString() { + @Override + public String toString() { return x + "," + z; } - @Override public int compareTo(RelightSkyEntry o) { + @Override + public int compareTo(RelightSkyEntry o) { if (o.x < x) { return 1; } @@ -1185,5 +1279,7 @@ public class NMSRelighter implements Relighter { } return 0; } + } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/lighting/NullRelighter.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/lighting/NullRelighter.java index 63ebe2f44..23ed598fc 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/lighting/NullRelighter.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/lighting/NullRelighter.java @@ -63,4 +63,5 @@ public class NullRelighter implements Relighter { public void close() throws Exception { } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/lighting/RelightProcessor.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/lighting/RelightProcessor.java index 0dfe54529..57af21a1a 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/lighting/RelightProcessor.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/lighting/RelightProcessor.java @@ -1,14 +1,14 @@ package com.fastasyncworldedit.core.extent.processor.lighting; +import com.fastasyncworldedit.core.configuration.Settings; +import com.fastasyncworldedit.core.extent.processor.ProcessorScope; import com.fastasyncworldedit.core.queue.IBatchProcessor; import com.fastasyncworldedit.core.queue.IChunk; import com.fastasyncworldedit.core.queue.IChunkGet; import com.fastasyncworldedit.core.queue.IChunkSet; -import com.fastasyncworldedit.core.extent.processor.ProcessorScope; -import com.fastasyncworldedit.core.configuration.Settings; import com.sk89q.worldedit.extent.Extent; -import javax.annotation.Nullable; +import javax.annotation.Nullable; import java.util.concurrent.CompletableFuture; import java.util.concurrent.Future; @@ -51,7 +51,8 @@ public class RelightProcessor implements IBatchProcessor { } @Override - public @Nullable Extent construct(Extent child) { + public @Nullable + Extent construct(Extent child) { throw new UnsupportedOperationException("Processing only"); } @@ -59,4 +60,5 @@ public class RelightProcessor implements IBatchProcessor { public ProcessorScope getScope() { return ProcessorScope.READING_SET_BLOCKS; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/lighting/Relighter.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/lighting/Relighter.java index 9ee72350e..914a75149 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/lighting/Relighter.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/lighting/Relighter.java @@ -7,10 +7,10 @@ public interface Relighter extends AutoCloseable { /** * Add a chunk to be relit when {@link Relighter#removeLighting} etc are called. * - * @param cx chunk x - * @param cz chunk z + * @param cx chunk x + * @param cz chunk z * @param skipReason byte array of {@link SkipReason} for each chunksection in the chunk. Use case? No idea. - * @param bitmask Initial bitmask of the chunk (if being edited beforehand) + * @param bitmask Initial bitmask of the chunk (if being edited beforehand) * @return Was the chunk added */ boolean addChunk(int cx, int cz, byte[] skipReason, int bitmask); @@ -78,8 +78,11 @@ public interface Relighter extends AutoCloseable { boolean isFinished(); class SkipReason { + public static final byte NONE = 0; public static final byte AIR = 1; public static final byte SOLID = 2; + } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/lighting/RelighterFactory.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/lighting/RelighterFactory.java index 1bfb2fc4e..34275f77d 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/lighting/RelighterFactory.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/processor/lighting/RelighterFactory.java @@ -3,6 +3,7 @@ package com.fastasyncworldedit.core.extent.processor.lighting; import com.fastasyncworldedit.core.queue.IQueueChunk; import com.fastasyncworldedit.core.queue.IQueueExtent; import com.sk89q.worldedit.world.World; + import javax.annotation.Nonnull; /** @@ -19,10 +20,11 @@ public interface RelighterFactory { * If no valid Relighter can be created, {@link NullRelighter#INSTANCE} should be returned. * * @param relightMode the relight mode to use during relighting. - * @param world the world in which relighting should be done. - * @param queue the queue extent to work with. + * @param world the world in which relighting should be done. + * @param queue the queue extent to work with. * @return a new Relighter instance with the specified settings. */ @Nonnull Relighter createRelighter(RelightMode relightMode, World world, IQueueExtent queue); + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/transform/Linear3DTransform.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/transform/Linear3DTransform.java index d8b7db502..89d3d007e 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/transform/Linear3DTransform.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/transform/Linear3DTransform.java @@ -33,4 +33,5 @@ public class Linear3DTransform extends SelectTransform { public AbstractDelegateExtent getExtent(int x, int z) { return getExtent(x, 0, z); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/transform/LinearTransform.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/transform/LinearTransform.java index 5a469dc5d..7a254e6ce 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/transform/LinearTransform.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/transform/LinearTransform.java @@ -33,4 +33,5 @@ public class LinearTransform extends SelectTransform { public AbstractDelegateExtent getExtent(int x, int z) { return getExtent(x, 0, z); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/transform/MultiTransform.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/transform/MultiTransform.java index 4a63b9a86..0cf64e3f4 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/transform/MultiTransform.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/transform/MultiTransform.java @@ -10,8 +10,8 @@ import com.sk89q.worldedit.util.Location; import com.sk89q.worldedit.world.biome.BiomeType; import com.sk89q.worldedit.world.block.BlockStateHolder; -import java.util.Collection; import javax.annotation.Nullable; +import java.util.Collection; public class MultiTransform extends RandomTransform { @@ -35,7 +35,7 @@ public class MultiTransform extends RandomTransform { @Override public > boolean setBlock(int x, int y, int z, T block) - throws WorldEditException { + throws WorldEditException { // don't use streams for each block place, it'd be incredibly slow boolean result = false; for (AbstractDelegateExtent extent : extents) { @@ -46,7 +46,7 @@ public class MultiTransform extends RandomTransform { @Override public > boolean setBlock(BlockVector3 location, T block) - throws WorldEditException { + throws WorldEditException { // don't use streams for each block place, it'd be incredibly slow boolean result = false; for (AbstractDelegateExtent extent : extents) { @@ -74,4 +74,5 @@ public class MultiTransform extends RandomTransform { } return created; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/transform/PatternTransform.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/transform/PatternTransform.java index 746cf8323..332e0ffbf 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/transform/PatternTransform.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/transform/PatternTransform.java @@ -18,7 +18,8 @@ public class PatternTransform extends ResettableExtent { @Override public > boolean setBlock(BlockVector3 location, B block) - throws WorldEditException { + throws WorldEditException { return pattern.apply(getExtent(), location, location); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/transform/RandomTransform.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/transform/RandomTransform.java index 58b41ede7..9518d7dee 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/transform/RandomTransform.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/transform/RandomTransform.java @@ -1,9 +1,9 @@ package com.fastasyncworldedit.core.extent.transform; import com.fastasyncworldedit.core.extent.ResettableExtent; -import com.fastasyncworldedit.core.util.collection.RandomCollection; import com.fastasyncworldedit.core.math.random.SimpleRandom; import com.fastasyncworldedit.core.math.random.TrueRandom; +import com.fastasyncworldedit.core.util.collection.RandomCollection; import com.sk89q.worldedit.extent.AbstractDelegateExtent; import com.sk89q.worldedit.extent.Extent; @@ -19,8 +19,8 @@ import static com.google.common.base.Preconditions.checkNotNull; */ public class RandomTransform extends SelectTransform { - private SimpleRandom random; - private Map weights = new HashMap<>(); + private final SimpleRandom random; + private final Map weights = new HashMap<>(); private transient RandomCollection collection; private transient LinkedHashSet extents = new LinkedHashSet<>(); @@ -50,7 +50,7 @@ public class RandomTransform extends SelectTransform { extents = new LinkedHashSet<>(weights.keySet()); } for (ResettableExtent current : extents) { - current.setExtent(extent); + current.setExtent(extent); } return this; } @@ -78,4 +78,5 @@ public class RandomTransform extends SelectTransform { public RandomCollection getCollection() { return collection; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/transform/ScaleTransform.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/transform/ScaleTransform.java index b38e064de..c246fd9ce 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/transform/ScaleTransform.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/transform/ScaleTransform.java @@ -1,12 +1,12 @@ package com.fastasyncworldedit.core.extent.transform; import com.fastasyncworldedit.core.extent.ResettableExtent; +import com.fastasyncworldedit.core.math.MutableBlockVector3; import com.sk89q.worldedit.WorldEditException; import com.sk89q.worldedit.entity.BaseEntity; import com.sk89q.worldedit.entity.Entity; import com.sk89q.worldedit.extent.Extent; import com.sk89q.worldedit.math.BlockVector3; -import com.fastasyncworldedit.core.math.MutableBlockVector3; import com.sk89q.worldedit.util.Location; import com.sk89q.worldedit.world.biome.BiomeType; import com.sk89q.worldedit.world.block.BlockStateHolder; @@ -62,7 +62,7 @@ public class ScaleTransform extends ResettableExtent { @Override public > boolean setBlock(BlockVector3 location, B block) - throws WorldEditException { + throws WorldEditException { boolean result = false; MutableBlockVector3 pos = new MutableBlockVector3(getPos(location)); double sx = pos.getX(); @@ -103,7 +103,7 @@ public class ScaleTransform extends ResettableExtent { @Override public > boolean setBlock(int x1, int y1, int z1, B block) - throws WorldEditException { + throws WorldEditException { boolean result = false; MutableBlockVector3 pos = new MutableBlockVector3(getPos(x1, y1, z1)); double sx = pos.getX(); @@ -126,8 +126,10 @@ public class ScaleTransform extends ResettableExtent { @Override public Entity createEntity(Location location, BaseEntity entity) { Location newLoc = new Location(location.getExtent(), - getPos(location.getBlockX(), location.getBlockY(), location.getBlockZ()).toVector3(), - location.getYaw(), location.getPitch()); + getPos(location.getBlockX(), location.getBlockY(), location.getBlockZ()).toVector3(), + location.getYaw(), location.getPitch() + ); return super.createEntity(newLoc, entity); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/transform/SelectTransform.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/transform/SelectTransform.java index 3686502fe..1c1a95d03 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/transform/SelectTransform.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/extent/transform/SelectTransform.java @@ -35,13 +35,13 @@ public abstract class SelectTransform extends ResettableExtent { @Override public > boolean setBlock(int x, int y, int z, T block) - throws WorldEditException { + throws WorldEditException { return getExtent(x, y, z).setBlock(x, y, z, block); } @Override public > boolean setBlock(BlockVector3 position, T block) - throws WorldEditException { + throws WorldEditException { return getExtent(position).setBlock(position, block); } @@ -49,11 +49,12 @@ public abstract class SelectTransform extends ResettableExtent { @Override public Entity createEntity(Location position, BaseEntity entity) { return getExtent(position.getBlockX(), position.getBlockY(), position.getBlockZ()) - .createEntity(position, entity); + .createEntity(position, entity); } @Override public boolean setBiome(BlockVector3 position, BiomeType biome) { return getExtent(position).setBiome(position, biome); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/NullRegionFunction.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/NullRegionFunction.java index 1df94ed7e..08b71b778 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/NullRegionFunction.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/NullRegionFunction.java @@ -5,8 +5,10 @@ import com.sk89q.worldedit.function.RegionFunction; import com.sk89q.worldedit.math.BlockVector3; public class NullRegionFunction implements RegionFunction { + @Override public boolean apply(BlockVector3 position) throws WorldEditException { return false; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/QuadFunction.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/QuadFunction.java index 4c1e3bb0f..fce4def35 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/QuadFunction.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/QuadFunction.java @@ -2,5 +2,7 @@ package com.fastasyncworldedit.core.function; @FunctionalInterface public interface QuadFunction { + R apply(T t, U u, V v, W w); -} \ No newline at end of file + +} diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/RegionMaskTestFunction.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/RegionMaskTestFunction.java index 629597463..48c429be0 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/RegionMaskTestFunction.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/RegionMaskTestFunction.java @@ -21,7 +21,7 @@ public class RegionMaskTestFunction implements RegionFunction { /** * Create a new masking filter. * - * @param mask the mask + * @param mask the mask * @param failure the function */ public RegionMaskTestFunction(Mask mask, RegionFunction success, RegionFunction failure) { diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/SurfaceRegionFunction.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/SurfaceRegionFunction.java index fce9734c3..5f946c933 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/SurfaceRegionFunction.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/SurfaceRegionFunction.java @@ -1,19 +1,20 @@ package com.fastasyncworldedit.core.function; +import com.fastasyncworldedit.core.math.MutableBlockVector3; import com.sk89q.worldedit.WorldEditException; import com.sk89q.worldedit.extent.Extent; import com.sk89q.worldedit.function.FlatRegionFunction; import com.sk89q.worldedit.function.RegionFunction; import com.sk89q.worldedit.math.BlockVector2; -import com.fastasyncworldedit.core.math.MutableBlockVector3; public class SurfaceRegionFunction implements FlatRegionFunction { + private final Extent extent; private final RegionFunction function; private final int minY; private final int maxY; private int lastY; - private MutableBlockVector3 mutable = new MutableBlockVector3(); + private final MutableBlockVector3 mutable = new MutableBlockVector3(); public SurfaceRegionFunction(Extent extent, RegionFunction function, int minY, int maxY) { this.extent = extent; @@ -34,4 +35,5 @@ public class SurfaceRegionFunction implements FlatRegionFunction { } return false; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/block/BiomeCopy.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/block/BiomeCopy.java index 31d9b5e86..3926c19a6 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/block/BiomeCopy.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/block/BiomeCopy.java @@ -1,10 +1,10 @@ package com.fastasyncworldedit.core.function.block; +import com.fastasyncworldedit.core.math.MutableBlockVector3; import com.sk89q.worldedit.WorldEditException; import com.sk89q.worldedit.extent.Extent; import com.sk89q.worldedit.function.RegionFunction; import com.sk89q.worldedit.math.BlockVector3; -import com.fastasyncworldedit.core.math.MutableBlockVector3; public class BiomeCopy implements RegionFunction { @@ -25,10 +25,11 @@ public class BiomeCopy implements RegionFunction { int y = position.getBlockY(); int z = position.getBlockZ(); if (x != mutableVector.getBlockX() || z != mutableVector.getBlockZ() || y != mutableVector - .getBlockY()) { + .getBlockY()) { mutableVector.setComponents(x, y, z); return destination.setBiome(mutableVector, source.getBiome(mutableVector)); } return false; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/block/CombinedBlockCopy.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/block/CombinedBlockCopy.java index 995c33080..1f9070580 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/block/CombinedBlockCopy.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/block/CombinedBlockCopy.java @@ -25,4 +25,5 @@ public class CombinedBlockCopy implements RegionFunction { function.apply(position); return destination.setBlock(position, block); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/block/SimpleBlockCopy.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/block/SimpleBlockCopy.java index 10ce56173..dff7593f2 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/block/SimpleBlockCopy.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/block/SimpleBlockCopy.java @@ -19,4 +19,5 @@ public class SimpleBlockCopy implements RegionFunction { public boolean apply(BlockVector3 position) throws WorldEditException { return destination.setBlock(position, source.getFullBlock(position)); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/generator/CavesGen.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/generator/CavesGen.java index 325a33143..374895bd2 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/generator/CavesGen.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/generator/CavesGen.java @@ -1,10 +1,10 @@ package com.fastasyncworldedit.core.function.generator; import com.fastasyncworldedit.core.util.MathMan; +import com.fastasyncworldedit.core.world.block.BlockID; import com.sk89q.worldedit.WorldEditException; import com.sk89q.worldedit.extent.Extent; import com.sk89q.worldedit.math.BlockVector2; -import com.fastasyncworldedit.core.world.block.BlockID; import com.sk89q.worldedit.world.block.BlockState; import com.sk89q.worldedit.world.block.BlockStateHolder; import com.sk89q.worldedit.world.block.BlockType; @@ -14,7 +14,7 @@ import java.util.concurrent.ThreadLocalRandom; public class CavesGen extends GenBase { - private boolean evenCaveDistribution = false; + private final boolean evenCaveDistribution = false; private int caveFrequency = 40; private int caveRarity = 7; private int caveMinAltitude = 8; @@ -29,7 +29,18 @@ public class CavesGen extends GenBase { super(caveSize); } - public CavesGen(int caveSize, int caveFrequency, int caveRarity, int caveMinAltitude, int caveMaxAltitude, int caveSystemFrequency, int individualCaveRarity, int caveSystemPocketChance, int caveSystemPocketMinSize, int caveSystemPocketMaxSize) { + public CavesGen( + int caveSize, + int caveFrequency, + int caveRarity, + int caveMinAltitude, + int caveMaxAltitude, + int caveSystemFrequency, + int individualCaveRarity, + int caveSystemPocketChance, + int caveSystemPocketMinSize, + int caveSystemPocketMaxSize + ) { super(caveSize); this.caveFrequency = caveFrequency; this.caveRarity = caveRarity; @@ -42,12 +53,26 @@ public class CavesGen extends GenBase { this.caveSystemPocketMaxSize = caveSystemPocketMaxSize; } - protected void generateLargeCaveNode(long seed, BlockVector2 pos, Extent chunk, double x, double y, double z) throws WorldEditException { + protected void generateLargeCaveNode(long seed, BlockVector2 pos, Extent chunk, double x, double y, double z) throws + WorldEditException { generateCaveNode(seed, pos, chunk, x, y, z, 1.0F + ThreadLocalRandom.current().nextDouble() - * 6.0F, 0.0F, 0.0F, -1, -1, 0.5D); + * 6.0F, 0.0F, 0.0F, -1, -1, 0.5D); } - protected void generateCaveNode(long seed, BlockVector2 chunkPos, Extent chunk, double x, double y, double z, double paramdouble1, double paramdouble2, double paramdouble3, int angle, int maxAngle, double paramDouble4) throws WorldEditException { + protected void generateCaveNode( + long seed, + BlockVector2 chunkPos, + Extent chunk, + double x, + double y, + double z, + double paramdouble1, + double paramdouble2, + double paramdouble3, + int angle, + int maxAngle, + double paramDouble4 + ) throws WorldEditException { int bx = chunkPos.getBlockX() << 4; int bz = chunkPos.getBlockZ() << 4; double real_x = bx + 7; @@ -91,15 +116,41 @@ public class CavesGen extends GenBase { f2 *= 0.9F; f1 *= 0.75F; f2 += (ThreadLocalRandom.current().nextDouble() - ThreadLocalRandom.current() - .nextDouble()) * ThreadLocalRandom.current().nextDouble() * 2.0F; + .nextDouble()) * ThreadLocalRandom.current().nextDouble() * 2.0F; f1 += (ThreadLocalRandom.current().nextDouble() - ThreadLocalRandom.current() - .nextDouble()) * ThreadLocalRandom.current().nextDouble() * 4.0F; + .nextDouble()) * ThreadLocalRandom.current().nextDouble() * 4.0F; if (!isLargeCave && angle == j && paramdouble1 > 1.0F && maxAngle > 0) { - generateCaveNode(ThreadLocalRandom.current().nextLong(), chunkPos, chunk, x, y, z, ThreadLocalRandom - .current().nextDouble() * 0.5F + 0.5F, paramdouble2 - (Math.PI/2), paramdouble3 / 3.0F, angle, maxAngle, 1.0D); - generateCaveNode(ThreadLocalRandom.current().nextLong(), chunkPos, chunk, x, y, z, ThreadLocalRandom - .current().nextDouble() * 0.5F + 0.5F, paramdouble2 + (Math.PI/2), paramdouble3 / 3.0F, angle, maxAngle, 1.0D); + generateCaveNode( + ThreadLocalRandom.current().nextLong(), + chunkPos, + chunk, + x, + y, + z, + ThreadLocalRandom + .current().nextDouble() * 0.5F + 0.5F, + paramdouble2 - (Math.PI / 2), + paramdouble3 / 3.0F, + angle, + maxAngle, + 1.0D + ); + generateCaveNode( + ThreadLocalRandom.current().nextLong(), + chunkPos, + chunk, + x, + y, + z, + ThreadLocalRandom + .current().nextDouble() * 0.5F + 0.5F, + paramdouble2 + (Math.PI / 2), + paramdouble3 / 3.0F, + angle, + maxAngle, + 1.0D + ); return; } if (!isLargeCave && ThreadLocalRandom.current().nextInt(4) == 0) { @@ -117,7 +168,7 @@ public class CavesGen extends GenBase { //Boundaries check. if (x < real_x - 16.0D - d3 * 2.0D || z < real_z - 16.0D - d3 * 2.0D - || x > real_x + 16.0D + d3 * 2.0D || z > real_z + 16.0D + d3 * 2.0D) { + || x > real_x + 16.0D + d3 * 2.0D || z > real_z + 16.0D + d3 * 2.0D) { continue; } @@ -162,7 +213,7 @@ public class CavesGen extends GenBase { waterFound = true; } if (local_y != i1 - 1 && local_x != m && local_x != n - 1 && local_z != i3 - && local_z != i4 - 1) { + && local_z != i4 - 1) { local_y = i1; } } @@ -196,14 +247,24 @@ public class CavesGen extends GenBase { if (local_y - 1 < 10) { chunk.setBlock(bx + local_x, local_y, bz + local_z, BlockTypes.LAVA.getDefaultState()); } else { - chunk.setBlock(bx + local_x, local_y, bz + local_z, BlockTypes.CAVE_AIR.getDefaultState()); + chunk.setBlock( + bx + local_x, + local_y, + bz + local_z, + BlockTypes.CAVE_AIR.getDefaultState() + ); // If grass was just deleted, try to // move it down if (grassFound) { BlockState block = chunk.getBlock(bx + local_x, local_y - 1, bz + local_z); if (block.getBlockType() == BlockTypes.DIRT) { - chunk.setBlock(bx + local_x, local_y - 1, bz + local_z, BlockTypes.STONE.getDefaultState()); + chunk.setBlock( + bx + local_x, + local_y - 1, + bz + local_z, + BlockTypes.STONE.getDefaultState() + ); } } } @@ -236,7 +297,7 @@ public class CavesGen extends GenBase { @Override public void generateChunk(int chunkX, int chunkZ, BlockVector2 originChunk, Extent chunk) throws WorldEditException { int i = ThreadLocalRandom.current().nextInt(ThreadLocalRandom.current() - .nextInt(ThreadLocalRandom.current().nextInt(this.caveFrequency) + 1) + 1); + .nextInt(ThreadLocalRandom.current().nextInt(this.caveFrequency) + 1) + 1); if (this.evenCaveDistribution) { i = this.caveFrequency; } @@ -253,8 +314,8 @@ public class CavesGen extends GenBase { y = ThreadLocalRandom.current().nextInt(this.caveMinAltitude, this.caveMaxAltitude); } else { y = ThreadLocalRandom.current() - .nextInt(ThreadLocalRandom.current() - .nextInt(this.caveMaxAltitude - this.caveMinAltitude + 1) + 1) + this.caveMinAltitude; + .nextInt(ThreadLocalRandom.current() + .nextInt(this.caveMaxAltitude - this.caveMinAltitude + 1) + 1) + this.caveMinAltitude; } double z = (chunkZ << 4) + ThreadLocalRandom.current().nextInt(16); @@ -267,18 +328,19 @@ public class CavesGen extends GenBase { } if (largeCaveSpawned || ThreadLocalRandom.current().nextInt(100) - <= this.caveSystemPocketChance - 1) { + <= this.caveSystemPocketChance - 1) { count += ThreadLocalRandom.current() - .nextInt(this.caveSystemPocketMinSize, this.caveSystemPocketMaxSize); + .nextInt(this.caveSystemPocketMinSize, this.caveSystemPocketMaxSize); } while (count > 0) { count--; double f1 = ThreadLocalRandom.current().nextDouble() * Math.PI * 2.0F; double f2 = (ThreadLocalRandom.current().nextDouble() - 0.5F) * 2.0F / 8.0F; double f3 = ThreadLocalRandom.current().nextDouble() * 2.0F + ThreadLocalRandom - .current().nextDouble(); + .current().nextDouble(); generateCaveNode(ThreadLocalRandom.current().nextLong(), originChunk, chunk, x, y, z, f3, f1, f2, 0, 0, 1.0D); } } } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/generator/GenBase.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/generator/GenBase.java index ef55c0550..af1a4e66e 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/generator/GenBase.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/generator/GenBase.java @@ -36,4 +36,5 @@ public abstract class GenBase { } public abstract void generateChunk(int x, int z, BlockVector2 originChunk, Extent chunk) throws WorldEditException; + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/generator/OreGen.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/generator/OreGen.java index 924453513..3ac9a9726 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/generator/OreGen.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/generator/OreGen.java @@ -1,15 +1,16 @@ package com.fastasyncworldedit.core.function.generator; +import com.fastasyncworldedit.core.math.MutableBlockVector3; import com.fastasyncworldedit.core.util.MathMan; import com.sk89q.worldedit.WorldEditException; import com.sk89q.worldedit.extent.Extent; import com.sk89q.worldedit.function.mask.Mask; import com.sk89q.worldedit.function.pattern.Pattern; -import com.fastasyncworldedit.core.math.MutableBlockVector3; import java.util.Random; public class OreGen implements Resource { + private final int maxSize; private final double maxSizeO8; private final double maxSizeO16; @@ -19,7 +20,7 @@ public class OreGen implements Resource { private final Pattern pattern; private final Extent extent; private final Mask mask; - private MutableBlockVector3 mutable = new MutableBlockVector3(); + private final MutableBlockVector3 mutable = new MutableBlockVector3(); private final double ONE_2 = 1 / 2F; private final double ONE_8 = 1 / 8F; @@ -114,4 +115,5 @@ public class OreGen implements Resource { } return true; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/generator/Resource.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/generator/Resource.java index 9e7c15cba..47c29f188 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/generator/Resource.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/generator/Resource.java @@ -7,4 +7,5 @@ import java.util.Random; public interface Resource { boolean spawn(Random random, int x, int z) throws WorldEditException; + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/generator/SchemGen.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/generator/SchemGen.java index 7f6c1fdf8..cba37c0f2 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/generator/SchemGen.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/generator/SchemGen.java @@ -1,10 +1,10 @@ package com.fastasyncworldedit.core.function.generator; +import com.fastasyncworldedit.core.math.MutableBlockVector3; import com.sk89q.worldedit.WorldEditException; import com.sk89q.worldedit.extent.Extent; import com.sk89q.worldedit.extent.clipboard.Clipboard; import com.sk89q.worldedit.function.mask.Mask; -import com.fastasyncworldedit.core.math.MutableBlockVector3; import com.sk89q.worldedit.math.transform.AffineTransform; import com.sk89q.worldedit.math.transform.Transform; import com.sk89q.worldedit.session.ClipboardHolder; @@ -56,4 +56,5 @@ public class SchemGen implements Resource { mutable.mutY(y); return true; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/ABlockMask.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/ABlockMask.java index 8761538fd..48593a6e0 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/ABlockMask.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/ABlockMask.java @@ -14,21 +14,25 @@ import java.util.ArrayList; import java.util.List; public abstract class ABlockMask extends AbstractExtentMask { + public ABlockMask(Extent extent) { super(extent); } - @Override public boolean test(Extent extent, BlockVector3 vector) { + @Override + public boolean test(Extent extent, BlockVector3 vector) { return test(extent.getBlock(vector)); } - @Override public boolean test(BlockVector3 vector) { + @Override + public boolean test(BlockVector3 vector) { return test(getExtent().getBlock(vector)); } public abstract boolean test(BlockState state); - @Override public String toString() { + @Override + public String toString() { List strings = new ArrayList<>(); for (BlockType type : BlockTypesCache.values) { if (type != null) { @@ -49,7 +53,8 @@ public abstract class ABlockMask extends AbstractExtentMask { return StringMan.join(strings, ","); } - @Override public Mask tryCombine(Mask mask) { + @Override + public Mask tryCombine(Mask mask) { if (mask instanceof ABlockMask) { ABlockMask other = (ABlockMask) mask; BlockMask newMask = new BlockMask(getExtent()); @@ -69,7 +74,8 @@ public abstract class ABlockMask extends AbstractExtentMask { return null; } - @Override public Mask tryOr(Mask mask) { + @Override + public Mask tryOr(Mask mask) { if (mask instanceof ABlockMask) { ABlockMask other = (ABlockMask) mask; BlockMask newMask = new BlockMask(getExtent()); @@ -88,4 +94,5 @@ public abstract class ABlockMask extends AbstractExtentMask { } return null; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/AdjacentAnyMask.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/AdjacentAnyMask.java index e66f23af1..877890018 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/AdjacentAnyMask.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/AdjacentAnyMask.java @@ -1,9 +1,9 @@ package com.fastasyncworldedit.core.function.mask; +import com.fastasyncworldedit.core.math.MutableBlockVector3; import com.sk89q.worldedit.function.mask.AbstractMask; import com.sk89q.worldedit.function.mask.Mask; import com.sk89q.worldedit.math.BlockVector3; -import com.fastasyncworldedit.core.math.MutableBlockVector3; /** * Just an optimized version of the Adjacent Mask for single adjacency. @@ -57,4 +57,5 @@ public class AdjacentAnyMask extends AbstractMask implements ResettableMask { public Mask copy() { return new AdjacentAnyMask(mask.copy()); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/AdjacentMask.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/AdjacentMask.java index 02366d474..23065ea7b 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/AdjacentMask.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/AdjacentMask.java @@ -1,11 +1,12 @@ package com.fastasyncworldedit.core.function.mask; +import com.fastasyncworldedit.core.math.MutableBlockVector3; import com.sk89q.worldedit.function.mask.AbstractMask; import com.sk89q.worldedit.function.mask.Mask; import com.sk89q.worldedit.math.BlockVector3; -import com.fastasyncworldedit.core.math.MutableBlockVector3; public class AdjacentMask extends AbstractMask { + private final int min; private final int max; private final Mask mask; @@ -65,4 +66,5 @@ public class AdjacentMask extends AbstractMask { public Mask copy() { return new AdjacentMask(mask.copy(), min, max); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/AngleMask.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/AngleMask.java index 80201b021..83b0ada14 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/AngleMask.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/AngleMask.java @@ -1,14 +1,15 @@ package com.fastasyncworldedit.core.function.mask; +import com.fastasyncworldedit.core.math.MutableBlockVector3; import com.sk89q.worldedit.extent.Extent; import com.sk89q.worldedit.function.mask.Mask; import com.sk89q.worldedit.function.mask.SolidBlockMask; import com.sk89q.worldedit.math.BlockVector3; -import com.fastasyncworldedit.core.math.MutableBlockVector3; import java.util.Arrays; public class AngleMask extends SolidBlockMask implements ResettableMask { + public static double ADJACENT_MOD = 0.5; public static double DIAGONAL_MOD = 1 / Math.sqrt(8); @@ -105,10 +106,12 @@ public class AngleMask extends SolidBlockMask implements ResettableMask { * ADJACENT_MOD); slope = Math.max(slope, Math.abs( getHeight(extent, x + distance, y, z + distance) - getHeight(extent, - x - distance, y, z - distance)) * DIAGONAL_MOD); + x - distance, y, z - distance + )) * DIAGONAL_MOD); slope = Math.max(slope, Math.abs( getHeight(extent, x - distance, y, z + distance) - getHeight(extent, - x + distance, y, z - distance)) * DIAGONAL_MOD); + x + distance, y, z - distance + )) * DIAGONAL_MOD); return lastValue = (slope >= min); } else { slope = Math.max(slope, Math.abs( @@ -116,10 +119,12 @@ public class AngleMask extends SolidBlockMask implements ResettableMask { * ADJACENT_MOD); slope = Math.max(slope, Math.abs( getHeight(extent, x + distance, y, z + distance) - getHeight(extent, - x - distance, y, z - distance)) * DIAGONAL_MOD); + x - distance, y, z - distance + )) * DIAGONAL_MOD); slope = Math.max(slope, Math.abs( getHeight(extent, x - distance, y, z + distance) - getHeight(extent, - x + distance, y, z - distance)) * DIAGONAL_MOD); + x + distance, y, z - distance + )) * DIAGONAL_MOD); return lastValue = (slope >= min && slope <= max); } } @@ -143,10 +148,7 @@ public class AngleMask extends SolidBlockMask implements ResettableMask { if (y < 255 && !mask.test(x, y + 1, z)) { return true; } - if (y > 0 && !mask.test(x, y - 1, z)) { - return true; - } - return false; + return y > 0 && !mask.test(x, y - 1, z); } @Override diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/BlockMaskBuilder.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/BlockMaskBuilder.java index e34615451..0a3df374f 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/BlockMaskBuilder.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/BlockMaskBuilder.java @@ -3,6 +3,8 @@ package com.fastasyncworldedit.core.function.mask; import com.fastasyncworldedit.core.command.SuggestInputParseException; import com.fastasyncworldedit.core.configuration.Caption; import com.fastasyncworldedit.core.math.FastBitSet; +import com.fastasyncworldedit.core.registry.state.PropertyKey; +import com.fastasyncworldedit.core.registry.state.PropertyKeySet; import com.fastasyncworldedit.core.util.MutableCharSequence; import com.fastasyncworldedit.core.util.StringMan; import com.sk89q.worldedit.extension.input.InputParseException; @@ -10,8 +12,6 @@ import com.sk89q.worldedit.extent.Extent; import com.sk89q.worldedit.function.mask.BlockMask; import com.sk89q.worldedit.registry.state.AbstractProperty; import com.sk89q.worldedit.registry.state.Property; -import com.fastasyncworldedit.core.registry.state.PropertyKey; -import com.fastasyncworldedit.core.registry.state.PropertyKeySet; import com.sk89q.worldedit.util.formatting.text.TextComponent; import com.sk89q.worldedit.world.block.BlockState; import com.sk89q.worldedit.world.block.BlockStateHolder; @@ -34,6 +34,7 @@ import java.util.function.Predicate; import java.util.stream.Collectors; public class BlockMaskBuilder { + private static final Operator GREATER = (a, b) -> a > b; private static final Operator LESS = (a, b) -> a < b; private static final Operator EQUAL = (a, b) -> a == b; @@ -45,7 +46,9 @@ public class BlockMaskBuilder { private static final long[] ALL = new long[0]; private interface Operator { + boolean test(int left, int right); + } private boolean filterRegex(BlockType blockType, PropertyKey key, String regex) { @@ -159,7 +162,11 @@ public class BlockMaskBuilder { suggest(input, charSequence.toString(), type != null ? Collections.singleton(type) : blockTypeList); } if (operator == null) { - throw new SuggestInputParseException("No operator for " + input, "", () -> Arrays.asList("=", "~", "!", "<", ">", "<=", ">=")); + throw new SuggestInputParseException( + "No operator for " + input, + "", + () -> Arrays.asList("=", "~", "!", "<", ">", "<=", ">=") + ); } boolean filtered = false; if (type != null) { @@ -225,7 +232,11 @@ public class BlockMaskBuilder { if (charSequence.length() > 0 || key == null) { key = PropertyKey.getByName(charSequence); if (key == null) { - suggest(input, charSequence.toString(), type != null ? Collections.singleton(type) : blockTypeList); + suggest( + input, + charSequence.toString(), + type != null ? Collections.singleton(type) : blockTypeList + ); } } last = i + 1; @@ -272,7 +283,7 @@ public class BlockMaskBuilder { ///// end internal ///// - private long[][] bitSets; + private final long[][] bitSets; private boolean[] ordinals; private boolean optimizedStates = true; @@ -370,7 +381,10 @@ public class BlockMaskBuilder { return this; } - public BlockMaskBuilder filter(Predicate typePredicate, BiPredicate, T>> allowed) { + public BlockMaskBuilder filter( + Predicate typePredicate, + BiPredicate, T>> allowed + ) { for (int i = 0; i < bitSets.length; i++) { long[] states = bitSets[i]; if (states == null) { @@ -460,7 +474,10 @@ public class BlockMaskBuilder { return this; } - public BlockMaskBuilder addAll(Predicate typePredicate, BiPredicate, ?>> propPredicate) { + public BlockMaskBuilder addAll( + Predicate typePredicate, + BiPredicate, ?>> propPredicate + ) { for (int i = 0; i < bitSets.length; i++) { long[] states = bitSets[i]; if (states == ALL) { @@ -638,4 +655,5 @@ public class BlockMaskBuilder { public BlockMask build(Extent extent) { return new BlockMask(extent, getOrdinals()); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/CachedMask.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/CachedMask.java index 145a99282..e2fa01756 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/CachedMask.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/CachedMask.java @@ -1,9 +1,9 @@ package com.fastasyncworldedit.core.function.mask; import com.fastasyncworldedit.core.math.LocalBlockVectorSet; +import com.fastasyncworldedit.core.math.MutableBlockVector3; import com.sk89q.worldedit.function.mask.Mask; import com.sk89q.worldedit.math.BlockVector3; -import com.fastasyncworldedit.core.math.MutableBlockVector3; public class CachedMask extends AbstractDelegateMask implements ResettableMask { @@ -75,4 +75,5 @@ public class CachedMask extends AbstractDelegateMask implements ResettableMask { public Mask copy() { return new CachedMask(getMask().copy()); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/DirectionMask.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/DirectionMask.java index e443e7e56..3c2d23e78 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/DirectionMask.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/DirectionMask.java @@ -3,4 +3,5 @@ package com.fastasyncworldedit.core.function.mask; public interface DirectionMask { boolean apply(int fromX, int fromY, int fromZ, int toX, int toY, int toZ); + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/ExtremaMask.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/ExtremaMask.java index 63c43b784..36ee67d61 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/ExtremaMask.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/ExtremaMask.java @@ -4,6 +4,7 @@ import com.sk89q.worldedit.extent.Extent; import com.sk89q.worldedit.function.mask.Mask; public class ExtremaMask extends AngleMask { + public ExtremaMask(Extent extent, double min, double max, boolean overlay, int distance) { super(extent, min, max, overlay, distance); } @@ -83,4 +84,5 @@ public class ExtremaMask extends AngleMask { public Mask copy() { return new ExtremaMask(getExtent(), min, max, overlay, distance); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/IdDataMask.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/IdDataMask.java index 6f3fa6d15..2098c9c26 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/IdDataMask.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/IdDataMask.java @@ -6,6 +6,7 @@ import com.sk89q.worldedit.function.mask.Mask; import com.sk89q.worldedit.math.BlockVector3; public class IdDataMask extends AbstractExtentMask implements ResettableMask { + private transient int combined = -1; public IdDataMask(Extent extent) { diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/ImageBrushMask.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/ImageBrushMask.java index 9c3c80d59..ec31337de 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/ImageBrushMask.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/ImageBrushMask.java @@ -1,13 +1,13 @@ package com.fastasyncworldedit.core.function.mask; import com.fastasyncworldedit.core.command.tool.brush.ImageBrush; +import com.fastasyncworldedit.core.math.MutableVector3; import com.fastasyncworldedit.core.util.TextureUtil; import com.sk89q.worldedit.EditSession; import com.sk89q.worldedit.extent.Extent; import com.sk89q.worldedit.function.mask.AbstractExtentMask; import com.sk89q.worldedit.function.mask.Mask; import com.sk89q.worldedit.math.BlockVector3; -import com.fastasyncworldedit.core.math.MutableVector3; import com.sk89q.worldedit.math.Vector3; import com.sk89q.worldedit.math.transform.Transform; import com.sk89q.worldedit.world.block.BlockType; @@ -27,17 +27,19 @@ public class ImageBrushMask extends AbstractExtentMask { private final EditSession session; private final TextureUtil texture; - public ImageBrushMask(Mask solid, - BlockVector3 center, - Transform transform, - double scale, - double centerImageX, - double centerImageZ, - int width, - int height, - ImageBrush.ColorFunction colorFunction, - EditSession session, - TextureUtil texture) { + public ImageBrushMask( + Mask solid, + BlockVector3 center, + Transform transform, + double scale, + double centerImageX, + double centerImageZ, + int width, + int height, + ImageBrush.ColorFunction colorFunction, + EditSession session, + TextureUtil texture + ) { super(session); this.solid = solid; this.center = center; @@ -101,7 +103,19 @@ public class ImageBrushMask extends AbstractExtentMask { @Override public Mask copy() { - return new ImageBrushMask(solid.copy(), center.toImmutable(), transform, scale, centerImageX, centerImageZ, width, height, colorFunction, - session, texture); + return new ImageBrushMask( + solid.copy(), + center.toImmutable(), + transform, + scale, + centerImageX, + centerImageZ, + width, + height, + colorFunction, + session, + texture + ); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/InverseMask.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/InverseMask.java index 3054bd6c3..ae37592b6 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/InverseMask.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/InverseMask.java @@ -9,6 +9,7 @@ import com.sk89q.worldedit.math.BlockVector3; import javax.annotation.Nullable; public class InverseMask extends AbstractMask { + private final Mask mask; public InverseMask(Mask other) { @@ -45,4 +46,5 @@ public class InverseMask extends AbstractMask { public boolean replacesAir() { return mask.replacesAir(); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/LayerBrushMask.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/LayerBrushMask.java index 43400959d..825039ed0 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/LayerBrushMask.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/LayerBrushMask.java @@ -1,5 +1,6 @@ package com.fastasyncworldedit.core.function.mask; +import com.fastasyncworldedit.core.math.MutableBlockVector3; import com.sk89q.worldedit.EditSession; import com.sk89q.worldedit.extent.Extent; import com.sk89q.worldedit.function.mask.AbstractExtentMask; @@ -7,7 +8,6 @@ import com.sk89q.worldedit.function.mask.Mask; import com.sk89q.worldedit.function.visitor.BreadthFirstSearch; import com.sk89q.worldedit.function.visitor.RecursiveVisitor; import com.sk89q.worldedit.math.BlockVector3; -import com.fastasyncworldedit.core.math.MutableBlockVector3; import com.sk89q.worldedit.world.block.BlockState; public class LayerBrushMask extends AbstractExtentMask { @@ -39,12 +39,21 @@ public class LayerBrushMask extends AbstractExtentMask { BlockState previous = layers[depth - 1]; BlockState previous2 = layers[depth - 2]; for (BlockVector3 dir : BreadthFirstSearch.DEFAULT_DIRECTIONS) { - mutable.setComponents(pos.getBlockX() + dir.getBlockX(), pos.getBlockY() + dir.getBlockY(), pos.getBlockZ() + dir.getBlockZ()); - if (visitor.isVisited(mutable) && editSession.getBlock(mutable.getBlockX(), mutable.getBlockY(), mutable.getBlockZ()) == previous) { + mutable.setComponents( + pos.getBlockX() + dir.getBlockX(), + pos.getBlockY() + dir.getBlockY(), + pos.getBlockZ() + dir.getBlockZ() + ); + if (visitor.isVisited(mutable) && editSession.getBlock( + mutable.getBlockX(), + mutable.getBlockY(), + mutable.getBlockZ() + ) == previous) { mutable.setComponents(pos.getBlockX() + dir.getBlockX() * 2, pos.getBlockY() + dir.getBlockY() * 2, - pos.getBlockZ() + dir.getBlockZ() * 2); + pos.getBlockZ() + dir.getBlockZ() * 2 + ); if (visitor.isVisited(mutable) - && editSession.getBlock(mutable.getBlockX(), mutable.getBlockY(), mutable.getBlockZ()) == previous2) { + && editSession.getBlock(mutable.getBlockX(), mutable.getBlockY(), mutable.getBlockZ()) == previous2) { found = true; break; } else { @@ -63,4 +72,5 @@ public class LayerBrushMask extends AbstractExtentMask { public Mask copy() { return new LayerBrushMask(editSession, visitor, layers.clone(), adjacent.copy()); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/MaskUnion.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/MaskUnion.java index 5a5ca9b23..20bab9bbd 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/MaskUnion.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/MaskUnion.java @@ -6,6 +6,7 @@ import com.sk89q.worldedit.function.mask.MaskIntersection; import com.sk89q.worldedit.function.mask.Masks; import com.sk89q.worldedit.math.BlockVector3; +import javax.annotation.Nullable; import java.util.ArrayList; import java.util.Collection; import java.util.LinkedHashSet; @@ -14,7 +15,6 @@ import java.util.Map.Entry; import java.util.Set; import java.util.function.Function; import java.util.stream.Collectors; -import javax.annotation.Nullable; /** * Combines several masks and requires that one or more masks return true @@ -113,4 +113,5 @@ public class MaskUnion extends MaskIntersection { } return false; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/MaskedTargetBlock.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/MaskedTargetBlock.java index 6e136e9e9..6e7c48291 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/MaskedTargetBlock.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/MaskedTargetBlock.java @@ -7,6 +7,7 @@ import com.sk89q.worldedit.util.TargetBlock; import com.sk89q.worldedit.world.World; public class MaskedTargetBlock extends TargetBlock { + private final Mask mask; private final World world; @@ -37,4 +38,5 @@ public class MaskedTargetBlock extends TargetBlock { Location currentBlock = getCurrentBlock(); return currentBlock != null || !useLastBlock ? currentBlock : lastBlock; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/PlaneMask.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/PlaneMask.java index e668d0a5b..6b8b1e4a1 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/PlaneMask.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/PlaneMask.java @@ -45,10 +45,7 @@ public class PlaneMask extends AbstractMask implements ResettableMask { if (originZ != vector.getBlockZ() && (mode & 4) == 0) { return false; } - if (originY != vector.getBlockY() && (mode & 2) == 0) { - return false; - } - return true; + return originY == vector.getBlockY() || (mode & 2) != 0; } } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/ROCAngleMask.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/ROCAngleMask.java index beb9e799f..efb56f8f4 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/ROCAngleMask.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/ROCAngleMask.java @@ -19,19 +19,22 @@ public class ROCAngleMask extends AngleMask { * ADJACENT_MOD; double tmp = (getHeight(extent, x, y, z + distance) - base - (base - getHeight(extent, x, y, - z - distance))) * ADJACENT_MOD; + z - distance + ))) * ADJACENT_MOD; if (Math.abs(tmp) > Math.abs(slope)) { slope = tmp; } tmp = (getHeight(extent, x + distance, y, z + distance) - base - (base - getHeight(extent, x - distance, y, - z - distance))) * DIAGONAL_MOD; + z - distance + ))) * DIAGONAL_MOD; if (Math.abs(tmp) > Math.abs(slope)) { slope = tmp; } tmp = (getHeight(extent, x - distance, y, z + distance) - base - (base - getHeight(extent, x + distance, y, - z - distance))) * DIAGONAL_MOD; + z - distance + ))) * DIAGONAL_MOD; if (Math.abs(tmp) > Math.abs(slope)) { slope = tmp; } @@ -43,4 +46,5 @@ public class ROCAngleMask extends AngleMask { public Mask copy() { return new ROCAngleMask(getExtent(), min, max, overlay, distance); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/RadiusMask.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/RadiusMask.java index 66746f5f7..473089337 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/RadiusMask.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/RadiusMask.java @@ -42,10 +42,7 @@ public class RadiusMask extends AbstractMask implements ResettableMask { } int dy = pos.getBlockY() - to.getBlockY(); d += dy * dy; - if (d < minSqr || d > maxSqr) { - return false; - } - return true; + return d >= minSqr && d <= maxSqr; } @Override diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/RandomMask.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/RandomMask.java index 5aab4c497..9b865e07c 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/RandomMask.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/RandomMask.java @@ -7,6 +7,7 @@ import com.sk89q.worldedit.math.BlockVector3; import java.util.SplittableRandom; public class RandomMask extends AbstractMask implements ResettableMask { + private transient SplittableRandom random; private final double threshold; @@ -29,4 +30,5 @@ public class RandomMask extends AbstractMask implements ResettableMask { public Mask copy() { return new RandomMask(threshold); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/ResettableMask.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/ResettableMask.java index 05d6bb88a..cb2443839 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/ResettableMask.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/ResettableMask.java @@ -6,4 +6,5 @@ public interface ResettableMask extends Resettable { @Override void reset(); + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/SimplexMask.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/SimplexMask.java index 9dc8fcb21..d337cd61a 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/SimplexMask.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/SimplexMask.java @@ -6,6 +6,7 @@ import com.sk89q.worldedit.function.mask.Mask; import com.sk89q.worldedit.math.BlockVector3; public class SimplexMask extends AbstractMask { + private final double min; private final double max; private final double scale; @@ -27,4 +28,5 @@ public class SimplexMask extends AbstractMask { // The mask is not mutable. There is no need to clone it. return this; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/SingleBlockStateMask.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/SingleBlockStateMask.java index 89c7fa236..c0ea93198 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/SingleBlockStateMask.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/SingleBlockStateMask.java @@ -8,6 +8,7 @@ import com.sk89q.worldedit.math.BlockVector3; import com.sk89q.worldedit.world.block.BlockState; public class SingleBlockStateMask extends ABlockMask { + private final char ordinal; private final boolean isAir; @@ -64,4 +65,5 @@ public class SingleBlockStateMask extends ABlockMask { public Mask copy() { return new SingleBlockStateMask(getExtent(), ordinal, isAir); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/SingleBlockTypeMask.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/SingleBlockTypeMask.java index 30261217b..545d20bda 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/SingleBlockTypeMask.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/SingleBlockTypeMask.java @@ -9,6 +9,7 @@ import com.sk89q.worldedit.world.block.BlockTypes; import com.sk89q.worldedit.world.block.BlockTypesCache; public class SingleBlockTypeMask extends ABlockMask { + private final int internalId; private final boolean isAir; @@ -47,4 +48,5 @@ public class SingleBlockTypeMask extends ABlockMask { public Mask copy() { return new SingleBlockTypeMask(getExtent(), internalId, isAir); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/SplatterBrushMask.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/SplatterBrushMask.java index a85ab448b..250969616 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/SplatterBrushMask.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/SplatterBrushMask.java @@ -16,7 +16,13 @@ public class SplatterBrushMask extends AbstractExtentMask { private final Mask surface; private final LocalBlockVectorSet placed; - public SplatterBrushMask(EditSession editSession, BlockVector3 position, int size2, Mask surface, LocalBlockVectorSet placed) { + public SplatterBrushMask( + EditSession editSession, + BlockVector3 position, + int size2, + Mask surface, + LocalBlockVectorSet placed + ) { super(editSession); this.position = position; this.size2 = size2; @@ -46,4 +52,5 @@ public class SplatterBrushMask extends AbstractExtentMask { // There should not be multiple instances to be thread safe return this; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/StencilBrushMask.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/StencilBrushMask.java index a6cc4edd1..1b4dc618b 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/StencilBrushMask.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/StencilBrushMask.java @@ -1,6 +1,7 @@ package com.fastasyncworldedit.core.function.mask; import com.fastasyncworldedit.core.extent.processor.heightmap.HeightMap; +import com.fastasyncworldedit.core.math.MutableVector3; import com.fastasyncworldedit.core.util.MathMan; import com.sk89q.worldedit.EditSession; import com.sk89q.worldedit.extent.Extent; @@ -8,7 +9,6 @@ import com.sk89q.worldedit.function.mask.AbstractExtentMask; import com.sk89q.worldedit.function.mask.Mask; import com.sk89q.worldedit.function.pattern.Pattern; import com.sk89q.worldedit.math.BlockVector3; -import com.fastasyncworldedit.core.math.MutableVector3; import com.sk89q.worldedit.math.Vector3; import com.sk89q.worldedit.math.transform.Transform; @@ -29,17 +29,19 @@ public class StencilBrushMask extends AbstractExtentMask { private final int maxY; private final Pattern pattern; - public StencilBrushMask(EditSession editSession, - Mask solid, - BlockVector3 center, - Transform transform, - int size2, - HeightMap map, - double scale, - int add, - int cutoff, - int maxY, - Pattern pattern) { + public StencilBrushMask( + EditSession editSession, + Mask solid, + BlockVector3 center, + Transform transform, + int size2, + HeightMap map, + double scale, + int add, + int cutoff, + int maxY, + Pattern pattern + ) { super(editSession); this.editSession = editSession; this.solid = solid; @@ -90,6 +92,19 @@ public class StencilBrushMask extends AbstractExtentMask { @Override public Mask copy() { - return new StencilBrushMask(editSession, solid.copy(), center.toImmutable(), transform, size2, map, scale, add, cutoff, maxY, pattern); + return new StencilBrushMask( + editSession, + solid.copy(), + center.toImmutable(), + transform, + size2, + map, + scale, + add, + cutoff, + maxY, + pattern + ); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/SurfaceMask.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/SurfaceMask.java index 2680feea7..1bfc6e8eb 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/SurfaceMask.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/SurfaceMask.java @@ -29,4 +29,5 @@ public class SurfaceMask extends AdjacentAnyMask { // The mask is not mutable. There is no need to clone it. return this; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/WallMakeMask.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/WallMakeMask.java index b2ef0cd9a..4246f8a82 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/WallMakeMask.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/WallMakeMask.java @@ -16,7 +16,10 @@ public class WallMakeMask implements Mask { public boolean test(BlockVector3 position) { int x = position.getBlockX(); int z = position.getBlockZ(); - return !region.contains(x, z + 1) || !region.contains(x, z - 1) || !region.contains(x + 1, z) || !region.contains(x - 1, z); + return !region.contains(x, z + 1) || !region.contains(x, z - 1) || !region.contains(x + 1, z) || !region.contains( + x - 1, + z + ); } @Override diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/WallMask.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/WallMask.java index 24e560971..40a323e51 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/WallMask.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/mask/WallMask.java @@ -1,15 +1,16 @@ package com.fastasyncworldedit.core.function.mask; +import com.fastasyncworldedit.core.math.MutableBlockVector3; import com.sk89q.worldedit.function.mask.AbstractMask; import com.sk89q.worldedit.function.mask.Mask; import com.sk89q.worldedit.math.BlockVector3; -import com.fastasyncworldedit.core.math.MutableBlockVector3; public class WallMask extends AbstractMask { + private final int min; private final int max; private final Mask mask; - private MutableBlockVector3 vector; + private final MutableBlockVector3 vector; public WallMask(Mask mask, int requiredMin, int requiredMax) { this.mask = mask; @@ -54,4 +55,5 @@ public class WallMask extends AbstractMask { public Mask copy() { return new WallMask(mask.copy(), min, max); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/AbstractExtentPattern.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/AbstractExtentPattern.java index ccb4251e7..19f01f9e3 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/AbstractExtentPattern.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/AbstractExtentPattern.java @@ -17,4 +17,5 @@ public abstract class AbstractExtentPattern extends AbstractPattern { public final Extent getExtent() { return extent; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/AngleColorPattern.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/AngleColorPattern.java index b98dfb526..77c98537d 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/AngleColorPattern.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/AngleColorPattern.java @@ -10,6 +10,7 @@ import com.sk89q.worldedit.world.block.BlockStateHolder; import com.sk89q.worldedit.world.block.BlockType; public class AngleColorPattern extends DataAnglePattern { + protected transient TextureHolder holder; public AngleColorPattern(Extent extent, TextureHolder holder, int distance) { @@ -79,4 +80,5 @@ public class AngleColorPattern extends DataAnglePattern { } return set.setBlock(extent, newBlock.getDefaultState()); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/AverageColorPattern.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/AverageColorPattern.java index 384e53009..4928c34c8 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/AverageColorPattern.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/AverageColorPattern.java @@ -11,7 +11,8 @@ import com.sk89q.worldedit.world.block.BlockType; import java.awt.Color; public class AverageColorPattern extends AbstractExtentPattern { - private transient TextureHolder holder; + + private final transient TextureHolder holder; private final int color; public AverageColorPattern(Extent extent, int color, TextureHolder util) { @@ -44,4 +45,5 @@ public class AverageColorPattern extends AbstractExtentPattern { } return set.setBlock(extent, newBlock.getDefaultState()); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/BiomeApplyingPattern.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/BiomeApplyingPattern.java index 6f6ba379a..9f9758bd8 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/BiomeApplyingPattern.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/BiomeApplyingPattern.java @@ -7,6 +7,7 @@ import com.sk89q.worldedit.world.biome.BiomeType; import com.sk89q.worldedit.world.block.BaseBlock; public class BiomeApplyingPattern extends AbstractExtentPattern { + private final BiomeType biomeType; public BiomeApplyingPattern(Extent extent, BiomeType biomeType) { @@ -25,4 +26,5 @@ public class BiomeApplyingPattern extends AbstractExtentPattern { public boolean apply(Extent extent, BlockVector3 get, BlockVector3 set) throws WorldEditException { return extent.setBiome(set, this.biomeType); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/BufferedPattern.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/BufferedPattern.java index b964a94c5..3c0a96130 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/BufferedPattern.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/BufferedPattern.java @@ -14,6 +14,7 @@ import com.sk89q.worldedit.world.block.BaseBlock; import java.util.UUID; public class BufferedPattern extends AbstractPattern implements ResettablePattern { + protected final LocalBlockVectorSet set = new LocalBlockVectorSet(); protected final FaweTimer timer; protected final long[] actionTime; @@ -59,4 +60,5 @@ public class BufferedPattern extends AbstractPattern implements ResettablePatter actionTime[1] = actionTime[0]; actionTime[0] = now; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/BufferedPattern2D.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/BufferedPattern2D.java index f96b670d5..78f7bd08d 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/BufferedPattern2D.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/BufferedPattern2D.java @@ -14,4 +14,5 @@ public class BufferedPattern2D extends BufferedPattern { public boolean set(BlockVector3 pos) { return set.add(pos.getBlockX(), 0, pos.getBlockY()); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/DataAnglePattern.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/DataAnglePattern.java index 0e3354108..aef2fd2d8 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/DataAnglePattern.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/DataAnglePattern.java @@ -10,6 +10,7 @@ import com.sk89q.worldedit.world.block.BlockState; import com.sk89q.worldedit.world.block.BlockStateHolder; public class DataAnglePattern extends AbstractPattern { + public final double factor; public final Extent extent; public final int maxY; @@ -30,11 +31,29 @@ public class DataAnglePattern extends AbstractPattern { return -1; } int slope = Math.abs( - extent.getNearestSurfaceTerrainBlock(x + distance, z, y, 0, maxY) - extent - .getNearestSurfaceTerrainBlock(x - distance, z, y, 0, maxY)) * 7; - slope += Math.abs(extent.getNearestSurfaceTerrainBlock(x, z + distance, y, 0, maxY) - extent.getNearestSurfaceTerrainBlock(x, z - distance, y, 0, maxY)) * 7; - slope += Math.abs(extent.getNearestSurfaceTerrainBlock(x + distance, z + distance, y, 0, maxY) - extent.getNearestSurfaceTerrainBlock(x - distance, z - distance, y, 0, maxY)) * 5; - slope += Math.abs(extent.getNearestSurfaceTerrainBlock(x - distance, z + distance, y, 0, maxY) - extent.getNearestSurfaceTerrainBlock(x + distance, z - distance, y, 0, maxY)) * 5; + extent.getNearestSurfaceTerrainBlock(x + distance, z, y, 0, maxY) - extent + .getNearestSurfaceTerrainBlock(x - distance, z, y, 0, maxY)) * 7; + slope += Math.abs(extent.getNearestSurfaceTerrainBlock( + x, + z + distance, + y, + 0, + maxY + ) - extent.getNearestSurfaceTerrainBlock(x, z - distance, y, 0, maxY)) * 7; + slope += Math.abs(extent.getNearestSurfaceTerrainBlock( + x + distance, + z + distance, + y, + 0, + maxY + ) - extent.getNearestSurfaceTerrainBlock(x - distance, z - distance, y, 0, maxY)) * 5; + slope += Math.abs(extent.getNearestSurfaceTerrainBlock( + x - distance, + z + distance, + y, + 0, + maxY + ) - extent.getNearestSurfaceTerrainBlock(x + distance, z - distance, y, 0, maxY)) * 5; return slope; } @@ -59,4 +78,5 @@ public class DataAnglePattern extends AbstractPattern { int data = Math.min(slope, 255) >> 4; return extent.setBlock(setPosition, block.withPropertyId(data)); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/DataPattern.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/DataPattern.java index 687edc890..8173587b8 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/DataPattern.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/DataPattern.java @@ -10,6 +10,7 @@ import com.sk89q.worldedit.world.block.BlockState; import static com.google.common.base.Preconditions.checkNotNull; public class DataPattern extends AbstractExtentPattern { + private final Pattern pattern; public DataPattern(Extent extent, Pattern parent) { @@ -42,4 +43,5 @@ public class DataPattern extends AbstractExtentPattern { } return false; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/DesaturatePattern.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/DesaturatePattern.java index 020d3277b..27d1c1e83 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/DesaturatePattern.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/DesaturatePattern.java @@ -10,6 +10,7 @@ import com.sk89q.worldedit.world.block.BaseBlock; import com.sk89q.worldedit.world.block.BlockType; public class DesaturatePattern extends AbstractPattern { + private final TextureHolder holder; private final Extent extent; private final double value; @@ -55,4 +56,5 @@ public class DesaturatePattern extends AbstractPattern { } return set.setBlock(extent, newType.getDefaultState()); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/ExistingPattern.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/ExistingPattern.java index cd4411331..30299837d 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/ExistingPattern.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/ExistingPattern.java @@ -6,6 +6,7 @@ import com.sk89q.worldedit.math.BlockVector3; import com.sk89q.worldedit.world.block.BaseBlock; public class ExistingPattern extends AbstractExtentPattern { + public ExistingPattern(Extent extent) { super(extent); } @@ -22,4 +23,5 @@ public class ExistingPattern extends AbstractExtentPattern { } return set.setFullBlock(extent, get.getFullBlock(extent)); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/ExpressionPattern.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/ExpressionPattern.java index 4244f9207..bcd876090 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/ExpressionPattern.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/ExpressionPattern.java @@ -19,6 +19,7 @@ import static com.google.common.base.Preconditions.checkNotNull; * greater than {@code 0}.

    */ public class ExpressionPattern extends AbstractPattern { + private final Expression expression; /** @@ -58,4 +59,5 @@ public class ExpressionPattern extends AbstractPattern { throw e; } } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/IdDataMaskPattern.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/IdDataMaskPattern.java index d5155bebb..a95f1863a 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/IdDataMaskPattern.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/IdDataMaskPattern.java @@ -6,6 +6,7 @@ import com.sk89q.worldedit.math.BlockVector3; import com.sk89q.worldedit.world.block.BaseBlock; public class IdDataMaskPattern extends AbstractExtentPattern { + private final Pattern pattern; private final int bitMask; @@ -23,4 +24,5 @@ public class IdDataMaskPattern extends AbstractExtentPattern { int newData = newBlock.getInternalPropertiesId() + oldData - (oldData & bitMask); return newBlock.withPropertyId(newData).toBaseBlock(); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/IdPattern.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/IdPattern.java index ccaa25097..f0b312baf 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/IdPattern.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/IdPattern.java @@ -8,6 +8,7 @@ import com.sk89q.worldedit.world.block.BaseBlock; import static com.google.common.base.Preconditions.checkNotNull; public class IdPattern extends AbstractExtentPattern { + private final Pattern pattern; public IdPattern(Extent extent, Pattern parent) { @@ -22,4 +23,5 @@ public class IdPattern extends AbstractExtentPattern { BaseBlock newBlock = pattern.applyBlock(position); return newBlock.withPropertyId(oldBlock.getInternalPropertiesId()).toBaseBlock(); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/Linear2DBlockPattern.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/Linear2DBlockPattern.java index 4cc4dc037..e621e6c9e 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/Linear2DBlockPattern.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/Linear2DBlockPattern.java @@ -36,4 +36,5 @@ public class Linear2DBlockPattern extends AbstractPattern { } return patternsArray[index].apply(extent, get, set); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/Linear3DBlockPattern.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/Linear3DBlockPattern.java index b36132a62..7756bf6de 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/Linear3DBlockPattern.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/Linear3DBlockPattern.java @@ -40,4 +40,5 @@ public class Linear3DBlockPattern extends AbstractPattern { } return patternsArray[index].apply(extent, get, set); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/LinearBlockPattern.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/LinearBlockPattern.java index be1a25c69..d89a9a31d 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/LinearBlockPattern.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/LinearBlockPattern.java @@ -36,4 +36,5 @@ public class LinearBlockPattern extends AbstractPattern implements ResettablePat public void reset() { index = 0; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/MaskedPattern.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/MaskedPattern.java index e08aa6bd0..d5f2bedaf 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/MaskedPattern.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/MaskedPattern.java @@ -12,7 +12,7 @@ public class MaskedPattern extends AbstractPattern { private final Pattern primary; private final Pattern secondary; - private Mask mask; + private final Mask mask; public MaskedPattern(Mask mask, Pattern primary, Pattern secondary) { this.mask = mask; @@ -35,4 +35,5 @@ public class MaskedPattern extends AbstractPattern { } return secondary.apply(extent, get, set); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/NoXPattern.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/NoXPattern.java index c75b70f18..a1bd54985 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/NoXPattern.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/NoXPattern.java @@ -1,11 +1,11 @@ package com.fastasyncworldedit.core.function.pattern; +import com.fastasyncworldedit.core.math.MutableBlockVector3; import com.sk89q.worldedit.WorldEditException; import com.sk89q.worldedit.extent.Extent; import com.sk89q.worldedit.function.pattern.AbstractPattern; import com.sk89q.worldedit.function.pattern.Pattern; import com.sk89q.worldedit.math.BlockVector3; -import com.fastasyncworldedit.core.math.MutableBlockVector3; import com.sk89q.worldedit.world.block.BaseBlock; public class NoXPattern extends AbstractPattern { @@ -30,4 +30,5 @@ public class NoXPattern extends AbstractPattern { mutable.mutZ(get.getZ()); return pattern.apply(extent, mutable, set); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/NoYPattern.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/NoYPattern.java index 18d22e4b2..aea7a0879 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/NoYPattern.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/NoYPattern.java @@ -1,11 +1,11 @@ package com.fastasyncworldedit.core.function.pattern; +import com.fastasyncworldedit.core.math.MutableBlockVector3; import com.sk89q.worldedit.WorldEditException; import com.sk89q.worldedit.extent.Extent; import com.sk89q.worldedit.function.pattern.AbstractPattern; import com.sk89q.worldedit.function.pattern.Pattern; import com.sk89q.worldedit.math.BlockVector3; -import com.fastasyncworldedit.core.math.MutableBlockVector3; import com.sk89q.worldedit.world.block.BaseBlock; public class NoYPattern extends AbstractPattern { @@ -30,4 +30,5 @@ public class NoYPattern extends AbstractPattern { mutable.mutZ(get.getZ()); return pattern.apply(extent, mutable, set); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/NoZPattern.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/NoZPattern.java index ee33f5cc6..5f4189066 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/NoZPattern.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/NoZPattern.java @@ -1,11 +1,11 @@ package com.fastasyncworldedit.core.function.pattern; +import com.fastasyncworldedit.core.math.MutableBlockVector3; import com.sk89q.worldedit.WorldEditException; import com.sk89q.worldedit.extent.Extent; import com.sk89q.worldedit.function.pattern.AbstractPattern; import com.sk89q.worldedit.function.pattern.Pattern; import com.sk89q.worldedit.math.BlockVector3; -import com.fastasyncworldedit.core.math.MutableBlockVector3; import com.sk89q.worldedit.world.block.BaseBlock; public class NoZPattern extends AbstractPattern { @@ -16,7 +16,7 @@ public class NoZPattern extends AbstractPattern { this.pattern = pattern; } - private transient MutableBlockVector3 mutable = new MutableBlockVector3(); + private final transient MutableBlockVector3 mutable = new MutableBlockVector3(); @Override public BaseBlock applyBlock(BlockVector3 pos) { @@ -31,4 +31,5 @@ public class NoZPattern extends AbstractPattern { mutable.mutY(get.getY()); return pattern.apply(extent, mutable, set); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/OffsetPattern.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/OffsetPattern.java index e7c4ef416..75ce9606a 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/OffsetPattern.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/OffsetPattern.java @@ -1,11 +1,11 @@ package com.fastasyncworldedit.core.function.pattern; +import com.fastasyncworldedit.core.math.MutableBlockVector3; import com.sk89q.worldedit.WorldEditException; import com.sk89q.worldedit.extent.Extent; import com.sk89q.worldedit.function.pattern.AbstractPattern; import com.sk89q.worldedit.function.pattern.Pattern; import com.sk89q.worldedit.math.BlockVector3; -import com.fastasyncworldedit.core.math.MutableBlockVector3; import com.sk89q.worldedit.world.block.BaseBlock; public class OffsetPattern extends AbstractPattern { @@ -13,7 +13,7 @@ public class OffsetPattern extends AbstractPattern { private final int dx; private final int dy; private final int dz; - private transient MutableBlockVector3 mutable = new MutableBlockVector3(); + private final transient MutableBlockVector3 mutable = new MutableBlockVector3(); private final Pattern pattern; public OffsetPattern(Pattern pattern, int dx, int dy, int dz) { @@ -38,4 +38,5 @@ public class OffsetPattern extends AbstractPattern { mutable.mutZ(get.getZ() + dz); return pattern.apply(extent, get, mutable); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/PatternTraverser.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/PatternTraverser.java index e284dc9dc..262204af6 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/PatternTraverser.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/PatternTraverser.java @@ -8,6 +8,7 @@ import java.lang.reflect.Field; import java.util.Collection; public class PatternTraverser { + private final Object pattern; public PatternTraverser(Object start) { @@ -68,4 +69,5 @@ public class PatternTraverser { current = current.getSuperclass(); } } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/PropertyPattern.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/PropertyPattern.java index 131414683..c7e7e83c3 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/PropertyPattern.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/PropertyPattern.java @@ -1,7 +1,8 @@ package com.fastasyncworldedit.core.function.pattern; -import com.fastasyncworldedit.core.util.MutableCharSequence; +import com.fastasyncworldedit.core.registry.state.PropertyKey; import com.fastasyncworldedit.core.util.MathMan; +import com.fastasyncworldedit.core.util.MutableCharSequence; import com.fastasyncworldedit.core.util.StringMan; import com.sk89q.jnbt.CompoundTag; import com.sk89q.worldedit.WorldEditException; @@ -10,7 +11,6 @@ import com.sk89q.worldedit.math.BlockVector3; import com.sk89q.worldedit.registry.state.AbstractProperty; import com.sk89q.worldedit.registry.state.IntegerProperty; import com.sk89q.worldedit.registry.state.Property; -import com.fastasyncworldedit.core.registry.state.PropertyKey; import com.sk89q.worldedit.world.block.BaseBlock; import com.sk89q.worldedit.world.block.BlockState; import com.sk89q.worldedit.world.block.BlockType; @@ -21,6 +21,7 @@ import java.util.ArrayList; import java.util.List; public class PropertyPattern extends AbstractExtentPattern { + private final int[] transformed; public PropertyPattern(Extent extent, String[] properties) { @@ -45,19 +46,29 @@ public class PropertyPattern extends AbstractExtentPattern { private static final Operator XOR = (length, value, index) -> index ^ value; private interface Operator { + int apply(int length, int value, int index); + } private Operator getOp(char c) { switch (c) { - case '=': return EQUAL; - case '+': return PLUS; - case '-': return MINUS; - case '%': return MODULO; - case '&': return AND; - case '|': return OR; - case '^': return XOR; - default: return null; + case '=': + return EQUAL; + case '+': + return PLUS; + case '-': + return MINUS; + case '%': + return MODULO; + case '&': + return AND; + case '|': + return OR; + case '^': + return XOR; + default: + return null; } } @@ -108,7 +119,14 @@ public class PropertyPattern extends AbstractExtentPattern { } } - private void applyRecursive(BlockType type, AbstractProperty property, List properties, int propertiesIndex, int stateId, int index) { + private void applyRecursive( + BlockType type, + AbstractProperty property, + List properties, + int propertiesIndex, + int stateId, + int index + ) { AbstractProperty current = (AbstractProperty) properties.get(propertiesIndex); List values = current.getValues(); if (propertiesIndex + 1 < properties.size()) { @@ -123,7 +141,7 @@ public class PropertyPattern extends AbstractExtentPattern { int existingOrdinal = transformed[state.getOrdinal()]; int existing = BlockTypesCache.states[existingOrdinal].getInternalId(); - //states[statesIndex] << BlockTypesCache.BIT_OFFSET; + //states[statesIndex] << BlockTypesCache.BIT_OFFSET; BlockState newState = state.withPropertyId(property.modifyIndex(existing, index) >> BlockTypesCache.BIT_OFFSET); transformed[state.getOrdinal()] = newState.getOrdinal(); } @@ -237,4 +255,5 @@ public class PropertyPattern extends AbstractExtentPattern { } return false; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/RandomFullClipboardPattern.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/RandomFullClipboardPattern.java index 3ce6fc3fb..a8d67b5ed 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/RandomFullClipboardPattern.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/RandomFullClipboardPattern.java @@ -1,11 +1,11 @@ package com.fastasyncworldedit.core.function.pattern; +import com.fastasyncworldedit.core.math.MutableBlockVector3; import com.sk89q.worldedit.WorldEditException; import com.sk89q.worldedit.extent.Extent; import com.sk89q.worldedit.extent.clipboard.Clipboard; import com.sk89q.worldedit.function.pattern.AbstractPattern; import com.sk89q.worldedit.math.BlockVector3; -import com.fastasyncworldedit.core.math.MutableBlockVector3; import com.sk89q.worldedit.math.Vector3; import com.sk89q.worldedit.math.transform.AffineTransform; import com.sk89q.worldedit.math.transform.Transform; @@ -18,6 +18,7 @@ import java.util.concurrent.ThreadLocalRandom; import static com.google.common.base.Preconditions.checkNotNull; public class RandomFullClipboardPattern extends AbstractPattern { + private final Extent extent; private final MutableBlockVector3 mutable = new MutableBlockVector3(); private final List clipboards; @@ -60,4 +61,5 @@ public class RandomFullClipboardPattern extends AbstractPattern { public BaseBlock applyBlock(BlockVector3 position) { throw new IllegalStateException("Incorrect use. This pattern can only be applied to an extent!"); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/RandomOffsetPattern.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/RandomOffsetPattern.java index 9ae88cd16..e42ea84b5 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/RandomOffsetPattern.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/RandomOffsetPattern.java @@ -1,26 +1,27 @@ package com.fastasyncworldedit.core.function.pattern; +import com.fastasyncworldedit.core.math.MutableBlockVector3; import com.sk89q.worldedit.WorldEditException; import com.sk89q.worldedit.extent.Extent; import com.sk89q.worldedit.function.pattern.AbstractPattern; import com.sk89q.worldedit.function.pattern.Pattern; import com.sk89q.worldedit.math.BlockVector3; -import com.fastasyncworldedit.core.math.MutableBlockVector3; import com.sk89q.worldedit.world.block.BaseBlock; import java.util.SplittableRandom; public class RandomOffsetPattern extends AbstractPattern { + private final int dx; private final int dy; private final int dz; private final Pattern pattern; - private transient int dx2; - private transient int dy2; - private transient int dz2; - private transient MutableBlockVector3 mutable = new MutableBlockVector3(); - private transient SplittableRandom r; + private final transient int dx2; + private final transient int dy2; + private final transient int dz2; + private final transient MutableBlockVector3 mutable = new MutableBlockVector3(); + private final transient SplittableRandom r; public RandomOffsetPattern(Pattern pattern, int dx, int dy, int dz) { this.pattern = pattern; @@ -49,4 +50,5 @@ public class RandomOffsetPattern extends AbstractPattern { mutable.mutZ((set.getZ() + r.nextInt(dz2) - dz)); return pattern.apply(extent, get, mutable); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/RelativePattern.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/RelativePattern.java index 52be69e90..69db01840 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/RelativePattern.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/RelativePattern.java @@ -1,11 +1,11 @@ package com.fastasyncworldedit.core.function.pattern; +import com.fastasyncworldedit.core.math.MutableBlockVector3; import com.sk89q.worldedit.WorldEditException; import com.sk89q.worldedit.extent.Extent; import com.sk89q.worldedit.function.pattern.AbstractPattern; import com.sk89q.worldedit.function.pattern.Pattern; import com.sk89q.worldedit.math.BlockVector3; -import com.fastasyncworldedit.core.math.MutableBlockVector3; import com.sk89q.worldedit.world.block.BaseBlock; public class RelativePattern extends AbstractPattern implements ResettablePattern { @@ -44,4 +44,5 @@ public class RelativePattern extends AbstractPattern implements ResettablePatter public void reset() { origin = null; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/ResettablePattern.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/ResettablePattern.java index fd4be743d..0697c086c 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/ResettablePattern.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/ResettablePattern.java @@ -6,4 +6,5 @@ public interface ResettablePattern extends Resettable { @Override void reset(); + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/SaturatePattern.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/SaturatePattern.java index e79d649d9..9796541fc 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/SaturatePattern.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/SaturatePattern.java @@ -12,6 +12,7 @@ import com.sk89q.worldedit.world.block.BlockType; import java.awt.Color; public class SaturatePattern extends AbstractPattern { + private final TextureHolder holder; private final int color; private final Extent extent; @@ -47,4 +48,5 @@ public class SaturatePattern extends AbstractPattern { } return set.setBlock(extent, newBlock.getDefaultState()); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/ShadePattern.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/ShadePattern.java index a6f6a5899..b0034755f 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/ShadePattern.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/ShadePattern.java @@ -11,6 +11,7 @@ import com.sk89q.worldedit.world.block.BlockType; import static com.google.common.base.Preconditions.checkNotNull; public class ShadePattern extends AbstractPattern { + private final TextureUtil util; private final Extent extent; private final boolean darken; @@ -37,4 +38,5 @@ public class ShadePattern extends AbstractPattern { } return false; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/SolidRandomOffsetPattern.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/SolidRandomOffsetPattern.java index dad91f91d..0667e100a 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/SolidRandomOffsetPattern.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/SolidRandomOffsetPattern.java @@ -1,11 +1,11 @@ package com.fastasyncworldedit.core.function.pattern; +import com.fastasyncworldedit.core.math.MutableBlockVector3; import com.sk89q.worldedit.WorldEditException; import com.sk89q.worldedit.extent.Extent; import com.sk89q.worldedit.function.pattern.AbstractPattern; import com.sk89q.worldedit.function.pattern.Pattern; import com.sk89q.worldedit.math.BlockVector3; -import com.fastasyncworldedit.core.math.MutableBlockVector3; import com.sk89q.worldedit.world.block.BaseBlock; import com.sk89q.worldedit.world.block.BlockType; import com.sk89q.worldedit.world.block.BlockTypes; @@ -14,6 +14,7 @@ import com.sk89q.worldedit.world.block.BlockTypesCache; import java.util.SplittableRandom; public class SolidRandomOffsetPattern extends AbstractPattern { + private final int dx; private final int dy; private final int dz; @@ -23,7 +24,7 @@ public class SolidRandomOffsetPattern extends AbstractPattern { private final int dy2; private final int dz2; private final MutableBlockVector3 mutable; - private SplittableRandom r; + private final SplittableRandom r; public static boolean[] getTypes() { boolean[] types = new boolean[BlockTypes.size()]; @@ -69,4 +70,5 @@ public class SolidRandomOffsetPattern extends AbstractPattern { } return pattern.apply(extent, get, set); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/SurfaceRandomOffsetPattern.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/SurfaceRandomOffsetPattern.java index 8d5f4d964..aff9b51cd 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/SurfaceRandomOffsetPattern.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/pattern/SurfaceRandomOffsetPattern.java @@ -1,15 +1,16 @@ package com.fastasyncworldedit.core.function.pattern; +import com.fastasyncworldedit.core.math.MutableBlockVector3; import com.sk89q.worldedit.function.pattern.AbstractPattern; import com.sk89q.worldedit.function.pattern.Pattern; import com.sk89q.worldedit.function.visitor.BreadthFirstSearch; import com.sk89q.worldedit.math.BlockVector3; -import com.fastasyncworldedit.core.math.MutableBlockVector3; import com.sk89q.worldedit.world.block.BaseBlock; import java.util.concurrent.ThreadLocalRandom; public class SurfaceRandomOffsetPattern extends AbstractPattern { + private final Pattern pattern; private final int moves; @@ -41,7 +42,11 @@ public class SurfaceRandomOffsetPattern extends AbstractPattern { for (int i = 0; i < allowed.length; i++) { next = buffer[i]; BlockVector3 dir = BreadthFirstSearch.DIAGONAL_DIRECTIONS[i]; - next.setComponents(cur.getBlockX() + dir.getBlockX(), cur.getBlockY() + dir.getBlockY(), cur.getBlockZ() + dir.getBlockZ()); + next.setComponents( + cur.getBlockX() + dir.getBlockX(), + cur.getBlockY() + dir.getBlockY(), + cur.getBlockZ() + dir.getBlockZ() + ); if (allowed(next)) { allowed[index++] = next; } @@ -104,4 +109,5 @@ public class SurfaceRandomOffsetPattern extends AbstractPattern { BaseBlock block = pattern.applyBlock(v); return !block.getBlockType().getMaterial().isMovementBlocker(); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/visitor/AboveVisitor.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/visitor/AboveVisitor.java index 24fbcb72c..a41985332 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/visitor/AboveVisitor.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/visitor/AboveVisitor.java @@ -14,7 +14,7 @@ import static com.google.common.base.Preconditions.checkNotNull; */ public class AboveVisitor extends RecursiveVisitor { - private int baseY; + private final int baseY; /** * Create a new visitor. @@ -34,12 +34,14 @@ public class AboveVisitor extends RecursiveVisitor { this.baseY = baseY; setDirections(BlockVector3.UNIT_MINUS_X, BlockVector3.UNIT_MINUS_Y, - BlockVector3.UNIT_MINUS_Z, BlockVector3.UNIT_X, BlockVector3.UNIT_Y, - BlockVector3.UNIT_Z); + BlockVector3.UNIT_MINUS_Z, BlockVector3.UNIT_X, BlockVector3.UNIT_Y, + BlockVector3.UNIT_Z + ); } @Override public boolean isVisitable(BlockVector3 from, BlockVector3 to) { return (from.getBlockY() >= baseY) && super.isVisitable(from, to); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/visitor/DFSRecursiveVisitor.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/visitor/DFSRecursiveVisitor.java index 8e32c56b2..ae8bbd189 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/visitor/DFSRecursiveVisitor.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/visitor/DFSRecursiveVisitor.java @@ -21,11 +21,13 @@ public class DFSRecursiveVisitor extends DFSVisitor { /** * Create a new recursive visitor. * - * @param mask the mask + * @param mask the mask * @param function the function */ - public DFSRecursiveVisitor(final Mask mask, final RegionFunction function, int maxDepth, - int maxBranching) { + public DFSRecursiveVisitor( + final Mask mask, final RegionFunction function, int maxDepth, + int maxBranching + ) { super(function, maxDepth, maxBranching); checkNotNull(mask); this.mask = mask; @@ -35,4 +37,5 @@ public class DFSRecursiveVisitor extends DFSVisitor { public boolean isVisitable(final BlockVector3 from, final BlockVector3 to) { return this.mask.test(to); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/visitor/DFSVisitor.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/visitor/DFSVisitor.java index ad8b32c06..f7cecdf12 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/visitor/DFSVisitor.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/visitor/DFSVisitor.java @@ -99,8 +99,9 @@ public abstract class DFSVisitor implements Operation { // mutable2.mutY(from.getY() + direction.y); // mutable2.mutZ(from.getZ() + direction.z); BlockVector3 bv2 = BlockVector3 - .at(from.getX() + direction.getX(), from.getY() + direction.getY(), - from.getZ() + direction.getZ()); + .at(from.getX() + direction.getX(), from.getY() + direction.getY(), + from.getZ() + direction.getZ() + ); if (isVisitable(bv, bv2)) { Node adjacent = new Node(bv2.getBlockX(), bv2.getBlockY(), bv2.getBlockZ()); if (!adjacent.equals(current.from)) { @@ -113,7 +114,7 @@ public abstract class DFSVisitor implements Operation { } else { hashQueue.add(adjacent); queue.addFirst( - new NodePair(from, adjacent, current.depth + 1)); + new NodePair(from, adjacent, current.depth + 1)); } } else { countAttempt++; @@ -144,8 +145,8 @@ public abstract class DFSVisitor implements Operation { public Iterable getStatusMessages() { return Lists.newArrayList(Caption.of( - "fawe.worldedit.visitor.visitor.block", - TextComponent.of(getAffected()) + "fawe.worldedit.visitor.visitor.block", + TextComponent.of(getAffected()) )); } @@ -208,6 +209,7 @@ public abstract class DFSVisitor implements Operation { Node other = (Node) obj; return other.x == x && other.z == z && other.y == y; } + } public static class NodePair { @@ -221,5 +223,7 @@ public abstract class DFSVisitor implements Operation { this.to = to; this.depth = depth; } + } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/visitor/DirectionalVisitor.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/visitor/DirectionalVisitor.java index 24a35b989..2e826e9c4 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/visitor/DirectionalVisitor.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/visitor/DirectionalVisitor.java @@ -30,12 +30,12 @@ public class DirectionalVisitor extends RecursiveVisitor { this.dirVec = direction; setDirections( - BlockVector3.at(1, 0, 0), - BlockVector3.at(-1, 0, 0), - BlockVector3.at(0, 0, 1), - BlockVector3.at(0, 0, -1), - BlockVector3.at(0, -1, 0), - BlockVector3.at(0, 1, 0) + BlockVector3.at(1, 0, 0), + BlockVector3.at(-1, 0, 0), + BlockVector3.at(0, 0, 1), + BlockVector3.at(0, 0, -1), + BlockVector3.at(0, -1, 0), + BlockVector3.at(0, 1, 0) ); } @@ -62,4 +62,5 @@ public class DirectionalVisitor extends RecursiveVisitor { } return super.isVisitable(from, to); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/visitor/IntersectRegionFunction.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/visitor/IntersectRegionFunction.java index 4cd8486e1..913b813e0 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/visitor/IntersectRegionFunction.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/visitor/IntersectRegionFunction.java @@ -5,6 +5,7 @@ import com.sk89q.worldedit.function.RegionFunction; import com.sk89q.worldedit.math.BlockVector3; public class IntersectRegionFunction implements RegionFunction { + private final RegionFunction[] functions; public IntersectRegionFunction(RegionFunction... functions) { @@ -23,4 +24,5 @@ public class IntersectRegionFunction implements RegionFunction { } return ret; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/visitor/Order.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/visitor/Order.java index 35f82a0cc..e6d035ba7 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/visitor/Order.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/function/visitor/Order.java @@ -15,9 +15,7 @@ public enum Order { } return ((CuboidRegion) region).iterator_old(); } - } - - ; + }; public abstract Iterator create(Region region); } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/history/DiskStorageHistory.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/history/DiskStorageHistory.java index 93a945d80..4a4f7eee8 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/history/DiskStorageHistory.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/history/DiskStorageHistory.java @@ -73,7 +73,10 @@ public class DiskStorageHistory extends FaweStreamChangeSet { } private void init(UUID uuid, String worldName) { - final File folder = MainUtil.getFile(Fawe.imp().getDirectory(), Settings.IMP.PATHS.HISTORY + File.separator + worldName + File.separator + uuid); + final File folder = MainUtil.getFile( + Fawe.imp().getDirectory(), + Settings.IMP.PATHS.HISTORY + File.separator + worldName + File.separator + uuid + ); final int max = NEXT_INDEX.computeIfAbsent(worldName, _worldName -> new ConcurrentHashMap<>()) .compute(uuid, (_uuid, id) -> (id == null ? MainUtil.getMaxFileId(folder) : id) + 1) - 1; @@ -105,13 +108,15 @@ public class DiskStorageHistory extends FaweStreamChangeSet { private void init(UUID uuid, int i) { this.uuid = uuid; this.index = i; - File folder = MainUtil.getFile(Fawe.imp().getDirectory(), Settings.IMP.PATHS.HISTORY + File.separator + getWorld().getName() + File.separator + uuid); + File folder = MainUtil.getFile( + Fawe.imp().getDirectory(), + Settings.IMP.PATHS.HISTORY + File.separator + getWorld().getName() + File.separator + uuid + ); initFiles(folder); } @Override public void delete() { -// Fawe.debug("Deleting history: " + getWorld().getName() + "/" + uuid + "/" + index); deleteFiles(); if (Settings.IMP.HISTORY.USE_DATABASE) { RollbackDatabase db = DBHandler.IMP.getDatabase(getWorld()); @@ -437,4 +442,5 @@ public class DiskStorageHistory extends FaweStreamChangeSet { // TODO Auto-generated method stub } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/history/MemoryOptimizedHistory.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/history/MemoryOptimizedHistory.java index 9aaa01636..32ac92b48 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/history/MemoryOptimizedHistory.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/history/MemoryOptimizedHistory.java @@ -2,10 +2,10 @@ package com.fastasyncworldedit.core.history; import com.fastasyncworldedit.core.configuration.Settings; import com.fastasyncworldedit.core.history.changeset.FaweStreamChangeSet; -import com.fastasyncworldedit.core.internal.io.FaweInputStream; -import com.fastasyncworldedit.core.internal.io.FaweOutputStream; import com.fastasyncworldedit.core.internal.io.FastByteArrayOutputStream; import com.fastasyncworldedit.core.internal.io.FastByteArraysInputStream; +import com.fastasyncworldedit.core.internal.io.FaweInputStream; +import com.fastasyncworldedit.core.internal.io.FaweOutputStream; import com.fastasyncworldedit.core.util.MainUtil; import com.sk89q.jnbt.NBTInputStream; import com.sk89q.jnbt.NBTOutputStream; @@ -252,4 +252,5 @@ public class MemoryOptimizedHistory extends FaweStreamChangeSet { public void setRecordChanges(boolean recordChanges) { // TODO Auto-generated method stub } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/history/RollbackOptimizedHistory.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/history/RollbackOptimizedHistory.java index 80d5ab6f2..f4e0cee9a 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/history/RollbackOptimizedHistory.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/history/RollbackOptimizedHistory.java @@ -37,7 +37,15 @@ public class RollbackOptimizedHistory extends DiskStorageHistory { this.time = System.currentTimeMillis(); } - public RollbackOptimizedHistory(World world, UUID uuid, int index, long time, long size, CuboidRegion region, String command) { + public RollbackOptimizedHistory( + World world, + UUID uuid, + int index, + long time, + long size, + CuboidRegion region, + String command + ) { super(world, uuid, index); this.time = time; this.minX = region.getMinimumX(); @@ -135,4 +143,5 @@ public class RollbackOptimizedHistory extends DiskStorageHistory { public BlockVector3 getMaximumPoint() { return BlockVector3.at(maxX, maxY, maxZ); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/history/change/MutableBiomeChange.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/history/change/MutableBiomeChange.java index 88f1ac4d3..46860c106 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/history/change/MutableBiomeChange.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/history/change/MutableBiomeChange.java @@ -1,9 +1,9 @@ package com.fastasyncworldedit.core.history.change; +import com.fastasyncworldedit.core.math.MutableBlockVector3; import com.sk89q.worldedit.WorldEditException; import com.sk89q.worldedit.history.UndoContext; import com.sk89q.worldedit.history.change.Change; -import com.fastasyncworldedit.core.math.MutableBlockVector3; import com.sk89q.worldedit.world.biome.BiomeTypes; public class MutableBiomeChange implements Change { @@ -32,4 +32,5 @@ public class MutableBiomeChange implements Change { public void redo(UndoContext context) throws WorldEditException { context.getExtent().setBiome(mutable, BiomeTypes.get(to)); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/history/change/MutableBlockChange.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/history/change/MutableBlockChange.java index 6264c2735..f4797581f 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/history/change/MutableBlockChange.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/history/change/MutableBlockChange.java @@ -33,4 +33,5 @@ public class MutableBlockChange implements Change { public void create(UndoContext context) { context.getExtent().setBlock(x, y, z, BlockState.getFromOrdinal(ordinal)); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/history/change/MutableFullBlockChange.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/history/change/MutableFullBlockChange.java index 1d2c3abfe..81337afb3 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/history/change/MutableFullBlockChange.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/history/change/MutableFullBlockChange.java @@ -56,4 +56,5 @@ public class MutableFullBlockChange implements Change { } context.getExtent().setBlock(x, y, z, fromState); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/history/change/MutableTileChange.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/history/change/MutableTileChange.java index 16e64f75e..6e4945366 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/history/change/MutableTileChange.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/history/change/MutableTileChange.java @@ -35,4 +35,5 @@ public class MutableTileChange implements Change { int z = tag.getInt("z"); context.getExtent().setTile(x, y, z, tag); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/history/change/StreamChange.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/history/change/StreamChange.java index 066a4855b..9b58b71b9 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/history/change/StreamChange.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/history/change/StreamChange.java @@ -13,6 +13,7 @@ import java.io.FileOutputStream; import java.io.IOException; public interface StreamChange { + void flushChanges(FaweOutputStream out) throws IOException; void undoChanges(FaweInputStream in) throws IOException; @@ -49,4 +50,5 @@ public interface StreamChange { } } } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/history/changeset/AbstractChangeSet.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/history/changeset/AbstractChangeSet.java index eb0ae7231..8519c0bfe 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/history/changeset/AbstractChangeSet.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/history/changeset/AbstractChangeSet.java @@ -2,15 +2,16 @@ package com.fastasyncworldedit.core.history.changeset; import com.fastasyncworldedit.core.Fawe; import com.fastasyncworldedit.core.FaweCache; +import com.fastasyncworldedit.core.extent.HistoryExtent; +import com.fastasyncworldedit.core.extent.processor.ProcessorScope; import com.fastasyncworldedit.core.queue.IBatchProcessor; import com.fastasyncworldedit.core.queue.IChunk; import com.fastasyncworldedit.core.queue.IChunkGet; import com.fastasyncworldedit.core.queue.IChunkSet; -import com.fastasyncworldedit.core.extent.processor.ProcessorScope; -import com.fastasyncworldedit.core.extent.HistoryExtent; import com.fastasyncworldedit.core.util.EditSessionBuilder; import com.fastasyncworldedit.core.util.MainUtil; import com.fastasyncworldedit.core.util.TaskManager; +import com.fastasyncworldedit.core.world.block.BlockID; import com.google.common.util.concurrent.Futures; import com.sk89q.jnbt.CompoundTag; import com.sk89q.worldedit.EditSession; @@ -27,7 +28,6 @@ import com.sk89q.worldedit.regions.Region; import com.sk89q.worldedit.world.World; import com.sk89q.worldedit.world.biome.BiomeType; import com.sk89q.worldedit.world.block.BaseBlock; -import com.fastasyncworldedit.core.world.block.BlockID; import com.sk89q.worldedit.world.block.BlockState; import java.io.IOException; @@ -202,7 +202,7 @@ public abstract class AbstractChangeSet implements ChangeSet, IBatchProcessor { if (newBiome != null) { BiomeType oldBiome = get.getBiomeType(x, y, z); if (oldBiome != newBiome) { - addBiomeChange(bx + (x << 2), y << 2,bz + (z << 2), oldBiome, newBiome); + addBiomeChange(bx + (x << 2), y << 2, bz + (z << 2), oldBiome, newBiome); } } } @@ -213,7 +213,7 @@ public abstract class AbstractChangeSet implements ChangeSet, IBatchProcessor { } @Override - public Future postProcessSet(final IChunk chunk, final IChunkGet get,final IChunkSet set) { + public Future postProcessSet(final IChunk chunk, final IChunkGet get, final IChunkSet set) { return (Future) addWriteTask(() -> processSet(chunk, get, set)); } @@ -244,8 +244,8 @@ public abstract class AbstractChangeSet implements ChangeSet, IBatchProcessor { public EditSession toEditSession(Player player, Region[] regions) { EditSessionBuilder builder = - new EditSessionBuilder(getWorld()).player(player).autoQueue(false).fastmode(false) - .checkMemory(false).changeSet(this).limitUnlimited(); + new EditSessionBuilder(getWorld()).player(player).autoQueue(false).fastmode(false) + .checkMemory(false).changeSet(this).limitUnlimited(); if (regions != null) { builder.allowedRegions(regions); } else { @@ -364,4 +364,5 @@ public abstract class AbstractChangeSet implements ChangeSet, IBatchProcessor { return Fawe.get().getQueueHandler().submit(wrappedTask); } } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/history/changeset/AbstractDelegateChangeSet.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/history/changeset/AbstractDelegateChangeSet.java index 1bbf040af..617e7f294 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/history/changeset/AbstractDelegateChangeSet.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/history/changeset/AbstractDelegateChangeSet.java @@ -19,6 +19,7 @@ import java.util.Iterator; import java.util.concurrent.Future; public class AbstractDelegateChangeSet extends AbstractChangeSet { + public final AbstractChangeSet parent; public AbstractDelegateChangeSet(AbstractChangeSet parent) { @@ -186,4 +187,5 @@ public class AbstractDelegateChangeSet extends AbstractChangeSet { public ChangeSetSummary summarize(Region region, boolean shallow) { return parent.summarize(region, shallow); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/history/changeset/BlockBagChangeSet.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/history/changeset/BlockBagChangeSet.java index 15d62a09c..22833d3b5 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/history/changeset/BlockBagChangeSet.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/history/changeset/BlockBagChangeSet.java @@ -11,15 +11,15 @@ import com.sk89q.worldedit.world.block.BaseBlock; import com.sk89q.worldedit.world.block.BlockType; import com.sk89q.worldedit.world.block.BlockTypes; +import javax.annotation.Nullable; import java.util.Arrays; import java.util.HashMap; import java.util.Map; -import javax.annotation.Nullable; public class BlockBagChangeSet extends AbstractDelegateChangeSet { private final boolean mine; - private int[] missingBlocks = new int[BlockTypes.size()]; + private final int[] missingBlocks = new int[BlockTypes.size()]; private BlockBag blockBag; public BlockBagChangeSet(AbstractChangeSet parent, BlockBag blockBag, boolean mine) { @@ -85,10 +85,10 @@ public class BlockBagChangeSet extends AbstractDelegateChangeSet { try { blockBag.fetchPlacedBlock(typeTo.getDefaultState()); } catch (UnplaceableBlockException e) { - throw FaweCache.IMP.BLOCK_BAG; + throw FaweCache.BLOCK_BAG; } catch (BlockBagException e) { missingBlocks[typeTo.getInternalId()]++; - throw FaweCache.IMP.BLOCK_BAG; + throw FaweCache.BLOCK_BAG; } } if (mine) { @@ -117,4 +117,5 @@ public class BlockBagChangeSet extends AbstractDelegateChangeSet { } super.addTileCreate(nbt); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/history/changeset/ChangeSetSummary.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/history/changeset/ChangeSetSummary.java index dc0532e60..f64930263 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/history/changeset/ChangeSetSummary.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/history/changeset/ChangeSetSummary.java @@ -9,6 +9,7 @@ import java.util.List; import java.util.Map; public interface ChangeSetSummary { + Map getBlocks(); int getSize(); @@ -33,4 +34,5 @@ public interface ChangeSetSummary { } return newMap; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/history/changeset/FaweStreamChangeSet.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/history/changeset/FaweStreamChangeSet.java index 429e376ff..8534c7d81 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/history/changeset/FaweStreamChangeSet.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/history/changeset/FaweStreamChangeSet.java @@ -62,6 +62,7 @@ public abstract class FaweStreamChangeSet extends AbstractChangeSet { } public interface FaweStreamPositionDelegate { + void write(OutputStream out, int x, int y, int z) throws IOException; int readX(FaweInputStream in) throws IOException; @@ -69,14 +70,17 @@ public abstract class FaweStreamChangeSet extends AbstractChangeSet { int readY(FaweInputStream in) throws IOException; int readZ(FaweInputStream in) throws IOException; + } public interface FaweStreamIdDelegate { + void writeChange(FaweOutputStream out, int from, int to) throws IOException; void readCombined(FaweInputStream in, MutableBlockChange change, boolean dir) throws IOException; void readCombined(FaweInputStream in, MutableFullBlockChange change) throws IOException; + } protected void setupStreamDelegates(int mode) { @@ -150,7 +154,7 @@ public abstract class FaweStreamChangeSet extends AbstractChangeSet { out.write(b4); } - byte[] buffer = new byte[4]; + final byte[] buffer = new byte[4]; @Override public int readX(FaweInputStream in) throws IOException { @@ -516,7 +520,8 @@ public abstract class FaweStreamChangeSet extends AbstractChangeSet { return getIterator(redo); } - public Iterator getFullBlockIterator(BlockBag blockBag, int inventory, final boolean dir) throws IOException { + public Iterator getFullBlockIterator(BlockBag blockBag, int inventory, final boolean dir) throws + IOException { final FaweInputStream is = new FaweInputStream(getBlockIS()); final MutableFullBlockChange change = new MutableFullBlockChange(blockBag, inventory, dir); return new Iterator() { @@ -677,7 +682,7 @@ public abstract class FaweStreamChangeSet extends AbstractChangeSet { final Iterator biomeChange = getBiomeIterator(dir); return new Iterator() { - Iterator[] iterators = new Iterator[]{tileCreate, tileRemove, entityCreate, entityRemove, blockChange, biomeChange}; + final Iterator[] iterators = new Iterator[]{tileCreate, tileRemove, entityCreate, entityRemove, blockChange, biomeChange}; int i = 0; Iterator current = iterators[0]; @@ -757,4 +762,5 @@ public abstract class FaweStreamChangeSet extends AbstractChangeSet { } return summary; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/history/changeset/NullChangeSet.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/history/changeset/NullChangeSet.java index 6b4339adf..dd4fddf1a 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/history/changeset/NullChangeSet.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/history/changeset/NullChangeSet.java @@ -14,7 +14,7 @@ public class NullChangeSet extends AbstractChangeSet { public NullChangeSet(World world) { super(world); } - + @Override public final void close() { } @@ -75,4 +75,5 @@ public class NullChangeSet extends AbstractChangeSet { // TODO Auto-generated method stub } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/history/changeset/SimpleChangeSetSummary.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/history/changeset/SimpleChangeSetSummary.java index 290e940a6..7b6565355 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/history/changeset/SimpleChangeSetSummary.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/history/changeset/SimpleChangeSetSummary.java @@ -1,6 +1,5 @@ package com.fastasyncworldedit.core.history.changeset; -import com.fastasyncworldedit.core.history.changeset.ChangeSetSummary; import com.sk89q.worldedit.world.block.BlockState; import com.sk89q.worldedit.world.block.BlockTypesCache; @@ -8,6 +7,7 @@ import java.util.HashMap; import java.util.Map; public class SimpleChangeSetSummary implements ChangeSetSummary { + public int[] blocks; public int minX; @@ -66,4 +66,5 @@ public class SimpleChangeSetSummary implements ChangeSetSummary { } return count; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/internal/command/MethodInjector.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/internal/command/MethodInjector.java index d900a3797..573e17165 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/internal/command/MethodInjector.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/internal/command/MethodInjector.java @@ -9,9 +9,11 @@ import org.enginehub.piston.util.ValueProvider; import java.lang.reflect.Method; public class MethodInjector implements CommandCallListener { + @Override public void beforeCall(Method commandMethod, CommandParameters parameters) { InjectedValueStore store = parameters.injectedValue(Key.of(InjectedValueStore.class)).get(); store.injectValue(Key.of(Method.class), ValueProvider.constant(commandMethod)); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/internal/exception/FaweBlockBagException.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/internal/exception/FaweBlockBagException.java index 845628262..49aa6cb8c 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/internal/exception/FaweBlockBagException.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/internal/exception/FaweBlockBagException.java @@ -3,7 +3,9 @@ package com.fastasyncworldedit.core.internal.exception; import com.fastasyncworldedit.core.configuration.Caption; public class FaweBlockBagException extends FaweException { + public FaweBlockBagException() { super(Caption.of("fawe.error.worldedit.some.fails.blockbag")); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/internal/exception/FaweChunkLoadException.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/internal/exception/FaweChunkLoadException.java index c00675580..d75825862 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/internal/exception/FaweChunkLoadException.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/internal/exception/FaweChunkLoadException.java @@ -3,7 +3,9 @@ package com.fastasyncworldedit.core.internal.exception; import com.fastasyncworldedit.core.configuration.Caption; public class FaweChunkLoadException extends FaweException { + public FaweChunkLoadException() { super(Caption.of("fawe.cancel.worldedit.failed.load.chunk")); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/internal/exception/FaweException.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/internal/exception/FaweException.java index 3d923e376..1b296615f 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/internal/exception/FaweException.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/internal/exception/FaweException.java @@ -7,6 +7,7 @@ import com.sk89q.worldedit.util.formatting.text.TextComponent; import java.util.Locale; public class FaweException extends RuntimeException { + // DEBUG public static final FaweException _enableQueue = new FaweException("enableQueue"); public static final FaweException _disableQueue = new FaweException("disableQueue"); @@ -50,4 +51,5 @@ public class FaweException extends RuntimeException { public Throwable fillInStackTrace() { return this; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/internal/io/AbstractDelegateOutputStream.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/internal/io/AbstractDelegateOutputStream.java index 8ddcc2a1a..259b9f5c0 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/internal/io/AbstractDelegateOutputStream.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/internal/io/AbstractDelegateOutputStream.java @@ -4,6 +4,7 @@ import java.io.IOException; import java.io.OutputStream; public class AbstractDelegateOutputStream extends OutputStream { + private final OutputStream parent; @Override @@ -34,4 +35,5 @@ public class AbstractDelegateOutputStream extends OutputStream { public AbstractDelegateOutputStream(OutputStream os) { this.parent = os; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/internal/io/FastByteArrayOutputStream.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/internal/io/FastByteArrayOutputStream.java index 8ffc036b4..d41016781 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/internal/io/FastByteArrayOutputStream.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/internal/io/FastByteArrayOutputStream.java @@ -223,4 +223,5 @@ public class FastByteArrayOutputStream extends OutputStream { size = 0; buffers.clear(); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/internal/io/FastByteArraysInputStream.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/internal/io/FastByteArraysInputStream.java index 34434e691..117390902 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/internal/io/FastByteArraysInputStream.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/internal/io/FastByteArraysInputStream.java @@ -3,6 +3,7 @@ package com.fastasyncworldedit.core.internal.io; import java.io.InputStream; public class FastByteArraysInputStream extends InputStream { + private final byte[][] buffers; private final int length; @@ -107,4 +108,5 @@ public class FastByteArraysInputStream extends InputStream { public long length() { return this.length; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/internal/io/FaweInputStream.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/internal/io/FaweInputStream.java index 0a498ddc8..f4f1ace34 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/internal/io/FaweInputStream.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/internal/io/FaweInputStream.java @@ -74,4 +74,5 @@ public class FaweInputStream extends DataInputStream { } parent.close(); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/internal/io/FaweOutputStream.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/internal/io/FaweOutputStream.java index bf824c7c6..9bee3afe9 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/internal/io/FaweOutputStream.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/internal/io/FaweOutputStream.java @@ -92,4 +92,5 @@ public class FaweOutputStream extends DataOutputStream { } parent.close(); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/internal/io/LittleEndianOutputStream.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/internal/io/LittleEndianOutputStream.java index e003d8eb3..c37274a9f 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/internal/io/LittleEndianOutputStream.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/internal/io/LittleEndianOutputStream.java @@ -1,7 +1,6 @@ package com.fastasyncworldedit.core.internal.io; import javax.annotation.Nonnull; - import java.io.DataOutput; import java.io.FilterOutputStream; import java.io.IOException; @@ -19,8 +18,8 @@ public class LittleEndianOutputStream extends FilterOutputStream implements Data * Creates a new little endian output stream and chains it to the * output stream specified by the out argument. * - * @param out the underlying output stream. - * @see FilterOutputStream#out + * @param out the underlying output stream. + * @see FilterOutputStream#out */ public LittleEndianOutputStream(OutputStream out) { super(out); @@ -29,8 +28,8 @@ public class LittleEndianOutputStream extends FilterOutputStream implements Data /** * Writes the specified byte value to the underlying output stream. * - * @param b the {@code byte} value to be written. - * @exception IOException if the underlying stream throws an IOException. + * @param b the {@code byte} value to be written. + * @throws IOException if the underlying stream throws an IOException. */ @Override public synchronized void write(int b) throws IOException { @@ -42,10 +41,10 @@ public class LittleEndianOutputStream extends FilterOutputStream implements Data * Writes {@code length} bytes from the specified byte array * starting at {@code offset} to the underlying output stream. * - * @param data the data. - * @param offset the start offset in the data. - * @param length the number of bytes to write. - * @exception IOException if the underlying stream throws an IOException. + * @param data the data. + * @param offset the start offset in the data. + * @param length the number of bytes to write. + * @throws IOException if the underlying stream throws an IOException. */ @Override public synchronized void write(@Nonnull byte[] data, int offset, int length) @@ -60,8 +59,8 @@ public class LittleEndianOutputStream extends FilterOutputStream implements Data * a single byte. If the argument is true, the byte value 1 is written. * If the argument is false, the byte value {@code 0} in written. * - * @param b the {@code boolean} value to be written. - * @exception IOException if the underlying stream throws an IOException. + * @param b the {@code boolean} value to be written. + * @throws IOException if the underlying stream throws an IOException. */ @Override public void writeBoolean(boolean b) throws IOException { @@ -77,8 +76,8 @@ public class LittleEndianOutputStream extends FilterOutputStream implements Data /** * Writes out a {@code byte} to the underlying output stream * - * @param b the {@code byte} value to be written. - * @exception IOException if the underlying stream throws an IOException. + * @param b the {@code byte} value to be written. + * @throws IOException if the underlying stream throws an IOException. */ @Override public void writeByte(int b) throws IOException { @@ -90,8 +89,8 @@ public class LittleEndianOutputStream extends FilterOutputStream implements Data * Writes a two byte {@code short} to the underlying output stream in * little endian order, low byte first. * - * @param s the {@code short} to be written. - * @exception IOException if the underlying stream throws an IOException. + * @param s the {@code short} to be written. + * @throws IOException if the underlying stream throws an IOException. */ @Override public void writeShort(int s) throws IOException { @@ -106,8 +105,8 @@ public class LittleEndianOutputStream extends FilterOutputStream implements Data * Writes a two byte {@code char} to the underlying output stream * in little endian order, low byte first. * - * @param c the {@code char} value to be written. - * @exception IOException if the underlying stream throws an IOException. + * @param c the {@code char} value to be written. + * @throws IOException if the underlying stream throws an IOException. */ @Override public void writeChar(int c) throws IOException { @@ -122,8 +121,8 @@ public class LittleEndianOutputStream extends FilterOutputStream implements Data * Writes a four-byte {@code int} to the underlying output stream * in little endian order, low byte first, high byte last * - * @param i the {@code int} to be written. - * @exception IOException if the underlying stream throws an IOException. + * @param i the {@code int} to be written. + * @throws IOException if the underlying stream throws an IOException. */ @Override public void writeInt(int i) throws IOException { @@ -140,8 +139,8 @@ public class LittleEndianOutputStream extends FilterOutputStream implements Data * Writes an eight-byte {@code long} to the underlying output stream * in little endian order, low byte first, high byte last * - * @param l the {@code long} to be written. - * @exception IOException if the underlying stream throws an IOException. + * @param l the {@code long} to be written. + * @throws IOException if the underlying stream throws an IOException. */ @Override public void writeLong(long l) throws IOException { @@ -162,8 +161,8 @@ public class LittleEndianOutputStream extends FilterOutputStream implements Data * Writes a 4 byte Java float to the underlying output stream in * little endian order. * - * @param f the {@code float} value to be written. - * @exception IOException if an I/O error occurs. + * @param f the {@code float} value to be written. + * @throws IOException if an I/O error occurs. */ @Override public final void writeFloat(float f) throws IOException { @@ -176,8 +175,8 @@ public class LittleEndianOutputStream extends FilterOutputStream implements Data * Writes an 8 byte Java double to the underlying output stream in * little endian order. * - * @param d the {@code double} value to be written. - * @exception IOException if an I/O error occurs. + * @param d the {@code double} value to be written. + * @throws IOException if an I/O error occurs. */ @Override public final void writeDouble(double d) throws IOException { @@ -191,10 +190,10 @@ public class LittleEndianOutputStream extends FilterOutputStream implements Data * bytes. Each character is written to the data output stream as * if by the {@code writeByte()} method. * - * @param s the {@code String} value to be written. - * @exception IOException if the underlying stream throws an IOException. - * @see java.io.DataOutputStream#writeByte(int) - * @see java.io.DataOutputStream#out + * @param s the {@code String} value to be written. + * @throws IOException if the underlying stream throws an IOException. + * @see java.io.DataOutputStream#writeByte(int) + * @see java.io.DataOutputStream#out */ @Override public void writeBytes(String s) throws IOException { @@ -211,10 +210,10 @@ public class LittleEndianOutputStream extends FilterOutputStream implements Data * characters. Each character is written to the data output stream as * if by the {@code writeChar} method. * - * @param s a {@code String} value to be written. - * @exception IOException if the underlying stream throws an IOException. - * @see java.io.DataOutputStream#writeChar(int) - * @see java.io.DataOutputStream#out + * @param s a {@code String} value to be written. + * @throws IOException if the underlying stream throws an IOException. + * @see java.io.DataOutputStream#writeChar(int) + * @see java.io.DataOutputStream#out */ @Override public void writeChars(String s) throws IOException { @@ -239,10 +238,10 @@ public class LittleEndianOutputStream extends FilterOutputStream implements Data * in the string. Next each character of the string is written * using the UTF-8 encoding for the character. * - * @param s the string to be written. - * @exception UTFDataFormatException if the string is longer than - * 65,535 characters. - * @exception IOException if the underlying stream throws an IOException. + * @param s the string to be written. + * @throws UTFDataFormatException if the string is longer than + * 65,535 characters. + * @throws IOException if the underlying stream throws an IOException. */ @Override public void writeUTF(String s) throws IOException { @@ -250,7 +249,7 @@ public class LittleEndianOutputStream extends FilterOutputStream implements Data int numchars = s.length(); int numbytes = 0; - for (int i = 0 ; i < numchars ; i++) { + for (int i = 0; i < numchars; i++) { int c = s.charAt(i); if ((c >= 0x0001) && (c <= 0x007F)) { numbytes++; @@ -267,19 +266,17 @@ public class LittleEndianOutputStream extends FilterOutputStream implements Data out.write((numbytes >>> 8) & 0xFF); out.write(numbytes & 0xFF); - for (int i = 0 ; i < numchars ; i++) { + for (int i = 0; i < numchars; i++) { int c = s.charAt(i); if ((c >= 0x0001) && (c <= 0x007F)) { out.write(c); - } - else if (c > 0x07FF) { + } else if (c > 0x07FF) { out.write(0xE0 | ((c >> 12) & 0x0F)); - out.write(0x80 | ((c >> 6) & 0x3F)); + out.write(0x80 | ((c >> 6) & 0x3F)); out.write(0x80 | (c & 0x3F)); written += 2; - } - else { - out.write(0xC0 | ((c >> 6) & 0x1F)); + } else { + out.write(0xC0 | ((c >> 6) & 0x1F)); out.write(0x80 | (c & 0x3F)); written += 1; } @@ -294,7 +291,8 @@ public class LittleEndianOutputStream extends FilterOutputStream implements Data * (This class is not thread-safe with respect to this method. It is * possible that this number is temporarily less than the actual * number of bytes written.) - * @return the value of the {@code written} field. + * + * @return the value of the {@code written} field. */ public int size() { return this.written; diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/internal/io/NonCloseableInputStream.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/internal/io/NonCloseableInputStream.java index 9e9a74f25..72c047d8a 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/internal/io/NonCloseableInputStream.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/internal/io/NonCloseableInputStream.java @@ -10,6 +10,7 @@ public class NonCloseableInputStream extends InputStream { public NonCloseableInputStream(InputStream parent) { this.parent = parent; } + @Override public int read() throws IOException { return parent.read(); @@ -53,4 +54,5 @@ public class NonCloseableInputStream extends InputStream { public boolean markSupported() { return parent.markSupported(); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/internal/io/ResettableFileInputStream.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/internal/io/ResettableFileInputStream.java index 4db2a2da3..949492cbf 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/internal/io/ResettableFileInputStream.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/internal/io/ResettableFileInputStream.java @@ -6,6 +6,7 @@ import java.io.IOException; import java.nio.channels.FileChannel; public class ResettableFileInputStream extends FilterInputStream { + private final FileChannel myFileChannel; private long mark = 0; @@ -36,4 +37,5 @@ public class ResettableFileInputStream extends FilterInputStream { } myFileChannel.position(mark); } -} \ No newline at end of file + +} diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/jnbt/CompressedSchematicTag.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/jnbt/CompressedSchematicTag.java index d42768a87..e622b1501 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/jnbt/CompressedSchematicTag.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/jnbt/CompressedSchematicTag.java @@ -1,10 +1,10 @@ package com.fastasyncworldedit.core.jnbt; +import com.fastasyncworldedit.core.extent.clipboard.io.FastSchematicWriter; import com.fastasyncworldedit.core.internal.io.FastByteArrayOutputStream; import com.fastasyncworldedit.core.internal.io.FastByteArraysInputStream; import com.sk89q.jnbt.NBTOutputStream; import com.sk89q.worldedit.extent.clipboard.Clipboard; -import com.fastasyncworldedit.core.extent.clipboard.io.FastSchematicWriter; import net.jpountz.lz4.LZ4BlockInputStream; import net.jpountz.lz4.LZ4BlockOutputStream; diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/jnbt/JSON2NBT.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/jnbt/JSON2NBT.java index e609bc9ac..14f9fc5d1 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/jnbt/JSON2NBT.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/jnbt/JSON2NBT.java @@ -22,6 +22,7 @@ import java.util.Stack; import java.util.regex.Pattern; public class JSON2NBT { + private static final Pattern INT_ARRAY_MATCHER = Pattern.compile("\\[[-+\\d|,\\s]+\\]"); private JSON2NBT() { @@ -30,7 +31,7 @@ public class JSON2NBT { public static CompoundTag getTagFromJson(String jsonString) throws NBTException { jsonString = jsonString.trim(); if (!jsonString.startsWith("{")) { - throw new NBTException("Invalid tag encountered, expected \'{\' as first char."); + throw new NBTException("Invalid tag encountered, expected '{' as first char."); } else if (topTagsCount(jsonString) != 1) { throw new NBTException("Encountered multiple top tags, only one expected"); } else { @@ -111,7 +112,7 @@ public class JSON2NBT { c01 = value.charAt(s.length()); if (c01 != 44 && c01 != 123 && c01 != 125 && c01 != 91 && c01 != 93) { - throw new NBTException("Unexpected token \'" + c01 + "\' at: " + value.substring(s.length())); + throw new NBTException("Unexpected token '" + c01 + "' at: " + value.substring(s.length())); } } @@ -133,7 +134,7 @@ public class JSON2NBT { c01 = value.charAt(s.length()); if (c01 != 44 && c01 != 123 && c01 != 125 && c01 != 91 && c01 != 93) { - throw new NBTException("Unexpected token \'" + c01 + "\' at: " + value.substring(s.length())); + throw new NBTException("Unexpected token '" + c01 + "' at: " + value.substring(s.length())); } } @@ -289,6 +290,7 @@ public class JSON2NBT { } private static class Primitive extends JSON2NBT.Any { + private static final Pattern DOUBLE = Pattern.compile("[-+]?[0-9]*\\.?[0-9]+[d|D]"); private static final Pattern FLOAT = Pattern.compile("[-+]?[0-9]*\\.?[0-9]+[f|F]"); private static final Pattern BYTE = Pattern.compile("[-+]?[0-9]+[b|B]"); @@ -344,7 +346,7 @@ public class JSON2NBT { if (this.jsonValue.startsWith("[") && this.jsonValue.endsWith("]")) { String var7 = this.jsonValue.substring(1, this.jsonValue.length() - 1); - String[] var8 = (String[]) ((String[]) Iterables.toArray(SPLITTER.split(var7), String.class)); + String[] var8 = Iterables.toArray(SPLITTER.split(var7), String.class); try { int[] var5 = new int[var8.length]; @@ -377,9 +379,11 @@ public class JSON2NBT { return new StringTag(stringbuilder.toString()); } } + } private static class List extends JSON2NBT.Any { + protected java.util.List tagList = Lists.newArrayList(); public List(String json) { @@ -397,9 +401,11 @@ public class JSON2NBT { Class tagType = list.isEmpty() ? CompoundTag.class : list.get(0).getClass(); return new ListTag(tagType, list); } + } private static class Compound extends JSON2NBT.Any { + protected java.util.List tagList = Lists.newArrayList(); public Compound(String jsonIn) { @@ -417,14 +423,18 @@ public class JSON2NBT { return new CompoundTag(map); } + } private abstract static class Any { + protected String json; Any() { } public abstract Tag parse() throws NBTException; + } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/jnbt/NBTException.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/jnbt/NBTException.java index e8dbbfa90..69c6a540e 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/jnbt/NBTException.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/jnbt/NBTException.java @@ -1,6 +1,7 @@ package com.fastasyncworldedit.core.jnbt; public class NBTException extends RuntimeException { + public NBTException(String message) { super(message); } @@ -14,4 +15,5 @@ public class NBTException extends RuntimeException { public Throwable fillInStackTrace() { return this; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/jnbt/streamer/InfoReader.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/jnbt/streamer/InfoReader.java index 6553c2df4..a11e06362 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/jnbt/streamer/InfoReader.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/jnbt/streamer/InfoReader.java @@ -3,10 +3,12 @@ package com.fastasyncworldedit.core.jnbt.streamer; import java.io.IOException; public interface InfoReader extends StreamReader { + void apply(int length, int type) throws IOException; @Override default void apply(int i, Integer value) throws IOException { apply(i, value.intValue()); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/jnbt/streamer/IntValueReader.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/jnbt/streamer/IntValueReader.java index 501497320..34996a163 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/jnbt/streamer/IntValueReader.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/jnbt/streamer/IntValueReader.java @@ -3,10 +3,12 @@ package com.fastasyncworldedit.core.jnbt.streamer; import java.io.IOException; public interface IntValueReader extends ValueReader { + void applyInt(int index, int value) throws IOException; @Override default void apply(int index, Integer value) throws IOException { applyInt(index, value); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/jnbt/streamer/LazyReader.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/jnbt/streamer/LazyReader.java index d12685fae..4c4d3cdd9 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/jnbt/streamer/LazyReader.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/jnbt/streamer/LazyReader.java @@ -6,5 +6,7 @@ import java.io.DataInputStream; import java.io.IOException; public interface LazyReader extends StreamReader { + void apply(int index, NBTInputStream stream) throws IOException; + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/jnbt/streamer/LongValueReader.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/jnbt/streamer/LongValueReader.java index 2d9e022de..9c61124b0 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/jnbt/streamer/LongValueReader.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/jnbt/streamer/LongValueReader.java @@ -3,10 +3,12 @@ package com.fastasyncworldedit.core.jnbt.streamer; import java.io.IOException; public interface LongValueReader extends ValueReader { + void applyLong(int index, long value) throws IOException; @Override default void apply(int index, Long value) throws IOException { applyLong(index, value); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/jnbt/streamer/StreamDelegate.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/jnbt/streamer/StreamDelegate.java index 1e26e4d41..18343f88e 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/jnbt/streamer/StreamDelegate.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/jnbt/streamer/StreamDelegate.java @@ -44,7 +44,11 @@ public class StreamDelegate { private StreamDelegate add(String name, StreamDelegate scope) { if (valueReader != null) { - LOGGER.warn("Scope {} | {} may not run, as the stream is only read once, and a value reader is already set", name, scope); + LOGGER.warn( + "Scope {} | {} may not run, as the stream is only read once, and a value reader is already set", + name, + scope + ); } byte[] bytes = name.getBytes(NBTConstants.CHARSET); int maxSize = bytes.length; @@ -116,7 +120,7 @@ public class StreamDelegate { } if (index != keys.length - 1) { int max; - for (max = index + 1; max < keys.length;) { + for (max = index + 1; max < keys.length; ) { byte[] key = keys[max]; if (key.length == nameLength) { max++; @@ -228,4 +232,5 @@ public class StreamDelegate { } return false; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/jnbt/streamer/StreamReader.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/jnbt/streamer/StreamReader.java index abea69930..6e767823a 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/jnbt/streamer/StreamReader.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/jnbt/streamer/StreamReader.java @@ -3,5 +3,7 @@ package com.fastasyncworldedit.core.jnbt.streamer; import java.io.IOException; public interface StreamReader { + void apply(int i, T value) throws IOException; + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/jnbt/streamer/ValueReader.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/jnbt/streamer/ValueReader.java index a667051bd..564c036a0 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/jnbt/streamer/ValueReader.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/jnbt/streamer/ValueReader.java @@ -3,6 +3,7 @@ package com.fastasyncworldedit.core.jnbt.streamer; import java.io.IOException; public interface ValueReader extends StreamReader { + void apply(int index, T value) throws IOException; default void applyInt(int index, int value) throws IOException { @@ -20,4 +21,5 @@ public interface ValueReader extends StreamReader { default void applyDouble(int index, double value) throws IOException { apply(index, (T) (Double) value); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/math/BitArray.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/math/BitArray.java index bf492e3d1..7897899f4 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/math/BitArray.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/math/BitArray.java @@ -175,4 +175,5 @@ public final class BitArray { } return buffer; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/math/BitArrayUnstretched.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/math/BitArrayUnstretched.java index 3b759c879..c49eb61fa 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/math/BitArrayUnstretched.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/math/BitArrayUnstretched.java @@ -126,4 +126,5 @@ public final class BitArrayUnstretched { } return buffer; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/math/BlockVector3ChunkMap.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/math/BlockVector3ChunkMap.java index d25f347dc..f36bd8f51 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/math/BlockVector3ChunkMap.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/math/BlockVector3ChunkMap.java @@ -8,6 +8,7 @@ import it.unimi.dsi.fastutil.shorts.Short2ObjectArrayMap; import java.util.Map; public class BlockVector3ChunkMap implements IAdaptedMap { + private final Short2ObjectArrayMap map = new Short2ObjectArrayMap<>(); @Override @@ -58,4 +59,5 @@ public class BlockVector3ChunkMap implements IAdaptedMap */ public class BlockVectorSet extends AbstractCollection implements Set { + private final Int2ObjectMap localSets = new Int2ObjectOpenHashMap<>(); @Override @@ -118,7 +119,11 @@ public class BlockVectorSet extends AbstractCollection implements int pair = entry.getIntKey(); int cx = MathMan.unpairX(pair); int cz = MathMan.unpairY(pair); - return mutable.setComponents((cx << 11) + localPos.getBlockX(), localPos.getBlockY(), (cz << 11) + localPos.getBlockZ()); + return mutable.setComponents( + (cx << 11) + localPos.getBlockX(), + localPos.getBlockY(), + (cz << 11) + localPos.getBlockZ() + ); } }; } @@ -210,4 +215,5 @@ public class BlockVectorSet extends AbstractCollection implements public void clear() { localSets.clear(); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/math/DelegateBlockVector3.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/math/DelegateBlockVector3.java index a4dd259e8..84ac1d542 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/math/DelegateBlockVector3.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/math/DelegateBlockVector3.java @@ -11,6 +11,7 @@ import com.sk89q.worldedit.world.block.BlockState; import java.util.Comparator; public class DelegateBlockVector3 extends BlockVector3 { + private BlockVector3 parent; public DelegateBlockVector3 init(BlockVector3 parent) { @@ -396,4 +397,5 @@ public class DelegateBlockVector3 extends BlockVector3 { public BlockVector3 plus(BlockVector3 other) { return parent.plus(other); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/math/FastBitSet.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/math/FastBitSet.java index 97d539416..d68263cce 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/math/FastBitSet.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/math/FastBitSet.java @@ -3,6 +3,7 @@ package com.fastasyncworldedit.core.math; import java.util.Arrays; public final class FastBitSet { + private final int size; private final long[] bits; @@ -245,6 +246,7 @@ public final class FastBitSet { } public final class IntIterator { + int index = 0; long bitBuffer = 0; int value = 0; @@ -267,5 +269,7 @@ public final class FastBitSet { public int getValue() { return value; } + } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/math/IntPair.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/math/IntPair.java index dbb92a118..69d41bc38 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/math/IntPair.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/math/IntPair.java @@ -1,6 +1,7 @@ package com.fastasyncworldedit.core.math; public final class IntPair { + public int x; public int z; @@ -30,4 +31,5 @@ public final class IntPair { final IntPair other = (IntPair) obj; return (this.x == other.x) && (this.z == other.z); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/math/IntTriple.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/math/IntTriple.java index 9cbe86f6c..31ffa3ccc 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/math/IntTriple.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/math/IntTriple.java @@ -42,4 +42,5 @@ public final class IntTriple { } return false; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/math/LocalBlockVectorSet.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/math/LocalBlockVectorSet.java index 2283f71a7..592b45a00 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/math/LocalBlockVectorSet.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/math/LocalBlockVectorSet.java @@ -3,8 +3,8 @@ package com.fastasyncworldedit.core.math; import com.fastasyncworldedit.core.util.MathMan; import com.sk89q.worldedit.math.BlockVector3; import com.zaxxer.sparsebits.SparseBitSet; -import javax.annotation.Nonnull; +import javax.annotation.Nonnull; import java.util.Collection; import java.util.Iterator; import java.util.Set; @@ -15,6 +15,7 @@ import java.util.Set; * - This will use 8 bytes for every 64 BlockVectors (about 800x less than a HashSet) */ public class LocalBlockVectorSet implements Set { + private int offsetX; private int offsetZ; private final SparseBitSet set; @@ -70,7 +71,8 @@ public class LocalBlockVectorSet implements Set { int b2 = (byte) (index >> 8) & 0x7F; int b3 = (byte) (index >> 15) & 0xFF; int b4 = (byte) (index >> 23) & 0xFF; - if (Math.abs((offsetX + (((b3 + ((MathMan.unpair8x(b2)) << 8)) << 21) >> 21)) - x) <= radius && Math.abs((offsetZ + (((b4 + ((MathMan.unpair8y(b2)) << 8)) << 21) >> 21)) - z) <= radius && Math.abs((b1) - y) <= radius) { + if (Math.abs((offsetX + (((b3 + ((MathMan.unpair8x(b2)) << 8)) << 21) >> 21)) - x) <= radius && Math.abs((offsetZ + (((b4 + ((MathMan + .unpair8y(b2)) << 8)) << 21) >> 21)) - z) <= radius && Math.abs((b1) - y) <= radius) { return true; } } @@ -119,12 +121,13 @@ public class LocalBlockVectorSet implements Set { return null; } - @Nonnull @Override + @Nonnull + @Override public Iterator iterator() { return new Iterator() { int index = set.nextSetBit(0); int previous = -1; - MutableBlockVector3 mutable = new MutableBlockVector3(0, 0, 0); + final MutableBlockVector3 mutable = new MutableBlockVector3(0, 0, 0); @Override public void remove() { @@ -155,12 +158,14 @@ public class LocalBlockVectorSet implements Set { }; } - @Nonnull @Override + @Nonnull + @Override public Object[] toArray() { return toArray((Object[]) null); } - @Nonnull @Override + @Nonnull + @Override public T[] toArray(T[] array) { int size = size(); if (array == null || array.length < size) { @@ -201,7 +206,8 @@ public class LocalBlockVectorSet implements Set { int relX = x - offsetX; int relZ = z - offsetZ; if (relX > 1023 || relX < -1024 || relZ > 1023 || relZ < -1024) { - throw new UnsupportedOperationException("LocalVectorSet can only contain vectors within 1024 blocks (cuboid) of the first entry. "); + throw new UnsupportedOperationException( + "LocalVectorSet can only contain vectors within 1024 blocks (cuboid) of the first entry. "); } if (y < 0 || y > 255) { throw new UnsupportedOperationException("LocalVectorSet can only contain vectors from y elem:[0,255]"); @@ -317,7 +323,9 @@ public class LocalBlockVectorSet implements Set { } public interface BlockVectorSetVisitor { + void run(int x, int y, int z, int index); + } @Override @@ -326,4 +334,5 @@ public class LocalBlockVectorSet implements Set { offsetX = Integer.MAX_VALUE; set.clear(); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/math/MutableBlockVector2.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/math/MutableBlockVector2.java index 42a090682..0d755eec6 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/math/MutableBlockVector2.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/math/MutableBlockVector2.java @@ -4,7 +4,7 @@ import com.sk89q.worldedit.math.BlockVector2; public class MutableBlockVector2 extends BlockVector2 { - private static ThreadLocal MUTABLE_CACHE = ThreadLocal.withInitial(MutableBlockVector2::new); + private static final ThreadLocal MUTABLE_CACHE = ThreadLocal.withInitial(MutableBlockVector2::new); public static MutableBlockVector2 get(int x, int z) { return MUTABLE_CACHE.get().setComponents(x, z); @@ -47,4 +47,5 @@ public class MutableBlockVector2 extends BlockVector2 { this.z = z; return this; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/math/MutableBlockVector3.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/math/MutableBlockVector3.java index 1b00fe38e..2dad4500d 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/math/MutableBlockVector3.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/math/MutableBlockVector3.java @@ -96,4 +96,5 @@ public class MutableBlockVector3 extends BlockVector3 { this.z = z; return this; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/math/MutableVector3.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/math/MutableVector3.java index 4342150b9..a23b910ce 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/math/MutableVector3.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/math/MutableVector3.java @@ -19,7 +19,7 @@ public class MutableVector3 extends Vector3 { } public MutableVector3(float x, float y, float z) { - this((double) x, (double) y, (double) z); + this(x, y, (double) z); } public MutableVector3(Vector3 other) { diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/math/OffsetBlockVector3.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/math/OffsetBlockVector3.java index 6c73273a4..044a623de 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/math/OffsetBlockVector3.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/math/OffsetBlockVector3.java @@ -3,6 +3,7 @@ package com.fastasyncworldedit.core.math; import com.sk89q.worldedit.math.BlockVector3; public class OffsetBlockVector3 extends DelegateBlockVector3 { + private final BlockVector3 offset; public OffsetBlockVector3(BlockVector3 offset) { @@ -23,4 +24,5 @@ public class OffsetBlockVector3 extends DelegateBlockVector3 { public int getZ() { return super.getZ() + offset.getZ(); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/math/Vector3Impl.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/math/Vector3Impl.java index 9a5cf7b2f..c1092a881 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/math/Vector3Impl.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/math/Vector3Impl.java @@ -3,6 +3,7 @@ package com.fastasyncworldedit.core.math; import com.sk89q.worldedit.math.Vector3; public class Vector3Impl extends Vector3 { + private final double x; private final double y; private final double z; @@ -31,4 +32,5 @@ public class Vector3Impl extends Vector3 { public final double getZ() { return z; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/math/random/NoiseRandom.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/math/random/NoiseRandom.java index 0c5b86c2a..1bb0abd13 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/math/random/NoiseRandom.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/math/random/NoiseRandom.java @@ -31,4 +31,5 @@ public class NoiseRandom implements SimpleRandom { } return d; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/math/random/SimpleRandom.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/math/random/SimpleRandom.java index f8004eb41..e38214936 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/math/random/SimpleRandom.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/math/random/SimpleRandom.java @@ -17,9 +17,9 @@ public interface SimpleRandom { * Generate a random integer from three integer components. * The generated value is between 0 (inclusive) and 1 (exclusive) * - * @param x the first component - * @param y the second component - * @param z the third component + * @param x the first component + * @param y the second component + * @param z the third component * @param bound the upper bound (exclusive) * @return a random integer between 0 (inclusive) and {@code bound} (exclusive) */ @@ -27,4 +27,5 @@ public interface SimpleRandom { double val = nextDouble(x, y, z); return (int) (val * bound); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/math/random/SimplexNoise.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/math/random/SimplexNoise.java index fd14b036f..e7e72aa51 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/math/random/SimplexNoise.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/math/random/SimplexNoise.java @@ -17,11 +17,17 @@ package com.fastasyncworldedit.core.math.random; */ public class SimplexNoise { - private static Grad grad3[] = {new Grad(1, 1, 0), new Grad(-1, 1, 0), new Grad(1, -1, 0), new Grad(-1, -1, 0), + + private static final Grad[] grad3 = {new Grad(1, 1, 0), new Grad(-1, 1, 0), new Grad(1, -1, 0), new Grad(-1, -1, 0), new Grad(1, 0, 1), new Grad(-1, 0, 1), new Grad(1, 0, -1), new Grad(-1, 0, -1), new Grad(0, 1, 1), new Grad(0, -1, 1), new Grad(0, 1, -1), new Grad(0, -1, -1)}; - private static Grad grad4[] = {new Grad(0, 1, 1, 1), new Grad(0, 1, 1, -1), new Grad(0, 1, -1, 1), new Grad(0, 1, -1, -1), + private static final Grad[] grad4 = {new Grad(0, 1, 1, 1), new Grad(0, 1, 1, -1), new Grad(0, 1, -1, 1), new Grad( + 0, + 1, + -1, + -1 + ), new Grad(0, -1, 1, 1), new Grad(0, -1, 1, -1), new Grad(0, -1, -1, 1), new Grad(0, -1, -1, -1), new Grad(1, 0, 1, 1), new Grad(1, 0, 1, -1), new Grad(1, 0, -1, 1), new Grad(1, 0, -1, -1), new Grad(-1, 0, 1, 1), new Grad(-1, 0, 1, -1), new Grad(-1, 0, -1, 1), new Grad(-1, 0, -1, -1), @@ -30,7 +36,7 @@ public class SimplexNoise { new Grad(1, 1, 1, 0), new Grad(1, 1, -1, 0), new Grad(1, -1, 1, 0), new Grad(1, -1, -1, 0), new Grad(-1, 1, 1, 0), new Grad(-1, 1, -1, 0), new Grad(-1, -1, 1, 0), new Grad(-1, -1, -1, 0)}; - private static short p[] = {151, 160, 137, 91, 90, 15, + private static final short[] p = {151, 160, 137, 91, 90, 15, 131, 13, 201, 95, 96, 53, 194, 233, 7, 225, 140, 36, 103, 30, 69, 142, 8, 99, 37, 240, 21, 10, 23, 190, 6, 148, 247, 120, 234, 75, 0, 26, 197, 62, 94, 252, 219, 203, 117, 35, 11, 32, 57, 177, 33, 88, 237, 149, 56, 87, 174, 20, 125, 136, 171, 168, 68, 175, 74, 165, 71, 134, 139, 48, 27, 166, @@ -44,8 +50,8 @@ public class SimplexNoise { 49, 192, 214, 31, 181, 199, 106, 157, 184, 84, 204, 176, 115, 121, 50, 45, 127, 4, 150, 254, 138, 236, 205, 93, 222, 114, 67, 29, 24, 72, 243, 141, 128, 195, 78, 66, 215, 61, 156, 180}; // To remove the need for index wrapping, double the permutation table length - private static short perm[] = new short[512]; - private static short permMod12[] = new short[512]; + private static final short[] perm = new short[512]; + private static final short[] permMod12 = new short[512]; static { for (int i = 0; i < 512; i++) { @@ -119,20 +125,23 @@ public class SimplexNoise { int gi2 = permMod12[ii + 1 + perm[jj + 1]]; // Calculate the contribution from the three corners double t0 = 0.5 - x0 * x0 - y0 * y0; - if (t0 < 0) n0 = 0.0; - else { + if (t0 < 0) { + n0 = 0.0; + } else { t0 *= t0; n0 = t0 * t0 * dot(grad3[gi0], x0, y0); // (x,y) of grad3 used for 2D gradient } double t1 = 0.5 - x1 * x1 - y1 * y1; - if (t1 < 0) n1 = 0.0; - else { + if (t1 < 0) { + n1 = 0.0; + } else { t1 *= t1; n1 = t1 * t1 * dot(grad3[gi1], x1, y1); } double t2 = 0.5 - x2 * x2 - y2 * y2; - if (t2 < 0) n2 = 0.0; - else { + if (t2 < 0) { + n2 = 0.0; + } else { t2 *= t2; n2 = t2 * t2 * dot(grad3[gi2], x2, y2); } @@ -235,26 +244,30 @@ public class SimplexNoise { int gi3 = permMod12[ii + 1 + perm[jj + 1 + perm[kk + 1]]]; // Calculate the contribution from the four corners double t0 = 0.6 - x0 * x0 - y0 * y0 - z0 * z0; - if (t0 < 0) n0 = 0.0; - else { + if (t0 < 0) { + n0 = 0.0; + } else { t0 *= t0; n0 = t0 * t0 * dot(grad3[gi0], x0, y0, z0); } double t1 = 0.6 - x1 * x1 - y1 * y1 - z1 * z1; - if (t1 < 0) n1 = 0.0; - else { + if (t1 < 0) { + n1 = 0.0; + } else { t1 *= t1; n1 = t1 * t1 * dot(grad3[gi1], x1, y1, z1); } double t2 = 0.6 - x2 * x2 - y2 * y2 - z2 * z2; - if (t2 < 0) n2 = 0.0; - else { + if (t2 < 0) { + n2 = 0.0; + } else { t2 *= t2; n2 = t2 * t2 * dot(grad3[gi2], x2, y2, z2); } double t3 = 0.6 - x3 * x3 - y3 * y3 - z3 * z3; - if (t3 < 0) n3 = 0.0; - else { + if (t3 < 0) { + n3 = 0.0; + } else { t3 *= t3; n3 = t3 * t3 * dot(grad3[gi3], x3, y3, z3); } @@ -292,18 +305,36 @@ public class SimplexNoise { int ranky = 0; int rankz = 0; int rankw = 0; - if (x0 > y0) rankx++; - else ranky++; - if (x0 > z0) rankx++; - else rankz++; - if (x0 > w0) rankx++; - else rankw++; - if (y0 > z0) ranky++; - else rankz++; - if (y0 > w0) ranky++; - else rankw++; - if (z0 > w0) rankz++; - else rankw++; + if (x0 > y0) { + rankx++; + } else { + ranky++; + } + if (x0 > z0) { + rankx++; + } else { + rankz++; + } + if (x0 > w0) { + rankx++; + } else { + rankw++; + } + if (y0 > z0) { + ranky++; + } else { + rankz++; + } + if (y0 > w0) { + ranky++; + } else { + rankw++; + } + if (z0 > w0) { + rankz++; + } else { + rankw++; + } int i1, j1, k1, l1; // The integer offsets for the second simplex corner int i2, j2, k2, l2; // The integer offsets for the third simplex corner int i3, j3, k3, l3; // The integer offsets for the fourth simplex corner @@ -353,32 +384,37 @@ public class SimplexNoise { int gi4 = perm[ii + 1 + perm[jj + 1 + perm[kk + 1 + perm[ll + 1]]]] % 32; // Calculate the contribution from the five corners double t0 = 0.6 - x0 * x0 - y0 * y0 - z0 * z0 - w0 * w0; - if (t0 < 0) n0 = 0.0; - else { + if (t0 < 0) { + n0 = 0.0; + } else { t0 *= t0; n0 = t0 * t0 * dot(grad4[gi0], x0, y0, z0, w0); } double t1 = 0.6 - x1 * x1 - y1 * y1 - z1 * z1 - w1 * w1; - if (t1 < 0) n1 = 0.0; - else { + if (t1 < 0) { + n1 = 0.0; + } else { t1 *= t1; n1 = t1 * t1 * dot(grad4[gi1], x1, y1, z1, w1); } double t2 = 0.6 - x2 * x2 - y2 * y2 - z2 * z2 - w2 * w2; - if (t2 < 0) n2 = 0.0; - else { + if (t2 < 0) { + n2 = 0.0; + } else { t2 *= t2; n2 = t2 * t2 * dot(grad4[gi2], x2, y2, z2, w2); } double t3 = 0.6 - x3 * x3 - y3 * y3 - z3 * z3 - w3 * w3; - if (t3 < 0) n3 = 0.0; - else { + if (t3 < 0) { + n3 = 0.0; + } else { t3 *= t3; n3 = t3 * t3 * dot(grad4[gi3], x3, y3, z3, w3); } double t4 = 0.6 - x4 * x4 - y4 * y4 - z4 * z4 - w4 * w4; - if (t4 < 0) n4 = 0.0; - else { + if (t4 < 0) { + n4 = 0.0; + } else { t4 *= t4; n4 = t4 * t4 * dot(grad4[gi4], x4, y4, z4, w4); } @@ -389,6 +425,7 @@ public class SimplexNoise { // Inner class to speed upp gradient computations // (In Java, array access is a lot slower than member access) private static class Grad { + double x, y, z, w; Grad(double x, double y, double z) { @@ -403,5 +440,7 @@ public class SimplexNoise { this.z = z; this.w = w; } + } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/math/random/SimplexNoiseGenerator.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/math/random/SimplexNoiseGenerator.java index 8c937836e..8d8aeedf5 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/math/random/SimplexNoiseGenerator.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/math/random/SimplexNoiseGenerator.java @@ -20,4 +20,5 @@ public class SimplexNoiseGenerator implements NoiseGenerator { // we need to go from [-1, 1] to [0, 1] and from double to float return (float) ((d + 1) * 0.5); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/math/random/TrueRandom.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/math/random/TrueRandom.java index f4d7d9df6..5452741a4 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/math/random/TrueRandom.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/math/random/TrueRandom.java @@ -15,4 +15,5 @@ public class TrueRandom implements SimpleRandom { public int nextInt(int x, int y, int z, int len) { return random.nextInt(len); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/math/transform/RoundedTransform.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/math/transform/RoundedTransform.java index aefc2997a..af2312a48 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/math/transform/RoundedTransform.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/math/transform/RoundedTransform.java @@ -4,6 +4,7 @@ import com.sk89q.worldedit.math.Vector3; import com.sk89q.worldedit.math.transform.Transform; public class RoundedTransform implements Transform { + private final Transform transform; public RoundedTransform(Transform transform) { @@ -34,4 +35,5 @@ public class RoundedTransform implements Transform { public Transform getTransform() { return transform; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/object/FaweLimit.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/object/FaweLimit.java index 3c90998b0..7bbb86994 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/object/FaweLimit.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/object/FaweLimit.java @@ -5,6 +5,7 @@ import com.fastasyncworldedit.core.FaweCache; import java.util.Set; public class FaweLimit { + public int MAX_ACTIONS = 0; public int MAX_CHANGES = 0; public int MAX_FAILS = 0; @@ -178,6 +179,7 @@ public class FaweLimit { throw FaweCache.MAX_CHANGES; } } + public void THROW_MAX_CHANGES(long amt) { if ((MAX_CHANGES -= amt) <= 0) { throw FaweCache.MAX_CHANGES; @@ -222,17 +224,17 @@ public class FaweLimit { public boolean isUnlimited() { return MAX_CHANGES == Integer.MAX_VALUE - && MAX_FAILS == Integer.MAX_VALUE - && MAX_CHECKS == Integer.MAX_VALUE - && MAX_ITERATIONS == Integer.MAX_VALUE - && MAX_BLOCKSTATES == Integer.MAX_VALUE - && MAX_ENTITIES == Integer.MAX_VALUE - && MAX_HISTORY == Integer.MAX_VALUE - && INVENTORY_MODE == 0 - && SPEED_REDUCTION == 0 - && FAST_PLACEMENT - && !RESTRICT_HISTORY_TO_REGIONS - && (STRIP_NBT == null || STRIP_NBT.isEmpty()); + && MAX_FAILS == Integer.MAX_VALUE + && MAX_CHECKS == Integer.MAX_VALUE + && MAX_ITERATIONS == Integer.MAX_VALUE + && MAX_BLOCKSTATES == Integer.MAX_VALUE + && MAX_ENTITIES == Integer.MAX_VALUE + && MAX_HISTORY == Integer.MAX_VALUE + && INVENTORY_MODE == 0 + && SPEED_REDUCTION == 0 + && FAST_PLACEMENT + && !RESTRICT_HISTORY_TO_REGIONS + && (STRIP_NBT == null || STRIP_NBT.isEmpty()); } public void set(FaweLimit limit) { @@ -275,4 +277,5 @@ public class FaweLimit { public String toString() { return MAX_CHANGES + ""; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/Filter.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/Filter.java index b004b0dbb..d12f2d801 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/Filter.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/Filter.java @@ -18,8 +18,10 @@ public interface Filter { * @param chunkZ the z coordinate in the chunk * @return */ - default boolean appliesChunk(@Range(from = 0, to = 15) int chunkX, - @Range(from = 0, to = 15) int chunkZ) { + default boolean appliesChunk( + @Range(from = 0, to = 15) int chunkX, + @Range(from = 0, to = 15) int chunkZ + ) { return true; } @@ -68,4 +70,5 @@ public interface Filter { default void join() { } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/FilterBlockMask.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/FilterBlockMask.java index e368772b1..b4dd0d554 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/FilterBlockMask.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/FilterBlockMask.java @@ -5,4 +5,5 @@ import com.fastasyncworldedit.core.extent.filter.block.FilterBlock; public interface FilterBlockMask { boolean applyBlock(FilterBlock block); + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/IBatchProcessor.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/IBatchProcessor.java index 8a6114e9b..392990f1a 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/IBatchProcessor.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/IBatchProcessor.java @@ -7,8 +7,8 @@ import com.fastasyncworldedit.core.extent.processor.ProcessorScope; import com.sk89q.jnbt.CompoundTag; import com.sk89q.worldedit.extent.Extent; import com.sk89q.worldedit.math.BlockVector3; -import javax.annotation.Nullable; +import javax.annotation.Nullable; import java.util.Map; import java.util.Set; import java.util.concurrent.Future; @@ -37,6 +37,7 @@ public interface IBatchProcessor { /** * Utility method to trim a chunk based on min and max Y. + * * @return false if chunk is empty of blocks */ default boolean trimY(IChunkSet set, int minY, int maxY) { @@ -99,7 +100,7 @@ public interface IBatchProcessor { Map tiles = set.getTiles(); if (!tiles.isEmpty()) { tiles.entrySet().removeIf(blockVector3CompoundTagEntry -> !contains - .apply(blockVector3CompoundTagEntry.getKey())); + .apply(blockVector3CompoundTagEntry.getKey())); } return !tiles.isEmpty() || !ents.isEmpty(); } @@ -134,4 +135,5 @@ public interface IBatchProcessor { default ProcessorScope getScope() { return ProcessorScope.CUSTOM; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/IBlocks.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/IBlocks.java index c4be33f94..25aa33470 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/IBlocks.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/IBlocks.java @@ -1,14 +1,14 @@ package com.fastasyncworldedit.core.queue; import com.fastasyncworldedit.core.FaweCache; -import com.fastasyncworldedit.core.internal.io.FaweOutputStream; import com.fastasyncworldedit.core.internal.io.FastByteArrayOutputStream; +import com.fastasyncworldedit.core.internal.io.FaweOutputStream; +import com.fastasyncworldedit.core.world.block.BlockID; import com.sk89q.jnbt.CompoundTag; import com.sk89q.worldedit.WorldEdit; import com.sk89q.worldedit.extension.platform.Capability; import com.sk89q.worldedit.math.BlockVector3; import com.sk89q.worldedit.world.biome.BiomeType; -import com.fastasyncworldedit.core.world.block.BlockID; import com.sk89q.worldedit.world.block.BlockState; import com.sk89q.worldedit.world.registry.BlockRegistry; import org.jetbrains.annotations.Range; @@ -39,7 +39,7 @@ public interface IBlocks extends Trimable { default int getBitMask() { return IntStream.range(0, FaweCache.IMP.CHUNK_LAYERS).filter(this::hasSection) - .map(layer -> (1 << layer)).sum(); + .map(layer -> (1 << layer)).sum(); } void removeSectionLighting(int layer, boolean sky); @@ -58,7 +58,7 @@ public interface IBlocks extends Trimable { } BlockRegistry registry = WorldEdit.getInstance().getPlatformManager() - .queryCapability(Capability.GAME_HOOKS).getRegistries().getBlockRegistry(); + .queryCapability(Capability.GAME_HOOKS).getRegistries().getBlockRegistry(); FastByteArrayOutputStream sectionByteArray = new FastByteArrayOutputStream(buffer); try (FaweOutputStream sectionWriter = new FaweOutputStream(sectionByteArray)) { for (int layer = 0; layer < FaweCache.IMP.CHUNK_LAYERS; layer++) { @@ -86,7 +86,7 @@ public interface IBlocks extends Trimable { sectionWriter.writeShort(nonEmpty); // non empty FaweCache.Palette palette; if (stretched) { - palette = FaweCache.IMP.toPalette(0, ids); + palette = FaweCache.IMP.toPalette(0, ids); } else { palette = FaweCache.IMP.toPaletteUnstretched(0, ids); } @@ -131,4 +131,5 @@ public interface IBlocks extends Trimable { } return sectionByteArray.toByteArray(); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/IChunk.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/IChunk.java index b3cf77d28..207ce6314 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/IChunk.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/IChunk.java @@ -15,15 +15,18 @@ public interface IChunk extends Trimable, IChunkGet, IChunkSet { /** * Initialize at the location * (allows for reuse) - * - It's expected initialization will clear any set fields + * - It's expected initialization will clear any set fields + * * @param extent * @param x * @param z */ - default void init(IQueueExtent extent, int x, int z) {} + default void init(IQueueExtent extent, int x, int z) { + } /** * Get chunkX + * * @return the x coordinate of the chunk */ @Range(from = 0, to = 15) @@ -31,6 +34,7 @@ public interface IChunk extends Trimable, IChunkGet, IChunkSet { /** * Get chunkZ + * * @return the z coordinate of the chunk */ @Range(from = 0, to = 15) @@ -49,7 +53,7 @@ public interface IChunk extends Trimable, IChunkGet, IChunkSet { * Filter through all the blocks in the chunk * * @param filter the filter - * @param block The filter block + * @param block The filter block * @param region The region allowed to filter (maybe null) */ void filterBlocks(Filter filter, ChunkFilterBlock block, @Nullable Region region, boolean full); @@ -67,4 +71,5 @@ public interface IChunk extends Trimable, IChunkGet, IChunkSet { default IChunk reset() { return this; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/IChunkCache.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/IChunkCache.java index 0deaf065e..ce2761390 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/IChunkCache.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/IChunkCache.java @@ -7,10 +7,12 @@ import org.jetbrains.annotations.Range; * IQueueExtents - avoids conversion between a palette and raw data on every block get */ public interface IChunkCache extends Trimable { + T get(@Range(from = 0, to = 15) int chunkX, @Range(from = 0, to = 15) int chunkZ); @Override default boolean trim(boolean aggressive) { return false; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/IChunkExtent.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/IChunkExtent.java index 6e6b8afb0..bd789eec6 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/IChunkExtent.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/IChunkExtent.java @@ -1,6 +1,5 @@ package com.fastasyncworldedit.core.queue; -import com.fastasyncworldedit.core.queue.IChunk; import com.sk89q.jnbt.CompoundTag; import com.sk89q.jnbt.DoubleTag; import com.sk89q.jnbt.IntArrayTag; @@ -18,14 +17,16 @@ import com.sk89q.worldedit.world.biome.BiomeType; import com.sk89q.worldedit.world.block.BaseBlock; import com.sk89q.worldedit.world.block.BlockState; import com.sk89q.worldedit.world.block.BlockStateHolder; +import org.jetbrains.annotations.Range; + import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.UUID; -import org.jetbrains.annotations.Range; public interface IChunkExtent extends Extent { + /** * Get the IChunk at a position (and cache it if it's not already) * @@ -124,14 +125,14 @@ public interface IChunkExtent extends Extent { final IChunk chunk = getOrCreateChunk(location.getBlockX() >> 4, location.getBlockZ() >> 4); Map map = new HashMap<>(entity.getNbtData().getValue()); //do not modify original entity data map.put("Id", new StringTag(entity.getType().getName())); - + //Set pos List posList = new ArrayList<>(); posList.add(new DoubleTag(location.getX())); posList.add(new DoubleTag(location.getY())); posList.add(new DoubleTag(location.getZ())); map.put("Pos", new ListTag(DoubleTag.class, posList)); - + //set new uuid UUID newuuid = UUID.randomUUID(); int[] uuidArray = new int[4]; @@ -140,13 +141,13 @@ public interface IChunkExtent extends Extent { uuidArray[2] = (int) (newuuid.getLeastSignificantBits() >> 32); uuidArray[3] = (int) newuuid.getLeastSignificantBits(); map.put("UUID", new IntArrayTag(uuidArray)); - + map.put("UUIDMost", new LongTag(newuuid.getMostSignificantBits())); map.put("UUIDLeast", new LongTag(newuuid.getLeastSignificantBits())); - + map.put("PersistentIDMSB", new LongTag(newuuid.getMostSignificantBits())); map.put("PersistentIDLSB", new LongTag(newuuid.getLeastSignificantBits())); - + chunk.setEntity(new CompoundTag(map)); return new IChunkEntity(this, location, newuuid, entity); } @@ -156,7 +157,7 @@ public interface IChunkExtent extends Extent { final IChunk chunk = getOrCreateChunk(x >> 4, z >> 4); chunk.removeEntity(uuid); } - + class IChunkEntity implements Entity { private final Extent extent; @@ -170,7 +171,7 @@ public interface IChunkExtent extends Extent { this.uuid = uuid; this.base = base; } - + @Override public BaseEntity getState() { return base; @@ -183,7 +184,7 @@ public interface IChunkExtent extends Extent { } @Override - public T getFacet(Class cls) { + public T getFacet(Class cls) { return null; } @@ -201,5 +202,7 @@ public interface IChunkExtent extends Extent { public Extent getExtent() { return extent; } + } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/IChunkGet.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/IChunkGet.java index 49c6a053c..7f18ba27b 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/IChunkGet.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/IChunkGet.java @@ -7,8 +7,8 @@ import com.sk89q.worldedit.math.BlockVector3; import com.sk89q.worldedit.world.biome.BiomeType; import com.sk89q.worldedit.world.block.BaseBlock; import com.sk89q.worldedit.world.block.BlockState; -import javax.annotation.Nullable; +import javax.annotation.Nullable; import java.util.UUID; import java.util.concurrent.Future; @@ -62,4 +62,5 @@ public interface IChunkGet extends IBlocks, Trimable, InputExtent, ITileInput { void setSkyLightingToGet(char[][] lighting); void setHeightmapToGet(HeightMapType type, int[] data); + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/IChunkSet.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/IChunkSet.java index 486402167..ffa633725 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/IChunkSet.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/IChunkSet.java @@ -8,11 +8,11 @@ import com.sk89q.worldedit.math.BlockVector3; import com.sk89q.worldedit.world.biome.BiomeType; import com.sk89q.worldedit.world.block.BlockStateHolder; +import javax.annotation.Nullable; import java.util.HashMap; import java.util.Map; import java.util.Set; import java.util.UUID; -import javax.annotation.Nullable; /** * Interface for setting blocks @@ -79,14 +79,16 @@ public interface IChunkSet extends IBlocks, OutputExtent { } // Default to avoid tricky child classes. We only need it in a few cases anyway. - default void setFastMode(boolean fastMode) {} + default void setFastMode(boolean fastMode) { + } default boolean isFastMode() { return false; } // Allow setting for bitmask for flushing lighting. Default to avoid tricky child classes. - default void setBitMask(int bitMask) {} + default void setBitMask(int bitMask) { + } default int getBitMask() { return -1; @@ -104,4 +106,5 @@ public interface IChunkSet extends IBlocks, OutputExtent { default Operation commit() { return null; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/IDelegateFilter.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/IDelegateFilter.java index 378c9eae8..a4bb54017 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/IDelegateFilter.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/IDelegateFilter.java @@ -49,4 +49,5 @@ public interface IDelegateFilter extends Filter { } Filter newInstance(Filter other); + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/IQueueChunk.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/IQueueChunk.java index d1cec6d25..fbbb2d3b5 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/IQueueChunk.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/IQueueChunk.java @@ -5,8 +5,10 @@ import java.util.concurrent.ExecutionException; import java.util.concurrent.Future; public interface IQueueChunk> extends IChunk, Callable { + /** * Reset (defaults to just calling init) + * * @return */ @Override @@ -28,6 +30,7 @@ public interface IQueueChunk> extends IChunk, Callable { /** * Call and join * - Should be done async, if at all + * * @throws ExecutionException * @throws InterruptedException */ @@ -37,4 +40,5 @@ public interface IQueueChunk> extends IChunk, Callable { future = future.get(); } } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/IQueueExtent.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/IQueueExtent.java index 9f13a97a6..e2b0349bc 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/IQueueExtent.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/IQueueExtent.java @@ -9,10 +9,10 @@ import com.sk89q.worldedit.math.BlockVector3; import com.sk89q.worldedit.regions.Region; import org.jetbrains.annotations.Range; +import javax.annotation.Nullable; import java.io.Flushable; import java.util.Set; import java.util.concurrent.Future; -import javax.annotation.Nullable; /** * TODO: implement Extent (need to refactor Extent first) Interface for a queue based extent which @@ -40,6 +40,7 @@ public interface IQueueExtent extends Flushable, Trimable, ICh /** * Initialize the queue (for reusability) + * * @param extent * @param get * @param set @@ -49,6 +50,7 @@ public interface IQueueExtent extends Flushable, Trimable, ICh /** * Get the cached get object. This is faster than getting the object using NMS and allows for * wrapping. + * * @param chunkX * @param chunkZ * @return @@ -57,6 +59,7 @@ public interface IQueueExtent extends Flushable, Trimable, ICh /** * Get the cached chunk set object. + * * @param chunkX * @param chunkZ * @return @@ -89,9 +92,9 @@ public interface IQueueExtent extends Flushable, Trimable, ICh * Create a new root IChunk object. Full chunks will be reused, so a more optimized chunk can be * returned in that case. * - * @apiNote Don't wrap the chunk, that should be done in {@link IQueueExtent#wrap(IChunk)} * @param isFull true if a more optimized chunk should be returned * @return a more optimized chunk object + * @see IQueueExtent#wrap(IChunk) Don't wrap the chunk, that should be done in */ T create(boolean isFull); @@ -169,4 +172,5 @@ public interface IQueueExtent extends Flushable, Trimable, ICh flush(); return filter; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/IQueueWrapper.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/IQueueWrapper.java index 4c378d1c9..9566a2fbf 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/IQueueWrapper.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/IQueueWrapper.java @@ -1,7 +1,9 @@ package com.fastasyncworldedit.core.queue; public interface IQueueWrapper { + default IQueueExtent wrapQueue(IQueueExtent queue) { return queue; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/ITileInput.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/ITileInput.java index f0f176cd0..5d0641c81 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/ITileInput.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/ITileInput.java @@ -3,5 +3,7 @@ package com.fastasyncworldedit.core.queue; import com.sk89q.jnbt.CompoundTag; public interface ITileInput { + CompoundTag getTile(int x, int y, int z); + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/Pool.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/Pool.java index d51065607..27d2fc6ea 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/Pool.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/Pool.java @@ -2,10 +2,15 @@ package com.fastasyncworldedit.core.queue; @FunctionalInterface public interface Pool { + T poll(); + default boolean offer(T recycle) { return false; } - default void clear() {} + + default void clear() { + } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/Trimable.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/Trimable.java index c29206c8c..35e03fb1f 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/Trimable.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/Trimable.java @@ -17,4 +17,5 @@ public interface Trimable { default void recycle() { } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/implementation/Flood.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/implementation/Flood.java index 3d84dfa32..cc2c901bd 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/implementation/Flood.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/implementation/Flood.java @@ -3,7 +3,6 @@ package com.fastasyncworldedit.core.queue.implementation; import com.fastasyncworldedit.core.Fawe; import com.fastasyncworldedit.core.queue.IQueueChunk; import com.fastasyncworldedit.core.queue.IQueueExtent; -import com.fastasyncworldedit.core.queue.implementation.QueueHandler; import com.fastasyncworldedit.core.util.MathMan; import com.sk89q.worldedit.util.Direction; import com.sk89q.worldedit.world.World; @@ -188,4 +187,5 @@ public class Flood { public boolean get(long[] bits, int i) { return (bits[i >> 6] & 1L << (i & 0x3F)) != 0; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/implementation/ParallelQueueExtent.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/implementation/ParallelQueueExtent.java index 49bc8279b..718b20225 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/implementation/ParallelQueueExtent.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/implementation/ParallelQueueExtent.java @@ -1,23 +1,23 @@ package com.fastasyncworldedit.core.queue.implementation; import com.fastasyncworldedit.core.FaweCache; -import com.fastasyncworldedit.core.queue.Filter; -import com.fastasyncworldedit.core.queue.IQueueChunk; -import com.fastasyncworldedit.core.queue.IQueueExtent; -import com.fastasyncworldedit.core.queue.IQueueWrapper; +import com.fastasyncworldedit.core.configuration.Settings; +import com.fastasyncworldedit.core.extent.NullExtent; +import com.fastasyncworldedit.core.extent.PassthroughExtent; +import com.fastasyncworldedit.core.extent.clipboard.WorldCopyClipboard; import com.fastasyncworldedit.core.extent.filter.CountFilter; import com.fastasyncworldedit.core.extent.filter.DistrFilter; import com.fastasyncworldedit.core.extent.filter.LinkedFilter; import com.fastasyncworldedit.core.extent.filter.block.ChunkFilterBlock; import com.fastasyncworldedit.core.extent.processor.BatchProcessorHolder; -import com.fastasyncworldedit.core.configuration.Settings; -import com.fastasyncworldedit.core.extent.clipboard.WorldCopyClipboard; -import com.fastasyncworldedit.core.extent.NullExtent; +import com.fastasyncworldedit.core.function.mask.BlockMaskBuilder; +import com.fastasyncworldedit.core.queue.Filter; +import com.fastasyncworldedit.core.queue.IQueueChunk; +import com.fastasyncworldedit.core.queue.IQueueExtent; +import com.fastasyncworldedit.core.queue.IQueueWrapper; import com.sk89q.worldedit.MaxChangedBlocksException; -import com.fastasyncworldedit.core.extent.PassthroughExtent; import com.sk89q.worldedit.extent.clipboard.Clipboard; import com.sk89q.worldedit.function.mask.BlockMask; -import com.fastasyncworldedit.core.function.mask.BlockMaskBuilder; import com.sk89q.worldedit.function.mask.ExistingBlockMask; import com.sk89q.worldedit.function.mask.Mask; import com.sk89q.worldedit.function.pattern.BlockPattern; @@ -138,16 +138,18 @@ public class ParallelQueueExtent extends PassthroughExtent implements IQueueWrap @Override public int countBlocks(Region region, Mask searchMask) { return - // Apply a filter over a region - apply(region, searchMask - .toFilter(new CountFilter()), searchMask.replacesAir()) // Adapt the mask to a filter which counts - .getParent() // Get the counter of this mask - .getTotal(); // Get the total from the counter + // Apply a filter over a region + apply(region, searchMask + .toFilter(new CountFilter()), searchMask.replacesAir()) // Adapt the mask to a filter which counts + .getParent() // Get the counter of this mask + .getTotal(); // Get the total from the counter } @Override public > int setBlocks(Region region, B block) throws MaxChangedBlocksException { - return this.changes = apply(region, new BlockMaskBuilder().add(block).build(this).toFilter(new CountFilter())).getParent().getTotal(); + return this.changes = apply(region, new BlockMaskBuilder().add(block).build(this).toFilter(new CountFilter())) + .getParent() + .getTotal(); } @Override @@ -171,7 +173,7 @@ public class ParallelQueueExtent extends PassthroughExtent implements IQueueWrap @Override public int replaceBlocks(Region region, Mask mask, Pattern pattern) - throws MaxChangedBlocksException { + throws MaxChangedBlocksException { boolean full = mask.replacesAir(); return this.changes = apply(region, mask.toFilter(pattern), full).getBlocksApplied(); } @@ -202,7 +204,7 @@ public class ParallelQueueExtent extends PassthroughExtent implements IQueueWrap /** * Count the number of blocks of a list of types in a region. * - * @param region the region + * @param region the region * @param searchBlocks the list of blocks to search * @return the number of blocks that matched the block */ @@ -216,14 +218,15 @@ public class ParallelQueueExtent extends PassthroughExtent implements IQueueWrap * Replaces all the blocks matching a given filter, within a given region, to a block * returned by a given pattern. * - * @param region the region to replace the blocks within - * @param filter a list of block types to match, or null to use {@link com.sk89q.worldedit.function.mask.ExistingBlockMask} + * @param region the region to replace the blocks within + * @param filter a list of block types to match, or null to use {@link com.sk89q.worldedit.function.mask.ExistingBlockMask} * @param replacement the replacement block * @return number of blocks affected * @throws MaxChangedBlocksException thrown if too many blocks are changed */ @Override - public > int replaceBlocks(Region region, Set filter, B replacement) throws MaxChangedBlocksException { + public > int replaceBlocks(Region region, Set filter, B replacement) throws + MaxChangedBlocksException { return replaceBlocks(region, filter, new BlockPattern(replacement)); } @@ -231,8 +234,8 @@ public class ParallelQueueExtent extends PassthroughExtent implements IQueueWrap * Replaces all the blocks matching a given filter, within a given region, to a block * returned by a given pattern. * - * @param region the region to replace the blocks within - * @param filter a list of block types to match, or null to use {@link com.sk89q.worldedit.function.mask.ExistingBlockMask} + * @param region the region to replace the blocks within + * @param filter a list of block types to match, or null to use {@link com.sk89q.worldedit.function.mask.ExistingBlockMask} * @param pattern the pattern that provides the new blocks * @return number of blocks affected * @throws MaxChangedBlocksException thrown if too many blocks are changed @@ -242,4 +245,5 @@ public class ParallelQueueExtent extends PassthroughExtent implements IQueueWrap Mask mask = filter == null ? new ExistingBlockMask(this) : new BlockMask(this, filter); return replaceBlocks(region, mask, pattern); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/implementation/QueueHandler.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/implementation/QueueHandler.java index a78fff960..83e9da4f9 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/implementation/QueueHandler.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/implementation/QueueHandler.java @@ -2,6 +2,7 @@ package com.fastasyncworldedit.core.queue.implementation; import com.fastasyncworldedit.core.Fawe; import com.fastasyncworldedit.core.FaweCache; +import com.fastasyncworldedit.core.configuration.Settings; import com.fastasyncworldedit.core.queue.IBatchProcessor; import com.fastasyncworldedit.core.queue.IChunkCache; import com.fastasyncworldedit.core.queue.IChunkGet; @@ -10,10 +11,9 @@ import com.fastasyncworldedit.core.queue.IQueueChunk; import com.fastasyncworldedit.core.queue.IQueueExtent; import com.fastasyncworldedit.core.queue.Trimable; import com.fastasyncworldedit.core.queue.implementation.chunk.ChunkCache; -import com.fastasyncworldedit.core.configuration.Settings; -import com.fastasyncworldedit.core.util.collection.CleanableThreadLocal; import com.fastasyncworldedit.core.util.MemUtil; import com.fastasyncworldedit.core.util.TaskManager; +import com.fastasyncworldedit.core.util.collection.CleanableThreadLocal; import com.fastasyncworldedit.core.wrappers.WorldWrapper; import com.google.common.util.concurrent.Futures; import com.sk89q.worldedit.world.World; @@ -302,7 +302,7 @@ public abstract class QueueHandler implements Trimable, Runnable { boolean result = true; synchronized (chunkGetCache) { final Iterator>>> iter = chunkGetCache - .entrySet().iterator(); + .entrySet().iterator(); while (iter.hasNext()) { final Map.Entry>> entry = iter.next(); final WeakReference> value = entry.getValue(); @@ -316,4 +316,5 @@ public abstract class QueueHandler implements Trimable, Runnable { } return result; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/implementation/QueuePool.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/implementation/QueuePool.java index 58b522d84..b743db1ec 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/implementation/QueuePool.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/implementation/QueuePool.java @@ -6,6 +6,7 @@ import java.util.concurrent.ConcurrentLinkedQueue; import java.util.function.Supplier; public class QueuePool extends ConcurrentLinkedQueue implements Pool { + private final Supplier supplier; public QueuePool(Supplier supplier) { @@ -27,5 +28,6 @@ public class QueuePool extends ConcurrentLinkedQueue implements Pool { super.clear(); } } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/implementation/SingleThreadQueueExtent.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/implementation/SingleThreadQueueExtent.java index ae4cff434..68d66f33c 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/implementation/SingleThreadQueueExtent.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/implementation/SingleThreadQueueExtent.java @@ -1,6 +1,13 @@ package com.fastasyncworldedit.core.queue.implementation; import com.fastasyncworldedit.core.Fawe; +import com.fastasyncworldedit.core.configuration.Settings; +import com.fastasyncworldedit.core.extent.filter.block.CharFilterBlock; +import com.fastasyncworldedit.core.extent.filter.block.ChunkFilterBlock; +import com.fastasyncworldedit.core.extent.processor.EmptyBatchProcessor; +import com.fastasyncworldedit.core.extent.processor.ExtentBatchProcessorHolder; +import com.fastasyncworldedit.core.extent.processor.ProcessorScope; +import com.fastasyncworldedit.core.internal.exception.FaweException; import com.fastasyncworldedit.core.queue.IChunk; import com.fastasyncworldedit.core.queue.IChunkCache; import com.fastasyncworldedit.core.queue.IChunkGet; @@ -10,13 +17,6 @@ import com.fastasyncworldedit.core.queue.IQueueExtent; import com.fastasyncworldedit.core.queue.implementation.blocks.CharSetBlocks; import com.fastasyncworldedit.core.queue.implementation.chunk.ChunkHolder; import com.fastasyncworldedit.core.queue.implementation.chunk.NullChunk; -import com.fastasyncworldedit.core.extent.filter.block.CharFilterBlock; -import com.fastasyncworldedit.core.extent.filter.block.ChunkFilterBlock; -import com.fastasyncworldedit.core.extent.processor.EmptyBatchProcessor; -import com.fastasyncworldedit.core.extent.processor.ExtentBatchProcessorHolder; -import com.fastasyncworldedit.core.extent.processor.ProcessorScope; -import com.fastasyncworldedit.core.configuration.Settings; -import com.fastasyncworldedit.core.internal.exception.FaweException; import com.fastasyncworldedit.core.util.MathMan; import com.fastasyncworldedit.core.util.MemUtil; import com.google.common.util.concurrent.Futures; @@ -68,7 +68,7 @@ public class SingleThreadQueueExtent extends ExtentBatchProcessorHolder implemen private void checkThread() { if (Thread.currentThread() != currentThread && currentThread != null) { throw new UnsupportedOperationException( - "This class must be used from a single thread. Use multiple queues for concurrent operations"); + "This class must be used from a single thread. Use multiple queues for concurrent operations"); } } @@ -128,14 +128,15 @@ public class SingleThreadQueueExtent extends ExtentBatchProcessorHolder implemen /** * Initialize the queue - * */ @Override public synchronized void init(Extent extent, IChunkCache get, IChunkCache set) { reset(); currentThread = Thread.currentThread(); if (get == null) { - get = (x, z) -> { throw new UnsupportedOperationException(); }; + get = (x, z) -> { + throw new UnsupportedOperationException(); + }; } if (set == null) { set = (x, z) -> CharSetBlocks.newInstance(); @@ -186,7 +187,7 @@ public class SingleThreadQueueExtent extends ExtentBatchProcessorHolder implemen } if (Fawe.isMainThread()) { - V result = (V)chunk.call(); + V result = (V) chunk.call(); if (result == null) { return (V) (Future) Futures.immediateFuture(null); } else { @@ -258,7 +259,10 @@ public class SingleThreadQueueExtent extends ExtentBatchProcessorHolder implemen // If queueing is enabled AND either of the following // - memory is low & queue size > num threads + 8 // - queue size > target size and primary queue has less than num threads submissions - if (enabledQueue && ((lowMem && size > Settings.IMP.QUEUE.PARALLEL_THREADS + 8) || (size > Settings.IMP.QUEUE.TARGET_SIZE && Fawe.get().getQueueHandler().isUnderutilized()))) { + if (enabledQueue && ((lowMem && size > Settings.IMP.QUEUE.PARALLEL_THREADS + 8) || (size > Settings.IMP.QUEUE.TARGET_SIZE && Fawe + .get() + .getQueueHandler() + .isUnderutilized()))) { chunk = chunks.removeFirst(); final Future future = submitUnchecked(chunk); if (future != null && !future.isDone()) { @@ -347,7 +351,8 @@ public class SingleThreadQueueExtent extends ExtentBatchProcessorHolder implemen } else { e.printStackTrace(); } - LOGGER.error("Please report this error on our issue tracker: https://github.com/IntellectualSites/FastAsyncWorldEdit/issues"); + LOGGER.error( + "Please report this error on our issue tracker: https://github.com/IntellectualSites/FastAsyncWorldEdit/issues"); e.getCause().printStackTrace(); } catch (InterruptedException e) { e.printStackTrace(); @@ -403,4 +408,5 @@ public class SingleThreadQueueExtent extends ExtentBatchProcessorHolder implemen public ProcessorScope getScope() { return ProcessorScope.ADDING_BLOCKS; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/implementation/blocks/BitSetBlocks.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/implementation/blocks/BitSetBlocks.java index cde827222..c441aa63b 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/implementation/blocks/BitSetBlocks.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/implementation/blocks/BitSetBlocks.java @@ -1,8 +1,8 @@ package com.fastasyncworldedit.core.queue.implementation.blocks; import com.fastasyncworldedit.core.FaweCache; -import com.fastasyncworldedit.core.queue.IChunkSet; import com.fastasyncworldedit.core.extent.processor.heightmap.HeightMapType; +import com.fastasyncworldedit.core.queue.IChunkSet; import com.fastasyncworldedit.core.util.collection.MemBlockSet; import com.sk89q.jnbt.CompoundTag; import com.sk89q.worldedit.math.BlockVector3; @@ -198,4 +198,5 @@ public class BitSetBlocks implements IChunkSet { public boolean trim(boolean aggressive, int layer) { return false; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/implementation/blocks/CharBlocks.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/implementation/blocks/CharBlocks.java index 45adbe2d8..0c90c4849 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/implementation/blocks/CharBlocks.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/implementation/blocks/CharBlocks.java @@ -167,7 +167,8 @@ public abstract class CharBlocks implements IBlocks { return sections[layer].get(this, layer, index); } - public synchronized final void set(@Range(from = 0, to = 15) int layer, int index, char value) throws ArrayIndexOutOfBoundsException { + public synchronized final void set(@Range(from = 0, to = 15) int layer, int index, char value) throws + ArrayIndexOutOfBoundsException { sections[layer].set(this, layer, index, value); } @@ -191,5 +192,7 @@ public abstract class CharBlocks implements IBlocks { public final void set(CharBlocks blocks, @Range(from = 0, to = 15) int layer, int index, char value) { get(blocks, layer)[index] = value; } + } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/implementation/blocks/CharGetBlocks.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/implementation/blocks/CharGetBlocks.java index 10fb2039a..11dfd5b46 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/implementation/blocks/CharGetBlocks.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/implementation/blocks/CharGetBlocks.java @@ -46,4 +46,5 @@ public abstract class CharGetBlocks extends CharBlocks implements IChunkGet { super.reset(); return null; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/implementation/blocks/CharSetBlocks.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/implementation/blocks/CharSetBlocks.java index 00fa1c3f7..cca3f4bc2 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/implementation/blocks/CharSetBlocks.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/implementation/blocks/CharSetBlocks.java @@ -1,11 +1,11 @@ package com.fastasyncworldedit.core.queue.implementation.blocks; import com.fastasyncworldedit.core.FaweCache; -import com.fastasyncworldedit.core.queue.IChunkSet; -import com.fastasyncworldedit.core.extent.processor.heightmap.HeightMapType; -import com.fastasyncworldedit.core.queue.Pool; import com.fastasyncworldedit.core.configuration.Settings; +import com.fastasyncworldedit.core.extent.processor.heightmap.HeightMapType; import com.fastasyncworldedit.core.math.BlockVector3ChunkMap; +import com.fastasyncworldedit.core.queue.IChunkSet; +import com.fastasyncworldedit.core.queue.Pool; import com.sk89q.jnbt.CompoundTag; import com.sk89q.worldedit.WorldEditException; import com.sk89q.worldedit.math.BlockVector3; @@ -23,7 +23,12 @@ import java.util.UUID; import java.util.stream.IntStream; public class CharSetBlocks extends CharBlocks implements IChunkSet { - private static final Pool POOL = FaweCache.IMP.registerPool(CharSetBlocks.class, CharSetBlocks::new, Settings.IMP.QUEUE.POOL); + + private static final Pool POOL = FaweCache.IMP.registerPool( + CharSetBlocks.class, + CharSetBlocks::new, + Settings.IMP.QUEUE.POOL + ); public static CharSetBlocks newInstance() { return POOL.poll(); @@ -109,7 +114,7 @@ public class CharSetBlocks extends CharBlocks implements IChunkSet { @Override public > boolean setBlock(BlockVector3 position, T block) - throws WorldEditException { + throws WorldEditException { return setBlock(position.getX(), position.getY(), position.getZ(), block); } @@ -122,7 +127,8 @@ public class CharSetBlocks extends CharBlocks implements IChunkSet { return true; } - @Override public void setBlockLight(int x, int y, int z, int value) { + @Override + public void setBlockLight(int x, int y, int z, int value) { if (light == null) { light = new char[16][]; } @@ -136,7 +142,8 @@ public class CharSetBlocks extends CharBlocks implements IChunkSet { light[y >> 4][index] = (char) value; } - @Override public void setSkyLight(int x, int y, int z, int value) { + @Override + public void setSkyLight(int x, int y, int z, int value) { if (skyLight == null) { skyLight = new char[16][]; } @@ -150,36 +157,42 @@ public class CharSetBlocks extends CharBlocks implements IChunkSet { skyLight[y >> 4][index] = (char) value; } - @Override public void setHeightMap(HeightMapType type, int[] heightMap) { + @Override + public void setHeightMap(HeightMapType type, int[] heightMap) { if (heightMaps == null) { heightMaps = new HashMap<>(); } heightMaps.put(type, heightMap); } - @Override public void setLightLayer(int layer, char[] toSet) { + @Override + public void setLightLayer(int layer, char[] toSet) { if (light == null) { light = new char[16][]; } light[layer] = toSet; } - @Override public void setSkyLightLayer(int layer, char[] toSet) { + @Override + public void setSkyLightLayer(int layer, char[] toSet) { if (skyLight == null) { skyLight = new char[16][]; } skyLight[layer] = toSet; } - @Override public char[][] getLight() { + @Override + public char[][] getLight() { return light; } - @Override public char[][] getSkyLight() { + @Override + public char[][] getSkyLight() { return skyLight; } - @Override public void removeSectionLighting(int layer, boolean sky) { + @Override + public void removeSectionLighting(int layer, boolean sky) { if (light == null) { light = new char[16][]; } @@ -198,7 +211,8 @@ public class CharSetBlocks extends CharBlocks implements IChunkSet { } } - @Override public void setFullBright(int layer) { + @Override + public void setFullBright(int layer) { if (light == null) { light = new char[16][]; } @@ -273,4 +287,5 @@ public class CharSetBlocks extends CharBlocks implements IChunkSet { super.reset(); return null; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/implementation/blocks/NullChunkGet.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/implementation/blocks/NullChunkGet.java index 2c7c68239..e79d724d4 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/implementation/blocks/NullChunkGet.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/implementation/blocks/NullChunkGet.java @@ -1,10 +1,10 @@ package com.fastasyncworldedit.core.queue.implementation.blocks; import com.fastasyncworldedit.core.FaweCache; +import com.fastasyncworldedit.core.extent.processor.heightmap.HeightMapType; import com.fastasyncworldedit.core.queue.IBlocks; import com.fastasyncworldedit.core.queue.IChunkGet; import com.fastasyncworldedit.core.queue.IChunkSet; -import com.fastasyncworldedit.core.extent.processor.heightmap.HeightMapType; import com.sk89q.jnbt.CompoundTag; import com.sk89q.worldedit.math.BlockVector3; import com.sk89q.worldedit.world.biome.BiomeType; @@ -12,9 +12,9 @@ import com.sk89q.worldedit.world.biome.BiomeTypes; import com.sk89q.worldedit.world.block.BaseBlock; import com.sk89q.worldedit.world.block.BlockState; import com.sk89q.worldedit.world.block.BlockTypes; + import javax.annotation.Nonnull; import javax.annotation.Nullable; - import java.util.Collections; import java.util.Map; import java.util.Set; @@ -22,6 +22,7 @@ import java.util.UUID; import java.util.concurrent.Future; public final class NullChunkGet implements IChunkGet { + private static final NullChunkGet instance = new NullChunkGet(); public static NullChunkGet getInstance() { @@ -39,7 +40,8 @@ public final class NullChunkGet implements IChunkGet { } @Override - public void removeSectionLighting(int layer, boolean sky) {} + public void removeSectionLighting(int layer, boolean sky) { + } @Nonnull public BlockState getBlock(int x, int y, int z) { @@ -66,20 +68,26 @@ public final class NullChunkGet implements IChunkGet { return null; } - @Override public void setCreateCopy(boolean createCopy) {} + @Override + public void setCreateCopy(boolean createCopy) { + } - @Override public boolean isCreateCopy() { + @Override + public boolean isCreateCopy() { return false; } @Override - public void setLightingToGet(char[][] lighting) {} + public void setLightingToGet(char[][] lighting) { + } @Override - public void setSkyLightingToGet(char[][] lighting) {} + public void setSkyLightingToGet(char[][] lighting) { + } @Override - public void setHeightmapToGet(HeightMapType type, int[] data) {} + public void setHeightmapToGet(HeightMapType type, int[] data) { + } public boolean trim(boolean aggressive) { return true; diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/implementation/chunk/ChunkCache.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/implementation/chunk/ChunkCache.java index 7ab7d7a7f..acf74d252 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/implementation/chunk/ChunkCache.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/implementation/chunk/ChunkCache.java @@ -69,4 +69,5 @@ public class ChunkCache implements IChunkCache { } return result; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/implementation/chunk/ChunkHolder.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/implementation/chunk/ChunkHolder.java index cd88e40db..9a32aacff 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/implementation/chunk/ChunkHolder.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/implementation/chunk/ChunkHolder.java @@ -1,17 +1,17 @@ package com.fastasyncworldedit.core.queue.implementation.chunk; import com.fastasyncworldedit.core.FaweCache; +import com.fastasyncworldedit.core.configuration.Settings; +import com.fastasyncworldedit.core.extent.filter.block.ChunkFilterBlock; +import com.fastasyncworldedit.core.extent.processor.EmptyBatchProcessor; +import com.fastasyncworldedit.core.extent.processor.heightmap.HeightMapType; import com.fastasyncworldedit.core.queue.Filter; import com.fastasyncworldedit.core.queue.IChunk; import com.fastasyncworldedit.core.queue.IChunkGet; import com.fastasyncworldedit.core.queue.IChunkSet; import com.fastasyncworldedit.core.queue.IQueueChunk; import com.fastasyncworldedit.core.queue.IQueueExtent; -import com.fastasyncworldedit.core.extent.filter.block.ChunkFilterBlock; -import com.fastasyncworldedit.core.extent.processor.heightmap.HeightMapType; -import com.fastasyncworldedit.core.extent.processor.EmptyBatchProcessor; import com.fastasyncworldedit.core.queue.Pool; -import com.fastasyncworldedit.core.configuration.Settings; import com.sk89q.jnbt.CompoundTag; import com.sk89q.worldedit.math.BlockVector3; import com.sk89q.worldedit.regions.Region; @@ -33,7 +33,11 @@ import java.util.concurrent.Future; @SuppressWarnings("rawtypes") public class ChunkHolder> implements IQueueChunk { - private static final Pool POOL = FaweCache.IMP.registerPool(ChunkHolder.class, ChunkHolder::new, Settings.IMP.QUEUE.POOL); + private static final Pool POOL = FaweCache.IMP.registerPool( + ChunkHolder.class, + ChunkHolder::new, + Settings.IMP.QUEUE.POOL + ); public static ChunkHolder newInstance() { return POOL.poll(); @@ -186,14 +190,18 @@ public class ChunkHolder> implements IQueueChunk { } @Override - public boolean setBiome(ChunkHolder chunk, int x, int y, int z, - BiomeType biome) { + public boolean setBiome( + ChunkHolder chunk, int x, int y, int z, + BiomeType biome + ) { return chunk.chunkSet.setBiome(x, y, z, biome); } @Override - public > boolean setBlock(ChunkHolder chunk, int x, int y, int z, - B block) { + public > boolean setBlock( + ChunkHolder chunk, int x, int y, int z, + B block + ) { return chunk.chunkSet.setBlock(x, y, z, block); } @@ -228,7 +236,8 @@ public class ChunkHolder> implements IQueueChunk { chunk.chunkSet.setSkyLightLayer(layer, toSet); } - @Override public void setHeightMap(ChunkHolder chunk, HeightMapType type, int[] heightMap) { + @Override + public void setHeightMap(ChunkHolder chunk, HeightMapType type, int[] heightMap) { chunk.chunkSet.setHeightMap(type, heightMap); } @@ -285,7 +294,8 @@ public class ChunkHolder> implements IQueueChunk { return chunk.chunkExisting.getOpacity(x, y, z); } - @Override public int[] getHeightMap(ChunkHolder chunk, HeightMapType type) { + @Override + public int[] getHeightMap(ChunkHolder chunk, HeightMapType type) { return chunk.chunkExisting.getHeightMap(type); } @@ -325,16 +335,20 @@ public class ChunkHolder> implements IQueueChunk { } @Override - public boolean setBiome(ChunkHolder chunk, int x, int y, int z, - BiomeType biome) { + public boolean setBiome( + ChunkHolder chunk, int x, int y, int z, + BiomeType biome + ) { chunk.getOrCreateSet(); chunk.delegate = BOTH; return chunk.setBiome(x, y, z, biome); } @Override - public > boolean setBlock(ChunkHolder chunk, int x, int y, int z, - T block) { + public > boolean setBlock( + ChunkHolder chunk, int x, int y, int z, + T block + ) { chunk.getOrCreateSet(); chunk.delegate = BOTH; return chunk.setBlock(x, y, z, block); @@ -382,7 +396,8 @@ public class ChunkHolder> implements IQueueChunk { chunk.setSkyLightLayer(layer, toSet); } - @Override public void setHeightMap(ChunkHolder chunk, HeightMapType type, int[] heightMap) { + @Override + public void setHeightMap(ChunkHolder chunk, HeightMapType type, int[] heightMap) { chunk.getOrCreateSet(); chunk.delegate = BOTH; chunk.setHeightMap(type, heightMap); @@ -399,8 +414,10 @@ public class ChunkHolder> implements IQueueChunk { } @Override - public BaseBlock getFullBlock(ChunkHolder chunk, int x, int y, - int z) { + public BaseBlock getFullBlock( + ChunkHolder chunk, int x, int y, + int z + ) { return chunk.chunkExisting.getFullBlock(x, y, z); } @@ -424,7 +441,8 @@ public class ChunkHolder> implements IQueueChunk { return chunk.chunkExisting.getOpacity(x, y, z); } - @Override public int[] getHeightMap(ChunkHolder chunk, HeightMapType type) { + @Override + public int[] getHeightMap(ChunkHolder chunk, HeightMapType type) { return chunk.chunkExisting.getHeightMap(type); } @@ -464,13 +482,21 @@ public class ChunkHolder> implements IQueueChunk { } @Override - public boolean setBiome(ChunkHolder chunk, int x, int y, int z, - BiomeType biome) { + public boolean setBiome( + ChunkHolder chunk, int x, int y, int z, + BiomeType biome + ) { return chunk.chunkSet.setBiome(x, y, z, biome); } @Override - public > boolean setBlock(ChunkHolder chunk, int x, @Range(from = 0, to = 255) int y, int z, B block) { + public > boolean setBlock( + ChunkHolder chunk, + int x, + @Range(from = 0, to = 255) int y, + int z, + B block + ) { return chunk.chunkSet.setBlock(x, y, z, block); } @@ -506,7 +532,8 @@ public class ChunkHolder> implements IQueueChunk { chunk.chunkSet.setSkyLightLayer(layer, toSet); } - @Override public void setHeightMap(ChunkHolder chunk, HeightMapType type, int[] heightMap) { + @Override + public void setHeightMap(ChunkHolder chunk, HeightMapType type, int[] heightMap) { chunk.chunkSet.setHeightMap(type, heightMap); } @@ -527,8 +554,10 @@ public class ChunkHolder> implements IQueueChunk { } @Override - public BaseBlock getFullBlock(ChunkHolder chunk, int x, int y, - int z) { + public BaseBlock getFullBlock( + ChunkHolder chunk, int x, int y, + int z + ) { chunk.getOrCreateGet(); chunk.delegate = BOTH; chunk.chunkExisting.trim(false); @@ -585,7 +614,8 @@ public class ChunkHolder> implements IQueueChunk { return chunk.getOpacity(x, y, z); } - @Override public int[] getHeightMap(ChunkHolder chunk, HeightMapType type) { + @Override + public int[] getHeightMap(ChunkHolder chunk, HeightMapType type) { chunk.getOrCreateGet(); chunk.delegate = BOTH; chunk.chunkExisting.trim(false); @@ -673,8 +703,10 @@ public class ChunkHolder> implements IQueueChunk { } @Override - public BaseBlock getFullBlock(ChunkHolder chunk, int x, int y, - int z) { + public BaseBlock getFullBlock( + ChunkHolder chunk, int x, int y, + int z + ) { chunk.getOrCreateGet(); chunk.delegate = GET; chunk.chunkExisting.trim(false); @@ -724,7 +756,8 @@ public class ChunkHolder> implements IQueueChunk { chunk.setSkyLightLayer(layer, toSet); } - @Override public void setHeightMap(ChunkHolder chunk, HeightMapType type, int[] heightMap) { + @Override + public void setHeightMap(ChunkHolder chunk, HeightMapType type, int[] heightMap) { chunk.getOrCreateSet(); chunk.delegate = SET; chunk.setHeightMap(type, heightMap); @@ -762,7 +795,8 @@ public class ChunkHolder> implements IQueueChunk { return chunk.getOpacity(x, y, z); } - @Override public int[] getHeightMap(ChunkHolder chunk, HeightMapType type) { + @Override + public int[] getHeightMap(ChunkHolder chunk, HeightMapType type) { chunk.getOrCreateGet(); chunk.delegate = GET; chunk.chunkExisting.trim(false); @@ -882,8 +916,8 @@ public class ChunkHolder> implements IQueueChunk { /** * Create a wrapped set object - * - The purpose of wrapping is to allow different extents to intercept / alter behavior - * - e.g., caching, optimizations, filtering + * - The purpose of wrapping is to allow different extents to intercept / alter behavior + * - e.g., caching, optimizations, filtering */ private IChunkSet newWrappedSet() { return extent.getCachedSet(chunkX, chunkZ); @@ -891,8 +925,8 @@ public class ChunkHolder> implements IQueueChunk { /** * Create a wrapped get object - * - The purpose of wrapping is to allow different extents to intercept / alter behavior - * - e.g., caching, optimizations, filtering + * - The purpose of wrapping is to allow different extents to intercept / alter behavior + * - e.g., caching, optimizations, filtering */ private synchronized IChunkGet newWrappedGet() { return extent.getCachedGet(chunkX, chunkZ); @@ -1038,11 +1072,13 @@ public class ChunkHolder> implements IQueueChunk { return delegate.getOpacity(this, x, y, z); } - @Override public int[] getHeightMap(HeightMapType type) { + @Override + public int[] getHeightMap(HeightMapType type) { return delegate.getHeightMap(this, type); } public interface IBlockDelegate { + > IChunkGet get(ChunkHolder chunk); IChunkSet set(ChunkHolder chunk); @@ -1088,5 +1124,7 @@ public class ChunkHolder> implements IQueueChunk { void setSkyLightingToGet(ChunkHolder chunk, char[][] lighting); void setHeightmapToGet(ChunkHolder chunk, HeightMapType type, int[] data); + } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/implementation/chunk/NullChunk.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/implementation/chunk/NullChunk.java index 822a28f32..766e8ae4b 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/implementation/chunk/NullChunk.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/implementation/chunk/NullChunk.java @@ -1,10 +1,10 @@ package com.fastasyncworldedit.core.queue.implementation.chunk; +import com.fastasyncworldedit.core.extent.filter.block.ChunkFilterBlock; +import com.fastasyncworldedit.core.extent.processor.heightmap.HeightMapType; import com.fastasyncworldedit.core.queue.Filter; import com.fastasyncworldedit.core.queue.IChunkSet; import com.fastasyncworldedit.core.queue.IQueueChunk; -import com.fastasyncworldedit.core.extent.filter.block.ChunkFilterBlock; -import com.fastasyncworldedit.core.extent.processor.heightmap.HeightMapType; import com.sk89q.jnbt.CompoundTag; import com.sk89q.worldedit.math.BlockVector3; import com.sk89q.worldedit.regions.Region; @@ -13,9 +13,9 @@ import com.sk89q.worldedit.world.block.BaseBlock; import com.sk89q.worldedit.world.block.BlockState; import com.sk89q.worldedit.world.block.BlockStateHolder; import com.sk89q.worldedit.world.block.BlockTypes; + import javax.annotation.Nonnull; import javax.annotation.Nullable; - import java.util.Collections; import java.util.Map; import java.util.Set; @@ -23,6 +23,7 @@ import java.util.UUID; import java.util.concurrent.Future; public final class NullChunk implements IQueueChunk { + private static final NullChunk instance = new NullChunk(); public static NullChunk getInstance() { @@ -171,20 +172,26 @@ public final class NullChunk implements IQueueChunk { return null; } - @Override public void setCreateCopy(boolean createCopy) {} + @Override + public void setCreateCopy(boolean createCopy) { + } - @Override public boolean isCreateCopy() { + @Override + public boolean isCreateCopy() { return false; } @Override - public void setLightingToGet(char[][] lighting) {} + public void setLightingToGet(char[][] lighting) { + } @Override - public void setSkyLightingToGet(char[][] lighting) {} + public void setSkyLightingToGet(char[][] lighting) { + } @Override - public void setHeightmapToGet(HeightMapType type, int[] data) {} + public void setHeightmapToGet(HeightMapType type, int[] data) { + } @Nullable public > T call(@Nullable IChunkSet set, @Nullable Runnable finalize) { @@ -201,4 +208,5 @@ public final class NullChunk implements IQueueChunk { private NullChunk() { } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/implementation/packet/ChunkPacket.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/implementation/packet/ChunkPacket.java index 240209771..9df1a8f9f 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/implementation/packet/ChunkPacket.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/implementation/packet/ChunkPacket.java @@ -2,9 +2,9 @@ package com.fastasyncworldedit.core.queue.implementation.packet; import com.fastasyncworldedit.core.Fawe; import com.fastasyncworldedit.core.FaweCache; -import com.fastasyncworldedit.core.queue.IBlocks; -import com.fastasyncworldedit.core.internal.io.FaweOutputStream; import com.fastasyncworldedit.core.internal.io.FastByteArrayOutputStream; +import com.fastasyncworldedit.core.internal.io.FaweOutputStream; +import com.fastasyncworldedit.core.queue.IBlocks; import com.sk89q.jnbt.CompoundTag; import java.util.HashMap; @@ -124,4 +124,5 @@ public class ChunkPacket implements Function, Supplier { throw new RuntimeException(e); } } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/implementation/preloader/AsyncPreloader.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/implementation/preloader/AsyncPreloader.java index 1aff92e46..827ce3a1d 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/implementation/preloader/AsyncPreloader.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/implementation/preloader/AsyncPreloader.java @@ -1,8 +1,8 @@ package com.fastasyncworldedit.core.queue.implementation.preloader; import com.fastasyncworldedit.core.Fawe; -import com.fastasyncworldedit.core.util.collection.MutablePair; import com.fastasyncworldedit.core.util.FaweTimer; +import com.fastasyncworldedit.core.util.collection.MutablePair; import com.sk89q.worldedit.IncompleteRegionException; import com.sk89q.worldedit.LocalSession; import com.sk89q.worldedit.WorldEdit; @@ -22,6 +22,7 @@ import java.util.concurrent.ConcurrentHashMap; public class AsyncPreloader implements Preloader, Runnable { + private final ConcurrentHashMap>> update; public AsyncPreloader() { @@ -57,7 +58,10 @@ public class AsyncPreloader implements Preloader, Runnable { return; } if (existing == null) { - MutablePair> previous = update.putIfAbsent(player.getUniqueId(), existing = new MutablePair<>()); + MutablePair> previous = update.putIfAbsent( + player.getUniqueId(), + existing = new MutablePair<>() + ); if (previous != null) { existing = previous; } @@ -110,4 +114,5 @@ public class AsyncPreloader implements Preloader, Runnable { public void queueLoad(World world, BlockVector2 chunk) { world.checkLoadedChunk(BlockVector3.at(chunk.getX() << 4, 0, chunk.getZ() << 4)); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/implementation/preloader/Preloader.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/implementation/preloader/Preloader.java index da6846c41..0cc3ebb3c 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/implementation/preloader/Preloader.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/queue/implementation/preloader/Preloader.java @@ -3,7 +3,9 @@ package com.fastasyncworldedit.core.queue.implementation.preloader; import com.sk89q.worldedit.entity.Player; public interface Preloader { + void cancel(Player player); void update(Player player); + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/regions/FaweMask.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/regions/FaweMask.java index 23ef9399c..907769f51 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/regions/FaweMask.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/regions/FaweMask.java @@ -5,6 +5,7 @@ import com.sk89q.worldedit.entity.Player; import com.sk89q.worldedit.regions.Region; public class FaweMask implements IDelegateRegion { + private final Region region; public FaweMask(Region region) { @@ -29,4 +30,5 @@ public class FaweMask implements IDelegateRegion { public ProcessorScope getScope() { return ProcessorScope.REMOVING_BLOCKS; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/regions/FaweMaskManager.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/regions/FaweMaskManager.java index 782dbe1ec..927693392 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/regions/FaweMaskManager.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/regions/FaweMaskManager.java @@ -15,7 +15,7 @@ public abstract class FaweMaskManager { public static MaskType getDefaultMaskType() { try { return MaskType - .valueOf(Settings.IMP.REGION_RESTRICTIONS_OPTIONS.MODE.toUpperCase(Locale.ROOT)); + .valueOf(Settings.IMP.REGION_RESTRICTIONS_OPTIONS.MODE.toUpperCase(Locale.ROOT)); } catch (Exception ignored) { return MEMBER; } @@ -56,4 +56,5 @@ public abstract class FaweMaskManager { public boolean isExclusive() { return false; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/regions/FuzzyRegion.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/regions/FuzzyRegion.java index 358787150..7511287ee 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/regions/FuzzyRegion.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/regions/FuzzyRegion.java @@ -11,14 +11,14 @@ import com.sk89q.worldedit.math.BlockVector3; import com.sk89q.worldedit.regions.AbstractRegion; import com.sk89q.worldedit.regions.RegionOperationException; import com.sk89q.worldedit.world.World; -import javax.annotation.Nonnull; +import javax.annotation.Nonnull; import java.util.Iterator; public class FuzzyRegion extends AbstractRegion { private final Mask mask; - private BlockVectorSet set = new BlockVectorSet(); + private final BlockVectorSet set = new BlockVectorSet(); private int minX; private int minY; private int minZ; @@ -133,4 +133,5 @@ public class FuzzyRegion extends AbstractRegion { // TODO optimize (switch from BlockVectorSet to the new bitset) return false; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/regions/IDelegateRegion.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/regions/IDelegateRegion.java index f5e37fe7d..b8653acb1 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/regions/IDelegateRegion.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/regions/IDelegateRegion.java @@ -6,18 +6,19 @@ import com.sk89q.worldedit.math.Vector3; import com.sk89q.worldedit.regions.Region; import com.sk89q.worldedit.regions.RegionOperationException; import com.sk89q.worldedit.world.World; -import javax.annotation.Nonnull; +import javax.annotation.Nonnull; +import javax.annotation.Nullable; import java.util.Iterator; import java.util.List; import java.util.Set; -import javax.annotation.Nullable; public interface IDelegateRegion extends Region { Region getRegion(); - @Nonnull @Override + @Nonnull + @Override default Iterator iterator() { return getRegion().iterator(); } @@ -107,4 +108,5 @@ public interface IDelegateRegion extends Region { default List polygonize(int maxPoints) { return getRegion().polygonize(maxPoints); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/regions/PolyhedralRegion.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/regions/PolyhedralRegion.java index 56adf797a..03dd750a5 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/regions/PolyhedralRegion.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/regions/PolyhedralRegion.java @@ -7,13 +7,13 @@ import com.sk89q.worldedit.regions.RegionOperationException; import com.sk89q.worldedit.regions.polyhedron.Edge; import com.sk89q.worldedit.world.World; +import javax.annotation.Nullable; import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; import java.util.LinkedHashSet; import java.util.List; import java.util.Set; -import javax.annotation.Nullable; import static com.google.common.base.Preconditions.checkNotNull; @@ -175,7 +175,11 @@ public class PolyhedralRegion extends AbstractRegion { // Add triangles between the remembered edges and the new vertex. for (Edge edge : borderEdges) { com.sk89q.worldedit.regions.polyhedron.Triangle triangle = edge.createTriangle(vertex.toVector3()); - Triangle fTria = new Triangle(triangle.getVertex(0).toBlockPoint(), triangle.getVertex(1).toBlockPoint(), triangle.getVertex(2).toBlockPoint()); + Triangle fTria = new Triangle( + triangle.getVertex(0).toBlockPoint(), + triangle.getVertex(1).toBlockPoint(), + triangle.getVertex(2).toBlockPoint() + ); triangles.add(fTria); } @@ -318,4 +322,5 @@ public class PolyhedralRegion extends AbstractRegion { public AbstractRegion clone() { return new PolyhedralRegion(this); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/regions/RegionWrapper.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/regions/RegionWrapper.java index b3da7e73b..83e2a68e9 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/regions/RegionWrapper.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/regions/RegionWrapper.java @@ -5,7 +5,13 @@ import com.sk89q.worldedit.regions.CuboidRegion; @Deprecated public class RegionWrapper extends CuboidRegion { - private static final RegionWrapper GLOBAL = new RegionWrapper(Integer.MIN_VALUE, Integer.MAX_VALUE, Integer.MIN_VALUE, Integer.MAX_VALUE); + + private static final RegionWrapper GLOBAL = new RegionWrapper( + Integer.MIN_VALUE, + Integer.MAX_VALUE, + Integer.MIN_VALUE, + Integer.MAX_VALUE + ); public int minX; public int maxX; @@ -134,4 +140,5 @@ public class RegionWrapper extends CuboidRegion { public boolean contains(RegionWrapper current) { return current.minX >= minX && current.maxX <= maxX && current.minZ >= minZ && current.maxZ <= maxZ; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/regions/Triangle.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/regions/Triangle.java index 59f1fc8d8..46e934bee 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/regions/Triangle.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/regions/Triangle.java @@ -35,8 +35,10 @@ public class Triangle { radius[1] = RADIUS; radius[2] = RADIUS; this.normalVec = pos2.subtract(pos1).cross(pos3.subtract(pos1)).normalize(); - this.b = Math.max(Math.max(this.normalVec.dot(pos1), this.normalVec.dot(pos2)), - this.normalVec.dot(pos3)); + this.b = Math.max( + Math.max(this.normalVec.dot(pos1), this.normalVec.dot(pos2)), + this.normalVec.dot(pos3) + ); } public boolean above(BlockVector3 pt) { @@ -47,13 +49,16 @@ public class Triangle { public Edge getEdge(int index) { if (index == this.verts.length - 1) { return new Edge( - Vector3.at(this.verts[index][0], this.verts[index][1], this.verts[index][2]), - Vector3.at(this.verts[0][0], this.verts[0][1], this.verts[0][2])); + Vector3.at(this.verts[index][0], this.verts[index][1], this.verts[index][2]), + Vector3.at(this.verts[0][0], this.verts[0][1], this.verts[0][2]) + ); } else { return new Edge( - Vector3.at(this.verts[index][0], this.verts[index][1], this.verts[index][2]), - Vector3.at(this.verts[index + 1][0], this.verts[index + 1][1], - this.verts[index + 1][2])); + Vector3.at(this.verts[index][0], this.verts[index][1], this.verts[index][2]), + Vector3.at(this.verts[index + 1][0], this.verts[index + 1][1], + this.verts[index + 1][2] + ) + ); } } @@ -284,4 +289,5 @@ public class Triangle { } return dot(normal, vmax) >= 0.0f; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/regions/filter/CuboidRegionFilter.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/regions/filter/CuboidRegionFilter.java index 2ad9b3c4c..d354eae3b 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/regions/filter/CuboidRegionFilter.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/regions/filter/CuboidRegionFilter.java @@ -66,4 +66,5 @@ public abstract class CuboidRegionFilter implements RegionFilter { int mcaZ = chunkZ >> 5; return occupiedRegions.containsKey(mcaX, mcaZ) && !unoccupiedChunks.containsKey(chunkX, chunkZ); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/regions/filter/RegionFilter.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/regions/filter/RegionFilter.java index 86147eda6..64a0c1424 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/regions/filter/RegionFilter.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/regions/filter/RegionFilter.java @@ -5,4 +5,5 @@ public interface RegionFilter { boolean containsRegion(int mcaX, int mcaZ); boolean containsChunk(int chunkX, int chunkZ); + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/regions/selector/FuzzyRegionSelector.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/regions/selector/FuzzyRegionSelector.java index 81f7e0f91..c2458bbd7 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/regions/selector/FuzzyRegionSelector.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/regions/selector/FuzzyRegionSelector.java @@ -1,6 +1,7 @@ package com.fastasyncworldedit.core.regions.selector; import com.fastasyncworldedit.core.configuration.Caption; +import com.fastasyncworldedit.core.extent.PassthroughExtent; import com.fastasyncworldedit.core.regions.FuzzyRegion; import com.fastasyncworldedit.core.util.EditSessionBuilder; import com.fastasyncworldedit.core.util.ExtentTraverser; @@ -10,7 +11,6 @@ import com.sk89q.worldedit.IncompleteRegionException; import com.sk89q.worldedit.LocalSession; import com.sk89q.worldedit.entity.Player; import com.sk89q.worldedit.extension.platform.Actor; -import com.fastasyncworldedit.core.extent.PassthroughExtent; import com.sk89q.worldedit.function.mask.Mask; import com.sk89q.worldedit.math.BlockVector3; import com.sk89q.worldedit.regions.Region; @@ -18,17 +18,17 @@ import com.sk89q.worldedit.regions.RegionSelector; import com.sk89q.worldedit.regions.selector.limit.SelectorLimits; import com.sk89q.worldedit.world.World; +import javax.annotation.Nullable; import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; import java.util.stream.IntStream; -import javax.annotation.Nullable; public class FuzzyRegionSelector extends PassthroughExtent implements RegionSelector { private final Player player; private FuzzyRegion region; - private ArrayList positions; + private final ArrayList positions; public FuzzyRegionSelector(Player player, @Nullable World world, Mask mask) { super(new EditSessionBuilder(world) @@ -148,7 +148,7 @@ public class FuzzyRegionSelector extends PassthroughExtent implements RegionSele @Override public List getInformationLines() { return IntStream.range(0, positions.size()) - .mapToObj(i -> "Position " + i + ": " + positions.get(i)).collect(Collectors.toList()); + .mapToObj(i -> "Position " + i + ": " + positions.get(i)).collect(Collectors.toList()); } @Override diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/regions/selector/PolyhedralRegionSelector.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/regions/selector/PolyhedralRegionSelector.java index d0ba0c0a6..aaeff1897 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/regions/selector/PolyhedralRegionSelector.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/regions/selector/PolyhedralRegionSelector.java @@ -15,13 +15,13 @@ import com.sk89q.worldedit.regions.selector.limit.SelectorLimits; import com.sk89q.worldedit.util.formatting.text.TextComponent; import com.sk89q.worldedit.world.World; +import javax.annotation.Nullable; import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Optional; -import javax.annotation.Nullable; import static com.google.common.base.Preconditions.checkNotNull; @@ -219,4 +219,5 @@ public class PolyhedralRegionSelector implements RegionSelector, CUIRegion { public List getVertices() { return new ArrayList<>(region.getVertices()); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/registry/RegistryItem.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/registry/RegistryItem.java index 9f56c1e10..26dd844d3 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/registry/RegistryItem.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/registry/RegistryItem.java @@ -1,7 +1,9 @@ package com.fastasyncworldedit.core.registry; public interface RegistryItem { + void setInternalId(int internalId); int getInternalId(); + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/registry/state/PropertyGroup.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/registry/state/PropertyGroup.java index f4784fa06..c6e3d15fc 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/registry/state/PropertyGroup.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/registry/state/PropertyGroup.java @@ -11,6 +11,7 @@ import java.util.List; import java.util.function.Function; public class PropertyGroup { + public static final PropertyGroup LEVEL = new PropertyGroupBuilder() .add(PropertyKey.LEVEL) .add(PropertyKey.LAYERS, (Function) o -> o << 1, (Function) o -> o >> 1) @@ -19,6 +20,7 @@ public class PropertyGroup { private static class PropertyFunction { + private final Function setFunc; private final Function getFunc; private final Property key; @@ -28,9 +30,11 @@ public class PropertyGroup { this.getFunc = getProcessor; this.setFunc = setProcessor; } + } public static class PropertyGroupBuilder { + private final List funcs = new ArrayList<>(); private G defaultValue; @@ -72,10 +76,12 @@ public class PropertyGroup { } return new PropertyGroup(states, defaultValue); } + } private final G defaultValue; private final PropertyFunction[] states; + private PropertyGroup(PropertyFunction[] states, G defaultValue) { this.states = states; this.defaultValue = defaultValue; @@ -102,4 +108,5 @@ public class PropertyGroup { } return state; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/registry/state/PropertyKey.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/registry/state/PropertyKey.java index 626b9f414..8145c4514 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/registry/state/PropertyKey.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/registry/state/PropertyKey.java @@ -1,7 +1,6 @@ package com.fastasyncworldedit.core.registry.state; import javax.annotation.Nonnull; - import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -53,7 +52,7 @@ public class PropertyKey implements Comparable { public static final PropertyKey NORTH = getOrCreate("north"); public static final PropertyKey NOTE = getOrCreate("note"); public static final PropertyKey OCCUPIED = getOrCreate("occupied"); - public static final PropertyKey OPEN =getOrCreate("open"); + public static final PropertyKey OPEN = getOrCreate("open"); public static final PropertyKey PART = getOrCreate("part"); public static final PropertyKey PERSISTENT = getOrCreate("persistent"); public static final PropertyKey PICKLES = getOrCreate("pickles"); @@ -105,6 +104,7 @@ public class PropertyKey implements Comparable { /** * Get or create the property key. + * * @param id The name of the property (e.g., `waterlogged`) * @return PropertyKey enum */ @@ -124,4 +124,5 @@ public class PropertyKey implements Comparable { public int compareTo(@Nonnull PropertyKey o) { return Integer.compare(this.id, o.id); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/registry/state/PropertyKeySet.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/registry/state/PropertyKeySet.java index 5207ed6f3..655b304be 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/registry/state/PropertyKeySet.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/registry/state/PropertyKeySet.java @@ -1,7 +1,6 @@ package com.fastasyncworldedit.core.registry.state; import javax.annotation.Nonnull; - import java.util.Arrays; import java.util.BitSet; import java.util.Collection; @@ -10,6 +9,7 @@ import java.util.NoSuchElementException; import java.util.Set; public class PropertyKeySet implements Set { + private final BitSet bits = new BitSet(PropertyKey.getCount()); // still resizable public static PropertyKeySet empty() { @@ -51,7 +51,9 @@ public class PropertyKeySet implements Set { @Override public boolean contains(Object o) { - if (!(o instanceof PropertyKey)) return false; + if (!(o instanceof PropertyKey)) { + return false; + } return this.bits.get(((PropertyKey) o).getId()); } @@ -81,15 +83,21 @@ public class PropertyKeySet implements Set { @Override public boolean add(PropertyKey propertyKey) { - if (this.bits.get(propertyKey.getId())) return false; + if (this.bits.get(propertyKey.getId())) { + return false; + } this.bits.set(propertyKey.getId()); return true; } @Override public boolean remove(Object o) { - if (!(o instanceof PropertyKey)) return false; - if (!this.bits.get(((PropertyKey) o).getId())) return false; + if (!(o instanceof PropertyKey)) { + return false; + } + if (!this.bits.get(((PropertyKey) o).getId())) { + return false; + } this.bits.clear(((PropertyKey) o).getId()); return true; } @@ -100,8 +108,12 @@ public class PropertyKeySet implements Set { return ((PropertyKeySet) c).bits.intersects(this.bits); } for (Object o : c) { - if (!(o instanceof PropertyKey)) return false; - if (!this.bits.get(((PropertyKey) o).getId())) return false; + if (!(o instanceof PropertyKey)) { + return false; + } + if (!this.bits.get(((PropertyKey) o).getId())) { + return false; + } } return false; } @@ -168,10 +180,14 @@ public class PropertyKeySet implements Set { @Override public PropertyKey next() { - if (!hasNext()) throw new NoSuchElementException(); + if (!hasNext()) { + throw new NoSuchElementException(); + } PropertyKey next = PropertyKey.getById(this.current); this.current = bits.nextSetBit(this.current + 1); return next; } + } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/BrushCache.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/BrushCache.java index 3aec24a73..fd008f13d 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/BrushCache.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/BrushCache.java @@ -15,6 +15,7 @@ import java.util.Map; import java.util.WeakHashMap; public final class BrushCache { + private static final WeakHashMap brushCache = new WeakHashMap<>(); private static final Gson gson = new GsonBuilder().setPrettyPrinting().create(); @@ -96,4 +97,5 @@ public final class BrushCache { Map displayMap; return tool; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/CachedMathMan.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/CachedMathMan.java index 46ffe9914..8c158a712 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/CachedMathMan.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/CachedMathMan.java @@ -1,6 +1,7 @@ package com.fastasyncworldedit.core.util; public class CachedMathMan { + private static final int ATAN2_BITS = 7; private static final int ATAN2_BITS2 = ATAN2_BITS << 1; private static final int ATAN2_MASK = ~(-1 << ATAN2_BITS2); @@ -87,4 +88,5 @@ public class CachedMathMan { return (atan2[(yi * ATAN2_DIM) + xi] + add) * mul; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/CachedTextureUtil.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/CachedTextureUtil.java index 25d1222be..bafe8d783 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/CachedTextureUtil.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/CachedTextureUtil.java @@ -6,6 +6,7 @@ import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap; import java.io.FileNotFoundException; public class CachedTextureUtil extends DelegateTextureUtil { + private final TextureUtil parent; private final transient Int2ObjectOpenHashMap colorBlockMap; private final transient Int2ObjectOpenHashMap colorBiomeMap; @@ -57,4 +58,5 @@ public class CachedTextureUtil extends DelegateTextureUtil { } return result; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/CleanTextureUtil.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/CleanTextureUtil.java index 8a0ae33ad..4b620c6d2 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/CleanTextureUtil.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/CleanTextureUtil.java @@ -4,6 +4,7 @@ import java.io.FileNotFoundException; import java.util.Arrays; public class CleanTextureUtil extends TextureUtil { + private final int min; private final int max; @@ -16,10 +17,8 @@ public class CleanTextureUtil extends TextureUtil { long min = parent.distances[minIndex]; long max = parent.distances[maxIndex]; for (; minIndex > 0 && parent.distances[minIndex - 1] == min; minIndex--) { - ; } for (; maxIndex < parent.distances.length - 1 && parent.distances[maxIndex + 1] == max; maxIndex++) { - ; } int num = maxIndex - minIndex + 1; this.validMixBiomeColors = parent.validMixBiomeColors; @@ -49,4 +48,5 @@ public class CleanTextureUtil extends TextureUtil { public int getMax() { return max; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/ColorUtil.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/ColorUtil.java index 6ddf9f836..402764bf7 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/ColorUtil.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/ColorUtil.java @@ -23,8 +23,8 @@ public class ColorUtil { throw new IllegalArgumentException("Invalid color specification"); } float c = type == PARSE_COMPONENT - ? Integer.parseInt(color) - : Float.parseFloat(color); + ? Integer.parseInt(color) + : Float.parseFloat(color); switch (type) { case PARSE_ALPHA: return c < 0f ? 0f : Math.min(c, 1f); @@ -34,10 +34,10 @@ public class ColorUtil { return c <= 0f ? 0f : c >= 255f ? 1f : c / 255f; case PARSE_ANGLE: return c < 0f - ? c % 360f + 360f - : c > 360f - ? c % 360f - : c; + ? c % 360f + 360f + : c > 360f + ? c % 360f + : c; } throw new IllegalArgumentException("Invalid color specification"); @@ -76,7 +76,7 @@ public class ColorUtil { public static Color parseColor(String colorString) { if (colorString == null) { throw new NullPointerException( - "The color components or name must be specified"); + "The color components or name must be specified"); } if (colorString.isEmpty()) { throw new IllegalArgumentException("Invalid color specification"); @@ -145,4 +145,5 @@ public class ColorUtil { throw new IllegalArgumentException("Invalid color specification"); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/DelegateTextureUtil.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/DelegateTextureUtil.java index 290e8b7db..70600635e 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/DelegateTextureUtil.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/DelegateTextureUtil.java @@ -9,6 +9,7 @@ import java.io.FileNotFoundException; import java.io.IOException; public class DelegateTextureUtil extends TextureUtil { + private final TextureUtil parent; public DelegateTextureUtil(TextureUtil parent) throws FileNotFoundException { @@ -125,4 +126,5 @@ public class DelegateTextureUtil extends TextureUtil { public long getDistance(BufferedImage image, int c1) { return parent.getDistance(image, c1); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/EditSessionBuilder.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/EditSessionBuilder.java index 2cbc2e2b9..3b4692df5 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/EditSessionBuilder.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/EditSessionBuilder.java @@ -2,32 +2,32 @@ package com.fastasyncworldedit.core.util; import com.fastasyncworldedit.core.Fawe; import com.fastasyncworldedit.core.FaweCache; -import com.fastasyncworldedit.core.queue.IQueueChunk; -import com.fastasyncworldedit.core.queue.IQueueExtent; -import com.fastasyncworldedit.core.extent.processor.lighting.NullRelighter; -import com.fastasyncworldedit.core.extent.processor.lighting.RelightProcessor; -import com.fastasyncworldedit.core.extent.processor.lighting.Relighter; -import com.fastasyncworldedit.core.extent.processor.HeightmapProcessor; -import com.fastasyncworldedit.core.extent.processor.LimitExtent; -import com.fastasyncworldedit.core.queue.implementation.ParallelQueueExtent; import com.fastasyncworldedit.core.configuration.Caption; import com.fastasyncworldedit.core.configuration.Settings; -import com.fastasyncworldedit.core.history.RollbackOptimizedHistory; -import com.fastasyncworldedit.core.object.FaweLimit; -import com.fastasyncworldedit.core.extent.HistoryExtent; -import com.fastasyncworldedit.core.history.changeset.NullChangeSet; -import com.fastasyncworldedit.core.regions.RegionWrapper; -import com.fastasyncworldedit.core.extent.processor.lighting.RelightMode; -import com.fastasyncworldedit.core.history.changeset.AbstractChangeSet; -import com.fastasyncworldedit.core.history.changeset.BlockBagChangeSet; -import com.fastasyncworldedit.core.history.DiskStorageHistory; -import com.fastasyncworldedit.core.history.MemoryOptimizedHistory; import com.fastasyncworldedit.core.extent.FaweRegionExtent; +import com.fastasyncworldedit.core.extent.HistoryExtent; import com.fastasyncworldedit.core.extent.MultiRegionExtent; import com.fastasyncworldedit.core.extent.NullExtent; import com.fastasyncworldedit.core.extent.SingleRegionExtent; import com.fastasyncworldedit.core.extent.SlowExtent; import com.fastasyncworldedit.core.extent.StripNBTExtent; +import com.fastasyncworldedit.core.extent.processor.HeightmapProcessor; +import com.fastasyncworldedit.core.extent.processor.LimitExtent; +import com.fastasyncworldedit.core.extent.processor.lighting.NullRelighter; +import com.fastasyncworldedit.core.extent.processor.lighting.RelightMode; +import com.fastasyncworldedit.core.extent.processor.lighting.RelightProcessor; +import com.fastasyncworldedit.core.extent.processor.lighting.Relighter; +import com.fastasyncworldedit.core.history.DiskStorageHistory; +import com.fastasyncworldedit.core.history.MemoryOptimizedHistory; +import com.fastasyncworldedit.core.history.RollbackOptimizedHistory; +import com.fastasyncworldedit.core.history.changeset.AbstractChangeSet; +import com.fastasyncworldedit.core.history.changeset.BlockBagChangeSet; +import com.fastasyncworldedit.core.history.changeset.NullChangeSet; +import com.fastasyncworldedit.core.object.FaweLimit; +import com.fastasyncworldedit.core.queue.IQueueChunk; +import com.fastasyncworldedit.core.queue.IQueueExtent; +import com.fastasyncworldedit.core.queue.implementation.ParallelQueueExtent; +import com.fastasyncworldedit.core.regions.RegionWrapper; import com.fastasyncworldedit.core.wrappers.WorldWrapper; import com.sk89q.worldedit.EditSession; import com.sk89q.worldedit.WorldEdit; @@ -43,8 +43,8 @@ import com.sk89q.worldedit.util.eventbus.EventBus; import com.sk89q.worldedit.util.formatting.text.TextComponent; import com.sk89q.worldedit.world.World; import org.apache.logging.log4j.Logger; -import javax.annotation.Nonnull; +import javax.annotation.Nonnull; import javax.annotation.Nullable; import java.util.Locale; import java.util.UUID; @@ -219,7 +219,12 @@ public class EditSessionBuilder { return this; } - private Extent wrapExtent(final Extent extent, final EventBus eventBus, EditSessionEvent event, final EditSession.Stage stage) { + private Extent wrapExtent( + final Extent extent, + final EventBus eventBus, + EditSessionEvent event, + final EditSession.Stage stage + ) { event = event.clone(stage); event.setExtent(extent); eventBus.post(event); @@ -240,16 +245,25 @@ public class EditSessionBuilder { } if (Settings.IMP.EXTENT.DEBUG) { if (event.getActor() != null) { - event.getActor().printDebug(TextComponent.of("Potentially unsafe extent blocked: " + toReturn.getClass().getName())); - event.getActor().printDebug(TextComponent.of(" - For area restrictions and block logging, it is recommended to use the FaweAPI")); - event.getActor().printDebug(TextComponent.of(" - To allow " + toReturn.getClass().getName() + ", add it to the FAWE `allowed-plugins` list in config.yml")); - event.getActor().printDebug(TextComponent.of(" - If you are unsure which plugin tries to use the extent, you can find some additional information below:")); + event.getActor().printDebug(TextComponent.of("Potentially unsafe extent blocked: " + toReturn + .getClass() + .getName())); + event.getActor().printDebug(TextComponent.of( + " - For area restrictions and block logging, it is recommended to use the FaweAPI")); + event.getActor().printDebug(TextComponent.of(" - To allow " + toReturn + .getClass() + .getName() + ", add it to the FAWE `allowed-plugins` list in config.yml")); + event.getActor().printDebug(TextComponent.of( + " - If you are unsure which plugin tries to use the extent, you can find some additional information below:")); event.getActor().printDebug(TextComponent.of(" - " + toReturn.getClass().getClassLoader())); } else { LOGGER.debug("Potentially unsafe extent blocked: " + toReturn.getClass().getName()); LOGGER.debug(" - For area restrictions and block logging, it is recommended to use the FaweAPI"); - LOGGER.debug(" - To allow " + toReturn.getClass().getName() + ", add it to the FAWE `allowed-plugins` list in config.yml"); - LOGGER.debug(" - If you are unsure which plugin tries to use the extent, you can find some additional information below:"); + LOGGER.debug(" - To allow " + toReturn + .getClass() + .getName() + ", add it to the FAWE `allowed-plugins` list in config.yml"); + LOGGER.debug( + " - If you are unsure which plugin tries to use the extent, you can find some additional information below:"); LOGGER.debug(" - " + toReturn.getClass().getClassLoader()); } } @@ -481,4 +495,5 @@ public class EditSessionBuilder { public Region[] getAllowedRegions() { return allowedRegions; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/ExtentTraverser.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/ExtentTraverser.java index 86333faf9..c81db3e9a 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/ExtentTraverser.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/ExtentTraverser.java @@ -2,11 +2,12 @@ package com.fastasyncworldedit.core.util; import com.sk89q.worldedit.extent.AbstractDelegateExtent; import com.sk89q.worldedit.extent.Extent; -import javax.annotation.Nonnull; +import javax.annotation.Nonnull; import java.lang.reflect.Field; public class ExtentTraverser { + private final T root; private final ExtentTraverser parent; @@ -105,4 +106,5 @@ public class ExtentTraverser { return null; } } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/FaweTimer.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/FaweTimer.java index 236b0bcd7..f7c8cf74e 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/FaweTimer.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/FaweTimer.java @@ -88,4 +88,5 @@ public class FaweTimer implements Runnable { } return false; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/FilteredTextureUtil.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/FilteredTextureUtil.java index 3fb8bf87d..2591dee25 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/FilteredTextureUtil.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/FilteredTextureUtil.java @@ -7,6 +7,7 @@ import java.io.FileNotFoundException; import java.util.Set; public class FilteredTextureUtil extends TextureUtil { + private final Set blocks; public FilteredTextureUtil(TextureUtil parent, Set blocks) throws FileNotFoundException { @@ -39,4 +40,5 @@ public class FilteredTextureUtil extends TextureUtil { } this.calculateLayerArrays(); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/IOUtil.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/IOUtil.java index af60522b4..8c6f7f820 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/IOUtil.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/IOUtil.java @@ -27,8 +27,8 @@ public final class IOUtil { public static void writeInt(OutputStream out, int v) throws IOException { out.write(v >>> 24 & 0xFF); out.write(v >>> 16 & 0xFF); - out.write(v >>> 8 & 0xFF); - out.write(v >>> 0 & 0xFF); + out.write(v >>> 8 & 0xFF); + out.write(v >>> 0 & 0xFF); } public static int readVarInt(InputStream in) throws IOException { @@ -111,4 +111,5 @@ public final class IOUtil { } }; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/ImgurUtility.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/ImgurUtility.java index 368201b91..8c5fb43e3 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/ImgurUtility.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/ImgurUtility.java @@ -15,10 +15,12 @@ import java.io.OutputStreamWriter; import java.net.HttpURLConnection; import java.net.URL; import java.net.URLEncoder; +import java.nio.charset.StandardCharsets; import java.util.Base64; import java.util.stream.Collectors; public class ImgurUtility { + public static final String CLIENT_ID = "50e34b65351eb07"; public static URL uploadImage(File file) throws IOException { @@ -52,7 +54,10 @@ public class ImgurUtility { String imageString = Base64.getEncoder().encodeToString(image); URL url = new URL("https://api.imgur.com/3/image"); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); - String data = URLEncoder.encode("image", "UTF-8") + "=" + URLEncoder.encode(imageString, "UTF-8"); + String data = URLEncoder.encode("image", StandardCharsets.UTF_8) + "=" + URLEncoder.encode( + imageString, + StandardCharsets.UTF_8 + ); conn.setDoOutput(true); conn.setDoInput(true); conn.setRequestMethod("POST"); @@ -70,4 +75,5 @@ public class ImgurUtility { } return stb; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/JoinedCharSequence.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/JoinedCharSequence.java index 3e197fab8..0c9cdb0e1 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/JoinedCharSequence.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/JoinedCharSequence.java @@ -1,6 +1,7 @@ package com.fastasyncworldedit.core.util; public class JoinedCharSequence implements CharSequence { + private char join; private int len2; private int len1; @@ -17,6 +18,7 @@ public class JoinedCharSequence implements CharSequence { this.b = b; return this; } + @Override public int length() { return length; @@ -69,4 +71,5 @@ public class JoinedCharSequence implements CharSequence { } return false; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/MainUtil.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/MainUtil.java index eb5ad390a..9201f81f2 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/MainUtil.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/MainUtil.java @@ -3,13 +3,13 @@ package com.fastasyncworldedit.core.util; import com.fastasyncworldedit.core.Fawe; import com.fastasyncworldedit.core.configuration.Caption; import com.fastasyncworldedit.core.configuration.Settings; +import com.fastasyncworldedit.core.history.changeset.FaweStreamChangeSet; +import com.fastasyncworldedit.core.internal.io.AbstractDelegateOutputStream; import com.fastasyncworldedit.core.internal.io.FaweInputStream; import com.fastasyncworldedit.core.internal.io.FaweOutputStream; import com.fastasyncworldedit.core.regions.RegionWrapper; import com.fastasyncworldedit.core.util.task.RunnableVal; import com.fastasyncworldedit.core.util.task.RunnableVal2; -import com.fastasyncworldedit.core.history.changeset.FaweStreamChangeSet; -import com.fastasyncworldedit.core.internal.io.AbstractDelegateOutputStream; import com.github.luben.zstd.ZstdInputStream; import com.github.luben.zstd.ZstdOutputStream; import com.sk89q.jnbt.CompoundTag; @@ -89,6 +89,7 @@ import java.util.zip.ZipEntry; import java.util.zip.ZipInputStream; import static java.lang.System.arraycopy; + public class MainUtil { private static final Logger LOGGER = LogManagerCompat.getLogger(); @@ -392,7 +393,14 @@ public class MainUtil { return upload(Settings.IMP.WEB.URL, uuid != null, uuid != null ? uuid.toString() : null, file, extension, writeTask); } - public static URL upload(String urlStr, boolean save, String uuid, String file, String extension, @Nonnull final RunnableVal writeTask) { + public static URL upload( + String urlStr, + boolean save, + String uuid, + String file, + String extension, + @Nonnull final RunnableVal writeTask + ) { String filename = (file == null ? "plot" : file) + (extension != null ? "." + extension : ""); uuid = uuid == null ? UUID.randomUUID().toString() : uuid; final String website; @@ -409,7 +417,10 @@ public class MainUtil { URLConnection con = new URL(website).openConnection(); con.setDoOutput(true); con.setRequestProperty("Content-Type", "multipart/form-data; boundary=" + boundary); - try (OutputStream output = con.getOutputStream(); PrintWriter writer = new PrintWriter(new OutputStreamWriter(output, StandardCharsets.UTF_8), true)) { + try (OutputStream output = con.getOutputStream(); PrintWriter writer = new PrintWriter(new OutputStreamWriter( + output, + StandardCharsets.UTF_8 + ), true)) { String crlf = "\r\n"; writer.append("--" + boundary).append(crlf); writer.append("Content-Disposition: form-data; name=\"param\"").append(crlf); @@ -417,7 +428,9 @@ public class MainUtil { String param = "value"; writer.append(crlf).append(param).append(crlf).flush(); writer.append("--" + boundary).append(crlf); - writer.append("Content-Disposition: form-data; name=\"schematicFile\"; filename=\"" + filename + '"').append(crlf); + writer + .append("Content-Disposition: form-data; name=\"schematicFile\"; filename=\"" + filename + '"') + .append(crlf); writer.append("Content-Type: " + URLConnection.guessContentTypeFromName(filename)).append(crlf); writer.append("Content-Transfer-Encoding: binary").append(crlf); writer.append(crlf).flush(); @@ -459,7 +472,7 @@ public class MainUtil { * @param z New Z coordinate * @return New tag */ - public static @Nonnull CompoundTag setPosition(@Nonnull CompoundTag tag, int x, int y, int z) { + @Nonnull public static CompoundTag setPosition(@Nonnull CompoundTag tag, int x, int y, int z) { Map value = new HashMap<>(tag.getValue()); value.put("x", new IntTag(x)); value.put("y", new IntTag(y)); @@ -474,7 +487,7 @@ public class MainUtil { * @param entity Entity * @return New tag */ - public static @Nonnull CompoundTag setEntityInfo(@Nonnull CompoundTag tag, @Nonnull Entity entity) { + @Nonnull public static CompoundTag setEntityInfo(@Nonnull CompoundTag tag, @Nonnull Entity entity) { Map map = new HashMap<>(tag.getValue()); map.put("Id", new StringTag(entity.getState().getType().getId())); ListTag pos = (ListTag) map.get("Pos"); @@ -491,7 +504,7 @@ public class MainUtil { } public static String getText(String url) throws IOException { - try (Scanner scanner = new Scanner(new URL(url).openStream(), "UTF-8")) { + try (Scanner scanner = new Scanner(new URL(url).openStream(), StandardCharsets.UTF_8)) { return scanner.useDelimiter("\\A").next(); } } @@ -528,12 +541,12 @@ public class MainUtil { } public static Thread[] getThreads() { - ThreadGroup rootGroup = Thread.currentThread( ).getThreadGroup( ); + ThreadGroup rootGroup = Thread.currentThread().getThreadGroup(); ThreadGroup parentGroup; - while ( ( parentGroup = rootGroup.getParent() ) != null ) { + while ((parentGroup = rootGroup.getParent()) != null) { rootGroup = parentGroup; } - Thread[] threads = new Thread[ rootGroup.activeCount() ]; + Thread[] threads = new Thread[rootGroup.activeCount()]; if (threads.length != 0) { while (rootGroup.enumerate(threads, true) == threads.length) { threads = new Thread[threads.length * 2]; @@ -891,4 +904,5 @@ public class MainUtil { e.printStackTrace(); } } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/MaskTraverser.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/MaskTraverser.java index e775daf1a..af20ac5b8 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/MaskTraverser.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/MaskTraverser.java @@ -10,6 +10,7 @@ import java.lang.reflect.Field; import java.util.Collection; public class MaskTraverser { + private final Mask mask; public MaskTraverser(Mask start) { @@ -71,4 +72,5 @@ public class MaskTraverser { current = current.getSuperclass(); } } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/MathMan.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/MathMan.java index 48d756249..75eb279b9 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/MathMan.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/MathMan.java @@ -4,6 +4,7 @@ public class MathMan { /** * An optimized version of {@link Math#sqrt(double)} that accepts integers. + * * @param a a value * @return the positive square root of {@code a}. * If the argument is NaN or less than zero, the result is NaN. @@ -23,7 +24,7 @@ public class MathMan { return CachedMathMan.cosInexact(paramFloat); } - public static int log2nlz( int bits ) { + public static int log2nlz(int bits) { return Integer.SIZE - Integer.numberOfLeadingZeros(bits); } @@ -141,6 +142,7 @@ public class MathMan { /** * Used to convert a set of coordinates into a packed long. + * * @param a typically, represents the x coordinate * @param b typically, represents the y coordinate * @return the packed coordinates @@ -399,4 +401,5 @@ public class MathMan { public static boolean isPowerOfTwo(int a) { return (a & a - 1) == 0; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/MemUtil.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/MemUtil.java index a093999ca..7aa4036ee 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/MemUtil.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/MemUtil.java @@ -51,8 +51,8 @@ public class MemUtil { return size; } - private static Queue memoryLimitedTasks = new ConcurrentLinkedQueue<>(); - private static Queue memoryPlentifulTasks = new ConcurrentLinkedQueue<>(); + private static final Queue memoryLimitedTasks = new ConcurrentLinkedQueue<>(); + private static final Queue memoryPlentifulTasks = new ConcurrentLinkedQueue<>(); public static void addMemoryLimitedTask(Runnable run) { if (run != null) { @@ -81,4 +81,5 @@ public class MemUtil { } memory.set(false); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/MutableCharSequence.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/MutableCharSequence.java index 8af0587aa..8e8534f2f 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/MutableCharSequence.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/MutableCharSequence.java @@ -1,6 +1,7 @@ package com.fastasyncworldedit.core.util; public class MutableCharSequence implements CharSequence { + private String str; private int start; private int length; @@ -80,4 +81,5 @@ public class MutableCharSequence implements CharSequence { } return false; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/NbtUtils.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/NbtUtils.java index bbcdb0af5..9b39d9270 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/NbtUtils.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/NbtUtils.java @@ -10,20 +10,21 @@ public class NbtUtils { /** * Get child tag of a NBT structure. * - * @param tag the tag to read from - * @param key the key to look for + * @param tag the tag to read from + * @param key the key to look for * @param expected the expected NBT class type * @return child tag * @throws InvalidFormatException if the format of the items is invalid */ - public static T getChildTag(CompoundBinaryTag tag, String key, BinaryTagType expected) throws InvalidFormatException { + public static T getChildTag(CompoundBinaryTag tag, String key, BinaryTagType expected) throws + InvalidFormatException { BinaryTag childTag = tag.get(key); if (childTag == null) { throw new InvalidFormatException("Missing a \"" + key + "\" tag"); } if (childTag.type().id() != expected.id()) { - throw new InvalidFormatException(key + " tag is not of tag type " + expected.toString()); + throw new InvalidFormatException(key + " tag is not of tag type " + expected); } // SAFETY: same binary tag type checked above @SuppressWarnings("unchecked") diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/Permission.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/Permission.java index 297affe18..a99461a2f 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/Permission.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/Permission.java @@ -1,6 +1,7 @@ package com.fastasyncworldedit.core.util; import com.sk89q.worldedit.util.auth.Subject; + import javax.annotation.Nonnull; public enum Permission { diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/RandomTextureUtil.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/RandomTextureUtil.java index 37ed8ddcb..2d313ecdd 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/RandomTextureUtil.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/RandomTextureUtil.java @@ -34,7 +34,7 @@ public class RandomTextureUtil extends CachedTextureUtil { if (i < 0) { int i1 = -i; return -ThreadLocalRandom.current().nextInt(i1); - } else if( i == 0) { + } else if (i == 0) { return 0; } else { return ThreadLocalRandom.current().nextInt(i); @@ -60,10 +60,7 @@ public class RandomTextureUtil extends CachedTextureUtil { int blockColor = getColor(block); blockAndBiomeIdOutput[0] = block.getDefaultState().getOrdinalChar(); blockAndBiomeIdOutput[1] = (char) biomeId; - if (colorDistance(biomeAvColor, color) - biomePriority > colorDistance(blockColor, color)) { - return true; - } - return false; + return colorDistance(biomeAvColor, color) - biomePriority > colorDistance(blockColor, color); } @@ -86,7 +83,7 @@ public class RandomTextureUtil extends CachedTextureUtil { @Override public BlockType getNearestBlock(int color) { - int offsetColor = offsets.getOrDefault((Object)color, 0); + int offsetColor = offsets.getOrDefault((Object) color, 0); if (offsetColor != 0) { offsetColor = addRandomColor(color, offsetColor); } else { @@ -103,4 +100,5 @@ public class RandomTextureUtil extends CachedTextureUtil { offsets.put(color, (Integer) ((dr << 16) + (dg << 8) + (db << 0))); return res; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/ReflectionUtils.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/ReflectionUtils.java index 12302c34c..a1420dd92 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/ReflectionUtils.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/ReflectionUtils.java @@ -1,7 +1,6 @@ package com.fastasyncworldedit.core.util; import javax.annotation.Nonnull; - import java.lang.invoke.MethodHandles; import java.lang.reflect.AccessibleObject; import java.lang.reflect.Field; @@ -17,7 +16,8 @@ public class ReflectionUtils { return t.isInstance(o) ? t.cast(o) : null; } - public static void setAccessibleNonFinal(Field field) throws IllegalAccessException, NoSuchMethodException, InvocationTargetException { + public static void setAccessibleNonFinal(Field field) throws IllegalAccessException, NoSuchMethodException, + InvocationTargetException { // let's make the field accessible field.setAccessible(true); @@ -31,15 +31,16 @@ public class ReflectionUtils { // blank out the final bit in the modifiers int ((MethodHandles.Lookup) lookupField.get(null)) - .findSetter(Field.class, "modifiers", int.class) - .invokeExact(field, field.getModifiers() & ~Modifier.FINAL); + .findSetter(Field.class, "modifiers", int.class) + .invokeExact(field, field.getModifiers() & ~Modifier.FINAL); } catch (Throwable e) { e.printStackTrace(); } } } - public static void setFailsafeFieldValue(Field field, Object target, Object value) throws IllegalAccessException, NoSuchMethodException, InvocationTargetException { + public static void setFailsafeFieldValue(Field field, Object target, Object value) throws IllegalAccessException, + NoSuchMethodException, InvocationTargetException { setAccessibleNonFinal(field); field.set(target, value); } @@ -110,4 +111,5 @@ public class ReflectionUtils { return null; } } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/StringMan.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/StringMan.java index e01ee4dd0..f15e010ce 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/StringMan.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/StringMan.java @@ -16,7 +16,7 @@ public class StringMan { public static boolean containsAny(CharSequence sequence, String any) { return IntStream.range(0, sequence.length()) - .anyMatch(i -> any.indexOf(sequence.charAt(i)) != -1); + .anyMatch(i -> any.indexOf(sequence.charAt(i)) != -1); } public static boolean containsIgnoreCase(String haystack, String needle) { @@ -68,11 +68,11 @@ public class StringMan { long b = bytes == Long.MIN_VALUE ? Long.MAX_VALUE : Math.abs(bytes); return b < 1024L ? bytes + " B" : b <= 0xfffccccccccccccL >> 40 ? String.format("%.1f KiB", bytes / 0x1p10) - : b <= 0xfffccccccccccccL >> 30 ? String.format("%.1f MiB", bytes / 0x1p20) - : b <= 0xfffccccccccccccL >> 20 ? String.format("%.1f GiB", bytes / 0x1p30) - : b <= 0xfffccccccccccccL >> 10 ? String.format("%.1f TiB", bytes / 0x1p40) - : b <= 0xfffccccccccccccL ? String.format("%.1f PiB", (bytes >> 10) / 0x1p40) - : String.format("%.1f EiB", (bytes >> 20) / 0x1p40); + : b <= 0xfffccccccccccccL >> 30 ? String.format("%.1f MiB", bytes / 0x1p20) + : b <= 0xfffccccccccccccL >> 20 ? String.format("%.1f GiB", bytes / 0x1p30) + : b <= 0xfffccccccccccccL >> 10 ? String.format("%.1f TiB", bytes / 0x1p40) + : b <= 0xfffccccccccccccL ? String.format("%.1f PiB", (bytes >> 10) / 0x1p40) + : String.format("%.1f EiB", (bytes >> 20) / 0x1p40); } public static String prettyFormat(double d) { @@ -96,21 +96,31 @@ public class StringMan { case '{': case '<': return true; - default: return false; + default: + return false; } } public static char getMatchingBracket(char c) { switch (c) { - case '[': return ']'; - case '(': return ')'; - case '{': return '}'; - case '<': return '>'; - case ']': return '['; - case ')': return '('; - case '}': return '{'; - case '>': return '<'; - default: return c; + case '[': + return ']'; + case '(': + return ')'; + case '{': + return '}'; + case '<': + return '>'; + case ']': + return '['; + case ')': + return '('; + case '}': + return '{'; + case '>': + return '<'; + default: + return c; } } @@ -174,7 +184,7 @@ public class StringMan { char currentChar = input.charAt(current); boolean atLastChar = current == input.length() - 1; if (!atLastChar && (bracket > 0 || currentChar == '{' && ++bracket > 0 - || current == '}' && --bracket <= 0)) { + || current == '}' && --bracket <= 0)) { continue; } if (currentChar == '\"') { @@ -287,7 +297,7 @@ public class StringMan { for (int i = 0; i < str.length(); i++) { final char c = str.charAt(i); if (c < 0x30 || c >= 0x3a && c <= 0x40 || c > 0x5a && c <= 0x60 || - c > 0x7a) { + c > 0x7a) { return false; } } @@ -519,16 +529,17 @@ public class StringMan { public static boolean isEqual(String a, String b) { return a == b || a != null && b != null && a.length() == b.length() - && a.hashCode() == b.hashCode() - && a.equals(b); + && a.hashCode() == b.hashCode() + && a.equals(b); } public static boolean isEqualIgnoreCase(String a, String b) { return a == b || - a != null && b != null && a.length() == b.length() && a.equalsIgnoreCase(b); + a != null && b != null && a.length() == b.length() && a.equalsIgnoreCase(b); } public static String repeat(String s, int n) { return IntStream.range(0, n).mapToObj(i -> s).collect(Collectors.joining()); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/TaskManager.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/TaskManager.java index f9b99fd93..9124d06e0 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/TaskManager.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/TaskManager.java @@ -1,13 +1,14 @@ package com.fastasyncworldedit.core.util; import com.fastasyncworldedit.core.Fawe; -import com.fastasyncworldedit.core.queue.implementation.QueueHandler; import com.fastasyncworldedit.core.configuration.Settings; +import com.fastasyncworldedit.core.queue.implementation.QueueHandler; import com.fastasyncworldedit.core.util.task.RunnableVal; import com.sk89q.worldedit.internal.util.LogManagerCompat; import org.apache.logging.log4j.Logger; -import javax.annotation.Nonnull; +import javax.annotation.Nonnull; +import javax.annotation.Nullable; import java.util.Collection; import java.util.Iterator; import java.util.concurrent.ExecutionException; @@ -15,7 +16,6 @@ import java.util.concurrent.ForkJoinPool; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicBoolean; import java.util.function.Supplier; -import javax.annotation.Nullable; public abstract class TaskManager { @@ -60,7 +60,6 @@ public abstract class TaskManager { * Get the public ForkJoinPool. * - ONLY SUBMIT SHORT LIVED TASKS
    * - DO NOT USE SLEEP/WAIT/LOCKS IN ANY SUBMITTED TASKS
    - * */ public ForkJoinPool getPublicForkJoinPool() { return pool; @@ -151,7 +150,7 @@ public abstract class TaskManager { * - If it's already the main thread, it will just call run() * * @param runnable the task to run - * @param async whether the task should run on the main thread + * @param async whether the task should run on the main thread */ public void taskNow(@Nonnull final Runnable runnable, boolean async) { if (async) { @@ -189,7 +188,7 @@ public abstract class TaskManager { * Run a task on the main thread at the next tick or now async. * * @param runnable the task to run. - * @param async whether the task should run on the main thread + * @param async whether the task should run on the main thread */ public void taskSoonMain(@Nonnull final Runnable runnable, boolean async) { if (async) { @@ -204,7 +203,7 @@ public abstract class TaskManager { * Run a task later on the main thread. * * @param runnable the task to run - * @param delay in ticks + * @param delay in ticks */ public abstract void later(@Nonnull final Runnable runnable, final int delay); @@ -212,7 +211,7 @@ public abstract class TaskManager { * Run a task later asynchronously. * * @param runnable the task to run - * @param delay in ticks + * @param delay in ticks */ public abstract void laterAsync(@Nonnull final Runnable runnable, final int delay); @@ -340,4 +339,5 @@ public abstract class TaskManager { throw new RuntimeException(e); } } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/TextureHolder.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/TextureHolder.java index 36829c33f..c114bffa6 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/TextureHolder.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/TextureHolder.java @@ -1,5 +1,7 @@ package com.fastasyncworldedit.core.util; public interface TextureHolder { + TextureUtil getTextureUtil(); + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/TextureUtil.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/TextureUtil.java index e420330bd..338dbf014 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/TextureUtil.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/TextureUtil.java @@ -1,8 +1,8 @@ package com.fastasyncworldedit.core.util; import com.fastasyncworldedit.core.Fawe; -import com.fastasyncworldedit.core.extent.filter.block.SingleFilterBlock; import com.fastasyncworldedit.core.configuration.Settings; +import com.fastasyncworldedit.core.extent.filter.block.SingleFilterBlock; import com.fastasyncworldedit.core.util.image.ImageUtil; import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; @@ -20,7 +20,7 @@ import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap; import it.unimi.dsi.fastutil.ints.IntArraySet; import it.unimi.dsi.fastutil.longs.LongArrayList; import org.apache.logging.log4j.Logger; - +import javax.imageio.ImageIO; import java.awt.image.BufferedImage; import java.io.BufferedInputStream; import java.io.File; @@ -47,8 +47,6 @@ import java.util.concurrent.ConcurrentHashMap; import java.util.regex.Pattern; import java.util.zip.ZipEntry; import java.util.zip.ZipFile; -import javax.imageio.ImageIO; - import static org.apache.logging.log4j.LogManager.getLogger; // TODO FIXME @@ -78,7 +76,7 @@ public class TextureUtil implements TextureHolder { * https://github.com/erich666/Mineways/blob/master/Win/biomes.cpp */ protected BiomeColor[] validBiomes; - private BiomeColor[] biomes = new BiomeColor[]{ + private final BiomeColor[] biomes = new BiomeColor[] { // ID Name Temperature, rainfall, grass, foliage colors // - note: the colors here are just placeholders, they are computed in the program new BiomeColor(0, "ocean", 0.5f, 0.5f, 0x92BD59, 0x77AB2F), @@ -341,9 +339,8 @@ public class TextureUtil implements TextureHolder { new BiomeColor(252, "Unknown Biome", 0.8f, 0.4f, 0x92BD59, 0x77AB2F), new BiomeColor(253, "Unknown Biome", 0.8f, 0.4f, 0x92BD59, 0x77AB2F), new BiomeColor(254, "Unknown Biome", 0.8f, 0.4f, 0x92BD59, 0x77AB2F), - new BiomeColor(255, "Unknown Biome", 0.8f, 0.4f, 0x92BD59, 0x77AB2F) - }; - private BlockType[] layerBuffer = new BlockType[2]; + new BiomeColor(255, "Unknown Biome", 0.8f, 0.4f, 0x92BD59, 0x77AB2F)}; + private final BlockType[] layerBuffer = new BlockType[2]; public TextureUtil() throws FileNotFoundException { this(MainUtil.getFile(Fawe.imp().getDirectory(), Settings.IMP.PATHS.TEXTURES)); @@ -354,9 +351,14 @@ public class TextureUtil implements TextureHolder { if (!folder.exists()) { try { LOGGER.info("Downloading asset jar from Mojang, please wait..."); - new File(Fawe.imp().getDirectory() + "/" + Settings.IMP.PATHS.TEXTURES + "/" + "/.minecraft/versions/").mkdirs(); - try (BufferedInputStream in = new BufferedInputStream(new URL("https://launcher.mojang.com/v1/objects/8d9b65467c7913fcf6f5b2e729d44a1e00fde150/client.jar").openStream()); - FileOutputStream fileOutputStream = new FileOutputStream(Fawe.imp().getDirectory() + "/" + Settings.IMP.PATHS.TEXTURES + "/" + "/.minecraft/versions/1.17.1.jar")) { + new File(Fawe.imp().getDirectory() + "/" + Settings.IMP.PATHS.TEXTURES + "/" + "/.minecraft/versions/") + .mkdirs(); + try (BufferedInputStream in = new BufferedInputStream( + new URL("https://launcher.mojang.com/v1/objects/8d9b65467c7913fcf6f5b2e729d44a1e00fde150/client.jar") + .openStream()); + FileOutputStream fileOutputStream = new FileOutputStream( + Fawe.imp().getDirectory() + "/" + Settings.IMP.PATHS.TEXTURES + "/" + + "/.minecraft/versions/1.17.1.jar")) { byte[] dataBuffer = new byte[1024]; int bytesRead; while ((bytesRead = in.read(dataBuffer, 0, 1024)) != -1) { @@ -364,12 +366,15 @@ public class TextureUtil implements TextureHolder { } LOGGER.info("Asset jar down has been downloaded successfully."); } catch (IOException e) { - LOGGER.error("Could not download version jar. Please do so manually by creating a `FastAsyncWorldEdit/textures` folder with `.minecraft/versions` jar in it."); + LOGGER.error( + "Could not download version jar. Please do so manually by creating a `FastAsyncWorldEdit/textures` folder with `.minecraft/versions` jar in it."); LOGGER.error("If the file exists, please make sure the server has read access to the directory."); } } catch (AccessControlException e) { - LOGGER.error("Could not download asset jar. It's likely your file permission are setup improperly and do not allow fetching data from the Mojang servers."); - LOGGER.error("Please create the following folder manually: `FastAsyncWorldEdit/textures` with `.minecraft/versions` jar in it."); + LOGGER.error( + "Could not download asset jar. It's likely your file permission are setup improperly and do not allow fetching data from the Mojang servers."); + LOGGER.error( + "Please create the following folder manually: `FastAsyncWorldEdit/textures` with `.minecraft/versions` jar in it."); } } @@ -410,8 +415,7 @@ public class TextureUtil implements TextureHolder { return fromBlocks(blocks); } - protected static int hueDistance(int red1, int green1, int blue1, int red2, int green2, - int blue2) { + protected static int hueDistance(int red1, int green1, int blue1, int red2, int green2, int blue2) { int total1 = (red1 + green1 + blue1); int total2 = (red2 + green2 + blue2); if (total1 == 0 || total2 == 0) { @@ -425,8 +429,7 @@ public class TextureUtil implements TextureHolder { return (int) ((r * r + g * g + b * b) >> 25); } - @Override - public TextureUtil getTextureUtil() { + @Override public TextureUtil getTextureUtil() { return this; } @@ -525,18 +528,13 @@ public class TextureUtil implements TextureHolder { return biomes[biome]; } - public boolean getIsBlockCloserThanBiome(char[] blockAndBiomeIdOutput, int color, - int biomePriority) { + public boolean getIsBlockCloserThanBiome(char[] blockAndBiomeIdOutput, int color, int biomePriority) { BlockType block = getNearestBlock(color); TextureUtil.BiomeColor biome = getNearestBiome(color); int blockColor = getColor(block); blockAndBiomeIdOutput[0] = block.getDefaultState().getOrdinalChar(); blockAndBiomeIdOutput[1] = (char) biome.id; - if (colorDistance(biome.grassCombined, color) - biomePriority > colorDistance(blockColor, - color)) { - return true; - } - return false; + return colorDistance(biome.grassCombined, color) - biomePriority > colorDistance(blockColor, color); } public int getBiomeMix(int[] biomeIdsOutput, int color) { @@ -632,16 +630,22 @@ public class TextureUtil implements TextureHolder { } } if (files.length == 0) { - new File(Fawe.imp().getDirectory() + "/" + Settings.IMP.PATHS.TEXTURES + "/" + "/.minecraft/versions/").mkdirs(); - try (BufferedInputStream in = new BufferedInputStream(new URL("https://launcher.mojang.com/v1/objects/8d9b65467c7913fcf6f5b2e729d44a1e00fde150/client.jar").openStream()); - FileOutputStream fileOutputStream = new FileOutputStream(Fawe.imp().getDirectory() + "/" + Settings.IMP.PATHS.TEXTURES + "/" + "/.minecraft/versions/1.17.1.jar")) { + new File(Fawe.imp().getDirectory() + "/" + Settings.IMP.PATHS.TEXTURES + "/" + "/.minecraft/versions/") + .mkdirs(); + try (BufferedInputStream in = new BufferedInputStream( + new URL("https://launcher.mojang.com/v1/objects/8d9b65467c7913fcf6f5b2e729d44a1e00fde150/client.jar") + .openStream()); + FileOutputStream fileOutputStream = new FileOutputStream( + Fawe.imp().getDirectory() + "/" + Settings.IMP.PATHS.TEXTURES + "/" + + "/.minecraft/versions/1.17.1.jar")) { byte[] dataBuffer = new byte[1024]; int bytesRead; while ((bytesRead = in.read(dataBuffer, 0, 1024)) != -1) { fileOutputStream.write(dataBuffer, 0, bytesRead); } } catch (IOException e) { - LOGGER.error("Could not download version jar. Please do so manually by creating a `FastAsyncWorldEdit/textures` folder with `.minecraft/versions` jar or mods in it."); + LOGGER.error( + "Could not download version jar. Please do so manually by creating a `FastAsyncWorldEdit/textures` folder with `.minecraft/versions` jar or mods in it."); LOGGER.error("If the file exists, please make sure the server has read access to the directory."); } } else { @@ -658,8 +662,7 @@ public class TextureUtil implements TextureHolder { String name = entry.getName(); Path path = Paths.get(name); if (path.startsWith("assets" + File.separator)) { - String[] split = - path.toString().split(Pattern.quote(File.separator)); + String[] split = path.toString().split(Pattern.quote(File.separator)); if (split.length > 1) { String modId = split[1]; mods.add(modId); @@ -693,8 +696,7 @@ public class TextureUtil implements TextureHolder { String textureFileName; try (InputStream is = zipFile.getInputStream(entry)) { - JsonReader reader = new JsonReader( - new InputStreamReader(is, StandardCharsets.UTF_8)); + JsonReader reader = new JsonReader(new InputStreamReader(is, StandardCharsets.UTF_8)); Map root = gson.fromJson(reader, typeToken); Map textures = (Map) root.get("textures"); @@ -703,8 +705,7 @@ public class TextureUtil implements TextureHolder { } Set models = new HashSet<>(); // Get models - for (Map.Entry stringObjectEntry : textures - .entrySet()) { + for (Map.Entry stringObjectEntry : textures.entrySet()) { Object value = stringObjectEntry.getValue(); if (value instanceof String) { models.add((String) value); @@ -722,8 +723,7 @@ public class TextureUtil implements TextureHolder { String[] texSplit = models.iterator().next().split(":"); String texture = texSplit[texSplit.length - 1]; - textureFileName = - String.format(texturesDir, nameSpace, texture); + textureFileName = String.format(texturesDir, nameSpace, texture); } BufferedImage image = readImage(zipFile, textureFileName); @@ -738,8 +738,7 @@ public class TextureUtil implements TextureHolder { } Integer grass = null; { - String grassFileName = - String.format(texturesDir, "minecraft", "grass_block_top"); + String grassFileName = String.format(texturesDir, "minecraft", "grass_block_top"); BufferedImage image = readImage(zipFile, grassFileName); if (image != null) { grass = ImageUtil.getColor(image); @@ -747,17 +746,14 @@ public class TextureUtil implements TextureHolder { } if (grass != null) { // assets\minecraft\textures\colormap - ZipEntry grassEntry = getEntry(zipFile, - "assets/minecraft/textures/colormap/grass_block.png"); + ZipEntry grassEntry = getEntry(zipFile, "assets/minecraft/textures/colormap/grass_block.png"); if (grassEntry != null) { try (InputStream is = zipFile.getInputStream(grassEntry)) { BufferedImage image = ImageIO.read(is); // Update biome colors for (BiomeColor biome : biomes) { - float adjTemp = - MathMan.clamp(biome.temperature, 0.0f, 1.0f); - float adjRainfall = - MathMan.clamp(biome.rainfall, 0.0f, 1.0f) * adjTemp; + float adjTemp = MathMan.clamp(biome.temperature, 0.0f, 1.0f); + float adjRainfall = MathMan.clamp(biome.rainfall, 0.0f, 1.0f) * adjTemp; int x = (int) (255 - adjTemp * 255); int z = (int) (255 - adjRainfall * 255); biome.grass = image.getRGB(x, z); @@ -767,10 +763,8 @@ public class TextureUtil implements TextureHolder { biomes[6].grass = 0; biomes[134].grass = 0; // roofed forest: averaged w/ 0x28340A - biomes[29].grass = - multiplyColor(biomes[29].grass, 0x28340A + (255 << 24)); - biomes[157].grass = - multiplyColor(biomes[157].grass, 0x28340A + (255 << 24)); + biomes[29].grass = multiplyColor(biomes[29].grass, 0x28340A + (255 << 24)); + biomes[157].grass = multiplyColor(biomes[157].grass, 0x28340A + (255 << 24)); // mesa : 0x90814D biomes[37].grass = 0x90814D + (255 << 24); biomes[38].grass = 0x90814D + (255 << 24); @@ -781,8 +775,7 @@ public class TextureUtil implements TextureHolder { List valid = new ArrayList<>(); for (BiomeColor biome : biomes) { // biome.grass = multiplyColor(biome.grass, grass); - if (biome.grass != 0 && !biome.name - .equalsIgnoreCase("Unknown Biome")) { + if (biome.grass != 0 && !biome.name.equalsIgnoreCase("Unknown Biome")) { valid.add(biome); } biome.grassCombined = multiplyColor(grass, biome.grass); @@ -808,14 +801,11 @@ public class TextureUtil implements TextureHolder { BiomeColor c1 = uniqueColors.get(i); BiomeColor c2 = uniqueColors.get(j); BiomeColor c3 = uniqueColors.get(k); - int average = - averageColor(c1.grass, c2.grass, c3.grass); + int average = averageColor(c1.grass, c2.grass, c3.grass); if (uniqueBiomesColors.add(average)) { count++; - layerColors.add((long) average); - layerIds.add( - (long) ((c1.id) + (c2.id << 8) + (c3.id - << 16))); + layerColors.add(average); + layerIds.add((c1.id) + (c2.id << 8) + (c3.id << 16)); } } } @@ -938,7 +928,7 @@ public class TextureUtil implements TextureHolder { if (!hasAlpha(colorOther)) { int combinedOther = validBlockIds[j]; int combinedColor = combineTransparency(color, colorOther); - colorLayerMap.put(combinedColor, new int[]{combined, combinedOther}); + colorLayerMap.put(combinedColor, new int[] {combined, combinedOther}); } } } @@ -1022,8 +1012,7 @@ public class TextureUtil implements TextureHolder { int g = green1 - green2; int b = blue1 - blue2; int hd = hueDistance(red1, green1, blue1, red2, green2, blue2); - return (((512 + rmean) * r * r) >> 8) + 4 * g * g + (((767 - rmean) * b * b) >> 8) + (hd - * hd); + return (((512 + rmean) * r * r) >> 8) + 4 * g * g + (((767 - rmean) * b * b) >> 8) + (hd * hd); } public long getDistance(BufferedImage image, int c1) { @@ -1058,8 +1047,7 @@ public class TextureUtil implements TextureHolder { public int grassCombined; public int foliage; - public BiomeColor(int id, String name, float temperature, float rainfall, int grass, - int foliage) { + public BiomeColor(int id, String name, float temperature, float rainfall, int grass, int foliage) { this.id = id; this.name = name; this.temperature = temperature; @@ -1068,5 +1056,7 @@ public class TextureUtil implements TextureHolder { this.grassCombined = grass; this.foliage = foliage; } + } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/ThirdPartyManager.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/ThirdPartyManager.java deleted file mode 100644 index 679602b99..000000000 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/ThirdPartyManager.java +++ /dev/null @@ -1,73 +0,0 @@ -package com.fastasyncworldedit.core.util; - -import com.sk89q.worldedit.internal.util.LogManagerCompat; -import org.apache.logging.log4j.Logger; - -import java.io.DataInputStream; -import java.io.IOException; -import java.net.URL; -import java.security.MessageDigest; -import java.security.NoSuchAlgorithmException; -import java.util.Base64; - -/** An internal FAWE class not meant for public use. **/ -public enum ThirdPartyManager { - - MapManager( - "https://github.com/InventivetalentDev/MapManager/releases/download/1.7.8-SNAPSHOT/MapManager_v1.7.8-SNAPSHOT.jar", - "m3YLUqZz66k2DmvdcYLeu38u3zKRKhrAXqGGpVKfO6g=", 544000), - - PacketListenerAPI( - "https://github.com/InventivetalentDev/PacketListenerAPI/releases/download/3.7.6-SNAPSHOT/PacketListenerAPI_v3.7.6-SNAPSHOT.jar", - "etdBRzLn5pRVDfr/mSQdPm6Jjer3wQOKhcn8fUxo5zM=", 143000), - - ; - - private static final Logger LOGGER = LogManagerCompat.getLogger(); - - public final String url; - public final int fileSize; - public final String digest; - - /** - * @param url Where this jar can be found and downloaded - * @param digest The Base64-encoded SHA-256 digest - * @param fileSize Size of this jar in bytes - */ - ThirdPartyManager(String url, String digest, int fileSize) { - this.url = url; - this.digest = digest; - this.fileSize = fileSize; - } - - /** - * Download a jar, verify hash, return byte[] containing the jar - */ - public byte[] download() throws IOException { - byte[] jarBytes = new byte[this.fileSize]; - URL url = new URL(this.url); - try (DataInputStream dis = new DataInputStream(url.openConnection().getInputStream())) { - dis.readFully(jarBytes); - if (dis.read() != -1) { // assert that we've read everything - throw new IllegalStateException("Downloaded jar is longer than expected"); - } - MessageDigest md = MessageDigest.getInstance("SHA-256"); - byte[] jarDigestBytes = md.digest(jarBytes); - - String jarDigest = Base64.getEncoder().encodeToString(jarDigestBytes); - - if (this.digest.equals(jarDigest)) { - LOGGER.debug("++++ HASH CHECK ++++"); - LOGGER.debug(this.url); - LOGGER.debug(this.digest); - return jarBytes; - } else { - LOGGER.debug(jarDigest + " | " + url); - throw new IllegalStateException("The downloaded jar does not match the hash"); - } - } catch (NoSuchAlgorithmException e) { - // Shouldn't ever happen, Minecraft won't even run on such a JRE - throw new IllegalStateException("Your JRE does not support SHA-256"); - } - } -} diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/UnsafeUtility.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/UnsafeUtility.java index a42e803e2..ac6c0c275 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/UnsafeUtility.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/UnsafeUtility.java @@ -24,4 +24,5 @@ public class UnsafeUtility { public static Unsafe getUNSAFE() { return UNSAFE; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/WEManager.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/WEManager.java index b70402042..402e5bc25 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/WEManager.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/WEManager.java @@ -2,11 +2,11 @@ package com.fastasyncworldedit.core.util; import com.fastasyncworldedit.core.configuration.Caption; import com.fastasyncworldedit.core.configuration.Settings; -import com.fastasyncworldedit.core.regions.RegionWrapper; -import com.fastasyncworldedit.core.internal.exception.FaweException; import com.fastasyncworldedit.core.extent.NullExtent; +import com.fastasyncworldedit.core.internal.exception.FaweException; import com.fastasyncworldedit.core.regions.FaweMask; import com.fastasyncworldedit.core.regions.FaweMaskManager; +import com.fastasyncworldedit.core.regions.RegionWrapper; import com.sk89q.worldedit.WorldEditException; import com.sk89q.worldedit.entity.Player; import com.sk89q.worldedit.extent.AbstractDelegateExtent; @@ -121,7 +121,7 @@ public class WEManager { e.printStackTrace(); } } else { - player.printError(TextComponent.of("Missing permission " + "fawe." + manager.getKey())); + player.printError(TextComponent.of("Missing permission " + "fawe." + manager.getKey())); } } LOGGER.debug("Region info for " + player.getName()); @@ -144,7 +144,7 @@ public class WEManager { BlockVector3 rg2P2 = region2.getMaximumPoint(); return rg1P1.getBlockX() <= rg2P2.getBlockX() && rg1P2.getBlockX() >= rg2P1.getBlockX() - && rg1P1.getBlockZ() <= rg2P2.getBlockZ() && rg1P2.getBlockZ() >= rg2P1.getBlockZ(); + && rg1P1.getBlockZ() <= rg2P2.getBlockZ() && rg1P2.getBlockZ() >= rg2P1.getBlockZ(); } public boolean regionContains(Region selection, HashSet mask) { @@ -155,4 +155,5 @@ public class WEManager { } return false; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/collection/AdaptedMap.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/collection/AdaptedMap.java index f214ff86a..2336152ca 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/collection/AdaptedMap.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/collection/AdaptedMap.java @@ -1,7 +1,6 @@ package com.fastasyncworldedit.core.util.collection; import javax.annotation.Nonnull; - import java.util.Collections; import java.util.Map; import java.util.Objects; @@ -9,6 +8,7 @@ import java.util.Set; import java.util.function.Function; public class AdaptedMap implements IAdaptedMap { + private final Map parent; private final Function value2; private final Function key2; @@ -17,7 +17,9 @@ public class AdaptedMap implements IAdaptedMap { private static final Function SAME = o -> o; - private static final Function IMMUTABLE = o -> { throw new UnsupportedOperationException("Immutable"); }; + private static final Function IMMUTABLE = o -> { + throw new UnsupportedOperationException("Immutable"); + }; public static AdaptedMap keys(Map parent, Function key, Function key2) { return new AdaptedMap(parent, key, key2, SAME, SAME); @@ -27,11 +29,21 @@ public class AdaptedMap implements IAdaptedMap { return new AdaptedMap(parent, SAME, SAME, value, value2); } - public static AdaptedMap immutable(Map parent, Function key, Function value) { + public static AdaptedMap immutable( + Map parent, + Function key, + Function value + ) { return new AdaptedMap(parent, IMMUTABLE, key, IMMUTABLE, value); } - public AdaptedMap(Map parent, Function key, Function key2, Function value, Function value2) { + public AdaptedMap( + Map parent, + Function key, + Function key2, + Function value, + Function value2 + ) { this.parent = parent; this.key = key; this.value = value; @@ -70,17 +82,22 @@ public class AdaptedMap implements IAdaptedMap { if (isEmpty()) { return Collections.emptySet(); } - return new AdaptedSetCollection<>(getParent().entrySet(), new com.google.common.base.Function, Entry>() { - private final AdaptedPair entry = new AdaptedPair(); - @Override - public Entry apply(@javax.annotation.Nullable Entry input) { - entry.input = input; - return entry; - } - }); + return new AdaptedSetCollection<>( + getParent().entrySet(), + new com.google.common.base.Function, Entry>() { + private final AdaptedPair entry = new AdaptedPair(); + + @Override + public Entry apply(@javax.annotation.Nullable Entry input) { + entry.input = input; + return entry; + } + } + ); } public class AdaptedPair implements Entry { + private Entry input; @Override @@ -110,5 +127,7 @@ public class AdaptedMap implements IAdaptedMap { public int hashCode() { return 1337; } + } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/collection/AdaptedSetCollection.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/collection/AdaptedSetCollection.java index c654c053e..2690fdf99 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/collection/AdaptedSetCollection.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/collection/AdaptedSetCollection.java @@ -2,8 +2,8 @@ package com.fastasyncworldedit.core.util.collection; import com.google.common.base.Function; import com.google.common.collect.Collections2; -import javax.annotation.Nonnull; +import javax.annotation.Nonnull; import java.util.Collection; import java.util.Iterator; import java.util.Set; @@ -17,6 +17,7 @@ import java.util.stream.Stream; * @apiNote It's assumed that the collection is set like, otherwise behavior will be weird */ public class AdaptedSetCollection implements Set { + private final Collection adapted; private final Collection original; @@ -131,4 +132,5 @@ public class AdaptedSetCollection implements Set { public void forEach(Consumer action) { adapted.forEach(action); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/collection/BlockSet.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/collection/BlockSet.java index aadf1c6ad..0706a39d2 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/collection/BlockSet.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/collection/BlockSet.java @@ -117,4 +117,5 @@ public abstract class BlockSet extends AbstractRegion { public void contract(BlockVector3... changes) throws RegionOperationException { } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/collection/CleanableThreadLocal.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/collection/CleanableThreadLocal.java index 0c433ba13..aeb1aa25a 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/collection/CleanableThreadLocal.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/collection/CleanableThreadLocal.java @@ -7,6 +7,7 @@ import java.util.function.Function; import java.util.function.Supplier; public class CleanableThreadLocal extends ThreadLocal implements AutoCloseable { + private final Supplier supplier; private final Function modifier; private final LongAdder count = new LongAdder(); // what is that supposed to do? @@ -48,4 +49,5 @@ public class CleanableThreadLocal extends ThreadLocal implements AutoClose public void close() throws IOException { clean(); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/collection/FastRandomCollection.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/collection/FastRandomCollection.java index be82c08c2..61afe2dcd 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/collection/FastRandomCollection.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/collection/FastRandomCollection.java @@ -8,6 +8,7 @@ import java.util.Map; import java.util.Optional; public class FastRandomCollection extends RandomCollection { + private final T[] values; private FastRandomCollection(T[] values, SimpleRandom random) { @@ -21,10 +22,10 @@ public class FastRandomCollection extends RandomCollection { * {@code Optional} in any case. * * @param weights the weight of the values. - * @param random the random generator to use for this collection. - * @param the value type. + * @param random the random generator to use for this collection. + * @param the value type. * @return an {@link Optional} containing the new collection if it could be created, {@link - * Optional#empty()} otherwise. + * Optional#empty()} otherwise. * @see RandomCollection for API usage. */ public static Optional> create(Map weights, SimpleRandom random) { @@ -62,4 +63,5 @@ public class FastRandomCollection extends RandomCollection { public T next(int x, int y, int z) { return values[getRandom().nextInt(x, y, z, values.length)]; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/collection/IAdaptedMap.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/collection/IAdaptedMap.java index 7c8174785..c1fcbe7e6 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/collection/IAdaptedMap.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/collection/IAdaptedMap.java @@ -1,15 +1,16 @@ package com.fastasyncworldedit.core.util.collection; import com.google.common.base.Function; + import javax.annotation.Nonnull; import javax.annotation.Nullable; - import java.util.Collection; import java.util.Collections; import java.util.Map; import java.util.Set; public interface IAdaptedMap extends Map { + Map getParent(); K2 adaptKey(K key); @@ -93,7 +94,8 @@ public interface IAdaptedMap extends Map { return Collections.emptySet(); } return new AdaptedSetCollection<>(getParent().entrySet(), new Function, Entry>() { - private MutablePair entry = new MutablePair<>(); + private final MutablePair entry = new MutablePair<>(); + @Override public Entry apply(@javax.annotation.Nullable Entry input) { entry.setKey(adaptKey2(input.getKey())); @@ -102,4 +104,5 @@ public interface IAdaptedMap extends Map { } }); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/collection/LongHashSet.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/collection/LongHashSet.java index b10b04689..416e2cb44 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/collection/LongHashSet.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/collection/LongHashSet.java @@ -114,7 +114,7 @@ public class LongHashSet { } public long popFirst() { - for (long[][] outer: this.values) { + for (long[][] outer : this.values) { if (outer == null) { continue; } @@ -149,7 +149,7 @@ public class LongHashSet { continue; } - for (long entry: inner) { + for (long entry : inner) { ret[index++] = entry; } outer[oIdx] = null; diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/collection/MemBlockSet.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/collection/MemBlockSet.java index ab6dd358b..a3803ae47 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/collection/MemBlockSet.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/collection/MemBlockSet.java @@ -1,12 +1,12 @@ package com.fastasyncworldedit.core.util.collection; import com.fastasyncworldedit.core.FaweCache; -import com.sk89q.worldedit.math.BlockVector2; -import com.sk89q.worldedit.math.BlockVector3; import com.fastasyncworldedit.core.math.MutableBlockVector2; import com.fastasyncworldedit.core.math.MutableBlockVector3; -import javax.annotation.Nonnull; +import com.sk89q.worldedit.math.BlockVector2; +import com.sk89q.worldedit.math.BlockVector3; +import javax.annotation.Nonnull; import java.util.AbstractSet; import java.util.Arrays; import java.util.Iterator; @@ -15,11 +15,12 @@ import java.util.Set; /** * Memory optimized BlockVector3 Set using a sparsely populated bitset and grouped by chunk section * Note on spaghetti code / duplication - * - Uses a minimum of 1 bit per entry - * - 99.9% of the time there are no if checks on get/clear - * - Grouping / iteration is by chunk section, and the y>z>x order + * - Uses a minimum of 1 bit per entry + * - 99.9% of the time there are no if checks on get/clear + * - Grouping / iteration is by chunk section, and the y>z>x order */ public final class MemBlockSet extends BlockSet { + public static final int BITS_PER_WORD = 6; public static final int WORDS = FaweCache.IMP.BLOCKS_PER_LAYER >> BITS_PER_WORD; public static final IRow NULL_ROW_X = new NullRowX(); @@ -92,7 +93,7 @@ public final class MemBlockSet extends BlockSet { @Override public Iterator iterator() { return new Iterator() { - private MutableBlockVector2 mutable = new MutableBlockVector2(); + private final MutableBlockVector2 mutable = new MutableBlockVector2(); private boolean hasNext; private int X; private int Z; @@ -184,7 +185,7 @@ public final class MemBlockSet extends BlockSet { @Override public Iterator iterator() { return new Iterator() { - private MutableBlockVector3 mutable = new MutableBlockVector3(); + private final MutableBlockVector3 mutable = new MutableBlockVector3(); private boolean hasNext; private int X; private int Z; @@ -233,7 +234,7 @@ public final class MemBlockSet extends BlockSet { @Override public BlockVector3 next() { mutable.setComponents( - setX + getBlockOffsetX(), setY, setZ + getBlockOffsetX()); + setX + getBlockOffsetX(), setY, setZ + getBlockOffsetX()); init(); return mutable; } @@ -804,11 +805,14 @@ public final class MemBlockSet extends BlockSet { } public interface BlockIterator { + void apply(int x, int y, int z); + } public interface IRow { + default boolean get(IRow[] rows, int x, int y, int z) { return false; } @@ -827,36 +831,44 @@ public final class MemBlockSet extends BlockSet { default void clear(IRow[] rows, int x, int y, int z) { } + } public static final class NullRowX implements IRow { + @Override public void set(IRow[] parent, int x, int y, int z) { IRow row = new RowX(parent.length); parent[x >> 4] = row; row.set(parent, x, y, z); } + } public static final class NullRowZ implements IRow { + @Override public void set(IRow[] parent, int x, int y, int z) { IRow row = new RowZ(); parent[z >> 4] = row; row.set(parent, x, y, z); } + } public static final class NullRowY implements IRow { + @Override public void set(IRow[] parent, int x, int y, int z) { IRow row = new RowY(); parent[y >> 4] = row; row.set(parent, x, y, z); } + } public static final class RowX implements IRow { + private final IRow[] rows; public RowX(int size) { @@ -890,9 +902,11 @@ public final class MemBlockSet extends BlockSet { public boolean remove(IRow[] parent, int x, int y, int z) { return this.rows[z >> 4].remove(this.rows, x, y, z); } + } public static final class RowZ implements IRow { + public final IRow[] rows; public RowZ() { @@ -930,7 +944,7 @@ public final class MemBlockSet extends BlockSet { } public boolean isEmpty() { - for (IRow row :rows) { + for (IRow row : rows) { if (row instanceof RowY) { return false; } @@ -947,9 +961,11 @@ public final class MemBlockSet extends BlockSet { rows[i] = NULL_ROW_Y; } } + } public static final class RowY implements IRow { + private final long[] bits; public RowY() { @@ -1003,6 +1019,7 @@ public final class MemBlockSet extends BlockSet { } return false; } + } private static IRow[] resize(IRow[] arr, IRow def) { @@ -1014,4 +1031,5 @@ public final class MemBlockSet extends BlockSet { } return copy; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/collection/MutablePair.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/collection/MutablePair.java index d1c2b35f8..956ff4a04 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/collection/MutablePair.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/collection/MutablePair.java @@ -3,6 +3,7 @@ package com.fastasyncworldedit.core.util.collection; import java.util.Map; public class MutablePair implements Map.Entry { + private K key; private V value; @@ -25,4 +26,5 @@ public class MutablePair implements Map.Entry { public void setKey(K key) { this.key = key; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/collection/RandomCollection.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/collection/RandomCollection.java index 5b486b770..a157ebd7c 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/collection/RandomCollection.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/collection/RandomCollection.java @@ -14,6 +14,7 @@ import static com.google.common.base.Preconditions.checkNotNull; * @param the type of values the collection holds. */ public abstract class RandomCollection { + private SimpleRandom random; protected RandomCollection(SimpleRandom random) { @@ -45,4 +46,5 @@ public abstract class RandomCollection { } public abstract T next(int x, int y, int z); + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/collection/SimpleRandomCollection.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/collection/SimpleRandomCollection.java index d4db3cba6..d67227abe 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/collection/SimpleRandomCollection.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/collection/SimpleRandomCollection.java @@ -38,4 +38,5 @@ public class SimpleRandomCollection extends RandomCollection { public E next(int x, int y, int z) { return map.ceilingEntry(getRandom().nextDouble(x, y, z)).getValue(); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/collection/SummedColorTable.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/collection/SummedColorTable.java index f52e4619a..9a26d7112 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/collection/SummedColorTable.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/collection/SummedColorTable.java @@ -9,6 +9,7 @@ import java.awt.image.DataBufferInt; * Efficient blur / average color over an image. */ public class SummedColorTable { + private final long[] reds; private final long[] greens; private final long[] blues; @@ -183,7 +184,11 @@ public class SummedColorTable { float factor = this.areaInverses[area - 1]; float alpha = (totAlpha * factor); factor = (factor * 256) / alpha; - return (MathMan.clamp((int) alpha, 0, 255) << 24) + (((int) (totRed * factor)) << 16) + (((int) (totGreen * factor)) << 8) + (((int) (totBlue * factor)) << 0); + return (MathMan.clamp( + (int) alpha, + 0, + 255 + ) << 24) + (((int) (totRed * factor)) << 16) + (((int) (totGreen * factor)) << 8) + (((int) (totBlue * factor)) << 0); } private long getVal(int row, int col, int index, long curr, long[] summed) { @@ -235,4 +240,5 @@ public class SummedColorTable { return curr + leftSum + topSum - topLeftSum; } } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/collection/YieldIterable.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/collection/YieldIterable.java index 5315c2f3f..05998548c 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/collection/YieldIterable.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/collection/YieldIterable.java @@ -1,7 +1,6 @@ package com.fastasyncworldedit.core.util.collection; import javax.annotation.Nullable; - import java.io.Closeable; import java.util.Iterator; import java.util.concurrent.Future; @@ -10,6 +9,7 @@ import java.util.concurrent.TimeUnit; import java.util.function.Consumer; public class YieldIterable implements Iterable, Consumer, Closeable { + private static final Object END_MARKER = new Object(); private final LinkedBlockingQueue queue; private Future future; @@ -70,4 +70,5 @@ public class YieldIterable implements Iterable, Consumer, Closeable { public void close() { queue.add((T) END_MARKER); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/image/Drawable.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/image/Drawable.java index 341347fcc..a5645e696 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/image/Drawable.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/image/Drawable.java @@ -3,5 +3,7 @@ package com.fastasyncworldedit.core.util.image; import java.awt.image.BufferedImage; public interface Drawable { + BufferedImage draw(); + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/image/ImageUtil.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/image/ImageUtil.java index 914845f52..ffc0eab2f 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/image/ImageUtil.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/image/ImageUtil.java @@ -3,12 +3,13 @@ package com.fastasyncworldedit.core.util.image; import com.fastasyncworldedit.core.Fawe; import com.fastasyncworldedit.core.configuration.Caption; import com.fastasyncworldedit.core.configuration.Settings; +import com.fastasyncworldedit.core.extension.platform.binding.ProvideBindings; import com.fastasyncworldedit.core.util.MainUtil; import com.fastasyncworldedit.core.util.MathMan; import com.sk89q.worldedit.extension.input.InputParseException; -import com.fastasyncworldedit.core.extension.platform.binding.ProvideBindings; import com.sk89q.worldedit.util.formatting.text.TextComponent; +import javax.annotation.Nullable; import java.awt.Graphics2D; import java.awt.RenderingHints; import java.awt.Transparency; @@ -21,17 +22,18 @@ import java.io.InputStream; import java.net.URI; import java.net.URISyntaxException; import java.net.URL; -import javax.annotation.Nullable; public class ImageUtil { - public static BufferedImage getScaledInstance(BufferedImage image, int targetWidth, - int targetHeight, Object hint, boolean higherQuality) { + public static BufferedImage getScaledInstance( + BufferedImage image, int targetWidth, + int targetHeight, Object hint, boolean higherQuality + ) { if (image.getHeight() == targetHeight && image.getWidth() == targetWidth) { return image; } int type = image.getTransparency() == Transparency.OPAQUE ? - BufferedImage.TYPE_INT_RGB : BufferedImage.TYPE_INT_ARGB; + BufferedImage.TYPE_INT_RGB : BufferedImage.TYPE_INT_ARGB; BufferedImage scaledImage = image; int width; int height; @@ -67,10 +69,14 @@ public class ImageUtil { Graphics2D g2 = tmp.createGraphics(); g2.setRenderingHint(RenderingHints.KEY_INTERPOLATION, hint); g2.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_SPEED); - g2.setRenderingHint(RenderingHints.KEY_COLOR_RENDERING, - RenderingHints.VALUE_COLOR_RENDER_SPEED); - g2.setRenderingHint(RenderingHints.KEY_ALPHA_INTERPOLATION, - RenderingHints.VALUE_ALPHA_INTERPOLATION_SPEED); + g2.setRenderingHint( + RenderingHints.KEY_COLOR_RENDERING, + RenderingHints.VALUE_COLOR_RENDER_SPEED + ); + g2.setRenderingHint( + RenderingHints.KEY_ALPHA_INTERPOLATION, + RenderingHints.VALUE_ALPHA_INTERPOLATION_SPEED + ); g2.drawImage(scaledImage, 0, 0, width, height, null); g2.dispose(); @@ -165,7 +171,7 @@ public class ImageUtil { } public static BufferedImage load(@Nullable ProvideBindings.ImageUri uri) - throws InputParseException { + throws InputParseException { return uri == null ? null : uri.load(); } @@ -205,8 +211,10 @@ public class ImageUtil { } if (arg.startsWith("file:/")) { arg = arg.replaceFirst("file:/+", ""); - File file = MainUtil.getFile(MainUtil.getFile(Fawe.imp().getDirectory(), - Settings.IMP.PATHS.HEIGHTMAP), arg); + File file = MainUtil.getFile(MainUtil.getFile( + Fawe.imp().getDirectory(), + Settings.IMP.PATHS.HEIGHTMAP + ), arg); return MainUtil.readImage(file); } throw new InputParseException(Caption.of("fawe.error.invalid-image", TextComponent.of(arg))); @@ -225,13 +233,21 @@ public class ImageUtil { } if (arg.startsWith("file:/")) { arg = arg.replaceFirst("file:/+", ""); - File file = MainUtil.getFile(MainUtil.getFile(Fawe.imp().getDirectory(), - Settings.IMP.PATHS.HEIGHTMAP), arg); + File file = MainUtil.getFile(MainUtil.getFile( + Fawe.imp().getDirectory(), + Settings.IMP.PATHS.HEIGHTMAP + ), arg); if (!file.exists()) { - throw new InputParseException(Caption.of("fawe.error.file-not-found", TextComponent.of(String.valueOf(file)))); + throw new InputParseException(Caption.of( + "fawe.error.file-not-found", + TextComponent.of(String.valueOf(file)) + )); } if (file.isDirectory()) { - throw new InputParseException(Caption.of("fawe.error.file-is-invalid-directory", TextComponent.of(String.valueOf(file)))); + throw new InputParseException(Caption.of( + "fawe.error.file-is-invalid-directory", + TextComponent.of(String.valueOf(file)) + )); } return file.toURI(); } @@ -240,4 +256,5 @@ public class ImageUtil { throw new InputParseException(Caption.of(e.getMessage())); } } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/image/ImageViewer.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/image/ImageViewer.java index d7c503dea..36f4f8d11 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/image/ImageViewer.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/image/ImageViewer.java @@ -2,6 +2,8 @@ package com.fastasyncworldedit.core.util.image; import java.io.Closeable; -public interface ImageViewer extends Closeable{ +public interface ImageViewer extends Closeable { + void view(Drawable drawable); + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/progress/ChatProgressTracker.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/progress/ChatProgressTracker.java index bb8b4c112..55838335e 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/progress/ChatProgressTracker.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/progress/ChatProgressTracker.java @@ -5,6 +5,7 @@ import com.sk89q.worldedit.util.formatting.text.Component; import com.sk89q.worldedit.util.formatting.text.TextComponent; public class ChatProgressTracker extends DefaultProgressTracker { + public ChatProgressTracker(Player player) { super(player); setInterval(getDelay() / 50); @@ -14,4 +15,5 @@ public class ChatProgressTracker extends DefaultProgressTracker { public void sendTile(Component title, Component sub) { getPlayer().print(TextComponent.builder().append(title).append("\n").append(sub).build()); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/progress/DefaultProgressTracker.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/progress/DefaultProgressTracker.java index d85cdf91c..ef92296c0 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/progress/DefaultProgressTracker.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/progress/DefaultProgressTracker.java @@ -52,7 +52,7 @@ public class DefaultProgressTracker implements BiConsumer { + int getDelay(T previousResult); + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/task/DelegateConsumer.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/task/DelegateConsumer.java index 5c367fa92..d002786d8 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/task/DelegateConsumer.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/task/DelegateConsumer.java @@ -3,6 +3,7 @@ package com.fastasyncworldedit.core.util.task; import java.util.function.Consumer; public abstract class DelegateConsumer implements Consumer { + private final Consumer parent; public DelegateConsumer(Consumer parent) { @@ -13,4 +14,5 @@ public abstract class DelegateConsumer implements Consumer { public void accept(T o) { parent.accept(o); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/task/InterruptableCondition.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/task/InterruptableCondition.java index 204ec3fef..6570be8cd 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/task/InterruptableCondition.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/task/InterruptableCondition.java @@ -6,6 +6,7 @@ import java.util.concurrent.locks.Lock; import static com.google.common.base.Preconditions.checkNotNull; public class InterruptableCondition { + private final Condition condition; private final Thread thread; private final Lock lock; @@ -31,4 +32,5 @@ public class InterruptableCondition { public void interrupt() { this.thread.interrupt(); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/task/ReceiveTask.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/task/ReceiveTask.java index 32e569ec8..4e2fe3006 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/task/ReceiveTask.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/task/ReceiveTask.java @@ -1,5 +1,7 @@ package com.fastasyncworldedit.core.util.task; public interface ReceiveTask { + void run(T previous); + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/task/ReturnTask.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/task/ReturnTask.java index 4b883a41c..5b689e6a8 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/task/ReturnTask.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/task/ReturnTask.java @@ -1,5 +1,7 @@ package com.fastasyncworldedit.core.util.task; public interface ReturnTask { + T run(); + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/task/RunnableVal.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/task/RunnableVal.java index 0f44f0e74..1a7ca905e 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/task/RunnableVal.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/task/RunnableVal.java @@ -4,6 +4,7 @@ import java.util.function.Consumer; import java.util.function.Supplier; public abstract class RunnableVal implements Runnable, Supplier, Consumer { + public T value; public RunnableVal() { @@ -34,4 +35,5 @@ public abstract class RunnableVal implements Runnable, Supplier, Consumer< public void accept(T t) { run(value); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/task/RunnableVal2.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/task/RunnableVal2.java index e171d41c5..221cc6b59 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/task/RunnableVal2.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/task/RunnableVal2.java @@ -3,6 +3,7 @@ package com.fastasyncworldedit.core.util.task; import java.util.function.BiConsumer; public abstract class RunnableVal2 implements Runnable, BiConsumer { + public T value1; public U value2; @@ -30,4 +31,5 @@ public abstract class RunnableVal2 implements Runnable, BiConsumer { public void accept(T t, U u) { run(t, u); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/task/RunnableVal3.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/task/RunnableVal3.java index daa0a1227..644962df4 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/task/RunnableVal3.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/task/RunnableVal3.java @@ -1,6 +1,7 @@ package com.fastasyncworldedit.core.util.task; public abstract class RunnableVal3 implements Runnable { + public T value1; public U value2; public V value3; @@ -20,4 +21,5 @@ public abstract class RunnableVal3 implements Runnable { } public abstract void run(T value1, U value2, V value3); + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/task/RunnableVal4.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/task/RunnableVal4.java index 1df45d5b9..df333b82f 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/task/RunnableVal4.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/task/RunnableVal4.java @@ -1,6 +1,7 @@ package com.fastasyncworldedit.core.util.task; public abstract class RunnableVal4 implements Runnable { + public T value1; public U value2; public V value3; @@ -22,4 +23,5 @@ public abstract class RunnableVal4 implements Runnable { } public abstract void run(T value1, U value2, V value3, W value4); + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/task/SingleThreadIntervalQueue.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/task/SingleThreadIntervalQueue.java index a8fbbd404..b7129c3d9 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/task/SingleThreadIntervalQueue.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/task/SingleThreadIntervalQueue.java @@ -10,9 +10,10 @@ import java.util.concurrent.ConcurrentMap; import java.util.concurrent.atomic.AtomicBoolean; public abstract class SingleThreadIntervalQueue { + private final ConcurrentMap objMap = new ConcurrentHashMap<>(); private final Runnable task; - private AtomicBoolean queued = new AtomicBoolean(); + private final AtomicBoolean queued = new AtomicBoolean(); public SingleThreadIntervalQueue(int interval) { this.task = new Runnable() { @@ -57,4 +58,5 @@ public abstract class SingleThreadIntervalQueue { } } } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/task/Task.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/task/Task.java index 0e3d9c89a..e67b63488 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/task/Task.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/task/Task.java @@ -1,5 +1,7 @@ package com.fastasyncworldedit.core.util.task; public interface Task { + T run(V previousResult); + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/task/ThrowableSupplier.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/task/ThrowableSupplier.java index d1bf3cc8e..e8e38543f 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/task/ThrowableSupplier.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/util/task/ThrowableSupplier.java @@ -1,5 +1,7 @@ package com.fastasyncworldedit.core.util.task; public interface ThrowableSupplier { + Object get() throws T; + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/world/SimpleWorld.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/world/SimpleWorld.java index e57c07766..61cfd5f15 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/world/SimpleWorld.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/world/SimpleWorld.java @@ -22,21 +22,23 @@ import com.sk89q.worldedit.world.block.BlockTypes; import com.sk89q.worldedit.world.weather.WeatherType; import com.sk89q.worldedit.world.weather.WeatherTypes; +import javax.annotation.Nullable; import java.nio.file.Path; import java.util.function.Supplier; -import javax.annotation.Nullable; /** * An abstract implementation of {@link World}. */ public interface SimpleWorld extends World { + @Override default boolean useItem(BlockVector3 position, BaseItem item, Direction face) { return false; } @Override - default > boolean setBlock(BlockVector3 position, B block, boolean notifyAndLight) throws WorldEditException { + default > boolean setBlock(BlockVector3 position, B block, boolean notifyAndLight) throws + WorldEditException { return setBlock(position, block); } @@ -48,7 +50,9 @@ public interface SimpleWorld extends World { @Override > boolean setBlock(BlockVector3 pt, B block) throws WorldEditException; - @Nullable @Override default Path getStoragePath() { + @Nullable + @Override + default Path getStoragePath() { return null; } @@ -88,7 +92,11 @@ public interface SimpleWorld extends World { @Override default boolean queueBlockBreakEffect(Platform server, BlockVector3 position, BlockType blockType, double priority) { - Fawe.get().getQueueHandler().sync((Supplier) () -> playEffect(position, 2001, blockType.getLegacyCombinedId() >> 4)); + Fawe.get().getQueueHandler().sync((Supplier) () -> playEffect( + position, + 2001, + blockType.getLegacyCombinedId() >> 4 + )); return true; } @@ -104,7 +112,8 @@ public interface SimpleWorld extends World { @Override - default boolean generateTree(TreeGenerator.TreeType type, EditSession editSession, BlockVector3 position) throws MaxChangedBlocksException { + default boolean generateTree(TreeGenerator.TreeType type, EditSession editSession, BlockVector3 position) throws + MaxChangedBlocksException { return false; } @@ -136,4 +145,5 @@ public interface SimpleWorld extends World { default void setWeather(WeatherType weatherType, long duration) { } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/world/block/BlanketBaseBlock.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/world/block/BlanketBaseBlock.java index 44f0007bb..d6cd71f71 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/world/block/BlanketBaseBlock.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/world/block/BlanketBaseBlock.java @@ -3,6 +3,7 @@ package com.fastasyncworldedit.core.world.block; import com.sk89q.jnbt.CompoundTag; import com.sk89q.worldedit.world.block.BaseBlock; import com.sk89q.worldedit.world.block.BlockState; + import javax.annotation.Nonnull; /** @@ -25,4 +26,5 @@ public final class BlanketBaseBlock extends BaseBlock { } return this; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/world/block/BlockID.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/world/block/BlockID.java index ffef82386..c077c7f53 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/world/block/BlockID.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/world/block/BlockID.java @@ -7,6 +7,7 @@ package com.fastasyncworldedit.core.world.block; */ @Deprecated(forRemoval = true) public class BlockID { + public static final int __RESERVED__ = 0; public static final int AIR = 1; public static final int CAVE_AIR = 2; @@ -690,4 +691,5 @@ public class BlockID { // Deprecated public static final int SIGN = OAK_SIGN; public static final int WALL_SIGN = OAK_WALL_SIGN; + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/world/block/BlockTypeSwitch.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/world/block/BlockTypeSwitch.java index 5f50c9f17..aa0ddbd44 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/world/block/BlockTypeSwitch.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/world/block/BlockTypeSwitch.java @@ -5,7 +5,9 @@ import com.sk89q.worldedit.world.block.BlockType; import java.util.function.Function; public class BlockTypeSwitch implements Function { + private final T[] tasks; + protected BlockTypeSwitch(T[] tasks) { this.tasks = tasks; } @@ -14,4 +16,5 @@ public class BlockTypeSwitch implements Function { public T apply(BlockType blockType) { return this.tasks[blockType.getInternalId()]; } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/world/block/BlockTypeSwitchBuilder.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/world/block/BlockTypeSwitchBuilder.java index 5739304c7..57e25c3dd 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/world/block/BlockTypeSwitchBuilder.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/world/block/BlockTypeSwitchBuilder.java @@ -7,6 +7,7 @@ import com.sk89q.worldedit.world.block.BlockTypesCache; import java.util.function.Predicate; public class BlockTypeSwitchBuilder { + private final Object[] runnables; private T defaultTask; @@ -42,4 +43,5 @@ public class BlockTypeSwitchBuilder { } return new BlockTypeSwitch(runnables); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/world/block/ItemTypesCache.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/world/block/ItemTypesCache.java index be8909e2d..f09443065 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/world/block/ItemTypesCache.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/world/block/ItemTypesCache.java @@ -8,7 +8,9 @@ import com.sk89q.worldedit.world.registry.ItemRegistry; import com.sk89q.worldedit.world.registry.Registries; public final class ItemTypesCache { - public static void init() {} + + public static void init() { + } static { Platform platform = WorldEdit.getInstance().getPlatformManager().queryCapability(Capability.GAME_HOOKS); diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/wrappers/AsyncPlayer.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/wrappers/AsyncPlayer.java index f95b33581..2ee8ae88f 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/wrappers/AsyncPlayer.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/wrappers/AsyncPlayer.java @@ -1,9 +1,9 @@ package com.fastasyncworldedit.core.wrappers; import com.fastasyncworldedit.core.Fawe; -import com.fastasyncworldedit.core.util.task.RunnableVal; import com.fastasyncworldedit.core.util.EditSessionBuilder; import com.fastasyncworldedit.core.util.TaskManager; +import com.fastasyncworldedit.core.util.task.RunnableVal; import com.sk89q.worldedit.EditSession; import com.sk89q.worldedit.LocalSession; import com.sk89q.worldedit.entity.Player; @@ -97,7 +97,7 @@ public class AsyncPlayer extends PlayerProxy { while (y <= world.getMaximumPoint().getY()) { // Found a ceiling! if (world.getBlock(BlockVector3.at(x, y, z)).getBlockType().getMaterial() - .isMovementBlocker()) { + .isMovementBlocker()) { int platformY = Math.max(initialY, y - 3 - clearance); floatAt(x, platformY + 1, z, alwaysGlass); return true; @@ -126,7 +126,7 @@ public class AsyncPlayer extends PlayerProxy { while (y <= world.getMaximumPoint().getY() + 2) { if (world.getBlock(BlockVector3.at(x, y, z)).getBlockType().getMaterial() - .isMovementBlocker()) { + .isMovementBlocker()) { break; // Hit something } else if (y > maxY + 1) { break; @@ -147,7 +147,7 @@ public class AsyncPlayer extends PlayerProxy { RuntimeException caught = null; try { EditSession edit = - new EditSessionBuilder(WorldWrapper.unwrap(getWorld())).player(unwrap(getBasePlayer())).build(); + new EditSessionBuilder(WorldWrapper.unwrap(getWorld())).player(unwrap(getBasePlayer())).build(); edit.setBlock(BlockVector3.at(x, y - 1, z), BlockTypes.GLASS); edit.flushQueue(); LocalSession session = Fawe.get().getWorldEdit().getSessionManager().get(this); @@ -213,8 +213,8 @@ public class AsyncPlayer extends PlayerProxy { while ((block = hitBlox.getNextBlock()) != null) { boolean free = !world.getBlock( - BlockVector3.at(block.getBlockX(), block.getBlockY(), block.getBlockZ())) - .getBlockType().getMaterial().isMovementBlocker(); + BlockVector3.at(block.getBlockX(), block.getBlockY(), block.getBlockZ())) + .getBlockType().getMaterial().isMovementBlocker(); if (firstBlock) { firstBlock = false; @@ -247,4 +247,5 @@ public class AsyncPlayer extends PlayerProxy { return false; }); } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/wrappers/LocationMaskedPlayerWrapper.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/wrappers/LocationMaskedPlayerWrapper.java index d0bb55701..984eb9db7 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/wrappers/LocationMaskedPlayerWrapper.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/wrappers/LocationMaskedPlayerWrapper.java @@ -5,6 +5,7 @@ import com.sk89q.worldedit.math.Vector3; import com.sk89q.worldedit.util.Location; public class LocationMaskedPlayerWrapper extends AsyncPlayer { + private final boolean allowTeleport; private Location position; @@ -120,4 +121,5 @@ public class LocationMaskedPlayerWrapper extends AsyncPlayer { update(); } } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/wrappers/SilentPlayerWrapper.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/wrappers/SilentPlayerWrapper.java index 385b6a183..763b9ee3f 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/wrappers/SilentPlayerWrapper.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/wrappers/SilentPlayerWrapper.java @@ -5,10 +5,12 @@ import com.sk89q.worldedit.util.formatting.text.Component; //TODO: Add proper documenation for this class describing what it is. Is it just a wrapper for a player so no messages are printed anywhere? + /** * Avoids printing any messages */ public class SilentPlayerWrapper extends AsyncPlayer { + public SilentPlayerWrapper(Player parent) { super(parent); } @@ -33,4 +35,5 @@ public class SilentPlayerWrapper extends AsyncPlayer { @Override public void printRaw(String msg) { } + } diff --git a/worldedit-core/src/main/java/com/fastasyncworldedit/core/wrappers/WorldWrapper.java b/worldedit-core/src/main/java/com/fastasyncworldedit/core/wrappers/WorldWrapper.java index 90198424b..1499a94ac 100644 --- a/worldedit-core/src/main/java/com/fastasyncworldedit/core/wrappers/WorldWrapper.java +++ b/worldedit-core/src/main/java/com/fastasyncworldedit/core/wrappers/WorldWrapper.java @@ -2,9 +2,9 @@ package com.fastasyncworldedit.core.wrappers; import com.fastasyncworldedit.core.queue.IChunkGet; import com.fastasyncworldedit.core.queue.implementation.packet.ChunkPacket; -import com.fastasyncworldedit.core.util.task.RunnableVal; import com.fastasyncworldedit.core.util.ExtentTraverser; import com.fastasyncworldedit.core.util.TaskManager; +import com.fastasyncworldedit.core.util.task.RunnableVal; import com.sk89q.jnbt.CompoundTag; import com.sk89q.worldedit.EditSession; import com.sk89q.worldedit.MaxChangedBlocksException; @@ -38,9 +38,9 @@ import com.sk89q.worldedit.world.block.BlockStateHolder; import com.sk89q.worldedit.world.block.BlockType; import com.sk89q.worldedit.world.weather.WeatherType; +import javax.annotation.Nullable; import java.util.List; import java.util.Set; -import javax.annotation.Nullable; public class WorldWrapper extends AbstractWorld { @@ -168,7 +168,7 @@ public class WorldWrapper extends AbstractWorld { @Override public > boolean setBlock(int x, int y, int z, T block) - throws WorldEditException { + throws WorldEditException { return parent.setBlock(x, y, z, block); } @@ -193,12 +193,14 @@ public class WorldWrapper extends AbstractWorld { } @Override - public > boolean setBlock(BlockVector3 position, B block, boolean notifyAndLight) throws WorldEditException { + public > boolean setBlock(BlockVector3 position, B block, boolean notifyAndLight) throws + WorldEditException { return parent.setBlock(position, block, notifyAndLight); } @Override - public > boolean setBlock(BlockVector3 position, B block, SideEffectSet sideEffects) throws WorldEditException { + public > boolean setBlock(BlockVector3 position, B block, SideEffectSet sideEffects) throws + WorldEditException { return parent.setBlock(position, block, sideEffects); } @@ -249,7 +251,8 @@ public class WorldWrapper extends AbstractWorld { } @Override - public boolean generateTree(TreeGenerator.TreeType type, EditSession editSession, BlockVector3 position) throws MaxChangedBlocksException { + public boolean generateTree(TreeGenerator.TreeType type, EditSession editSession, BlockVector3 position) throws + MaxChangedBlocksException { return TaskManager.IMP.sync(() -> { try { return parent.generateTree(type, editSession, position); @@ -324,4 +327,5 @@ public class WorldWrapper extends AbstractWorld { public void flush() { parent.flush(); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/jnbt/AdventureNBTConverter.java b/worldedit-core/src/main/java/com/sk89q/jnbt/AdventureNBTConverter.java index e68d1bcf7..71122131f 100644 --- a/worldedit-core/src/main/java/com/sk89q/jnbt/AdventureNBTConverter.java +++ b/worldedit-core/src/main/java/com/sk89q/jnbt/AdventureNBTConverter.java @@ -39,28 +39,29 @@ import java.util.function.Function; */ @Deprecated public class AdventureNBTConverter { + private static final BiMap, BinaryTagType> TAG_TYPES = - new ImmutableBiMap.Builder, BinaryTagType>() - .put(ByteArrayTag.class, BinaryTagTypes.BYTE_ARRAY) - .put(ByteTag.class, BinaryTagTypes.BYTE) - .put(CompoundTag.class, BinaryTagTypes.COMPOUND) - .put(DoubleTag.class, BinaryTagTypes.DOUBLE) - .put(EndTag.class, BinaryTagTypes.END) - .put(FloatTag.class, BinaryTagTypes.FLOAT) - .put(IntArrayTag.class, BinaryTagTypes.INT_ARRAY) - .put(IntTag.class, BinaryTagTypes.INT) - .put(ListTag.class, BinaryTagTypes.LIST) - .put(LongArrayTag.class, BinaryTagTypes.LONG_ARRAY) - .put(LongTag.class, BinaryTagTypes.LONG) - .put(ShortTag.class, BinaryTagTypes.SHORT) - .put(StringTag.class, BinaryTagTypes.STRING) - .build(); + new ImmutableBiMap.Builder, BinaryTagType>() + .put(ByteArrayTag.class, BinaryTagTypes.BYTE_ARRAY) + .put(ByteTag.class, BinaryTagTypes.BYTE) + .put(CompoundTag.class, BinaryTagTypes.COMPOUND) + .put(DoubleTag.class, BinaryTagTypes.DOUBLE) + .put(EndTag.class, BinaryTagTypes.END) + .put(FloatTag.class, BinaryTagTypes.FLOAT) + .put(IntArrayTag.class, BinaryTagTypes.INT_ARRAY) + .put(IntTag.class, BinaryTagTypes.INT) + .put(ListTag.class, BinaryTagTypes.LIST) + .put(LongArrayTag.class, BinaryTagTypes.LONG_ARRAY) + .put(LongTag.class, BinaryTagTypes.LONG) + .put(ShortTag.class, BinaryTagTypes.SHORT) + .put(StringTag.class, BinaryTagTypes.STRING) + .build(); private static final Map, Function> CONVERSION; static { ImmutableMap.Builder, Function> conversion = - ImmutableMap.builder(); + ImmutableMap.builder(); for (Map.Entry, BinaryTagType> tag : TAG_TYPES.entrySet()) { Constructor[] constructors = tag.getKey().getConstructors(); @@ -105,4 +106,5 @@ public class AdventureNBTConverter { } return conversion.apply(other); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/jnbt/CompoundTag.java b/worldedit-core/src/main/java/com/sk89q/jnbt/CompoundTag.java index 8ce0a00ec..451c4c679 100644 --- a/worldedit-core/src/main/java/com/sk89q/jnbt/CompoundTag.java +++ b/worldedit-core/src/main/java/com/sk89q/jnbt/CompoundTag.java @@ -20,11 +20,11 @@ package com.sk89q.jnbt; import com.fastasyncworldedit.core.jnbt.NumberTag; +import com.google.common.collect.ImmutableMap; +import com.google.common.collect.Maps; import com.sk89q.worldedit.extent.Extent; import com.sk89q.worldedit.math.Vector3; import com.sk89q.worldedit.util.Location; -import com.google.common.collect.ImmutableMap; -import com.google.common.collect.Maps; import com.sk89q.worldedit.util.nbt.BinaryTag; import com.sk89q.worldedit.util.nbt.BinaryTagLike; import com.sk89q.worldedit.util.nbt.CompoundBinaryTag; @@ -53,8 +53,8 @@ public class CompoundTag extends Tag { */ public CompoundTag(Map value) { this(CompoundBinaryTag.builder() - .put(Maps.transformValues(value, BinaryTagLike::asBinaryTag)) - .build()); + .put(Maps.transformValues(value, BinaryTagLike::asBinaryTag)) + .build()); } public CompoundTag(CompoundBinaryTag adventureTag) { @@ -247,10 +247,10 @@ public class CompoundTag extends Tag { * a list but the list of of a different type, then an empty * list will also be returned.

    * - * @param key the key + * @param key the key * @param listType the class of the contained type + * @param the type of list * @return a list of tags - * @param the type of list */ @SuppressWarnings("unchecked") public List getList(String key, Class listType) { diff --git a/worldedit-core/src/main/java/com/sk89q/jnbt/CompoundTagBuilder.java b/worldedit-core/src/main/java/com/sk89q/jnbt/CompoundTagBuilder.java index 198176916..f21bdb8cc 100644 --- a/worldedit-core/src/main/java/com/sk89q/jnbt/CompoundTagBuilder.java +++ b/worldedit-core/src/main/java/com/sk89q/jnbt/CompoundTagBuilder.java @@ -57,7 +57,7 @@ public class CompoundTagBuilder { /** * Put the given key and tag into the compound tag. * - * @param key they key + * @param key they key * @param value the value * @return this object */ @@ -72,7 +72,7 @@ public class CompoundTagBuilder { * Put the given key and value into the compound tag as a * {@code ByteArrayTag}. * - * @param key they key + * @param key they key * @param value the value * @return this object */ @@ -85,7 +85,7 @@ public class CompoundTagBuilder { * Put the given key and value into the compound tag as a * {@code ByteTag}. * - * @param key they key + * @param key they key * @param value the value * @return this object */ @@ -98,7 +98,7 @@ public class CompoundTagBuilder { * Put the given key and value into the compound tag as a * {@code DoubleTag}. * - * @param key they key + * @param key they key * @param value the value * @return this object */ @@ -111,7 +111,7 @@ public class CompoundTagBuilder { * Put the given key and value into the compound tag as a * {@code FloatTag}. * - * @param key they key + * @param key they key * @param value the value * @return this object */ @@ -124,7 +124,7 @@ public class CompoundTagBuilder { * Put the given key and value into the compound tag as a * {@code IntArrayTag}. * - * @param key they key + * @param key they key * @param value the value * @return this object */ @@ -136,7 +136,7 @@ public class CompoundTagBuilder { /** * Put the given key and value into the compound tag as an {@code IntTag}. * - * @param key they key + * @param key they key * @param value the value * @return this object */ @@ -149,7 +149,7 @@ public class CompoundTagBuilder { * Put the given key and value into the compound tag as a * {@code LongArrayTag}. * - * @param key they key + * @param key they key * @param value the value * @return this object */ @@ -162,7 +162,7 @@ public class CompoundTagBuilder { * Put the given key and value into the compound tag as a * {@code LongTag}. * - * @param key they key + * @param key they key * @param value the value * @return this object */ @@ -175,7 +175,7 @@ public class CompoundTagBuilder { * Put the given key and value into the compound tag as a * {@code ShortTag}. * - * @param key they key + * @param key they key * @param value the value * @return this object */ @@ -188,7 +188,7 @@ public class CompoundTagBuilder { * Put the given key and value into the compound tag as a * {@code StringTag}. * - * @param key they key + * @param key they key * @param value the value * @return this object */ diff --git a/worldedit-core/src/main/java/com/sk89q/jnbt/ListTag.java b/worldedit-core/src/main/java/com/sk89q/jnbt/ListTag.java index 615e13fbf..879a0d4a3 100644 --- a/worldedit-core/src/main/java/com/sk89q/jnbt/ListTag.java +++ b/worldedit-core/src/main/java/com/sk89q/jnbt/ListTag.java @@ -24,12 +24,12 @@ import com.sk89q.worldedit.util.nbt.BinaryTagLike; import com.sk89q.worldedit.util.nbt.ListBinaryTag; import com.sk89q.worldedit.util.nbt.NumberBinaryTag; +import javax.annotation.Nullable; import java.util.Collections; import java.util.List; import java.util.function.IntFunction; import java.util.function.Supplier; import java.util.stream.Collectors; -import javax.annotation.Nullable; /** * The {@code TAG_List} tag. @@ -44,13 +44,13 @@ public final class ListTag extends Tag { /** * Creates the tag with an empty name. * - * @param type the type of tag + * @param type the type of tag * @param value the value of the tag */ public ListTag(Class type, List value) { this(ListBinaryTag.of( - AdventureNBTConverter.getAdventureType(type), - value.stream().map(BinaryTagLike::asBinaryTag).collect(Collectors.toList()) + AdventureNBTConverter.getAdventureType(type), + value.stream().map(BinaryTagLike::asBinaryTag).collect(Collectors.toList()) )); } @@ -75,8 +75,8 @@ public final class ListTag extends Tag { @Override public List getValue() { return this.innerTag.stream() - .map(AdventureNBTConverter::fromAdventure) - .collect(Collectors.toList()); + .map(AdventureNBTConverter::fromAdventure) + .collect(Collectors.toList()); } /** @@ -105,9 +105,9 @@ public final class ListTag extends Tag { @Nullable public Tag getIfExists(int index) { return accessIfExists( - index, - () -> null, - i -> AdventureNBTConverter.fromAdventure(this.innerTag.get(i)) + index, + () -> null, + i -> AdventureNBTConverter.fromAdventure(this.innerTag.get(i)) ); } @@ -122,9 +122,9 @@ public final class ListTag extends Tag { */ public byte[] getByteArray(int index) { return accessIfExists( - index, - () -> new byte[0], - this.innerTag::getByteArray + index, + () -> new byte[0], + this.innerTag::getByteArray ); } @@ -139,9 +139,9 @@ public final class ListTag extends Tag { */ public byte getByte(int index) { return accessIfExists( - index, - () -> (byte) 0, - this.innerTag::getByte + index, + () -> (byte) 0, + this.innerTag::getByte ); } @@ -156,9 +156,9 @@ public final class ListTag extends Tag { */ public double getDouble(int index) { return accessIfExists( - index, - () -> 0.0, - this.innerTag::getDouble + index, + () -> 0.0, + this.innerTag::getDouble ); } @@ -174,15 +174,15 @@ public final class ListTag extends Tag { */ public double asDouble(int index) { return accessIfExists( - index, - () -> 0.0, - i -> { - BinaryTag tag = this.innerTag.get(i); - if (tag instanceof NumberBinaryTag) { - return ((NumberBinaryTag) tag).doubleValue(); + index, + () -> 0.0, + i -> { + BinaryTag tag = this.innerTag.get(i); + if (tag instanceof NumberBinaryTag) { + return ((NumberBinaryTag) tag).doubleValue(); + } + return 0.0; } - return 0.0; - } ); } @@ -197,9 +197,9 @@ public final class ListTag extends Tag { */ public float getFloat(int index) { return accessIfExists( - index, - () -> 0.0f, - this.innerTag::getFloat + index, + () -> 0.0f, + this.innerTag::getFloat ); } @@ -214,9 +214,9 @@ public final class ListTag extends Tag { */ public int[] getIntArray(int index) { return accessIfExists( - index, - () -> new int[0], - this.innerTag::getIntArray + index, + () -> new int[0], + this.innerTag::getIntArray ); } @@ -231,9 +231,9 @@ public final class ListTag extends Tag { */ public int getInt(int index) { return accessIfExists( - index, - () -> 0, - this.innerTag::getInt + index, + () -> 0, + this.innerTag::getInt ); } @@ -249,15 +249,15 @@ public final class ListTag extends Tag { */ public int asInt(int index) { return accessIfExists( - index, - () -> 0, - i -> { - BinaryTag tag = this.innerTag.get(i); - if (tag instanceof NumberBinaryTag) { - return ((NumberBinaryTag) tag).intValue(); + index, + () -> 0, + i -> { + BinaryTag tag = this.innerTag.get(i); + if (tag instanceof NumberBinaryTag) { + return ((NumberBinaryTag) tag).intValue(); + } + return 0; } - return 0; - } ); } @@ -285,9 +285,9 @@ public final class ListTag extends Tag { */ public ListTag getListTag(int index) { return new ListTag(accessIfExists( - index, - ListBinaryTag::empty, - this.innerTag::getList + index, + ListBinaryTag::empty, + this.innerTag::getList )); } @@ -299,10 +299,10 @@ public final class ListTag extends Tag { * a list but the list of of a different type, then an empty * list will also be returned.

    * - * @param index the index + * @param index the index * @param listType the class of the contained type + * @param the NBT type * @return a list of tags - * @param the NBT type */ @SuppressWarnings("unchecked") public List getList(int index, Class listType) { @@ -325,9 +325,9 @@ public final class ListTag extends Tag { */ public long getLong(int index) { return accessIfExists( - index, - () -> 0L, - this.innerTag::getLong + index, + () -> 0L, + this.innerTag::getLong ); } @@ -343,15 +343,15 @@ public final class ListTag extends Tag { */ public long asLong(int index) { return accessIfExists( - index, - () -> 0L, - i -> { - BinaryTag tag = this.innerTag.get(i); - if (tag instanceof NumberBinaryTag) { - return ((NumberBinaryTag) tag).longValue(); + index, + () -> 0L, + i -> { + BinaryTag tag = this.innerTag.get(i); + if (tag instanceof NumberBinaryTag) { + return ((NumberBinaryTag) tag).longValue(); + } + return 0L; } - return 0L; - } ); } @@ -366,9 +366,9 @@ public final class ListTag extends Tag { */ public short getShort(int index) { return accessIfExists( - index, - () -> (short) 0, - this.innerTag::getShort + index, + () -> (short) 0, + this.innerTag::getShort ); } @@ -383,9 +383,9 @@ public final class ListTag extends Tag { */ public String getString(int index) { return accessIfExists( - index, - () -> "", - this.innerTag::getString + index, + () -> "", + this.innerTag::getString ); } diff --git a/worldedit-core/src/main/java/com/sk89q/jnbt/ListTagBuilder.java b/worldedit-core/src/main/java/com/sk89q/jnbt/ListTagBuilder.java index df1922703..78a8b6401 100644 --- a/worldedit-core/src/main/java/com/sk89q/jnbt/ListTagBuilder.java +++ b/worldedit-core/src/main/java/com/sk89q/jnbt/ListTagBuilder.java @@ -47,8 +47,8 @@ public class ListTagBuilder { ListTagBuilder(Class type) { checkNotNull(type); this.builder = type != EndTag.class - ? ListBinaryTag.builder((BinaryTagType) AdventureNBTConverter.getAdventureType(type)) - : ListBinaryTag.builder(); + ? ListBinaryTag.builder((BinaryTagType) AdventureNBTConverter.getAdventureType(type)) + : ListBinaryTag.builder(); } /** diff --git a/worldedit-core/src/main/java/com/sk89q/jnbt/NBTInputStream.java b/worldedit-core/src/main/java/com/sk89q/jnbt/NBTInputStream.java index bfc18a23f..7cfce6896 100644 --- a/worldedit-core/src/main/java/com/sk89q/jnbt/NBTInputStream.java +++ b/worldedit-core/src/main/java/com/sk89q/jnbt/NBTInputStream.java @@ -170,7 +170,7 @@ public final class NBTInputStream implements Closeable { case NBTConstants.TYPE_COMPOUND: { // readDataPayload depth++; - while(true) { + while (true) { int childType = is.readByte(); if (childType == NBTConstants.TYPE_END) { return; @@ -334,7 +334,7 @@ public final class NBTInputStream implements Closeable { valueReader.apply(i, entry); } } - while(true) { + while (true) { int childType = is.readByte(); if (childType == NBTConstants.TYPE_END) { return; @@ -472,7 +472,7 @@ public final class NBTInputStream implements Closeable { case NBTConstants.TYPE_END: if (depth == 0) { throw new IOException( - "TAG_End found without a TAG_Compound/TAG_List tag preceding it."); + "TAG_End found without a TAG_Compound/TAG_List tag preceding it."); } else { return null; } @@ -565,7 +565,7 @@ public final class NBTInputStream implements Closeable { /** * Reads the payload of a tag given the type. * - * @param type the type + * @param type the type * @param depth the depth * @return the tag * @throws IOException if an I/O error occurs. @@ -575,7 +575,7 @@ public final class NBTInputStream implements Closeable { case NBTConstants.TYPE_END: if (depth == 0) { throw new IOException( - "TAG_End found without a TAG_Compound/TAG_List tag preceding it."); + "TAG_End found without a TAG_Compound/TAG_List tag preceding it."); } else { return new EndTag(); } diff --git a/worldedit-core/src/main/java/com/sk89q/jnbt/NBTOutputStream.java b/worldedit-core/src/main/java/com/sk89q/jnbt/NBTOutputStream.java index fe3327ebd..01d2f9b91 100644 --- a/worldedit-core/src/main/java/com/sk89q/jnbt/NBTOutputStream.java +++ b/worldedit-core/src/main/java/com/sk89q/jnbt/NBTOutputStream.java @@ -58,10 +58,8 @@ public final class NBTOutputStream extends OutputStream implements Closeable, Da * Creates a new {@code NBTOutputStream}, which will write data to the * specified underlying output stream. * - * @param os - * The output stream. - * @throws IOException - * if an I/O error occurs. + * @param os The output stream. + * @throws IOException if an I/O error occurs. */ public NBTOutputStream(OutputStream os) throws IOException { this(os instanceof DataOutput ? (DataOutput) os : new DataOutputStream(os)); @@ -86,13 +84,12 @@ public final class NBTOutputStream extends OutputStream implements Closeable, Da } //TODO writeNamedTag was changed in upstream so the code below this comment may not work anymore. + /** * Writes a tag. * - * @param tag - * The tag to write. - * @throws IOException - * if an I/O error occurs. + * @param tag The tag to write. + * @throws IOException if an I/O error occurs. */ public void writeNamedTag(String name, Tag tag) throws IOException { checkNotNull(name); @@ -193,7 +190,9 @@ public final class NBTOutputStream extends OutputStream implements Closeable, Da } public interface LazyWrite { + void write(NBTOutputStream out) throws IOException; + } public void writeTag(Tag tag) throws IOException { @@ -209,10 +208,8 @@ public final class NBTOutputStream extends OutputStream implements Closeable, Da /** * Writes tag payload. * - * @param tag - * The tag. - * @throws IOException - * if an I/O error occurs. + * @param tag The tag. + * @throws IOException if an I/O error occurs. */ public void writeTagPayload(Tag tag) throws IOException { int type = NBTUtils.getTypeCode(tag.getClass()); @@ -264,10 +261,8 @@ public final class NBTOutputStream extends OutputStream implements Closeable, Da /** * Writes a {@code TAG_Byte} tag. * - * @param tag - * The tag. - * @throws IOException - * if an I/O error occurs. + * @param tag The tag. + * @throws IOException if an I/O error occurs. */ private void writeByteTagPayload(ByteTag tag) throws IOException { os.writeByte(tag.getValue()); @@ -276,10 +271,8 @@ public final class NBTOutputStream extends OutputStream implements Closeable, Da /** * Writes a {@code TAG_Byte_Array} tag. * - * @param tag - * The tag. - * @throws IOException - * if an I/O error occurs. + * @param tag The tag. + * @throws IOException if an I/O error occurs. */ private void writeByteArrayTagPayload(ByteArrayTag tag) throws IOException { byte[] bytes = tag.getValue(); @@ -290,10 +283,8 @@ public final class NBTOutputStream extends OutputStream implements Closeable, Da /** * Writes a {@code TAG_Compound} tag. * - * @param tag - * The tag. - * @throws IOException - * if an I/O error occurs. + * @param tag The tag. + * @throws IOException if an I/O error occurs. */ private void writeCompoundTagPayload(CompoundTag tag) throws IOException { for (Map.Entry entry : tag.getValue().entrySet()) { @@ -305,10 +296,8 @@ public final class NBTOutputStream extends OutputStream implements Closeable, Da /** * Writes a {@code TAG_List} tag. * - * @param tag - * The tag. - * @throws IOException - * if an I/O error occurs. + * @param tag The tag. + * @throws IOException if an I/O error occurs. */ private void writeListTagPayload(ListTag tag) throws IOException { Class clazz = tag.getType(); @@ -332,10 +321,8 @@ public final class NBTOutputStream extends OutputStream implements Closeable, Da /** * Writes a {@code TAG_String} tag. * - * @param tag - * The tag. - * @throws IOException - * if an I/O error occurs. + * @param tag The tag. + * @throws IOException if an I/O error occurs. */ private void writeStringTagPayload(StringTag tag) throws IOException { byte[] bytes = tag.getValue().getBytes(NBTConstants.CHARSET); @@ -346,10 +333,8 @@ public final class NBTOutputStream extends OutputStream implements Closeable, Da /** * Writes a {@code TAG_Double} tag. * - * @param tag - * The tag. - * @throws IOException - * if an I/O error occurs. + * @param tag The tag. + * @throws IOException if an I/O error occurs. */ private void writeDoubleTagPayload(DoubleTag tag) throws IOException { os.writeDouble(tag.getValue()); @@ -358,10 +343,8 @@ public final class NBTOutputStream extends OutputStream implements Closeable, Da /** * Writes a {@code TAG_Float} tag. * - * @param tag - * The tag. - * @throws IOException - * if an I/O error occurs. + * @param tag The tag. + * @throws IOException if an I/O error occurs. */ private void writeFloatTagPayload(FloatTag tag) throws IOException { os.writeFloat(tag.getValue()); @@ -370,10 +353,8 @@ public final class NBTOutputStream extends OutputStream implements Closeable, Da /** * Writes a {@code TAG_Long} tag. * - * @param tag - * The tag. - * @throws IOException - * if an I/O error occurs. + * @param tag The tag. + * @throws IOException if an I/O error occurs. */ private void writeLongTagPayload(LongTag tag) throws IOException { os.writeLong(tag.getValue()); @@ -382,10 +363,8 @@ public final class NBTOutputStream extends OutputStream implements Closeable, Da /** * Writes a {@code TAG_Int} tag. * - * @param tag - * The tag. - * @throws IOException - * if an I/O error occurs. + * @param tag The tag. + * @throws IOException if an I/O error occurs. */ private void writeIntTagPayload(IntTag tag) throws IOException { os.writeInt(tag.getValue()); @@ -394,10 +373,8 @@ public final class NBTOutputStream extends OutputStream implements Closeable, Da /** * Writes a {@code TAG_Short} tag. * - * @param tag - * The tag. - * @throws IOException - * if an I/O error occurs. + * @param tag The tag. + * @throws IOException if an I/O error occurs. */ private void writeShortTagPayload(ShortTag tag) throws IOException { os.writeShort(tag.getValue()); @@ -516,4 +493,5 @@ public final class NBTOutputStream extends OutputStream implements Closeable, Da ((Flushable) os).flush(); } } + } diff --git a/worldedit-core/src/main/java/com/sk89q/jnbt/NBTUtils.java b/worldedit-core/src/main/java/com/sk89q/jnbt/NBTUtils.java index f4d990001..f6217e8a7 100644 --- a/worldedit-core/src/main/java/com/sk89q/jnbt/NBTUtils.java +++ b/worldedit-core/src/main/java/com/sk89q/jnbt/NBTUtils.java @@ -131,7 +131,7 @@ public final class NBTUtils { return LongArrayTag.class; default: throw new IllegalArgumentException("Invalid tag type : " + type - + "."); + + "."); } } @@ -152,13 +152,14 @@ public final class NBTUtils { /** * Get child tag of a NBT structure. * - * @param items the map to read from - * @param key the key to look for + * @param items the map to read from + * @param key the key to look for * @param expected the expected NBT class type * @return child tag * @throws InvalidFormatException if the format of the items is invalid */ - public static T getChildTag(Map items, String key, Class expected) throws InvalidFormatException { + public static T getChildTag(Map items, String key, Class expected) throws + InvalidFormatException { if (!items.containsKey(key)) { throw new InvalidFormatException("Missing a \"" + key + "\" tag"); } diff --git a/worldedit-core/src/main/java/com/sk89q/jnbt/NamedTag.java b/worldedit-core/src/main/java/com/sk89q/jnbt/NamedTag.java index 80742783c..f27116ddc 100644 --- a/worldedit-core/src/main/java/com/sk89q/jnbt/NamedTag.java +++ b/worldedit-core/src/main/java/com/sk89q/jnbt/NamedTag.java @@ -36,7 +36,7 @@ public class NamedTag { * Create a new named tag. * * @param name the name - * @param tag the tag + * @param tag the tag */ public NamedTag(String name, Tag tag) { checkNotNull(name); diff --git a/worldedit-core/src/main/java/com/sk89q/minecraft/util/commands/Command.java b/worldedit-core/src/main/java/com/sk89q/minecraft/util/commands/Command.java index 017d6563e..13567a2ed 100644 --- a/worldedit-core/src/main/java/com/sk89q/minecraft/util/commands/Command.java +++ b/worldedit-core/src/main/java/com/sk89q/minecraft/util/commands/Command.java @@ -91,8 +91,10 @@ public @interface Command { boolean anyFlags() default false; //FAWE start + /** * Should the command be queued + * * @return true if so */ boolean queued() default true; diff --git a/worldedit-core/src/main/java/com/sk89q/minecraft/util/commands/CommandAlias.java b/worldedit-core/src/main/java/com/sk89q/minecraft/util/commands/CommandAlias.java index 5c3eed5bc..30b350165 100644 --- a/worldedit-core/src/main/java/com/sk89q/minecraft/util/commands/CommandAlias.java +++ b/worldedit-core/src/main/java/com/sk89q/minecraft/util/commands/CommandAlias.java @@ -37,4 +37,5 @@ public @interface CommandAlias { * @return the command */ String[] value(); + } diff --git a/worldedit-core/src/main/java/com/sk89q/minecraft/util/commands/CommandContext.java b/worldedit-core/src/main/java/com/sk89q/minecraft/util/commands/CommandContext.java index c95356a91..2c5c578e4 100644 --- a/worldedit-core/src/main/java/com/sk89q/minecraft/util/commands/CommandContext.java +++ b/worldedit-core/src/main/java/com/sk89q/minecraft/util/commands/CommandContext.java @@ -69,13 +69,14 @@ public class CommandContext { * *

    Empty arguments are removed from the list of arguments.

    * - * @param args an array with arguments - * @param valueFlags a set containing all value flags (pass null to disable value flag parsing) + * @param args an array with arguments + * @param valueFlags a set containing all value flags (pass null to disable value flag parsing) * @param allowHangingFlag true if hanging flags are allowed - * @param locals the locals, null to create empty one + * @param locals the locals, null to create empty one * @throws CommandException thrown on a parsing error */ - public CommandContext(String[] args, Set valueFlags, boolean allowHangingFlag, CommandLocals locals) throws CommandException { + public CommandContext(String[] args, Set valueFlags, boolean allowHangingFlag, CommandLocals locals) throws + CommandException { this(args, valueFlags, allowHangingFlag, locals, true); } @@ -84,14 +85,20 @@ public class CommandContext { * *

    Empty arguments are removed from the list of arguments.

    * - * @param args an array with arguments - * @param valueFlags a set containing all value flags (pass null to disable value flag parsing) + * @param args an array with arguments + * @param valueFlags a set containing all value flags (pass null to disable value flag parsing) * @param allowHangingFlag true if hanging flags are allowed - * @param locals the locals, null to create empty one - * @param parseFlags where to parse flags + * @param locals the locals, null to create empty one + * @param parseFlags where to parse flags * @throws CommandException thrown on a parsing error */ - public CommandContext(String[] args, Set valueFlags, boolean allowHangingFlag, CommandLocals locals, boolean parseFlags) throws CommandException { + public CommandContext( + String[] args, + Set valueFlags, + boolean allowHangingFlag, + CommandLocals locals, + boolean parseFlags + ) throws CommandException { if (valueFlags == null) { valueFlags = Collections.emptySet(); } @@ -117,37 +124,37 @@ public class CommandContext { argIndexList.add(i); switch (arg.charAt(0)) { - case '\'': - case '"': - final StringBuilder build = new StringBuilder(); - final char quotedChar = arg.charAt(0); + case '\'': + case '"': + final StringBuilder build = new StringBuilder(); + final char quotedChar = arg.charAt(0); - int endIndex; - for (endIndex = i; endIndex < args.length; ++endIndex) { - final String arg2 = args[endIndex]; - if (arg2.charAt(arg2.length() - 1) == quotedChar && arg2.length() > 1) { - if (endIndex != i) { - build.append(' '); + int endIndex; + for (endIndex = i; endIndex < args.length; ++endIndex) { + final String arg2 = args[endIndex]; + if (arg2.charAt(arg2.length() - 1) == quotedChar && arg2.length() > 1) { + if (endIndex != i) { + build.append(' '); + } + build.append(arg2, endIndex == i ? 1 : 0, arg2.length() - 1); + break; + } else if (endIndex == i) { + build.append(arg2.substring(1)); + } else { + build.append(' ').append(arg2); } - build.append(arg2.substring(endIndex == i ? 1 : 0, arg2.length() - 1)); - break; - } else if (endIndex == i) { - build.append(arg2.substring(1)); - } else { - build.append(' ').append(arg2); } - } - if (endIndex < args.length) { - arg = build.toString(); - i = endIndex; - } + if (endIndex < args.length) { + arg = build.toString(); + i = endIndex; + } - // In case there is an empty quoted string - if (arg.isEmpty()) { - continue; - } - // else raise exception about hanging quotes? + // In case there is an empty quoted string + if (arg.isEmpty()) { + continue; + } + // else raise exception about hanging quotes? } argList.add(arg); } @@ -361,4 +368,5 @@ public class CommandContext { public CommandLocals getLocals() { return locals; } + } diff --git a/worldedit-core/src/main/java/com/sk89q/minecraft/util/commands/CommandException.java b/worldedit-core/src/main/java/com/sk89q/minecraft/util/commands/CommandException.java index d8a8ffb7c..99542a19b 100644 --- a/worldedit-core/src/main/java/com/sk89q/minecraft/util/commands/CommandException.java +++ b/worldedit-core/src/main/java/com/sk89q/minecraft/util/commands/CommandException.java @@ -19,12 +19,11 @@ package com.sk89q.minecraft.util.commands; +import javax.annotation.Nullable; import java.util.ArrayList; import java.util.List; import java.util.ListIterator; -import javax.annotation.Nullable; - import static com.google.common.base.Preconditions.checkNotNull; public class CommandException extends Exception { @@ -55,7 +54,7 @@ public class CommandException extends Exception { * Gets the command that was called, which will include the sub-command * (i.e. "/br sphere"). * - * @param prefix the command shebang character (such as "/") -- may be empty + * @param prefix the command shebang character (such as "/") -- may be empty * @param spacedSuffix a suffix to put at the end (optional) -- may be null * @return the command that was used */ diff --git a/worldedit-core/src/main/java/com/sk89q/minecraft/util/commands/CommandUsageException.java b/worldedit-core/src/main/java/com/sk89q/minecraft/util/commands/CommandUsageException.java index 3639dabfa..58ad7ab77 100644 --- a/worldedit-core/src/main/java/com/sk89q/minecraft/util/commands/CommandUsageException.java +++ b/worldedit-core/src/main/java/com/sk89q/minecraft/util/commands/CommandUsageException.java @@ -31,4 +31,5 @@ public class CommandUsageException extends CommandException { public String getUsage() { return usage; } + } diff --git a/worldedit-core/src/main/java/com/sk89q/minecraft/util/commands/CommandsManager.java b/worldedit-core/src/main/java/com/sk89q/minecraft/util/commands/CommandsManager.java index faf6b3938..4a818a11b 100644 --- a/worldedit-core/src/main/java/com/sk89q/minecraft/util/commands/CommandsManager.java +++ b/worldedit-core/src/main/java/com/sk89q/minecraft/util/commands/CommandsManager.java @@ -120,7 +120,7 @@ public abstract class CommandsManager { * * @param cls the class to register * @return A List of {@link Command} annotations from registered commands, - * for use in eg. a dynamic command registration system. + * for use in eg. a dynamic command registration system. */ public List registerAndReturn(Class cls) { return registerMethods(cls, null); @@ -130,7 +130,7 @@ public abstract class CommandsManager { * Register the methods of a class. This will automatically construct * instances as necessary. * - * @param cls the class to register + * @param cls the class to register * @param parent the parent method * @return Commands Registered */ @@ -151,9 +151,9 @@ public abstract class CommandsManager { /** * Register the methods of a class. * - * @param cls the class to register + * @param cls the class to register * @param parent the parent method - * @param obj the object whose methods will become commands if they are annotated + * @param obj the object whose methods will become commands if they are annotated * @return a list of commands */ private List registerMethods(Class cls, Method parent, Object obj) { @@ -287,9 +287,9 @@ public abstract class CommandsManager { /** * Get the usage string for a command. * - * @param args the arguments + * @param args the arguments * @param level the depth of the command - * @param cmd the command annotation + * @param cmd the command annotation * @return the usage string */ protected String getUsage(String[] args, int level, Command cmd) { @@ -335,8 +335,8 @@ public abstract class CommandsManager { /** * Get the usage string for a nested command. * - * @param args the arguments - * @param level the depth of the command + * @param args the arguments + * @param level the depth of the command * @param method the parent method * @param player the player * @return the usage string @@ -389,9 +389,9 @@ public abstract class CommandsManager { * Attempt to execute a command. This version takes a separate command * name (for the root command) and then a list of following arguments. * - * @param cmd command to run - * @param args arguments - * @param player command source + * @param cmd command to run + * @param args arguments + * @param player command source * @param methodArgs method arguments * @throws CommandException thrown when the command throws an error */ @@ -409,8 +409,8 @@ public abstract class CommandsManager { /** * Attempt to execute a command. * - * @param args the arguments - * @param player the player + * @param args the arguments + * @param player the player * @param methodArgs the arguments for the method * @throws CommandException thrown on command error */ @@ -423,11 +423,11 @@ public abstract class CommandsManager { /** * Attempt to execute a command. * - * @param parent the parent method - * @param args an array of arguments - * @param player the player + * @param parent the parent method + * @param args an array of arguments + * @param player the player * @param methodArgs the array of method arguments - * @param level the depth of the command + * @param level the depth of the command * @throws CommandException thrown on a command error */ public void executeMethod(Method parent, String[] args, T player, Object[] methodArgs, int level) throws CommandException { @@ -440,8 +440,10 @@ public abstract class CommandsManager { if (parent == null) { // Root throw new UnhandledCommandException(); } else { - throw new MissingNestedCommandException("Unknown command: " + cmdName, - getNestedUsage(args, level - 1, parent, player)); + throw new MissingNestedCommandException( + "Unknown command: " + cmdName, + getNestedUsage(args, level - 1, parent, player) + ); } } @@ -462,8 +464,10 @@ public abstract class CommandsManager { if (executeNested) { if (argsCount == 0) { - throw new MissingNestedCommandException("Sub-command required.", - getNestedUsage(args, level, method, player)); + throw new MissingNestedCommandException( + "Sub-command required.", + getNestedUsage(args, level, method, player) + ); } else { executeMethod(method, args, player, methodArgs, level + 1); } @@ -520,7 +524,15 @@ public abstract class CommandsManager { } } - public void invokeMethod(Method parent, String[] args, T player, Method method, Object instance, Object[] methodArgs, int level) throws CommandException { + public void invokeMethod( + Method parent, + String[] args, + T player, + Method method, + Object instance, + Object[] methodArgs, + int level + ) throws CommandException { try { method.invoke(instance, methodArgs); } catch (IllegalArgumentException | IllegalAccessException e) { @@ -559,7 +571,7 @@ public abstract class CommandsManager { /** * Returns whether a player permission.. * - * @param player the player + * @param player the player * @param permission the permission * @return true if permission is granted */ @@ -583,4 +595,5 @@ public abstract class CommandsManager { public void setInjector(Injector injector) { this.injector = injector; } + } diff --git a/worldedit-core/src/main/java/com/sk89q/minecraft/util/commands/Injector.java b/worldedit-core/src/main/java/com/sk89q/minecraft/util/commands/Injector.java index c19d2dc41..348e64569 100644 --- a/worldedit-core/src/main/java/com/sk89q/minecraft/util/commands/Injector.java +++ b/worldedit-core/src/main/java/com/sk89q/minecraft/util/commands/Injector.java @@ -31,8 +31,8 @@ public interface Injector { * * @param cls class * @return object - * @throws IllegalAccessException thrown on injection fault - * @throws InstantiationException thrown on injection fault + * @throws IllegalAccessException thrown on injection fault + * @throws InstantiationException thrown on injection fault * @throws InvocationTargetException thrown on injection fault */ Object getInstance(Class cls) throws InvocationTargetException, IllegalAccessException, InstantiationException; diff --git a/worldedit-core/src/main/java/com/sk89q/minecraft/util/commands/SimpleInjector.java b/worldedit-core/src/main/java/com/sk89q/minecraft/util/commands/SimpleInjector.java index c8781e44a..81583a816 100644 --- a/worldedit-core/src/main/java/com/sk89q/minecraft/util/commands/SimpleInjector.java +++ b/worldedit-core/src/main/java/com/sk89q/minecraft/util/commands/SimpleInjector.java @@ -28,8 +28,8 @@ import java.lang.reflect.InvocationTargetException; public class SimpleInjector implements Injector { private static final Logger LOGGER = LogManagerCompat.getLogger(); - private Object[] args; - private Class[] argClasses; + private final Object[] args; + private final Class[] argClasses; public SimpleInjector(Object... args) { this.args = args; @@ -50,4 +50,5 @@ public class SimpleInjector implements Injector { return null; } } + } diff --git a/worldedit-core/src/main/java/com/sk89q/util/StringUtil.java b/worldedit-core/src/main/java/com/sk89q/util/StringUtil.java index 81edd363c..541a00852 100644 --- a/worldedit-core/src/main/java/com/sk89q/util/StringUtil.java +++ b/worldedit-core/src/main/java/com/sk89q/util/StringUtil.java @@ -52,8 +52,8 @@ public final class StringUtil { /** * Join an array of strings into a string. * - * @param str the string array - * @param delimiter the delimiter + * @param str the string array + * @param delimiter the delimiter * @param initialIndex the initial index to start form * @return a new string */ @@ -71,14 +71,16 @@ public final class StringUtil { /** * Join an array of strings into a string. * - * @param str the string array - * @param delimiter the delimiter + * @param str the string array + * @param delimiter the delimiter * @param initialIndex the initial index to start form - * @param quote the character to put around each entry + * @param quote the character to put around each entry * @return a new string */ - public static String joinQuotedString(String[] str, String delimiter, - int initialIndex, String quote) { + public static String joinQuotedString( + String[] str, String delimiter, + int initialIndex, String quote + ) { if (str.length == 0) { return ""; } @@ -95,7 +97,7 @@ public final class StringUtil { /** * Join an array of strings into a string. * - * @param str the string array + * @param str the string array * @param delimiter the delimiter * @return a new string */ @@ -106,8 +108,8 @@ public final class StringUtil { /** * Join an array of strings into a string. * - * @param str an array of objects - * @param delimiter the delimiter + * @param str an array of objects + * @param delimiter the delimiter * @param initialIndex the initial index to start form * @return a new string */ @@ -125,8 +127,8 @@ public final class StringUtil { /** * Join an array of strings into a string. * - * @param str a list of integers - * @param delimiter the delimiter + * @param str a list of integers + * @param delimiter the delimiter * @param initialIndex the initial index to start form * @return a new string */ @@ -136,7 +138,7 @@ public final class StringUtil { } StringBuilder buffer = new StringBuilder(Integer.toString(str[initialIndex])); for (int i = initialIndex + 1; i < str.length; ++i) { - buffer.append(delimiter).append(Integer.toString(str[i])); + buffer.append(delimiter).append(str[i]); } return buffer.toString(); } @@ -144,8 +146,8 @@ public final class StringUtil { /** * Join an list of strings into a string. * - * @param str a list of strings - * @param delimiter the delimiter + * @param str a list of strings + * @param delimiter the delimiter * @param initialIndex the initial index to start form * @return a new string */ @@ -197,8 +199,8 @@ public final class StringUtil { * StringUtil.getLevenshteinDistance("hello", "hallo") = 1 * * - * @param s the first String, must not be null - * @param t the second String, must not be null + * @param s the first String, must not be null + * @param t the second String, must not be null * @return result distance * @throws IllegalArgumentException if either String input {@code null} */ @@ -309,8 +311,10 @@ public final class StringUtil { return parseListInQuotes(input, delimiter, quoteOpen, quoteClose, false); } - public static List parseListInQuotes(String[] input, char delimiter, char quoteOpen, - char quoteClose, boolean appendLeftover) { + public static List parseListInQuotes( + String[] input, char delimiter, char quoteOpen, + char quoteClose, boolean appendLeftover + ) { List parsableBlocks = new ArrayList<>(); StringBuilder buffer = new StringBuilder(); for (String split : input) { @@ -333,14 +337,15 @@ public final class StringUtil { return parsableBlocks; } - //FAWE start + //FAWE start + /** * Splits a string respecting enclosing quotes. * - * @param input the input to split. + * @param input the input to split. * @param delimiter the delimiter to split on. - * @param open the opening quote character. - * @param close the closing quote character. + * @param open the opening quote character. + * @param close the closing quote character. * @return a list of split strings. */ public static List split(String input, char delimiter, char open, char close) { diff --git a/worldedit-core/src/main/java/com/sk89q/util/yaml/YAMLNode.java b/worldedit-core/src/main/java/com/sk89q/util/yaml/YAMLNode.java index 6618549af..d4cc816e7 100644 --- a/worldedit-core/src/main/java/com/sk89q/util/yaml/YAMLNode.java +++ b/worldedit-core/src/main/java/com/sk89q/util/yaml/YAMLNode.java @@ -24,11 +24,11 @@ import com.sk89q.worldedit.math.BlockVector3; import com.sk89q.worldedit.math.Vector2; import com.sk89q.worldedit.math.Vector3; +import javax.annotation.Nullable; import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; -import javax.annotation.Nullable; /** * Represents a configuration node. @@ -193,7 +193,7 @@ public class YAMLNode { * Set the property at a location. This will override existing * configuration data to have it conform to key/value mappings. * - * @param path the path + * @param path the path * @param value the new value */ @SuppressWarnings("unchecked") @@ -314,7 +314,7 @@ public class YAMLNode { * actually a string, it will be converted to its string representation. * * @param path path to node (dot notation) - * @param def default value + * @param def default value * @return string or default */ public Vector3 getVector(String path, Vector3 def) { @@ -334,7 +334,7 @@ public class YAMLNode { * actually a string, it will be converted to its string representation. * * @param path path to node (dot notation) - * @param def default value + * @param def default value * @return string or default */ public String getString(String path, String def) { @@ -359,11 +359,7 @@ public class YAMLNode { */ public Integer getInt(String path) { Integer o = castInt(getProperty(path)); - if (o == null) { - return null; - } else { - return o; - } + return o; } /** @@ -373,7 +369,7 @@ public class YAMLNode { * number types will be casted to an integer. * * @param path path to node (dot notation) - * @param def default value + * @param def default value * @return Integer or default */ public int getInt(String path, int def) { @@ -399,11 +395,7 @@ public class YAMLNode { */ public Double getDouble(String path) { Double o = castDouble(getProperty(path)); - if (o == null) { - return null; - } else { - return o; - } + return o; } /** @@ -413,7 +405,7 @@ public class YAMLNode { * number types will be casted to a Double. * * @param path path to node (dot notation) - * @param def default value + * @param def default value * @return Double or default */ public double getDouble(String path, double def) { @@ -438,11 +430,7 @@ public class YAMLNode { */ public Boolean getBoolean(String path) { Boolean o = castBoolean(getProperty(path)); - if (o == null) { - return null; - } else { - return o; - } + return o; } /** @@ -451,7 +439,7 @@ public class YAMLNode { * actually a Boolean, the default value will be returned. * * @param path path to node (dot notation) - * @param def default value + * @param def default value * @return Boolean or default */ public boolean getBoolean(String path, boolean def) { @@ -516,7 +504,7 @@ public class YAMLNode { * an actual list and not just a String. * * @param path path to node (dot notation) - * @param def default value or null for an empty list as default + * @param def default value or null for an empty list as default * @return list of Strings */ public List getStringList(String path, List def) { @@ -548,7 +536,7 @@ public class YAMLNode { * an actual list and not just an integer. * * @param path path to node (dot notation) - * @param def default value or null for an empty list as default + * @param def default value or null for an empty list as default * @return list of Integers */ public List getIntList(String path, List def) { @@ -579,7 +567,7 @@ public class YAMLNode { * an actual list and cannot be just a Double. * * @param path path to node (dot notation) - * @param def default value or null for an empty list as default + * @param def default value or null for an empty list as default * @return list of Doubles */ public List getDoubleList(String path, List def) { @@ -610,7 +598,7 @@ public class YAMLNode { * an actual list and cannot be just a Boolean. * * @param path path to node (dot notation) - * @param def default value or null for an empty list as default + * @param def default value or null for an empty list as default * @return list of Booleans */ public List getBooleanList(String path, List def) { @@ -641,7 +629,7 @@ public class YAMLNode { * an actual node and cannot be just a vector. * * @param path path to node (dot notation) - * @param def default value or null for an empty list as default + * @param def default value or null for an empty list as default * @return list of vectors */ public List getVectorList(String path, List def) { @@ -671,7 +659,7 @@ public class YAMLNode { * an actual node and cannot be just a vector. * * @param path path to node (dot notation) - * @param def default value or null for an empty list as default + * @param def default value or null for an empty list as default * @return list of vectors */ public List getVector2List(String path, List def) { @@ -701,7 +689,7 @@ public class YAMLNode { * an actual node and cannot be just a vector. * * @param path path to node (dot notation) - * @param def default value or null for an empty list as default + * @param def default value or null for an empty list as default * @return list of vectors */ public List getBlockVector2List(String path, List def) { @@ -731,7 +719,7 @@ public class YAMLNode { * an actual node and cannot be just a {@code YAMLNode}. * * @param path path to node (dot notation) - * @param def default value or null for an empty list as default + * @param def default value or null for an empty list as default * @return list of nodes */ @SuppressWarnings("unchecked") @@ -791,8 +779,10 @@ public class YAMLNode { for (Map.Entry entry : ((Map) o).entrySet()) { if (entry.getValue() instanceof Map) { - nodes.put(entry.getKey(), - new YAMLNode((Map) entry.getValue(), writeDefaults)); + nodes.put( + entry.getKey(), + new YAMLNode((Map) entry.getValue(), writeDefaults) + ); } } diff --git a/worldedit-core/src/main/java/com/sk89q/util/yaml/YAMLProcessor.java b/worldedit-core/src/main/java/com/sk89q/util/yaml/YAMLProcessor.java index 79fe703f0..a273252f3 100644 --- a/worldedit-core/src/main/java/com/sk89q/util/yaml/YAMLProcessor.java +++ b/worldedit-core/src/main/java/com/sk89q/util/yaml/YAMLProcessor.java @@ -19,9 +19,9 @@ package com.sk89q.util.yaml; +import com.fastasyncworldedit.core.configuration.Yaml; import com.sk89q.util.StringUtil; import org.yaml.snakeyaml.DumperOptions; -import com.fastasyncworldedit.core.configuration.Yaml; import org.yaml.snakeyaml.constructor.SafeConstructor; import org.yaml.snakeyaml.nodes.Tag; import org.yaml.snakeyaml.reader.UnicodeReader; @@ -184,7 +184,7 @@ public class YAMLProcessor extends YAMLNode { yaml.dump(root, writer); } else { // Iterate over each root-level property and dump - for (Entry entry: root.entrySet()) { + for (Entry entry : root.entrySet()) { // Output comment, if present String comment = comments.get(entry.getKey()); if (comment != null) { @@ -246,9 +246,9 @@ public class YAMLProcessor extends YAMLNode { /** * Set a root-level comment. * - * @param key the property key + * @param key the property key * @param comment the comment. May be {@code null}, in which case the comment - * is removed. + * is removed. */ public void setComment(String key, String... comment) { if (comment != null && comment.length > 0) { @@ -290,7 +290,7 @@ public class YAMLProcessor extends YAMLNode { * select a node from a node list. * * @param writeDefaults true to write default values when a property is - * requested that doesn't exist + * requested that doesn't exist * @return a node */ public static YAMLNode getEmptyNode(boolean writeDefaults) { @@ -298,9 +298,11 @@ public class YAMLProcessor extends YAMLNode { } private static class FancyRepresenter extends Representer { + private FancyRepresenter() { this.nullRepresenter = o -> representScalar(Tag.NULL, ""); } + } } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/EditSession.java b/worldedit-core/src/main/java/com/sk89q/worldedit/EditSession.java index 1f1c49b0a..08b81462c 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/EditSession.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/EditSession.java @@ -20,30 +20,41 @@ package com.sk89q.worldedit; import com.fastasyncworldedit.core.FaweCache; -import com.fastasyncworldedit.core.extent.processor.lighting.NullRelighter; -import com.fastasyncworldedit.core.extent.processor.lighting.Relighter; import com.fastasyncworldedit.core.configuration.Caption; import com.fastasyncworldedit.core.configuration.Settings; -import com.fastasyncworldedit.core.object.FaweLimit; -import com.fastasyncworldedit.core.regions.RegionWrapper; -import com.fastasyncworldedit.core.util.task.RunnableVal; -import com.fastasyncworldedit.core.history.changeset.AbstractChangeSet; -import com.fastasyncworldedit.core.history.changeset.BlockBagChangeSet; -import com.fastasyncworldedit.core.extent.clipboard.WorldCopyClipboard; -import com.fastasyncworldedit.core.math.LocalBlockVectorSet; import com.fastasyncworldedit.core.extent.FaweRegionExtent; +import com.fastasyncworldedit.core.extent.PassthroughExtent; import com.fastasyncworldedit.core.extent.ProcessedWEExtent; import com.fastasyncworldedit.core.extent.ResettableExtent; import com.fastasyncworldedit.core.extent.SingleRegionExtent; import com.fastasyncworldedit.core.extent.SourceMaskExtent; +import com.fastasyncworldedit.core.extent.clipboard.WorldCopyClipboard; +import com.fastasyncworldedit.core.extent.processor.lighting.NullRelighter; +import com.fastasyncworldedit.core.extent.processor.lighting.Relighter; import com.fastasyncworldedit.core.function.SurfaceRegionFunction; +import com.fastasyncworldedit.core.function.generator.GenBase; +import com.fastasyncworldedit.core.function.generator.OreGen; +import com.fastasyncworldedit.core.function.generator.SchemGen; +import com.fastasyncworldedit.core.function.mask.BlockMaskBuilder; +import com.fastasyncworldedit.core.function.mask.MaskUnion; import com.fastasyncworldedit.core.function.mask.ResettableMask; +import com.fastasyncworldedit.core.function.mask.SingleBlockTypeMask; +import com.fastasyncworldedit.core.function.mask.WallMakeMask; import com.fastasyncworldedit.core.function.pattern.ExistingPattern; +import com.fastasyncworldedit.core.function.visitor.DirectionalVisitor; +import com.fastasyncworldedit.core.history.changeset.AbstractChangeSet; +import com.fastasyncworldedit.core.history.changeset.BlockBagChangeSet; +import com.fastasyncworldedit.core.math.LocalBlockVectorSet; +import com.fastasyncworldedit.core.math.MutableBlockVector2; +import com.fastasyncworldedit.core.math.MutableBlockVector3; +import com.fastasyncworldedit.core.object.FaweLimit; +import com.fastasyncworldedit.core.regions.RegionWrapper; import com.fastasyncworldedit.core.util.EditSessionBuilder; import com.fastasyncworldedit.core.util.ExtentTraverser; import com.fastasyncworldedit.core.util.MaskTraverser; import com.fastasyncworldedit.core.util.MathMan; import com.fastasyncworldedit.core.util.TaskManager; +import com.fastasyncworldedit.core.util.task.RunnableVal; import com.sk89q.worldedit.entity.BaseEntity; import com.sk89q.worldedit.entity.Entity; import com.sk89q.worldedit.entity.Player; @@ -52,7 +63,6 @@ import com.sk89q.worldedit.extent.AbstractDelegateExtent; import com.sk89q.worldedit.extent.ChangeSetExtent; import com.sk89q.worldedit.extent.Extent; import com.sk89q.worldedit.extent.MaskingExtent; -import com.fastasyncworldedit.core.extent.PassthroughExtent; import com.sk89q.worldedit.extent.clipboard.Clipboard; import com.sk89q.worldedit.extent.inventory.BlockBag; import com.sk89q.worldedit.extent.inventory.BlockBagExtent; @@ -64,29 +74,21 @@ import com.sk89q.worldedit.function.block.Naturalizer; import com.sk89q.worldedit.function.block.SnowSimulator; import com.sk89q.worldedit.function.generator.ForestGenerator; import com.sk89q.worldedit.function.generator.GardenPatchGenerator; -import com.fastasyncworldedit.core.function.mask.BlockMaskBuilder; -import com.fastasyncworldedit.core.function.generator.GenBase; -import com.fastasyncworldedit.core.function.generator.OreGen; -import com.fastasyncworldedit.core.function.generator.SchemGen; import com.sk89q.worldedit.function.mask.BlockStateMask; import com.sk89q.worldedit.function.mask.BlockTypeMask; import com.sk89q.worldedit.function.mask.BoundedHeightMask; import com.sk89q.worldedit.function.mask.ExistingBlockMask; import com.sk89q.worldedit.function.mask.Mask; import com.sk89q.worldedit.function.mask.MaskIntersection; -import com.fastasyncworldedit.core.function.mask.MaskUnion; import com.sk89q.worldedit.function.mask.Masks; import com.sk89q.worldedit.function.mask.NoiseFilter2D; import com.sk89q.worldedit.function.mask.RegionMask; -import com.fastasyncworldedit.core.function.mask.SingleBlockTypeMask; -import com.fastasyncworldedit.core.function.mask.WallMakeMask; import com.sk89q.worldedit.function.operation.ChangeSetExecutor; import com.sk89q.worldedit.function.operation.ForwardExtentCopy; import com.sk89q.worldedit.function.operation.Operations; import com.sk89q.worldedit.function.pattern.Pattern; import com.sk89q.worldedit.function.pattern.WaterloggedRemover; import com.sk89q.worldedit.function.util.RegionOffset; -import com.fastasyncworldedit.core.function.visitor.DirectionalVisitor; import com.sk89q.worldedit.function.visitor.DownwardVisitor; import com.sk89q.worldedit.function.visitor.FlatRegionVisitor; import com.sk89q.worldedit.function.visitor.LayerVisitor; @@ -104,8 +106,6 @@ import com.sk89q.worldedit.internal.util.LogManagerCompat; import com.sk89q.worldedit.math.BlockVector2; import com.sk89q.worldedit.math.BlockVector3; import com.sk89q.worldedit.math.MathUtils; -import com.fastasyncworldedit.core.math.MutableBlockVector2; -import com.fastasyncworldedit.core.math.MutableBlockVector3; import com.sk89q.worldedit.math.Vector2; import com.sk89q.worldedit.math.Vector3; import com.sk89q.worldedit.math.interpolation.Interpolation; @@ -141,9 +141,9 @@ import com.sk89q.worldedit.world.block.BlockType; import com.sk89q.worldedit.world.block.BlockTypes; import com.sk89q.worldedit.world.registry.LegacyMapper; import org.apache.logging.log4j.Logger; + import javax.annotation.Nonnull; import javax.annotation.Nullable; - import java.io.IOException; import java.util.ArrayList; import java.util.Collection; @@ -247,26 +247,45 @@ public class EditSession extends PassthroughExtent implements AutoCloseable { private final Region[] allowedRegions; @Deprecated - public EditSession(@Nonnull EventBus bus, World world, @Nullable Player player, - @Nullable FaweLimit limit, @Nullable AbstractChangeSet changeSet, - @Nullable RegionWrapper[] allowedRegions, @Nullable Boolean autoQueue, - @Nullable Boolean fastmode, @Nullable Boolean checkMemory, @Nullable Boolean combineStages, - @Nullable BlockBag blockBag, @Nullable EditSessionEvent event) { - this(new EditSessionBuilder(world).player(player).limit(limit).changeSet(changeSet).allowedRegions(allowedRegions).autoQueue(autoQueue).fastmode(fastmode).checkMemory(checkMemory).combineStages(combineStages).blockBag(blockBag).eventBus(bus).event(event)); + public EditSession( + @Nonnull EventBus bus, World world, @Nullable Player player, + @Nullable FaweLimit limit, @Nullable AbstractChangeSet changeSet, + @Nullable RegionWrapper[] allowedRegions, @Nullable Boolean autoQueue, + @Nullable Boolean fastmode, @Nullable Boolean checkMemory, @Nullable Boolean combineStages, + @Nullable BlockBag blockBag, @Nullable EditSessionEvent event + ) { + this(new EditSessionBuilder(world) + .player(player) + .limit(limit) + .changeSet(changeSet) + .allowedRegions(allowedRegions) + .autoQueue(autoQueue) + .fastmode(fastmode) + .checkMemory(checkMemory) + .combineStages(combineStages) + .blockBag(blockBag) + .eventBus(bus) + .event(event)); } //FAWE end /** * Construct the object with a maximum number of blocks and a block bag. * - * @param eventBus the event bus - * @param world the world + * @param eventBus the event bus + * @param world the world * @param maxBlocks the maximum number of blocks that can be changed, or -1 to use no limit - * @param blockBag an optional {@link BlockBag} to use, otherwise null - * @param event the event to call with the extent + * @param blockBag an optional {@link BlockBag} to use, otherwise null + * @param event the event to call with the extent */ //FAWE start - EditSessionEvent - public EditSession(@Nonnull EventBus eventBus, World world, int maxBlocks, @Nullable BlockBag blockBag, EditSessionEvent event) { + public EditSession( + @Nonnull EventBus eventBus, + World world, + int maxBlocks, + @Nullable BlockBag blockBag, + EditSessionEvent event + ) { this(eventBus, world, null, null, null, null, true, null, null, null, blockBag, event); } @@ -433,6 +452,7 @@ public class EditSession extends PassthroughExtent implements AutoCloseable { /** * Set the ChangeSet without hooking into any recording mechanism or triggering any actions.
    * Used internally to set the ChangeSet during completion to record custom changes which aren't normally recorded + * * @param set The ChangeSet to set */ public void setRawChangeSet(@Nullable AbstractChangeSet set) { @@ -510,6 +530,7 @@ public class EditSession extends PassthroughExtent implements AutoCloseable { } //FAWE start + /** * Get the source mask. * @@ -542,6 +563,7 @@ public class EditSession extends PassthroughExtent implements AutoCloseable { //FAWE end //FAWE start - use source mast > mask + /** * Set a mask. * @@ -584,6 +606,7 @@ public class EditSession extends PassthroughExtent implements AutoCloseable { //FAWE end //FAWE start - use MaskingExtent & ExtentTraverser + /** * Set a mask. * @@ -609,6 +632,7 @@ public class EditSession extends PassthroughExtent implements AutoCloseable { //FAWE end //FAWE start - ExtentTraverser + /** * Get the {@link SurvivalModeExtent}. * @@ -627,6 +651,7 @@ public class EditSession extends PassthroughExtent implements AutoCloseable { //FAWE end //FAWE start - our fastmode works different to upstream + /** * Set whether fast mode is enabled. * @@ -642,6 +667,7 @@ public class EditSession extends PassthroughExtent implements AutoCloseable { //FAWE end //FAWE start - we don't use this (yet) + /** * Set which block updates should occur. * @@ -658,6 +684,7 @@ public class EditSession extends PassthroughExtent implements AutoCloseable { //FAWE end //FAWE start + /** * Disable history (or re-enable) * @@ -682,6 +709,7 @@ public class EditSession extends PassthroughExtent implements AutoCloseable { //FAWE end //FAWE start - See comment on setFastMode + /** * Return fast mode status. * @@ -697,6 +725,7 @@ public class EditSession extends PassthroughExtent implements AutoCloseable { //FAWE end //FAWE start - Don't use blockBagExtent + /** * Get the {@link BlockBag} is used. * @@ -708,6 +737,7 @@ public class EditSession extends PassthroughExtent implements AutoCloseable { //FAWE end //FAWE start + /** * Set a {@link BlockBag} to use. * @@ -774,6 +804,7 @@ public class EditSession extends PassthroughExtent implements AutoCloseable { //FAWE end //FAWE start - We don't use this method + /** * Returns chunk batching status. * @@ -875,8 +906,8 @@ public class EditSession extends PassthroughExtent implements AutoCloseable { /** * Returns the highest solid 'terrain' block. * - * @param x the X coordinate - * @param z the Z coordinate + * @param x the X coordinate + * @param z the Z coordinate * @param minY minimal height * @param maxY maximal height * @return height of highest block found or 'minY' @@ -895,10 +926,10 @@ public class EditSession extends PassthroughExtent implements AutoCloseable { /** * Returns the highest solid 'terrain' block. * - * @param x the X coordinate - * @param z the Z coordinate - * @param minY minimal height - * @param maxY maximal height + * @param x the X coordinate + * @param z the Z coordinate + * @param minY minimal height + * @param maxY maximal height * @param filter a mask of blocks to consider, or null to consider any solid (movement-blocking) block * @return height of highest block found or 'minY' */ @@ -906,7 +937,7 @@ public class EditSession extends PassthroughExtent implements AutoCloseable { for (int y = maxY; y >= minY; --y) { //FAWE start - get position from mutable vector if (filter.test(mutableBlockVector3.setComponents(x, y, z))) { - //FAWE end + //FAWE end return y; } } @@ -924,13 +955,14 @@ public class EditSession extends PassthroughExtent implements AutoCloseable { * Set a block, bypassing both history and block re-ordering. * * @param position the position to set the block at - * @param block the block - * @param stage the level + * @param block the block + * @param stage the level * @return whether the block changed * @throws WorldEditException thrown on a set error */ @Deprecated - public > boolean setBlock(BlockVector3 position, B block, Stage stage) throws WorldEditException { + public > boolean setBlock(BlockVector3 position, B block, Stage stage) throws + WorldEditException { //FAWE start - accumulate changes if (position.getBlockY() < this.minY || position.getBlockY() > this.maxY) { return false; @@ -951,11 +983,12 @@ public class EditSession extends PassthroughExtent implements AutoCloseable { } //FAWE start - see former comment + /** * Set a block, bypassing both history and block re-ordering. * * @param position the position to set the block at - * @param block the block + * @param block the block * @return whether the block changed */ @Deprecated @@ -974,11 +1007,12 @@ public class EditSession extends PassthroughExtent implements AutoCloseable { //FAWE end //FAWE start - we use this + /** * Set a block, bypassing history but still utilizing block re-ordering. * * @param position the position to set the block at - * @param block the block + * @param block the block * @return whether the block changed */ public > boolean smartSetBlock(BlockVector3 position, B block) { @@ -1029,9 +1063,9 @@ public class EditSession extends PassthroughExtent implements AutoCloseable { /** * Sets the block at a position, subject to both history and block re-ordering. * - * @param x the x coordinate - * @param y the y coordinate - * @param z the z coordinate + * @param x the x coordinate + * @param y the y coordinate + * @param z the z coordinate * @param pattern a pattern to use * @return Whether the block changed -- not entirely dependable * @throws MaxChangedBlocksException thrown if too many blocks are changed @@ -1054,7 +1088,7 @@ public class EditSession extends PassthroughExtent implements AutoCloseable { * Sets the block at a position, subject to both history and block re-ordering. * * @param position the position - * @param pattern a pattern to use + * @param pattern a pattern to use * @return Whether the block changed -- not entirely dependable * @throws MaxChangedBlocksException thrown if too many blocks are changed */ @@ -1083,6 +1117,7 @@ public class EditSession extends PassthroughExtent implements AutoCloseable { //FAWE end //FAWE start + /** * Restores all blocks to their initial state. * @@ -1094,7 +1129,13 @@ public class EditSession extends PassthroughExtent implements AutoCloseable { context.setExtent(editSession.bypassAll); ChangeSet changeSet = getChangeSet(); setChangeSet(null); - Operations.completeBlindly(ChangeSetExecutor.create(changeSet, context, ChangeSetExecutor.Type.UNDO, editSession.getBlockBag(), editSession.getLimit().INVENTORY_MODE)); + Operations.completeBlindly(ChangeSetExecutor.create( + changeSet, + context, + ChangeSetExecutor.Type.UNDO, + editSession.getBlockBag(), + editSession.getLimit().INVENTORY_MODE + )); flushQueue(); editSession.changes = 1; } @@ -1120,7 +1161,13 @@ public class EditSession extends PassthroughExtent implements AutoCloseable { context.setExtent(editSession.bypassAll); ChangeSet changeSet = getChangeSet(); setChangeSet(null); - Operations.completeBlindly(ChangeSetExecutor.create(changeSet, context, ChangeSetExecutor.Type.REDO, editSession.getBlockBag(), editSession.getLimit().INVENTORY_MODE)); + Operations.completeBlindly(ChangeSetExecutor.create( + changeSet, + context, + ChangeSetExecutor.Type.REDO, + editSession.getBlockBag(), + editSession.getLimit().INVENTORY_MODE + )); flushQueue(); editSession.changes = 1; } @@ -1162,6 +1209,7 @@ public class EditSession extends PassthroughExtent implements AutoCloseable { } //FAWE start + /** * Finish off the queue. */ @@ -1248,7 +1296,8 @@ public class EditSession extends PassthroughExtent implements AutoCloseable { } @Override - public > int replaceBlocks(Region region, Set filter, B replacement) throws MaxChangedBlocksException { + public > int replaceBlocks(Region region, Set filter, B replacement) throws + MaxChangedBlocksException { return this.changes = super.replaceBlocks(region, filter, replacement); } @@ -1265,15 +1314,21 @@ public class EditSession extends PassthroughExtent implements AutoCloseable { /** * Fills an area recursively in the X/Z directions. * - * @param origin the location to start from - * @param pattern the block to fill with - * @param radius the radius of the spherical area to fill - * @param depth the maximum depth, starting from the origin + * @param origin the location to start from + * @param pattern the block to fill with + * @param radius the radius of the spherical area to fill + * @param depth the maximum depth, starting from the origin * @param direction the direction to fill * @return the number of blocks affected * @throws MaxChangedBlocksException thrown if too many blocks are changed */ - public int fillDirection(final BlockVector3 origin, final Pattern pattern, final double radius, final int depth, BlockVector3 direction) throws MaxChangedBlocksException { + public int fillDirection( + final BlockVector3 origin, + final Pattern pattern, + final double radius, + final int depth, + BlockVector3 direction + ) throws MaxChangedBlocksException { checkNotNull(origin); checkNotNull(pattern); checkArgument(radius >= 0, "radius >= 0"); @@ -1281,7 +1336,10 @@ public class EditSession extends PassthroughExtent implements AutoCloseable { if (direction.equals(BlockVector3.at(0, -1, 0))) { return fillXZ(origin, pattern, radius, depth, false); } - Mask mask = new MaskIntersection(new RegionMask(new EllipsoidRegion(null, origin, Vector3.at(radius, radius, radius))), Masks.negate(new ExistingBlockMask(EditSession.this))); + Mask mask = new MaskIntersection( + new RegionMask(new EllipsoidRegion(null, origin, Vector3.at(radius, radius, radius))), + Masks.negate(new ExistingBlockMask(EditSession.this)) + ); // Want to replace blocks final BlockReplace replace = new BlockReplace(EditSession.this, pattern); @@ -1300,30 +1358,37 @@ public class EditSession extends PassthroughExtent implements AutoCloseable { /** * Fills an area recursively in the X/Z directions. * - * @param origin the location to start from - * @param block the block to fill with - * @param radius the radius of the spherical area to fill - * @param depth the maximum depth, starting from the origin + * @param origin the location to start from + * @param block the block to fill with + * @param radius the radius of the spherical area to fill + * @param depth the maximum depth, starting from the origin * @param recursive whether a breadth-first search should be performed * @return number of blocks affected * @throws MaxChangedBlocksException thrown if too many blocks are changed */ - public > int fillXZ(BlockVector3 origin, B block, double radius, int depth, boolean recursive) throws MaxChangedBlocksException { + public > int fillXZ( + BlockVector3 origin, + B block, + double radius, + int depth, + boolean recursive + ) throws MaxChangedBlocksException { return fillXZ(origin, (Pattern) block, radius, depth, recursive); } /** * Fills an area recursively in the X/Z directions. * - * @param origin the origin to start the fill from - * @param pattern the pattern to fill with - * @param radius the radius of the spherical area to fill, with 0 as the smallest radius - * @param depth the maximum depth, starting from the origin, with 1 as the smallest depth + * @param origin the origin to start the fill from + * @param pattern the pattern to fill with + * @param radius the radius of the spherical area to fill, with 0 as the smallest radius + * @param depth the maximum depth, starting from the origin, with 1 as the smallest depth * @param recursive whether a breadth-first search should be performed * @return number of blocks affected * @throws MaxChangedBlocksException thrown if too many blocks are changed */ - public int fillXZ(BlockVector3 origin, Pattern pattern, double radius, int depth, boolean recursive) throws MaxChangedBlocksException { + public int fillXZ(BlockVector3 origin, Pattern pattern, double radius, int depth, boolean recursive) throws + MaxChangedBlocksException { checkNotNull(origin); checkNotNull(pattern); checkArgument(radius >= 0, "radius >= 0"); @@ -1333,8 +1398,10 @@ public class EditSession extends PassthroughExtent implements AutoCloseable { new RegionMask(new EllipsoidRegion(null, origin, Vector3.at(radius, radius, radius))), new BoundedHeightMask( Math.max(origin.getBlockY() - depth + 1, getMinimumPoint().getBlockY()), - Math.min(getMaxY(), origin.getBlockY())), - Masks.negate(new ExistingBlockMask(this))); + Math.min(getMaxY(), origin.getBlockY()) + ), + Masks.negate(new ExistingBlockMask(this)) + ); // Want to replace blocks BlockReplace replace = new BlockReplace(this, pattern); @@ -1362,8 +1429,8 @@ public class EditSession extends PassthroughExtent implements AutoCloseable { * Remove a cuboid above the given position with a given apothem and a given height. * * @param position base position - * @param apothem an apothem of the cuboid (on the XZ plane), where the minimum is 1 - * @param height the height of the cuboid, where the minimum is 1 + * @param apothem an apothem of the cuboid (on the XZ plane), where the minimum is 1 + * @param height the height of the cuboid, where the minimum is 1 * @return number of blocks affected * @throws MaxChangedBlocksException thrown if too many blocks are changed */ @@ -1375,7 +1442,8 @@ public class EditSession extends PassthroughExtent implements AutoCloseable { Region region = new CuboidRegion( getWorld(), // Causes clamping of Y range position.add(-apothem + 1, 0, -apothem + 1), - position.add(apothem - 1, height - 1, apothem - 1)); + position.add(apothem - 1, height - 1, apothem - 1) + ); return setBlocks(region, BlockTypes.AIR.getDefaultState()); } @@ -1383,8 +1451,8 @@ public class EditSession extends PassthroughExtent implements AutoCloseable { * Remove a cuboid below the given position with a given apothem and a given height. * * @param position base position - * @param apothem an apothem of the cuboid (on the XZ plane), where the minimum is 1 - * @param height the height of the cuboid, where the minimum is 1 + * @param apothem an apothem of the cuboid (on the XZ plane), where the minimum is 1 + * @param height the height of the cuboid, where the minimum is 1 * @return number of blocks affected * @throws MaxChangedBlocksException thrown if too many blocks are changed */ @@ -1396,7 +1464,8 @@ public class EditSession extends PassthroughExtent implements AutoCloseable { Region region = new CuboidRegion( getWorld(), // Causes clamping of Y range position.add(-apothem + 1, 0, -apothem + 1), - position.add(apothem - 1, -height + 1, apothem - 1)); + position.add(apothem - 1, -height + 1, apothem - 1) + ); return setBlocks(region, BlockTypes.AIR.getDefaultState()); } @@ -1404,8 +1473,8 @@ public class EditSession extends PassthroughExtent implements AutoCloseable { * Remove blocks of a certain type nearby a given position. * * @param position center position of cuboid - * @param mask the mask to match - * @param apothem an apothem of the cuboid, where the minimum is 1 + * @param mask the mask to match + * @param apothem an apothem of the cuboid, where the minimum is 1 * @return number of blocks affected * @throws MaxChangedBlocksException thrown if too many blocks are changed */ @@ -1417,7 +1486,8 @@ public class EditSession extends PassthroughExtent implements AutoCloseable { Region region = new CuboidRegion( getWorld(), // Causes clamping of Y range position.add(adjustment.multiply(-1)), - position.add(adjustment)); + position.add(adjustment) + ); return replaceBlocks(region, mask, BlockTypes.AIR.getDefaultState()); } @@ -1426,7 +1496,7 @@ public class EditSession extends PassthroughExtent implements AutoCloseable { * If the center sits between two blocks on a certain axis, then two blocks * will be placed to mark the center. * - * @param region the region to find the center of + * @param region the region to find the center of * @param pattern the replacement pattern * @return the number of blocks placed * @throws MaxChangedBlocksException thrown if too many blocks are changed @@ -1442,7 +1512,9 @@ public class EditSession extends PassthroughExtent implements AutoCloseable { BlockVector3.at( MathUtils.roundHalfUp(center.getX()), MathUtils.roundHalfUp(center.getY()), - MathUtils.roundHalfUp(center.getZ()))); + MathUtils.roundHalfUp(center.getZ()) + ) + ); return setBlocks(centerRegion, pattern); } @@ -1450,7 +1522,7 @@ public class EditSession extends PassthroughExtent implements AutoCloseable { * Make the faces of the given region as if it was a {@link CuboidRegion}. * * @param region the region - * @param block the block to place + * @param block the block to place * @return number of blocks affected * @throws MaxChangedBlocksException thrown if too many blocks are changed * @deprecated Use {@link EditSession#makeCuboidFaces(Region, Pattern)}. @@ -1463,7 +1535,7 @@ public class EditSession extends PassthroughExtent implements AutoCloseable { /** * Make the faces of the given region as if it was a {@link CuboidRegion}. * - * @param region the region + * @param region the region * @param pattern the pattern to place * @return number of blocks affected * @throws MaxChangedBlocksException thrown if too many blocks are changed @@ -1482,7 +1554,7 @@ public class EditSession extends PassthroughExtent implements AutoCloseable { * may be inefficient, because there may not be an efficient implementation supported * for that specific shape. * - * @param region the region + * @param region the region * @param pattern the pattern to place * @return number of blocks affected * @throws MaxChangedBlocksException thrown if too many blocks are changed @@ -1504,7 +1576,7 @@ public class EditSession extends PassthroughExtent implements AutoCloseable { * as if it was a {@link CuboidRegion}. * * @param region the region - * @param block the block to place + * @param block the block to place * @return number of blocks affected * @throws MaxChangedBlocksException thrown if too many blocks are changed */ @@ -1516,7 +1588,7 @@ public class EditSession extends PassthroughExtent implements AutoCloseable { * Make the walls (all faces but those parallel to the X-Z plane) of the given region * as if it was a {@link CuboidRegion}. * - * @param region the region + * @param region the region * @param pattern the pattern to place * @return number of blocks affected * @throws MaxChangedBlocksException thrown if too many blocks are changed @@ -1535,12 +1607,13 @@ public class EditSession extends PassthroughExtent implements AutoCloseable { } //FAWE start + /** * Make the walls of the given region. The method by which the walls are found * may be inefficient, because there may not be an efficient implementation supported * for that specific shape. * - * @param region the region + * @param region the region * @param pattern the pattern to place * @return number of blocks affected * @throws MaxChangedBlocksException thrown if too many blocks are changed @@ -1563,7 +1636,7 @@ public class EditSession extends PassthroughExtent implements AutoCloseable { * (as if it were a cuboid). * * @param region the region - * @param block the placed block + * @param block the placed block * @return number of blocks affected * @throws MaxChangedBlocksException thrown if too many blocks are changed * @deprecated Use {@link EditSession#overlayCuboidBlocks(Region, Pattern)}. @@ -1579,7 +1652,7 @@ public class EditSession extends PassthroughExtent implements AutoCloseable { * Places a layer of blocks on top of ground blocks in the given region * (as if it were a cuboid). * - * @param region the region + * @param region the region * @param pattern the placed block pattern * @return number of blocks affected * @throws MaxChangedBlocksException thrown if too many blocks are changed @@ -1622,9 +1695,9 @@ public class EditSession extends PassthroughExtent implements AutoCloseable { * Stack a cuboid region. For compatibility, entities are copied by biomes are not. * Use {@link #stackCuboidRegion(Region, BlockVector3, int, boolean, boolean, Mask)} to fine tune. * - * @param region the region to stack - * @param dir the direction to stack - * @param count the number of times to stack + * @param region the region to stack + * @param dir the direction to stack + * @param count the number of times to stack * @param copyAir true to also copy air blocks * @return number of blocks affected * @throws MaxChangedBlocksException thrown if too many blocks are changed @@ -1634,20 +1707,23 @@ public class EditSession extends PassthroughExtent implements AutoCloseable { } //FAWE start + /** * Stack a cuboid region. * - * @param region the region to stack - * @param dir the direction to stack - * @param count the number of times to stack + * @param region the region to stack + * @param dir the direction to stack + * @param count the number of times to stack * @param copyEntities true to copy entities - * @param copyBiomes true to copy biomes - * @param mask source mask for the operation (only matching blocks are copied) + * @param copyBiomes true to copy biomes + * @param mask source mask for the operation (only matching blocks are copied) * @return number of blocks affected * @throws MaxChangedBlocksException thrown if too many blocks are changed */ - public int stackCuboidRegion(Region region, BlockVector3 dir, int count, - boolean copyEntities, boolean copyBiomes, Mask mask) throws MaxChangedBlocksException { + public int stackCuboidRegion( + Region region, BlockVector3 dir, int count, + boolean copyEntities, boolean copyBiomes, Mask mask + ) throws MaxChangedBlocksException { checkNotNull(region); checkNotNull(dir); checkArgument(count >= 1, "count >= 1 required"); @@ -1678,17 +1754,25 @@ public class EditSession extends PassthroughExtent implements AutoCloseable { /** * Move the blocks in a region a certain direction. * - * @param region the region to move - * @param dir the direction - * @param distance the distance to move - * @param copyAir true to copy air blocks + * @param region the region to move + * @param dir the direction + * @param distance the distance to move + * @param copyAir true to copy air blocks * @param moveEntities true to move entities - * @param copyBiomes true to copy biomes - * @param replacement the replacement pattern to fill in after moving, or null to use air + * @param copyBiomes true to copy biomes + * @param replacement the replacement pattern to fill in after moving, or null to use air * @return number of blocks moved * @throws MaxChangedBlocksException thrown if too many blocks are changed */ - public int moveRegion(Region region, BlockVector3 dir, int distance, boolean copyAir, boolean moveEntities, boolean copyBiomes, Pattern replacement) throws MaxChangedBlocksException { + public int moveRegion( + Region region, + BlockVector3 dir, + int distance, + boolean copyAir, + boolean moveEntities, + boolean copyBiomes, + Pattern replacement + ) throws MaxChangedBlocksException { //FAWE start Mask mask = null; if (!copyAir) { @@ -1701,19 +1785,21 @@ public class EditSession extends PassthroughExtent implements AutoCloseable { /** * Move the blocks in a region a certain direction. * - * @param region the region to move - * @param dir the direction - * @param distance the distance to move + * @param region the region to move + * @param dir the direction + * @param distance the distance to move * @param moveEntities true to move entities - * @param copyBiomes true to copy biomes (source biome is unchanged) - * @param mask source mask for the operation (only matching blocks are moved) - * @param replacement the replacement pattern to fill in after moving, or null to use air + * @param copyBiomes true to copy biomes (source biome is unchanged) + * @param mask source mask for the operation (only matching blocks are moved) + * @param replacement the replacement pattern to fill in after moving, or null to use air * @return number of blocks moved * @throws MaxChangedBlocksException thrown if too many blocks are changed - * @throws IllegalArgumentException thrown if the region is not a flat region, but copyBiomes is true + * @throws IllegalArgumentException thrown if the region is not a flat region, but copyBiomes is true */ - public int moveRegion(Region region, BlockVector3 dir, int distance, - boolean moveEntities, boolean copyBiomes, Mask mask, Pattern replacement) throws MaxChangedBlocksException { + public int moveRegion( + Region region, BlockVector3 dir, int distance, + boolean moveEntities, boolean copyBiomes, Mask mask, Pattern replacement + ) throws MaxChangedBlocksException { checkNotNull(region); checkNotNull(dir); checkArgument(distance >= 1, "distance >= 1 required"); @@ -1766,15 +1852,16 @@ public class EditSession extends PassthroughExtent implements AutoCloseable { /** * Move the blocks in a region a certain direction. * - * @param region the region to move - * @param dir the direction - * @param distance the distance to move - * @param copyAir true to copy air blocks + * @param region the region to move + * @param dir the direction + * @param distance the distance to move + * @param copyAir true to copy air blocks * @param replacement the replacement pattern to fill in after moving, or null to use air * @return number of blocks moved * @throws MaxChangedBlocksException thrown if too many blocks are changed */ - public int moveCuboidRegion(Region region, BlockVector3 dir, int distance, boolean copyAir, Pattern replacement) throws MaxChangedBlocksException { + public int moveCuboidRegion(Region region, BlockVector3 dir, int distance, boolean copyAir, Pattern replacement) throws + MaxChangedBlocksException { return moveRegion(region, dir, distance, copyAir, true, false, replacement); } @@ -1793,8 +1880,8 @@ public class EditSession extends PassthroughExtent implements AutoCloseable { /** * Drain nearby pools of water or lava, optionally removed waterlogged states from blocks. * - * @param origin the origin to drain from, which will search a 3x3 area - * @param radius the radius of the removal, where a value should be 0 or greater + * @param origin the origin to drain from, which will search a 3x3 area + * @param radius the radius of the removal, where a value should be 0 or greater * @param waterlogged true to make waterlogged blocks non-waterlogged as well * @return number of blocks affected * @throws MaxChangedBlocksException thrown if too many blocks are changed @@ -1806,14 +1893,15 @@ public class EditSession extends PassthroughExtent implements AutoCloseable { /** * Drain nearby pools of water or lava, optionally removed waterlogged states from blocks. * - * @param origin the origin to drain from, which will search a 3x3 area - * @param radius the radius of the removal, where a value should be 0 or greater + * @param origin the origin to drain from, which will search a 3x3 area + * @param radius the radius of the removal, where a value should be 0 or greater * @param waterlogged true to make waterlogged blocks non-waterlogged as well - * @param plants true to remove underwater plants + * @param plants true to remove underwater plants * @return number of blocks affected * @throws MaxChangedBlocksException thrown if too many blocks are changed */ - public int drainArea(BlockVector3 origin, double radius, boolean waterlogged, boolean plants) throws MaxChangedBlocksException { + public int drainArea(BlockVector3 origin, double radius, boolean waterlogged, boolean plants) throws + MaxChangedBlocksException { checkNotNull(origin); checkArgument(radius >= 0, "radius >= 0 required"); @@ -1821,7 +1909,8 @@ public class EditSession extends PassthroughExtent implements AutoCloseable { Mask liquidMask; if (plants) { liquidMask = new BlockTypeMask(this, BlockTypes.LAVA, BlockTypes.WATER, - BlockTypes.KELP_PLANT, BlockTypes.KELP, BlockTypes.SEAGRASS, BlockTypes.TALL_SEAGRASS); + BlockTypes.KELP_PLANT, BlockTypes.KELP, BlockTypes.SEAGRASS, BlockTypes.TALL_SEAGRASS + ); } else { liquidMask = new BlockMaskBuilder() .addTypes(BlockTypes.WATER, BlockTypes.LAVA) @@ -1836,10 +1925,11 @@ public class EditSession extends PassthroughExtent implements AutoCloseable { //FAWE end } Mask mask = new MaskIntersection( - new BoundedHeightMask(getWorld().getMinY(), getWorld().getMaxY()), - new RegionMask(new EllipsoidRegion(null, origin, Vector3.at(radius, radius, radius))), - //FAWE start - liquidMask); + new BoundedHeightMask(getWorld().getMinY(), getWorld().getMaxY()), + new RegionMask(new EllipsoidRegion(null, origin, Vector3.at(radius, radius, radius))), + //FAWE start + liquidMask + ); //FAWE end BlockReplace replace; if (waterlogged) { @@ -1868,7 +1958,7 @@ public class EditSession extends PassthroughExtent implements AutoCloseable { * * @param origin the original position * @param radius the radius to fix - * @param fluid the type of the fluid + * @param fluid the type of the fluid * @return number of blocks affected * @throws MaxChangedBlocksException thrown if too many blocks are changed */ @@ -1907,41 +1997,58 @@ public class EditSession extends PassthroughExtent implements AutoCloseable { /** * Makes a cylinder. * - * @param pos Center of the cylinder - * @param block The block pattern to use + * @param pos Center of the cylinder + * @param block The block pattern to use * @param radius The cylinder's radius * @param height The cylinder's up/down extent. If negative, extend downward. * @param filled If false, only a shell will be generated. * @return number of blocks changed * @throws MaxChangedBlocksException thrown if too many blocks are changed */ - public int makeCylinder(BlockVector3 pos, Pattern block, double radius, int height, boolean filled) throws MaxChangedBlocksException { + public int makeCylinder(BlockVector3 pos, Pattern block, double radius, int height, boolean filled) throws + MaxChangedBlocksException { return makeCylinder(pos, block, radius, radius, height, filled); } /** * Makes a cylinder. * - * @param pos Center of the cylinder - * @param block The block pattern to use + * @param pos Center of the cylinder + * @param block The block pattern to use * @param radiusX The cylinder's largest north/south extent * @param radiusZ The cylinder's largest east/west extent - * @param height The cylinder's up/down extent. If negative, extend downward. - * @param filled If false, only a shell will be generated. + * @param height The cylinder's up/down extent. If negative, extend downward. + * @param filled If false, only a shell will be generated. * @return number of blocks changed * @throws MaxChangedBlocksException thrown if too many blocks are changed */ - public int makeCylinder(BlockVector3 pos, Pattern block, double radiusX, double radiusZ, int height, boolean filled) throws MaxChangedBlocksException { + public int makeCylinder(BlockVector3 pos, Pattern block, double radiusX, double radiusZ, int height, boolean filled) throws + MaxChangedBlocksException { return makeCylinder(pos, block, radiusX, radiusZ, height, 0, filled); } //FAWE start - public int makeHollowCylinder(BlockVector3 pos, final Pattern block, double radiusX, double radiusZ, int height, double thickness) throws MaxChangedBlocksException { + public int makeHollowCylinder( + BlockVector3 pos, + final Pattern block, + double radiusX, + double radiusZ, + int height, + double thickness + ) throws MaxChangedBlocksException { return makeCylinder(pos, block, radiusX, radiusZ, height, thickness, false); } //FAWE end - public int makeCylinder(BlockVector3 pos, Pattern block, double radiusX, double radiusZ, int height, double thickness, boolean filled) throws MaxChangedBlocksException { + public int makeCylinder( + BlockVector3 pos, + Pattern block, + double radiusX, + double radiusZ, + int height, + double thickness, + boolean filled + ) throws MaxChangedBlocksException { radiusX += 0.5; radiusZ += 0.5; @@ -1986,7 +2093,8 @@ public class EditSession extends PassthroughExtent implements AutoCloseable { double nextMinXn = 0; final double minInvRadiusX = 1 / (radiusX - thickness); final double minInvRadiusZ = 1 / (radiusZ - thickness); - forX: for (int x = 0; x <= ceilRadiusX; ++x) { + forX: + for (int x = 0; x <= ceilRadiusX; ++x) { final double xn = nextXn; double dx2 = nextMinXn * nextMinXn; nextXn = (x + 1) * invRadiusX; @@ -1994,7 +2102,8 @@ public class EditSession extends PassthroughExtent implements AutoCloseable { double nextZn = 0; double nextMinZn = 0; xSqr = xn * xn; - forZ: for (int z = 0; z <= ceilRadiusZ; ++z) { + forZ: + for (int z = 0; z <= ceilRadiusZ; ++z) { final double zn = nextZn; double dz2 = nextMinZn * nextMinZn; nextZn = (z + 1) * invRadiusZ; @@ -2022,12 +2131,14 @@ public class EditSession extends PassthroughExtent implements AutoCloseable { } } else { //FAWE end - forX: for (int x = 0; x <= ceilRadiusX; ++x) { + forX: + for (int x = 0; x <= ceilRadiusX; ++x) { final double xn = nextXn; nextXn = (x + 1) * invRadiusX; double nextZn = 0; xSqr = xn * xn; - forZ: for (int z = 0; z <= ceilRadiusZ; ++z) { + forZ: + for (int z = 0; z <= ceilRadiusZ; ++z) { final double zn = nextZn; nextZn = (z + 1) * invRadiusZ; zSqr = zn * zn; @@ -2065,20 +2176,29 @@ public class EditSession extends PassthroughExtent implements AutoCloseable { /** * Move the blocks in a region a certain direction. * - * @param region the region to move - * @param dir the direction - * @param distance the distance to move - * @param copyAir true to copy air blocks + * @param region the region to move + * @param dir the direction + * @param distance the distance to move + * @param copyAir true to copy air blocks * @param replacement the replacement pattern to fill in after moving, or null to use air * @return number of blocks moved * @throws MaxChangedBlocksException thrown if too many blocks are changed */ - public int moveRegion(Region region, BlockVector3 dir, int distance, boolean copyAir, Pattern replacement) throws MaxChangedBlocksException { + public int moveRegion(Region region, BlockVector3 dir, int distance, boolean copyAir, Pattern replacement) throws + MaxChangedBlocksException { return moveRegion(region, dir, distance, true, false, copyAir ? new ExistingBlockMask(this) : null, replacement); } //FAWE start - public int makeCircle(BlockVector3 pos, final Pattern block, double radiusX, double radiusY, double radiusZ, boolean filled, Vector3 normal) throws MaxChangedBlocksException { + public int makeCircle( + BlockVector3 pos, + final Pattern block, + double radiusX, + double radiusY, + double radiusZ, + boolean filled, + Vector3 normal + ) throws MaxChangedBlocksException { radiusX += 0.5; radiusY += 0.5; radiusZ += 0.5; @@ -2177,15 +2297,15 @@ public class EditSession extends PassthroughExtent implements AutoCloseable { //FAWE end /** - * Makes a sphere. - * - * @param pos Center of the sphere or ellipsoid - * @param block The block pattern to use - * @param radius The sphere's radius - * @param filled If false, only a shell will be generated. - * @return number of blocks changed - * @throws MaxChangedBlocksException thrown if too many blocks are changed - */ + * Makes a sphere. + * + * @param pos Center of the sphere or ellipsoid + * @param block The block pattern to use + * @param radius The sphere's radius + * @param filled If false, only a shell will be generated. + * @return number of blocks changed + * @throws MaxChangedBlocksException thrown if too many blocks are changed + */ public int makeSphere(BlockVector3 pos, Pattern block, double radius, boolean filled) throws MaxChangedBlocksException { return makeSphere(pos, block, radius, radius, radius, filled); } @@ -2193,16 +2313,17 @@ public class EditSession extends PassthroughExtent implements AutoCloseable { /** * Makes a sphere or ellipsoid. * - * @param pos Center of the sphere or ellipsoid - * @param block The block pattern to use + * @param pos Center of the sphere or ellipsoid + * @param block The block pattern to use * @param radiusX The sphere/ellipsoid's largest north/south extent * @param radiusY The sphere/ellipsoid's largest up/down extent * @param radiusZ The sphere/ellipsoid's largest east/west extent - * @param filled If false, only a shell will be generated. + * @param filled If false, only a shell will be generated. * @return number of blocks changed * @throws MaxChangedBlocksException thrown if too many blocks are changed */ - public int makeSphere(BlockVector3 pos, Pattern block, double radiusX, double radiusY, double radiusZ, boolean filled) throws MaxChangedBlocksException { + public int makeSphere(BlockVector3 pos, Pattern block, double radiusX, double radiusY, double radiusZ, boolean filled) throws + MaxChangedBlocksException { radiusX += 0.5; radiusY += 0.5; radiusZ += 0.5; @@ -2224,19 +2345,22 @@ public class EditSession extends PassthroughExtent implements AutoCloseable { //FAWE end double nextXn = 0; - forX: for (int x = 0; x <= ceilRadiusX; ++x) { + forX: + for (int x = 0; x <= ceilRadiusX; ++x) { final double xn = nextXn; double dx = xn * xn; nextXn = (x + 1) * invRadiusX; double nextZn = 0; - forZ: for (int z = 0; z <= ceilRadiusZ; ++z) { + forZ: + for (int z = 0; z <= ceilRadiusZ; ++z) { final double zn = nextZn; double dz = zn * zn; double dxz = dx + dz; nextZn = (z + 1) * invRadiusZ; double nextYn = 0; - forY: for (int y = 0; y <= ceilRadiusY; ++y) { + forY: + for (int y = 0; y <= ceilRadiusY; ++y) { final double yn = nextYn; double dy = yn * yn; double dxyz = dxz + dy; @@ -2295,9 +2419,9 @@ public class EditSession extends PassthroughExtent implements AutoCloseable { * Makes a pyramid. * * @param position a position - * @param block a block - * @param size size of pyramid - * @param filled true if filled + * @param block a block + * @param size size of pyramid + * @param filled true if filled * @return number of blocks changed * @throws MaxChangedBlocksException thrown if too many blocks are changed */ @@ -2332,29 +2456,30 @@ public class EditSession extends PassthroughExtent implements AutoCloseable { * Thaw blocks in a radius. * * @param position the position - * @param radius the radius + * @param radius the radius * @return number of blocks affected * @throws MaxChangedBlocksException thrown if too many blocks are changed * @deprecated Use {@link #thaw(BlockVector3, double, int)}. */ @Deprecated public int thaw(BlockVector3 position, double radius) - throws MaxChangedBlocksException { + throws MaxChangedBlocksException { return thaw(position, radius, - WorldEdit.getInstance().getConfiguration().defaultVerticalHeight); + WorldEdit.getInstance().getConfiguration().defaultVerticalHeight + ); } /** * Thaw blocks in a cylinder. * * @param position the position - * @param radius the radius - * @param height the height (upwards and downwards) + * @param radius the radius + * @param height the height (upwards and downwards) * @return number of blocks affected * @throws MaxChangedBlocksException thrown if too many blocks are changed */ public int thaw(BlockVector3 position, double radius, int height) - throws MaxChangedBlocksException { + throws MaxChangedBlocksException { int affected = 0; double radiusSq = radius * radius; @@ -2388,7 +2513,7 @@ public class EditSession extends PassthroughExtent implements AutoCloseable { } else if (id == BlockTypes.SNOW) { //FAWE start if (setBlock(pt, air)) { - if (y > 0 ) { + if (y > 0) { BlockState block = getBlock(below); if (block.getStates().containsKey(snowy)) { if (setBlock(below, block.with(snowy, false))) { @@ -2415,7 +2540,7 @@ public class EditSession extends PassthroughExtent implements AutoCloseable { * Make snow in a radius. * * @param position a position - * @param radius a radius + * @param radius a radius * @return number of blocks affected * @throws MaxChangedBlocksException thrown if too many blocks are changed * @deprecated Use {@link #simulateSnow(BlockVector3, double, int)}. @@ -2423,20 +2548,21 @@ public class EditSession extends PassthroughExtent implements AutoCloseable { @Deprecated public int simulateSnow(BlockVector3 position, double radius) throws MaxChangedBlocksException { return simulateSnow(position, radius, - WorldEdit.getInstance().getConfiguration().defaultVerticalHeight); + WorldEdit.getInstance().getConfiguration().defaultVerticalHeight + ); } /** * Make snow in a cylinder. * * @param position a position - * @param radius a radius - * @param height the height (upwards and downwards) + * @param radius a radius + * @param height the height (upwards and downwards) * @return number of blocks affected * @throws MaxChangedBlocksException thrown if too many blocks are changed */ public int simulateSnow(BlockVector3 position, double radius, int height) - throws MaxChangedBlocksException { + throws MaxChangedBlocksException { return simulateSnow(new CylinderRegion(position, Vector2.at(radius, radius), position.getBlockY(), height), false); } @@ -2445,12 +2571,12 @@ public class EditSession extends PassthroughExtent implements AutoCloseable { * Make snow in a region. * * @param region the region to simulate snow in - * @param stack whether it should stack existing snow + * @param stack whether it should stack existing snow * @return number of blocks affected * @throws MaxChangedBlocksException thrown if too many blocks are changed */ public int simulateSnow(FlatRegion region, boolean stack) - throws MaxChangedBlocksException { + throws MaxChangedBlocksException { checkNotNull(region); SnowSimulator snowSimulator = new SnowSimulator(this, stack); @@ -2458,11 +2584,12 @@ public class EditSession extends PassthroughExtent implements AutoCloseable { Operations.completeLegacy(layerVisitor); return snowSimulator.getAffected(); } + /** * Make dirt green. * - * @param position a position - * @param radius a radius + * @param position a position + * @param radius a radius * @param onlyNormalDirt only affect normal dirt (all default properties) * @return number of blocks affected * @throws MaxChangedBlocksException thrown if too many blocks are changed @@ -2470,23 +2597,24 @@ public class EditSession extends PassthroughExtent implements AutoCloseable { */ @Deprecated public int green(BlockVector3 position, double radius, boolean onlyNormalDirt) - throws MaxChangedBlocksException { + throws MaxChangedBlocksException { return green(position, radius, - WorldEdit.getInstance().getConfiguration().defaultVerticalHeight, onlyNormalDirt); + WorldEdit.getInstance().getConfiguration().defaultVerticalHeight, onlyNormalDirt + ); } /** * Make dirt green in a cylinder. * - * @param position the position - * @param radius the radius - * @param height the height + * @param position the position + * @param radius the radius + * @param height the height * @param onlyNormalDirt only affect normal dirt (all default properties) * @return number of blocks affected * @throws MaxChangedBlocksException thrown if too many blocks are changed */ public int green(BlockVector3 position, double radius, int height, boolean onlyNormalDirt) - throws MaxChangedBlocksException { + throws MaxChangedBlocksException { int affected = 0; final double radiusSq = radius * radius; @@ -2512,7 +2640,7 @@ public class EditSession extends PassthroughExtent implements AutoCloseable { final BlockState block = getBlock(pt); if (block.getBlockType() == BlockTypes.DIRT - || (!onlyNormalDirt && block.getBlockType() == BlockTypes.COARSE_DIRT)) { + || (!onlyNormalDirt && block.getBlockType() == BlockTypes.COARSE_DIRT)) { if (setBlock(pt, grass)) { ++affected; } @@ -2533,7 +2661,7 @@ public class EditSession extends PassthroughExtent implements AutoCloseable { * Makes pumpkin patches randomly in an area around the given position. * * @param position the base position - * @param apothem the apothem of the (square) area + * @param apothem the apothem of the (square) area * @return number of patches created * @throws MaxChangedBlocksException thrown if too many blocks are changed */ @@ -2551,7 +2679,8 @@ public class EditSession extends PassthroughExtent implements AutoCloseable { FlatRegion region = new CuboidRegion( getWorld(), // Causes clamping of Y range position.add(-apothem, -5, -apothem), - position.add(apothem, 10, apothem)); + position.add(apothem, 10, apothem) + ); GroundFunction ground = new GroundFunction(new ExistingBlockMask(this), generator); LayerVisitor visitor = new LayerVisitor(region, minimumBlockY(region), maximumBlockY(region), ground); @@ -2565,21 +2694,22 @@ public class EditSession extends PassthroughExtent implements AutoCloseable { * Makes a forest. * * @param basePosition a position - * @param size a size - * @param density between 0 and 1, inclusive - * @param treeType the tree type + * @param size a size + * @param density between 0 and 1, inclusive + * @param treeType the tree type * @return number of trees created * @throws MaxChangedBlocksException thrown if too many blocks are changed */ - public int makeForest(BlockVector3 basePosition, int size, double density, TreeGenerator.TreeType treeType) throws MaxChangedBlocksException { + public int makeForest(BlockVector3 basePosition, int size, double density, TreeGenerator.TreeType treeType) throws + MaxChangedBlocksException { return makeForest(CuboidRegion.fromCenter(basePosition, size), density, treeType); } /** * Makes a forest. * - * @param region the region to generate trees in - * @param density between 0 and 1, inclusive + * @param region the region to generate trees in + * @param density between 0 and 1, inclusive * @param treeType the tree type * @return number of trees created * @throws MaxChangedBlocksException thrown if too many blocks are changed @@ -2616,46 +2746,58 @@ public class EditSession extends PassthroughExtent implements AutoCloseable { /** * Generate a shape for the given expression. * - * @param region the region to generate the shape in - * @param zero the coordinate origin for x/y/z variables - * @param unit the scale of the x/y/z/ variables - * @param pattern the default material to make the shape from + * @param region the region to generate the shape in + * @param zero the coordinate origin for x/y/z variables + * @param unit the scale of the x/y/z/ variables + * @param pattern the default material to make the shape from * @param expressionString the expression defining the shape - * @param hollow whether the shape should be hollow + * @param hollow whether the shape should be hollow * @return number of blocks changed - * @throws ExpressionException if there is a problem with the expression + * @throws ExpressionException if there is a problem with the expression * @throws MaxChangedBlocksException if the maximum block change limit is exceeded */ - public int makeShape(final Region region, final Vector3 zero, final Vector3 unit, - final Pattern pattern, final String expressionString, final boolean hollow) + public int makeShape( + final Region region, final Vector3 zero, final Vector3 unit, + final Pattern pattern, final String expressionString, final boolean hollow + ) throws ExpressionException, MaxChangedBlocksException { - return makeShape(region, zero, unit, pattern, expressionString, hollow, WorldEdit.getInstance().getConfiguration().calculationTimeout); + return makeShape( + region, + zero, + unit, + pattern, + expressionString, + hollow, + WorldEdit.getInstance().getConfiguration().calculationTimeout + ); } /** * Generate a shape for the given expression. * - * @param region the region to generate the shape in - * @param zero the coordinate origin for x/y/z variables - * @param unit the scale of the x/y/z/ variables - * @param pattern the default material to make the shape from + * @param region the region to generate the shape in + * @param zero the coordinate origin for x/y/z variables + * @param unit the scale of the x/y/z/ variables + * @param pattern the default material to make the shape from * @param expressionString the expression defining the shape - * @param hollow whether the shape should be hollow - * @param timeout the time, in milliseconds, to wait for each expression evaluation before halting it. -1 to disable + * @param hollow whether the shape should be hollow + * @param timeout the time, in milliseconds, to wait for each expression evaluation before halting it. -1 to disable * @return number of blocks changed - * @throws ExpressionException if there is a problem with the expression + * @throws ExpressionException if there is a problem with the expression * @throws MaxChangedBlocksException if the maximum block change limit is exceeded */ - public int makeShape(final Region region, final Vector3 zero, final Vector3 unit, - final Pattern pattern, final String expressionString, final boolean hollow, final int timeout) + public int makeShape( + final Region region, final Vector3 zero, final Vector3 unit, + final Pattern pattern, final String expressionString, final boolean hollow, final int timeout + ) throws ExpressionException, MaxChangedBlocksException { final Expression expression = Expression.compile(expressionString, "x", "y", "z", "type", "data"); expression.optimize(); final Variable typeVariable = expression.getSlots().getVariable("type") - .orElseThrow(IllegalStateException::new); + .orElseThrow(IllegalStateException::new); final Variable dataVariable = expression.getSlots().getVariable("data") - .orElseThrow(IllegalStateException::new); + .orElseThrow(IllegalStateException::new); final WorldEditExpressionEnvironment environment = new WorldEditExpressionEnvironment(this, unit, zero); expression.setEnvironment(environment); @@ -2678,7 +2820,10 @@ public class EditSession extends PassthroughExtent implements AutoCloseable { dataVar = legacy[1]; } } - if (expression.evaluate(new double[]{scaled.getX(), scaled.getY(), scaled.getZ(), typeVar, dataVar}, timeout) <= 0) { + if (expression.evaluate( + new double[]{scaled.getX(), scaled.getY(), scaled.getZ(), typeVar, dataVar}, + timeout + ) <= 0) { return null; } int newType = (int) typeVariable.getValue(); @@ -2702,7 +2847,8 @@ public class EditSession extends PassthroughExtent implements AutoCloseable { if (timedOut[0] > 0) { throw new ExpressionTimeoutException( String.format("%d blocks changed. %d blocks took too long to evaluate (increase with //timeout).", - changed, timedOut[0])); + changed, timedOut[0] + )); } return changed; } @@ -2712,14 +2858,12 @@ public class EditSession extends PassthroughExtent implements AutoCloseable { * to an expression, and then sets the block to the block given by the resulting values of the variables, if they * have changed. * - * @param region the region to deform - * @param zero the origin of the coordinate system - * @param unit the scale of the coordinate system + * @param region the region to deform + * @param zero the origin of the coordinate system + * @param unit the scale of the coordinate system * @param expressionString the expression to evaluate for each block - * * @return number of blocks changed - * - * @throws ExpressionException thrown on invalid expression input + * @throws ExpressionException thrown on invalid expression input * @throws MaxChangedBlocksException thrown if too many blocks are changed */ public int deformRegion(final Region region, final Vector3 zero, final Vector3 unit, final String expressionString) @@ -2732,28 +2876,28 @@ public class EditSession extends PassthroughExtent implements AutoCloseable { * to an expression, and then sets the block to the block given by the resulting values of the variables, if they * have changed. * - * @param region the region to deform - * @param zero the origin of the coordinate system - * @param unit the scale of the coordinate system + * @param region the region to deform + * @param zero the origin of the coordinate system + * @param unit the scale of the coordinate system * @param expressionString the expression to evaluate for each block - * @param timeout maximum time for the expression to evaluate for each block. -1 for unlimited. - * + * @param timeout maximum time for the expression to evaluate for each block. -1 for unlimited. * @return number of blocks changed - * - * @throws ExpressionException thrown on invalid expression input + * @throws ExpressionException thrown on invalid expression input * @throws MaxChangedBlocksException thrown if too many blocks are changed */ - public int deformRegion(final Region region, final Vector3 zero, final Vector3 unit, final String expressionString, - final int timeout) throws ExpressionException, MaxChangedBlocksException { + public int deformRegion( + final Region region, final Vector3 zero, final Vector3 unit, final String expressionString, + final int timeout + ) throws ExpressionException, MaxChangedBlocksException { final Expression expression = Expression.compile(expressionString, "x", "y", "z"); expression.optimize(); final Variable x = expression.getSlots().getVariable("x") - .orElseThrow(IllegalStateException::new); + .orElseThrow(IllegalStateException::new); final Variable y = expression.getSlots().getVariable("y") - .orElseThrow(IllegalStateException::new); + .orElseThrow(IllegalStateException::new); final Variable z = expression.getSlots().getVariable("z") - .orElseThrow(IllegalStateException::new); + .orElseThrow(IllegalStateException::new); final WorldEditExpressionEnvironment environment = new WorldEditExpressionEnvironment(this, unit, zero); expression.setEnvironment(environment); @@ -2791,13 +2935,13 @@ public class EditSession extends PassthroughExtent implements AutoCloseable { } //FAWE start - respect Mask + /** * Hollows out the region (Semi-well-defined for non-cuboid selections). * - * @param region the region to hollow out. + * @param region the region to hollow out. * @param thickness the thickness of the shell to leave (manhattan distance) - * @param pattern The block pattern to use - * + * @param pattern The block pattern to use * @return number of blocks affected * @throws MaxChangedBlocksException thrown if too many blocks are changed */ @@ -2838,7 +2982,8 @@ public class EditSession extends PassthroughExtent implements AutoCloseable { for (int i = 1; i < thickness; ++i) { final Set newOutside = new LocalBlockVectorSet(); - outer: for (BlockVector3 position : region) { + outer: + for (BlockVector3 position : region) { for (BlockVector3 recurseDirection : recurseDirections) { BlockVector3 neighbor = position.add(recurseDirection); @@ -2852,7 +2997,8 @@ public class EditSession extends PassthroughExtent implements AutoCloseable { outside.addAll(newOutside); } - outer: for (BlockVector3 position : region) { + outer: + for (BlockVector3 position : region) { for (BlockVector3 recurseDirection : recurseDirections) { BlockVector3 neighbor = position.add(recurseDirection); @@ -2870,7 +3016,8 @@ public class EditSession extends PassthroughExtent implements AutoCloseable { } //FAWE end - public int drawLine(Pattern pattern, BlockVector3 pos1, BlockVector3 pos2, double radius, boolean filled) throws MaxChangedBlocksException { + public int drawLine(Pattern pattern, BlockVector3 pos1, BlockVector3 pos2, double radius, boolean filled) throws + MaxChangedBlocksException { return drawLine(pattern, pos1, pos2, radius, filled, false); } @@ -2878,18 +3025,16 @@ public class EditSession extends PassthroughExtent implements AutoCloseable { * Draws a line (out of blocks) between two vectors. * * @param pattern The block pattern used to draw the line. - * @param pos1 One of the points that define the line. - * @param pos2 The other point that defines the line. - * @param radius The radius (thickness) of the line. - * @param filled If false, only a shell will be generated. - * + * @param pos1 One of the points that define the line. + * @param pos2 The other point that defines the line. + * @param radius The radius (thickness) of the line. + * @param filled If false, only a shell will be generated. * @return number of blocks affected * @throws MaxChangedBlocksException thrown if too many blocks are changed - * * @see #drawLine(Pattern, List, double, boolean) */ public int drawLine(Pattern pattern, BlockVector3 pos1, BlockVector3 pos2, double radius, boolean filled, boolean flat) - throws MaxChangedBlocksException { + throws MaxChangedBlocksException { LocalBlockVectorSet vset = new LocalBlockVectorSet(); //FAWE start @@ -2970,9 +3115,8 @@ public class EditSession extends PassthroughExtent implements AutoCloseable { * * @param pattern The block pattern used to draw the line. * @param vectors the list of vectors to draw the line between - * @param radius The radius (thickness) of the line. - * @param filled If false, only a shell will be generated. - * + * @param radius The radius (thickness) of the line. + * @param filled If false, only a shell will be generated. * @return number of blocks affected * @throws MaxChangedBlocksException thrown if too many blocks are changed */ @@ -3041,20 +3185,21 @@ public class EditSession extends PassthroughExtent implements AutoCloseable { /** * Draws a spline (out of blocks) between specified vectors. * - * @param pattern The block pattern used to draw the spline. + * @param pattern The block pattern used to draw the spline. * @param nodevectors The list of vectors to draw through. - * @param tension The tension of every node. - * @param bias The bias of every node. - * @param continuity The continuity of every node. - * @param quality The quality of the spline. Must be greater than 0. - * @param radius The radius (thickness) of the spline. - * @param filled If false, only a shell will be generated. - * + * @param tension The tension of every node. + * @param bias The bias of every node. + * @param continuity The continuity of every node. + * @param quality The quality of the spline. Must be greater than 0. + * @param radius The radius (thickness) of the spline. + * @param filled If false, only a shell will be generated. * @return number of blocks affected * @throws MaxChangedBlocksException thrown if too many blocks are changed */ - public int drawSpline(Pattern pattern, List nodevectors, double tension, double bias, - double continuity, double quality, double radius, boolean filled) + public int drawSpline( + Pattern pattern, List nodevectors, double tension, double bias, + double continuity, double quality, double radius, boolean filled + ) throws MaxChangedBlocksException { LocalBlockVectorSet vset = new LocalBlockVectorSet(); @@ -3148,9 +3293,9 @@ public class EditSession extends PassthroughExtent implements AutoCloseable { final int y = v.getY(); final int z = v.getZ(); if (!(newset.contains(x + 1, y, z) - && newset.contains(x - 1, y, z) - && newset.contains(x, y, z + 1) - && newset.contains(x, y, z - 1))) { + && newset.contains(x - 1, y, z) + && newset.contains(x, y, z + 1) + && newset.contains(x, y, z - 1))) { returnset.add(v); } } @@ -3167,11 +3312,11 @@ public class EditSession extends PassthroughExtent implements AutoCloseable { final int y = v.getY(); final int z = v.getZ(); if (!(newset.contains(x + 1, y, z) - && newset.contains(x - 1, y, z) - && newset.contains(x, y + 1, z) - && newset.contains(x, y - 1, z) - && newset.contains(x, y, z + 1) - && newset.contains(x, y, z - 1))) { + && newset.contains(x - 1, y, z) + && newset.contains(x, y + 1, z) + && newset.contains(x, y - 1, z) + && newset.contains(x, y, z + 1) + && newset.contains(x, y, z - 1))) { returnset.add(v); } } @@ -3204,13 +3349,25 @@ public class EditSession extends PassthroughExtent implements AutoCloseable { } } - public int makeBiomeShape(final Region region, final Vector3 zero, final Vector3 unit, final BiomeType biomeType, - final String expressionString, final boolean hollow) throws ExpressionException { - return makeBiomeShape(region, zero, unit, biomeType, expressionString, hollow, WorldEdit.getInstance().getConfiguration().calculationTimeout); + public int makeBiomeShape( + final Region region, final Vector3 zero, final Vector3 unit, final BiomeType biomeType, + final String expressionString, final boolean hollow + ) throws ExpressionException { + return makeBiomeShape( + region, + zero, + unit, + biomeType, + expressionString, + hollow, + WorldEdit.getInstance().getConfiguration().calculationTimeout + ); } - public int makeBiomeShape(final Region region, final Vector3 zero, final Vector3 unit, final BiomeType biomeType, - final String expressionString, final boolean hollow, final int timeout) throws ExpressionException { + public int makeBiomeShape( + final Region region, final Vector3 zero, final Vector3 unit, final BiomeType biomeType, + final String expressionString, final boolean hollow, final int timeout + ) throws ExpressionException { final Expression expression = Expression.compile(expressionString, "x", "y", "z"); expression.optimize(); @@ -3248,7 +3405,8 @@ public class EditSession extends PassthroughExtent implements AutoCloseable { if (timedOut.get() > 0) { throw new ExpressionTimeoutException( String.format("%d biomes changed. %d biomes took too long to evaluate (increase time with //timeout)", - changed, timedOut.get())); + changed, timedOut.get() + )); } return changed; } @@ -3290,7 +3448,11 @@ public class EditSession extends PassthroughExtent implements AutoCloseable { if (fe != null && cuboid) { BlockVector3 max = region.getMaximumPoint(); BlockVector3 min = region.getMinimumPoint(); - if (!fe.contains(max.getBlockX(), max.getBlockY(), max.getBlockZ()) && !fe.contains(min.getBlockX(), min.getBlockY(), min.getBlockZ())) { + if (!fe.contains(max.getBlockX(), max.getBlockY(), max.getBlockZ()) && !fe.contains( + min.getBlockX(), + min.getBlockY(), + min.getBlockZ() + )) { throw FaweCache.OUTSIDE_REGION; } } @@ -3305,10 +3467,10 @@ public class EditSession extends PassthroughExtent implements AutoCloseable { final BlockVector3 cmin = BlockVector3.at(bx, 0, bz); final BlockVector3 cmax = cmin.add(15, maxY, 15); final boolean containsBot1 = - fe == null || fe.contains(cmin.getBlockX(), cmin.getBlockY(), cmin.getBlockZ()); + fe == null || fe.contains(cmin.getBlockX(), cmin.getBlockY(), cmin.getBlockZ()); final boolean containsBot2 = region.contains(cmin); final boolean containsTop1 = - fe == null || fe.contains(cmax.getBlockX(), cmax.getBlockY(), cmax.getBlockZ()); + fe == null || fe.contains(cmax.getBlockX(), cmax.getBlockY(), cmax.getBlockZ()); final boolean containsTop2 = region.contains(cmax); if (containsBot2 && containsTop2 && !containsBot1 && !containsTop1) { continue; @@ -3420,12 +3582,14 @@ public class EditSession extends PassthroughExtent implements AutoCloseable { } @Override - public void addSchems(Region region, Mask mask, List clipboards, int rarity, boolean rotate) throws WorldEditException { + public void addSchems(Region region, Mask mask, List clipboards, int rarity, boolean rotate) throws + WorldEditException { spawnResource(region, new SchemGen(mask, this, clipboards, rotate), rarity, 1); } @Override - public void addOre(Region region, Mask mask, Pattern material, int size, int frequency, int rarity, int minY, int maxY) throws WorldEditException { + public void addOre(Region region, Mask mask, Pattern material, int size, int frequency, int rarity, int minY, int maxY) throws + WorldEditException { spawnResource(region, new OreGen(this, mask, material, size, minY, maxY), rarity, frequency); } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/EditSessionFactory.java b/worldedit-core/src/main/java/com/sk89q/worldedit/EditSessionFactory.java index f237ca6f6..cfe05cf5d 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/EditSessionFactory.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/EditSessionFactory.java @@ -40,7 +40,7 @@ public class EditSessionFactory { /** * Construct an edit session with a maximum number of blocks. * - * @param world the world + * @param world the world * @param maxBlocks the maximum number of blocks that can be changed, or -1 to use no limit * @return an instance */ @@ -63,9 +63,9 @@ public class EditSessionFactory { /** * Construct an edit session with a maximum number of blocks. * - * @param world the world + * @param world the world * @param maxBlocks the maximum number of blocks that can be changed, or -1 to use no limit - * @param actor the actor that the {@link EditSession} is for + * @param actor the actor that the {@link EditSession} is for * @return an instance */ public EditSession getEditSession(World world, int maxBlocks, Actor actor) { @@ -87,9 +87,9 @@ public class EditSessionFactory { /** * Construct an edit session with a maximum number of blocks and a block bag. * - * @param world the world + * @param world the world * @param maxBlocks the maximum number of blocks that can be changed, or -1 to use no limit - * @param blockBag an optional {@link BlockBag} to use, otherwise null + * @param blockBag an optional {@link BlockBag} to use, otherwise null * @return an instance */ public EditSession getEditSession(World world, int maxBlocks, BlockBag blockBag) { @@ -111,10 +111,10 @@ public class EditSessionFactory { /** * Construct an edit session with a maximum number of blocks and a block bag. * - * @param world the world + * @param world the world * @param maxBlocks the maximum number of blocks that can be changed, or -1 to use no limit - * @param blockBag an optional {@link BlockBag} to use, otherwise null - * @param actor the actor that the {@link EditSession} is for + * @param blockBag an optional {@link BlockBag} to use, otherwise null + * @param actor the actor that the {@link EditSession} is for * @return an instance */ public EditSession getEditSession(World world, int maxBlocks, BlockBag blockBag, Actor actor) { @@ -168,10 +168,17 @@ public class EditSessionFactory { @Override public EditSession getEditSession(World world, int maxBlocks, BlockBag blockBag, Actor actor) { if (WorldEdit.getInstance().getConfiguration().traceUnflushedSessions) { - return new TracedEditSession(eventBus, world, maxBlocks, blockBag, new EditSessionEvent(world, actor, maxBlocks, null)); + return new TracedEditSession( + eventBus, + world, + maxBlocks, + blockBag, + new EditSessionEvent(world, actor, maxBlocks, null) + ); } return new EditSession(eventBus, world, maxBlocks, blockBag, new EditSessionEvent(world, actor, maxBlocks, null)); } } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/LocalConfiguration.java b/worldedit-core/src/main/java/com/sk89q/worldedit/LocalConfiguration.java index 41b96be64..e2dba673b 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/LocalConfiguration.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/LocalConfiguration.java @@ -19,11 +19,11 @@ package com.sk89q.worldedit; +import com.fastasyncworldedit.core.function.mask.BlockMaskBuilder; import com.google.common.collect.Lists; import com.sk89q.worldedit.extension.input.InputParseException; import com.sk89q.worldedit.extent.NullExtent; import com.sk89q.worldedit.function.mask.BlockMask; -import com.fastasyncworldedit.core.function.mask.BlockMaskBuilder; import com.sk89q.worldedit.internal.util.LogManagerCompat; import com.sk89q.worldedit.util.formatting.component.TextUtils; import com.sk89q.worldedit.util.io.file.ArchiveNioSupports; @@ -220,8 +220,8 @@ public abstract class LocalConfiguration { if (experimental) { try { snapshotDatabase = FileSystemSnapshotDatabase.maybeCreate( - Paths.get(directory), - ArchiveNioSupports.combined() + Paths.get(directory), + ArchiveNioSupports.combined() ); snapshotsConfigured = true; } catch (IOException e) { @@ -261,4 +261,5 @@ public abstract class LocalConfiguration { this.defaultLocale = TextUtils.getLocaleByMinecraftTag(localeName); } } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/LocalSession.java b/worldedit-core/src/main/java/com/sk89q/worldedit/LocalSession.java index 8cc0bc0a7..510fe90dc 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/LocalSession.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/LocalSession.java @@ -22,12 +22,12 @@ package com.sk89q.worldedit; import com.fastasyncworldedit.core.Fawe; import com.fastasyncworldedit.core.configuration.Caption; import com.fastasyncworldedit.core.configuration.Settings; -import com.fastasyncworldedit.core.internal.io.FaweInputStream; -import com.fastasyncworldedit.core.object.FaweLimit; -import com.fastasyncworldedit.core.internal.io.FaweOutputStream; -import com.fastasyncworldedit.core.history.DiskStorageHistory; -import com.fastasyncworldedit.core.extent.clipboard.MultiClipboardHolder; import com.fastasyncworldedit.core.extent.ResettableExtent; +import com.fastasyncworldedit.core.extent.clipboard.MultiClipboardHolder; +import com.fastasyncworldedit.core.history.DiskStorageHistory; +import com.fastasyncworldedit.core.internal.io.FaweInputStream; +import com.fastasyncworldedit.core.internal.io.FaweOutputStream; +import com.fastasyncworldedit.core.object.FaweLimit; import com.fastasyncworldedit.core.util.BrushCache; import com.fastasyncworldedit.core.util.EditSessionBuilder; import com.fastasyncworldedit.core.util.MainUtil; @@ -79,6 +79,8 @@ import com.sk89q.worldedit.world.snapshot.experimental.Snapshot; import com.zaxxer.sparsebits.SparseBitSet; import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap; +import javax.annotation.Nonnull; +import javax.annotation.Nullable; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; @@ -96,8 +98,6 @@ import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; import java.util.stream.Collectors; -import javax.annotation.Nonnull; -import javax.annotation.Nullable; import static com.google.common.base.Preconditions.checkNotNull; @@ -163,7 +163,7 @@ public class LocalSession implements TextureHolder { private transient BlockVector3 cuiTemporaryBlock; @SuppressWarnings("unused") - private transient EditSession.ReorderMode reorderMode = EditSession.ReorderMode.MULTI_STAGE; + private final transient EditSession.ReorderMode reorderMode = EditSession.ReorderMode.MULTI_STAGE; private transient List> lastDistribution; private transient World worldOverride; private transient boolean tickingWatchdog = false; @@ -240,7 +240,10 @@ public class LocalSession implements TextureHolder { private boolean loadHistoryChangeSets(UUID uuid, World world) { SparseBitSet set = new SparseBitSet(); - final File folder = MainUtil.getFile(Fawe.imp().getDirectory(), Settings.IMP.PATHS.HISTORY + File.separator + world.getName() + File.separator + uuid); + final File folder = MainUtil.getFile( + Fawe.imp().getDirectory(), + Settings.IMP.PATHS.HISTORY + File.separator + world.getName() + File.separator + uuid + ); if (folder.isDirectory()) { folder.listFiles(pathname -> { String name = pathname.getName(); @@ -275,7 +278,10 @@ public class LocalSession implements TextureHolder { if (!Settings.IMP.HISTORY.USE_DISK) { return; } - File file = MainUtil.getFile(Fawe.imp().getDirectory(), Settings.IMP.PATHS.HISTORY + File.separator + world.getName() + File.separator + uuid + File.separator + "index"); + File file = MainUtil.getFile( + Fawe.imp().getDirectory(), + Settings.IMP.PATHS.HISTORY + File.separator + world.getName() + File.separator + uuid + File.separator + "index" + ); if (file.exists()) { try (FaweInputStream is = new FaweInputStream(new FileInputStream(file))) { historyNegativeIndex = Math.min(Math.max(0, is.readInt()), history.size()); @@ -291,7 +297,10 @@ public class LocalSession implements TextureHolder { if (world == null || !Settings.IMP.HISTORY.USE_DISK) { return; } - File file = MainUtil.getFile(Fawe.imp().getDirectory(), Settings.IMP.PATHS.HISTORY + File.separator + world.getName() + File.separator + uuid + File.separator + "index"); + File file = MainUtil.getFile( + Fawe.imp().getDirectory(), + Settings.IMP.PATHS.HISTORY + File.separator + world.getName() + File.separator + uuid + File.separator + "index" + ); if (getHistoryNegativeIndex() != 0) { try { if (!file.exists()) { @@ -345,10 +354,7 @@ public class LocalSession implements TextureHolder { if (defaultSelector == RegionSelectorType.CUBOID) { defaultSelector = null; } - if (lastScript != null || defaultSelector != null) { - return true; - } - return false; + return lastScript != null || defaultSelector != null; } //FAWE end @@ -425,7 +431,10 @@ public class LocalSession implements TextureHolder { return cs; } if (o instanceof Integer) { - File folder = MainUtil.getFile(Fawe.imp().getDirectory(), Settings.IMP.PATHS.HISTORY + File.separator + currentWorld.getName() + File.separator + uuid); + File folder = MainUtil.getFile( + Fawe.imp().getDirectory(), + Settings.IMP.PATHS.HISTORY + File.separator + currentWorld.getName() + File.separator + uuid + ); File specific = new File(folder, o.toString()); if (specific.isDirectory()) { // TODO NOT IMPLEMENTED @@ -473,7 +482,8 @@ public class LocalSession implements TextureHolder { } if (limit != null) { int limitMb = limit.MAX_HISTORY; - while (((!Settings.IMP.HISTORY.USE_DISK && history.size() > MAX_HISTORY_SIZE) || (historySize >> 20) > limitMb) && history.size() > 1) { + while (((!Settings.IMP.HISTORY.USE_DISK && history.size() > MAX_HISTORY_SIZE) || (historySize >> 20) > limitMb) && history + .size() > 1) { ChangeSet item = (ChangeSet) history.remove(0); item.delete(); long size = MainUtil.getSize(item); @@ -536,7 +546,8 @@ public class LocalSession implements TextureHolder { } else { history.add(0, changeSet); } - while (((!Settings.IMP.HISTORY.USE_DISK && history.size() > MAX_HISTORY_SIZE) || (historySize >> 20) > limitMb) && history.size() > 1) { + while (((!Settings.IMP.HISTORY.USE_DISK && history.size() > MAX_HISTORY_SIZE) || (historySize >> 20) > limitMb) && history + .size() > 1) { ChangeSet item = (ChangeSet) history.remove(0); item.delete(); long size = MainUtil.getSize(item); @@ -552,7 +563,7 @@ public class LocalSession implements TextureHolder { * Performs an undo. * * @param newBlockBag a new block bag - * @param actor the actor + * @param actor the actor * @return whether anything was undone */ public EditSession undo(@Nullable BlockBag newBlockBag, Actor actor) { @@ -563,12 +574,12 @@ public class LocalSession implements TextureHolder { if (getHistoryNegativeIndex() < history.size()) { ChangeSet changeSet = getChangeSet(history.get(getHistoryIndex())); EditSessionBuilder builder = new EditSessionBuilder(world) - .checkMemory(false) - .changeSetNull() - .fastmode(false) - .limitUnprocessed((Player)actor) - .player((Player)actor) - .blockBag(getBlockBag((Player)actor)); + .checkMemory(false) + .changeSetNull() + .fastmode(false) + .limitUnprocessed((Player) actor) + .player((Player) actor) + .blockBag(getBlockBag((Player) actor)); if (!actor.getLimit().RESTRICT_HISTORY_TO_REGIONS) { builder.allowedRegionsEverywhere(); } @@ -593,7 +604,7 @@ public class LocalSession implements TextureHolder { * Performs a redo * * @param newBlockBag a new block bag - * @param actor the actor + * @param actor the actor * @return whether anything was redone */ //FAWE start - use our logic @@ -610,9 +621,9 @@ public class LocalSession implements TextureHolder { .checkMemory(false) .changeSetNull() .fastmode(false) - .limitUnprocessed((Player)actor) - .player((Player)actor) - .blockBag(getBlockBag((Player)actor)) + .limitUnprocessed((Player) actor) + .player((Player) actor) + .blockBag(getBlockBag((Player) actor)) .build()) { newEditSession.setBlocks(changeSet, ChangeSetExecutor.Type.REDO); return newEditSession; @@ -686,7 +697,7 @@ public class LocalSession implements TextureHolder { /** * Set the region selector. * - * @param world the world + * @param world the world * @param selector the selector */ public void setRegionSelector(World world, RegionSelector selector) { @@ -779,7 +790,7 @@ public class LocalSession implements TextureHolder { if (clipboard == null) { throw new EmptyClipboardException(); } - //FAWE end + //FAWE end return clipboard; } } @@ -804,7 +815,7 @@ public class LocalSession implements TextureHolder { for (ClipboardHolder holder : toAppend.getHolders()) { multi.add(holder); } - } else { + } else { multi = toAppend; if (existing != null) { multi.add(existing); @@ -974,7 +985,7 @@ public class LocalSession implements TextureHolder { checkNotNull(player); //FAWE start - inventory mode if (!useInventory && player.getLimit().INVENTORY_MODE == 0) { - //FAWE end + //FAWE end return null; } return player.getInventoryBlockBag(); @@ -1098,15 +1109,16 @@ public class LocalSession implements TextureHolder { //FAWE end //FAWE start - see deprecation note + /** * Get the brush tool assigned to the item. If there is no tool assigned * or the tool is not assigned, the slot will be replaced with the * brush tool. * - * @deprecated FAWE binds to the item, not the type - this allows brushes to persist * @param item the item type * @return the tool, or {@code null} * @throws InvalidToolBindException if the item can't be bound to that item + * @deprecated FAWE binds to the item, not the type - this allows brushes to persist */ @Deprecated public BrushTool getBrushTool(ItemType item) throws InvalidToolBindException { @@ -1141,6 +1153,7 @@ public class LocalSession implements TextureHolder { //FAWE end //FAWE start - see note of getBrushTool + /** * Set the tool. * @@ -1309,12 +1322,12 @@ public class LocalSession implements TextureHolder { BaseBlock block = ServerCUIHandler.createStructureBlock(player); if (block != null) { CompoundBinaryTag tags = Objects.requireNonNull( - block.getNbt(), "createStructureBlock should return nbt" + block.getNbt(), "createStructureBlock should return nbt" ); BlockVector3 tempCuiTemporaryBlock = BlockVector3.at( - tags.getInt("x"), - tags.getInt("y"), - tags.getInt("z") + tags.getInt("x"), + tags.getInt("y"), + tags.getInt("z") ); // If it's null, we don't need to do anything. The old was already removed. if (cuiTemporaryBlock != null && !tempCuiTemporaryBlock.equals(cuiTemporaryBlock)) { @@ -1432,7 +1445,7 @@ public class LocalSession implements TextureHolder { String[] split = text.split("\\|", 2); if (split.length > 1 && split[0].equalsIgnoreCase("v")) { // enough fields and right message if (split[1].length() > 4) { - this.failedCuiAttempts ++; + this.failedCuiAttempts++; return; } @@ -1441,7 +1454,7 @@ public class LocalSession implements TextureHolder { version = Integer.parseInt(split[1]); } catch (NumberFormatException e) { WorldEdit.logger.warn("Error while reading CUI init message: " + e.getMessage()); - this.failedCuiAttempts ++; + this.failedCuiAttempts++; return; } setCUISupport(true); @@ -1635,6 +1648,7 @@ public class LocalSession implements TextureHolder { } //FAWE start + /** * Get the mask. * @@ -1655,6 +1669,7 @@ public class LocalSession implements TextureHolder { } //FAWE start + /** * Set a mask. * @@ -1686,6 +1701,7 @@ public class LocalSession implements TextureHolder { /** * Get the preferred wand item for this user, or {@code null} to use the default + * * @return item id of wand item, or {@code null} */ public String getWandItem() { @@ -1694,6 +1710,7 @@ public class LocalSession implements TextureHolder { /** * Get the preferred navigation wand item for this user, or {@code null} to use the default + * * @return item id of nav wand item, or {@code null} */ public String getNavWandItem() { @@ -1735,4 +1752,5 @@ public class LocalSession implements TextureHolder { this.hasCUISupport = false; this.failedCuiAttempts = 0; } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/MissingWorldException.java b/worldedit-core/src/main/java/com/sk89q/worldedit/MissingWorldException.java index 35b718377..6e00f4dfb 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/MissingWorldException.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/MissingWorldException.java @@ -29,4 +29,5 @@ public class MissingWorldException extends WorldEditException { public MissingWorldException() { super(Caption.of("worldedit.error.missing-world")); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/NotABlockException.java b/worldedit-core/src/main/java/com/sk89q/worldedit/NotABlockException.java index 35c1167e9..cc0d9d36e 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/NotABlockException.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/NotABlockException.java @@ -63,4 +63,5 @@ public class NotABlockException extends WorldEditException { public NotABlockException(ItemType input) { super(Caption.of("worldedit.error.not-a-block.item", input.getRichName())); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/TracedEditSession.java b/worldedit-core/src/main/java/com/sk89q/worldedit/TracedEditSession.java index 256504cd3..d4dfb2d70 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/TracedEditSession.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/TracedEditSession.java @@ -45,4 +45,5 @@ class TracedEditSession extends EditSession { WorldEdit.logger.warn("Here is a stacktrace from the creation of this EditSession:", stacktrace); } } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/WorldEdit.java b/worldedit-core/src/main/java/com/sk89q/worldedit/WorldEdit.java index c87d35a15..17438b82c 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/WorldEdit.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/WorldEdit.java @@ -73,6 +73,8 @@ import com.sk89q.worldedit.world.registry.BundledItemData; import com.sk89q.worldedit.world.registry.LegacyMapper; import org.apache.logging.log4j.Logger; +import javax.annotation.Nullable; +import javax.script.ScriptException; import java.io.DataInputStream; import java.io.File; import java.io.FileInputStream; @@ -86,8 +88,6 @@ import java.util.Iterator; import java.util.List; import java.util.Locale; import java.util.Map; -import javax.annotation.Nullable; -import javax.script.ScriptException; import static com.google.common.base.Preconditions.checkArgument; import static com.sk89q.worldedit.event.platform.Interaction.HIT; @@ -120,7 +120,12 @@ public final class WorldEdit { private final PlatformManager platformManager = new PlatformManager(this); private final EditSessionFactory editSessionFactory = new EditSessionFactory.EditSessionFactoryImpl(eventBus); private final SessionManager sessions = new SessionManager(this); - private final ListeningExecutorService executorService = MoreExecutors.listeningDecorator(EvenMoreExecutors.newBoundedCachedThreadPool(0, 1, 20, "WorldEdit Task Executor - %s")); + private final ListeningExecutorService executorService = MoreExecutors.listeningDecorator(EvenMoreExecutors.newBoundedCachedThreadPool( + 0, + 1, + 20, + "WorldEdit Task Executor - %s" + )); private final Supervisor supervisor = new SimpleSupervisor(); //FAWE start private final LazyReference translationManager = @@ -259,15 +264,16 @@ public final class WorldEdit { * traversal exploits by checking the root directory and the file directory. * On success, a {@code java.io.File} object will be returned. * - * @param actor the actor - * @param dir sub-directory to look in - * @param filename filename (user-submitted) + * @param actor the actor + * @param dir sub-directory to look in + * @param filename filename (user-submitted) * @param defaultExt append an extension if missing one, null to not use * @param extensions list of extensions, null for any * @return a file * @throws FilenameException thrown if the filename is invalid */ - public File getSafeSaveFile(Actor actor, File dir, String filename, String defaultExt, String... extensions) throws FilenameException { + public File getSafeSaveFile(Actor actor, File dir, String filename, String defaultExt, String... extensions) throws + FilenameException { return getSafeFile(actor, dir, filename, defaultExt, extensions, true); } @@ -277,31 +283,39 @@ public final class WorldEdit { * traversal exploits by checking the root directory and the file directory. * On success, a {@code java.io.File} object will be returned. * - * @param actor the actor - * @param dir sub-directory to look in - * @param filename filename (user-submitted) + * @param actor the actor + * @param dir sub-directory to look in + * @param filename filename (user-submitted) * @param defaultExt append an extension if missing one, null to not use * @param extensions list of extensions, null for any * @return a file * @throws FilenameException thrown if the filename is invalid */ - public File getSafeOpenFile(Actor actor, File dir, String filename, String defaultExt, String... extensions) throws FilenameException { + public File getSafeOpenFile(Actor actor, File dir, String filename, String defaultExt, String... extensions) throws + FilenameException { return getSafeFile(actor, dir, filename, defaultExt, extensions, false); } /** * Get a safe path to a file. * - * @param actor the actor - * @param dir sub-directory to look in - * @param filename filename (user-submitted) + * @param actor the actor + * @param dir sub-directory to look in + * @param filename filename (user-submitted) * @param defaultExt append an extension if missing one, null to not use * @param extensions list of extensions, null for any - * @param isSave true if the purpose is for saving + * @param isSave true if the purpose is for saving * @return a file * @throws FilenameException thrown if the filename is invalid */ - private File getSafeFile(@Nullable Actor actor, File dir, String filename, String defaultExt, String[] extensions, boolean isSave) throws FilenameException { + private File getSafeFile( + @Nullable Actor actor, + File dir, + String filename, + String defaultExt, + String[] extensions, + boolean isSave + ) throws FilenameException { if (extensions != null && (extensions.length == 1 && extensions[0] == null)) { extensions = null; } @@ -344,7 +358,8 @@ public final class WorldEdit { } } - private File getSafeFileWithExtensions(File dir, String filename, List exts, boolean isSave) throws InvalidFilenameException { + private File getSafeFileWithExtensions(File dir, String filename, List exts, boolean isSave) throws + InvalidFilenameException { if (isSave) { // First is default, only use that. if (exts.size() != 1) { @@ -363,7 +378,7 @@ public final class WorldEdit { } } File result = null; - for (Iterator iter = exts.iterator(); iter.hasNext() && (result == null || (!isSave && !result.exists()));) { + for (Iterator iter = exts.iterator(); iter.hasNext() && (result == null || (!isSave && !result.exists())); ) { result = getSafeFileWithExtension(dir, filename, iter.next()); } if (result == null) { @@ -466,6 +481,7 @@ public final class WorldEdit { } //FAWE start + /** * Gets the path to the folder in which schematics are saved by default * @@ -521,7 +537,7 @@ public final class WorldEdit { static { SetMultimap directionNames = HashMultimap.create(); for (Direction direction : Direction.valuesOf( - Direction.Flag.CARDINAL | Direction.Flag.UPRIGHT + Direction.Flag.CARDINAL | Direction.Flag.UPRIGHT )) { String name = direction.name().toLowerCase(Locale.ROOT); for (int i = 1; i <= name.length(); i++) { @@ -531,7 +547,7 @@ public final class WorldEdit { ImmutableMap.Builder nameToDirectionMap = ImmutableMap.builder(); for (Direction direction : directionNames.keySet()) { directionNames.get(direction).forEach(name -> - nameToDirectionMap.put(name, direction) + nameToDirectionMap.put(name, direction) ); } for (Direction direction : ImmutableList.of(Direction.NORTH, Direction.SOUTH)) { @@ -539,7 +555,7 @@ public final class WorldEdit { for (String dirName : directionNames.get(direction)) { for (String diagName : directionNames.get(diagonal)) { nameToDirectionMap.put(dirName + diagName, Direction.valueOf( - direction.name() + diagonal.name() + direction.name() + diagonal.name() )); } } @@ -595,7 +611,7 @@ public final class WorldEdit { /** * Flush a block bag's changes to a player. * - * @param actor the actor + * @param actor the actor * @param editSession the edit session */ public void flushBlockBag(Actor actor, EditSession editSession) { @@ -617,8 +633,8 @@ public final class WorldEdit { str.append((blockTypeIntegerEntry.getKey()).getRichName()); str.append(" [Amt: ") - .append(String.valueOf(blockTypeIntegerEntry.getValue())) - .append("]"); + .append(String.valueOf(blockTypeIntegerEntry.getValue())) + .append("]"); ++i; @@ -658,7 +674,7 @@ public final class WorldEdit { /** * Called on right click. * - * @param player the player + * @param player the player * @param clicked the clicked block * @return false if you want the action to go through */ @@ -670,9 +686,9 @@ public final class WorldEdit { /** * Called on right click. * - * @param player the player + * @param player the player * @param clicked the clicked block - * @param face The clicked face + * @param face The clicked face * @return false if you want the action to go through */ public boolean handleBlockRightClick(Player player, Location clicked, @Nullable Direction face) { @@ -684,7 +700,7 @@ public final class WorldEdit { /** * Called on left click. * - * @param player the player + * @param player the player * @param clicked the clicked block * @return false if you want the action to go through */ @@ -696,9 +712,9 @@ public final class WorldEdit { /** * Called on left click. * - * @param player the player + * @param player the player * @param clicked the clicked block - * @param face The clicked face + * @param face The clicked face * @return false if you want the action to go through */ public boolean handleBlockLeftClick(Player player, Location clicked, @Nullable Direction face) { @@ -711,8 +727,8 @@ public final class WorldEdit { * Executes a WorldEdit script. * * @param player the player - * @param f the script file to execute - * @param args arguments for the script + * @param f the script file to execute + * @param args arguments for the script * @throws WorldEditException if something goes wrong */ public void runScript(Player player, File f, String[] args) throws WorldEditException { @@ -752,8 +768,14 @@ public final class WorldEdit { } LocalSession session = getSessionManager().get(player); - CraftScriptContext scriptContext = new CraftScriptContext(this, getPlatformManager().queryCapability(Capability.USER_COMMANDS), - getConfiguration(), session, player, args); + CraftScriptContext scriptContext = new CraftScriptContext( + this, + getPlatformManager().queryCapability(Capability.USER_COMMANDS), + getConfiguration(), + session, + player, + args + ); CraftScriptEngine engine; diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/WorldEditException.java b/worldedit-core/src/main/java/com/sk89q/worldedit/WorldEditException.java index e21b72515..8e30d4ea9 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/WorldEditException.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/WorldEditException.java @@ -69,7 +69,7 @@ public abstract class WorldEditException extends RuntimeException { * Create a new exception with a message and a cause. * * @param message the message - * @param cause the cause + * @param cause the cause * @deprecated Use component version */ @Deprecated @@ -83,7 +83,7 @@ public abstract class WorldEditException extends RuntimeException { * Create a new exception with a message and a cause. * * @param message the message - * @param cause the cause + * @param cause the cause */ protected WorldEditException(Component message, Throwable cause) { super(WorldEditText.reduceToText(message, Locale.getDefault()), cause); @@ -110,4 +110,5 @@ public abstract class WorldEditException extends RuntimeException { public Component getRichMessage() { return this.message; } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/WorldEditManifest.java b/worldedit-core/src/main/java/com/sk89q/worldedit/WorldEditManifest.java index 860966e8b..9ce5c24f0 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/WorldEditManifest.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/WorldEditManifest.java @@ -19,6 +19,7 @@ package com.sk89q.worldedit; +import javax.annotation.Nullable; import java.io.IOException; import java.io.UncheckedIOException; import java.net.JarURLConnection; @@ -26,7 +27,6 @@ import java.net.URL; import java.util.function.Supplier; import java.util.jar.Attributes; import java.util.jar.Manifest; -import javax.annotation.Nullable; /** * Represents WorldEdit info from the MANIFEST.MF file. @@ -58,7 +58,7 @@ public class WorldEditManifest { kind = Kind.UNKNOWN; } return new WorldEditManifest( - readAttribute(attributes, WORLD_EDIT_VERSION, () -> "(unknown)"), + readAttribute(attributes, WORLD_EDIT_VERSION, () -> "(unknown)"), kind ); } @@ -82,8 +82,10 @@ public class WorldEditManifest { } } - private static String readAttribute(@Nullable Attributes attributes, String name, - Supplier defaultAction) { + private static String readAttribute( + @Nullable Attributes attributes, String name, + Supplier defaultAction + ) { if (attributes == null) { return defaultAction.get(); } @@ -106,4 +108,5 @@ public class WorldEditManifest { public Kind getWorldEditKind() { return worldEditKind; } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/blocks/BaseItem.java b/worldedit-core/src/main/java/com/sk89q/worldedit/blocks/BaseItem.java index dfaa5a117..1dab627c7 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/blocks/BaseItem.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/blocks/BaseItem.java @@ -27,8 +27,8 @@ import com.sk89q.worldedit.util.nbt.TagStringIO; import com.sk89q.worldedit.world.NbtValued; import com.sk89q.worldedit.world.item.ItemType; -import java.io.IOException; import javax.annotation.Nullable; +import java.io.IOException; import static com.google.common.base.Preconditions.checkNotNull; @@ -75,11 +75,12 @@ public class BaseItem implements NbtValued { } //FAWE start + /** * Construct the object. * * @param itemType Type of the item - * @param nbtData NBT Compound tag + * @param nbtData NBT Compound tag */ @Deprecated public BaseItem(ItemType itemType, @Nullable CompoundTag nbtData) { @@ -90,7 +91,7 @@ public class BaseItem implements NbtValued { * Construct the object. * * @param itemType Type of the item - * @param tag NBT Compound tag + * @param tag NBT Compound tag */ public BaseItem(ItemType itemType, @Nullable LazyReference tag) { checkNotNull(itemType); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/blocks/BaseItemStack.java b/worldedit-core/src/main/java/com/sk89q/worldedit/blocks/BaseItemStack.java index fd835d6a9..07a9aa147 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/blocks/BaseItemStack.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/blocks/BaseItemStack.java @@ -49,7 +49,7 @@ public class BaseItemStack extends BaseItem { * Construct the object. * * @param itemType The item type - * @param amount amount in the stack + * @param amount amount in the stack */ public BaseItemStack(ItemType itemType, int amount) { super(itemType); @@ -59,8 +59,8 @@ public class BaseItemStack extends BaseItem { /** * Construct the object. * - * @param id The item type - * @param tag Tag value + * @param id The item type + * @param tag Tag value * @param amount amount in the stack * @deprecated Use {@link #BaseItemStack(ItemType, LazyReference, int)} */ @@ -90,15 +90,16 @@ public class BaseItemStack extends BaseItem { public Component getRichName() { return WorldEdit.getInstance().getPlatformManager().queryCapability(Capability.GAME_HOOKS) - .getRegistries().getItemRegistry().getRichName(this); + .getRegistries().getItemRegistry().getRichName(this); } //FAWE start + /** * Construct the object. * - * @param id The item type - * @param tag Tag value + * @param id The item type + * @param tag Tag value * @param amount amount in the stack */ public BaseItemStack(ItemType id, LazyReference tag, int amount) { diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/blocks/Blocks.java b/worldedit-core/src/main/java/com/sk89q/worldedit/blocks/Blocks.java index 87b8b5216..17c04d54f 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/blocks/Blocks.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/blocks/Blocks.java @@ -39,10 +39,13 @@ public final class Blocks { * Checks whether a given block is in a list of base blocks. * * @param collection the collection - * @param o the block + * @param o the block * @return true if the collection contains the given block */ - public static > boolean containsFuzzy(Collection> collection, B o) { + public static > boolean containsFuzzy( + Collection> collection, + B o + ) { // Allow masked data in the searchBlocks to match various types for (BlockStateHolder b : collection) { if (b.equalsFuzzy(o)) { @@ -56,7 +59,7 @@ public final class Blocks { * Parses a string->string map to find the matching Property and values for the given BlockType. * * @param states the desired states and values - * @param type the block type to get properties and values for + * @param type the block type to get properties and values for * @return a property->value map */ public static Map, Object> resolveProperties(Map states, BlockType type) { @@ -80,4 +83,5 @@ public final class Blocks { }); return newMap; } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/ApplyBrushCommands.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/ApplyBrushCommands.java index a7a329ef2..66e801ae2 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/ApplyBrushCommands.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/ApplyBrushCommands.java @@ -61,25 +61,29 @@ import static org.enginehub.piston.part.CommandParts.arg; public class ApplyBrushCommands { private static final CommandArgument REGION_FACTORY = arg(Caption.of("shape"), Caption.of("worldedit.brush.apply.shape")) - .defaultsTo(ImmutableList.of()) - .ofTypes(ImmutableList.of(Key.of(RegionFactory.class))) - .build(); + .defaultsTo(ImmutableList.of()) + .ofTypes(ImmutableList.of(Key.of(RegionFactory.class))) + .build(); private static final CommandArgument RADIUS = arg(Caption.of("radius"), Caption.of("worldedit.brush.apply.radius")) - .defaultsTo(ImmutableList.of("5")) - .ofTypes(ImmutableList.of(Key.of(double.class))) - .build(); + .defaultsTo(ImmutableList.of("5")) + .ofTypes(ImmutableList.of(Key.of(double.class))) + .build(); - public static void register(CommandManagerService service, CommandManager commandManager, CommandRegistrationHandler registration) { + public static void register( + CommandManagerService service, + CommandManager commandManager, + CommandRegistrationHandler registration + ) { commandManager.register("apply", builder -> { builder.description(Caption.of("worldedit.brush.apply.description")); builder.action(org.enginehub.piston.Command.Action.NULL_ACTION); CommandManager manager = service.newCommandManager(); registration.register( - manager, - ApplyBrushCommandsRegistration.builder(), - new ApplyBrushCommands() + manager, + ApplyBrushCommandsRegistration.builder(), + new ApplyBrushCommands() ); builder.condition(new PermissionCondition(ImmutableSet.of("worldedit.brush.apply"))); @@ -92,50 +96,59 @@ public class ApplyBrushCommands { }); } - private void setApplyBrush(CommandParameters parameters, Player player, LocalSession localSession, - Contextual generatorFactory) throws WorldEditException { + private void setApplyBrush( + CommandParameters parameters, Player player, LocalSession localSession, + Contextual generatorFactory + ) throws WorldEditException { double radius = requireNonNull(RADIUS.value(parameters).asSingle(double.class)); RegionFactory regionFactory = REGION_FACTORY.value(parameters).asSingle(RegionFactory.class); BrushCommands.setOperationBasedBrush(player, localSession, Expression.compile(Double.toString(radius)), - new ApplyRegion(generatorFactory), regionFactory, "worldedit.brush.apply"); + new ApplyRegion(generatorFactory), regionFactory, "worldedit.brush.apply" + ); } @Command( - name = "forest", - desc = "Plant trees" + name = "forest", + desc = "Plant trees" ) - public void forest(CommandParameters parameters, - Player player, LocalSession localSession, - @Arg(desc = "The type of tree to plant") - TreeGenerator.TreeType type) throws WorldEditException { + public void forest( + CommandParameters parameters, + Player player, LocalSession localSession, + @Arg(desc = "The type of tree to plant") + TreeGenerator.TreeType type + ) throws WorldEditException { setApplyBrush(parameters, player, localSession, new TreeGeneratorFactory(type)); } @Command( - name = "item", - desc = "Use an item" + name = "item", + desc = "Use an item" ) @CommandPermissions("worldedit.brush.item") - public void item(CommandParameters parameters, - Player player, LocalSession localSession, - @Arg(desc = "The type of item to use") - BaseItem item, - @Arg(desc = "The direction in which the item will be applied", def = "up") - @Direction(includeDiagonals = true) - com.sk89q.worldedit.util.Direction direction) throws WorldEditException { + public void item( + CommandParameters parameters, + Player player, LocalSession localSession, + @Arg(desc = "The type of item to use") + BaseItem item, + @Arg(desc = "The direction in which the item will be applied", def = "up") + @Direction(includeDiagonals = true) + com.sk89q.worldedit.util.Direction direction + ) throws WorldEditException { player.print(TextComponent.builder().append("WARNING: ") .append(Caption.of("worldedit.brush.apply.item.warning")).build()); setApplyBrush(parameters, player, localSession, new ItemUseFactory(item, direction)); } @Command( - name = "set", - desc = "Place a block" + name = "set", + desc = "Place a block" ) - public void set(CommandParameters parameters, - Player player, LocalSession localSession, - @Arg(desc = "The pattern of blocks to use") - Pattern pattern) throws WorldEditException { + public void set( + CommandParameters parameters, + Player player, LocalSession localSession, + @Arg(desc = "The pattern of blocks to use") + Pattern pattern + ) throws WorldEditException { setApplyBrush(parameters, player, localSession, new ReplaceFactory(pattern)); } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/BiomeCommands.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/BiomeCommands.java index 34dcad7b3..2860d8e62 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/BiomeCommands.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/BiomeCommands.java @@ -75,14 +75,16 @@ public class BiomeCommands { } @Command( - name = "biomelist", - aliases = { "biomels", "/biomelist", "/listbiomes" }, - desc = "Gets all biomes available." + name = "biomelist", + aliases = {"biomels", "/biomelist", "/listbiomes"}, + desc = "Gets all biomes available." ) @CommandPermissions("worldedit.biome.list") - public void biomeList(Actor actor, - @ArgFlag(name = 'p', desc = "Page number.", def = "1") - int page) { + public void biomeList( + Actor actor, + @ArgFlag(name = 'p', desc = "Page number.", def = "1") + int page + ) { WorldEditAsyncCommandBuilder.createAndSendMessage(actor, () -> { BiomeRegistry biomeRegistry = WorldEdit.getInstance().getPlatformManager() .queryCapability(Capability.GAME_HOOKS).getRegistries().getBiomeRegistry(); @@ -90,27 +92,30 @@ public class BiomeCommands { PaginationBox paginationBox = PaginationBox.fromComponents("Available Biomes", "/biomelist -p %page%", BiomeType.REGISTRY.values().stream() .map(biomeType -> TextComponent.builder() - .append(biomeType.getId()) - .append(" (") - .append(biomeRegistry.getRichName(biomeType)) - .append(")") - .build()) - .collect(Collectors.toList())); - return paginationBox.create(page); + .append(biomeType.getId()) + .append(" (") + .append(biomeRegistry.getRichName(biomeType)) + .append(")") + .build()) + .collect(Collectors.toList()) + ); + return paginationBox.create(page); }, (Component) null); } @Command( - name = "biomeinfo", - desc = "Get the biome of the targeted block.", - descFooter = "By default, uses all blocks in your selection." + name = "biomeinfo", + desc = "Get the biome of the targeted block.", + descFooter = "By default, uses all blocks in your selection." ) @CommandPermissions("worldedit.biome.info") - public void biomeInfo(Player player, LocalSession session, - @Switch(name = 't', desc = "Use the block you are looking at.") - boolean useLineOfSight, - @Switch(name = 'p', desc = "Use the block you are currently in.") - boolean usePosition) throws WorldEditException { + public void biomeInfo( + Player player, LocalSession session, + @Switch(name = 't', desc = "Use the block you are looking at.") + boolean useLineOfSight, + @Switch(name = 'p', desc = "Use the block you are currently in.") + boolean usePosition + ) throws WorldEditException { BiomeRegistry biomeRegistry = WorldEdit.getInstance().getPlatformManager() .queryCapability(Capability.GAME_HOOKS).getRegistries().getBiomeRegistry(); Set biomes = new HashSet<>(); @@ -144,24 +149,26 @@ public class BiomeCommands { } List components = biomes.stream().map(biome -> - biomeRegistry.getRichName(biome).hoverEvent( - HoverEvent.showText(TextComponent.of(biome.getId())) - ) + biomeRegistry.getRichName(biome).hoverEvent( + HoverEvent.showText(TextComponent.of(biome.getId())) + ) ).collect(Collectors.toList()); player.print(Caption.of(messageKey, TextUtils.join(components, TextComponent.of(", ")))); } @Command( - name = "/setbiome", - desc = "Sets the biome of your current block or region.", - descFooter = "By default, uses all the blocks in your selection" + name = "/setbiome", + desc = "Sets the biome of your current block or region.", + descFooter = "By default, uses all the blocks in your selection" ) @Logging(REGION) @CommandPermissions("worldedit.biome.set") - public void setBiome(Player player, LocalSession session, EditSession editSession, - @Arg(desc = "Biome type.") BiomeType target, - @Switch(name = 'p', desc = "Use your current position") - boolean atPosition) throws WorldEditException { + public void setBiome( + Player player, LocalSession session, EditSession editSession, + @Arg(desc = "Biome type.") BiomeType target, + @Switch(name = 'p', desc = "Use your current position") + boolean atPosition + ) throws WorldEditException { World world = player.getWorld(); Region region; Mask mask = editSession.getMask(); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/BrushCommands.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/BrushCommands.java index 47bfbe237..791e5c6c0 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/BrushCommands.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/BrushCommands.java @@ -20,9 +20,6 @@ package com.sk89q.worldedit.command; import com.fastasyncworldedit.core.Fawe; -import com.fastasyncworldedit.core.configuration.Caption; -import com.fastasyncworldedit.core.configuration.Settings; -import com.fastasyncworldedit.core.object.FaweLimit; import com.fastasyncworldedit.core.command.tool.brush.BlendBall; import com.fastasyncworldedit.core.command.tool.brush.BlobBrush; import com.fastasyncworldedit.core.command.tool.brush.BrushSettings; @@ -49,16 +46,20 @@ import com.fastasyncworldedit.core.command.tool.brush.SplineBrush; import com.fastasyncworldedit.core.command.tool.brush.StencilBrush; import com.fastasyncworldedit.core.command.tool.brush.SurfaceSphereBrush; import com.fastasyncworldedit.core.command.tool.brush.SurfaceSpline; +import com.fastasyncworldedit.core.command.tool.sweep.SweepBrush; +import com.fastasyncworldedit.core.configuration.Caption; +import com.fastasyncworldedit.core.configuration.Settings; +import com.fastasyncworldedit.core.extent.clipboard.MultiClipboardHolder; import com.fastasyncworldedit.core.extent.processor.heightmap.ScalableHeightMap; import com.fastasyncworldedit.core.extent.processor.heightmap.ScalableHeightMap.Shape; -import com.fastasyncworldedit.core.command.tool.sweep.SweepBrush; -import com.fastasyncworldedit.core.extent.clipboard.MultiClipboardHolder; import com.fastasyncworldedit.core.function.mask.IdMask; +import com.fastasyncworldedit.core.function.mask.SingleBlockTypeMask; +import com.fastasyncworldedit.core.object.FaweLimit; import com.fastasyncworldedit.core.util.MainUtil; import com.fastasyncworldedit.core.util.MathMan; import com.fastasyncworldedit.core.util.StringMan; import com.fastasyncworldedit.core.util.image.ImageUtil; -import com.sk89q.worldedit.command.util.annotation.Step; +import com.fastasyncworldedit.core.world.block.BlockID; import com.sk89q.worldedit.EditSession; import com.sk89q.worldedit.EmptyClipboardException; import com.sk89q.worldedit.LocalSession; @@ -82,6 +83,8 @@ import com.sk89q.worldedit.command.tool.brush.SphereBrush; import com.sk89q.worldedit.command.util.CommandPermissions; import com.sk89q.worldedit.command.util.CommandPermissionsConditionGenerator; import com.sk89q.worldedit.command.util.CreatureButcher; +import com.sk89q.worldedit.command.util.annotation.PatternList; +import com.sk89q.worldedit.command.util.annotation.Step; import com.sk89q.worldedit.entity.Player; import com.sk89q.worldedit.extension.platform.Actor; import com.sk89q.worldedit.extent.clipboard.Clipboard; @@ -92,10 +95,8 @@ import com.sk89q.worldedit.function.factory.Deform; import com.sk89q.worldedit.function.factory.Paint; import com.sk89q.worldedit.function.mask.ExistingBlockMask; import com.sk89q.worldedit.function.mask.Mask; -import com.fastasyncworldedit.core.function.mask.SingleBlockTypeMask; import com.sk89q.worldedit.function.operation.Operation; import com.sk89q.worldedit.function.pattern.Pattern; -import com.sk89q.worldedit.command.util.annotation.PatternList; import com.sk89q.worldedit.internal.annotation.ClipboardMask; import com.sk89q.worldedit.internal.expression.Expression; import com.sk89q.worldedit.math.BlockVector3; @@ -107,7 +108,6 @@ import com.sk89q.worldedit.util.TreeGenerator; import com.sk89q.worldedit.util.formatting.text.Component; import com.sk89q.worldedit.util.formatting.text.TextComponent; import com.sk89q.worldedit.util.formatting.text.event.ClickEvent; -import com.fastasyncworldedit.core.world.block.BlockID; import com.sk89q.worldedit.world.block.BlockStateHolder; import com.sk89q.worldedit.world.block.BlockType; import com.sk89q.worldedit.world.block.BlockTypes; @@ -160,265 +160,288 @@ public class BrushCommands { //FAWE start @Command(name = "blendball", - aliases = { - "bb", - "blend" - }, - desc = "Smooths and blends terrain", - descFooter = "Smooths and blends terrain\n" - + "Pic: https://i.imgur.com/cNUQUkj.png → https://i.imgur.com/hFOFsNf.png" + aliases = { + "bb", + "blend" + }, + desc = "Smooths and blends terrain", + descFooter = "Smooths and blends terrain\n" + + "Pic: https://i.imgur.com/cNUQUkj.png → https://i.imgur.com/hFOFsNf.png" ) @CommandPermissions("worldedit.brush.blendball") - public void blendBallBrush(InjectedValueAccess context, - @Arg(desc = "The radius to sample for blending", def = "5") - Expression radius) throws WorldEditException { + public void blendBallBrush( + InjectedValueAccess context, + @Arg(desc = "The radius to sample for blending", def = "5") + Expression radius + ) throws WorldEditException { worldEdit.checkMaxBrushRadius(radius); set(context, new BlendBall()).setSize(radius); } @Command( - name = "erode", - desc = "Erodes terrain" + name = "erode", + desc = "Erodes terrain" ) @CommandPermissions("worldedit.brush.erode") - public void erodeBrush(InjectedValueAccess context, - @Arg(desc = "The radius for eroding", def = "5") - Expression radius, - @Arg(desc = "erodeFaces", def = "2") - int erodefaces, - @Arg(desc = "erodeRec", def = "1") - int erodeRec, - @Arg(desc = "fillFaces", def = "5") - int fillFaces, - @Arg(desc = "fillRec", def = "1") - int fillRec) throws WorldEditException { + public void erodeBrush( + InjectedValueAccess context, + @Arg(desc = "The radius for eroding", def = "5") + Expression radius, + @Arg(desc = "erodeFaces", def = "2") + int erodefaces, + @Arg(desc = "erodeRec", def = "1") + int erodeRec, + @Arg(desc = "fillFaces", def = "5") + int fillFaces, + @Arg(desc = "fillRec", def = "1") + int fillRec + ) throws WorldEditException { worldEdit.checkMaxBrushRadius(radius); set(context, new ErodeBrush(erodefaces, erodeRec, fillFaces, fillRec)).setSize(radius); } @Command( - name = "pull", - desc = "Pull terrain towards you" + name = "pull", + desc = "Pull terrain towards you" ) @CommandPermissions("worldedit.brush.pull") - public void pullBrush(InjectedValueAccess context, - @Arg(desc = "The radius to sample for blending", def = "5") - Expression radius, - @Arg(desc = "erodeFaces", def = "6") - int erodefaces, - @Arg(desc = "erodeRec", def = "0") - int erodeRec, - @Arg(desc = "fillFaces", def = "1") - int fillFaces, - @Arg(desc = "fillRec", def = "1") - int fillRec) throws WorldEditException { + public void pullBrush( + InjectedValueAccess context, + @Arg(desc = "The radius to sample for blending", def = "5") + Expression radius, + @Arg(desc = "erodeFaces", def = "6") + int erodefaces, + @Arg(desc = "erodeRec", def = "0") + int erodeRec, + @Arg(desc = "fillFaces", def = "1") + int fillFaces, + @Arg(desc = "fillRec", def = "1") + int fillRec + ) throws WorldEditException { worldEdit.checkMaxBrushRadius(radius); set(context, new RaiseBrush(erodefaces, erodeRec, fillFaces, fillRec)).setSize(radius); } @Command( - name = "circle", - desc = "Creates a circle, which revolves around your facing direction" + name = "circle", + desc = "Creates a circle, which revolves around your facing direction" ) @CommandPermissions("worldedit.brush.sphere") - public void circleBrush(InjectedValueAccess context, - @Arg(desc = "Pattern") - Pattern fill, - @Arg(desc = "The radius to sample for blending", def = "5") - Expression radius, - @Arg(name = "filled", desc = "Whether the circle should be filled", def = "false") - boolean filled - ) throws WorldEditException { + public void circleBrush( + InjectedValueAccess context, + @Arg(desc = "Pattern") + Pattern fill, + @Arg(desc = "The radius to sample for blending", def = "5") + Expression radius, + @Arg(name = "filled", desc = "Whether the circle should be filled", def = "false") + boolean filled + ) throws WorldEditException { worldEdit.checkMaxBrushRadius(radius); set(context, new CircleBrush(filled)).setSize(radius).setFill(fill); } @Command( - name = "recursive", - aliases = { - "recurse", - "r" - }, - desc = "Set all connected blocks", - descFooter = "Set all connected blocks\n" - + "Note: Set a mask to recurse along specific blocks" + name = "recursive", + aliases = { + "recurse", + "r" + }, + desc = "Set all connected blocks", + descFooter = "Set all connected blocks\n" + + "Note: Set a mask to recurse along specific blocks" ) @CommandPermissions("worldedit.brush.recursive") - public void recursiveBrush(InjectedValueAccess context, EditSession editSession, - @Arg(desc = "Pattern") - Pattern fill, - @Arg(desc = "The radius to sample for blending", def = "5") - Expression radius, - @Switch(name = 'd', desc = "Apply in depth first order") - boolean depthFirst) throws WorldEditException { + public void recursiveBrush( + InjectedValueAccess context, EditSession editSession, + @Arg(desc = "Pattern") + Pattern fill, + @Arg(desc = "The radius to sample for blending", def = "5") + Expression radius, + @Switch(name = 'd', desc = "Apply in depth first order") + boolean depthFirst + ) throws WorldEditException { worldEdit.checkMaxBrushRadius(radius); set(context, new RecurseBrush(depthFirst)).setSize(radius).setFill(fill) - .setMask(new IdMask(editSession)); + .setMask(new IdMask(editSession)); } @Command( - name = "line", - aliases = { "l" }, - desc = "Create lines" + name = "line", + aliases = {"l"}, + desc = "Create lines" ) @CommandPermissions("worldedit.brush.line") - public void lineBrush(InjectedValueAccess context, - @Arg(desc = "Pattern") - Pattern fill, - @Arg(desc = "The radius to sample for blending", def = "0") - Expression radius, - @Switch(name = 'h', desc = "Create only a shell") - boolean shell, - @Switch(name = 's', desc = "Selects the clicked point after drawing") boolean select, - @Switch(name = 'f', desc = "Create a flat line") - boolean flat) throws WorldEditException { + public void lineBrush( + InjectedValueAccess context, + @Arg(desc = "Pattern") + Pattern fill, + @Arg(desc = "The radius to sample for blending", def = "0") + Expression radius, + @Switch(name = 'h', desc = "Create only a shell") + boolean shell, + @Switch(name = 's', desc = "Selects the clicked point after drawing") boolean select, + @Switch(name = 'f', desc = "Create a flat line") + boolean flat + ) throws WorldEditException { worldEdit.checkMaxBrushRadius(radius); set(context, new LineBrush(shell, select, flat)).setSize(radius).setFill(fill); } @Command( - name = "spline", - aliases = { - "spl", - "curve" - }, - desc = "Join multiple objects together in a curve", - descFooter = - "Click to select some objects,click the same block twice to connect the objects.\n" - + "Insufficient brush radius, or clicking the the wrong spot will result in undesired shapes. The shapes must be simple lines or loops.\n" - + "Pic1: http://i.imgur.com/CeRYAoV.jpg -> http://i.imgur.com/jtM0jA4.png\n" - + "Pic2: http://i.imgur.com/bUeyc72.png -> http://i.imgur.com/tg6MkcF.png" - + "Tutorial: https://www.planetminecraft.com/blog/fawe-tutorial/" + name = "spline", + aliases = { + "spl", + "curve" + }, + desc = "Join multiple objects together in a curve", + descFooter = + "Click to select some objects,click the same block twice to connect the objects.\n" + + "Insufficient brush radius, or clicking the the wrong spot will result in undesired shapes. The shapes must be simple lines or loops.\n" + + "Pic1: http://i.imgur.com/CeRYAoV.jpg -> http://i.imgur.com/jtM0jA4.png\n" + + "Pic2: http://i.imgur.com/bUeyc72.png -> http://i.imgur.com/tg6MkcF.png" + + "Tutorial: https://www.planetminecraft.com/blog/fawe-tutorial/" ) @CommandPermissions("worldedit.brush.spline") - public void splineBrush(Player player, InjectedValueAccess context, - @Arg(desc = "Pattern") - Pattern fill, - @Arg(desc = "The radius to sample for blending", def = "25") - Expression radius) - throws WorldEditException { + public void splineBrush( + Player player, InjectedValueAccess context, + @Arg(desc = "Pattern") + Pattern fill, + @Arg(desc = "The radius to sample for blending", def = "25") + Expression radius + ) + throws WorldEditException { worldEdit.checkMaxBrushRadius(radius); player.print(Caption.of("fawe.worldedit.brush.brush.spline", (radius))); set(context, new SplineBrush(player)).setSize(radius).setFill(fill); } @Command( - name = "sweep", - aliases = { - "sw", - "vaesweep" - }, - desc = "Sweep your clipboard content along a curve", - descFooter = "Sweeps your clipboard content along a curve.\n" - + "Define a curve by selecting the individual points with a brush\n" - + "Set [copies] to a value > 0 if you want to have your selection pasted a limited amount of times equally spaced on the curve" + name = "sweep", + aliases = { + "sw", + "vaesweep" + }, + desc = "Sweep your clipboard content along a curve", + descFooter = "Sweeps your clipboard content along a curve.\n" + + "Define a curve by selecting the individual points with a brush\n" + + "Set [copies] to a value > 0 if you want to have your selection pasted a limited amount of times equally spaced on the curve" ) @CommandPermissions("worldedit.brush.sweep") - public void sweepBrush(Player player, InjectedValueAccess context, - @Arg(desc = "int", def = "-1") - int copies) throws WorldEditException { + public void sweepBrush( + Player player, InjectedValueAccess context, + @Arg(desc = "int", def = "-1") + int copies + ) throws WorldEditException { player.print(Caption.of("fawe.worldedit.brush.brush.spline")); set(context, new SweepBrush(copies)); } @Command( - name = "catenary", - aliases = { - "cat", - "gravityline", - "saggedline" - }, - desc = "Create a hanging line between two points" + name = "catenary", + aliases = { + "cat", + "gravityline", + "saggedline" + }, + desc = "Create a hanging line between two points" ) @CommandPermissions("worldedit.brush.spline") - public void catenaryBrush(InjectedValueAccess context, - @Arg(desc = "Pattern") - Pattern fill, - @Arg(def = "1.2", desc = "Length of wire compared to distance between points") - @Range(from = 1, to = Integer.MAX_VALUE) - double lengthFactor, - @Arg(desc = "The radius to sample for blending", def = "0") - Expression radius, - @Switch(name = 'h', desc = "Create only a shell") - boolean shell, - @Switch(name = 's', desc = "Select the clicked point after drawing") - boolean select, - @Switch(name = 'd', desc = "sags the catenary toward the facing direction") - boolean facingDirection) throws WorldEditException { + public void catenaryBrush( + InjectedValueAccess context, + @Arg(desc = "Pattern") + Pattern fill, + @Arg(def = "1.2", desc = "Length of wire compared to distance between points") + @Range(from = 1, to = Integer.MAX_VALUE) + double lengthFactor, + @Arg(desc = "The radius to sample for blending", def = "0") + Expression radius, + @Switch(name = 'h', desc = "Create only a shell") + boolean shell, + @Switch(name = 's', desc = "Select the clicked point after drawing") + boolean select, + @Switch(name = 'd', desc = "sags the catenary toward the facing direction") + boolean facingDirection + ) throws WorldEditException { worldEdit.checkMaxBrushRadius(radius); set(context, new CatenaryBrush(shell, select, facingDirection, lengthFactor)) - .setSize(radius).setFill(fill); + .setSize(radius).setFill(fill); } @Command( - name = "surfacespline", - aliases = { - "sspline", - "sspl" - }, - desc = "Draws a spline (curved line) on the surface", - descFooter = "Create a spline on the surface\n" - + "Video: https://www.youtube.com/watch?v=CukvVOi4jv8" + name = "surfacespline", + aliases = { + "sspline", + "sspl" + }, + desc = "Draws a spline (curved line) on the surface", + descFooter = "Create a spline on the surface\n" + + "Video: https://www.youtube.com/watch?v=CukvVOi4jv8" ) @CommandPermissions("worldedit.brush.surfacespline") // 0, 0, 0, 10, 0, - public void surfaceSpline(Player player, InjectedValueAccess context, - @Arg(desc = "Pattern") - Pattern fill, - @Arg(desc = "The radius to sample for blending", def = "0") - Expression radius, - @Arg(desc = "double", def = "0") - double tension, - @Arg(desc = "double", def = "0") - double bias, - @Arg(desc = "double", def = "0") - double continuity, - @Arg(desc = "double", def = "10") - double quality) throws WorldEditException { + public void surfaceSpline( + Player player, InjectedValueAccess context, + @Arg(desc = "Pattern") + Pattern fill, + @Arg(desc = "The radius to sample for blending", def = "0") + Expression radius, + @Arg(desc = "double", def = "0") + double tension, + @Arg(desc = "double", def = "0") + double bias, + @Arg(desc = "double", def = "0") + double continuity, + @Arg(desc = "double", def = "10") + double quality + ) throws WorldEditException { player.print(Caption.of("fawe.worldedit.brush.brush.spline", (radius))); worldEdit.checkMaxBrushRadius(radius); set(context, new SurfaceSpline(tension, bias, continuity, quality)).setSize(radius) - .setFill(fill); + .setFill(fill); } @Command( - name = "rock", - aliases = { "blob" }, - desc = "Creates a distorted sphere" + name = "rock", + aliases = {"blob"}, + desc = "Creates a distorted sphere" ) @CommandPermissions("worldedit.brush.rock") - public void blobBrush(InjectedValueAccess context, - @Arg(desc = "Pattern") - Pattern fill, - @Arg(desc = "radius", def = "10") - Vector3 radius, - @Arg(name = "roundness", desc = "roundness", def = "100") - double sphericity, - @Arg(desc = "double", def = "30") - double frequency, - @Arg(desc = "double", def = "50") - double amplitude) throws WorldEditException { + public void blobBrush( + InjectedValueAccess context, + @Arg(desc = "Pattern") + Pattern fill, + @Arg(desc = "radius", def = "10") + Vector3 radius, + @Arg(name = "roundness", desc = "roundness", def = "100") + double sphericity, + @Arg(desc = "double", def = "30") + double frequency, + @Arg(desc = "double", def = "50") + double amplitude + ) throws WorldEditException { double max = MathMan.max(radius.getX(), radius.getY(), radius.getZ()); worldEdit.checkMaxBrushRadius(max); Brush brush = - new BlobBrush(radius.divide(max), frequency / 100, amplitude / 100, sphericity / 100); + new BlobBrush(radius.divide(max), frequency / 100, amplitude / 100, sphericity / 100); set(context, brush).setSize(max).setFill(fill); } @Command( name = "shatter", - aliases = { "partition", "split"}, + aliases = {"partition", "split"}, desc = "Creates random lines to break the terrain into pieces", descFooter = "Creates uneven lines separating terrain into multiple pieces\n" + "Pic: https://i.imgur.com/2xKsZf2.png" ) @CommandPermissions("worldedit.brush.shatter") - public void shatterBrush(EditSession editSession, InjectedValueAccess context, - @Arg(desc = "Pattern") - Pattern fill, - @Arg(desc = "The radius to sample for blending", def = "10") - Expression radius, - @Arg(desc = "Lines", def = "10") - int count) throws WorldEditException { + public void shatterBrush( + EditSession editSession, InjectedValueAccess context, + @Arg(desc = "Pattern") + Pattern fill, + @Arg(desc = "The radius to sample for blending", def = "10") + Expression radius, + @Arg(desc = "Lines", def = "10") + int count + ) throws WorldEditException { worldEdit.checkMaxBrushRadius(radius); set(context, new ShatterBrush(count)).setSize(radius).setFill(fill) .setMask(new ExistingBlockMask(editSession)); @@ -430,22 +453,24 @@ public class BrushCommands { descFooter = "Use a height map to paint any surface." ) @CommandPermissions("worldedit.brush.stencil") - public void stencilBrush(LocalSession session, InjectedValueAccess context, - @Arg(desc = "Pattern") - Pattern fill, - @Arg(desc = "Expression", def = "5") - Expression radius, - @Arg(desc = "String", def = "") - String image, - @Arg(def = "0", desc = "rotation") - @Range(from = 0, to = 360) - int rotation, - @Arg(desc = "double", def = "1") - double yscale, - @Switch(name = 'w', desc = "Apply at maximum saturation") - boolean onlyWhite, - @Switch(name = 'r', desc = "Apply random rotation") - boolean randomRotate) + public void stencilBrush( + LocalSession session, InjectedValueAccess context, + @Arg(desc = "Pattern") + Pattern fill, + @Arg(desc = "Expression", def = "5") + Expression radius, + @Arg(desc = "String", def = "") + String image, + @Arg(def = "0", desc = "rotation") + @Range(from = 0, to = 360) + int rotation, + @Arg(desc = "double", def = "1") + double yscale, + @Switch(name = 'w', desc = "Apply at maximum saturation") + boolean onlyWhite, + @Switch(name = 'r', desc = "Apply random rotation") + boolean randomRotate + ) throws WorldEditException, FileNotFoundException { worldEdit.checkMaxBrushRadius(radius); InputStream stream = getHeightmapStream(image); @@ -453,7 +478,8 @@ public class BrushCommands { try { brush = new StencilBrush(stream, rotation, yscale, onlyWhite, "#clipboard".equalsIgnoreCase(image) - ? session.getClipboard().getClipboard() : null); + ? session.getClipboard().getClipboard() : null + ); } catch (EmptyClipboardException ignored) { brush = new StencilBrush(stream, rotation, yscale, onlyWhite, null); } @@ -467,13 +493,15 @@ public class BrushCommands { desc = "Use a height map to paint a surface", descFooter = "Use a height map to paint any surface.\n") @CommandPermissions("worldedit.brush.image") - public void imageBrush(LocalSession session, - InjectedValueAccess context, - @Arg(desc = "Image URL (imgur only)") String imageURL, - @Arg(desc = "The size of the brush", def = "5") Expression radius, - @Arg(def = "1", desc = "scale height") double yscale, - @Switch(name = 'a', desc = "Use image Alpha") boolean alpha, - @Switch(name = 'f', desc = "Blend the image with existing terrain") boolean fadeOut) + public void imageBrush( + LocalSession session, + InjectedValueAccess context, + @Arg(desc = "Image URL (imgur only)") String imageURL, + @Arg(desc = "The size of the brush", def = "5") Expression radius, + @Arg(def = "1", desc = "scale height") double yscale, + @Switch(name = 'a', desc = "Use image Alpha") boolean alpha, + @Switch(name = 'f', desc = "Blend the image with existing terrain") boolean fadeOut + ) throws WorldEditException, IOException { URL url = new URL(imageURL); if (!url.getHost().equalsIgnoreCase("i.imgur.com")) { @@ -495,16 +523,18 @@ public class BrushCommands { @Command( name = "surface", - aliases = { "surf" }, + aliases = {"surf"}, desc = "Use a height map to paint a surface", descFooter = "Use a height map to paint any surface." ) @CommandPermissions("worldedit.brush.surface") - public void surfaceBrush(InjectedValueAccess context, - @Arg(desc = "Pattern") - Pattern fill, - @Arg(desc = "Expression", def = "5") - Expression radius) throws WorldEditException { + public void surfaceBrush( + InjectedValueAccess context, + @Arg(desc = "Pattern") + Pattern fill, + @Arg(desc = "Expression", def = "5") + Expression radius + ) throws WorldEditException { worldEdit.checkMaxBrushRadius(radius); set(context, new SurfaceSphereBrush()).setFill(fill).setSize(radius); } @@ -517,17 +547,19 @@ public class BrushCommands { + "Video: https://youtu.be/RPZIaTbqoZw?t=34s" ) @CommandPermissions("worldedit.brush.scatter") - public void scatterBrush(InjectedValueAccess context, - @Arg(desc = "Pattern") - Pattern fill, - @Arg(desc = "radius", def = "5") - Expression radius, - @Arg(desc = "points", def = "5") - double points, - @Arg(desc = "distance", def = "1") - double distance, - @Switch(name = 'o', desc = "Overlay the block") - boolean overlay) throws WorldEditException { + public void scatterBrush( + InjectedValueAccess context, + @Arg(desc = "Pattern") + Pattern fill, + @Arg(desc = "radius", def = "5") + Expression radius, + @Arg(desc = "points", def = "5") + double points, + @Arg(desc = "distance", def = "1") + double distance, + @Switch(name = 'o', desc = "Overlay the block") + boolean overlay + ) throws WorldEditException { worldEdit.checkMaxBrushRadius(radius); Brush brush; if (overlay) { @@ -549,17 +581,19 @@ public class BrushCommands { desc = "Scatter a schematic on a surface" ) @CommandPermissions("worldedit.brush.populateschematic") - public void scatterSchemBrush(Player player, InjectedValueAccess context, - @Arg(desc = "Mask") - Mask mask, - @Arg(name = "clipboard", desc = "Clipboard uri") - String clipboardStr, - @Arg(desc = "Expression", def = "30") - Expression radius, - @Arg(desc = "double", def = "50") - double density, - @Switch(name = 'r', desc = "Apply random rotation") - boolean rotate) throws WorldEditException { + public void scatterSchemBrush( + Player player, InjectedValueAccess context, + @Arg(desc = "Mask") + Mask mask, + @Arg(name = "clipboard", desc = "Clipboard uri") + String clipboardStr, + @Arg(desc = "Expression", def = "30") + Expression radius, + @Arg(desc = "double", def = "50") + double density, + @Switch(name = 'r', desc = "Apply random rotation") + boolean rotate + ) throws WorldEditException { worldEdit.checkMaxBrushRadius(radius); try { MultiClipboardHolder clipboards = @@ -588,12 +622,14 @@ public class BrushCommands { + "Pic: https://i.imgur.com/XV0vYoX.png" ) @CommandPermissions("worldedit.brush.layer") - public void surfaceLayer(InjectedValueAccess context, - @Arg(desc = "Expression") - Expression radius, - @Arg(desc = "List of comma-separated patterns") - @PatternList() - List patternLayers) + public void surfaceLayer( + InjectedValueAccess context, + @Arg(desc = "Expression") + Expression radius, + @Arg(desc = "List of comma-separated patterns") + @PatternList() + List patternLayers + ) throws WorldEditException { worldEdit.checkMaxBrushRadius(radius); set(context, new LayerBrush(patternLayers.toArray(new Pattern[0]))).setSize(radius); @@ -609,17 +645,19 @@ public class BrushCommands { + "solid defines whether the pattern is applied per seed, else per block." ) @CommandPermissions("worldedit.brush.splatter") - public void splatterBrush(InjectedValueAccess context, - @Arg(desc = "Pattern") - Pattern fill, - @Arg(desc = "Expression", def = "5") - Expression radius, - @Arg(desc = "double", def = "1") - double points, - @Arg(desc = "double", def = "5") - double recursion, - @Arg(desc = "boolean", def = "true") - boolean solid) throws WorldEditException { + public void splatterBrush( + InjectedValueAccess context, + @Arg(desc = "Pattern") + Pattern fill, + @Arg(desc = "Expression", def = "5") + Expression radius, + @Arg(desc = "double", def = "1") + double points, + @Arg(desc = "double", def = "5") + double recursion, + @Arg(desc = "boolean", def = "true") + boolean solid + ) throws WorldEditException { worldEdit.checkMaxBrushRadius(radius); set(context, new SplatterBrush((int) points, (int) recursion, solid)).setSize(radius) .setFill(fill); @@ -638,79 +676,89 @@ public class BrushCommands { + " - Placeholders: {x}, {y}, {z}, {world}, {size}" ) @CommandPermissions("worldedit.brush.scattercommand") - public void scatterCommandBrush(Player player, InjectedValueAccess context, - @Arg(desc = "The minimum distance between each point") - Expression radius, - @Arg(desc = "double", def = "1") - double points, - @Arg(desc = "double", def = "1") - double distance, - @Arg(desc = "List of comma-separated commands") - List commandStr) + public void scatterCommandBrush( + Player player, InjectedValueAccess context, + @Arg(desc = "The minimum distance between each point") + Expression radius, + @Arg(desc = "double", def = "1") + double points, + @Arg(desc = "double", def = "1") + double distance, + @Arg(desc = "List of comma-separated commands") + List commandStr + ) throws WorldEditException { worldEdit.checkMaxBrushRadius(radius); - set(context, - new ScatterCommand((int) points, (int) distance, StringMan.join(commandStr, " "))) + set( + context, + new ScatterCommand((int) points, (int) distance, StringMan.join(commandStr, " ")) + ) .setSize(radius); } @Command( name = "height", - aliases = { "heightmap" }, + aliases = {"heightmap"}, desc = "Raise or lower terrain using a heightmap", descFooter = "This brush raises and lowers land.\n" + "Note: Use a negative yscale to reduce height\n" + "Snow Pic: https://i.imgur.com/Hrzn0I4.png" ) @CommandPermissions("worldedit.brush.height") - public void heightBrush(LocalSession session, - @Arg(desc = "Expression", def = "5") - Expression radius, - @Arg(desc = "String", def = "") - String image, - @Arg(def = "0", desc = "rotation") - @Range(from = 0, to = 360) - int rotation, - @Arg(desc = "double", def = "1") - double yscale, - @Switch(name = 'r', desc = "Random off-axis rotation") - boolean randomRotate, - @Switch(name = 'l', desc = "Work on snow layers") - boolean layers, - @Switch(name = 's', desc = "Disable smoothing") - boolean dontSmooth, InjectedValueAccess context) + public void heightBrush( + LocalSession session, + @Arg(desc = "Expression", def = "5") + Expression radius, + @Arg(desc = "String", def = "") + String image, + @Arg(def = "0", desc = "rotation") + @Range(from = 0, to = 360) + int rotation, + @Arg(desc = "double", def = "1") + double yscale, + @Switch(name = 'r', desc = "Random off-axis rotation") + boolean randomRotate, + @Switch(name = 'l', desc = "Work on snow layers") + boolean layers, + @Switch(name = 's', desc = "Disable smoothing") + boolean dontSmooth, InjectedValueAccess context + ) throws WorldEditException, FileNotFoundException { terrainBrush(session, radius, image, rotation, yscale, false, randomRotate, layers, - !dontSmooth, ScalableHeightMap.Shape.CONE, context); + !dontSmooth, ScalableHeightMap.Shape.CONE, context + ); } @Command( name = "cliff", - aliases = { "flatcylinder" }, + aliases = {"flatcylinder"}, desc = "Cliff brush", descFooter = "This brush flattens terrain and creates cliffs." ) @CommandPermissions("worldedit.brush.height") - public void cliffBrush(LocalSession session, - @Arg(desc = "Expression", def = "5") - Expression radius, - @Arg(desc = "String", def = "") - String image, - @Arg(def = "0", desc = "rotation") - @Step(90) - @Range(from = 0, to = 360) - int rotation, - @Arg(desc = "double", def = "1") - double yscale, - @Switch(name = 'r', desc = "Enables random off-axis rotation") - boolean randomRotate, - @Switch(name = 'l', desc = "Will work on snow layers") - boolean layers, - @Switch(name = 's', desc = "Disables smoothing") - boolean dontSmooth, InjectedValueAccess context) + public void cliffBrush( + LocalSession session, + @Arg(desc = "Expression", def = "5") + Expression radius, + @Arg(desc = "String", def = "") + String image, + @Arg(def = "0", desc = "rotation") + @Step(90) + @Range(from = 0, to = 360) + int rotation, + @Arg(desc = "double", def = "1") + double yscale, + @Switch(name = 'r', desc = "Enables random off-axis rotation") + boolean randomRotate, + @Switch(name = 'l', desc = "Will work on snow layers") + boolean layers, + @Switch(name = 's', desc = "Disables smoothing") + boolean dontSmooth, InjectedValueAccess context + ) throws WorldEditException, FileNotFoundException { terrainBrush(session, radius, image, rotation, yscale, true, randomRotate, layers, - !dontSmooth, ScalableHeightMap.Shape.CYLINDER, context); + !dontSmooth, ScalableHeightMap.Shape.CYLINDER, context + ); } @Command( @@ -722,29 +770,44 @@ public class BrushCommands { desc = "This brush raises or lowers land towards the clicked point" ) @CommandPermissions("worldedit.brush.height") - public void flattenBrush(LocalSession session, - @Arg(desc = "Expression", def = "5") - Expression radius, - @Arg(desc = "String", def = "") - String image, - @Arg(def = "0", desc = "rotation") - @Step(90) - @Range(from = 0, to = 360) - int rotation, - @Arg(desc = "double", def = "1") - double yscale, - @Switch(name = 'r', desc = "Enables random off-axis rotation") - boolean randomRotate, - @Switch(name = 'l', desc = "Will work on snow layers") - boolean layers, - @Switch(name = 's', desc = "Disables smoothing") - boolean dontSmooth, InjectedValueAccess context) + public void flattenBrush( + LocalSession session, + @Arg(desc = "Expression", def = "5") + Expression radius, + @Arg(desc = "String", def = "") + String image, + @Arg(def = "0", desc = "rotation") + @Step(90) + @Range(from = 0, to = 360) + int rotation, + @Arg(desc = "double", def = "1") + double yscale, + @Switch(name = 'r', desc = "Enables random off-axis rotation") + boolean randomRotate, + @Switch(name = 'l', desc = "Will work on snow layers") + boolean layers, + @Switch(name = 's', desc = "Disables smoothing") + boolean dontSmooth, InjectedValueAccess context + ) throws WorldEditException, FileNotFoundException { terrainBrush(session, radius, image, rotation, yscale, true, randomRotate, layers, - !dontSmooth, ScalableHeightMap.Shape.CONE, context); + !dontSmooth, ScalableHeightMap.Shape.CONE, context + ); } - private void terrainBrush(LocalSession session, Expression radius, String image, int rotation, double yscale, boolean flat, boolean randomRotate, boolean layers, boolean smooth, Shape shape, InjectedValueAccess context) + private void terrainBrush( + LocalSession session, + Expression radius, + String image, + int rotation, + double yscale, + boolean flat, + boolean randomRotate, + boolean layers, + boolean smooth, + Shape shape, + InjectedValueAccess context + ) throws WorldEditException, FileNotFoundException { worldEdit.checkMaxBrushRadius(radius); InputStream stream = getHeightmapStream(image); @@ -753,7 +816,8 @@ public class BrushCommands { try { brush = new FlattenBrush(stream, rotation, yscale, layers, smooth, "#clipboard".equalsIgnoreCase(image) - ? session.getClipboard().getClipboard() : null, shape); + ? session.getClipboard().getClipboard() : null, shape + ); } catch (EmptyClipboardException ignored) { brush = new FlattenBrush(stream, rotation, yscale, layers, smooth, null, shape); } @@ -761,7 +825,8 @@ public class BrushCommands { try { brush = new HeightBrush(stream, rotation, yscale, layers, smooth, "#clipboard".equalsIgnoreCase(image) - ? session.getClipboard().getClipboard() : null); + ? session.getClipboard().getClipboard() : null + ); } catch (EmptyClipboardException ignored) { brush = new HeightBrush(stream, rotation, yscale, layers, smooth, null); } @@ -777,8 +842,10 @@ public class BrushCommands { return null; } String filenamePng = filename.endsWith(".png") ? filename : filename + ".png"; - File file = new File(Fawe.imp().getDirectory(), - Settings.IMP.PATHS.HEIGHTMAP + File.separator + filenamePng); + File file = new File( + Fawe.imp().getDirectory(), + Settings.IMP.PATHS.HEIGHTMAP + File.separator + filenamePng + ); if (file.exists()) { return new FileInputStream(file); } @@ -799,13 +866,15 @@ public class BrushCommands { + "Video: https://www.youtube.com/watch?v=RPZIaTbqoZw" ) @CommandPermissions("worldedit.brush.copy") - public void copy(Player player, LocalSession session, InjectedValueAccess context, - @Arg(desc = "Expression", def = "5") - Expression radius, - @Switch(name = 'r', desc = "Apply random rotation on paste") - boolean randomRotate, - @Switch(name = 'a', desc = "Apply auto view based rotation on paste") - boolean autoRotate) throws WorldEditException { + public void copy( + Player player, LocalSession session, InjectedValueAccess context, + @Arg(desc = "Expression", def = "5") + Expression radius, + @Switch(name = 'r', desc = "Apply random rotation on paste") + boolean randomRotate, + @Switch(name = 'a', desc = "Apply auto view based rotation on paste") + boolean autoRotate + ) throws WorldEditException { worldEdit.checkMaxBrushRadius(radius); player.print(Caption.of("fawe.worldedit.brush.brush.copy", (radius))); @@ -814,18 +883,20 @@ public class BrushCommands { @Command( name = "command", - aliases = { "cmd" }, + aliases = {"cmd"}, desc = "Command brush", descFooter = "Run the commands at the clicked position.\n" + " - Your selection will be expanded to the specified size around each point\n" + " - Placeholders: {x}, {y}, {z}, {world}, {size}" ) @CommandPermissions("worldedit.brush.command") - public void command(InjectedValueAccess context, - @Arg(desc = "Expression") - Expression radius, - @Arg(desc = "Command to run") - List input) throws WorldEditException { + public void command( + InjectedValueAccess context, + @Arg(desc = "Expression") + Expression radius, + @Arg(desc = "Command to run") + List input + ) throws WorldEditException { worldEdit.checkMaxBrushRadius(radius); String cmd = StringMan.join(input, " "); set(context, new CommandBrush(cmd)).setSize(radius); @@ -833,15 +904,17 @@ public class BrushCommands { @Command( name = "savebrush", - aliases = { "save" }, + aliases = {"save"}, desc = "Save your current brush" ) @CommandPermissions("worldedit.brush.save") - public void saveBrush(Player player, LocalSession session, - @Arg(desc = "String name") - String name, - @Switch(name = 'g', desc = "Save the brush globally") - boolean root) throws WorldEditException, IOException { + public void saveBrush( + Player player, LocalSession session, + @Arg(desc = "String name") + String name, + @Switch(name = 'g', desc = "Save the brush globally") + boolean root + ) throws WorldEditException, IOException { BrushTool tool = session.getBrushTool(player); if (tool != null) { root |= name.startsWith("../"); @@ -910,16 +983,25 @@ public class BrushCommands { desc = "List saved brushes", descFooter = "List all brushes in the brush directory") @CommandPermissions("worldedit.brush.list") - public void list(Actor actor, InjectedValueAccess args, - @ArgFlag(name = 'p', desc = "Prints the requested page", def = "0") - int page) throws WorldEditException { + public void list( + Actor actor, InjectedValueAccess args, + @ArgFlag(name = 'p', desc = "Prints the requested page", def = "0") + int page + ) throws WorldEditException { String baseCmd = "/brush loadbrush"; File dir = MainUtil.getFile(Fawe.imp().getDirectory(), "brushes"); // TODO NOT IMPLEMENTED // UtilityCommands.list(dir, actor, args, page, null, true, baseCmd); } - static void setOperationBasedBrush(Player player, LocalSession session, Expression radius, Contextual factory, RegionFactory shape, String permission) + static void setOperationBasedBrush( + Player player, + LocalSession session, + Expression radius, + Contextual factory, + RegionFactory shape, + String permission + ) throws WorldEditException { WorldEdit.getInstance().checkMaxBrushRadius(radius); BrushTool tool = session.getBrushTool(player.getItemInHand(HandSide.MAIN_HAND).getType()); @@ -935,17 +1017,19 @@ public class BrushCommands { desc = "Deform brush, applies an expression to an area" ) @CommandPermissions("worldedit.brush.deform") - public void deform(Player player, LocalSession localSession, - @Arg(desc = "The shape of the region") - RegionFactory shape, - @Arg(desc = "The size of the brush", def = "5") - double radius, - @Arg(desc = "Expression to apply", def = "y-=0.2") - String expression, - @Switch(name = 'r', desc = "Use the game's coordinate origin") - boolean useRawCoords, - @Switch(name = 'o', desc = "Use the placement position as the origin") - boolean usePlacement) throws WorldEditException { + public void deform( + Player player, LocalSession localSession, + @Arg(desc = "The shape of the region") + RegionFactory shape, + @Arg(desc = "The size of the brush", def = "5") + double radius, + @Arg(desc = "Expression to apply", def = "y-=0.2") + String expression, + @Switch(name = 'r', desc = "Use the game's coordinate origin") + boolean useRawCoords, + @Switch(name = 'o', desc = "Use the placement position as the origin") + boolean usePlacement + ) throws WorldEditException { Deform deform = new Deform(expression); if (useRawCoords) { deform.setMode(Deform.Mode.RAW_COORD); @@ -954,7 +1038,8 @@ public class BrushCommands { deform.setOffset(localSession.getPlacementPosition(player).toVector3()); } setOperationBasedBrush(player, localSession, radius, - deform, shape, "worldedit.brush.deform"); + deform, shape, "worldedit.brush.deform" + ); } @Command( @@ -962,15 +1047,18 @@ public class BrushCommands { desc = "Set brush, sets all blocks in the area" ) @CommandPermissions("worldedit.brush.set") - public void set(Player player, LocalSession localSession, - @Arg(desc = "The shape of the region") - RegionFactory shape, - @Arg(desc = "The size of the brush", def = "5") - Expression radius, - @Arg(desc = "The pattern of blocks to set") - Pattern pattern) throws WorldEditException { + public void set( + Player player, LocalSession localSession, + @Arg(desc = "The shape of the region") + RegionFactory shape, + @Arg(desc = "The size of the brush", def = "5") + Expression radius, + @Arg(desc = "The pattern of blocks to set") + Pattern pattern + ) throws WorldEditException { setOperationBasedBrush(player, localSession, radius, - new Apply(new ReplaceFactory(pattern)), shape, "worldedit.brush.set"); + new Apply(new ReplaceFactory(pattern)), shape, "worldedit.brush.set" + ); } @Command( @@ -978,17 +1066,20 @@ public class BrushCommands { desc = "Forest brush, creates a forest in the area" ) @CommandPermissions("worldedit.brush.forest") - public void forest(Player player, LocalSession localSession, - @Arg(desc = "The shape of the region") - RegionFactory shape, - @Arg(desc = "The size of the brush", def = "5") - Expression radius, - @Arg(desc = "The density of the brush", def = "20") - double density, - @Arg(desc = "The type of tree to use") - TreeGenerator.TreeType type) throws WorldEditException { + public void forest( + Player player, LocalSession localSession, + @Arg(desc = "The shape of the region") + RegionFactory shape, + @Arg(desc = "The size of the brush", def = "5") + Expression radius, + @Arg(desc = "The density of the brush", def = "20") + double density, + @Arg(desc = "The type of tree to use") + TreeGenerator.TreeType type + ) throws WorldEditException { setOperationBasedBrush(player, localSession, radius, - new Paint(new TreeGeneratorFactory(type), density / 100), shape, "worldedit.brush.forest"); + new Paint(new TreeGeneratorFactory(type), density / 100), shape, "worldedit.brush.forest" + ); } @Command( @@ -996,13 +1087,16 @@ public class BrushCommands { desc = "Raise brush, raise all blocks by one" ) @CommandPermissions("worldedit.brush.raise") - public void raise(Player player, LocalSession localSession, - @Arg(desc = "The shape of the region") - RegionFactory shape, - @Arg(desc = "The size of the brush", def = "5") - Expression radius) throws WorldEditException { + public void raise( + Player player, LocalSession localSession, + @Arg(desc = "The shape of the region") + RegionFactory shape, + @Arg(desc = "The size of the brush", def = "5") + Expression radius + ) throws WorldEditException { setOperationBasedBrush(player, localSession, radius, - new Deform("y-=1"), shape, "worldedit.brush.raise"); + new Deform("y-=1"), shape, "worldedit.brush.raise" + ); } @Command( @@ -1010,31 +1104,36 @@ public class BrushCommands { desc = "Lower brush, lower all blocks by one" ) @CommandPermissions("worldedit.brush.lower") - public void lower(Player player, LocalSession localSession, - @Arg(desc = "The shape of the region") - RegionFactory shape, - @Arg(desc = "The size of the brush", def = "5") - Expression radius) throws WorldEditException { + public void lower( + Player player, LocalSession localSession, + @Arg(desc = "The shape of the region") + RegionFactory shape, + @Arg(desc = "The size of the brush", def = "5") + Expression radius + ) throws WorldEditException { setOperationBasedBrush(player, localSession, radius, - new Deform("y+=1"), shape, "worldedit.brush.lower"); + new Deform("y+=1"), shape, "worldedit.brush.lower" + ); } //FAWE end @Command( - name = "sphere", - aliases = { "s" }, - desc = "Choose the sphere brush" + name = "sphere", + aliases = {"s"}, + desc = "Choose the sphere brush" ) @CommandPermissions("worldedit.brush.sphere") - public void sphereBrush(Player player, InjectedValueAccess context, - @Arg(desc = "The pattern of blocks to set") - Pattern pattern, - @Arg(desc = "The radius of the sphere", def = "2") - Expression radius, - @Switch(name = 'h', desc = "Create hollow spheres instead") - boolean hollow, - @Switch(name = 'f', desc = "Create falling spheres instead") - boolean falling) throws WorldEditException { + public void sphereBrush( + Player player, InjectedValueAccess context, + @Arg(desc = "The pattern of blocks to set") + Pattern pattern, + @Arg(desc = "The radius of the sphere", def = "2") + Expression radius, + @Switch(name = 'h', desc = "Create hollow spheres instead") + boolean hollow, + @Switch(name = 'f', desc = "Create falling spheres instead") + boolean falling + ) throws WorldEditException { worldEdit.checkMaxBrushRadius(radius); Brush brush; if (hollow) { @@ -1066,20 +1165,22 @@ public class BrushCommands { } @Command( - name = "cylinder", - aliases = { "cyl", "c" }, - desc = "Choose the cylinder brush" + name = "cylinder", + aliases = {"cyl", "c"}, + desc = "Choose the cylinder brush" ) @CommandPermissions("worldedit.brush.cylinder") - public void cylinderBrush(InjectedValueAccess context, - @Arg(desc = "The pattern of blocks to set") - Pattern pattern, - @Arg(desc = "The radius of the cylinder", def = "2") - Expression radius, - @Arg(desc = "The height of the cylinder", def = "1") - int height, - @Switch(name = 'h', desc = "Create hollow cylinders instead") - boolean hollow) throws WorldEditException { + public void cylinderBrush( + InjectedValueAccess context, + @Arg(desc = "The pattern of blocks to set") + Pattern pattern, + @Arg(desc = "The radius of the cylinder", def = "2") + Expression radius, + @Arg(desc = "The height of the cylinder", def = "1") + int height, + @Switch(name = 'h', desc = "Create hollow cylinders instead") + boolean hollow + ) throws WorldEditException { worldEdit.checkMaxBrushRadius(radius); worldEdit.checkMaxBrushRadius(height); @@ -1093,27 +1194,29 @@ public class BrushCommands { } @Command( - name = "clipboard", - desc = "@Deprecated use instead: `/br copypaste`)", - descFooter = "Choose the clipboard brush.\n" - + "Without the -o flag, the paste will appear centered at the target location. " - + "With the flag, then the paste will appear relative to where you had " - + "stood relative to the copied area when you copied it." + name = "clipboard", + desc = "@Deprecated use instead: `/br copypaste`)", + descFooter = "Choose the clipboard brush.\n" + + "Without the -o flag, the paste will appear centered at the target location. " + + "With the flag, then the paste will appear relative to where you had " + + "stood relative to the copied area when you copied it." ) @Deprecated @CommandPermissions("worldedit.brush.clipboard") - public void clipboardBrush(Player player, LocalSession session, - @Switch(name = 'a', desc = "Don't paste air from the clipboard") - boolean ignoreAir, - @Switch(name = 'o', desc = "Paste starting at the target location, instead of centering on it") - boolean usingOrigin, - @Switch(name = 'e', desc = "Paste entities if available") - boolean pasteEntities, - @Switch(name = 'b', desc = "Paste biomes if available") - boolean pasteBiomes, - @ArgFlag(name = 'm', desc = "Skip blocks matching this mask in the clipboard") - @ClipboardMask - Mask sourceMask, InjectedValueAccess context) throws WorldEditException { + public void clipboardBrush( + Player player, LocalSession session, + @Switch(name = 'a', desc = "Don't paste air from the clipboard") + boolean ignoreAir, + @Switch(name = 'o', desc = "Paste starting at the target location, instead of centering on it") + boolean usingOrigin, + @Switch(name = 'e', desc = "Paste entities if available") + boolean pasteEntities, + @Switch(name = 'b', desc = "Paste biomes if available") + boolean pasteBiomes, + @ArgFlag(name = 'm', desc = "Skip blocks matching this mask in the clipboard") + @ClipboardMask + Mask sourceMask, InjectedValueAccess context + ) throws WorldEditException { ClipboardHolder holder = session.getClipboard(); Clipboard clipboard = holder.getClipboard(); @@ -1126,25 +1229,30 @@ public class BrushCommands { worldEdit.checkMaxBrushRadius(size.getBlockY() / 2D - 1); worldEdit.checkMaxBrushRadius(size.getBlockZ() / 2D - 1); - set(context, - new ClipboardBrush(newHolder, ignoreAir, usingOrigin, pasteEntities, pasteBiomes, - sourceMask)); + set( + context, + new ClipboardBrush(newHolder, ignoreAir, usingOrigin, pasteEntities, pasteBiomes, + sourceMask + ) + ); } @Command( - name = "smooth", - desc = "Choose the terrain softener brush", - descFooter = "Example: '/brush smooth 2 4 grass_block,dirt,stone'" + name = "smooth", + desc = "Choose the terrain softener brush", + descFooter = "Example: '/brush smooth 2 4 grass_block,dirt,stone'" ) @CommandPermissions("worldedit.brush.smooth") - public void smoothBrush(Player player, LocalSession session, - @Arg(desc = "The radius to sample for softening", def = "2") - Expression radius, - @Arg(desc = "The number of iterations to perform", def = "4") - int iterations, - @Arg(desc = "The mask of blocks to use for the heightmap", def = "") - Mask maskOpt, - InjectedValueAccess context) throws WorldEditException { + public void smoothBrush( + Player player, LocalSession session, + @Arg(desc = "The radius to sample for softening", def = "2") + Expression radius, + @Arg(desc = "The number of iterations to perform", def = "4") + int iterations, + @Arg(desc = "The mask of blocks to use for the heightmap", def = "") + Mask maskOpt, + InjectedValueAccess context + ) throws WorldEditException { worldEdit.checkMaxBrushRadius(radius); FaweLimit limit = Settings.IMP.getLimit(player); @@ -1154,67 +1262,76 @@ public class BrushCommands { } @Command( - name = "extinguish", - aliases = { "ex" }, - desc = "Shortcut fire extinguisher brush" + name = "extinguish", + aliases = {"ex"}, + desc = "Shortcut fire extinguisher brush" ) @CommandPermissions("worldedit.brush.ex") - public void extinguishBrush(InjectedValueAccess context, EditSession editSession, - @Arg(desc = "The radius to extinguish", def = "5") - Expression radius) throws WorldEditException { + public void extinguishBrush( + InjectedValueAccess context, EditSession editSession, + @Arg(desc = "The radius to extinguish", def = "5") + Expression radius + ) throws WorldEditException { worldEdit.checkMaxBrushRadius(radius); set(context, new SphereBrush()).setSize(radius).setFill(BlockTypes.AIR.getDefaultState()) - .setMask(new SingleBlockTypeMask(editSession, BlockTypes.FIRE)); + .setMask(new SingleBlockTypeMask(editSession, BlockTypes.FIRE)); } @Command( - name = "gravity", - aliases = { "grav" }, - desc = "Gravity brush, simulates the effect of gravity" + name = "gravity", + aliases = {"grav"}, + desc = "Gravity brush, simulates the effect of gravity" ) @CommandPermissions("worldedit.brush.gravity") - public void gravityBrush(InjectedValueAccess context, - @Arg(desc = "The radius to apply gravity in", def = "5") - Expression radius, - @Switch(name = 'h', desc = "Affect blocks starting at max Y, rather than the target location Y + radius") - boolean fromMaxY) throws WorldEditException { + public void gravityBrush( + InjectedValueAccess context, + @Arg(desc = "The radius to apply gravity in", def = "5") + Expression radius, + @Switch(name = 'h', desc = "Affect blocks starting at max Y, rather than the target location Y + radius") + boolean fromMaxY + ) throws WorldEditException { worldEdit.checkMaxBrushRadius(radius); set(context, new GravityBrush(fromMaxY)).setSize(radius); } @Command( - name = "butcher", - aliases = { "kill" }, - desc = "Butcher brush, kills mobs within a radius" + name = "butcher", + aliases = {"kill"}, + desc = "Butcher brush, kills mobs within a radius" ) @CommandPermissions("worldedit.brush.butcher") - public void butcherBrush(Player player, LocalSession session, - @Arg(desc = "Radius to kill mobs in", def = "5") - Expression radius, - @Switch(name = 'p', desc = "Also kill pets") - boolean killPets, - @Switch(name = 'n', desc = "Also kill NPCs") - boolean killNpcs, - @Switch(name = 'g', desc = "Also kill golems") - boolean killGolems, - @Switch(name = 'a', desc = "Also kill animals") - boolean killAnimals, - @Switch(name = 'b', desc = "Also kill ambient mobs") - boolean killAmbient, - @Switch(name = 't', desc = "Also kill mobs with name tags") - boolean killWithName, - @Switch(name = 'f', desc = "Also kill all friendly mobs (Applies the flags `-abgnpt`)") - boolean killFriendly, - @Switch(name = 'r', desc = "Also destroy armor stands") - boolean killArmorStands, - @Switch(name = 'w', desc = "Also kill water mobs") - boolean killWater, InjectedValueAccess context) throws WorldEditException { + public void butcherBrush( + Player player, LocalSession session, + @Arg(desc = "Radius to kill mobs in", def = "5") + Expression radius, + @Switch(name = 'p', desc = "Also kill pets") + boolean killPets, + @Switch(name = 'n', desc = "Also kill NPCs") + boolean killNpcs, + @Switch(name = 'g', desc = "Also kill golems") + boolean killGolems, + @Switch(name = 'a', desc = "Also kill animals") + boolean killAnimals, + @Switch(name = 'b', desc = "Also kill ambient mobs") + boolean killAmbient, + @Switch(name = 't', desc = "Also kill mobs with name tags") + boolean killWithName, + @Switch(name = 'f', desc = "Also kill all friendly mobs (Applies the flags `-abgnpt`)") + boolean killFriendly, + @Switch(name = 'r', desc = "Also destroy armor stands") + boolean killArmorStands, + @Switch(name = 'w', desc = "Also kill water mobs") + boolean killWater, InjectedValueAccess context + ) throws WorldEditException { worldEdit.checkMaxBrushRadius(radius); CreatureButcher flags = new CreatureButcher(player); - flags.or(CreatureButcher.Flags.FRIENDLY, killFriendly); // No permission check here. Flags will instead be filtered by the subsequent calls. + flags.or( + CreatureButcher.Flags.FRIENDLY, + killFriendly + ); // No permission check here. Flags will instead be filtered by the subsequent calls. flags.or(CreatureButcher.Flags.PETS, killPets, "worldedit.butcher.pets"); flags.or(CreatureButcher.Flags.NPCS, killNpcs, "worldedit.butcher.npcs"); flags.or(CreatureButcher.Flags.GOLEMS, killGolems, "worldedit.butcher.golems"); @@ -1229,7 +1346,7 @@ public class BrushCommands { //FAWE start public BrushSettings process(Player player, Arguments arguments, BrushSettings settings) - throws WorldEditException { + throws WorldEditException { LocalSession session = worldEdit.getSessionManager().get(player); session.setTool(player, null); BrushTool tool = session.getBrushTool(player); @@ -1238,16 +1355,16 @@ public class BrushCommands { tool.setSecondary(settings); player.print( - Caption.of("fawe.worldedit.brush.brush.equipped", arguments.get().split(" ")[1])); + Caption.of("fawe.worldedit.brush.brush.equipped", arguments.get().split(" ")[1])); ToolCommands.sendUnbindInstruction(player, UNBIND_COMMAND_COMPONENT); } return settings; } public BrushSettings set(InjectedValueAccess context, Brush brush) - throws InvalidToolBindException { + throws InvalidToolBindException { Player player = context.injectedValue(Key.of(Player.class)) - .orElseThrow(() -> new IllegalStateException("No player")); + .orElseThrow(() -> new IllegalStateException("No player")); LocalSession session = player.getSession(); BrushSettings bs = new BrushSettings(); BrushTool tool = session.getBrushTool(player, false); @@ -1266,7 +1383,7 @@ public class BrushCommands { bs.addSetting(BrushSettings.SettingType.BRUSH, args.substring(args.indexOf(' ') + 1)); } CommandPermissions perms = - context.injectedValue(Key.of(CommandPermissions.class)).orElse(null); + context.injectedValue(Key.of(CommandPermissions.class)).orElse(null); if (perms != null) { bs.addPermissions(perms.value()); } @@ -1274,10 +1391,12 @@ public class BrushCommands { return process(player, arguments, bs); } - static void setOperationBasedBrush(Player player, LocalSession session, double radius, - Contextual factory, - RegionFactory shape, - String permission) throws WorldEditException { + static void setOperationBasedBrush( + Player player, LocalSession session, double radius, + Contextual factory, + RegionFactory shape, + String permission + ) throws WorldEditException { WorldEdit.getInstance().checkMaxBrushRadius(radius); BrushTool tool = session.getBrushTool(player.getItemInHand(HandSide.MAIN_HAND).getType()); tool.setSize(radius); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/ChunkCommands.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/ChunkCommands.java index 0a3365c93..41a7abb1f 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/ChunkCommands.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/ChunkCommands.java @@ -76,9 +76,9 @@ public class ChunkCommands { } @Command( - name = "chunkinfo", - aliases = { "/chunkinfo" }, - desc = "Get information about the chunk you're inside" + name = "chunkinfo", + aliases = {"/chunkinfo"}, + desc = "Get information about the chunk you're inside" ) @CommandPermissions("worldedit.chunkinfo") public void chunkInfo(Player player) { @@ -89,39 +89,48 @@ public class ChunkCommands { final BlockVector2 chunkPos = BlockVector2.at(chunkX, chunkZ); player.print(Caption.of("worldedit.chunkinfo.chunk", TextComponent.of(chunkX), TextComponent.of(chunkZ))); player.print(Caption.of("worldedit.chunkinfo.old-filename", TextComponent.of(LegacyChunkStore.getFilename(chunkPos)))); - player.print(Caption.of("worldedit.chunkinfo.mcregion-filename", TextComponent.of(McRegionChunkStore.getFilename(chunkPos)))); + player.print(Caption.of( + "worldedit.chunkinfo.mcregion-filename", + TextComponent.of(McRegionChunkStore.getFilename(chunkPos)) + )); } @Command( - name = "listchunks", - aliases = { "/listchunks" }, - desc = "List chunks that your selection includes" + name = "listchunks", + aliases = {"/listchunks"}, + desc = "List chunks that your selection includes" ) @CommandPermissions("worldedit.listchunks") - public void listChunks(Actor actor, World world, LocalSession session, - @ArgFlag(name = 'p', desc = "Page number.", def = "1") int page) throws WorldEditException { + public void listChunks( + Actor actor, World world, LocalSession session, + @ArgFlag(name = 'p', desc = "Page number.", def = "1") int page + ) throws WorldEditException { final Region region = session.getSelection(world); - WorldEditAsyncCommandBuilder.createAndSendMessage(actor, + WorldEditAsyncCommandBuilder.createAndSendMessage( + actor, () -> new ChunkListPaginationBox(region).create(page), TranslatableComponent.of( "worldedit.listchunks.listfor", TextComponent.of(actor.getName()) - )); + ) + ); actor.print(new ChunkListPaginationBox(region).create(page)); actor.print(Caption.of("worldedit.listchunks.listfor", TextComponent.of(actor.getName()))); } @Command( - name = "delchunks", - aliases = { "/delchunks" }, - desc = "Delete chunks that your selection includes" + name = "delchunks", + aliases = {"/delchunks"}, + desc = "Delete chunks that your selection includes" ) @CommandPermissions("worldedit.delchunks") @Logging(REGION) - public void deleteChunks(Actor actor, World world, LocalSession session, - @ArgFlag(name = 'o', desc = "Only delete chunks older than the specified time.") - ZonedDateTime beforeTime) throws WorldEditException { + public void deleteChunks( + Actor actor, World world, LocalSession session, + @ArgFlag(name = 'o', desc = "Only delete chunks older than the specified time.") + ZonedDateTime beforeTime + ) throws WorldEditException { Path worldDir = world.getStoragePath(); if (worldDir == null) { throw new StopExecutionException(TextComponent.of("Couldn't find world folder for this world.")); @@ -169,11 +178,15 @@ public class ChunkCommands { throw new StopExecutionException(TextComponent.of("Failed to write chunk list: " + e.getMessage())); } - actor.print(TextComponent.of(String.format("%d chunk(s) have been marked for deletion the next time the server starts.", - newBatch.getChunkCount()))); + actor.print(TextComponent.of(String.format( + "%d chunk(s) have been marked for deletion the next time the server starts.", + newBatch.getChunkCount() + ))); if (currentInfo.batches.size() > 1) { - actor.printDebug(TextComponent.of(String.format("%d chunks total marked for deletion. (May have overlaps).", - currentInfo.batches.stream().mapToInt(ChunkDeletionInfo.ChunkBatch::getChunkCount).sum()))); + actor.printDebug(TextComponent.of(String.format( + "%d chunks total marked for deletion. (May have overlaps).", + currentInfo.batches.stream().mapToInt(ChunkDeletionInfo.ChunkBatch::getChunkCount).sum() + ))); } actor.print(TextComponent.of("You can mark more chunks for deletion, or to stop now, run: ", TextColor.LIGHT_PURPLE) .append(TextComponent.of("/stop", TextColor.AQUA) @@ -181,6 +194,7 @@ public class ChunkCommands { } private static class ChunkListPaginationBox extends PaginationBox { + //private final Region region; private final List chunks; @@ -202,5 +216,7 @@ public class ChunkCommands { public int getComponentsSize() { return chunks.size(); } + } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/ClipboardCommands.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/ClipboardCommands.java index 295cc6a5e..7f33de423 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/ClipboardCommands.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/ClipboardCommands.java @@ -23,17 +23,18 @@ import com.fastasyncworldedit.core.FaweAPI; import com.fastasyncworldedit.core.FaweCache; import com.fastasyncworldedit.core.configuration.Caption; import com.fastasyncworldedit.core.configuration.Settings; -import com.fastasyncworldedit.core.object.FaweLimit; -import com.fastasyncworldedit.core.util.task.RunnableVal; +import com.fastasyncworldedit.core.event.extent.PasteEvent; import com.fastasyncworldedit.core.extent.clipboard.DiskOptimizedClipboard; import com.fastasyncworldedit.core.extent.clipboard.MultiClipboardHolder; import com.fastasyncworldedit.core.extent.clipboard.ReadOnlyClipboard; import com.fastasyncworldedit.core.extent.clipboard.URIClipboardHolder; import com.fastasyncworldedit.core.internal.exception.FaweException; import com.fastasyncworldedit.core.internal.io.FastByteArrayOutputStream; +import com.fastasyncworldedit.core.object.FaweLimit; import com.fastasyncworldedit.core.util.ImgurUtility; import com.fastasyncworldedit.core.util.MainUtil; import com.fastasyncworldedit.core.util.MaskTraverser; +import com.fastasyncworldedit.core.util.task.RunnableVal; import com.google.common.collect.Lists; import com.sk89q.worldedit.EditSession; import com.sk89q.worldedit.LocalConfiguration; @@ -45,7 +46,6 @@ import com.sk89q.worldedit.command.util.CommandPermissionsConditionGenerator; import com.sk89q.worldedit.command.util.Logging; import com.sk89q.worldedit.command.util.annotation.Confirm; import com.sk89q.worldedit.entity.Player; -import com.fastasyncworldedit.core.event.extent.PasteEvent; import com.sk89q.worldedit.extension.platform.Actor; import com.sk89q.worldedit.extent.clipboard.BlockArrayClipboard; import com.sk89q.worldedit.extent.clipboard.Clipboard; @@ -107,28 +107,31 @@ import static com.sk89q.worldedit.command.util.Logging.LogMode.REGION; public class ClipboardCommands { @Command( - name = "/copy", - aliases = "/cp", - desc = "Copy the selection to the clipboard" + name = "/copy", + aliases = "/cp", + desc = "Copy the selection to the clipboard" ) @CommandPermissions("worldedit.clipboard.copy") @Confirm(Confirm.Processor.REGION) - public void copy(Actor actor, LocalSession session, EditSession editSession, - @Selection Region region, - @Switch(name = 'e', desc = "Also copy entities") - boolean copyEntities, - @Switch(name = 'b', desc = "Also copy biomes") - boolean copyBiomes, - //FAWE start - @Switch(name = 'c', desc = "Set the origin of the clipboard to the center of the copied region") - boolean centerClipboard, - @ArgFlag(name = 'm', desc = "Set the include mask, non-matching blocks become air", def = "") - Mask mask) throws WorldEditException { + public void copy( + Actor actor, LocalSession session, EditSession editSession, + @Selection Region region, + @Switch(name = 'e', desc = "Also copy entities") + boolean copyEntities, + @Switch(name = 'b', desc = "Also copy biomes") + boolean copyBiomes, + //FAWE start + @Switch(name = 'c', desc = "Set the origin of the clipboard to the center of the copied region") + boolean centerClipboard, + @ArgFlag(name = 'm', desc = "Set the include mask, non-matching blocks become air", def = "") + Mask mask + ) throws WorldEditException { BlockVector3 min = region.getMinimumPoint(); BlockVector3 max = region.getMaximumPoint(); long volume = - ((long) max.getX() - (long) min.getX() + 1) * ((long) max.getY() - (long) min.getY() + 1) * ((long) max.getZ() - (long) min.getZ() + 1); + ((long) max.getX() - (long) min.getX() + 1) * ((long) max.getY() - (long) min.getY() + 1) * ((long) max.getZ() - (long) min + .getZ() + 1); FaweLimit limit = actor.getLimit(); if (volume >= limit.MAX_CHECKS) { throw FaweCache.MAX_CHECKS; @@ -171,18 +174,21 @@ public class ClipboardCommands { //FAWE start @Command( - name = "/lazycopy", - desc = "Lazily copy the selection to the clipboard" + name = "/lazycopy", + desc = "Lazily copy the selection to the clipboard" ) @CommandPermissions("worldedit.clipboard.lazycopy") - public void lazyCopy(Actor actor, LocalSession session, EditSession editSession, @Selection Region region, - @Switch(name = 'e', desc = "Skip copy entities") - boolean skipEntities, - @Switch(name = 'b', desc = "Also copy biomes") - boolean copyBiomes) throws WorldEditException { + public void lazyCopy( + Actor actor, LocalSession session, EditSession editSession, @Selection Region region, + @Switch(name = 'e', desc = "Skip copy entities") + boolean skipEntities, + @Switch(name = 'b', desc = "Also copy biomes") + boolean copyBiomes + ) throws WorldEditException { BlockVector3 min = region.getMinimumPoint(); BlockVector3 max = region.getMaximumPoint(); - long volume = (((long) max.getX() - (long) min.getX() + 1) * ((long) max.getY() - (long) min.getY() + 1) * ((long) max.getZ() - (long) min.getZ() + 1)); + long volume = (((long) max.getX() - (long) min.getX() + 1) * ((long) max.getY() - (long) min.getY() + 1) * ((long) max.getZ() - (long) min + .getZ() + 1)); FaweLimit limit = actor.getLimit(); if (volume >= limit.MAX_CHECKS) { throw new FaweException(Caption.of("fawe.cancel.worldedit.cancel.reason.max.checks")); @@ -229,29 +235,32 @@ public class ClipboardCommands { //FAWE end @Command( - name = "/cut", - desc = "Cut the selection to the clipboard", - descFooter = "WARNING: Cutting and pasting entities cannot be undone!" + name = "/cut", + desc = "Cut the selection to the clipboard", + descFooter = "WARNING: Cutting and pasting entities cannot be undone!" ) @CommandPermissions("worldedit.clipboard.cut") @Logging(REGION) @Confirm(Confirm.Processor.REGION) - public void cut(Actor actor, LocalSession session, EditSession editSession, - @Selection Region region, - @Arg(desc = "Pattern to leave in place of the selection", def = "air") - Pattern leavePattern, - @Switch(name = 'e', desc = "Also cut entities") - boolean copyEntities, - @Switch(name = 'b', desc = "Also copy biomes, source biomes are unaffected") - boolean copyBiomes, - @ArgFlag(name = 'm', desc = "Set the exclude mask, non-matching blocks become air") - Mask mask) throws WorldEditException { + public void cut( + Actor actor, LocalSession session, EditSession editSession, + @Selection Region region, + @Arg(desc = "Pattern to leave in place of the selection", def = "air") + Pattern leavePattern, + @Switch(name = 'e', desc = "Also cut entities") + boolean copyEntities, + @Switch(name = 'b', desc = "Also copy biomes, source biomes are unaffected") + boolean copyBiomes, + @ArgFlag(name = 'm', desc = "Set the exclude mask, non-matching blocks become air") + Mask mask + ) throws WorldEditException { //FAWE start - Inject limits & respect source mask BlockVector3 min = region.getMinimumPoint(); BlockVector3 max = region.getMaximumPoint(); - long volume = (((long) max.getX() - (long) min.getX() + 1) * ((long) max.getY() - (long) min.getY() + 1) * ((long) max.getZ() - (long) min.getZ() + 1)); + long volume = (((long) max.getX() - (long) min.getX() + 1) * ((long) max.getY() - (long) min.getY() + 1) * ((long) max.getZ() - (long) min + .getZ() + 1)); FaweLimit limit = actor.getLimit(); if (volume >= limit.MAX_CHECKS) { throw FaweCache.MAX_CHECKS; @@ -299,13 +308,17 @@ public class ClipboardCommands { //FAWE start @Command( - name = "download", - aliases = { "/download" }, - desc = "Downloads your clipboard through the configured web interface" + name = "download", + aliases = {"/download"}, + desc = "Downloads your clipboard through the configured web interface" ) @Deprecated @CommandPermissions({"worldedit.clipboard.download"}) - public void download(final Player player, final LocalSession session, @Arg(name = "format", desc = "String", def = "fast") final String formatName) throws WorldEditException { + public void download( + final Player player, + final LocalSession session, + @Arg(name = "format", desc = "String", def = "fast") final String formatName + ) throws WorldEditException { final ClipboardFormat format = ClipboardFormats.findByAlias(formatName); if (format == null) { player.print(Caption.of("fawe.worldedit.clipboard.clipboard.invalid.format", formatName)); @@ -401,17 +414,19 @@ public class ClipboardCommands { ) @CommandPermissions("worldedit.clipboard.place") @Logging(PLACEMENT) - public void place(Actor actor, World world, LocalSession session, final EditSession editSession, - @Switch(name = 'a', desc = "Skip air blocks") - boolean ignoreAirBlocks, - @Switch(name = 'o', desc = "Paste at the original position") - boolean atOrigin, - @Switch(name = 's', desc = "Select the region after pasting") - boolean selectPasted, - @Switch(name = 'e', desc = "Paste entities if available") - boolean pasteEntities, - @Switch(name = 'b', desc = "Paste biomes if available") - boolean pasteBiomes) throws WorldEditException { + public void place( + Actor actor, World world, LocalSession session, final EditSession editSession, + @Switch(name = 'a', desc = "Skip air blocks") + boolean ignoreAirBlocks, + @Switch(name = 'o', desc = "Paste at the original position") + boolean atOrigin, + @Switch(name = 's', desc = "Select the region after pasting") + boolean selectPasted, + @Switch(name = 'e', desc = "Paste entities if available") + boolean pasteEntities, + @Switch(name = 'b', desc = "Paste biomes if available") + boolean pasteBiomes + ) throws WorldEditException { ClipboardHolder holder = session.getClipboard(); final Clipboard clipboard = holder.getClipboard(); final BlockVector3 origin = clipboard.getOrigin(); @@ -424,7 +439,10 @@ public class ClipboardCommands { if (selectPasted) { BlockVector3 clipboardOffset = clipboard.getRegion().getMinimumPoint().subtract(clipboard.getOrigin()); BlockVector3 realTo = to.add(holder.getTransform().apply(clipboardOffset.toVector3()).toBlockPoint()); - BlockVector3 max = realTo.add(holder.getTransform().apply(region.getMaximumPoint().subtract(region.getMinimumPoint()).toVector3()).toBlockPoint()); + BlockVector3 max = realTo.add(holder + .getTransform() + .apply(region.getMaximumPoint().subtract(region.getMinimumPoint()).toVector3()) + .toBlockPoint()); RegionSelector selector = new CuboidRegionSelector(world, realTo, max); session.setRegionSelector(world, selector); selector.learnChanges(); @@ -439,46 +457,50 @@ public class ClipboardCommands { private void saveDiskClipboard(Clipboard clipboard) { DiskOptimizedClipboard c; - if (clipboard instanceof DiskOptimizedClipboard) + if (clipboard instanceof DiskOptimizedClipboard) { c = (DiskOptimizedClipboard) clipboard; - else if (clipboard instanceof BlockArrayClipboard - && ((BlockArrayClipboard) clipboard).getParent() instanceof DiskOptimizedClipboard) + } else if (clipboard instanceof BlockArrayClipboard + && ((BlockArrayClipboard) clipboard).getParent() instanceof DiskOptimizedClipboard) { c = (DiskOptimizedClipboard) ((BlockArrayClipboard) clipboard).getParent(); - else + } else { return; + } c.flush(); } //FAWE end @Command( - name = "/paste", - aliases = {"/p", "/pa"}, - desc = "Paste the clipboard's contents" + name = "/paste", + aliases = {"/p", "/pa"}, + desc = "Paste the clipboard's contents" ) @CommandPermissions("worldedit.clipboard.paste") @Logging(PLACEMENT) - public void paste(Actor actor, World world, LocalSession session, EditSession editSession, - @Switch(name = 'a', desc = "Skip air blocks") - boolean ignoreAirBlocks, - @Switch(name = 'o', desc = "Paste at the original position") - boolean atOrigin, - @Switch(name = 's', desc = "Select the region after pasting") - boolean selectPasted, - @Switch(name = 'n', desc = "No paste, select only. (Implies -s)") - boolean onlySelect, - @Switch(name = 'e', desc = "Paste entities if available") - boolean pasteEntities, - @Switch(name = 'b', desc = "Paste biomes if available") - boolean pasteBiomes, - @ArgFlag(name = 'm', desc = "Only paste blocks matching this mask") - @ClipboardMask - Mask sourceMask) throws WorldEditException { + public void paste( + Actor actor, World world, LocalSession session, EditSession editSession, + @Switch(name = 'a', desc = "Skip air blocks") + boolean ignoreAirBlocks, + @Switch(name = 'o', desc = "Paste at the original position") + boolean atOrigin, + @Switch(name = 's', desc = "Select the region after pasting") + boolean selectPasted, + @Switch(name = 'n', desc = "No paste, select only. (Implies -s)") + boolean onlySelect, + @Switch(name = 'e', desc = "Paste entities if available") + boolean pasteEntities, + @Switch(name = 'b', desc = "Paste biomes if available") + boolean pasteBiomes, + @ArgFlag(name = 'm', desc = "Only paste blocks matching this mask") + @ClipboardMask + Mask sourceMask + ) throws WorldEditException { ClipboardHolder holder = session.getClipboard(); if (holder.getTransform().isIdentity() && editSession.getSourceMask() == null) { //FAWE start - use place place(actor, world, session, editSession, ignoreAirBlocks, atOrigin, selectPasted, - pasteEntities, pasteBiomes); + pasteEntities, pasteBiomes + ); //FAWE end return; } @@ -507,7 +529,9 @@ public class ClipboardCommands { if (selectPasted || onlySelect) { BlockVector3 clipboardOffset = clipboard.getRegion().getMinimumPoint().subtract(clipboard.getOrigin()); Vector3 realTo = to.toVector3().add(holder.getTransform().apply(clipboardOffset.toVector3())); - Vector3 max = realTo.add(holder.getTransform().apply(region.getMaximumPoint().subtract(region.getMinimumPoint()).toVector3())); + Vector3 max = realTo.add(holder + .getTransform() + .apply(region.getMaximumPoint().subtract(region.getMinimumPoint()).toVector3())); RegionSelector selector = new CuboidRegionSelector(world, realTo.toBlockPoint(), max.toBlockPoint()); session.setRegionSelector(world, selector); selector.learnChanges(); @@ -537,20 +561,22 @@ public class ClipboardCommands { //FAWE end @Command( - name = "/rotate", - desc = "Rotate the contents of the clipboard", - descFooter = "Non-destructively rotate the contents of the clipboard.\n" - + "Angles are provided in degrees and a positive angle will result in a clockwise rotation. " - + "Multiple rotations can be stacked. Interpolation is not performed so angles should be a multiple of 90 degrees.\n" + name = "/rotate", + desc = "Rotate the contents of the clipboard", + descFooter = "Non-destructively rotate the contents of the clipboard.\n" + + "Angles are provided in degrees and a positive angle will result in a clockwise rotation. " + + "Multiple rotations can be stacked. Interpolation is not performed so angles should be a multiple of 90 degrees.\n" ) @CommandPermissions("worldedit.clipboard.rotate") - public void rotate(Actor actor, LocalSession session, - @Arg(desc = "Amount to rotate on the y-axis") - double rotateY, - @Arg(desc = "Amount to rotate on the x-axis", def = "0") - double rotateX, - @Arg(desc = "Amount to rotate on the z-axis", def = "0") - double rotateZ) throws WorldEditException { + public void rotate( + Actor actor, LocalSession session, + @Arg(desc = "Amount to rotate on the y-axis") + double rotateY, + @Arg(desc = "Amount to rotate on the x-axis", def = "0") + double rotateX, + @Arg(desc = "Amount to rotate on the z-axis", def = "0") + double rotateZ + ) throws WorldEditException { ClipboardHolder holder = session.getClipboard(); AffineTransform transform = new AffineTransform(); transform = transform.rotateY(-rotateY); @@ -561,13 +587,15 @@ public class ClipboardCommands { } @Command( - name = "/flip", - desc = "Flip the contents of the clipboard across the origin" + name = "/flip", + desc = "Flip the contents of the clipboard across the origin" ) @CommandPermissions("worldedit.clipboard.flip") - public void flip(Actor actor, LocalSession session, - @Arg(desc = "The direction to flip, defaults to look direction.", def = Direction.AIM) - @Direction BlockVector3 direction) throws WorldEditException { + public void flip( + Actor actor, LocalSession session, + @Arg(desc = "The direction to flip, defaults to look direction.", def = Direction.AIM) + @Direction BlockVector3 direction + ) throws WorldEditException { ClipboardHolder holder = session.getClipboard(); AffineTransform transform = new AffineTransform(); transform = transform.scale(direction.abs().multiply(-2).add(1, 1, 1).toVector3()); @@ -576,13 +604,14 @@ public class ClipboardCommands { } @Command( - name = "clearclipboard", - aliases = { "/clearclipboard", "/cc", "/clearclip" }, - desc = "Clear your clipboard" + name = "clearclipboard", + aliases = {"/clearclipboard", "/cc", "/clearclip"}, + desc = "Clear your clipboard" ) @CommandPermissions("worldedit.clipboard.clear") public void clearClipboard(Actor actor, LocalSession session) throws WorldEditException { session.setClipboard(null); actor.print(Caption.of("worldedit.clearclipboard.cleared")); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/ExpandCommands.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/ExpandCommands.java index 686324ced..9439832b8 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/ExpandCommands.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/ExpandCommands.java @@ -54,31 +54,33 @@ import static com.sk89q.worldedit.internal.command.CommandUtil.requireIV; @CommandContainer public class ExpandCommands { - public static void register(CommandRegistrationHandler registration, - CommandManager commandManager, - CommandManagerService commandManagerService) { + public static void register( + CommandRegistrationHandler registration, + CommandManager commandManager, + CommandManagerService commandManagerService + ) { // Collect the general expand command CommandManager collect = commandManagerService.newCommandManager(); registration.register( - collect, - ExpandCommandsRegistration.builder(), - new ExpandCommands() + collect, + ExpandCommandsRegistration.builder(), + new ExpandCommands() ); Command expandBaseCommand = collect.getCommand("/expand") - .orElseThrow(() -> new IllegalStateException("No /expand command")); + .orElseThrow(() -> new IllegalStateException("No /expand command")); commandManager.register("/expand", command -> { command.condition(new PermissionCondition(ImmutableSet.of("worldedit.selection.expand"))); command.addPart(SubCommandPart.builder( Caption.of("vert"), - TextComponent.of("Vertical expansion sub-command") + TextComponent.of("Vertical expansion sub-command") ) - .withCommands(ImmutableSet.of(createVertCommand(commandManager))) - .optional() - .build()); + .withCommands(ImmutableSet.of(createVertCommand(commandManager))) + .optional() + .build()); command.addParts(expandBaseCommand.getParts()); command.action(expandBaseCommand.getAction()); @@ -88,16 +90,16 @@ public class ExpandCommands { private static Command createVertCommand(CommandManager commandManager) { return commandManager.newCommand("vert") - .description(Caption.of("worldedit.expand.description.vert")) - .action(parameters -> { - expandVert( - requireIV(Key.of(LocalSession.class), "localSession", parameters), - requireIV(Key.of(Actor.class), "actor", parameters), - requireIV(Key.of(World.class), "world", parameters) - ); - return 1; - }) - .build(); + .description(Caption.of("worldedit.expand.description.vert")) + .action(parameters -> { + expandVert( + requireIV(Key.of(LocalSession.class), "localSession", parameters), + requireIV(Key.of(Actor.class), "actor", parameters), + requireIV(Key.of(World.class), "world", parameters) + ); + return 1; + }) + .build(); } private static void expandVert(LocalSession session, Actor actor, World world) throws IncompleteRegionException { @@ -105,8 +107,9 @@ public class ExpandCommands { try { long oldSize = region.getVolume(); region.expand( - BlockVector3.at(0, (world.getMaxY() + 1), 0), - BlockVector3.at(0, -(world.getMaxY() + 1), 0)); + BlockVector3.at(0, (world.getMaxY() + 1), 0), + BlockVector3.at(0, -(world.getMaxY() + 1), 0) + ); session.getRegionSelector(world).learnChanges(); long newSize = region.getVolume(); session.getRegionSelector(world).explainRegionAdjust(actor, session); @@ -120,18 +123,20 @@ public class ExpandCommands { } @org.enginehub.piston.annotation.Command( - name = "/expand", - desc = "Expand the selection area" + name = "/expand", + desc = "Expand the selection area" ) @Logging(REGION) - public void expand(Actor actor, World world, LocalSession session, - @Arg(desc = "Amount to expand the selection by, can be `vert` to expand to the whole vertical column") - int amount, - @Arg(desc = "Amount to expand the selection by in the other direction", def = "0") - int reverseAmount, - @Arg(desc = "Direction to expand", def = Direction.AIM) - @MultiDirection - List direction) throws WorldEditException { + public void expand( + Actor actor, World world, LocalSession session, + @Arg(desc = "Amount to expand the selection by, can be `vert` to expand to the whole vertical column") + int amount, + @Arg(desc = "Amount to expand the selection by in the other direction", def = "0") + int reverseAmount, + @Arg(desc = "Direction to expand", def = Direction.AIM) + @MultiDirection + List direction + ) throws WorldEditException { Region region = session.getSelection(world); long oldSize = region.getVolume(); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/FlattenedClipboardTransform.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/FlattenedClipboardTransform.java index eb43a4000..14e3d3307 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/FlattenedClipboardTransform.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/FlattenedClipboardTransform.java @@ -49,7 +49,7 @@ public class FlattenedClipboardTransform { /** * Create a new instance. * - * @param original the original clipboard + * @param original the original clipboard * @param transform the transform */ private FlattenedClipboardTransform(Clipboard original, Transform transform) { @@ -73,9 +73,10 @@ public class FlattenedClipboardTransform { new CombinedTransform( new AffineTransform().translate(original.getOrigin().multiply(-1)), transform, - new AffineTransform().translate(original.getOrigin())); + new AffineTransform().translate(original.getOrigin()) + ); - Vector3[] corners = new Vector3[] { + Vector3[] corners = new Vector3[]{ minimum, maximum, minimum.withX(maximum.getX()), @@ -119,7 +120,13 @@ public class FlattenedClipboardTransform { extent = new BlockTransformExtent(original, transform); } //FAWE end - ForwardExtentCopy copy = new ForwardExtentCopy(extent, original.getRegion(), original.getOrigin(), target, original.getOrigin()); + ForwardExtentCopy copy = new ForwardExtentCopy( + extent, + original.getRegion(), + original.getOrigin(), + target, + original.getOrigin() + ); copy.setTransform(transform); if (original.hasBiomes()) { copy.setCopyingBiomes(true); @@ -130,7 +137,7 @@ public class FlattenedClipboardTransform { /** * Create a new instance to bake the transform with. * - * @param original the original clipboard + * @param original the original clipboard * @param transform the transform * @return a builder */ diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/GeneralCommands.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/GeneralCommands.java index 39c962548..15a04d03c 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/GeneralCommands.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/GeneralCommands.java @@ -86,22 +86,24 @@ import static com.google.common.base.Preconditions.checkNotNull; @CommandContainer(superTypes = CommandPermissionsConditionGenerator.Registration.class) public class GeneralCommands { - public static void register(CommandRegistrationHandler registration, - CommandManager commandManager, - CommandManagerService commandManagerService, - WorldEdit worldEdit) { + public static void register( + CommandRegistrationHandler registration, + CommandManager commandManager, + CommandManagerService commandManagerService, + WorldEdit worldEdit + ) { // Collect the tool commands CommandManager collect = commandManagerService.newCommandManager(); registration.register( - collect, - GeneralCommandsRegistration.builder(), - new GeneralCommands(worldEdit) + collect, + GeneralCommandsRegistration.builder(), + new GeneralCommands(worldEdit) ); Set commands = collect.getAllCommands() - .collect(Collectors.toSet()); + .collect(Collectors.toSet()); for (org.enginehub.piston.Command command : commands) { /*FAWE start - if in FAWE, //fast will remain for now (command.getName().equals("/fast")) { @@ -120,15 +122,17 @@ public class GeneralCommands { } } - private static Component replaceFastForPerf(org.enginehub.piston.Command oldCmd, - CommandParameters oldParams) { + private static Component replaceFastForPerf( + org.enginehub.piston.Command oldCmd, + CommandParameters oldParams + ) { if (oldParams.getMetadata() == null) { return CommandUtil.createNewCommandReplacementText("//perf"); } ImmutableList args = oldParams.getMetadata().getArguments(); if (args.isEmpty()) { return TextComponent.of("There is not yet a replacement for //fast" + - " with no arguments"); + " with no arguments"); } String arg0 = args.get(0).toLowerCase(Locale.ENGLISH); String flipped; @@ -158,13 +162,15 @@ public class GeneralCommands { } @Command( - name = "/limit", - desc = "Modify block change limit" + name = "/limit", + desc = "Modify block change limit" ) @CommandPermissions("worldedit.limit") - public void limit(Actor actor, LocalSession session, - @Arg(desc = "The limit to set", def = "") - Integer limit) { + public void limit( + Actor actor, LocalSession session, + @Arg(desc = "The limit to set", def = "") + Integer limit + ) { LocalConfiguration config = worldEdit.getConfiguration(); boolean mayDisable = actor.hasPermission("worldedit.limit.unrestricted"); @@ -186,13 +192,15 @@ public class GeneralCommands { } @Command( - name = "/timeout", - desc = "Modify evaluation timeout time." + name = "/timeout", + desc = "Modify evaluation timeout time." ) @CommandPermissions("worldedit.timeout") - public void timeout(Actor actor, LocalSession session, - @Arg(desc = "The timeout time to set", def = "") - Integer limit) { + public void timeout( + Actor actor, LocalSession session, + @Arg(desc = "The timeout time to set", def = "") + Integer limit + ) { LocalConfiguration config = worldEdit.getConfiguration(); boolean mayDisable = actor.hasPermission("worldedit.timeout.unrestricted"); @@ -213,19 +221,21 @@ public class GeneralCommands { } @Command( - name = "/perf", - desc = "Toggle side effects for performance", - descFooter = "Note that this command is GOING to change in the future." + - " Do not depend on the exact format of this command yet." + name = "/perf", + desc = "Toggle side effects for performance", + descFooter = "Note that this command is GOING to change in the future." + + " Do not depend on the exact format of this command yet." ) @CommandPermissions("worldedit.perf") - void perf(Actor actor, LocalSession session, - @Arg(desc = "The side effect", def = "") - SideEffect sideEffect, - @Arg(desc = "The new side effect state", def = "") - SideEffect.State newState, - @Switch(name = 'h', desc = "Show the info box") - boolean showInfoBox) throws WorldEditException { + void perf( + Actor actor, LocalSession session, + @Arg(desc = "The side effect", def = "") + SideEffect sideEffect, + @Arg(desc = "The new side effect state", def = "") + SideEffect.State newState, + @Switch(name = 'h', desc = "Show the info box") + boolean showInfoBox + ) throws WorldEditException { if (sideEffect != null) { SideEffect.State currentState = session.getSideEffectSet().getState(sideEffect); if (newState != null && newState == currentState) { @@ -276,13 +286,15 @@ public class GeneralCommands { } @Command( - name = "/reorder", - desc = "Sets the reorder mode of WorldEdit" + name = "/reorder", + desc = "Sets the reorder mode of WorldEdit" ) @CommandPermissions("worldedit.reorder") - public void reorderMode(Actor actor, LocalSession session, - @Arg(desc = "The reorder mode", def = "") - EditSession.ReorderMode reorderMode) { + public void reorderMode( + Actor actor, LocalSession session, + @Arg(desc = "The reorder mode", def = "") + EditSession.ReorderMode reorderMode + ) { if (reorderMode == null) { actor.print(Caption.of("worldedit.reorder.current", TextComponent.of(session.getReorderMode().getDisplayName()))); } else { @@ -292,13 +304,15 @@ public class GeneralCommands { } @Command( - name = "/drawsel", - desc = "Toggle drawing the current selection" + name = "/drawsel", + desc = "Toggle drawing the current selection" ) @CommandPermissions("worldedit.drawsel") - public void drawSelection(Player player, LocalSession session, - @Arg(desc = "The new draw selection state", def = "") - Boolean drawSelection) throws WorldEditException { + public void drawSelection( + Player player, LocalSession session, + @Arg(desc = "The new draw selection state", def = "") + Boolean drawSelection + ) throws WorldEditException { if (!WorldEdit.getInstance().getConfiguration().serverSideCUI) { throw new AuthorizationException(Caption.of("worldedit.error.disabled")); } @@ -316,17 +330,24 @@ public class GeneralCommands { session.setUseServerCUI(true); session.updateServerCUI(player); int maxSize = ServerCUIHandler.getMaxServerCuiSize(); - player.print(Caption.of("worldedit.drawsel.enabled", TextComponent.of(maxSize), TextComponent.of(maxSize), TextComponent.of(maxSize))); + player.print(Caption.of( + "worldedit.drawsel.enabled", + TextComponent.of(maxSize), + TextComponent.of(maxSize), + TextComponent.of(maxSize) + )); } } @Command( - name = "/world", - desc = "Sets the world override" + name = "/world", + desc = "Sets the world override" ) @CommandPermissions("worldedit.world") - public void world(Actor actor, LocalSession session, - @Arg(desc = "The world override", def = "") World world) { + public void world( + Actor actor, LocalSession session, + @Arg(desc = "The world override", def = "") World world + ) { session.setWorldOverride(world); if (world == null) { actor.print(Caption.of("worldedit.world.remove")); @@ -336,15 +357,17 @@ public class GeneralCommands { } @Command( - name = "/watchdog", - desc = "Changes watchdog hook state.", - descFooter = "This is dependent on platform implementation. " + - "Not all platforms support watchdog hooks, or contain a watchdog." + name = "/watchdog", + desc = "Changes watchdog hook state.", + descFooter = "This is dependent on platform implementation. " + + "Not all platforms support watchdog hooks, or contain a watchdog." ) @CommandPermissions("worldedit.watchdog") - public void watchdog(Actor actor, LocalSession session, - @Arg(desc = "The mode to set the watchdog hook to", def = "") - HookMode hookMode) { + public void watchdog( + Actor actor, LocalSession session, + @Arg(desc = "The mode to set the watchdog hook to", def = "") + HookMode hookMode + ) { if (WorldEdit.getInstance().getPlatformManager().queryCapability(Capability.GAME_HOOKS).getWatchdog() == null) { actor.print(Caption.of("worldedit.watchdog.no-hook")); return; @@ -359,14 +382,16 @@ public class GeneralCommands { } @Command( - name = "gmask", - aliases = {"/gmask"}, - desc = "Set the global mask" + name = "gmask", + aliases = {"/gmask"}, + desc = "Set the global mask" ) @CommandPermissions("worldedit.global-mask") - public void gmask(Actor actor, LocalSession session, - @Arg(desc = "The mask to set", def = "") - Mask mask) { + public void gmask( + Actor actor, LocalSession session, + @Arg(desc = "The mask to set", def = "") + Mask mask + ) { if (mask == null) { session.setMask(null); actor.print(Caption.of("worldedit.gmask.disabled")); @@ -377,9 +402,9 @@ public class GeneralCommands { } @Command( - name = "toggleplace", - aliases = {"/toggleplace"}, - desc = "Switch between your position and pos1 for placement" + name = "toggleplace", + aliases = {"/toggleplace"}, + desc = "Switch between your position and pos1 for placement" ) @CommandPermissions("worldedit.toggleplace") public void togglePlace(Actor actor, LocalSession session) { @@ -395,20 +420,22 @@ public class GeneralCommands { } @Command( - name = "searchitem", - aliases = {"/searchitem", "/l", "/search"}, - desc = "Search for an item" + name = "searchitem", + aliases = {"/searchitem", "/l", "/search"}, + desc = "Search for an item" ) @CommandPermissions("worldedit.searchitem") - public void searchItem(Actor actor, - @Switch(name = 'b', desc = "Only search for blocks") - boolean blocksOnly, - @Switch(name = 'i', desc = "Only search for items") - boolean itemsOnly, - @ArgFlag(name = 'p', desc = "Page of results to return", def = "1") - int page, - @Arg(desc = "Search query", variable = true) - List query) { + public void searchItem( + Actor actor, + @Switch(name = 'b', desc = "Only search for blocks") + boolean blocksOnly, + @Switch(name = 'i', desc = "Only search for items") + boolean itemsOnly, + @ArgFlag(name = 'p', desc = "Page of results to return", def = "1") + int page, + @Arg(desc = "Search query", variable = true) + List query + ) { String search = String.join(" ", query); if (search.length() <= 2) { actor.print(Caption.of("worldedit.searchitem.too-short")); @@ -420,10 +447,12 @@ public class GeneralCommands { } WorldEditAsyncCommandBuilder.createAndSendMessage(actor, new ItemSearcher(search, blocksOnly, itemsOnly, page), - Caption.of("worldedit.searchitem.searching")); + Caption.of("worldedit.searchitem.searching") + ); } private static class ItemSearcher implements Callable { + private final boolean blocksOnly; private final boolean itemsOnly; private final String search; @@ -454,15 +483,16 @@ public class GeneralCommands { if (id.contains(idMatch)) { Component name = searchType.getRichName(); results.put(id, TextComponent.builder() - .append(name) - .append(" (" + id + ")") - .build()); + .append(name) + .append(" (" + id + ")") + .build()); } } List list = new ArrayList<>(results.values()); return PaginationBox.fromComponents("Search results for '" + search + "'", command, list) - .create(page); + .create(page); } + } //FAWE start @@ -473,7 +503,13 @@ public class GeneralCommands { desc = "Set the global mask" ) @CommandPermissions("worldedit.global-texture") - public void gtexture(Player player, World worldArg, LocalSession session, EditSession editSession, @Arg(name = "context", desc = "InjectedValueAccess", def = "") List arguments) throws WorldEditException, FileNotFoundException { + public void gtexture( + Player player, + World worldArg, + LocalSession session, + EditSession editSession, + @Arg(name = "context", desc = "InjectedValueAccess", def = "") List arguments + ) throws WorldEditException, FileNotFoundException { // gtexture // TODO NOT IMPLEMENTED convert this to an ArgumentConverter if (arguments.isEmpty()) { @@ -536,13 +572,18 @@ public class GeneralCommands { } @Command( - name = "/gsmask", - aliases = {"gsmask", "globalsourcemask", "/globalsourcemask"}, - desc = "Set the global source mask", - descFooter = "The global source mask applies to all edits you do and masks based on the source blocks (e.g., the blocks in your clipboard)" + name = "/gsmask", + aliases = {"gsmask", "globalsourcemask", "/globalsourcemask"}, + desc = "Set the global source mask", + descFooter = "The global source mask applies to all edits you do and masks based on the source blocks (e.g., the blocks in your clipboard)" ) @CommandPermissions({"worldedit.global-mask", "worldedit.mask.global"}) - public void gsmask(Player player, LocalSession session, EditSession editSession, @Arg(desc = "The mask to set", def = "") Mask maskOpt) throws WorldEditException { + public void gsmask( + Player player, + LocalSession session, + EditSession editSession, + @Arg(desc = "The mask to set", def = "") Mask maskOpt + ) throws WorldEditException { session.setSourceMask(maskOpt); if (maskOpt == null) { player.print(Caption.of("fawe.worldedit.general.source.mask.disabled")); @@ -553,12 +594,13 @@ public class GeneralCommands { @Command( - name = "/gtransform", - aliases = {"gtransform"}, - desc = "Set the global transform" + name = "/gtransform", + aliases = {"gtransform"}, + desc = "Set the global transform" ) @CommandPermissions({"worldedit.global-transform", "worldedit.transform.global"}) - public void gtransform(Player player, EditSession editSession, LocalSession session, ResettableExtent transform) throws WorldEditException { + public void gtransform(Player player, EditSession editSession, LocalSession session, ResettableExtent transform) throws + WorldEditException { session.setTransform(transform); if (transform == null) { player.print(Caption.of("fawe.worldedit.general.transform.disabled")); @@ -568,9 +610,9 @@ public class GeneralCommands { } @Command( - name = "/tips", - aliases = {"tips"}, - desc = "Toggle FAWE tips" + name = "/tips", + aliases = {"tips"}, + desc = "Toggle FAWE tips" ) @CommandPermissions("fawe.tips") public void tips(Player player, LocalSession session) throws WorldEditException { @@ -587,9 +629,11 @@ public class GeneralCommands { ) @CommandPermissions("worldedit.fast") @Deprecated - void fast(Actor actor, LocalSession session, - @Arg(desc = "The new fast mode state", def = "") - Boolean fastMode) { + void fast( + Actor actor, LocalSession session, + @Arg(desc = "The new fast mode state", def = "") + Boolean fastMode + ) { boolean hasFastMode = session.hasFastMode(); if (fastMode != null && fastMode == hasFastMode) { actor.print(Caption.of(fastMode ? "worldedit.fast.enabled.already" : "worldedit.fast.disabled.already")); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/GenerationCommands.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/GenerationCommands.java index b6cce437e..bb1d58886 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/GenerationCommands.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/GenerationCommands.java @@ -21,6 +21,7 @@ package com.sk89q.worldedit.command; import com.fastasyncworldedit.core.Fawe; import com.fastasyncworldedit.core.configuration.Caption; +import com.fastasyncworldedit.core.function.generator.CavesGen; import com.fastasyncworldedit.core.util.MainUtil; import com.fastasyncworldedit.core.util.TextureUtil; import com.fastasyncworldedit.core.util.image.ImageUtil; @@ -34,7 +35,6 @@ import com.sk89q.worldedit.command.util.Logging; import com.sk89q.worldedit.command.util.annotation.Confirm; import com.sk89q.worldedit.entity.Player; import com.sk89q.worldedit.extension.platform.Actor; -import com.fastasyncworldedit.core.function.generator.CavesGen; import com.sk89q.worldedit.function.mask.AbstractExtentMask; import com.sk89q.worldedit.function.mask.Mask; import com.sk89q.worldedit.function.operation.Operations; @@ -58,7 +58,7 @@ import org.enginehub.piston.annotation.param.Arg; import org.enginehub.piston.annotation.param.Switch; import org.jetbrains.annotations.Range; -import java.awt.*; +import java.awt.RenderingHints; import java.awt.image.BufferedImage; import java.io.IOException; import java.net.URL; @@ -89,38 +89,42 @@ public class GenerationCommands { } @Command( - name = "/hcyl", - desc = "Generates a hollow cylinder." + name = "/hcyl", + desc = "Generates a hollow cylinder." ) @CommandPermissions("worldedit.generation.cylinder") @Logging(PLACEMENT) - public int hcyl(Actor actor, LocalSession session, EditSession editSession, - @Arg(desc = "The pattern of blocks to generate") - Pattern pattern, - @Arg(desc = "The radii of the cylinder. 1st is N/S, 2nd is E/W") - @Radii(2) - List radii, - @Arg(desc = "The height of the cylinder", def = "1") - int height) throws WorldEditException { - return cyl(actor, session, editSession, pattern, radii, height, true); + public int hcyl( + Actor actor, LocalSession session, EditSession editSession, + @Arg(desc = "The pattern of blocks to generate") + Pattern pattern, + @Arg(desc = "The radii of the cylinder. 1st is N/S, 2nd is E/W") + @Radii(2) + List radii, + @Arg(desc = "The height of the cylinder", def = "1") + int height + ) throws WorldEditException { + return cyl(actor, session, editSession, pattern, radii, height, true); } @Command( - name = "/cyl", - desc = "Generates a cylinder." + name = "/cyl", + desc = "Generates a cylinder." ) @CommandPermissions("worldedit.generation.cylinder") @Logging(PLACEMENT) - public int cyl(Actor actor, LocalSession session, EditSession editSession, - @Arg(desc = "The pattern of blocks to generate") - Pattern pattern, - @Arg(desc = "The radii of the cylinder. 1st is N/S, 2nd is E/W") - @Radii(2) - List radii, - @Arg(desc = "The height of the cylinder", def = "1") - int height, - @Switch(name = 'h', desc = "Make a hollow cylinder") - boolean hollow) throws WorldEditException { + public int cyl( + Actor actor, LocalSession session, EditSession editSession, + @Arg(desc = "The pattern of blocks to generate") + Pattern pattern, + @Arg(desc = "The radii of the cylinder. 1st is N/S, 2nd is E/W") + @Radii(2) + List radii, + @Arg(desc = "The height of the cylinder", def = "1") + int height, + @Switch(name = 'h', desc = "Make a hollow cylinder") + boolean hollow + ) throws WorldEditException { final double radiusX; final double radiusZ; switch (radii.size()) { @@ -149,38 +153,42 @@ public class GenerationCommands { } @Command( - name = "/hsphere", - desc = "Generates a hollow sphere." + name = "/hsphere", + desc = "Generates a hollow sphere." ) @CommandPermissions("worldedit.generation.sphere") @Logging(PLACEMENT) - public int hsphere(Actor actor, LocalSession session, EditSession editSession, - @Arg(desc = "The pattern of blocks to generate") - Pattern pattern, - @Arg(desc = "The radii of the sphere. Order is N/S, U/D, E/W") - @Radii(3) - List radii, - @Switch(name = 'r', desc = "Raise the bottom of the sphere to the placement position") - boolean raised) throws WorldEditException { - return sphere(actor, session, editSession, pattern, radii, raised, true); + public int hsphere( + Actor actor, LocalSession session, EditSession editSession, + @Arg(desc = "The pattern of blocks to generate") + Pattern pattern, + @Arg(desc = "The radii of the sphere. Order is N/S, U/D, E/W") + @Radii(3) + List radii, + @Switch(name = 'r', desc = "Raise the bottom of the sphere to the placement position") + boolean raised + ) throws WorldEditException { + return sphere(actor, session, editSession, pattern, radii, raised, true); } @Command( - name = "/sphere", - desc = "Generates a filled sphere." + name = "/sphere", + desc = "Generates a filled sphere." ) @CommandPermissions("worldedit.generation.sphere") @Logging(PLACEMENT) - public int sphere(Actor actor, LocalSession session, EditSession editSession, - @Arg(desc = "The pattern of blocks to generate") - Pattern pattern, - @Arg(desc = "The radii of the sphere. Order is N/S, U/D, E/W") - @Radii(3) - List radii, - @Switch(name = 'r', desc = "Raise the bottom of the sphere to the placement position") - boolean raised, - @Switch(name = 'h', desc = "Make a hollow sphere") - boolean hollow) throws WorldEditException { + public int sphere( + Actor actor, LocalSession session, EditSession editSession, + @Arg(desc = "The pattern of blocks to generate") + Pattern pattern, + @Arg(desc = "The radii of the sphere. Order is N/S, U/D, E/W") + @Radii(3) + List radii, + @Switch(name = 'r', desc = "Raise the bottom of the sphere to the placement position") + boolean raised, + @Switch(name = 'h', desc = "Make a hollow sphere") + boolean hollow + ) throws WorldEditException { final double radiusX; final double radiusY; final double radiusZ; @@ -217,19 +225,21 @@ public class GenerationCommands { } @Command( - name = "forestgen", - aliases = { "/forestgen" }, - desc = "Generate a forest" + name = "forestgen", + aliases = {"/forestgen"}, + desc = "Generate a forest" ) @CommandPermissions("worldedit.generation.forest") @Logging(POSITION) - public int forestGen(Actor actor, LocalSession session, EditSession editSession, - @Arg(desc = "The size of the forest, in blocks", def = "10") - int size, - @Arg(desc = "The type of forest", def = "tree") - TreeType type, - @Arg(desc = "The density of the forest, between 0 and 100", def = "5") - double density) throws WorldEditException { + public int forestGen( + Actor actor, LocalSession session, EditSession editSession, + @Arg(desc = "The size of the forest, in blocks", def = "10") + int size, + @Arg(desc = "The type of forest", def = "tree") + TreeType type, + @Arg(desc = "The density of the forest, between 0 and 100", def = "5") + double density + ) throws WorldEditException { checkCommandArgument(0 <= density && density <= 100, "Density must be between 0 and 100"); worldEdit.checkMaxRadius(size); density /= 100; @@ -239,17 +249,19 @@ public class GenerationCommands { } @Command( - name = "pumpkins", - aliases = { "/pumpkins" }, - desc = "Generate pumpkin patches" + name = "pumpkins", + aliases = {"/pumpkins"}, + desc = "Generate pumpkin patches" ) @CommandPermissions("worldedit.generation.pumpkins") @Logging(POSITION) - public int pumpkins(Actor actor, LocalSession session, EditSession editSession, - @Arg(desc = "The size of the patch", def = "10") - int size, - @Arg(desc = "//TODO ", def = "0.02") - double density) throws WorldEditException { + public int pumpkins( + Actor actor, LocalSession session, EditSession editSession, + @Arg(desc = "The size of the patch", def = "10") + int size, + @Arg(desc = "//TODO ", def = "0.02") + double density + ) throws WorldEditException { checkCommandArgument(0 <= density && density <= 100, "Density must be between 0 and 100"); worldEdit.checkMaxRadius(size); int affected = editSession.makePumpkinPatches(session.getPlacementPosition(actor), size, density); @@ -258,32 +270,36 @@ public class GenerationCommands { } @Command( - name = "/hpyramid", - desc = "Generate a hollow pyramid" + name = "/hpyramid", + desc = "Generate a hollow pyramid" ) @CommandPermissions("worldedit.generation.pyramid") @Logging(PLACEMENT) - public int hollowPyramid(Actor actor, LocalSession session, EditSession editSession, - @Arg(desc = "The pattern of blocks to set") - Pattern pattern, - @Confirm(Confirm.Processor.RADIUS) @Arg(desc = "The size of the pyramid") - int size) throws WorldEditException { + public int hollowPyramid( + Actor actor, LocalSession session, EditSession editSession, + @Arg(desc = "The pattern of blocks to set") + Pattern pattern, + @Confirm(Confirm.Processor.RADIUS) @Arg(desc = "The size of the pyramid") + int size + ) throws WorldEditException { return pyramid(actor, session, editSession, pattern, size, true); } @Command( - name = "/pyramid", - desc = "Generate a filled pyramid" + name = "/pyramid", + desc = "Generate a filled pyramid" ) @CommandPermissions("worldedit.generation.pyramid") @Logging(PLACEMENT) - public int pyramid(Actor actor, LocalSession session, EditSession editSession, - @Arg(desc = "The pattern of blocks to set") - Pattern pattern, - @Confirm(Confirm.Processor.RADIUS) @Arg(desc = "The size of the pyramid") - int size, - @Switch(name = 'h', desc = "Make a hollow pyramid") - boolean hollow) throws WorldEditException { + public int pyramid( + Actor actor, LocalSession session, EditSession editSession, + @Arg(desc = "The pattern of blocks to set") + Pattern pattern, + @Confirm(Confirm.Processor.RADIUS) @Arg(desc = "The size of the pyramid") + int size, + @Switch(name = 'h', desc = "Make a hollow pyramid") + boolean hollow + ) throws WorldEditException { worldEdit.checkMaxRadius(size); BlockVector3 pos = session.getPlacementPosition(actor); int affected = editSession.makePyramid(pos, pattern, size, !hollow); @@ -295,28 +311,30 @@ public class GenerationCommands { } @Command( - name = "/generate", - aliases = { "/gen", "/g" }, - desc = "Generates a shape according to a formula.", - descFooter = "See also https://tinyurl.com/weexpr." + name = "/generate", + aliases = {"/gen", "/g"}, + desc = "Generates a shape according to a formula.", + descFooter = "See also https://tinyurl.com/weexpr." ) @CommandPermissions("worldedit.generation.shape") @Logging(ALL) @Confirm(Confirm.Processor.REGION) - public int generate(Actor actor, LocalSession session, EditSession editSession, - @Selection Region region, - @Arg(desc = "The pattern of blocks to set") - Pattern pattern, - @Arg(desc = "Expression to test block placement locations and set block type", variable = true) - List expression, - @Switch(name = 'h', desc = "Generate a hollow shape") - boolean hollow, - @Switch(name = 'r', desc = "Use the game's coordinate origin") - boolean useRawCoords, - @Switch(name = 'o', desc = "Use the placement's coordinate origin") - boolean offset, - @Switch(name = 'c', desc = "Use the selection's center as origin") - boolean offsetCenter) throws WorldEditException { + public int generate( + Actor actor, LocalSession session, EditSession editSession, + @Selection Region region, + @Arg(desc = "The pattern of blocks to set") + Pattern pattern, + @Arg(desc = "Expression to test block placement locations and set block type", variable = true) + List expression, + @Switch(name = 'h', desc = "Generate a hollow shape") + boolean hollow, + @Switch(name = 'r', desc = "Use the game's coordinate origin") + boolean useRawCoords, + @Switch(name = 'o', desc = "Use the placement's coordinate origin") + boolean offset, + @Switch(name = 'c', desc = "Use the selection's center as origin") + boolean offsetCenter + ) throws WorldEditException { final Vector3 zero; Vector3 unit; @@ -354,7 +372,15 @@ public class GenerationCommands { final Vector3 unit1 = unit; try { - final int affected = editSession.makeShape(region, zero, unit1, pattern, String.join(" ", expression), hollow, session.getTimeout()); + final int affected = editSession.makeShape( + region, + zero, + unit1, + pattern, + String.join(" ", expression), + hollow, + session.getTimeout() + ); if (actor instanceof Player) { ((Player) actor).findFreePosition(); } @@ -367,30 +393,32 @@ public class GenerationCommands { } @Command( - name = "/generatebiome", - aliases = { "/genbiome", "/gb" }, - desc = "Sets biome according to a formula.", - descFooter = "Formula must return positive numbers (true) if the point is inside the shape\n" - + "Sets the biome of blocks in that shape.\n" - + "See also https://tinyurl.com/weexpr." + name = "/generatebiome", + aliases = {"/genbiome", "/gb"}, + desc = "Sets biome according to a formula.", + descFooter = "Formula must return positive numbers (true) if the point is inside the shape\n" + + "Sets the biome of blocks in that shape.\n" + + "See also https://tinyurl.com/weexpr." ) @CommandPermissions("worldedit.generation.shape.biome") @Logging(ALL) @Confirm(Confirm.Processor.REGION) - public int generateBiome(Actor actor, LocalSession session, EditSession editSession, - @Selection Region region, - @Arg(desc = "The biome type to set") - BiomeType target, - @Arg(desc = "Expression to test block placement locations and set biome type", variable = true) - List expression, - @Switch(name = 'h', desc = "Generate a hollow shape") - boolean hollow, - @Switch(name = 'r', desc = "Use the game's coordinate origin") - boolean useRawCoords, - @Switch(name = 'o', desc = "Use the placement's coordinate origin") - boolean offset, - @Switch(name = 'c', desc = "Use the selection's center as origin") - boolean offsetCenter) throws WorldEditException { + public int generateBiome( + Actor actor, LocalSession session, EditSession editSession, + @Selection Region region, + @Arg(desc = "The biome type to set") + BiomeType target, + @Arg(desc = "Expression to test block placement locations and set biome type", variable = true) + List expression, + @Switch(name = 'h', desc = "Generate a hollow shape") + boolean hollow, + @Switch(name = 'r', desc = "Use the game's coordinate origin") + boolean useRawCoords, + @Switch(name = 'o', desc = "Use the placement's coordinate origin") + boolean offset, + @Switch(name = 'c', desc = "Use the selection's center as origin") + boolean offsetCenter + ) throws WorldEditException { final Vector3 zero; Vector3 unit; @@ -426,7 +454,15 @@ public class GenerationCommands { final Vector3 unit1 = unit; try { - final int affected = editSession.makeBiomeShape(region, zero, unit1, target, String.join(" ", expression), hollow, session.getTimeout()); + final int affected = editSession.makeBiomeShape( + region, + zero, + unit1, + target, + String.join(" ", expression), + hollow, + session.getTimeout() + ); actor.print(Caption.of("worldedit.generatebiome.changed", TextComponent.of(affected))); return affected; } catch (ExpressionException e) { @@ -443,18 +479,31 @@ public class GenerationCommands { @CommandPermissions("worldedit.generation.caves") @Logging(PLACEMENT) @Confirm(Confirm.Processor.REGION) - public void caves(Actor actor, LocalSession session, EditSession editSession, @Selection Region region, - @Arg(name = "size", desc = "TODO", def = "8") int sizeOpt, - @Arg(name = "frequency", desc = "TODO", def = "40") int frequencyOpt, - @Arg(name = "rarity", desc = "TODO", def = "7") int rarityOpt, - @Arg(name = "minY", desc = "TODO", def = "8") int minYOpt, - @Arg(name = "maxY", desc = "TODO", def = "127") int maxYOpt, - @Arg(name = "systemFrequency", desc = "TODO", def = "1") int systemFrequencyOpt, - @Arg(name = "individualRarity", desc = "TODO", def = "25") int individualRarityOpt, - @Arg(name = "pocketChance", desc = "TODO", def = "0") int pocketChanceOpt, - @Arg(name = "pocketMin", desc = "TODO", def = "0") int pocketMinOpt, - @Arg(name = "pocketMax", desc = "TODO", def = "3") int pocketMaxOpt) throws WorldEditException { - CavesGen gen = new CavesGen(sizeOpt, frequencyOpt, rarityOpt, minYOpt, maxYOpt, systemFrequencyOpt, individualRarityOpt, pocketChanceOpt, pocketMinOpt, pocketMaxOpt); + public void caves( + Actor actor, LocalSession session, EditSession editSession, @Selection Region region, + @Arg(name = "size", desc = "TODO", def = "8") int sizeOpt, + @Arg(name = "frequency", desc = "TODO", def = "40") int frequencyOpt, + @Arg(name = "rarity", desc = "TODO", def = "7") int rarityOpt, + @Arg(name = "minY", desc = "TODO", def = "8") int minYOpt, + @Arg(name = "maxY", desc = "TODO", def = "127") int maxYOpt, + @Arg(name = "systemFrequency", desc = "TODO", def = "1") int systemFrequencyOpt, + @Arg(name = "individualRarity", desc = "TODO", def = "25") int individualRarityOpt, + @Arg(name = "pocketChance", desc = "TODO", def = "0") int pocketChanceOpt, + @Arg(name = "pocketMin", desc = "TODO", def = "0") int pocketMinOpt, + @Arg(name = "pocketMax", desc = "TODO", def = "3") int pocketMaxOpt + ) throws WorldEditException { + CavesGen gen = new CavesGen( + sizeOpt, + frequencyOpt, + rarityOpt, + minYOpt, + maxYOpt, + systemFrequencyOpt, + individualRarityOpt, + pocketChanceOpt, + pocketMinOpt, + pocketMaxOpt + ); editSession.generate(region, gen); actor.print(Caption.of("fawe.worldedit.visitor.visitor.block", editSession.getBlockChangeCount())); } @@ -467,7 +516,13 @@ public class GenerationCommands { @CommandPermissions("worldedit.generation.ore") @Logging(PLACEMENT) @Confirm(Confirm.Processor.REGION) - public void ores(Actor actor, LocalSession session, EditSession editSession, @Selection Region region, @Arg(desc = "Mask") Mask mask) throws WorldEditException { + public void ores( + Actor actor, + LocalSession session, + EditSession editSession, + @Selection Region region, + @Arg(desc = "Mask") Mask mask + ) throws WorldEditException { if (mask instanceof AbstractExtentMask) { ((AbstractExtentMask) mask).setExtent(editSession); } @@ -477,18 +532,20 @@ public class GenerationCommands { @Command( name = "/img", - aliases = { "/image", "image" }, + aliases = {"/image", "image"}, desc = "Generate an image" ) @CommandPermissions("worldedit.generation.image") @Logging(PLACEMENT) - public void image(Actor actor, - LocalSession session, - EditSession editSession, - @Arg(desc = "Image URL (imgur only)") String imageURL, - @Arg(desc = "boolean", def = "true") boolean randomize, - @Arg(desc = "TODO", def = "100") int threshold, - @Arg(desc = "BlockVector2", def = "") BlockVector2 dimensions) throws WorldEditException, IOException { + public void image( + Actor actor, + LocalSession session, + EditSession editSession, + @Arg(desc = "Image URL (imgur only)") String imageURL, + @Arg(desc = "boolean", def = "true") boolean randomize, + @Arg(desc = "TODO", def = "100") int threshold, + @Arg(desc = "BlockVector2", def = "") BlockVector2 dimensions + ) throws WorldEditException, IOException { TextureUtil tu = Fawe.get().getCachedTextureUtil(randomize, 0, threshold); URL url = new URL(imageURL); if (!url.getHost().equalsIgnoreCase("i.imgur.com")) { @@ -497,7 +554,8 @@ public class GenerationCommands { BufferedImage image = MainUtil.readImage(url); if (dimensions != null) { image = ImageUtil.getScaledInstance(image, dimensions.getBlockX(), dimensions.getBlockZ(), - RenderingHints.VALUE_INTERPOLATION_BILINEAR, false); + RenderingHints.VALUE_INTERPOLATION_BILINEAR, false + ); } BlockVector3 pos1 = session.getPlacementPosition(actor); @@ -529,17 +587,19 @@ public class GenerationCommands { @CommandPermissions("worldedit.generation.ore") @Logging(PLACEMENT) @Confirm(Confirm.Processor.REGION) - public void ore(Actor actor, - LocalSession session, - EditSession editSession, - @Selection Region region, - @Arg(desc = "Mask") Mask mask, - @Arg(desc = "Pattern") Pattern material, - @Arg(desc = "Ore vein size") @Range(from = 0, to = Integer.MAX_VALUE) int size, - @Arg(desc = "Ore vein frequency (number of times to attempt to place ore)", def = "10") @Range(from = 0, to = Integer.MAX_VALUE) int freq, - @Arg(desc = "Ore vein rarity (% chance each attempt is placed)", def = "100") @Range(from = 0, to = 100) int rarity, - @Arg(desc = "Ore vein min y", def = "0") @Range(from = 0, to = 255) int minY, - @Arg(desc = "Ore vein max y", def = "63") @Range(from = 0, to = 255) int maxY) throws WorldEditException { + public void ore( + Actor actor, + LocalSession session, + EditSession editSession, + @Selection Region region, + @Arg(desc = "Mask") Mask mask, + @Arg(desc = "Pattern") Pattern material, + @Arg(desc = "Ore vein size") @Range(from = 0, to = Integer.MAX_VALUE) int size, + @Arg(desc = "Ore vein frequency (number of times to attempt to place ore)", def = "10") @Range(from = 0, to = Integer.MAX_VALUE) int freq, + @Arg(desc = "Ore vein rarity (% chance each attempt is placed)", def = "100") @Range(from = 0, to = 100) int rarity, + @Arg(desc = "Ore vein min y", def = "0") @Range(from = 0, to = 255) int minY, + @Arg(desc = "Ore vein max y", def = "63") @Range(from = 0, to = 255) int maxY + ) throws WorldEditException { if (mask instanceof AbstractExtentMask) { ((AbstractExtentMask) mask).setExtent(editSession); } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/HistoryCommands.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/HistoryCommands.java index 9138b00b5..d1a647587 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/HistoryCommands.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/HistoryCommands.java @@ -56,16 +56,18 @@ public class HistoryCommands { } @Command( - name = "undo", - aliases = { "/undo" }, - desc = "Undoes the last action (from history)" + name = "undo", + aliases = {"/undo"}, + desc = "Undoes the last action (from history)" ) @CommandPermissions({"worldedit.history.undo", "worldedit.history.undo.self"}) - public void undo(Actor actor, LocalSession session, - @Confirm(Confirm.Processor.LIMIT) @Arg(desc = "Number of undoes to perform", def = "1") - int times, - @Arg(name = "player", desc = "Undo this player's operations", def = "") - String playerName) throws WorldEditException { + public void undo( + Actor actor, LocalSession session, + @Confirm(Confirm.Processor.LIMIT) @Arg(desc = "Number of undoes to perform", def = "1") + int times, + @Arg(name = "player", desc = "Undo this player's operations", def = "") + String playerName + ) throws WorldEditException { times = Math.max(1, times); LocalSession undoSession = session; //FAWE start - Add fastmode check @@ -101,16 +103,18 @@ public class HistoryCommands { } @Command( - name = "redo", - aliases = { "/redo" }, - desc = "Redoes the last action (from history)" + name = "redo", + aliases = {"/redo"}, + desc = "Redoes the last action (from history)" ) @CommandPermissions({"worldedit.history.redo", "worldedit.history.redo.self"}) - public void redo(Actor actor, LocalSession session, - @Confirm(Confirm.Processor.LIMIT) @Arg(desc = "Number of redoes to perform", def = "1") - int times, - @Arg(name = "player", desc = "Redo this player's operations", def = "") - String playerName) throws WorldEditException { + public void redo( + Actor actor, LocalSession session, + @Confirm(Confirm.Processor.LIMIT) @Arg(desc = "Number of redoes to perform", def = "1") + int times, + @Arg(name = "player", desc = "Redo this player's operations", def = "") + String playerName + ) throws WorldEditException { times = Math.max(1, times); LocalSession redoSession = session; if (playerName != null) { @@ -140,9 +144,9 @@ public class HistoryCommands { } @Command( - name = "clearhistory", - aliases = { "/clearhistory" }, - desc = "Clear your history" + name = "clearhistory", + aliases = {"/clearhistory"}, + desc = "Clear your history" ) @CommandPermissions("worldedit.history.clear") public void clearHistory(Actor actor, LocalSession session) { diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/HistorySubCommands.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/HistorySubCommands.java index fb599c46b..a79688a37 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/HistorySubCommands.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/HistorySubCommands.java @@ -7,8 +7,8 @@ import com.fastasyncworldedit.core.configuration.Settings; import com.fastasyncworldedit.core.database.DBHandler; import com.fastasyncworldedit.core.database.RollbackDatabase; import com.fastasyncworldedit.core.history.RollbackOptimizedHistory; -import com.fastasyncworldedit.core.regions.RegionWrapper; import com.fastasyncworldedit.core.history.changeset.SimpleChangeSetSummary; +import com.fastasyncworldedit.core.regions.RegionWrapper; import com.fastasyncworldedit.core.util.MainUtil; import com.fastasyncworldedit.core.util.StringMan; import com.google.common.base.Function; @@ -18,12 +18,12 @@ import com.sk89q.worldedit.WorldEditException; import com.sk89q.worldedit.command.argument.Arguments; import com.sk89q.worldedit.command.util.CommandPermissions; import com.sk89q.worldedit.command.util.CommandPermissionsConditionGenerator; +import com.sk89q.worldedit.command.util.annotation.AllowedRegion; import com.sk89q.worldedit.command.util.annotation.Confirm; +import com.sk89q.worldedit.command.util.annotation.Time; import com.sk89q.worldedit.entity.Player; import com.sk89q.worldedit.extension.platform.Actor; import com.sk89q.worldedit.history.changeset.ChangeSet; -import com.sk89q.worldedit.command.util.annotation.AllowedRegion; -import com.sk89q.worldedit.command.util.annotation.Time; import com.sk89q.worldedit.math.BlockVector2; import com.sk89q.worldedit.math.BlockVector3; import com.sk89q.worldedit.regions.Region; @@ -45,9 +45,10 @@ import org.enginehub.piston.annotation.CommandContainer; import org.enginehub.piston.annotation.param.Arg; import org.enginehub.piston.annotation.param.ArgFlag; import org.enginehub.piston.annotation.param.Switch; -import javax.annotation.Nonnull; import org.jetbrains.annotations.Range; +import javax.annotation.Nonnull; +import javax.annotation.Nullable; import java.io.File; import java.lang.ref.Reference; import java.lang.ref.SoftReference; @@ -56,7 +57,6 @@ import java.util.Objects; import java.util.UUID; import java.util.concurrent.ExecutionException; import java.util.function.Supplier; -import javax.annotation.Nullable; import static com.sk89q.worldedit.internal.command.CommandUtil.checkCommandArgument; @@ -70,46 +70,50 @@ public class HistorySubCommands { } @Command( - name = "restore", - aliases = {"rerun"}, - desc = "Rerun edits" - + " - The time uses s, m, h, d, y.\n" - + " - Import from disk: /history import" + name = "restore", + aliases = {"rerun"}, + desc = "Rerun edits" + + " - The time uses s, m, h, d, y.\n" + + " - Import from disk: /history import" ) @CommandPermissions("worldedit.history.restore") @Confirm - public synchronized void rerun(Player player, World world, RollbackDatabase database, - @AllowedRegion Region[] allowedRegions, - @ArgFlag(name = 'u', desc = "String user", def = "me") - UUID other, - @ArgFlag(name = 'r', def = "0", desc = "radius") - @Range(from = 0, to = Integer.MAX_VALUE) - int radius, - @ArgFlag(name = 't', desc = "Time e.g. 20s", def = "0") - @Time - long timeDiff) throws WorldEditException { + public synchronized void rerun( + Player player, World world, RollbackDatabase database, + @AllowedRegion Region[] allowedRegions, + @ArgFlag(name = 'u', desc = "String user", def = "me") + UUID other, + @ArgFlag(name = 'r', def = "0", desc = "radius") + @Range(from = 0, to = Integer.MAX_VALUE) + int radius, + @ArgFlag(name = 't', desc = "Time e.g. 20s", def = "0") + @Time + long timeDiff + ) throws WorldEditException { rollback(player, world, database, allowedRegions, other, radius, timeDiff, true); } @Command( - name = "rollback", - desc = "Undo a specific edit. " - + " - The time uses s, m, h, d, y." + name = "rollback", + desc = "Undo a specific edit. " + + " - The time uses s, m, h, d, y." ) @CommandPermissions("worldedit.history.rollback") @Confirm - public synchronized void rollback(Player player, World world, RollbackDatabase database, - @AllowedRegion Region[] allowedRegions, - @ArgFlag(name = 'u', desc = "String user", def = "") - UUID other, - @ArgFlag(name = 'r', def = "0", desc = "radius") - @Range(from = 0, to = Integer.MAX_VALUE) - int radius, - @ArgFlag(name = 't', desc = "Time e.g. 20s", def = "0") - @Time - long timeDiff, - @Switch(name = 'f', desc = "Restore instead of rollback") - boolean restore) throws WorldEditException { + public synchronized void rollback( + Player player, World world, RollbackDatabase database, + @AllowedRegion Region[] allowedRegions, + @ArgFlag(name = 'u', desc = "String user", def = "") + UUID other, + @ArgFlag(name = 'r', def = "0", desc = "radius") + @Range(from = 0, to = Integer.MAX_VALUE) + int radius, + @ArgFlag(name = 't', desc = "Time e.g. 20s", def = "0") + @Time + long timeDiff, + @Switch(name = 'f', desc = "Restore instead of rollback") + boolean restore + ) throws WorldEditException { if (!Settings.IMP.HISTORY.USE_DATABASE) { player.print(Caption.of("fawe.error.setting.disable", "history.use-database (Import with /history import )")); return; @@ -152,10 +156,10 @@ public class HistorySubCommands { } @Command( - name = "import", - desc = "Import history into the database" - + " - The time uses s, m, h, d, y.\n" - + " - Import from disk: /history import" + name = "import", + desc = "Import history into the database" + + " - The time uses s, m, h, d, y.\n" + + " - Import from disk: /history import" ) @CommandPermissions("fawe.rollback.import") @Confirm @@ -182,14 +186,16 @@ public class HistorySubCommands { RollbackOptimizedHistory rollback = new RollbackOptimizedHistory( world, uuid, Integer.parseInt( - name.substring(0, name.length() - 3))); + name.substring(0, name.length() - 3)) + ); SimpleChangeSetSummary summary = rollback .summarize(RegionWrapper.GLOBAL(), false); if (summary != null) { rollback.setDimensions( BlockVector3.at(summary.minX, 0, summary.minZ), BlockVector3 - .at(summary.maxX, 255, summary.maxZ)); + .at(summary.maxX, 255, summary.maxZ) + ); rollback.setTime(historyFile.lastModified()); RollbackDatabase db = DBHandler.IMP .getDatabase(world); @@ -209,16 +215,18 @@ public class HistorySubCommands { } @Command( - name = "info", - aliases = {"summary", "summarize"}, - desc = "Summarize an edit" + name = "info", + aliases = {"summary", "summarize"}, + desc = "Summarize an edit" ) @CommandPermissions("worldedit.history.info") - public synchronized void summary(Player player, RollbackDatabase database, Arguments arguments, - @Arg(desc = "Player uuid/name") - UUID other, - @Arg(desc = "edit index") - Integer index) throws WorldEditException, ExecutionException, InterruptedException { + public synchronized void summary( + Player player, RollbackDatabase database, Arguments arguments, + @Arg(desc = "Player uuid/name") + UUID other, + @Arg(desc = "edit index") + Integer index + ) throws WorldEditException, ExecutionException, InterruptedException { RollbackOptimizedHistory edit = database.getEdit(other, index).get(); if (edit == null) { player.print(Caption.of("fawe.worldedit.schematic.schematic.none")); @@ -231,8 +239,8 @@ public class HistorySubCommands { BlockVector3 pos1 = edit.getMinimumPoint(); BlockVector3 pos2 = edit.getMaximumPoint(); - double distanceX = Math.min( Math.abs(pos1.getX() - origin.getX()), Math.abs(pos2.getX() - origin.getX())); - double distanceZ = Math.min( Math.abs(pos1.getZ() - origin.getZ()), Math.abs(pos2.getZ() - origin.getZ())); + double distanceX = Math.min(Math.abs(pos1.getX() - origin.getX()), Math.abs(pos2.getX() - origin.getX())); + double distanceZ = Math.min(Math.abs(pos1.getZ() - origin.getZ()), Math.abs(pos2.getZ() - origin.getZ())); int distance = (int) Math.sqrt(distanceX * distanceX + distanceZ * distanceZ); BlockVector2 dirVec = BlockVector2.at(edit.getOriginX() - origin.getX(), edit.getOriginZ() - origin.getZ()); @@ -248,7 +256,14 @@ public class HistorySubCommands { boolean createdTiles = edit.getNbttFile().exists(); boolean removedTiles = edit.getNbtfFile().exists(); - TranslatableComponent header = Caption.of("fawe.worldedit.history.find.element", name, timeStr, distance, direction.name(), cmd); + TranslatableComponent header = Caption.of( + "fawe.worldedit.history.find.element", + name, + timeStr, + distance, + direction.name(), + cmd + ); String sizeStr = StringMan.humanReadableByteCountBin(edit.getSizeOnDisk()); String extra = ""; @@ -268,74 +283,101 @@ public class HistorySubCommands { extra += "-tile, "; } - TranslatableComponent body = Caption.of("fawe.worldedit.history.find.element.more", size, edit.getMinimumPoint(), edit.getMaximumPoint(), extra.trim(), sizeStr); - Component distr = TextComponent.of("/history distr").clickEvent(ClickEvent.suggestCommand("//history distr " + other + " " + index)); + TranslatableComponent body = Caption.of( + "fawe.worldedit.history.find.element.more", + size, + edit.getMinimumPoint(), + edit.getMaximumPoint(), + extra.trim(), + sizeStr + ); + Component distr = TextComponent + .of("/history distr") + .clickEvent(ClickEvent.suggestCommand("//history distr " + other + " " + index)); TextComponentProducer content = new TextComponentProducer().append(header).newline().append(body).newline().append(distr); player.print(content.create()); } - private PaginationBox list(RollbackDatabase database, String pageCommand, List> histories, BlockVector3 origin) { - return PaginationBox.fromStrings("Edits:", pageCommand, histories, new Function, Component>() { - @Nonnull - @Override - public Component apply(@Nullable Supplier input) { - ChangeSet edit = input.get(); + private PaginationBox list( + RollbackDatabase database, + String pageCommand, + List> histories, + BlockVector3 origin + ) { + return PaginationBox.fromStrings("Edits:", pageCommand, histories, new Function<>() { + @Nonnull + @Override + public Component apply(@Nullable Supplier input) { + ChangeSet edit = input.get(); - if (edit instanceof RollbackOptimizedHistory) { - RollbackOptimizedHistory rollback = (RollbackOptimizedHistory) edit; + if (edit instanceof RollbackOptimizedHistory) { + RollbackOptimizedHistory rollback = (RollbackOptimizedHistory) edit; - UUID uuid = rollback.getUUID(); - int index = rollback.getIndex(); - String name = Fawe.imp().getName(rollback.getUUID()); + UUID uuid = rollback.getUUID(); + int index = rollback.getIndex(); + String name = Fawe.imp().getName(rollback.getUUID()); - String cmd = rollback.getCommand(); - BlockVector3 pos1 = rollback.getMinimumPoint(); - BlockVector3 pos2 = rollback.getMaximumPoint(); + String cmd = rollback.getCommand(); + BlockVector3 pos1 = rollback.getMinimumPoint(); + BlockVector3 pos2 = rollback.getMaximumPoint(); - double distanceX = Math.min(Math.abs(pos1.getX() - origin.getX()), Math.abs(pos2.getX() - origin.getX())); - double distanceZ = Math.min(Math.abs(pos1.getZ() - origin.getZ()), Math.abs(pos2.getZ() - origin.getZ())); - int distance = (int) Math.sqrt(distanceX * distanceX + distanceZ * distanceZ); + double distanceX = Math.min(Math.abs(pos1.getX() - origin.getX()), Math.abs(pos2.getX() - origin.getX())); + double distanceZ = Math.min(Math.abs(pos1.getZ() - origin.getZ()), Math.abs(pos2.getZ() - origin.getZ())); + int distance = (int) Math.sqrt(distanceX * distanceX + distanceZ * distanceZ); - BlockVector2 dirVec = BlockVector2.at(rollback.getOriginX() - origin.getX(), rollback.getOriginZ() - origin.getZ()); - Direction direction = Direction.findClosest(dirVec.toVector3(), Direction.Flag.ALL); + BlockVector2 dirVec = BlockVector2.at( + rollback.getOriginX() - origin.getX(), + rollback.getOriginZ() - origin.getZ() + ); + Direction direction = Direction.findClosest(dirVec.toVector3(), Direction.Flag.ALL); - long seconds = (System.currentTimeMillis() - rollback.getBDFile().lastModified()) / 1000; - String timeStr = MainUtil.secToTime(seconds); + long seconds = (System.currentTimeMillis() - rollback.getBDFile().lastModified()) / 1000; + String timeStr = MainUtil.secToTime(seconds); - int size = edit.size(); + int size = edit.size(); - TranslatableComponent elem = Caption.of("fawe.worldedit.history.find.element", name, timeStr, distance, direction.name(), cmd); + TranslatableComponent elem = Caption.of( + "fawe.worldedit.history.find.element", + name, + timeStr, + distance, + direction.name(), + cmd + ); - String infoCmd = "//history summary " + uuid + " " + index; - TranslatableComponent hover = Caption.of("fawe.worldedit.history.find.hover", size); - elem = elem.hoverEvent(HoverEvent.of(HoverEvent.Action.SHOW_TEXT, hover)); - elem = elem.clickEvent(ClickEvent.of(ClickEvent.Action.RUN_COMMAND, infoCmd)); - return elem; - } else { - // TODO - return TextComponent.empty(); + String infoCmd = "//history summary " + uuid + " " + index; + TranslatableComponent hover = Caption.of("fawe.worldedit.history.find.hover", size); + elem = elem.hoverEvent(HoverEvent.of(HoverEvent.Action.SHOW_TEXT, hover)); + elem = elem.clickEvent(ClickEvent.of(ClickEvent.Action.RUN_COMMAND, infoCmd)); + return elem; + } else { + // TODO + return TextComponent.empty(); + } + } } - } - }); + ); } @Command( - name = "find", - aliases = {"inspect", "search", "near"}, - desc = "Find nearby edits" + name = "find", + aliases = {"inspect", "search", "near"}, + desc = "Find nearby edits" ) @CommandPermissions("worldedit.history.find") - public synchronized void find(Player player, World world, RollbackDatabase database, Arguments arguments, - @ArgFlag(name = 'u', def = "", desc = "String user") - UUID other, - @ArgFlag(name = 'r', def = "0", desc = "radius") - @Range(from = 0, to = Integer.MAX_VALUE) - Integer radius, - @ArgFlag(name = 't', desc = "Time e.g. 20s", def = "0") - @Time - Long timeDiff, - @ArgFlag(name = 'p', desc = "Page to view.", def = "") - Integer page) throws WorldEditException { + public synchronized void find( + Player player, World world, RollbackDatabase database, Arguments arguments, + @ArgFlag(name = 'u', def = "", desc = "String user") + UUID other, + @ArgFlag(name = 'r', def = "0", desc = "radius") + @Range(from = 0, to = Integer.MAX_VALUE) + Integer radius, + @ArgFlag(name = 't', desc = "Time e.g. 20s", def = "0") + @Time + Long timeDiff, + @ArgFlag(name = 'p', desc = "Page to view.", def = "") + Integer page + ) throws WorldEditException { if (!Settings.IMP.HISTORY.USE_DATABASE) { player.print(Caption.of("fawe.error.setting.disable", "history.use-database (Import with //history import )")); return; @@ -379,18 +421,20 @@ public class HistorySubCommands { } @Command( - name = "distr", - aliases = {"distribution"}, - desc = "View block distribution for an edit" + name = "distr", + aliases = {"distribution"}, + desc = "View block distribution for an edit" ) @CommandPermissions("worldedit.history.distr") - public void distr(Player player, LocalSession session, RollbackDatabase database, Arguments arguments, - @Arg(desc = "Player uuid/name") - UUID other, - @Arg(desc = "edit index") - Integer index, - @ArgFlag(name = 'p', desc = "Page to view.", def = "") - Integer page) throws ExecutionException, InterruptedException { + public void distr( + Player player, LocalSession session, RollbackDatabase database, Arguments arguments, + @Arg(desc = "Player uuid/name") + UUID other, + @Arg(desc = "edit index") + Integer index, + @ArgFlag(name = 'p', desc = "Page to view.", def = "") + Integer page + ) throws ExecutionException, InterruptedException { String pageCommand = "/" + arguments.get().replaceAll("-p [0-9]+", "").trim(); Reference cached = player.getMeta(pageCommand); PaginationBox pages = cached == null ? null : cached.get(); @@ -399,7 +443,11 @@ public class HistorySubCommands { SimpleChangeSetSummary summary = edit.summarize(RegionWrapper.GLOBAL(), false); if (summary != null) { List> distr = summary.getBlockDistributionWithData(); - SelectionCommands.BlockDistributionResult distrPages = new SelectionCommands.BlockDistributionResult((List) distr, true, pageCommand); + SelectionCommands.BlockDistributionResult distrPages = new SelectionCommands.BlockDistributionResult( + distr, + true, + pageCommand + ); pages = new PaginationBox.MergedPaginationBox("Block Distribution", pageCommand, pages, distrPages); player.setMeta(pageCommand, new SoftReference<>(pages)); } @@ -413,17 +461,22 @@ public class HistorySubCommands { } @Command( - name = "list", - desc = "List your history" + name = "list", + desc = "List your history" ) @CommandPermissions("worldedit.history.list") - public void list(Player player, LocalSession session, RollbackDatabase database, Arguments arguments, - @Arg(desc = "Player uuid/name") - UUID other, - @ArgFlag(name = 'p', desc = "Page to view.", def = "") - Integer page) { + public void list( + Player player, LocalSession session, RollbackDatabase database, Arguments arguments, + @Arg(desc = "Player uuid/name") + UUID other, + @ArgFlag(name = 'p', desc = "Page to view.", def = "") + Integer page + ) { int index = session.getHistoryIndex(); - List> history = Lists.transform(session.getHistory(), (Function>) input -> () -> input); + List> history = Lists.transform( + session.getHistory(), + (Function>) input -> () -> input + ); Location origin = player.getLocation(); String pageCommand = "/" + arguments.get().replaceAll("-p [0-9]+", "").trim(); Reference cached = player.getMeta(pageCommand); @@ -436,11 +489,12 @@ public class HistorySubCommands { } @Command( - name = "clear", - desc = "Clear your history" + name = "clear", + desc = "Clear your history" ) @CommandPermissions("worldedit.history.clear") public void clearHistory(Actor actor, LocalSession session) { parent.clearHistory(actor, session); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/LegacySnapshotCommands.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/LegacySnapshotCommands.java index bb024a86a..20b96a0e7 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/LegacySnapshotCommands.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/LegacySnapshotCommands.java @@ -74,11 +74,11 @@ class LegacySnapshotCommands { try { WorldEdit.logger.info("WorldEdit found no snapshots: looked in: " - + dir.getCanonicalPath()); + + dir.getCanonicalPath()); } catch (IOException e) { WorldEdit.logger.info("WorldEdit found no snapshots: looked in " - + "(NON-RESOLVABLE PATH - does it exist?): " - + dir.getPath()); + + "(NON-RESOLVABLE PATH - does it exist?): " + + dir.getPath()); } } } catch (MissingWorldException ex) { @@ -147,8 +147,9 @@ class LegacySnapshotCommands { if (snapshot == null) { actor.print(Caption.of( - "worldedit.snapshot.none-before", - TextComponent.of(dateFormat.withZone(session.getTimeZone()).format(date))) + "worldedit.snapshot.none-before", + TextComponent.of(dateFormat.withZone(session.getTimeZone()).format(date)) + ) ); } else { session.setSnapshot(snapshot); @@ -166,8 +167,9 @@ class LegacySnapshotCommands { Snapshot snapshot = config.snapshotRepo.getSnapshotAfter(date, world.getName()); if (snapshot == null) { actor.print(Caption.of( - "worldedit.snapshot.none-after", - TextComponent.of(dateFormat.withZone(session.getTimeZone()).format(date))) + "worldedit.snapshot.none-after", + TextComponent.of(dateFormat.withZone(session.getTimeZone()).format(date)) + ) ); } else { session.setSnapshot(snapshot); @@ -179,6 +181,7 @@ class LegacySnapshotCommands { } private static class SnapshotListBox extends PaginationBox { + private final List snapshots; SnapshotListBox(String world, List snapshots) { @@ -199,5 +202,7 @@ class LegacySnapshotCommands { public int getComponentsSize() { return snapshots.size(); } + } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/LegacySnapshotUtilCommands.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/LegacySnapshotUtilCommands.java index 67a61ac24..53c899ee9 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/LegacySnapshotUtilCommands.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/LegacySnapshotUtilCommands.java @@ -47,8 +47,10 @@ class LegacySnapshotUtilCommands { this.we = we; } - void restore(Actor actor, World world, LocalSession session, EditSession editSession, - String snapshotName) throws WorldEditException { + void restore( + Actor actor, World world, LocalSession session, EditSession editSession, + String snapshotName + ) throws WorldEditException { LocalConfiguration config = we.getConfiguration(); Region region = session.getSelection(world); @@ -78,11 +80,11 @@ class LegacySnapshotUtilCommands { try { WorldEdit.logger.info("WorldEdit found no snapshots: looked in: " - + dir.getCanonicalPath()); + + dir.getCanonicalPath()); } catch (IOException e) { WorldEdit.logger.info("WorldEdit found no snapshots: looked in " - + "(NON-RESOLVABLE PATH - does it exist?): " - + dir.getPath()); + + "(NON-RESOLVABLE PATH - does it exist?): " + + dir.getPath()); } return; @@ -122,9 +124,11 @@ class LegacySnapshotUtilCommands { actor.print(Caption.of("worldedit.restore.chunk-load-failed")); } } else { - actor.print(Caption.of("worldedit.restore.restored", - TextComponent.of(restore.getMissingChunks().size()), - TextComponent.of(restore.getErrorChunks().size()))); + actor.print(Caption.of( + "worldedit.restore.restored", + TextComponent.of(restore.getMissingChunks().size()), + TextComponent.of(restore.getErrorChunks().size()) + )); } } finally { try { @@ -133,4 +137,5 @@ class LegacySnapshotUtilCommands { } } } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/NavigationCommands.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/NavigationCommands.java index baf55ac29..22e8a12ec 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/NavigationCommands.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/NavigationCommands.java @@ -56,9 +56,9 @@ public class NavigationCommands { } @Command( - name = "unstuck", - aliases = { "!", "/unstuck" }, - desc = "Escape from being stuck inside a block" + name = "unstuck", + aliases = {"!", "/unstuck"}, + desc = "Escape from being stuck inside a block" ) @CommandPermissions("worldedit.navigation.unstuck") public void unstuck(Player player) throws WorldEditException { @@ -67,14 +67,16 @@ public class NavigationCommands { } @Command( - name = "ascend", - aliases = { "asc", "/asc", "/ascend" }, - desc = "Go up a floor" + name = "ascend", + aliases = {"asc", "/asc", "/ascend"}, + desc = "Go up a floor" ) @CommandPermissions("worldedit.navigation.ascend") - public void ascend(Player player, - @Arg(desc = "# of levels to ascend", def = "1") - int levels) throws WorldEditException { + public void ascend( + Player player, + @Arg(desc = "# of levels to ascend", def = "1") + int levels + ) throws WorldEditException { int ascentLevels = 0; while (player.ascendLevel()) { ++ascentLevels; @@ -90,14 +92,16 @@ public class NavigationCommands { } @Command( - name = "descend", - aliases = { "desc", "/desc", "/descend" }, - desc = "Go down a floor" + name = "descend", + aliases = {"desc", "/desc", "/descend"}, + desc = "Go down a floor" ) @CommandPermissions("worldedit.navigation.descend") - public void descend(Player player, - @Arg(desc = "# of levels to descend", def = "1") - int levels) throws WorldEditException { + public void descend( + Player player, + @Arg(desc = "# of levels to descend", def = "1") + int levels + ) throws WorldEditException { int descentLevels = 0; while (player.descendLevel()) { ++descentLevels; @@ -113,19 +117,21 @@ public class NavigationCommands { } @Command( - name = "ceil", - aliases = { "/ceil", "/ceiling" }, - desc = "Go to the ceiling" + name = "ceil", + aliases = {"/ceil", "/ceiling"}, + desc = "Go to the ceiling" ) @CommandPermissions("worldedit.navigation.ceiling") @Logging(POSITION) - public void ceiling(Player player, - @Arg(desc = "# of blocks to leave above you", def = "0") - int clearance, - @Switch(name = 'f', desc = "Force using flight to keep you still") - boolean forceFlight, - @Switch(name = 'g', desc = "Force using glass to keep you still") - boolean forceGlass) throws WorldEditException { + public void ceiling( + Player player, + @Arg(desc = "# of blocks to leave above you", def = "0") + int clearance, + @Switch(name = 'f', desc = "Force using flight to keep you still") + boolean forceFlight, + @Switch(name = 'g', desc = "Force using glass to keep you still") + boolean forceGlass + ) throws WorldEditException { clearance = Math.max(0, clearance); boolean alwaysGlass = getAlwaysGlass(forceFlight, forceGlass); @@ -137,9 +143,9 @@ public class NavigationCommands { } @Command( - name = "thru", - aliases = { "/thru" }, - desc = "Pass through walls" + name = "thru", + aliases = {"/thru"}, + desc = "Pass through walls" ) @CommandPermissions("worldedit.navigation.thru.command") public void thru(Player player) throws WorldEditException { @@ -152,16 +158,18 @@ public class NavigationCommands { @Command( name = "jumpto", - aliases = { "j", "/jumpto", "/j" }, + aliases = {"j", "/jumpto", "/j"}, desc = "Teleport to a location" ) @CommandPermissions("worldedit.navigation.jumpto.command") - public void jumpTo(Player player, - @Arg(desc = "Location to jump to", def = "") - Location pos, - //FAWE start - @Switch(name = 'f', desc = "force teleport") - boolean force) throws WorldEditException { + public void jumpTo( + Player player, + @Arg(desc = "Location to jump to", def = "") + Location pos, + //FAWE start + @Switch(name = 'f', desc = "force teleport") + boolean force + ) throws WorldEditException { if (pos == null) { pos = player.getSolidBlockTrace(300); @@ -176,19 +184,21 @@ public class NavigationCommands { } @Command( - name = "up", - aliases = { "/up" }, - desc = "Go upwards some distance" + name = "up", + aliases = {"/up"}, + desc = "Go upwards some distance" ) @CommandPermissions("worldedit.navigation.up") @Logging(POSITION) - public void up(Player player, - @Arg(desc = "Distance to go upwards") - int distance, - @Switch(name = 'f', desc = "Force using flight to keep you still") - boolean forceFlight, - @Switch(name = 'g', desc = "Force using glass to keep you still") - boolean forceGlass) throws WorldEditException { + public void up( + Player player, + @Arg(desc = "Distance to go upwards") + int distance, + @Switch(name = 'f', desc = "Force using flight to keep you still") + boolean forceFlight, + @Switch(name = 'g', desc = "Force using glass to keep you still") + boolean forceGlass + ) throws WorldEditException { boolean alwaysGlass = getAlwaysGlass(forceFlight, forceGlass); if (player.ascendUpwards(distance, alwaysGlass)) { player.print(Caption.of("worldedit.up.moved")); @@ -201,7 +211,7 @@ public class NavigationCommands { * Helper function for /up and /ceil. * * @param forceFlight if flight should be used, rather than the default config option - * @param forceGlass if glass should always be placed, rather than the default config option + * @param forceGlass if glass should always be placed, rather than the default config option * @return true, if glass should always be put under the player */ private boolean getAlwaysGlass(boolean forceFlight, boolean forceGlass) { @@ -209,4 +219,5 @@ public class NavigationCommands { return forceGlass || (config.navigationUseGlass && !forceFlight); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/PaintBrushCommands.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/PaintBrushCommands.java index 6083611ea..c34c66055 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/PaintBrushCommands.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/PaintBrushCommands.java @@ -60,88 +60,110 @@ import static org.enginehub.piston.part.CommandParts.arg; @CommandContainer(superTypes = CommandPermissionsConditionGenerator.Registration.class) public class PaintBrushCommands { - private static final CommandArgument REGION_FACTORY = arg(TranslatableComponent.of("shape") , Caption.of("worldedit.brush.paint.shape")) - .defaultsTo(ImmutableList.of()) - .ofTypes(ImmutableList.of(Key.of(RegionFactory.class))) - .build(); + private static final CommandArgument REGION_FACTORY = arg( + TranslatableComponent.of("shape"), + Caption.of("worldedit.brush.paint.shape") + ) + .defaultsTo(ImmutableList.of()) + .ofTypes(ImmutableList.of(Key.of(RegionFactory.class))) + .build(); - private static final CommandArgument RADIUS = arg(TranslatableComponent.of("radius") , Caption.of("worldedit.brush.paint.size")) - .defaultsTo(ImmutableList.of("5")) - .ofTypes(ImmutableList.of(Key.of(double.class))) - .build(); + private static final CommandArgument RADIUS = arg( + TranslatableComponent.of("radius"), + Caption.of("worldedit.brush.paint.size") + ) + .defaultsTo(ImmutableList.of("5")) + .ofTypes(ImmutableList.of(Key.of(double.class))) + .build(); - private static final CommandArgument DENSITY = arg(TranslatableComponent.of("density") , Caption.of("worldedit.brush.paint.density")) - .defaultsTo(ImmutableList.of("20")) - .ofTypes(ImmutableList.of(Key.of(double.class))) - .build(); + private static final CommandArgument DENSITY = arg( + TranslatableComponent.of("density"), + Caption.of("worldedit.brush.paint.density") + ) + .defaultsTo(ImmutableList.of("20")) + .ofTypes(ImmutableList.of(Key.of(double.class))) + .build(); - public static void register(CommandManagerService service, CommandManager commandManager, CommandRegistrationHandler registration) { + public static void register( + CommandManagerService service, + CommandManager commandManager, + CommandRegistrationHandler registration + ) { commandManager.register("paint", builder -> { builder.description(Caption.of("worldedit.brush.paint.description")); builder.action(org.enginehub.piston.Command.Action.NULL_ACTION); CommandManager manager = service.newCommandManager(); registration.register( - manager, - PaintBrushCommandsRegistration.builder(), - new PaintBrushCommands() + manager, + PaintBrushCommandsRegistration.builder(), + new PaintBrushCommands() ); builder.condition(new PermissionCondition(ImmutableSet.of("worldedit.brush.paint"))); builder.addParts(REGION_FACTORY, RADIUS, DENSITY); - builder.addPart(SubCommandPart.builder(TranslatableComponent.of("type") , Caption.of("worldedit.brush.paint.type")) - .withCommands(manager.getAllCommands().collect(Collectors.toList())) - .required() - .build()); + builder.addPart(SubCommandPart.builder(TranslatableComponent.of("type"), Caption.of("worldedit.brush.paint.type")) + .withCommands(manager.getAllCommands().collect(Collectors.toList())) + .required() + .build()); }); } - private void setPaintBrush(CommandParameters parameters, Player player, LocalSession localSession, - Contextual generatorFactory) throws WorldEditException { + private void setPaintBrush( + CommandParameters parameters, Player player, LocalSession localSession, + Contextual generatorFactory + ) throws WorldEditException { double radius = requireNonNull(RADIUS.value(parameters).asSingle(double.class)); double density = requireNonNull(DENSITY.value(parameters).asSingle(double.class)) / 100; RegionFactory regionFactory = REGION_FACTORY.value(parameters).asSingle(RegionFactory.class); BrushCommands.setOperationBasedBrush(player, localSession, radius, - new Paint(generatorFactory, density), regionFactory, "worldedit.brush.paint"); + new Paint(generatorFactory, density), regionFactory, "worldedit.brush.paint" + ); } @Command( - name = "forest", - desc = "Plant trees" + name = "forest", + desc = "Plant trees" ) - public void forest(CommandParameters parameters, - Player player, LocalSession localSession, - @Arg(desc = "The type of tree to plant") - TreeGenerator.TreeType type) throws WorldEditException { + public void forest( + CommandParameters parameters, + Player player, LocalSession localSession, + @Arg(desc = "The type of tree to plant") + TreeGenerator.TreeType type + ) throws WorldEditException { setPaintBrush(parameters, player, localSession, new TreeGeneratorFactory(type)); } @Command( - name = "item", - desc = "Use an item" + name = "item", + desc = "Use an item" ) @CommandPermissions("worldedit.brush.item") - public void item(CommandParameters parameters, - Player player, LocalSession localSession, - @Arg(desc = "The type of item to use") - BaseItem item, - @Arg(desc = "The direction in which the item will be applied", def = "up") - @Direction(includeDiagonals = true) - com.sk89q.worldedit.util.Direction direction) throws WorldEditException { + public void item( + CommandParameters parameters, + Player player, LocalSession localSession, + @Arg(desc = "The type of item to use") + BaseItem item, + @Arg(desc = "The direction in which the item will be applied", def = "up") + @Direction(includeDiagonals = true) + com.sk89q.worldedit.util.Direction direction + ) throws WorldEditException { player.print(TextComponent.builder().append("WARNING: ") .append(Caption.of("worldedit.brush.paint.item.warning")).build()); setPaintBrush(parameters, player, localSession, new ItemUseFactory(item, direction)); } @Command( - name = "set", - desc = "Place a block" + name = "set", + desc = "Place a block" ) - public void set(CommandParameters parameters, - Player player, LocalSession localSession, - @Arg(desc = "The pattern of blocks to use") - Pattern pattern) throws WorldEditException { + public void set( + CommandParameters parameters, + Player player, LocalSession localSession, + @Arg(desc = "The pattern of blocks to use") + Pattern pattern + ) throws WorldEditException { setPaintBrush(parameters, player, localSession, new ReplaceFactory(pattern)); } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/RegionCommands.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/RegionCommands.java index 5f403df64..2bdced8ec 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/RegionCommands.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/RegionCommands.java @@ -22,8 +22,8 @@ package com.sk89q.worldedit.command; import com.fastasyncworldedit.core.FaweAPI; import com.fastasyncworldedit.core.FaweCache; import com.fastasyncworldedit.core.configuration.Caption; -import com.fastasyncworldedit.core.object.FaweLimit; import com.fastasyncworldedit.core.extent.processor.lighting.RelightMode; +import com.fastasyncworldedit.core.object.FaweLimit; import com.sk89q.jnbt.CompoundTag; import com.sk89q.worldedit.EditSession; import com.sk89q.worldedit.LocalSession; @@ -99,16 +99,18 @@ public class RegionCommands { } @Command( - name = "/set", - desc = "Sets all the blocks in the region" + name = "/set", + desc = "Sets all the blocks in the region" ) @CommandPermissions("worldedit.region.set") @Logging(REGION) @Confirm(Confirm.Processor.REGION) - public int set(Actor actor, EditSession editSession, - @Selection Region region, - @Arg(desc = "The pattern of blocks to set") - Pattern pattern) { + public int set( + Actor actor, EditSession editSession, + @Selection Region region, + @Arg(desc = "The pattern of blocks to set") + Pattern pattern + ) { int affected = editSession.setBlocks(region, pattern); if (affected != 0) { actor.print(Caption.of("worldedit.set.done")); @@ -117,9 +119,9 @@ public class RegionCommands { } @Command( - name = "/air", - aliases = {"/0"}, - desc = "Sets all the blocks in the region to air" + name = "/air", + aliases = {"/0"}, + desc = "Sets all the blocks in the region to air" ) @CommandPermissions("worldedit.region.set") @Logging(REGION) @@ -128,19 +130,21 @@ public class RegionCommands { } @Command( - name = "/test", - desc = "test region" + name = "/test", + desc = "test region" ) @CommandPermissions("worldedit.region.test") @Logging(REGION) - public void test(Player player, EditSession editSession, - @Arg(desc = "test") double testValue) throws WorldEditException { + public void test( + Player player, EditSession editSession, + @Arg(desc = "test") double testValue + ) throws WorldEditException { player.print(TextComponent.of(testValue)); } @Command( - name = "/fixlighting", - desc = "Get the light at a position" + name = "/fixlighting", + desc = "Get the light at a position" ) @CommandPermissions("worldedit.light.fix") public void fixLighting(Player player) throws WorldEditException { @@ -149,7 +153,10 @@ public class RegionCommands { if (selection == null) { final int cx = loc.getBlockX() >> 4; final int cz = loc.getBlockZ() >> 4; - selection = new CuboidRegion(BlockVector3.at(cx - 8, 0, cz - 8).multiply(16), BlockVector3.at(cx + 8, 0, cz + 8).multiply(16)); + selection = new CuboidRegion( + BlockVector3.at(cx - 8, 0, cz - 8).multiply(16), + BlockVector3.at(cx + 8, 0, cz + 8).multiply(16) + ); } int count = FaweAPI.fixLighting(player.getWorld(), selection, null, RelightMode.ALL); player.print(Caption.of("fawe.info.lighting.propagate.selection", count)); @@ -168,9 +175,9 @@ public class RegionCommands { // } @Command( - name = "/removelighting", - aliases = "/removelight", - desc = "Removing lighting in a selection" + name = "/removelighting", + aliases = "/removelight", + desc = "Removing lighting in a selection" ) @CommandPermissions("worldedit.light.remove") public void removeLighting(Player player) { @@ -178,16 +185,19 @@ public class RegionCommands { if (selection == null) { final int cx = player.getLocation().getBlockX() >> 4; final int cz = player.getLocation().getBlockZ() >> 4; - selection = new CuboidRegion(BlockVector3.at(cx - 8, 0, cz - 8).multiply(16), BlockVector3.at(cx + 8, 0, cz + 8).multiply(16)); + selection = new CuboidRegion( + BlockVector3.at(cx - 8, 0, cz - 8).multiply(16), + BlockVector3.at(cx + 8, 0, cz + 8).multiply(16) + ); } int count = FaweAPI.fixLighting(player.getWorld(), selection, null, RelightMode.NONE); player.print(Caption.of("fawe.info.updated.lighting.selection", count)); } @Command( - name = "/nbtinfo", - aliases = "/nbt", - desc = "View nbt info for a block" + name = "/nbtinfo", + aliases = "/nbt", + desc = "View nbt info for a block" ) @CommandPermissions("worldedit.nbtinfo") public void nbtinfo(Player player, EditSession editSession) { @@ -205,9 +215,9 @@ public class RegionCommands { } @Command( - name = "/setblocklight", - aliases = "/setlight", - desc = "Set block lighting in a selection" + name = "/setblocklight", + aliases = "/setlight", + desc = "Set block lighting in a selection" ) @CommandPermissions("worldedit.light.set") public void setlighting(Player player, EditSession editSession, @Selection Region region) { @@ -215,8 +225,8 @@ public class RegionCommands { } @Command( - name = "/setskylight", - desc = "Set sky lighting in a selection" + name = "/setskylight", + desc = "Set sky lighting in a selection" ) @CommandPermissions("worldedit.light.set") public void setskylighting(Player player, @Selection Region region) { @@ -224,20 +234,22 @@ public class RegionCommands { } @Command( - name = "/line", - desc = "Draws line segments between cuboid selection corners or convex polyhedral selection vertices", - descFooter = "Can only be used with a cuboid selection or a convex polyhedral selection" + name = "/line", + desc = "Draws line segments between cuboid selection corners or convex polyhedral selection vertices", + descFooter = "Can only be used with a cuboid selection or a convex polyhedral selection" ) @CommandPermissions("worldedit.region.line") @Logging(REGION) - public int line(Actor actor, EditSession editSession, - @Selection Region region, - @Arg(desc = "The pattern of blocks to place") - Pattern pattern, - @Arg(desc = "The thickness of the line", def = "0") - int thickness, - @Switch(name = 'h', desc = "Generate only a shell") - boolean shell) throws WorldEditException { + public int line( + Actor actor, EditSession editSession, + @Selection Region region, + @Arg(desc = "The pattern of blocks to place") + Pattern pattern, + @Arg(desc = "The thickness of the line", def = "0") + int thickness, + @Switch(name = 'h', desc = "Generate only a shell") + boolean shell + ) throws WorldEditException { if (!(region instanceof CuboidRegion)) { actor.print(Caption.of("worldedit.line.cuboid-only")); return 0; @@ -254,21 +266,23 @@ public class RegionCommands { } @Command( - name = "/curve", - desc = "Draws a spline through selected points", - descFooter = "Can only be used with a convex polyhedral selection" + name = "/curve", + desc = "Draws a spline through selected points", + descFooter = "Can only be used with a convex polyhedral selection" ) @CommandPermissions("worldedit.region.curve") @Logging(REGION) @Confirm(Confirm.Processor.REGION) - public int curve(Actor actor, EditSession editSession, - @Selection Region region, - @Arg(desc = "The pattern of blocks to place") - Pattern pattern, - @Arg(desc = "The thickness of the curve", def = "0") - int thickness, - @Switch(name = 'h', desc = "Generate only a shell") - boolean shell) throws WorldEditException { + public int curve( + Actor actor, EditSession editSession, + @Selection Region region, + @Arg(desc = "The pattern of blocks to place") + Pattern pattern, + @Arg(desc = "The thickness of the curve", def = "0") + int thickness, + @Switch(name = 'h', desc = "Generate only a shell") + boolean shell + ) throws WorldEditException { if (!(region instanceof ConvexPolyhedralRegion)) { actor.print(Caption.of("worldedit.curve.invalid-type")); return 0; @@ -285,18 +299,20 @@ public class RegionCommands { } @Command( - name = "/replace", - aliases = { "/re", "/rep" }, - desc = "Replace all blocks in the selection with another" + name = "/replace", + aliases = {"/re", "/rep"}, + desc = "Replace all blocks in the selection with another" ) @CommandPermissions("worldedit.region.replace") @Logging(REGION) @Confirm(Confirm.Processor.REGION) - public int replace(Actor actor, EditSession editSession, @Selection Region region, - @Arg(desc = "The mask representing blocks to replace", def = "") - Mask from, - @Arg(desc = "The pattern of blocks to replace with") - Pattern to) throws WorldEditException { + public int replace( + Actor actor, EditSession editSession, @Selection Region region, + @Arg(desc = "The mask representing blocks to replace", def = "") + Mask from, + @Arg(desc = "The pattern of blocks to replace with") + Pattern to + ) throws WorldEditException { if (from == null) { from = new ExistingBlockMask(editSession); //FAWE start > the mask will have been initialised with a WorldWrapper extent (very bad/slow @@ -313,28 +329,35 @@ public class RegionCommands { } @Command( - name = "/overlay", - desc = "Set a block on top of blocks in the region" + name = "/overlay", + desc = "Set a block on top of blocks in the region" ) @CommandPermissions("worldedit.region.overlay") @Logging(REGION) @Confirm(Confirm.Processor.REGION) - public int overlay(Actor actor, EditSession editSession, @Selection Region region, - @Arg(desc = "The pattern of blocks to overlay") - Pattern pattern) throws WorldEditException { + public int overlay( + Actor actor, EditSession editSession, @Selection Region region, + @Arg(desc = "The pattern of blocks to overlay") + Pattern pattern + ) throws WorldEditException { int affected = editSession.overlayCuboidBlocks(region, pattern); actor.print(Caption.of("worldedit.overlay.overlaid", TextComponent.of(affected))); return affected; } @Command( - name = "/lay", - desc = "Set the top block in the region" + name = "/lay", + desc = "Set the top block in the region" ) @CommandPermissions("worldedit.region.overlay") @Logging(REGION) @Confirm(Confirm.Processor.REGION) - public void lay(Player player, EditSession editSession, @Selection Region region, @Arg(name = "pattern", desc = "The pattern of blocks to lay") Pattern patternArg) throws WorldEditException { + public void lay( + Player player, + EditSession editSession, + @Selection Region region, + @Arg(name = "pattern", desc = "The pattern of blocks to lay") Pattern patternArg + ) throws WorldEditException { BlockVector3 max = region.getMaximumPoint(); int maxY = max.getBlockY(); Iterable flat = Regions.asFlatRegion(region).asFlatRegion(); @@ -353,23 +376,25 @@ public class RegionCommands { } @Command( - name = "/center", - aliases = { "/middle" }, - desc = "Set the center block(s)" + name = "/center", + aliases = {"/middle"}, + desc = "Set the center block(s)" ) @Logging(REGION) @CommandPermissions("worldedit.region.center") - public int center(Actor actor, EditSession editSession, @Selection Region region, - @Arg(desc = "The pattern of blocks to set") - Pattern pattern) throws WorldEditException { + public int center( + Actor actor, EditSession editSession, @Selection Region region, + @Arg(desc = "The pattern of blocks to set") + Pattern pattern + ) throws WorldEditException { int affected = editSession.center(region, pattern); actor.print(Caption.of("worldedit.center.changed", TextComponent.of(affected))); return affected; } @Command( - name = "/naturalize", - desc = "3 layers of dirt on top then rock below" + name = "/naturalize", + desc = "3 layers of dirt on top then rock below" ) @CommandPermissions("worldedit.region.naturalize") @Logging(REGION) @@ -381,51 +406,57 @@ public class RegionCommands { } @Command( - name = "/walls", - desc = "Build the four sides of the selection" + name = "/walls", + desc = "Build the four sides of the selection" ) @CommandPermissions("worldedit.region.walls") @Logging(REGION) @Confirm(Confirm.Processor.REGION) - public int walls(Actor actor, EditSession editSession, @Selection Region region, - @Arg(desc = "The pattern of blocks to set") - Pattern pattern) throws WorldEditException { + public int walls( + Actor actor, EditSession editSession, @Selection Region region, + @Arg(desc = "The pattern of blocks to set") + Pattern pattern + ) throws WorldEditException { int affected = editSession.makeWalls(region, pattern); actor.print(Caption.of("worldedit.walls.changed", TextComponent.of(affected))); return affected; } @Command( - name = "/faces", - aliases = { "/outline" }, - desc = "Build the walls, ceiling, and floor of a selection" + name = "/faces", + aliases = {"/outline"}, + desc = "Build the walls, ceiling, and floor of a selection" ) @CommandPermissions("worldedit.region.faces") @Logging(REGION) @Confirm(Confirm.Processor.REGION) - public int faces(Actor actor, EditSession editSession, @Selection Region region, - @Arg(desc = "The pattern of blocks to set") - Pattern pattern) throws WorldEditException { + public int faces( + Actor actor, EditSession editSession, @Selection Region region, + @Arg(desc = "The pattern of blocks to set") + Pattern pattern + ) throws WorldEditException { int affected = editSession.makeFaces(region, pattern); actor.print(Caption.of("worldedit.faces.changed", TextComponent.of(affected))); return affected; } @Command( - name = "/smooth", - desc = "Smooth the elevation in the selection", - descFooter = "Example: '//smooth 1 grass_block,dirt,stone' would only smooth natural surface terrain." + name = "/smooth", + desc = "Smooth the elevation in the selection", + descFooter = "Example: '//smooth 1 grass_block,dirt,stone' would only smooth natural surface terrain." ) @CommandPermissions("worldedit.region.smooth") @Logging(REGION) @Confirm(Confirm.Processor.REGION) - public int smooth(Actor actor, EditSession editSession, @Selection Region region, - @Arg(desc = "# of iterations to perform", def = "1") - int iterations, - @Arg(desc = "The mask of blocks to use as the height map", def = "") - Mask mask, - @Switch(name = 's', desc = "The flag makes it only consider snow") - boolean snow) throws WorldEditException { + public int smooth( + Actor actor, EditSession editSession, @Selection Region region, + @Arg(desc = "# of iterations to perform", def = "1") + int iterations, + @Arg(desc = "The mask of blocks to use as the height map", def = "") + Mask mask, + @Switch(name = 's', desc = "The flag makes it only consider snow") + boolean snow + ) throws WorldEditException { //FAWE start > the mask will have been initialised with a WorldWrapper extent (very bad/slow) if (mask instanceof AbstractExtentMask) { ((AbstractExtentMask) mask).setExtent(editSession); @@ -433,7 +464,8 @@ public class RegionCommands { //FAWE end BlockVector3 min = region.getMinimumPoint(); BlockVector3 max = region.getMaximumPoint(); - long volume = (((long) max.getX() - (long) min.getX() + 1) * ((long) max.getY() - (long) min.getY() + 1) * ((long) max.getZ() - (long) min.getZ() + 1)); + long volume = (((long) max.getX() - (long) min.getX() + 1) * ((long) max.getY() - (long) min.getY() + 1) * ((long) max.getZ() - (long) min + .getZ() + 1)); FaweLimit limit = actor.getLimit(); if (volume >= limit.MAX_CHECKS) { throw FaweCache.MAX_CHECKS; @@ -451,10 +483,10 @@ public class RegionCommands { } @Command( - name = "/wea", - aliases = {"wea", "worldeditanywhere", "/worldeditanywhere", "/weanywhere"}, - desc = "Bypass region restrictions", - descFooter = "Bypass region restrictions" + name = "/wea", + aliases = {"wea", "worldeditanywhere", "/worldeditanywhere", "/weanywhere"}, + desc = "Bypass region restrictions", + descFooter = "Bypass region restrictions" ) @CommandPermissions("fawe.admin") public void wea(Actor actor) throws WorldEditException { @@ -466,10 +498,10 @@ public class RegionCommands { } @Command( - name = "/wer", - aliases = {"wer", "worldeditregion", "/worldeditregion", "select", "/select"}, - desc = "Select your current allowed region", - descFooter = "Select your current allowed region" + name = "/wer", + aliases = {"wer", "worldeditregion", "/worldeditregion", "select", "/select"}, + desc = "Select your current allowed region", + descFooter = "Select your current allowed region" ) @CommandPermissions("fawe.worldeditregion") public void wer(Player player) throws WorldEditException { @@ -484,33 +516,36 @@ public class RegionCommands { @Command( - name = "/move", - aliases = {"/mv"}, - desc = "Move the contents of the selection" + name = "/move", + aliases = {"/mv"}, + desc = "Move the contents of the selection" ) @CommandPermissions("worldedit.region.move") @Logging(ORIENTATION_REGION) @Confirm(Confirm.Processor.REGION) - public int move(Actor actor, World world, EditSession editSession, LocalSession session, - @Selection Region region, - @Arg(desc = "# of blocks to move", def = "1") - int count, - @Arg(desc = "The direction to move", def = Direction.AIM) - @Direction(includeDiagonals = true) - BlockVector3 direction, - @Arg(desc = "The pattern of blocks to leave", def = "air") - Pattern replace, - @Switch(name = 's', desc = "Shift the selection to the target location") - boolean moveSelection, - @Switch(name = 'a', desc = "Ignore air blocks") - boolean ignoreAirBlocks, - @Switch(name = 'e', desc = "Also copy entities") - boolean copyEntities, - @Switch(name = 'b', desc = "Also copy biomes") - boolean copyBiomes, - @ArgFlag(name = 'm', desc = "Set the include mask, non-matching blocks become air") - Mask mask) throws WorldEditException { + public int move( + Actor actor, World world, EditSession editSession, LocalSession session, + @Selection Region region, + @Arg(desc = "# of blocks to move", def = "1") + int count, + @Arg(desc = "The direction to move", def = Direction.AIM) + @Direction(includeDiagonals = true) + BlockVector3 direction, + @Arg(desc = "The pattern of blocks to leave", def = "air") + Pattern replace, + @Switch(name = 's', desc = "Shift the selection to the target location") + boolean moveSelection, + @Switch(name = 'a', desc = "Ignore air blocks") + boolean ignoreAirBlocks, + @Switch(name = 'e', desc = "Also copy entities") + boolean copyEntities, + @Switch(name = 'b', desc = "Also copy biomes") + boolean copyBiomes, + @ArgFlag(name = 'm', desc = "Set the include mask, non-matching blocks become air") + Mask mask + ) throws WorldEditException { checkCommandArgument(count >= 1, "Count must be >= 1"); + //FAWE start > the mask will have been initialised with a WorldWrapper extent (very bad/slow) if (mask instanceof AbstractExtentMask) { ((AbstractExtentMask) mask).setExtent(editSession); @@ -545,47 +580,52 @@ public class RegionCommands { } @Command( - name = "/fall", - desc = "Have the blocks in the selection fall", - descFooter = "Make the blocks in the selection fall\n" + name = "/fall", + desc = "Have the blocks in the selection fall", + descFooter = "Make the blocks in the selection fall\n" ) @CommandPermissions("worldedit.region.fall") @Logging(ORIENTATION_REGION) @Confirm(Confirm.Processor.REGION) - public void fall(Player player, EditSession editSession, LocalSession session, - @Selection Region region, - @Arg(desc = "BlockStateHolder", def = "air") - BlockStateHolder replace, - @Switch(name = 'm', desc = "Only fall within the vertical selection") - boolean notFullHeight) throws WorldEditException { + public void fall( + Player player, EditSession editSession, LocalSession session, + @Selection Region region, + @Arg(desc = "BlockStateHolder", def = "air") + BlockStateHolder replace, + @Switch(name = 'm', desc = "Only fall within the vertical selection") + boolean notFullHeight + ) throws WorldEditException { int affected = editSession.fall(region, !notFullHeight, replace); player.print(Caption.of("fawe.worldedit.visitor.visitor.block", affected)); } @Command( - name = "/stack", - desc = "Repeat the contents of the selection" + name = "/stack", + desc = "Repeat the contents of the selection" ) @CommandPermissions("worldedit.region.stack") @Logging(ORIENTATION_REGION) - public int stack(Actor actor, World world, EditSession editSession, LocalSession session, - @Selection Region region, - @Arg(desc = "# of copies to stack", def = "1") - @Confirm(Confirm.Processor.REGION) - int count, - @Arg(desc = "The direction to stack", def = Direction.AIM) - @Direction(includeDiagonals = true) - BlockVector3 direction, - @Switch(name = 's', desc = "Shift the selection to the last stacked copy") - boolean moveSelection, - @Switch(name = 'a', desc = "Ignore air blocks") - boolean ignoreAirBlocks, - @Switch(name = 'e', desc = "Also copy entities") - boolean copyEntities, - @Switch(name = 'b', desc = "Also copy biomes") - boolean copyBiomes, - @ArgFlag(name = 'm', desc = "Set the include mask, non-matching blocks become air") - Mask mask) throws WorldEditException { + public int stack( + Actor actor, World world, EditSession editSession, LocalSession session, + @Selection Region region, + @Arg(desc = "# of copies to stack", def = "1") + @Confirm(Confirm.Processor.REGION) + int count, + @Arg(desc = "The direction to stack", def = Direction.AIM) + @Direction(includeDiagonals = true) + BlockVector3 direction, + @Switch(name = 's', desc = "Shift the selection to the last stacked copy") + boolean moveSelection, + @Switch(name = 'a', desc = "Ignore air blocks") + boolean ignoreAirBlocks, + @Switch(name = 'e', desc = "Also copy entities") + boolean copyEntities, + @Switch(name = 'b', desc = "Also copy biomes") + boolean copyBiomes, + @ArgFlag(name = 'm', desc = "Set the include mask, non-matching blocks become air") + Mask mask + ) throws WorldEditException { + //FAWE start > the mask will have been initialised with a WorldWrapper extent (very bad/slow) if (mask instanceof AbstractExtentMask) { ((AbstractExtentMask) mask).setExtent(editSession); @@ -623,22 +663,24 @@ public class RegionCommands { } @Command( - name = "/regen", - desc = "Regenerates the contents of the selection", - descFooter = "This command might affect things outside the selection,\n" - + "if they are within the same chunk." + name = "/regen", + desc = "Regenerates the contents of the selection", + descFooter = "This command might affect things outside the selection,\n" + + "if they are within the same chunk." ) @CommandPermissions("worldedit.regen") @Logging(REGION) @Confirm(Confirm.Processor.REGION) - void regenerate(Actor actor, World world, LocalSession session, EditSession editSession, - @Selection Region region, - @Arg(desc = "The seed to regenerate with, otherwise uses world seed", def = "") - Long seed, - @Switch(name = 'b', desc = "Regenerate biomes as well") - boolean regenBiomes, - @Arg(desc = "Biome to apply for this regeneration (only works in overworld)", def = "") - BiomeType biomeType) throws WorldEditException { + void regenerate( + Actor actor, World world, LocalSession session, EditSession editSession, + @Selection Region region, + @Arg(desc = "The seed to regenerate with, otherwise uses world seed", def = "") + Long seed, + @Switch(name = 'b', desc = "Regenerate biomes as well") + boolean regenBiomes, + @Arg(desc = "Biome to apply for this regeneration (only works in overworld)", def = "") + BiomeType biomeType + ) throws WorldEditException { Mask mask = session.getMask(); boolean success; try { @@ -663,25 +705,27 @@ public class RegionCommands { } @Command( - name = "/deform", - desc = "Deforms a selected region with an expression", - descFooter = "The expression is executed for each block and is expected\n" - + "to modify the variables x, y and z to point to a new block\n" - + "to fetch. See also https://tinyurl.com/weexpr" + name = "/deform", + desc = "Deforms a selected region with an expression", + descFooter = "The expression is executed for each block and is expected\n" + + "to modify the variables x, y and z to point to a new block\n" + + "to fetch. See also https://tinyurl.com/weexpr" ) @CommandPermissions("worldedit.region.deform") @Logging(ALL) @Confirm(Confirm.Processor.REGION) - public int deform(Actor actor, LocalSession session, EditSession editSession, - @Selection Region region, - @Arg(desc = "The expression to use", variable = true) - List expression, - @Switch(name = 'r', desc = "Use the game's coordinate origin") - boolean useRawCoords, - @Switch(name = 'o', desc = "Use the placement's coordinate origin") - boolean offset, - @Switch(name = 'c', desc = "Use the selection's center as origin") - boolean offsetCenter) throws WorldEditException { + public int deform( + Actor actor, LocalSession session, EditSession editSession, + @Selection Region region, + @Arg(desc = "The expression to use", variable = true) + List expression, + @Switch(name = 'r', desc = "Use the game's coordinate origin") + boolean useRawCoords, + @Switch(name = 'o', desc = "Use the placement's coordinate origin") + boolean offset, + @Switch(name = 'c', desc = "Use the selection's center as origin") + boolean offsetCenter + ) throws WorldEditException { final Vector3 zero; Vector3 unit; @@ -717,7 +761,13 @@ public class RegionCommands { final Vector3 unit1 = unit; try { - final int affected = editSession.deformRegion(region, zero, unit1, String.join(" ", expression), session.getTimeout()); + final int affected = editSession.deformRegion( + region, + zero, + unit1, + String.join(" ", expression), + session.getTimeout() + ); if (actor instanceof Player) { ((Player) actor).findFreePosition(); } @@ -730,25 +780,26 @@ public class RegionCommands { } @Command( - name = "/hollow", - desc = "Hollows out the object contained in this selection", - descFooter = "Hollows out the object contained in this selection.\n" - + "Optionally fills the hollowed out part with the given block.\n" - + "Thickness is measured in manhattan distance." + name = "/hollow", + desc = "Hollows out the object contained in this selection", + descFooter = "Hollows out the object contained in this selection.\n" + + "Optionally fills the hollowed out part with the given block.\n" + + "Thickness is measured in manhattan distance." ) @CommandPermissions("worldedit.region.hollow") @Logging(REGION) @Confirm(Confirm.Processor.REGION) - public int hollow(Actor actor, EditSession editSession, - @Selection Region region, - @Arg(desc = "Thickness of the shell to leave", def = "0") - int thickness, - @Arg(desc = "The pattern of blocks to replace the hollowed area with", def = "air") - Pattern pattern, - @ArgFlag(name = 'm', desc = "Mask to hollow with") - Mask mask) throws WorldEditException { + public int hollow( + Actor actor, EditSession editSession, + @Selection Region region, + @Arg(desc = "Thickness of the shell to leave", def = "0") + int thickness, + @Arg(desc = "The pattern of blocks to replace the hollowed area with", def = "air") + Pattern pattern, + @ArgFlag(name = 'm', desc = "Mask to hollow with") + Mask mask + ) throws WorldEditException { checkCommandArgument(thickness >= 0, "Thickness must be >= 0"); - //FAWE start > the mask will have been initialised with a WorldWrapper extent (very bad/slow) Mask finalMask; if (mask != null) { @@ -767,17 +818,19 @@ public class RegionCommands { } @Command( - name = "/forest", - desc = "Make a forest within the region" + name = "/forest", + desc = "Make a forest within the region" ) @CommandPermissions("worldedit.region.forest") @Logging(REGION) @Confirm(Confirm.Processor.REGION) - public int forest(Actor actor, EditSession editSession, @Selection Region region, - @Arg(desc = "The type of tree to place", def = "tree") - TreeType type, - @Arg(desc = "The density of the forest", def = "5") - double density) throws WorldEditException { + public int forest( + Actor actor, EditSession editSession, @Selection Region region, + @Arg(desc = "The type of tree to place", def = "tree") + TreeType type, + @Arg(desc = "The density of the forest", def = "5") + double density + ) throws WorldEditException { checkCommandArgument(0 <= density && density <= 100, "Density must be in [0, 100]"); int affected = editSession.makeForest(region, density / 100, type); actor.print(Caption.of("worldedit.forest.created", TextComponent.of(affected))); @@ -785,15 +838,17 @@ public class RegionCommands { } @Command( - name = "/flora", - desc = "Make flora within the region" + name = "/flora", + desc = "Make flora within the region" ) @CommandPermissions("worldedit.region.flora") @Logging(REGION) @Confirm(Confirm.Processor.REGION) - public int flora(Actor actor, EditSession editSession, @Selection Region region, - @Arg(desc = "The density of the forest", def = "5") - double density) throws WorldEditException { + public int flora( + Actor actor, EditSession editSession, @Selection Region region, + @Arg(desc = "The density of the forest", def = "5") + double density + ) throws WorldEditException { checkCommandArgument(0 <= density && density <= 100, "Density must be in [0, 100]"); density = density / 100; FloraGenerator generator = new FloraGenerator(editSession); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/SchematicCommands.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/SchematicCommands.java index c48a8552d..86e85d1a5 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/SchematicCommands.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/SchematicCommands.java @@ -21,6 +21,7 @@ package com.sk89q.worldedit.command; import com.fastasyncworldedit.core.configuration.Caption; import com.fastasyncworldedit.core.configuration.Settings; +import com.fastasyncworldedit.core.event.extent.ActorSaveClipboardEvent; import com.fastasyncworldedit.core.extent.clipboard.MultiClipboardHolder; import com.fastasyncworldedit.core.extent.clipboard.URIClipboardHolder; import com.fastasyncworldedit.core.extent.clipboard.io.schematic.MinecraftStructure; @@ -36,7 +37,6 @@ import com.sk89q.worldedit.command.util.AsyncCommandBuilder; import com.sk89q.worldedit.command.util.CommandPermissions; import com.sk89q.worldedit.command.util.CommandPermissionsConditionGenerator; import com.sk89q.worldedit.entity.Player; -import com.fastasyncworldedit.core.event.extent.ActorSaveClipboardEvent; import com.sk89q.worldedit.extension.platform.Actor; import com.sk89q.worldedit.extension.platform.Capability; import com.sk89q.worldedit.extent.clipboard.BlockArrayClipboard; @@ -142,18 +142,20 @@ public class SchematicCommands { } @Command( - name = "loadall", - desc = "Load multiple clipboards (paste will randomly choose one)" + name = "loadall", + desc = "Load multiple clipboards (paste will randomly choose one)" ) @Deprecated @CommandPermissions({"worldedit.clipboard.load", "worldedit.schematic.load", "worldedit.schematic.load.web", "worldedit.schematic.load.asset"}) - public void loadall(Player player, LocalSession session, - @Arg(desc = "Format name.", def = "fast") - String formatName, - @Arg(desc = "File name.") - String filename, - @Switch(name = 'r', desc = "Apply random rotation") - boolean randomRotate) throws FilenameException { + public void loadall( + Player player, LocalSession session, + @Arg(desc = "Format name.", def = "fast") + String formatName, + @Arg(desc = "File name.") + String filename, + @Switch(name = 'r', desc = "Apply random rotation") + boolean randomRotate + ) throws FilenameException { final ClipboardFormat format = ClipboardFormats.findByAlias(formatName); if (format == null) { player.print(Caption.of("fawe.worldedit.clipboard.clipboard.invalid.format", formatName)); @@ -171,8 +173,8 @@ public class SchematicCommands { } @Command( - name = "clear", - desc = "Clear your clipboard" + name = "clear", + desc = "Clear your clipboard" ) @CommandPermissions({"worldedit.clipboard.clear", "worldedit.schematic.clear"}) public void clear(Player player, LocalSession session) throws WorldEditException { @@ -181,8 +183,8 @@ public class SchematicCommands { } @Command( - name = "unload", - desc = "Remove a clipboard from your multi-clipboard" + name = "unload", + desc = "Remove a clipboard from your multi-clipboard" ) @CommandPermissions({"worldedit.clipboard.clear", "worldedit.schematic.clear"}) public void unload(Player player, LocalSession session, String fileName) throws WorldEditException { @@ -232,7 +234,8 @@ public class SchematicCommands { player.print(Caption.of("worldedit.schematic.directory-does-not-exist", TextComponent.of(String.valueOf(destDir)))); return; } - if (Settings.IMP.PATHS.PER_PLAYER_SCHEMATICS && !MainUtil.isInSubDirectory(dir, destDir) && !player.hasPermission("worldedit.schematic.move.other")) { + if (Settings.IMP.PATHS.PER_PLAYER_SCHEMATICS && !MainUtil.isInSubDirectory(dir, destDir) && !player.hasPermission( + "worldedit.schematic.move.other")) { player.print(Caption.of("fawe.error.no-perm", "worldedit.schematic.move.other")); return; } @@ -252,9 +255,13 @@ public class SchematicCommands { player.print(Caption.of("fawe.worldedit.schematic.schematic.move.exists", destFile)); continue; } - if (Settings.IMP.PATHS.PER_PLAYER_SCHEMATICS && (!MainUtil.isInSubDirectory(dir, destFile) || !MainUtil.isInSubDirectory(dir, source)) && !player.hasPermission("worldedit.schematic.delete.other")) { + if (Settings.IMP.PATHS.PER_PLAYER_SCHEMATICS && (!MainUtil.isInSubDirectory( + dir, + destFile + ) || !MainUtil.isInSubDirectory(dir, source)) && !player.hasPermission("worldedit.schematic.delete.other")) { player.print(Caption.of("fawe.worldedit.schematic.schematic.move.failed", destFile, - Caption.of("fawe.error.no-perm", ("worldedit.schematic.move.other")))); + Caption.of("fawe.error.no-perm", ("worldedit.schematic.move.other")) + )); continue; } try { @@ -287,15 +294,17 @@ public class SchematicCommands { //FAWE end @Command( - name = "load", - desc = "Load a schematic into your clipboard" + name = "load", + desc = "Load a schematic into your clipboard" ) @CommandPermissions({"worldedit.clipboard.load", "worldedit.schematic.load", "worldedit.schematic.load.asset", "worldedit.schematic.load.web", "worldedit.schematic.load.other"}) - public void load(Actor actor, LocalSession session, - @Arg(desc = "File name.") - String filename, - @Arg(desc = "Format name.", def = "fast") - String formatName) throws FilenameException { + public void load( + Actor actor, LocalSession session, + @Arg(desc = "File name.") + String filename, + @Arg(desc = "Format name.", def = "fast") + String formatName + ) throws FilenameException { LocalConfiguration config = worldEdit.getConfiguration(); //FAWE start @@ -338,13 +347,16 @@ public class SchematicCommands { return; } } else { - if (Settings.IMP.PATHS.PER_PLAYER_SCHEMATICS && !actor.hasPermission("worldedit.schematic.load.other") && Pattern.compile("[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}").matcher(filename).find()) { + if (Settings.IMP.PATHS.PER_PLAYER_SCHEMATICS && !actor.hasPermission("worldedit.schematic.load.other") && Pattern + .compile("[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}") + .matcher(filename) + .find()) { actor.print(Caption.of("fawe.error.no-perm", "worldedit.schematic.load.other")); return; } if (filename.matches(".*\\.[\\w].*")) { format = ClipboardFormats - .findByExtension(filename.substring(filename.lastIndexOf('.') + 1)); + .findByExtension(filename.substring(filename.lastIndexOf('.') + 1)); } else { format = ClipboardFormats.findByAlias(formatName); } @@ -357,7 +369,9 @@ public class SchematicCommands { } } if (file == null || !file.exists() || !MainUtil.isInSubDirectory(saveDir, file)) { - actor.printError("Schematic " + filename + " does not exist! (" + (file != null && file.exists()) + "|" + file + "|" + (file != null && !MainUtil.isInSubDirectory(saveDir, file)) + ")"); + actor.printError(TextComponent.of("Schematic " + filename + " does not exist! (" + (file != null && file.exists()) + + "|" + file + "|" + (file != null && !MainUtil + .isInSubDirectory(saveDir, file)) + ")")); return; } if (format == null) { @@ -389,21 +403,23 @@ public class SchematicCommands { } @Command( - name = "save", - desc = "Save your clipboard into a schematic file" + name = "save", + desc = "Save your clipboard into a schematic file" ) @CommandPermissions({"worldedit.clipboard.save", "worldedit.schematic.save", "worldedit.schematic.save.other"}) - public void save(Actor actor, LocalSession session, - @Arg(desc = "File name.") - String filename, - @Arg(desc = "Format name.", def = "fast") - String formatName, - @Switch(name = 'f', desc = "Overwrite an existing file.") - boolean allowOverwrite, - //FAWE start - @Switch(name = 'g', desc = "Bypasses per-player-schematic folders") - boolean global) throws WorldEditException { - //FAWE end + public void save( + Actor actor, LocalSession session, + @Arg(desc = "File name.") + String filename, + @Arg(desc = "Format name.", def = "fast") + String formatName, + @Switch(name = 'f', desc = "Overwrite an existing file.") + boolean allowOverwrite, + //FAWE start + @Switch(name = 'g', desc = "Bypasses per-player-schematic folders") + boolean global + ) throws WorldEditException { + //FAWE end if (worldEdit.getPlatformManager().queryCapability(Capability.GAME_HOOKS).getDataVersion() == -1) { actor.printError(TranslatableComponent.of("worldedit.schematic.unsupported-minecraft-version")); return; @@ -462,7 +478,7 @@ public class SchematicCommands { if (parent != null && !parent.exists()) { if (!parent.mkdirs()) { throw new StopExecutionException(Caption.of( - "worldedit.schematic.save.failed-directory")); + "worldedit.schematic.save.failed-directory")); } } @@ -470,17 +486,20 @@ public class SchematicCommands { SchematicSaveTask task = new SchematicSaveTask(actor, f, dir, format, holder, overwrite); AsyncCommandBuilder.wrap(task, actor) - .registerWithSupervisor(worldEdit.getSupervisor(), "Saving schematic " + filename) - .setDelayMessage(Caption.of("worldedit.schematic.save.saving")) - .onSuccess(filename + " saved" + (overwrite ? " (overwriting previous file)." : "."), null) - .onFailure(Caption.of("worldedit.schematic.failed-to-save"), worldEdit.getPlatformManager().getPlatformCommandManager().getExceptionConverter()) - .buildAndExec(worldEdit.getExecutorService()); + .registerWithSupervisor(worldEdit.getSupervisor(), "Saving schematic " + filename) + .setDelayMessage(Caption.of("worldedit.schematic.save.saving")) + .onSuccess(filename + " saved" + (overwrite ? " (overwriting previous file)." : "."), null) + .onFailure( + Caption.of("worldedit.schematic.failed-to-save"), + worldEdit.getPlatformManager().getPlatformCommandManager().getExceptionConverter() + ) + .buildAndExec(worldEdit.getExecutorService()); } @Command( - name = "formats", - aliases = {"listformats", "f"}, - desc = "List available formats" + name = "formats", + aliases = {"listformats", "f"}, + desc = "List available formats" ) @CommandPermissions("worldedit.schematic.formats") public void formats(Actor actor) { @@ -503,23 +522,25 @@ public class SchematicCommands { } @Command( - name = "list", - aliases = {"all", "ls"}, - desc = "List saved schematics", - descFooter = "Note: Format is not fully verified until loading." + name = "list", + aliases = {"all", "ls"}, + desc = "List saved schematics", + descFooter = "Note: Format is not fully verified until loading." ) @CommandPermissions("worldedit.schematic.list") - public void list(Actor actor, LocalSession session, - @ArgFlag(name = 'p', desc = "Page to view.", def = "1") - int page, - @Switch(name = 'd', desc = "Sort by date, oldest first") - boolean oldFirst, - @Switch(name = 'n', desc = "Sort by date, newest first") - boolean newFirst, - @ArgFlag(name = 'f', desc = "Restricts by format.", def = "") - String formatName, - @Arg(name = "filter", desc = "Filter for schematics", def = "all") - String filter, Arguments arguments) throws WorldEditException { + public void list( + Actor actor, LocalSession session, + @ArgFlag(name = 'p', desc = "Page to view.", def = "1") + int page, + @Switch(name = 'd', desc = "Sort by date, oldest first") + boolean oldFirst, + @Switch(name = 'n', desc = "Sort by date, newest first") + boolean newFirst, + @ArgFlag(name = 'f', desc = "Restricts by format.", def = "") + String formatName, + @Arg(name = "filter", desc = "Filter for schematics", def = "all") + String filter, Arguments arguments + ) throws WorldEditException { if (oldFirst && newFirst) { throw new StopExecutionException(Caption.of("worldedit.schematic.sorting-old-new")); } @@ -551,60 +572,76 @@ public class SchematicCommands { Function isLoaded = multi == null ? f -> false : multi::contains; List components = UtilityCommands.entryToComponent(dir, entries, isLoaded, - (name, path, type, loaded) -> { - TextComponentProducer msg = new TextComponentProducer(); + (name, path, type, loaded) -> { + TextComponentProducer msg = new TextComponentProducer(); - msg.append(Caption.of("worldedit.schematic.dash.symbol")); + msg.append(Caption.of("worldedit.schematic.dash.symbol")); - if (loaded) { - msg.append(Caption.of("worldedit.schematic.minus.symbol") - .clickEvent(ClickEvent.of(ClickEvent.Action.SUGGEST_COMMAND, unload + " " + path)) - .hoverEvent(HoverEvent.of(HoverEvent.Action.SHOW_TEXT, Caption.of("worldedit.schematic.unload")))); - } else { - msg.append(Caption.of("worldedit.schematic.plus.symbol") - .clickEvent(ClickEvent.of(ClickEvent.Action.SUGGEST_COMMAND, loadMulti + " " + path)) - .hoverEvent(HoverEvent.of(HoverEvent.Action.SHOW_TEXT, Caption.of("worldedit.schematic.clipboard")))); - } - if (type != UtilityCommands.URIType.DIRECTORY) { - msg.append(Caption.of("worldedit.schematic.x.symbol") - .clickEvent(ClickEvent.of(ClickEvent.Action.SUGGEST_COMMAND, delete + " " + path)) - .hoverEvent(HoverEvent.of(HoverEvent.Action.SHOW_TEXT, Caption.of("worldedit.schematic.delete"))) - ); - } else if (hasShow) { - msg.append(Caption.of("worldedit.schematic.0.symbol") - .clickEvent(ClickEvent.of(ClickEvent.Action.SUGGEST_COMMAND, showCmd + " " + path)) - .hoverEvent(HoverEvent.of(HoverEvent.Action.SHOW_TEXT, Caption.of("worldedit.schematic.visualize"))) - ); - } - TextComponent msgElem = TextComponent.of(name); - if (type != UtilityCommands.URIType.DIRECTORY) { - msgElem = msgElem.clickEvent(ClickEvent.of(ClickEvent.Action.SUGGEST_COMMAND, loadSingle + " " + path)); - msgElem = msgElem.hoverEvent(HoverEvent.of(HoverEvent.Action.SHOW_TEXT, Caption.of("worldedit.schematic.load"))); - } else { - msgElem = msgElem.clickEvent(ClickEvent.of(ClickEvent.Action.SUGGEST_COMMAND, list + " " + path)); - msgElem = msgElem.hoverEvent(HoverEvent.of(HoverEvent.Action.SHOW_TEXT, Caption.of("worldedit.schematic.list"))); - } - msg.append(msgElem); - - if (type == UtilityCommands.URIType.FILE) { - long filesize = 0; - try { - filesize = Files.size(Paths.get(dir.getAbsolutePath() + File.separator - + (playerFolder ? (uuid.toString() + File.separator) : "") + path)); - } catch (IOException e) { - e.printStackTrace(); + if (loaded) { + msg.append(Caption.of("worldedit.schematic.minus.symbol") + .clickEvent(ClickEvent.of(ClickEvent.Action.SUGGEST_COMMAND, unload + " " + path)) + .hoverEvent(HoverEvent.of( + HoverEvent.Action.SHOW_TEXT, + Caption.of("worldedit.schematic.unload") + ))); + } else { + msg.append(Caption.of("worldedit.schematic.plus.symbol") + .clickEvent(ClickEvent.of(ClickEvent.Action.SUGGEST_COMMAND, loadMulti + " " + path)) + .hoverEvent(HoverEvent.of( + HoverEvent.Action.SHOW_TEXT, + Caption.of("worldedit.schematic.clipboard") + ))); } - TextComponent sizeElem = TextComponent.of(String.format(" (%.1f kb)", filesize / 1000.0), TextColor.GRAY); - msg.append(sizeElem); + if (type != UtilityCommands.URIType.DIRECTORY) { + msg.append(Caption.of("worldedit.schematic.x.symbol") + .clickEvent(ClickEvent.of(ClickEvent.Action.SUGGEST_COMMAND, delete + " " + path)) + .hoverEvent(HoverEvent.of(HoverEvent.Action.SHOW_TEXT, Caption.of("worldedit.schematic.delete"))) + ); + } else if (hasShow) { + msg.append(Caption.of("worldedit.schematic.0.symbol") + .clickEvent(ClickEvent.of(ClickEvent.Action.SUGGEST_COMMAND, showCmd + " " + path)) + .hoverEvent(HoverEvent.of( + HoverEvent.Action.SHOW_TEXT, + Caption.of("worldedit.schematic.visualize") + )) + ); + } + TextComponent msgElem = TextComponent.of(name); + if (type != UtilityCommands.URIType.DIRECTORY) { + msgElem = msgElem.clickEvent(ClickEvent.of(ClickEvent.Action.SUGGEST_COMMAND, loadSingle + " " + path)); + msgElem = msgElem.hoverEvent(HoverEvent.of( + HoverEvent.Action.SHOW_TEXT, + Caption.of("worldedit.schematic.load") + )); + } else { + msgElem = msgElem.clickEvent(ClickEvent.of(ClickEvent.Action.SUGGEST_COMMAND, list + " " + path)); + msgElem = msgElem.hoverEvent(HoverEvent.of( + HoverEvent.Action.SHOW_TEXT, + Caption.of("worldedit.schematic.list") + )); + } + msg.append(msgElem); + + if (type == UtilityCommands.URIType.FILE) { + long filesize = 0; + try { + filesize = Files.size(Paths.get(dir.getAbsolutePath() + File.separator + + (playerFolder ? (uuid.toString() + File.separator) : "") + path)); + } catch (IOException e) { + e.printStackTrace(); + } + TextComponent sizeElem = TextComponent.of(String.format(" (%.1f kb)", filesize / 1000.0), TextColor.GRAY); + msg.append(sizeElem); + } + return msg.create(); } - return msg.create(); - }); + ); long totalBytes = 0; File parentDir = new File(dir.getAbsolutePath() + (playerFolder ? File.separator + uuid.toString() : "")); try { List toAddUp = getFiles(parentDir, null, null); - if (toAddUp != null && toAddUp.size() != 0) { + if (toAddUp != null && toAddUp.size() != 0) { for (File schem : toAddUp) { if (schem.getName().endsWith(".schem") || schem.getName().endsWith(".schematic")) { totalBytes += Files.size(Paths.get(schem.getAbsolutePath())); @@ -618,8 +655,10 @@ public class SchematicCommands { String headerBytesElem = String.format("%.1fkb", totalBytes / 1000.0); if (Settings.IMP.PATHS.PER_PLAYER_SCHEMATICS && Settings.IMP.EXPERIMENTAL.PER_PLAYER_FILE_SIZE_LIMIT > -1) { - headerBytesElem += String.format(" / %dkb", - Settings.IMP.EXPERIMENTAL.PER_PLAYER_FILE_SIZE_LIMIT); + headerBytesElem += String.format( + " / %dkb", + Settings.IMP.EXPERIMENTAL.PER_PLAYER_FILE_SIZE_LIMIT + ); } if (Settings.IMP.PATHS.PER_PLAYER_SCHEMATICS) { @@ -636,14 +675,16 @@ public class SchematicCommands { } @Command( - name = "delete", - aliases = {"d"}, - desc = "Delete a saved schematic" + name = "delete", + aliases = {"d"}, + desc = "Delete a saved schematic" ) @CommandPermissions("worldedit.schematic.delete") - public void delete(Actor actor, LocalSession session, - @Arg(desc = "File name.") - String filename) throws WorldEditException, IOException { + public void delete( + Actor actor, LocalSession session, + @Arg(desc = "File name.") + String filename + ) throws WorldEditException, IOException { LocalConfiguration config = worldEdit.getConfiguration(); File working = worldEdit.getWorkingDirectoryPath(config.saveDir).toFile(); //FAWE start @@ -666,7 +707,8 @@ public class SchematicCommands { actor.print(Caption.of("worldedit.schematic.delete.does-not-exist", TextComponent.of(filename))); continue; } - if (Settings.IMP.PATHS.PER_PLAYER_SCHEMATICS && !MainUtil.isInSubDirectory(dir, f) && !actor.hasPermission("worldedit.schematic.delete.other")) { + if (Settings.IMP.PATHS.PER_PLAYER_SCHEMATICS && !MainUtil.isInSubDirectory(dir, f) && !actor.hasPermission( + "worldedit.schematic.delete.other")) { actor.print(Caption.of("fawe.error.no-perm", "worldedit.schematic.delete.other")); continue; } @@ -690,6 +732,7 @@ public class SchematicCommands { //FAWE end private static class SchematicLoadTask implements Callable { + private final Actor actor; private final ClipboardFormat format; private final File file; @@ -712,9 +755,11 @@ public class SchematicCommands { return new ClipboardHolder(clipboard); } } + } private static class SchematicSaveTask implements Callable { + private final Actor actor; private final ClipboardFormat format; private final ClipboardHolder holder; @@ -722,7 +767,14 @@ public class SchematicCommands { private final File rootDir; private File file; - SchematicSaveTask(Actor actor, File file, File rootDir, ClipboardFormat format, ClipboardHolder holder, boolean overwrite) { + SchematicSaveTask( + Actor actor, + File file, + File rootDir, + ClipboardFormat format, + ClipboardHolder holder, + boolean overwrite + ) { this.actor = actor; this.file = file; this.rootDir = rootDir; @@ -738,12 +790,8 @@ public class SchematicCommands { Clipboard target; //FAWE start - boolean checkFilesize = false; - - if (Settings.IMP.PATHS.PER_PLAYER_SCHEMATICS - && Settings.IMP.EXPERIMENTAL.PER_PLAYER_FILE_SIZE_LIMIT > -1) { - checkFilesize = true; - } + boolean checkFilesize = Settings.IMP.PATHS.PER_PLAYER_SCHEMATICS + && Settings.IMP.EXPERIMENTAL.PER_PLAYER_FILE_SIZE_LIMIT > -1; double directorysizeKb = 0; String curFilepath = file.getAbsolutePath(); @@ -755,7 +803,7 @@ public class SchematicCommands { int numFiles = -1; if (checkFilesize) { List toAddUp = getFiles(rootDir, null, null); - if (toAddUp != null && toAddUp.size() != 0) { + if (toAddUp != null && toAddUp.size() != 0) { for (File child : toAddUp) { if (child.getName().endsWith(".schem") || child.getName().endsWith(".schematic")) { directorysizeKb += Files.size(Paths.get(child.getAbsolutePath())) / 1000.0; @@ -779,7 +827,7 @@ public class SchematicCommands { if (numFiles == -1) { numFiles = 0; List toAddUp = getFiles(rootDir, null, null); - if (toAddUp != null && toAddUp.size() != 0) { + if (toAddUp != null && toAddUp.size() != 0) { for (File child : toAddUp) { if (child.getName().endsWith(".schem") || child.getName().endsWith(".schematic")) { numFiles++; @@ -791,8 +839,10 @@ public class SchematicCommands { if (numFiles >= limit) { TextComponent noSlotsErr = TextComponent.of( //TODO - to be moved into captions/translatablecomponents - String.format("You have " + numFiles + "/" + limit + " saved schematics. Delete some to save this one!", - TextColor.RED)); + String.format( + "You have " + numFiles + "/" + limit + " saved schematics. Delete some to save this one!", + TextColor.RED + )); LOGGER.info(actor.getName() + " failed to save " + file.getCanonicalPath() + " - too many schematics!"); throw new WorldEditException(noSlotsErr) { }; @@ -830,7 +880,7 @@ public class SchematicCommands { double filesizeKb = Files.size(Paths.get(file.getAbsolutePath())) / 1000.0; TextComponent filesizeNotif = TextComponent.of( //TODO - to be moved into captions/translatablecomponents - SCHEMATIC_NAME + " size: " + String.format("%.1f", filesizeKb) + "kb", TextColor.GRAY); + SCHEMATIC_NAME + " size: " + String.format("%.1f", filesizeKb) + "kb", TextColor.GRAY); actor.print(filesizeNotif); if (checkFilesize) { @@ -844,10 +894,15 @@ public class SchematicCommands { if ((curKb) > allocatedKb) { file.delete(); - TextComponent notEnoughKbErr = TextComponent.of( //TODO - to be moved into captions/translatablecomponents - "You're about to be at " + String.format("%.1f", curKb) + "kb of schematics. (" - + String.format("%dkb", allocatedKb) + " available) Delete some first to save this one!", - TextColor.RED); + TextComponent notEnoughKbErr = TextComponent.of( + //TODO - to be moved into captions/translatablecomponents + "You're about to be at " + String.format("%.1f", curKb) + "kb of schematics. (" + + String.format( + "%dkb", + allocatedKb + ) + " available) Delete some first to save this one!", + TextColor.RED + ); LOGGER.info(actor.getName() + " failed to save " + SCHEMATIC_NAME + " - not enough space!"); throw new WorldEditException(notEnoughKbErr) { }; @@ -858,16 +913,22 @@ public class SchematicCommands { } else { numFiles++; } - TextComponent kbRemainingNotif = TextComponent.of( //TODO - to be moved into captions/translatablecomponents - "You have " + String.format("%.1f", (allocatedKb - curKb)) + "kb left for schematics.", TextColor.GRAY); + TextComponent kbRemainingNotif = TextComponent.of( + //TODO - to be moved into captions/translatablecomponents + "You have " + String.format("%.1f", (allocatedKb - curKb)) + "kb left for schematics.", + TextColor.GRAY + ); actor.print(kbRemainingNotif); } if (Settings.IMP.PATHS.PER_PLAYER_SCHEMATICS && Settings.IMP.EXPERIMENTAL.PER_PLAYER_FILE_NUM_LIMIT > -1) { - TextComponent slotsRemainingNotif = TextComponent.of( //TODO - to be moved into captions/translatablecomponents - "You have " + (Settings.IMP.EXPERIMENTAL.PER_PLAYER_FILE_NUM_LIMIT - numFiles) - + " schematic file slots left.", TextColor.GRAY); + TextComponent slotsRemainingNotif = TextComponent.of( + //TODO - to be moved into captions/translatablecomponents + "You have " + (Settings.IMP.EXPERIMENTAL.PER_PLAYER_FILE_NUM_LIMIT - numFiles) + + " schematic file slots left.", + TextColor.GRAY + ); actor.print(slotsRemainingNotif); } LOGGER.info(actor.getName() + " saved " + file.getCanonicalPath()); @@ -878,9 +939,11 @@ public class SchematicCommands { //FAWE end return null; } + } private static class SchematicListTask implements Callable { + private final String prefix; private final int sortType; private final int page; @@ -889,8 +952,10 @@ public class SchematicCommands { private final String filter; private final String formatName; - SchematicListTask(String prefix, int sortType, int page, String pageCommand, - String filter, String formatName) { + SchematicListTask( + String prefix, int sortType, int page, String pageCommand, + String filter, String formatName + ) { this.prefix = prefix; this.sortType = sortType; this.page = page; @@ -936,9 +1001,11 @@ public class SchematicCommands { PaginationBox paginationBox = new SchematicPaginationBox(prefix, files, pageCommand); return paginationBox.create(page); } + } private static class SchematicPaginationBox extends PaginationBox { + //FAWE start - Expand to per player schematics private final String prefix; private final File[] files; @@ -957,21 +1024,24 @@ public class SchematicCommands { File file = files[number]; Multimap exts = ClipboardFormats.getFileExtensionMap(); String format = exts.get(com.google.common.io.Files.getFileExtension(file.getName())) - .stream().findFirst().map(ClipboardFormat::getName).orElse("Unknown"); + .stream().findFirst().map(ClipboardFormat::getName).orElse("Unknown"); boolean inRoot = file.getParentFile().getName().equals(prefix); String path = inRoot ? file.getName() : file.getPath().split(Pattern.quote(prefix + File.separator))[1]; return TextComponent.builder() - .content("") - .append(TranslatableComponent.of("worldedit.schematic.load.symbol") - .clickEvent(ClickEvent - .of(ClickEvent.Action.RUN_COMMAND, "/schem load \"" + path + "\"")) - .hoverEvent(HoverEvent.of(HoverEvent.Action.SHOW_TEXT, TranslatableComponent.of("worldedit.schematic.click-to-load")))) - .append(TextComponent.space()) - .append(TextComponent.of(path) - .hoverEvent(HoverEvent.of(HoverEvent.Action.SHOW_TEXT, TextComponent.of(format)))) - .build(); + .content("") + .append(TranslatableComponent.of("worldedit.schematic.load.symbol") + .clickEvent(ClickEvent + .of(ClickEvent.Action.RUN_COMMAND, "/schem load \"" + path + "\"")) + .hoverEvent(HoverEvent.of( + HoverEvent.Action.SHOW_TEXT, + TranslatableComponent.of("worldedit.schematic.click-to-load") + ))) + .append(TextComponent.space()) + .append(TextComponent.of(path) + .hoverEvent(HoverEvent.of(HoverEvent.Action.SHOW_TEXT, TextComponent.of(format)))) + .build(); //FAWE end } @@ -979,6 +1049,7 @@ public class SchematicCommands { public int getComponentsSize() { return files.length; } + } } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/ScriptingCommands.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/ScriptingCommands.java index 8e34fe547..f4f2cafdf 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/ScriptingCommands.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/ScriptingCommands.java @@ -58,17 +58,19 @@ public class ScriptingCommands { } @Command( - name = "cs", - aliases = { "/cs" }, - desc = "Execute a CraftScript" + name = "cs", + aliases = {"/cs"}, + desc = "Execute a CraftScript" ) @CommandPermissions("worldedit.scripting.execute") @Logging(ALL) - public void execute(Player player, LocalSession session, - @Arg(desc = "Filename of the CraftScript to load") - String filename, - @Arg(desc = "Arguments to the CraftScript", def = "", variable = true) - List args) throws WorldEditException { + public void execute( + Player player, LocalSession session, + @Arg(desc = "Filename of the CraftScript to load") + String filename, + @Arg(desc = "Arguments to the CraftScript", def = "", variable = true) + List args + ) throws WorldEditException { if (!player.hasPermission("worldedit.scripting.execute." + filename)) { player.print(Caption.of("worldedit.execute.script-permissions")); return; @@ -80,19 +82,21 @@ public class ScriptingCommands { File f = worldEdit.getSafeOpenFile(player, dir, filename, "js", "js"); worldEdit.runScript(player, f, Stream.concat(Stream.of(filename), args.stream()) - .toArray(String[]::new)); + .toArray(String[]::new)); } @Command( - name = ".s", - aliases = { "/.s" }, - desc = "Execute last CraftScript" + name = ".s", + aliases = {"/.s"}, + desc = "Execute last CraftScript" ) @CommandPermissions("worldedit.scripting.execute") @Logging(ALL) - public void executeLast(Player player, LocalSession session, - @Arg(desc = "Arguments to the CraftScript", def = "", variable = true) - List args) throws WorldEditException { + public void executeLast( + Player player, LocalSession session, + @Arg(desc = "Arguments to the CraftScript", def = "", variable = true) + List args + ) throws WorldEditException { String lastScript = session.getLastScript(); @@ -110,6 +114,7 @@ public class ScriptingCommands { File f = worldEdit.getSafeOpenFile(player, dir, lastScript, "js", "js"); worldEdit.runScript(player, f, Stream.concat(Stream.of(lastScript), args.stream()) - .toArray(String[]::new)); + .toArray(String[]::new)); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/SelectionCommands.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/SelectionCommands.java index 3151f9cbf..d1cd86615 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/SelectionCommands.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/SelectionCommands.java @@ -110,15 +110,17 @@ public class SelectionCommands { } @Command( - name = "/pos1", - aliases = "/1", - desc = "Set position 1" + name = "/pos1", + aliases = "/1", + desc = "Set position 1" ) @Logging(POSITION) @CommandPermissions("worldedit.selection.pos") - public void pos1(Actor actor, World world, LocalSession session, - @Arg(desc = "Coordinates to set position 1 to", def = "") - BlockVector3 coordinates) throws WorldEditException { + public void pos1( + Actor actor, World world, LocalSession session, + @Arg(desc = "Coordinates to set position 1 to", def = "") + BlockVector3 coordinates + ) throws WorldEditException { Location pos; //FAWE start - clamp if (coordinates != null) { @@ -141,15 +143,17 @@ public class SelectionCommands { } @Command( - name = "/pos2", + name = "/pos2", aliases = "/2", - desc = "Set position 2" + desc = "Set position 2" ) @Logging(POSITION) @CommandPermissions("worldedit.selection.pos") - public void pos2(Actor actor, World world, LocalSession session, - @Arg(desc = "Coordinates to set position 2 to", def = "") - BlockVector3 coordinates) throws WorldEditException { + public void pos2( + Actor actor, World world, LocalSession session, + @Arg(desc = "Coordinates to set position 2 to", def = "") + BlockVector3 coordinates + ) throws WorldEditException { Location pos; if (coordinates != null) { //FAWE start - clamp @@ -162,7 +166,10 @@ public class SelectionCommands { return; } - if (!session.getRegionSelector(world).selectSecondary(pos.toVector().toBlockPoint(), ActorSelectorLimits.forActor(actor))) { + if (!session.getRegionSelector(world).selectSecondary( + pos.toVector().toBlockPoint(), + ActorSelectorLimits.forActor(actor) + )) { actor.print(Caption.of("worldedit.pos.already-set")); return; } @@ -172,8 +179,8 @@ public class SelectionCommands { } @Command( - name = "/hpos1", - desc = "Set position 1 to targeted block" + name = "/hpos1", + desc = "Set position 1 to targeted block" ) @CommandPermissions("worldedit.selection.hpos") public void hpos1(Player player, LocalSession session) throws WorldEditException { @@ -181,7 +188,10 @@ public class SelectionCommands { Location pos = player.getBlockTrace(300); if (pos != null) { - if (!session.getRegionSelector(player.getWorld()).selectPrimary(pos.toVector().toBlockPoint(), ActorSelectorLimits.forActor(player))) { + if (!session.getRegionSelector(player.getWorld()).selectPrimary( + pos.toVector().toBlockPoint(), + ActorSelectorLimits.forActor(player) + )) { player.print(Caption.of("worldedit.hpos.already-set")); return; } @@ -194,8 +204,8 @@ public class SelectionCommands { } @Command( - name = "/hpos2", - desc = "Set position 2 to targeted block" + name = "/hpos2", + desc = "Set position 2 to targeted block" ) @CommandPermissions("worldedit.selection.hpos") public void hpos2(Player player, LocalSession session) throws WorldEditException { @@ -203,7 +213,10 @@ public class SelectionCommands { Location pos = player.getBlockTrace(300); if (pos != null) { - if (!session.getRegionSelector(player.getWorld()).selectSecondary(pos.toVector().toBlockPoint(), ActorSelectorLimits.forActor(player))) { + if (!session.getRegionSelector(player.getWorld()).selectSecondary( + pos.toVector().toBlockPoint(), + ActorSelectorLimits.forActor(player) + )) { player.print(Caption.of("worldedit.hpos.already-set")); return; } @@ -216,19 +229,21 @@ public class SelectionCommands { } @Command( - name = "/chunk", - desc = "Set the selection to your current chunk.", - descFooter = "This command selects 256-block-tall areas,\nwhich can be specified by the y-coordinate.\nE.g. -c x,1,z will select from y=256 to y=511." + name = "/chunk", + desc = "Set the selection to your current chunk.", + descFooter = "This command selects 256-block-tall areas,\nwhich can be specified by the y-coordinate.\nE.g. -c x,1,z will select from y=256 to y=511." ) @Logging(POSITION) @CommandPermissions("worldedit.selection.chunk") - public void chunk(Actor actor, World world, LocalSession session, - @Arg(desc = "The chunk to select", def = "") - BlockVector3 coordinates, - @Switch(name = 's', desc = "Expand your selection to encompass all chunks that are part of it") - boolean expandSelection, - @Switch(name = 'c', desc = "Use chunk coordinates instead of block coordinates") - boolean useChunkCoordinates) throws WorldEditException { + public void chunk( + Actor actor, World world, LocalSession session, + @Arg(desc = "The chunk to select", def = "") + BlockVector3 coordinates, + @Switch(name = 's', desc = "Expand your selection to encompass all chunks that are part of it") + boolean expandSelection, + @Switch(name = 'c', desc = "Use chunk coordinates instead of block coordinates") + boolean useChunkCoordinates + ) throws WorldEditException { final BlockVector3 min; final BlockVector3 max; if (expandSelection) { @@ -259,8 +274,8 @@ public class SelectionCommands { if (coordinates != null) { // coords specified minChunk = useChunkCoordinates - ? coordinates - : ChunkStore.toChunk3d(coordinates); + ? coordinates + : ChunkStore.toChunk3d(coordinates); } else { // use player loc if (actor instanceof Locatable) { @@ -273,10 +288,12 @@ public class SelectionCommands { min = minChunk.shl(CHUNK_SHIFTS, CHUNK_SHIFTS_Y, CHUNK_SHIFTS); max = min.add(15, world.getMaxY(), 15); - actor.print(Caption.of("worldedit.chunk.selected", + actor.print(Caption.of( + "worldedit.chunk.selected", TextComponent.of(minChunk.getBlockX()), TextComponent.of(minChunk.getBlockY()), - TextComponent.of(minChunk.getBlockZ()))); + TextComponent.of(minChunk.getBlockZ()) + )); } final CuboidRegionSelector selector; @@ -294,12 +311,14 @@ public class SelectionCommands { } @Command( - name = "/wand", - desc = "Get the wand object" + name = "/wand", + desc = "Get the wand object" ) @CommandPermissions("worldedit.wand") - public void wand(Player player, LocalSession session, - @Switch(name = 'n', desc = "Get a navigation wand") boolean navWand) throws WorldEditException { + public void wand( + Player player, LocalSession session, + @Switch(name = 'n', desc = "Get a navigation wand") boolean navWand + ) throws WorldEditException { //FAWE start session.loadDefaults(player, true); //FAWE end @@ -325,9 +344,9 @@ public class SelectionCommands { } @Command( - name = "toggleeditwand", - aliases = { "/toggleeditwand" }, - desc = "Remind the user that the wand is now a tool and can be unbound with /tool none." + name = "toggleeditwand", + aliases = {"/toggleeditwand"}, + desc = "Remind the user that the wand is now a tool and can be unbound with /tool none." ) @CommandPermissions("worldedit.wand.toggle") public void toggleWand(Player player) { @@ -345,19 +364,21 @@ public class SelectionCommands { } @Command( - name = "/contract", - desc = "Contract the selection area" + name = "/contract", + desc = "Contract the selection area" ) @Logging(REGION) @CommandPermissions("worldedit.selection.contract") - public void contract(Actor actor, World world, LocalSession session, - @Arg(desc = "Amount to contract the selection by") - int amount, - @Arg(desc = "Amount to contract the selection by in the other direction", def = "0") - int reverseAmount, - @Arg(desc = "Direction to contract", def = Direction.AIM) - @MultiDirection - List direction) throws WorldEditException { + public void contract( + Actor actor, World world, LocalSession session, + @Arg(desc = "Amount to contract the selection by") + int amount, + @Arg(desc = "Amount to contract the selection by in the other direction", def = "0") + int reverseAmount, + @Arg(desc = "Direction to contract", def = Direction.AIM) + @MultiDirection + List direction + ) throws WorldEditException { try { Region region = session.getSelection(world); long oldSize = region.getVolume(); @@ -382,17 +403,19 @@ public class SelectionCommands { } @Command( - name = "/shift", - desc = "Shift the selection area" + name = "/shift", + desc = "Shift the selection area" ) @Logging(REGION) @CommandPermissions("worldedit.selection.shift") - public void shift(Actor actor, World world, LocalSession session, - @Arg(desc = "Amount to shift the selection by") - int amount, - @Arg(desc = "Direction to contract", def = Direction.AIM) - @MultiDirection - List direction) throws WorldEditException { + public void shift( + Actor actor, World world, LocalSession session, + @Arg(desc = "Amount to shift the selection by") + int amount, + @Arg(desc = "Direction to contract", def = Direction.AIM) + @MultiDirection + List direction + ) throws WorldEditException { try { Region region = session.getSelection(world); @@ -411,18 +434,20 @@ public class SelectionCommands { } @Command( - name = "/outset", - desc = "Outset the selection area" + name = "/outset", + desc = "Outset the selection area" ) @Logging(REGION) @CommandPermissions("worldedit.selection.outset") - public void outset(Actor actor, World world, LocalSession session, - @Arg(desc = "Amount to expand the selection by in all directions") - int amount, - @Switch(name = 'h', desc = "Only expand horizontally") - boolean onlyHorizontal, - @Switch(name = 'v', desc = "Only expand vertically") - boolean onlyVertical) throws WorldEditException { + public void outset( + Actor actor, World world, LocalSession session, + @Arg(desc = "Amount to expand the selection by in all directions") + int amount, + @Switch(name = 'h', desc = "Only expand horizontally") + boolean onlyHorizontal, + @Switch(name = 'v', desc = "Only expand vertically") + boolean onlyVertical + ) throws WorldEditException { Region region = session.getSelection(world); region.expand(getChangesForEachDir(amount, onlyHorizontal, onlyVertical)); session.getRegionSelector(world).learnChanges(); @@ -431,18 +456,20 @@ public class SelectionCommands { } @Command( - name = "/inset", - desc = "Inset the selection area" + name = "/inset", + desc = "Inset the selection area" ) @Logging(REGION) @CommandPermissions("worldedit.selection.inset") - public void inset(Actor actor, World world, LocalSession session, - @Arg(desc = "Amount to contract the selection by in all directions") - int amount, - @Switch(name = 'h', desc = "Only contract horizontally") - boolean onlyHorizontal, - @Switch(name = 'v', desc = "Only contract vertically") - boolean onlyVertical) throws WorldEditException { + public void inset( + Actor actor, World world, LocalSession session, + @Arg(desc = "Amount to contract the selection by in all directions") + int amount, + @Switch(name = 'h', desc = "Only contract horizontally") + boolean onlyHorizontal, + @Switch(name = 'v', desc = "Only contract vertically") + boolean onlyVertical + ) throws WorldEditException { Region region = session.getSelection(world); region.contract(getChangesForEachDir(amount, onlyHorizontal, onlyVertical)); session.getRegionSelector(world).learnChanges(); @@ -469,13 +496,15 @@ public class SelectionCommands { } @Command( - name = "/size", - desc = "Get information about the selection" + name = "/size", + desc = "Get information about the selection" ) @CommandPermissions("worldedit.selection.size") - public void size(Actor actor, World world, LocalSession session, - @Switch(name = 'c', desc = "Get clipboard info instead") - boolean clipboardInfo) throws WorldEditException { + public void size( + Actor actor, World world, LocalSession session, + @Switch(name = 'c', desc = "Get clipboard info instead") + boolean clipboardInfo + ) throws WorldEditException { Region region; if (clipboardInfo) { //FAWE start - Modify for cross server clipboards @@ -504,7 +533,13 @@ public class SelectionCommands { String originStr = origin.getBlockX() + "," + origin.getBlockY() + "," + origin.getBlockZ(); long numBlocks = ((long) size.getBlockX() * size.getBlockY() * size.getBlockZ()); - actor.print(Caption.of("worldedit.size.offset", TextComponent.of(name), TextComponent.of(sizeStr), TextComponent.of(originStr), TextComponent.of(numBlocks))); + actor.print(Caption.of( + "worldedit.size.offset", + TextComponent.of(name), + TextComponent.of(sizeStr), + TextComponent.of(originStr), + TextComponent.of(numBlocks) + )); index++; } return; @@ -523,18 +558,23 @@ public class SelectionCommands { .add(1, 1, 1); actor.print(Caption.of("worldedit.size.size", TextComponent.of(size.toString()))); - actor.print(Caption.of("worldedit.size.distance", TextComponent.of(region.getMaximumPoint().distance(region.getMinimumPoint())))); + actor.print(Caption.of( + "worldedit.size.distance", + TextComponent.of(region.getMaximumPoint().distance(region.getMinimumPoint())) + )); actor.print(Caption.of("worldedit.size.blocks", TextComponent.of(region.getVolume()))); } @Command( - name = "/count", - desc = "Counts the number of blocks matching a mask" + name = "/count", + desc = "Counts the number of blocks matching a mask" ) @CommandPermissions("worldedit.analysis.count") - public int count(Actor actor, World world, LocalSession session, EditSession editSession, - @Arg(desc = "The mask of blocks to match") - Mask mask) throws WorldEditException { + public int count( + Actor actor, World world, LocalSession session, EditSession editSession, + @Arg(desc = "The mask of blocks to match") + Mask mask + ) throws WorldEditException { //FAWE start > the mask will have been initialised with a WorldWrapper extent (very bad/slow) if (mask instanceof AbstractExtentMask) { ((AbstractExtentMask) mask).setExtent(editSession); @@ -546,20 +586,22 @@ public class SelectionCommands { } @Command( - name = "/distr", - desc = "Get the distribution of blocks in the selection" + name = "/distr", + desc = "Get the distribution of blocks in the selection" ) @CommandPermissions("worldedit.analysis.distr") - public void distr(Actor actor, World world, LocalSession session, - //FAWE start > add extent to RegionVisitor to allow chunk preloading - EditSession editSession, - //FAWE end - @Switch(name = 'c', desc = "Get the distribution of the clipboard instead") - boolean clipboardDistr, - @Switch(name = 'd', desc = "Separate blocks by state") - boolean separateStates, - @ArgFlag(name = 'p', desc = "Gets page from a previous distribution.") - Integer page) throws WorldEditException { + public void distr( + Actor actor, World world, LocalSession session, + //FAWE start > add extent to RegionVisitor to allow chunk preloading + EditSession editSession, + //FAWE end + @Switch(name = 'c', desc = "Get the distribution of the clipboard instead") + boolean clipboardDistr, + @Switch(name = 'd', desc = "Separate blocks by state") + boolean separateStates, + @ArgFlag(name = 'p', desc = "Gets page from a previous distribution.") + Integer page + ) throws WorldEditException { List> distribution; if (page == null) { @@ -572,7 +614,7 @@ public class SelectionCommands { Operations.completeBlindly(visitor); distribution = count.getDistribution(); } else { - distribution = editSession.getBlockDistribution(session.getSelection(world), separateStates); + distribution = editSession.getBlockDistribution(session.getSelection(world), separateStates); } session.setLastDistribution(distribution); page = 1; @@ -597,18 +639,20 @@ public class SelectionCommands { } @Command( - name = "/sel", - aliases = { ";", "/desel", "/deselect" }, - desc = "Choose a region selector" + name = "/sel", + aliases = {";", "/desel", "/deselect"}, + desc = "Choose a region selector" ) //FAWE start @CommandPermissions("worldedit.analysis.sel") //FAWE end - public void select(Actor actor, World world, LocalSession session, - @Arg(desc = "Selector to switch to", def = "") - SelectorChoice selector, - @Switch(name = 'd', desc = "Set default selector") - boolean setDefaultSelector) throws WorldEditException { + public void select( + Actor actor, World world, LocalSession session, + @Arg(desc = "Selector to switch to", def = "") + SelectorChoice selector, + @Switch(name = 'd', desc = "Set default selector") + boolean setDefaultSelector + ) throws WorldEditException { if (selector == null) { session.getRegionSelector(world).clear(); session.dispatchCUISelection(actor); @@ -632,7 +676,10 @@ public class SelectionCommands { newSelector = new Polygonal2DRegionSelector(oldSelector); actor.print(Caption.of("worldedit.select.poly.message")); Optional limit = ActorSelectorLimits.forActor(actor).getPolygonVertexLimit(); - limit.ifPresent(integer -> actor.print(Caption.of("worldedit.select.poly.limit-message", TextComponent.of(integer)))); + limit.ifPresent(integer -> actor.print(Caption.of( + "worldedit.select.poly.limit-message", + TextComponent.of(integer) + ))); break; } case ELLIPSOID: @@ -653,7 +700,10 @@ public class SelectionCommands { newSelector = new ConvexPolyhedralRegionSelector(oldSelector); actor.print(Caption.of("worldedit.select.convex.message")); Optional limit = ActorSelectorLimits.forActor(actor).getPolyhedronVertexLimit(); - limit.ifPresent(integer -> actor.print(Caption.of("worldedit.select.convex.limit-message", TextComponent.of(integer)))); + limit.ifPresent(integer -> actor.print(Caption.of( + "worldedit.select.convex.limit-message", + TextComponent.of(integer) + ))); break; } //FAWE start @@ -776,5 +826,7 @@ public class SelectionCommands { .append(TextComponent.newline()); return super.create(page); } + } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/SnapshotCommands.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/SnapshotCommands.java index 049544a9d..916ceb7b0 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/SnapshotCommands.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/SnapshotCommands.java @@ -75,7 +75,7 @@ public class SnapshotCommands { static void checkSnapshotsConfigured(LocalConfiguration localConfiguration) { if (!localConfiguration.snapshotsConfigured) { throw new StopExecutionException(Caption.of( - "worldedit.restore.not-configured" + "worldedit.restore.not-configured" )); } } @@ -95,13 +95,15 @@ public class SnapshotCommands { @Command( - name = "list", - desc = "List snapshots" + name = "list", + desc = "List snapshots" ) @CommandPermissions("worldedit.snapshots.list") - void list(Actor actor, World world, - @ArgFlag(name = 'p', desc = "Page of results to return", def = "1") - int page) throws WorldEditException, IOException { + void list( + Actor actor, World world, + @ArgFlag(name = 'p', desc = "Page of results to return", def = "1") + int page + ) throws WorldEditException, IOException { LocalConfiguration config = we.getConfiguration(); checkSnapshotsConfigured(config); @@ -112,17 +114,17 @@ public class SnapshotCommands { List snapshots; try (Stream snapshotStream = - config.snapshotDatabase.getSnapshotsNewestFirst(world.getName())) { + config.snapshotDatabase.getSnapshotsNewestFirst(world.getName())) { snapshots = snapshotStream - .collect(toList()); + .collect(toList()); } if (!snapshots.isEmpty()) { actor.print(new SnapshotListBox(world.getName(), snapshots).create(page)); } else { actor.print(Caption.of( - "worldedit.restore.none-for-specific-world", - TextComponent.of(world.getName()) + "worldedit.restore.none-for-specific-world", + TextComponent.of(world.getName()) )); if (config.snapshotDatabase instanceof FileSystemSnapshotDatabase) { @@ -130,23 +132,25 @@ public class SnapshotCommands { Path root = db.getRoot(); if (Files.isDirectory(root)) { WorldEdit.logger.info("No snapshots were found for world '" - + world.getName() + "'; looked in " + root.toRealPath()); + + world.getName() + "'; looked in " + root.toRealPath()); } else { WorldEdit.logger.info("No snapshots were found for world '" - + world.getName() + "'; " + root.toRealPath() + " is not a directory"); + + world.getName() + "'; " + root.toRealPath() + " is not a directory"); } } } } @Command( - name = "use", - desc = "Choose a snapshot to use" + name = "use", + desc = "Choose a snapshot to use" ) @CommandPermissions("worldedit.snapshots.restore") - void use(Actor actor, World world, LocalSession session, - @Arg(desc = "Snapshot to use") - String name) throws IOException { + void use( + Actor actor, World world, LocalSession session, + @Arg(desc = "Snapshot to use") + String name + ) throws IOException { LocalConfiguration config = we.getConfiguration(); checkSnapshotsConfigured(config); @@ -159,9 +163,9 @@ public class SnapshotCommands { if (name.equalsIgnoreCase("latest")) { Snapshot snapshot; try (Stream snapshotStream = - config.snapshotDatabase.getSnapshotsNewestFirst(world.getName())) { + config.snapshotDatabase.getSnapshotsNewestFirst(world.getName())) { snapshot = snapshotStream - .findFirst().orElse(null); + .findFirst().orElse(null); } if (snapshot != null) { @@ -182,7 +186,7 @@ public class SnapshotCommands { } session.setSnapshotExperimental(snapshot.get()); actor.print(Caption.of( - "worldedit.snapshot.use", TextComponent.of(name) + "worldedit.snapshot.use", TextComponent.of(name) )); } else { actor.print(Caption.of("worldedit.restore.not-available")); @@ -191,13 +195,15 @@ public class SnapshotCommands { } @Command( - name = "sel", - desc = "Choose the snapshot based on the list id" + name = "sel", + desc = "Choose the snapshot based on the list id" ) @CommandPermissions("worldedit.snapshots.restore") - void sel(Actor actor, World world, LocalSession session, - @Arg(desc = "The list ID to select") - int index) throws IOException { + void sel( + Actor actor, World world, LocalSession session, + @Arg(desc = "The list ID to select") + int index + ) throws IOException { LocalConfiguration config = we.getConfiguration(); checkSnapshotsConfigured(config); @@ -213,14 +219,14 @@ public class SnapshotCommands { List snapshots; try (Stream snapshotStream = - config.snapshotDatabase.getSnapshotsNewestFirst(world.getName())) { + config.snapshotDatabase.getSnapshotsNewestFirst(world.getName())) { snapshots = snapshotStream - .collect(toList()); + .collect(toList()); } if (snapshots.size() < index) { actor.print(Caption.of( - "worldedit.snapshot.index-oob", - TextComponent.of(snapshots.size()) + "worldedit.snapshot.index-oob", + TextComponent.of(snapshots.size()) )); return; } @@ -234,19 +240,21 @@ public class SnapshotCommands { } session.setSnapshotExperimental(snapshot); actor.print(Caption.of( - "worldedit.snapshot.use", - TextComponent.of(snapshot.getInfo().getDisplayName()) + "worldedit.snapshot.use", + TextComponent.of(snapshot.getInfo().getDisplayName()) )); } @Command( - name = "before", - desc = "Choose the nearest snapshot before a date" + name = "before", + desc = "Choose the nearest snapshot before a date" ) @CommandPermissions("worldedit.snapshots.restore") - void before(Actor actor, World world, LocalSession session, - @Arg(desc = "The soonest date that may be used") - ZonedDateTime date) throws IOException { + void before( + Actor actor, World world, LocalSession session, + @Arg(desc = "The soonest date that may be used") + ZonedDateTime date + ) throws IOException { LocalConfiguration config = we.getConfiguration(); checkSnapshotsConfigured(config); @@ -257,15 +265,16 @@ public class SnapshotCommands { Snapshot snapshot; try (Stream snapshotStream = - config.snapshotDatabase.getSnapshotsNewestFirst(world.getName())) { + config.snapshotDatabase.getSnapshotsNewestFirst(world.getName())) { snapshot = snapshotStream - .findFirst().orElse(null); + .findFirst().orElse(null); } if (snapshot == null) { actor.print(Caption.of( - "worldedit.snapshot.none-before", - TextComponent.of(dateFormat.withZone(session.getTimeZone()).format(date))) + "worldedit.snapshot.none-before", + TextComponent.of(dateFormat.withZone(session.getTimeZone()).format(date)) + ) ); } else { if (session.getSnapshotExperimental() != null) { @@ -273,20 +282,22 @@ public class SnapshotCommands { } session.setSnapshotExperimental(snapshot); actor.print(Caption.of( - "worldedit.snapshot.use", - TextComponent.of(snapshot.getInfo().getDisplayName()) + "worldedit.snapshot.use", + TextComponent.of(snapshot.getInfo().getDisplayName()) )); } } @Command( - name = "after", - desc = "Choose the nearest snapshot after a date" + name = "after", + desc = "Choose the nearest snapshot after a date" ) @CommandPermissions("worldedit.snapshots.restore") - void after(Actor actor, World world, LocalSession session, - @Arg(desc = "The soonest date that may be used") - ZonedDateTime date) throws IOException { + void after( + Actor actor, World world, LocalSession session, + @Arg(desc = "The soonest date that may be used") + ZonedDateTime date + ) throws IOException { LocalConfiguration config = we.getConfiguration(); checkSnapshotsConfigured(config); @@ -297,14 +308,15 @@ public class SnapshotCommands { Snapshot snapshot; try (Stream snapshotStream = - config.snapshotDatabase.getSnapshotsNewestFirst(world.getName())) { + config.snapshotDatabase.getSnapshotsNewestFirst(world.getName())) { snapshot = snapshotStream - .findFirst().orElse(null); + .findFirst().orElse(null); } if (snapshot == null) { actor.print(Caption.of( - "worldedit.snapshot.none-after", - TextComponent.of(dateFormat.withZone(session.getTimeZone()).format(date))) + "worldedit.snapshot.none-after", + TextComponent.of(dateFormat.withZone(session.getTimeZone()).format(date)) + ) ); } else { if (session.getSnapshotExperimental() != null) { @@ -312,13 +324,14 @@ public class SnapshotCommands { } session.setSnapshotExperimental(snapshot); actor.print(Caption.of( - "worldedit.snapshot.use", - TextComponent.of(snapshot.getInfo().getDisplayName()) + "worldedit.snapshot.use", + TextComponent.of(snapshot.getInfo().getDisplayName()) )); } } private static class SnapshotListBox extends PaginationBox { + private final List snapshots; SnapshotListBox(String world, List snapshots) { @@ -331,14 +344,16 @@ public class SnapshotCommands { final Snapshot snapshot = snapshots.get(number); String displayName = snapshot.getInfo().getDisplayName(); return TextComponent.of(number + 1 + ". ", TextColor.GOLD) - .append(TextComponent.builder(displayName, TextColor.LIGHT_PURPLE) - .hoverEvent(HoverEvent.showText(TextComponent.of("Click to use"))) - .clickEvent(ClickEvent.runCommand("/snap use " + displayName))); + .append(TextComponent.builder(displayName, TextColor.LIGHT_PURPLE) + .hoverEvent(HoverEvent.showText(TextComponent.of("Click to use"))) + .clickEvent(ClickEvent.runCommand("/snap use " + displayName))); } @Override public int getComponentsSize() { return snapshots.size(); } + } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/SnapshotUtilCommands.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/SnapshotUtilCommands.java index 64801d94a..c63358670 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/SnapshotUtilCommands.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/SnapshotUtilCommands.java @@ -59,15 +59,17 @@ public class SnapshotUtilCommands { } @Command( - name = "restore", - aliases = { "/restore" }, - desc = "Restore the selection from a snapshot" + name = "restore", + aliases = {"/restore"}, + desc = "Restore the selection from a snapshot" ) @Logging(REGION) @CommandPermissions("worldedit.snapshots.restore") - public void restore(Actor actor, World world, LocalSession session, EditSession editSession, - @Arg(name = "snapshot", desc = "The snapshot to restore", def = "") - String snapshotName) throws WorldEditException, IOException { + public void restore( + Actor actor, World world, LocalSession session, EditSession editSession, + @Arg(name = "snapshot", desc = "The snapshot to restore", def = "") + String snapshotName + ) throws WorldEditException, IOException { LocalConfiguration config = we.getConfiguration(); checkSnapshotsConfigured(config); @@ -94,22 +96,22 @@ public class SnapshotUtilCommands { // No snapshot set? if (snapshot == null) { try (Stream snapshotStream = - config.snapshotDatabase.getSnapshotsNewestFirst(world.getName())) { + config.snapshotDatabase.getSnapshotsNewestFirst(world.getName())) { snapshot = snapshotStream - .findFirst().orElse(null); + .findFirst().orElse(null); } if (snapshot == null) { actor.print(Caption.of( - "worldedit.restore.none-for-specific-world", - TextComponent.of(world.getName()) + "worldedit.restore.none-for-specific-world", + TextComponent.of(world.getName()) )); return; } } actor.print(Caption.of( - "worldedit.restore.loaded", - TextComponent.of(snapshot.getInfo().getDisplayName()) + "worldedit.restore.loaded", + TextComponent.of(snapshot.getInfo().getDisplayName()) )); try { @@ -130,9 +132,11 @@ public class SnapshotUtilCommands { actor.print(Caption.of("worldedit.restore.chunk-load-failed")); } } else { - actor.print(Caption.of("worldedit.restore.restored", - TextComponent.of(restore.getMissingChunks().size()), - TextComponent.of(restore.getErrorChunks().size()))); + actor.print(Caption.of( + "worldedit.restore.restored", + TextComponent.of(restore.getMissingChunks().size()), + TextComponent.of(restore.getErrorChunks().size()) + )); } } finally { try { @@ -141,4 +145,5 @@ public class SnapshotUtilCommands { } } } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/SuperPickaxeCommands.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/SuperPickaxeCommands.java index b28fecde0..cb24daec5 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/SuperPickaxeCommands.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/SuperPickaxeCommands.java @@ -37,6 +37,7 @@ import org.enginehub.piston.annotation.param.Arg; @CommandContainer(superTypes = CommandPermissionsConditionGenerator.Registration.class) public class SuperPickaxeCommands { + private final WorldEdit we; public SuperPickaxeCommands(WorldEdit we) { @@ -44,8 +45,8 @@ public class SuperPickaxeCommands { } @Command( - name = "single", - desc = "Enable the single block super pickaxe mode" + name = "single", + desc = "Enable the single block super pickaxe mode" ) @CommandPermissions("worldedit.superpickaxe") public void single(Player player, LocalSession session) throws WorldEditException { @@ -55,13 +56,15 @@ public class SuperPickaxeCommands { } @Command( - name = "area", - desc = "Enable the area super pickaxe pickaxe mode" + name = "area", + desc = "Enable the area super pickaxe pickaxe mode" ) @CommandPermissions("worldedit.superpickaxe.area") - public void area(Player player, LocalSession session, - @Arg(desc = "The range of the area pickaxe") - int range) throws WorldEditException { + public void area( + Player player, LocalSession session, + @Arg(desc = "The range of the area pickaxe") + int range + ) throws WorldEditException { LocalConfiguration config = we.getConfiguration(); @@ -75,14 +78,16 @@ public class SuperPickaxeCommands { } @Command( - name = "recursive", - aliases = { "recur" }, - desc = "Enable the recursive super pickaxe pickaxe mode" + name = "recursive", + aliases = {"recur"}, + desc = "Enable the recursive super pickaxe pickaxe mode" ) @CommandPermissions("worldedit.superpickaxe.recursive") - public void recursive(Player player, LocalSession session, - @Arg(desc = "The range of the recursive pickaxe") - double range) throws WorldEditException { + public void recursive( + Player player, LocalSession session, + @Arg(desc = "The range of the recursive pickaxe") + double range + ) throws WorldEditException { LocalConfiguration config = we.getConfiguration(); @@ -95,4 +100,5 @@ public class SuperPickaxeCommands { session.enableSuperPickAxe(); player.print(Caption.of("worldedit.tool.superpickaxe.mode.recursive")); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/ToolCommands.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/ToolCommands.java index fa14f4372..416e1a00a 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/ToolCommands.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/ToolCommands.java @@ -19,8 +19,8 @@ package com.sk89q.worldedit.command; -import com.fastasyncworldedit.core.configuration.Caption; import com.fastasyncworldedit.core.command.tool.brush.InspectBrush; +import com.fastasyncworldedit.core.configuration.Caption; import com.google.common.collect.Collections2; import com.sk89q.worldedit.LocalConfiguration; import com.sk89q.worldedit.LocalSession; @@ -76,27 +76,29 @@ public class ToolCommands { .clickEvent(ClickEvent.suggestCommand("/tool unbind")) .build(); - public static void register(CommandRegistrationHandler registration, - CommandManager commandManager, - CommandManagerService commandManagerService, - WorldEdit worldEdit) { + public static void register( + CommandRegistrationHandler registration, + CommandManager commandManager, + CommandManagerService commandManagerService, + WorldEdit worldEdit + ) { // Collect the tool commands CommandManager collect = commandManagerService.newCommandManager(); registration.register( - collect, - ToolCommandsRegistration.builder(), - new ToolCommands(worldEdit) + collect, + ToolCommandsRegistration.builder(), + new ToolCommands(worldEdit) ); // Register deprecated global commands Set commands = collect.getAllCommands() - .collect(Collectors.toSet()); + .collect(Collectors.toSet()); for (org.enginehub.piston.Command command : commands) { if (command.getAliases().contains("unbind")) { // Don't register new /tool alias command = command.toBuilder().aliases( - Collections2.filter(command.getAliases(), alias -> !"unbind".equals(alias)) + Collections2.filter(command.getAliases(), alias -> !"unbind".equals(alias)) ).build(); } if (command.getName().equals("stacker")) { @@ -104,45 +106,47 @@ public class ToolCommands { continue; } commandManager.register(CommandUtil.deprecate( - command, "Global tool names cause conflicts " - + "and will be removed in WorldEdit 8", - CommandUtil.ReplacementMessageGenerator.forNewCommand(ToolCommands::asNonGlobal) + command, "Global tool names cause conflicts " + + "and will be removed in WorldEdit 8", + CommandUtil.ReplacementMessageGenerator.forNewCommand(ToolCommands::asNonGlobal) )); } // Remove aliases with / in them, since it doesn't make sense for sub-commands. Set nonGlobalCommands = commands.stream() - .map(command -> - command.toBuilder().aliases( - Collections2.filter(command.getAliases(), alias -> !alias.startsWith("/")) - ).build() - ) - .collect(Collectors.toSet()); + .map(command -> + command.toBuilder().aliases( + Collections2.filter(command.getAliases(), alias -> !alias.startsWith("/")) + ).build() + ) + .collect(Collectors.toSet()); commandManager.register("tool", command -> { command.addPart(SubCommandPart.builder( Caption.of("tool"), - TextComponent.of("The tool to bind") + TextComponent.of("The tool to bind") ) - .withCommands(nonGlobalCommands) - .required() - .build()); + .withCommands(nonGlobalCommands) + .required() + .build()); command.description(TextComponent.of("Binds a tool to the item in your hand")); command.condition(new SubCommandPermissionCondition.Generator(nonGlobalCommands).build()); }); } - private static String asNonGlobal(org.enginehub.piston.Command oldCommand, - CommandParameters oldParameters) { + private static String asNonGlobal( + org.enginehub.piston.Command oldCommand, + CommandParameters oldParameters + ) { String name = Optional.ofNullable(oldParameters.getMetadata()) - .map(CommandMetadata::getCalledName) - .filter(n -> !n.startsWith("/")) - .orElseGet(oldCommand::getName); + .map(CommandMetadata::getCalledName) + .filter(n -> !n.startsWith("/")) + .orElseGet(oldCommand::getName); return "/tool " + name; } static void setToolNone(Player player, LocalSession session, boolean isBrush) - throws InvalidToolBindException { + throws InvalidToolBindException { //FAWE start isBrush = session.getTool(player) instanceof BrushTool; session.setTool(player.getItemInHand(HandSide.MAIN_HAND).getType(), null); @@ -154,8 +158,10 @@ public class ToolCommands { sender.print(Caption.of("worldedit.tool.unbind-instruction", commandComponent)); } - private static void setTool(Player player, LocalSession session, Tool tool, - String translationKey) throws InvalidToolBindException { + private static void setTool( + Player player, LocalSession session, Tool tool, + String translationKey + ) throws InvalidToolBindException { BaseItemStack itemStack = player.getItemInHand(HandSide.MAIN_HAND); session.setTool(itemStack.getType(), tool); player.print(Caption.of(translationKey, itemStack.getRichName())); @@ -169,9 +175,9 @@ public class ToolCommands { } @Command( - name = "none", - aliases = "unbind", - desc = "Unbind a bound tool from your current item" + name = "none", + aliases = "unbind", + desc = "Unbind a bound tool from your current item" ) @CommandPermissions("worldedit.tool.none") public void none(Player player, LocalSession session) throws WorldEditException { @@ -179,9 +185,9 @@ public class ToolCommands { } @Command( - name = "selwand", - aliases = "/selwand", - desc = "Selection wand tool" + name = "selwand", + aliases = "/selwand", + desc = "Selection wand tool" ) @CommandPermissions("worldedit.setwand") public void selwand(Player player, LocalSession session) throws WorldEditException { @@ -191,9 +197,9 @@ public class ToolCommands { } @Command( - name = "navwand", - aliases = "/navwand", - desc = "Navigation wand tool" + name = "navwand", + aliases = "/navwand", + desc = "Navigation wand tool" ) @CommandPermissions("worldedit.setwand") public void navwand(Player player, LocalSession session) throws WorldEditException { @@ -203,9 +209,9 @@ public class ToolCommands { } @Command( - name = "info", - aliases = { "/info" }, - desc = "Block information tool" + name = "info", + aliases = {"/info"}, + desc = "Block information tool" ) @CommandPermissions("worldedit.tool.info") public void info(Player player, LocalSession session) throws WorldEditException { @@ -215,7 +221,7 @@ public class ToolCommands { //FAWE start @Command( name = "inspect", - aliases = { "/inspect" }, + aliases = {"/inspect"}, desc = "Inspect edits within a radius" ) @CommandPermissions("worldedit.tool.inspect") @@ -225,46 +231,52 @@ public class ToolCommands { //FAWE end @Command( - name = "tree", - aliases = { "/tree" }, - desc = "Tree generator tool" + name = "tree", + aliases = {"/tree"}, + desc = "Tree generator tool" ) @CommandPermissions("worldedit.tool.tree") - public void tree(Player player, LocalSession session, - @Arg(desc = "Type of tree to generate", def = "tree") - TreeGenerator.TreeType type) throws WorldEditException { + public void tree( + Player player, LocalSession session, + @Arg(desc = "Type of tree to generate", def = "tree") + TreeGenerator.TreeType type + ) throws WorldEditException { setTool(player, session, new TreePlanter(type), "worldedit.tool.tree.equip"); } @Command( - name = "stacker", - desc = "Block stacker tool" + name = "stacker", + desc = "Block stacker tool" ) @CommandPermissions("worldedit.tool.stack") - public void stacker(Player player, LocalSession session, - @Arg(desc = "The max range of the stack", def = "10") - int range, - @Arg(desc = "The mask to stack until", def = "!#existing") - Mask mask) throws WorldEditException { + public void stacker( + Player player, LocalSession session, + @Arg(desc = "The max range of the stack", def = "10") + int range, + @Arg(desc = "The mask to stack until", def = "!#existing") + Mask mask + ) throws WorldEditException { setTool(player, session, new StackTool(range, mask), "worldedit.tool.stack.equip"); } @Command( - name = "repl", - aliases = { "/repl" }, - desc = "Block replacer tool" + name = "repl", + aliases = {"/repl"}, + desc = "Block replacer tool" ) @CommandPermissions("worldedit.tool.replacer") - public void repl(Player player, LocalSession session, - @Arg(desc = "The pattern of blocks to place") - Pattern pattern) throws WorldEditException { + public void repl( + Player player, LocalSession session, + @Arg(desc = "The pattern of blocks to place") + Pattern pattern + ) throws WorldEditException { setTool(player, session, new BlockReplacer(pattern), "worldedit.tool.repl.equip"); } @Command( - name = "cycler", - aliases = { "/cycler" }, - desc = "Block data cycler tool" + name = "cycler", + aliases = {"/cycler"}, + desc = "Block data cycler tool" ) @CommandPermissions("worldedit.tool.data-cycler") public void cycler(Player player, LocalSession session) throws WorldEditException { @@ -272,16 +284,18 @@ public class ToolCommands { } @Command( - name = "floodfill", - aliases = { "flood", "/flood", "/floodfill" }, - desc = "Flood fill tool" + name = "floodfill", + aliases = {"flood", "/flood", "/floodfill"}, + desc = "Flood fill tool" ) @CommandPermissions("worldedit.tool.flood-fill") - public void floodFill(Player player, LocalSession session, - @Arg(desc = "The pattern to flood fill") - Pattern pattern, - @Arg(desc = "The range to perform the fill") - int range) throws WorldEditException { + public void floodFill( + Player player, LocalSession session, + @Arg(desc = "The pattern to flood fill") + Pattern pattern, + @Arg(desc = "The range to perform the fill") + int range + ) throws WorldEditException { LocalConfiguration config = we.getConfiguration(); @@ -293,9 +307,9 @@ public class ToolCommands { } @Command( - name = "deltree", - aliases = { "/deltree" }, - desc = "Floating tree remover tool" + name = "deltree", + aliases = {"/deltree"}, + desc = "Floating tree remover tool" ) @CommandPermissions("worldedit.tool.deltree") public void deltree(Player player, LocalSession session) throws WorldEditException { @@ -303,9 +317,9 @@ public class ToolCommands { } @Command( - name = "farwand", - aliases = { "/warwand" }, - desc = "Wand at a distance tool" + name = "farwand", + aliases = {"/warwand"}, + desc = "Wand at a distance tool" ) @CommandPermissions("worldedit.tool.farwand") public void farwand(Player player, LocalSession session) throws WorldEditException { @@ -313,16 +327,18 @@ public class ToolCommands { } @Command( - name = "lrbuild", - aliases = { "/lrbuild" }, - desc = "Long-range building tool" + name = "lrbuild", + aliases = {"/lrbuild"}, + desc = "Long-range building tool" ) @CommandPermissions("worldedit.tool.lrbuild") - public void longrangebuildtool(Player player, LocalSession session, - @Arg(desc = "Pattern to set on left-click") - Pattern primary, - @Arg(desc = "Pattern to set on right-click") - Pattern secondary) throws WorldEditException { + public void longrangebuildtool( + Player player, LocalSession session, + @Arg(desc = "Pattern to set on left-click") + Pattern primary, + @Arg(desc = "Pattern to set on right-click") + Pattern secondary + ) throws WorldEditException { setTool(player, session, new LongRangeBuildTool(primary, secondary), "worldedit.tool.lrbuild.equip"); Component primaryName; Component secondaryName; @@ -338,4 +354,5 @@ public class ToolCommands { } player.print(Caption.of("worldedit.tool.lrbuild.set", primaryName, secondaryName)); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/ToolUtilCommands.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/ToolUtilCommands.java index 14826e9cd..1f18db58d 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/ToolUtilCommands.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/ToolUtilCommands.java @@ -19,10 +19,10 @@ package com.sk89q.worldedit.command; -import com.fastasyncworldedit.core.configuration.Caption; -import com.fastasyncworldedit.core.command.tool.brush.BrushSettings; import com.fastasyncworldedit.core.command.tool.TargetMode; +import com.fastasyncworldedit.core.command.tool.brush.BrushSettings; import com.fastasyncworldedit.core.command.tool.scroll.Scroll; +import com.fastasyncworldedit.core.configuration.Caption; import com.fastasyncworldedit.core.util.MathMan; import com.fastasyncworldedit.core.util.StringMan; import com.google.common.collect.Iterables; @@ -55,6 +55,7 @@ import java.util.Locale; */ @CommandContainer(superTypes = CommandPermissionsConditionGenerator.Registration.class) public class ToolUtilCommands { + private final WorldEdit we; public ToolUtilCommands(WorldEdit we) { @@ -63,16 +64,18 @@ public class ToolUtilCommands { //FAWE start - destination mask > mask @Command( - name = "mask", - aliases = "/mask", - desc = "Set the brush destination mask" + name = "mask", + aliases = "/mask", + desc = "Set the brush destination mask" ) @CommandPermissions({"worldedit.brush.options.mask", "worldedit.mask.brush"}) - public void mask(Player player, LocalSession session, - @Switch(name = 'h', desc = "Whether the offhand should be considered or not") - boolean offHand, - @Arg(desc = "The destination mask", def = "") - Mask maskOpt, Arguments arguments) throws WorldEditException { + public void mask( + Player player, LocalSession session, + @Switch(name = 'h', desc = "Whether the offhand should be considered or not") + boolean offHand, + @Arg(desc = "The destination mask", def = "") + Mask maskOpt, Arguments arguments + ) throws WorldEditException { BrushTool tool = session.getBrushTool(player, false); if (tool == null) { player.print(Caption.of("fawe.worldedit.brush.brush.none")); @@ -84,7 +87,7 @@ public class ToolUtilCommands { } else { BrushSettings settings = offHand ? tool.getOffHand() : tool.getContext(); String lastArg = Iterables.getLast(CommandArgParser.spaceSplit(arguments.get())) - .getSubstring(); + .getSubstring(); settings.addSetting(BrushSettings.SettingType.MASK, lastArg); settings.setMask(maskOpt); tool.update(); @@ -94,17 +97,19 @@ public class ToolUtilCommands { //FAWE end @Command( - name = "material", - aliases = {"mat", "/material", "pattern"}, - desc = "Set the brush material" + name = "material", + aliases = {"mat", "/material", "pattern"}, + desc = "Set the brush material" ) @CommandPermissions("worldedit.brush.options.material") - public void material(Player player, LocalSession session, - @Arg(desc = "The pattern of blocks to use") - Pattern pattern, - //FAWE start - add offhand - @Switch(name = 'h', desc = "Whether the offhand should be considered or not") - boolean offHand, Arguments arguments) throws WorldEditException { + public void material( + Player player, LocalSession session, + @Arg(desc = "The pattern of blocks to use") + Pattern pattern, + //FAWE start - add offhand + @Switch(name = 'h', desc = "Whether the offhand should be considered or not") + boolean offHand, Arguments arguments + ) throws WorldEditException { BrushTool tool = session.getBrushTool(player, false); if (tool == null) { player.print(Caption.of("fawe.worldedit.brush.brush.none")); @@ -124,26 +129,30 @@ public class ToolUtilCommands { } @Command( - name = "range", - aliases = "/range", - desc = "Set the brush range" - ) + name = "range", + aliases = "/range", + desc = "Set the brush range" + ) @CommandPermissions("worldedit.brush.options.range") - public void range(Player player, LocalSession session, - @Arg(desc = "The range of the brush") - int range) throws WorldEditException { + public void range( + Player player, LocalSession session, + @Arg(desc = "The range of the brush") + int range + ) throws WorldEditException { session.getBrushTool(player.getItemInHand(HandSide.MAIN_HAND).getType()).setRange(range); player.print(Caption.of("worldedit.tool.range.set")); } @Command( - name = "size", - desc = "Set the brush size" + name = "size", + desc = "Set the brush size" ) @CommandPermissions("worldedit.brush.options.size") - public void size(Player player, LocalSession session, - @Arg(desc = "The size of the brush") - int size) throws WorldEditException { + public void size( + Player player, LocalSession session, + @Arg(desc = "The size of the brush") + int size + ) throws WorldEditException { we.checkMaxBrushRadius(size); session.getBrushTool(player.getItemInHand(HandSide.MAIN_HAND).getType()).setSize(size); @@ -151,14 +160,16 @@ public class ToolUtilCommands { } @Command( - name = "tracemask", - aliases = {"tarmask", "tm", "targetmask"}, - desc = "Set the mask used to stop tool traces" + name = "tracemask", + aliases = {"tarmask", "tm", "targetmask"}, + desc = "Set the mask used to stop tool traces" ) @CommandPermissions("worldedit.brush.options.tracemask") - public void traceMask(Player player, LocalSession session, - @Arg(desc = "The trace mask to set", def = "") - Mask maskOpt) throws WorldEditException { + public void traceMask( + Player player, LocalSession session, + @Arg(desc = "The trace mask to set", def = "") + Mask maskOpt + ) throws WorldEditException { session.getBrushTool(player, false).setTraceMask(maskOpt); if (maskOpt == null) { player.print(Caption.of("worldedit.tool.tracemask.disabled")); @@ -168,17 +179,21 @@ public class ToolUtilCommands { } @Command( - name = "/superpickaxe", - aliases = {",", "/sp", "/pickaxe", "/"}, - desc = "Toggle the super pickaxe function" + name = "/superpickaxe", + aliases = {",", "/sp", "/pickaxe", "/"}, + desc = "Toggle the super pickaxe function" ) @CommandPermissions("worldedit.superpickaxe") - public void togglePickaxe(Player player, LocalSession session, - @Arg(desc = "The new super pickaxe state", def = "") - Boolean superPickaxe) { + public void togglePickaxe( + Player player, LocalSession session, + @Arg(desc = "The new super pickaxe state", def = "") + Boolean superPickaxe + ) { boolean hasSuperPickAxe = session.hasSuperPickAxe(); if (superPickaxe != null && superPickaxe == hasSuperPickAxe) { - player.print(Caption.of(superPickaxe ? "worldedit.tool.superpickaxe.enabled.already" : "worldedit.tool.superpickaxe.disabled.already")); + player.print(Caption.of(superPickaxe + ? "worldedit.tool.superpickaxe.enabled.already" + : "worldedit.tool.superpickaxe.disabled.already")); return; } if (hasSuperPickAxe) { @@ -192,14 +207,16 @@ public class ToolUtilCommands { //FAWE start @Command( - name = "primary", - aliases = { "/primary" }, - desc = "Set the right click brush", - descFooter = "Set the right click brush" + name = "primary", + aliases = {"/primary"}, + desc = "Set the right click brush", + descFooter = "Set the right click brush" ) @CommandPermissions("worldedit.brush.primary") - public void primary(Player player, LocalSession session, - @Arg(desc = "The brush command", variable = true) List commandStr) throws WorldEditException { + public void primary( + Player player, LocalSession session, + @Arg(desc = "The brush command", variable = true) List commandStr + ) throws WorldEditException { BaseItem item = player.getItemInHand(HandSide.MAIN_HAND); BrushTool tool = session.getBrushTool(player, false); session.setTool(item, null, player); @@ -213,15 +230,17 @@ public class ToolUtilCommands { } @Command( - name = "secondary", - aliases = { "/secondary" }, - desc = "Set the left click brush", - descFooter = "Set the left click brush" + name = "secondary", + aliases = {"/secondary"}, + desc = "Set the left click brush", + descFooter = "Set the left click brush" ) @CommandPermissions("worldedit.brush.secondary") - public void secondary(Player player, LocalSession session, - @Arg(desc = "The brush command", variable = true) - List commandStr) throws WorldEditException { + public void secondary( + Player player, LocalSession session, + @Arg(desc = "The brush command", variable = true) + List commandStr + ) throws WorldEditException { BaseItem item = player.getItemInHand(HandSide.MAIN_HAND); BrushTool tool = session.getBrushTool(player, false); session.setTool(item, null, player); @@ -235,14 +254,16 @@ public class ToolUtilCommands { } @Command( - name = "target", - aliases = {"tar", "/target", "/tar"}, - desc = "Toggle between different target modes" + name = "target", + aliases = {"tar", "/target", "/tar"}, + desc = "Toggle between different target modes" ) @CommandPermissions("worldedit.brush.target") - public void target(Player player, LocalSession session, - @Arg(name = "mode", desc = "int", def = "0") - int mode) throws WorldEditException { + public void target( + Player player, LocalSession session, + @Arg(name = "mode", desc = "int", def = "0") + int mode + ) throws WorldEditException { BrushTool tool = session.getBrushTool(player, false); if (tool == null) { player.print(Caption.of("fawe.worldedit.brush.brush.none")); @@ -255,13 +276,15 @@ public class ToolUtilCommands { } @Command( - name = "targetoffset", - aliases = {"to"}, - desc = "Set the targeting mask" + name = "targetoffset", + aliases = {"to"}, + desc = "Set the targeting mask" ) @CommandPermissions("worldedit.brush.targetoffset") - public void targetOffset(Player player, EditSession editSession, LocalSession session, - @Arg(name = "offset", desc = "offset", def = "0") int offset) throws WorldEditException { + public void targetOffset( + Player player, EditSession editSession, LocalSession session, + @Arg(name = "offset", desc = "offset", def = "0") int offset + ) throws WorldEditException { BrushTool tool = session.getBrushTool(player, false); if (tool == null) { player.print(Caption.of("fawe.worldedit.brush.brush.none")); @@ -272,17 +295,19 @@ public class ToolUtilCommands { } @Command( - name = "scroll", - desc = "Toggle between different target modes" + name = "scroll", + desc = "Toggle between different target modes" ) @CommandPermissions("worldedit.brush.scroll") - public void scroll(Player player, EditSession editSession, LocalSession session, - @Switch(name = 'h', desc = "Whether the offhand should be considered or not") - boolean offHand, - @Arg(desc = "Target Modes", def = "none") - Scroll.Action mode, - @Arg(desc = "The scroll action", variable = true) - List commandStr) throws WorldEditException { + public void scroll( + Player player, EditSession editSession, LocalSession session, + @Switch(name = 'h', desc = "Whether the offhand should be considered or not") + boolean offHand, + @Arg(desc = "Target Modes", def = "none") + Scroll.Action mode, + @Arg(desc = "The scroll action", variable = true) + List commandStr + ) throws WorldEditException { BrushTool bt = session.getBrushTool(player, false); if (bt == null) { player.print(Caption.of("fawe.worldedit.brush.brush.none")); @@ -302,21 +327,21 @@ public class ToolUtilCommands { bt.update(); } - - @Command( - name = "smask", - aliases = {"/smask", "/sourcemask", "sourcemask"}, - desc = "Set the brush source mask", - descFooter = "Set the brush source mask" + name = "smask", + aliases = {"/smask", "/sourcemask", "sourcemask"}, + desc = "Set the brush source mask", + descFooter = "Set the brush source mask" ) @CommandPermissions({"worldedit.brush.options.mask", "worldedit.mask.brush"}) - public void smask(Player player, LocalSession session, EditSession editSession, - @Arg(desc = "The destination mask", def = "") - Mask maskArg, - @Switch(name = 'h', desc = "Whether the offhand should be considered or not") - boolean offHand, - Arguments arguments) throws WorldEditException { + public void smask( + Player player, LocalSession session, EditSession editSession, + @Arg(desc = "The destination mask", def = "") + Mask maskArg, + @Switch(name = 'h', desc = "Whether the offhand should be considered or not") + boolean offHand, + Arguments arguments + ) throws WorldEditException { BrushTool tool = session.getBrushTool(player, false); if (tool == null) { player.print(Caption.of("fawe.worldedit.brush.brush.none")); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/UtilityCommands.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/UtilityCommands.java index f43d5752d..173334e96 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/UtilityCommands.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/UtilityCommands.java @@ -22,11 +22,11 @@ package com.sk89q.worldedit.command; import com.fastasyncworldedit.core.Fawe; import com.fastasyncworldedit.core.configuration.Caption; import com.fastasyncworldedit.core.configuration.Settings; -import com.fastasyncworldedit.core.util.task.DelegateConsumer; import com.fastasyncworldedit.core.function.QuadFunction; import com.fastasyncworldedit.core.util.MainUtil; import com.fastasyncworldedit.core.util.TaskManager; import com.fastasyncworldedit.core.util.image.ImageUtil; +import com.fastasyncworldedit.core.util.task.DelegateConsumer; import com.google.common.base.Function; import com.sk89q.worldedit.EditSession; import com.sk89q.worldedit.IncompleteRegionException; @@ -79,6 +79,7 @@ import org.enginehub.piston.annotation.param.ArgFlag; import org.enginehub.piston.annotation.param.Switch; import org.enginehub.piston.exception.StopExecutionException; +import javax.imageio.ImageIO; import java.awt.RenderingHints; import java.awt.image.BufferedImage; import java.io.File; @@ -98,7 +99,6 @@ import java.util.UUID; import java.util.function.Consumer; import java.util.function.Supplier; import java.util.stream.Collectors; -import javax.imageio.ImageIO; import static com.sk89q.worldedit.command.util.Logging.LogMode.PLACEMENT; @@ -115,8 +115,8 @@ public class UtilityCommands { } @Command( - name = "/macro", - desc = "Generate or run a macro" + name = "/macro", + desc = "Generate or run a macro" ) @CommandPermissions("worldedit.macro") public void macro(Player player, LocalSession session, String name, String argument) throws IOException { @@ -124,12 +124,16 @@ public class UtilityCommands { } @Command( - name = "/heightmapinterface", - aliases = { "/hmi", "hmi" }, - desc = "Generate the heightmap interface: https://github.com/IntellectualSites/HeightMap" + name = "/heightmapinterface", + aliases = {"/hmi", "hmi"}, + desc = "Generate the heightmap interface: https://github.com/IntellectualSites/HeightMap" ) @CommandPermissions("fawe.admin") - public void heightmapInterface(Player player, @Arg(name = "min", desc = "int", def = "100") int min, @Arg(name = "max", desc = "int", def = "200") int max) throws IOException { + public void heightmapInterface( + Player player, + @Arg(name = "min", desc = "int", def = "100") int min, + @Arg(name = "max", desc = "int", def = "200") int max + ) throws IOException { player.print(TextComponent.of("Please wait while we generate the minified heightmaps.")); File srcFolder = MainUtil.getFile(Fawe.imp().getDirectory(), Settings.IMP.PATHS.HEIGHTMAP); @@ -152,8 +156,20 @@ public class UtilityCommands { name = name.replaceFirst(java.util.regex.Pattern.quote(File.separator), ""); } BufferedImage img = MainUtil.readImage(file); - BufferedImage minImg = ImageUtil.getScaledInstance(img, min, min, RenderingHints.VALUE_INTERPOLATION_BILINEAR, true); - BufferedImage maxImg = max == -1 ? img : ImageUtil.getScaledInstance(img, max, max, RenderingHints.VALUE_INTERPOLATION_BILINEAR, true); + BufferedImage minImg = ImageUtil.getScaledInstance( + img, + min, + min, + RenderingHints.VALUE_INTERPOLATION_BILINEAR, + true + ); + BufferedImage maxImg = max == -1 ? img : ImageUtil.getScaledInstance( + img, + max, + max, + RenderingHints.VALUE_INTERPOLATION_BILINEAR, + true + ); player.print(TextComponent.of(String.format("Writing %s", name))); File minFile = new File(minImages, name); File maxFile = new File(maxImages, name); @@ -185,9 +201,9 @@ public class UtilityCommands { } @Command( - name = "/cancel", - aliases = {"fcancel"}, - desc = "Cancel your current command" + name = "/cancel", + aliases = {"fcancel"}, + desc = "Cancel your current command" ) @CommandPermissions(value = "fawe.cancel", queued = false) public void cancel(Player player) { @@ -196,23 +212,25 @@ public class UtilityCommands { } @Command( - name = "/fill", - desc = "Fill a hole" + name = "/fill", + desc = "Fill a hole" ) @CommandPermissions("worldedit.fill") @Logging(PLACEMENT) - public int fill(Actor actor, LocalSession session, EditSession editSession, - @Arg(desc = "The blocks to fill with") - Pattern pattern, - //FAWE start - we take an expression over a double - @Arg(desc = "The radius to fill in") - Expression radiusExp, - //FAWE end - @Arg(desc = "The depth to fill", def = "1") - int depth, - @Arg(desc = "The direction to move", def = "down") - @Direction BlockVector3 direction) throws WorldEditException, EvaluationException { + public int fill( + Actor actor, LocalSession session, EditSession editSession, + @Arg(desc = "The blocks to fill with") + Pattern pattern, + //FAWE start - we take an expression over a double + @Arg(desc = "The radius to fill in") + Expression radiusExp, + //FAWE end + @Arg(desc = "The depth to fill", def = "1") + int depth, + @Arg(desc = "The direction to move", def = "down") + @Direction BlockVector3 direction + ) throws WorldEditException, EvaluationException { //FAWE start double radius = radiusExp.evaluate(); //FAWE end @@ -284,20 +302,22 @@ public class UtilityCommands { */ @Command( - name = "/fillr", - desc = "Fill a hole recursively" + name = "/fillr", + desc = "Fill a hole recursively" ) @CommandPermissions("worldedit.fill.recursive") @Logging(PLACEMENT) - public int fillr(Actor actor, LocalSession session, EditSession editSession, - @Arg(desc = "The blocks to fill with") - Pattern pattern, - //FAWE start - we take an expression over a double - @Arg(desc = "The radius to fill in") - Expression radiusExp, - //FAWE end - @Arg(desc = "The depth to fill", def = "") - Integer depth) throws WorldEditException { + public int fillr( + Actor actor, LocalSession session, EditSession editSession, + @Arg(desc = "The blocks to fill with") + Pattern pattern, + //FAWE start - we take an expression over a double + @Arg(desc = "The radius to fill in") + Expression radiusExp, + //FAWE end + @Arg(desc = "The depth to fill", def = "") + Integer depth + ) throws WorldEditException { //FAWE start double radius = radiusExp.evaluate(); //FAWE end @@ -313,22 +333,24 @@ public class UtilityCommands { } @Command( - name = "/drain", - desc = "Drain a pool" + name = "/drain", + desc = "Drain a pool" ) @CommandPermissions("worldedit.drain") @Logging(PLACEMENT) - public int drain(Actor actor, LocalSession session, EditSession editSession, - //FAWE start - we take an expression over a double - @Arg(desc = "The radius to drain") - Expression radiusExp, - //FAWE end - @Switch(name = 'w', desc = "Also un-waterlog blocks") - boolean waterlogged, - //FAWE start - @Switch(name = 'p', desc = "Also remove water plants") - boolean plants) throws WorldEditException { - //FAWE end + public int drain( + Actor actor, LocalSession session, EditSession editSession, + //FAWE start - we take an expression over a double + @Arg(desc = "The radius to drain") + Expression radiusExp, + //FAWE end + @Switch(name = 'w', desc = "Also un-waterlog blocks") + boolean waterlogged, + //FAWE start + @Switch(name = 'p', desc = "Also remove water plants") + boolean plants + ) throws WorldEditException { + //FAWE end double radius = radiusExp.evaluate(); radius = Math.max(0, radius); we.checkMaxRadius(radius); @@ -338,15 +360,17 @@ public class UtilityCommands { } @Command( - name = "fixlava", - aliases = { "/fixlava" }, - desc = "Fix lava to be stationary" + name = "fixlava", + aliases = {"/fixlava"}, + desc = "Fix lava to be stationary" ) @CommandPermissions("worldedit.fixlava") @Logging(PLACEMENT) - public int fixLava(Actor actor, LocalSession session, EditSession editSession, - @Arg(desc = "The radius to fix in") - double radius) throws WorldEditException { + public int fixLava( + Actor actor, LocalSession session, EditSession editSession, + @Arg(desc = "The radius to fix in") + double radius + ) throws WorldEditException { radius = Math.max(0, radius); we.checkMaxRadius(radius); int affected = editSession.fixLiquid(session.getPlacementPosition(actor), radius, BlockTypes.LAVA); @@ -355,15 +379,17 @@ public class UtilityCommands { } @Command( - name = "fixwater", - aliases = { "/fixwater" }, - desc = "Fix water to be stationary" + name = "fixwater", + aliases = {"/fixwater"}, + desc = "Fix water to be stationary" ) @CommandPermissions("worldedit.fixwater") @Logging(PLACEMENT) - public int fixWater(Actor actor, LocalSession session, EditSession editSession, - @Arg(desc = "The radius to fix in") - double radius) throws WorldEditException { + public int fixWater( + Actor actor, LocalSession session, EditSession editSession, + @Arg(desc = "The radius to fix in") + double radius + ) throws WorldEditException { radius = Math.max(0, radius); we.checkMaxRadius(radius); int affected = editSession.fixLiquid(session.getPlacementPosition(actor), radius, BlockTypes.WATER); @@ -372,17 +398,19 @@ public class UtilityCommands { } @Command( - name = "removeabove", - aliases = { "/removeabove" }, - desc = "Remove blocks above your head." + name = "removeabove", + aliases = {"/removeabove"}, + desc = "Remove blocks above your head." ) @CommandPermissions("worldedit.removeabove") @Logging(PLACEMENT) - public int removeAbove(Actor actor, World world, LocalSession session, EditSession editSession, - @Arg(desc = "The apothem of the square to remove from", def = "1") - int size, - @Arg(desc = "The maximum height above you to remove from", def = "") - Integer height) throws WorldEditException { + public int removeAbove( + Actor actor, World world, LocalSession session, EditSession editSession, + @Arg(desc = "The apothem of the square to remove from", def = "1") + int size, + @Arg(desc = "The maximum height above you to remove from", def = "") + Integer height + ) throws WorldEditException { size = Math.max(1, size); we.checkMaxRadius(size); height = height != null ? Math.min((world.getMaxY() + 1), height + 1) : (world.getMaxY() + 1); @@ -393,17 +421,19 @@ public class UtilityCommands { } @Command( - name = "removebelow", - aliases = { "/removebelow" }, - desc = "Remove blocks below you." + name = "removebelow", + aliases = {"/removebelow"}, + desc = "Remove blocks below you." ) @CommandPermissions("worldedit.removebelow") @Logging(PLACEMENT) - public int removeBelow(Actor actor, World world, LocalSession session, EditSession editSession, - @Arg(desc = "The apothem of the square to remove from", def = "1") - int size, - @Arg(desc = "The maximum height below you to remove from", def = "") - Integer height) throws WorldEditException { + public int removeBelow( + Actor actor, World world, LocalSession session, EditSession editSession, + @Arg(desc = "The apothem of the square to remove from", def = "1") + int size, + @Arg(desc = "The maximum height below you to remove from", def = "") + Integer height + ) throws WorldEditException { size = Math.max(1, size); we.checkMaxRadius(size); height = height != null ? Math.min((world.getMaxY() + 1), height + 1) : (world.getMaxY() + 1); @@ -414,17 +444,19 @@ public class UtilityCommands { } @Command( - name = "removenear", - aliases = { "/removenear" }, - desc = "Remove blocks near you." + name = "removenear", + aliases = {"/removenear"}, + desc = "Remove blocks near you." ) @CommandPermissions("worldedit.removenear") @Logging(PLACEMENT) - public int removeNear(Actor actor, LocalSession session, EditSession editSession, - @Arg(desc = "The mask of blocks to remove") - Mask mask, - @Arg(desc = "The radius of the square to remove from", def = "50") - int radius) throws WorldEditException { + public int removeNear( + Actor actor, LocalSession session, EditSession editSession, + @Arg(desc = "The mask of blocks to remove") + Mask mask, + @Arg(desc = "The radius of the square to remove from", def = "50") + int radius + ) throws WorldEditException { //FAWE start > the mask will have been initialised with a WorldWrapper extent (very bad/slow) if (mask instanceof AbstractExtentMask) { ((AbstractExtentMask) mask).setExtent(editSession); @@ -439,19 +471,21 @@ public class UtilityCommands { } @Command( - name = "replacenear", - aliases = { "/replacenear" }, - desc = "Replace nearby blocks" + name = "replacenear", + aliases = {"/replacenear"}, + desc = "Replace nearby blocks" ) @CommandPermissions("worldedit.replacenear") @Logging(PLACEMENT) - public int replaceNear(Actor actor, World world, LocalSession session, EditSession editSession, - @Arg(desc = "The radius of the square to remove in") - int radius, - @Arg(desc = "The mask matching blocks to remove", def = "") - Mask from, - @Arg(desc = "The pattern of blocks to replace with") - Pattern to) throws WorldEditException { + public int replaceNear( + Actor actor, World world, LocalSession session, EditSession editSession, + @Arg(desc = "The radius of the square to remove in") + int radius, + @Arg(desc = "The mask matching blocks to remove", def = "") + Mask from, + @Arg(desc = "The pattern of blocks to replace with") + Pattern to + ) throws WorldEditException { //FAWE start > the mask will have been initialised with a WorldWrapper extent (very bad/slow) if (from instanceof AbstractExtentMask) { ((AbstractExtentMask) from).setExtent(editSession); @@ -476,106 +510,119 @@ public class UtilityCommands { @Command( - name = "snow", - aliases = { "/snow" }, - desc = "Simulates snow" + name = "snow", + aliases = {"/snow"}, + desc = "Simulates snow" ) @CommandPermissions("worldedit.snow") @Logging(PLACEMENT) - public int snow(Actor actor, LocalSession session, EditSession editSession, - @Arg(desc = "The radius of the cylinder to snow in", def = "10") - double size, - @Arg( - desc = "The height of the cylinder to snow in", - def = HeightConverter.DEFAULT_VALUE - ) - @VertHeight - int height, - @Switch(name = 's', desc = "Stack snow layers") - boolean stack) throws WorldEditException { + public int snow( + Actor actor, LocalSession session, EditSession editSession, + @Arg(desc = "The radius of the cylinder to snow in", def = "10") + double size, + @Arg( + desc = "The height of the cylinder to snow in", + def = HeightConverter.DEFAULT_VALUE + ) + @VertHeight + int height, + @Switch(name = 's', desc = "Stack snow layers") + boolean stack + ) throws WorldEditException { size = Math.max(1, size); height = Math.max(1, height); we.checkMaxRadius(size); BlockVector3 position = session.getPlacementPosition(actor); - CylinderRegion region = new CylinderRegion(position, Vector2.at(size, size), position.getBlockY() - height, position.getBlockY() + height); + CylinderRegion region = new CylinderRegion( + position, + Vector2.at(size, size), + position.getBlockY() - height, + position.getBlockY() + height + ); int affected = editSession.simulateSnow(region, stack); actor.print(Caption.of( - "worldedit.snow.created", TextComponent.of(affected) + "worldedit.snow.created", TextComponent.of(affected) )); return affected; } @Command( - name = "thaw", - aliases = { "/thaw" }, - desc = "Thaws the area" + name = "thaw", + aliases = {"/thaw"}, + desc = "Thaws the area" ) @CommandPermissions("worldedit.thaw") @Logging(PLACEMENT) - public int thaw(Actor actor, LocalSession session, EditSession editSession, - @Arg(desc = "The radius of the cylinder to thaw in", def = "10") - double size, - @Arg( - desc = "The height of the cylinder to thaw in", - def = HeightConverter.DEFAULT_VALUE - ) - @VertHeight - int height) throws WorldEditException { + public int thaw( + Actor actor, LocalSession session, EditSession editSession, + @Arg(desc = "The radius of the cylinder to thaw in", def = "10") + double size, + @Arg( + desc = "The height of the cylinder to thaw in", + def = HeightConverter.DEFAULT_VALUE + ) + @VertHeight + int height + ) throws WorldEditException { size = Math.max(1, size); height = Math.max(1, height); we.checkMaxRadius(size); int affected = editSession.thaw(session.getPlacementPosition(actor), size, height); actor.print(Caption.of( - "worldedit.thaw.removed", TextComponent.of(affected) + "worldedit.thaw.removed", TextComponent.of(affected) )); return affected; } @Command( - name = "green", - aliases = { "/green" }, - desc = "Converts dirt to grass blocks in the area" + name = "green", + aliases = {"/green"}, + desc = "Converts dirt to grass blocks in the area" ) @CommandPermissions("worldedit.green") @Logging(PLACEMENT) - public int green(Actor actor, LocalSession session, EditSession editSession, - @Arg(desc = "The radius of the cylinder to convert in", def = "10") - double size, - @Arg( - desc = "The height of the cylinder to convert in", - def = HeightConverter.DEFAULT_VALUE - ) - @VertHeight - int height, - @Switch(name = 'f', desc = "Also convert coarse dirt") - boolean convertCoarse) throws WorldEditException { + public int green( + Actor actor, LocalSession session, EditSession editSession, + @Arg(desc = "The radius of the cylinder to convert in", def = "10") + double size, + @Arg( + desc = "The height of the cylinder to convert in", + def = HeightConverter.DEFAULT_VALUE + ) + @VertHeight + int height, + @Switch(name = 'f', desc = "Also convert coarse dirt") + boolean convertCoarse + ) throws WorldEditException { size = Math.max(1, size); height = Math.max(1, height); we.checkMaxRadius(size); final boolean onlyNormalDirt = !convertCoarse; final int affected = editSession.green( - session.getPlacementPosition(actor), size, height, onlyNormalDirt + session.getPlacementPosition(actor), size, height, onlyNormalDirt ); actor.print(Caption.of( - "worldedit.green.changed", TextComponent.of(affected) + "worldedit.green.changed", TextComponent.of(affected) )); return affected; } @Command( - name = "extinguish", - aliases = { "/ex", "/ext", "/extinguish", "ex", "ext" }, - desc = "Extinguish nearby fire" + name = "extinguish", + aliases = {"/ex", "/ext", "/extinguish", "ex", "ext"}, + desc = "Extinguish nearby fire" ) @CommandPermissions("worldedit.extinguish") @Logging(PLACEMENT) - public int extinguish(Actor actor, LocalSession session, EditSession editSession, - @Arg(desc = "The radius of the square to remove in", def = "") - Integer radius) throws WorldEditException { + public int extinguish( + Actor actor, LocalSession session, EditSession editSession, + @Arg(desc = "The radius of the square to remove in", def = "") + Integer radius + ) throws WorldEditException { LocalConfiguration config = we.getConfiguration(); @@ -590,33 +637,35 @@ public class UtilityCommands { } @Command( - name = "butcher", - aliases = { "/butcher" }, - desc = "Kill all or nearby mobs" + name = "butcher", + aliases = {"/butcher"}, + desc = "Kill all or nearby mobs" ) @CommandPermissions("worldedit.butcher") @Logging(PLACEMENT) - public int butcher(Actor actor, - @Arg(desc = "Radius to kill mobs in", def = "") - Integer radius, - @Switch(name = 'p', desc = "Also kill pets") - boolean killPets, - @Switch(name = 'n', desc = "Also kill NPCs") - boolean killNpcs, - @Switch(name = 'g', desc = "Also kill golems") - boolean killGolems, - @Switch(name = 'a', desc = "Also kill animals") - boolean killAnimals, - @Switch(name = 'b', desc = "Also kill ambient mobs") - boolean killAmbient, - @Switch(name = 't', desc = "Also kill mobs with name tags") - boolean killWithName, - @Switch(name = 'f', desc = "Also kill all friendly mobs (Applies the flags `-abgnpt`)") - boolean killFriendly, - @Switch(name = 'r', desc = "Also destroy armor stands") - boolean killArmorStands, - @Switch(name = 'w', desc = "Also kill water mobs") - boolean killWater) throws WorldEditException { + public int butcher( + Actor actor, + @Arg(desc = "Radius to kill mobs in", def = "") + Integer radius, + @Switch(name = 'p', desc = "Also kill pets") + boolean killPets, + @Switch(name = 'n', desc = "Also kill NPCs") + boolean killNpcs, + @Switch(name = 'g', desc = "Also kill golems") + boolean killGolems, + @Switch(name = 'a', desc = "Also kill animals") + boolean killAnimals, + @Switch(name = 'b', desc = "Also kill ambient mobs") + boolean killAmbient, + @Switch(name = 't', desc = "Also kill mobs with name tags") + boolean killWithName, + @Switch(name = 'f', desc = "Also kill all friendly mobs (Applies the flags `-abgnpt`)") + boolean killFriendly, + @Switch(name = 'r', desc = "Also destroy armor stands") + boolean killArmorStands, + @Switch(name = 'w', desc = "Also kill water mobs") + boolean killWater + ) throws WorldEditException { LocalConfiguration config = we.getConfiguration(); if (radius == null) { @@ -634,7 +683,10 @@ public class UtilityCommands { } CreatureButcher flags = new CreatureButcher(actor); - flags.or(CreatureButcher.Flags.FRIENDLY, killFriendly); // No permission check here. Flags will instead be filtered by the subsequent calls. + flags.or( + CreatureButcher.Flags.FRIENDLY, + killFriendly + ); // No permission check here. Flags will instead be filtered by the subsequent calls. flags.or(CreatureButcher.Flags.PETS, killPets, "worldedit.butcher.pets"); flags.or(CreatureButcher.Flags.NPCS, killNpcs, "worldedit.butcher.npcs"); flags.or(CreatureButcher.Flags.GOLEMS, killGolems, "worldedit.butcher.golems"); @@ -659,24 +711,26 @@ public class UtilityCommands { } @Command( - name = "remove", - aliases = { "rem", "rement", "/remove", "/rem", "/rement" }, - desc = "Remove all entities of a type" + name = "remove", + aliases = {"rem", "rement", "/remove", "/rem", "/rement"}, + desc = "Remove all entities of a type" ) @CommandPermissions("worldedit.remove") @Logging(PLACEMENT) - public int remove(Actor actor, - @Arg(desc = "The type of entity to remove") - EntityRemover remover, - @Arg(desc = "The radius of the cuboid to remove from") - int radius) throws WorldEditException { + public int remove( + Actor actor, + @Arg(desc = "The type of entity to remove") + EntityRemover remover, + @Arg(desc = "The radius of the cuboid to remove from") + int radius + ) throws WorldEditException { if (radius < -1) { actor.print(Caption.of("worldedit.remove.explain-all")); return 0; } //FAWE start - run this sync - int removed = TaskManager.IMP.sync(() -> killMatchingEntities(radius, actor, remover::createFunction)); + int removed = TaskManager.IMP.sync(() -> killMatchingEntities(radius, actor, remover::createFunction)); //FAWE end actor.print(Caption.of("worldedit.remove.removed", TextComponent.of(removed))); return removed; @@ -716,14 +770,16 @@ public class UtilityCommands { } @Command( - name = "/calculate", - aliases = { "/calc", "/eval", "/evaluate", "/solve" }, - desc = "Evaluate a mathematical expression" + name = "/calculate", + aliases = {"/calc", "/eval", "/evaluate", "/solve"}, + desc = "Evaluate a mathematical expression" ) @CommandPermissions("worldedit.calc") - public void calc(Actor actor, - @Arg(desc = "Expression to evaluate", variable = true) - List input) { + public void calc( + Actor actor, + @Arg(desc = "Expression to evaluate", variable = true) + List input + ) { Expression expression; try { expression = Expression.compile(String.join(" ", input)); @@ -744,26 +800,29 @@ public class UtilityCommands { } @Command( - name = "/help", - desc = "Displays help for WorldEdit commands" + name = "/help", + desc = "Displays help for WorldEdit commands" ) @CommandPermissions("worldedit.help") - public void help(Actor actor, - @Switch(name = 's', desc = "List sub-commands of the given command, if applicable") - boolean listSubCommands, - @ArgFlag(name = 'p', desc = "The page to retrieve", def = "1") - int page, - @Arg(desc = "The command to retrieve help for", def = "", variable = true) - List command) throws WorldEditException { + public void help( + Actor actor, + @Switch(name = 's', desc = "List sub-commands of the given command, if applicable") + boolean listSubCommands, + @ArgFlag(name = 'p', desc = "The page to retrieve", def = "1") + int page, + @Arg(desc = "The command to retrieve help for", def = "", variable = true) + List command + ) throws WorldEditException { PrintCommandHelp.help(command, page, listSubCommands, - we.getPlatformManager().getPlatformCommandManager().getCommandManager(), actor, "//help"); + we.getPlatformManager().getPlatformCommandManager().getCommandManager(), actor, "//help" + ); } //FAWE start @Command( - name = "/confirm", - desc = "Confirm a command" + name = "/confirm", + desc = "Confirm a command" ) @CommandPermissions(value = "fawe.confirm", queued = false) public void confirm(Player player) throws WorldEditException { @@ -774,21 +833,26 @@ public class UtilityCommands { public static List> filesToEntry(final File root, final List files, final UUID uuid) { return files.stream() - .map(input -> { // Keep this functional, as transform is evaluated lazily - URI uri = input.toURI(); - String path = getPath(root, input, uuid); - return new SimpleEntry<>(uri, path); - }).collect(Collectors.toList()); + .map(input -> { // Keep this functional, as transform is evaluated lazily + URI uri = input.toURI(); + String path = getPath(root, input, uuid); + return new SimpleEntry<>(uri, path); + }).collect(Collectors.toList()); } - public static enum URIType { + public enum URIType { URL, FILE, DIRECTORY, OTHER } - public static List entryToComponent(File root, List> entries, Function isLoaded, QuadFunction adapter) { + public static List entryToComponent( + File root, + List> entries, + Function isLoaded, + QuadFunction adapter + ) { return entries.stream().map(input -> { URI uri = input.getKey(); String path = input.getValue(); @@ -813,7 +877,7 @@ public class UtilityCommands { try { if (!MainUtil.isInSubDirectory(root, file)) { throw new RuntimeException( - new StopExecutionException(TextComponent.of("Invalid path"))); + new StopExecutionException(TextComponent.of("Invalid path"))); } } catch (IOException ignored) { } @@ -827,7 +891,15 @@ public class UtilityCommands { }).collect(Collectors.toList()); } - public static List getFiles(File dir, Actor actor, List args, String formatName, boolean playerFolder, boolean oldFirst, boolean newFirst) { + public static List getFiles( + File dir, + Actor actor, + List args, + String formatName, + boolean playerFolder, + boolean oldFirst, + boolean newFirst + ) { List fileList = new LinkedList<>(); getFiles(dir, actor, args, formatName, playerFolder, fileList::add); @@ -864,7 +936,14 @@ public class UtilityCommands { return fileList; } - public static void getFiles(File dir, Actor actor, List args, String formatName, boolean playerFolder, Consumer forEachFile) { + public static void getFiles( + File dir, + Actor actor, + List args, + String formatName, + boolean playerFolder, + Consumer forEachFile + ) { Consumer rootFunction = forEachFile; //schem list all @@ -897,9 +976,9 @@ public class UtilityCommands { arg = arg.replace("/", File.separator); String newDirFilter = dirFilter + arg; boolean exists = - new File(dir, newDirFilter).exists() || playerFolder && MainUtil - .resolveRelative( - new File(dir, actor.getUniqueId() + newDirFilter)).exists(); + new File(dir, newDirFilter).exists() || playerFolder && MainUtil + .resolveRelative( + new File(dir, actor.getUniqueId() + newDirFilter)).exists(); if (!exists) { arg = arg.substring(0, arg.length() - File.separator.length()); if (arg.length() > 3 && arg.length() <= 16) { diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/WorldEditCommands.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/WorldEditCommands.java index f7f6c4dda..b596089b8 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/WorldEditCommands.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/WorldEditCommands.java @@ -62,6 +62,7 @@ import java.util.Map; @CommandContainer(superTypes = {CommandPermissionsConditionGenerator.Registration.class}) public class WorldEditCommands { + private static final DateTimeFormatter dateFormat = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss z"); private final WorldEdit we; @@ -71,9 +72,9 @@ public class WorldEditCommands { } @Command( - name = "version", - aliases = { "ver" }, - desc = "Get the FAWE version" + name = "version", + aliases = {"ver"}, + desc = "Get the FAWE version" ) @CommandPermissions(queued = false) public void version(Actor actor) { @@ -85,7 +86,7 @@ public class WorldEditCommands { if (fVer != null) { FaweVersion version = Fawe.get().getVersion(); Date date = new GregorianCalendar(2000 + version.year, version.month - 1, version.day) - .getTime(); + .getTime(); TextComponent dateArg = TextComponent.of(date.toLocaleString()); TextComponent commitArg = TextComponent.of(Integer.toHexString(version.hash)); @@ -106,7 +107,7 @@ public class WorldEditCommands { TextComponent.of("* ", TextColor.GRAY) .append(TextComponent.of(platform.getPlatformName()) .hoverEvent(HoverEvent.showText(TextComponent.of(platform.getId())))) - .append(TextComponent.of("(" + platform.getPlatformVersion() + ")")) + .append(TextComponent.of("(" + platform.getPlatformVersion() + ")")) ).newline(); } actor.print(new MessageBox("Platforms", producer, TextColor.GRAY).create()); @@ -115,9 +116,9 @@ public class WorldEditCommands { for (Capability capability : Capability.values()) { Platform platform = pm.queryCapability(capability); producer.append( - TextComponent.of(capability.name(), TextColor.GRAY) - .append(TextComponent.of(": ") - .append(TextComponent.of(platform != null ? platform.getPlatformName() : "none"))) + TextComponent.of(capability.name(), TextColor.GRAY) + .append(TextComponent.of(": ") + .append(TextComponent.of(platform != null ? platform.getPlatformName() : "none"))) ).newline(); } actor.print(new MessageBox("Capabilities", producer, TextColor.GRAY).create()); @@ -125,13 +126,16 @@ public class WorldEditCommands { } @Command( - name = "reload", - desc = "Reload configuration and translations" + name = "reload", + desc = "Reload configuration and translations" ) @CommandPermissions("worldedit.reload") public void reload(Actor actor) { we.getPlatformManager().queryCapability(Capability.CONFIGURATION).reload(); - we.getEventBus().post(new ConfigurationLoadEvent(we.getPlatformManager().queryCapability(Capability.CONFIGURATION).getConfiguration())); + we.getEventBus().post(new ConfigurationLoadEvent(we + .getPlatformManager() + .queryCapability(Capability.CONFIGURATION) + .getConfiguration())); //FAWE start Fawe.get().setupConfigs(); //FAWE end @@ -140,8 +144,8 @@ public class WorldEditCommands { //FAWE start @Command( - name = "debugpaste", - desc = "Writes a report of latest.log, config.yml, config-legacy.yml, strings.json to https://athion.net/ISPaster/paste" + name = "debugpaste", + desc = "Writes a report of latest.log, config.yml, config-legacy.yml, strings.json to https://athion.net/ISPaster/paste" ) @CommandPermissions(value = {"worldedit.report", "worldedit.debugpaste"}, queued = false) public void report(Actor actor) throws WorldEditException { @@ -156,12 +160,12 @@ public class WorldEditCommands { return; } actor.print(Caption.of("worldedit.report.written", TextComponent.of(dest).clickEvent( - ClickEvent.openUrl(dest)))); + ClickEvent.openUrl(dest)))); } @Command( - name = "threads", - desc = "Print all thread stacks" + name = "threads", + desc = "Print all thread stacks" ) @CommandPermissions(value = "worldedit.threads", queued = false) public void threads(Actor actor) throws WorldEditException { @@ -169,7 +173,7 @@ public class WorldEditCommands { for (Map.Entry entry : stacks.entrySet()) { Thread thread = entry.getKey(); actor.printDebug(TextComponent.of( - "--------------------------------------------------------------------------------------------")); + "--------------------------------------------------------------------------------------------")); actor.printDebug("Thread: " + thread.getName() + " | Id: " + thread.getId() + " | Alive: " + thread.isAlive()); for (StackTraceElement elem : entry.getValue()) { actor.printDebug(TextComponent.of(elem.toString())); @@ -179,8 +183,8 @@ public class WorldEditCommands { //FAWE end @Command( - name = "cui", - desc = "Complete CUI handshake (internal usage)" + name = "cui", + desc = "Complete CUI handshake (internal usage)" ) @CommandPermissions(value = "worldedit.cui", queued = false) public void cui(Player player, LocalSession session) { @@ -189,39 +193,47 @@ public class WorldEditCommands { } @Command( - name = "tz", - desc = "Set your timezone for snapshots" + name = "tz", + desc = "Set your timezone for snapshots" ) @CommandPermissions(value = "worldedit.timezone", queued = false) - public void tz(Actor actor, LocalSession session, - @Arg(desc = "The timezone to set") - String timezone) { + public void tz( + Actor actor, LocalSession session, + @Arg(desc = "The timezone to set") + String timezone + ) { try { ZoneId tz = ZoneId.of(timezone); session.setTimezone(tz); actor.print(Caption.of("worldedit.timezone.set", TextComponent.of(tz.getDisplayName( TextStyle.FULL, actor.getLocale() )))); - actor.print(Caption.of("worldedit.timezone.current", - TextComponent.of(dateFormat.withLocale(actor.getLocale()).format(ZonedDateTime.now(tz))))); + actor.print(Caption.of( + "worldedit.timezone.current", + TextComponent.of(dateFormat.withLocale(actor.getLocale()).format(ZonedDateTime.now(tz))) + )); } catch (ZoneRulesException e) { actor.print(Caption.of("worldedit.timezone.invalid")); } } @Command( - name = "help", - desc = "Displays help for WorldEdit commands" + name = "help", + desc = "Displays help for WorldEdit commands" ) @CommandPermissions(value = "worldedit.help", queued = false) - public void help(Actor actor, - @Switch(name = 's', desc = "List sub-commands of the given command, if applicable") - boolean listSubCommands, - @ArgFlag(name = 'p', desc = "The page to retrieve", def = "1") - int page, - @Arg(desc = "The command to retrieve help for", def = "", variable = true) - List command) throws WorldEditException { + public void help( + Actor actor, + @Switch(name = 's', desc = "List sub-commands of the given command, if applicable") + boolean listSubCommands, + @ArgFlag(name = 'p', desc = "The page to retrieve", def = "1") + int page, + @Arg(desc = "The command to retrieve help for", def = "", variable = true) + List command + ) throws WorldEditException { PrintCommandHelp.help(command, page, listSubCommands, - we.getPlatformManager().getPlatformCommandManager().getCommandManager(), actor, "/worldedit help"); + we.getPlatformManager().getPlatformCommandManager().getCommandManager(), actor, "/worldedit help" + ); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/argument/AbstractDirectionConverter.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/argument/AbstractDirectionConverter.java index f817db266..123887af8 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/argument/AbstractDirectionConverter.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/argument/AbstractDirectionConverter.java @@ -38,8 +38,8 @@ import org.enginehub.piston.converter.SuccessfulConversion; import org.enginehub.piston.inject.InjectedValueAccess; import org.enginehub.piston.inject.Key; -import java.util.List; import javax.annotation.Nullable; +import java.util.List; import static org.enginehub.piston.converter.SuggestionHelper.limitByPrefix; @@ -55,26 +55,28 @@ public abstract class AbstractDirectionConverter implements ArgumentConverter return new AutoAnnotation_AbstractDirectionConverter_multiDirection(includeDiagonals); } - protected static void register(CommandManager commandManager, AbstractDirectionConverter converter, - Class keyClass, boolean includeDiagonals) { + protected static void register( + CommandManager commandManager, AbstractDirectionConverter converter, + Class keyClass, boolean includeDiagonals + ) { commandManager.registerConverter( - Key.of(keyClass, direction(includeDiagonals)), - converter + Key.of(keyClass, direction(includeDiagonals)), + converter ); commandManager.registerConverter( - Key.of(keyClass, multiDirection(includeDiagonals)), - CommaSeparatedValuesConverter.wrap(converter) + Key.of(keyClass, multiDirection(includeDiagonals)), + CommaSeparatedValuesConverter.wrap(converter) ); } private static final ImmutableSet ORTHOGONAL = ImmutableSet.of( - "north", "south", "east", "west", "up", "down" + "north", "south", "east", "west", "up", "down" ); private static final ImmutableSet RELATIVE = ImmutableSet.of( - "me", "forward", "back", "left", "right" + "me", "forward", "back", "left", "right" ); private static final ImmutableSet DIAGONAL = ImmutableSet.of( - "northeast", "northwest", "southeast", "southwest" + "northeast", "northwest", "southeast", "southwest" ); private final WorldEdit worldEdit; @@ -85,15 +87,19 @@ public abstract class AbstractDirectionConverter implements ArgumentConverter this.worldEdit = worldEdit; this.includeDiagonals = includeDiagonals; suggestions = ImmutableList.builder() - .addAll(ORTHOGONAL) - .addAll(RELATIVE) - .addAll(includeDiagonals ? DIAGONAL : ImmutableList.of()) - .build(); + .addAll(ORTHOGONAL) + .addAll(RELATIVE) + .addAll(includeDiagonals ? DIAGONAL : ImmutableList.of()) + .build(); } @Override public ConversionResult convert(String argument, InjectedValueAccess context) { - Player player = context.injectedValue(Key.of(Actor.class)).filter(Player.class::isInstance).map(Player.class::cast).orElse(null); + Player player = context + .injectedValue(Key.of(Actor.class)) + .filter(Player.class::isInstance) + .map(Player.class::cast) + .orElse(null); try { return SuccessfulConversion.fromSingle(convertDirection(argument, player, includeDiagonals)); } catch (Exception e) { @@ -101,12 +107,13 @@ public abstract class AbstractDirectionConverter implements ArgumentConverter } } - protected abstract D convertDirection(String argument, @Nullable Player player, boolean includeDiagonals) throws UnknownDirectionException; + protected abstract D convertDirection(String argument, @Nullable Player player, boolean includeDiagonals) throws + UnknownDirectionException; @Override public Component describeAcceptableArguments() { return TextComponent.of("`me` to use facing direction, or any " - + (includeDiagonals ? "direction" : "non-diagonal direction")); + + (includeDiagonals ? "direction" : "non-diagonal direction")); } @Override @@ -117,4 +124,5 @@ public abstract class AbstractDirectionConverter implements ArgumentConverter protected WorldEdit getWorldEdit() { return worldEdit; } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/argument/BooleanConverter.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/argument/BooleanConverter.java index 0ea15a267..2ca618f1e 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/argument/BooleanConverter.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/argument/BooleanConverter.java @@ -27,15 +27,16 @@ import org.enginehub.piston.inject.Key; public class BooleanConverter { public static void register(CommandManager commandManager) { - commandManager.registerConverter(Key.of(Boolean.class), - MultiKeyConverter.builder( - ImmutableSetMultimap.builder() - .putAll(false, "off", "f", "false", "n", "no") - .putAll(true, "on", "t", "true", "y", "yes") - .build() - ) - .errorMessage(arg -> "Not a boolean value: " + arg) - .build() + commandManager.registerConverter( + Key.of(Boolean.class), + MultiKeyConverter.builder( + ImmutableSetMultimap.builder() + .putAll(false, "off", "f", "false", "n", "no") + .putAll(true, "on", "t", "true", "y", "yes") + .build() + ) + .errorMessage(arg -> "Not a boolean value: " + arg) + .build() ); } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/argument/Chunk3dVectorConverter.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/argument/Chunk3dVectorConverter.java index 4cfccd478..d63bdcfa6 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/argument/Chunk3dVectorConverter.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/argument/Chunk3dVectorConverter.java @@ -39,25 +39,29 @@ import java.util.List; import java.util.function.Function; public class Chunk3dVectorConverter implements ArgumentConverter { + public static void register(CommandManager commandManager) { - CommaSeparatedValuesConverter intConverter = CommaSeparatedValuesConverter.wrap(ArgumentConverters.get(TypeToken.of(int.class))); - commandManager.registerConverter(Key.of(BlockVector3.class, Chunk3d.class), - new Chunk3dVectorConverter<>( - intConverter, - Range.closed(2, 3), - cmps -> { - switch (cmps.size()) { - case 2: - return BlockVector3.at(cmps.get(0), 0, cmps.get(1)); - case 3: - return BlockVector3.at(cmps.get(0), cmps.get(1), cmps.get(2)); - default: - break; - } - throw new AssertionError("Expected 2 or 3 components"); - }, - "block vector with x,z or x,y,z" - )); + CommaSeparatedValuesConverter intConverter = CommaSeparatedValuesConverter.wrap(ArgumentConverters.get(TypeToken.of( + int.class))); + commandManager.registerConverter( + Key.of(BlockVector3.class, Chunk3d.class), + new Chunk3dVectorConverter<>( + intConverter, + Range.closed(2, 3), + cmps -> { + switch (cmps.size()) { + case 2: + return BlockVector3.at(cmps.get(0), 0, cmps.get(1)); + case 3: + return BlockVector3.at(cmps.get(0), cmps.get(1), cmps.get(2)); + default: + break; + } + throw new AssertionError("Expected 2 or 3 components"); + }, + "block vector with x,z or x,y,z" + ) + ); } private final ArgumentConverter componentConverter; @@ -65,10 +69,12 @@ public class Chunk3dVectorConverter implements ArgumentConverter { private final Function, T> vectorConstructor; private final String acceptableArguments; - private Chunk3dVectorConverter(ArgumentConverter componentConverter, - Range componentCount, - Function, T> vectorConstructor, - String acceptableArguments) { + private Chunk3dVectorConverter( + ArgumentConverter componentConverter, + Range componentCount, + Function, T> vectorConstructor, + String acceptableArguments + ) { this.componentConverter = componentConverter; this.componentCount = componentCount; this.vectorConstructor = vectorConstructor; @@ -88,9 +94,10 @@ public class Chunk3dVectorConverter implements ArgumentConverter { } if (!componentCount.contains(components.get().size())) { return FailedConversion.from(new IllegalArgumentException( - "Must have " + componentCount + " vector components")); + "Must have " + componentCount + " vector components")); } T vector = vectorConstructor.apply(ImmutableList.copyOf(components.get())); return SuccessfulConversion.fromSingle(vector); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/argument/CommaSeparatedValuesConverter.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/argument/CommaSeparatedValuesConverter.java index ef819f376..8793ccf2e 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/argument/CommaSeparatedValuesConverter.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/argument/CommaSeparatedValuesConverter.java @@ -50,8 +50,10 @@ public class CommaSeparatedValuesConverter implements ArgumentConverter { private final int maximum; private CommaSeparatedValuesConverter(ArgumentConverter delegate, int maximum) { - checkArgument(maximum == -1 || maximum > 1, - "Maximum must be bigger than 1, or exactly -1"); + checkArgument( + maximum == -1 || maximum > 1, + "Maximum must be bigger than 1, or exactly -1" + ); this.delegate = delegate; this.maximum = maximum; } @@ -61,11 +63,11 @@ public class CommaSeparatedValuesConverter implements ArgumentConverter { TextComponent.Builder result = TextComponent.builder(""); if (maximum > -1) { result.append(TextComponent.of("up to ")) - .append(TextComponent.of(maximum)) - .append(space()); + .append(TextComponent.of(maximum)) + .append(space()); } result.append(TextComponent.of("comma separated values of: ")) - .append(delegate.describeAcceptableArguments()); + .append(delegate.describeAcceptableArguments()); return result.build(); } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/argument/DirectionConverter.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/argument/DirectionConverter.java index f945d519b..02729952c 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/argument/DirectionConverter.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/argument/DirectionConverter.java @@ -26,8 +26,8 @@ import com.sk89q.worldedit.math.BlockVector3; import com.sk89q.worldedit.util.Direction; import org.enginehub.piston.CommandManager; -import java.util.Optional; import javax.annotation.Nullable; +import java.util.Optional; public final class DirectionConverter extends AbstractDirectionConverter { @@ -36,14 +36,15 @@ public final class DirectionConverter extends AbstractDirectionConverter @Override public Component describeAcceptableArguments() { return TextComponent.of( - "projectiles, items, paintings, itemframes, boats, minecarts, tnt, xp, or all" + "projectiles, items, paintings, itemframes, boats, minecarts, tnt, xp, or all" ); } @@ -67,4 +67,5 @@ public class EntityRemoverConverter implements ArgumentConverter return FailedConversion.from(e); } } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/argument/EnumConverter.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/argument/EnumConverter.java index 96bf20b68..7efe31b4b 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/argument/EnumConverter.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/argument/EnumConverter.java @@ -31,36 +31,55 @@ import org.enginehub.piston.converter.ArgumentConverter; import org.enginehub.piston.converter.MultiKeyConverter; import org.enginehub.piston.inject.Key; +import javax.annotation.Nullable; import java.util.EnumSet; import java.util.Locale; import java.util.Set; import java.util.function.Function; -import javax.annotation.Nullable; public final class EnumConverter { public static void register(CommandManager commandManager) { - commandManager.registerConverter(Key.of(SelectorChoice.class), - basic(SelectorChoice.class)); - commandManager.registerConverter(Key.of(TreeGenerator.TreeType.class), - full(TreeGenerator.TreeType.class, - t -> ImmutableSet.copyOf(t.lookupKeys), - null)); - commandManager.registerConverter(Key.of(EditSession.ReorderMode.class), - full(EditSession.ReorderMode.class, - r -> ImmutableSet.of(r.getDisplayName()), - null)); - commandManager.registerConverter(Key.of(SideEffect.State.class), + commandManager.registerConverter( + Key.of(SelectorChoice.class), + basic(SelectorChoice.class) + ); + commandManager.registerConverter( + Key.of(TreeGenerator.TreeType.class), + full( + TreeGenerator.TreeType.class, + t -> ImmutableSet.copyOf(t.lookupKeys), + null + ) + ); + commandManager.registerConverter( + Key.of(EditSession.ReorderMode.class), + full( + EditSession.ReorderMode.class, + r -> ImmutableSet.of(r.getDisplayName()), + null + ) + ); + commandManager.registerConverter( + Key.of(SideEffect.State.class), MultiKeyConverter.from( - EnumSet.of(SideEffect.State.OFF, SideEffect.State.ON), - r -> ImmutableSet.of(r.name().toLowerCase(Locale.US)), - null)); - commandManager.registerConverter(Key.of(HookMode.class), - basic(HookMode.class)); - commandManager.registerConverter(Key.of(Scroll.Action.class), - basic(Scroll.Action.class)); - commandManager.registerConverter(Key.of(TracingExtent.Action.class), - basic(TracingExtent.Action.class)); + EnumSet.of(SideEffect.State.OFF, SideEffect.State.ON), + r -> ImmutableSet.of(r.name().toLowerCase(Locale.US)), + null + ) + ); + commandManager.registerConverter( + Key.of(HookMode.class), + basic(HookMode.class) + ); + commandManager.registerConverter( + Key.of(Scroll.Action.class), + basic(Scroll.Action.class) + ); + commandManager.registerConverter( + Key.of(TracingExtent.Action.class), + basic(TracingExtent.Action.class) + ); } private static > ArgumentConverter basic(Class enumClass) { @@ -71,13 +90,15 @@ public final class EnumConverter { return full(enumClass, e -> ImmutableSet.of(e.name().toLowerCase(Locale.ROOT)), unknownValue); } - private static > ArgumentConverter full(Class enumClass, - Function> lookupKeys, - @Nullable E unknownValue) { + private static > ArgumentConverter full( + Class enumClass, + Function> lookupKeys, + @Nullable E unknownValue + ) { return MultiKeyConverter.from( - EnumSet.allOf(enumClass), - lookupKeys, - unknownValue + EnumSet.allOf(enumClass), + lookupKeys, + unknownValue ); } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/argument/ExpressionConverter.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/argument/ExpressionConverter.java index e39ca6c19..0007e70c0 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/argument/ExpressionConverter.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/argument/ExpressionConverter.java @@ -33,4 +33,5 @@ public class ExpressionConverter implements ArgumentConverter { return FailedConversion.from(e); } } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/argument/FactoryConverter.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/argument/FactoryConverter.java index ee2fe801d..88a7b07df 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/argument/FactoryConverter.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/argument/FactoryConverter.java @@ -47,49 +47,61 @@ import org.enginehub.piston.converter.SuccessfulConversion; import org.enginehub.piston.inject.InjectedValueAccess; import org.enginehub.piston.inject.Key; +import javax.annotation.Nullable; import java.util.List; import java.util.function.Consumer; import java.util.function.Function; -import javax.annotation.Nullable; public class FactoryConverter implements ArgumentConverter { public static void register(WorldEdit worldEdit, CommandManager commandManager) { - commandManager.registerConverter(Key.of(Pattern.class), - new FactoryConverter<>(worldEdit, WorldEdit::getPatternFactory, "pattern", null)); - commandManager.registerConverter(Key.of(Mask.class), - new FactoryConverter<>(worldEdit, WorldEdit::getMaskFactory, "mask", null)); - commandManager.registerConverter(Key.of(BaseItem.class), - new FactoryConverter<>(worldEdit, WorldEdit::getItemFactory, "item", null)); + commandManager.registerConverter( + Key.of(Pattern.class), + new FactoryConverter<>(worldEdit, WorldEdit::getPatternFactory, "pattern", null) + ); + commandManager.registerConverter( + Key.of(Mask.class), + new FactoryConverter<>(worldEdit, WorldEdit::getMaskFactory, "mask", null) + ); + commandManager.registerConverter( + Key.of(BaseItem.class), + new FactoryConverter<>(worldEdit, WorldEdit::getItemFactory, "item", null) + ); - commandManager.registerConverter(Key.of(Mask.class, ClipboardMask.class), - new FactoryConverter<>(worldEdit, WorldEdit::getMaskFactory, "mask", - context -> { - try { - ClipboardHolder holder = context.getSession().getClipboard(); - Transform transform = holder.getTransform(); - Extent target; - if (transform.isIdentity()) { - target = holder.getClipboard(); - } else { - target = new BlockTransformExtent(holder.getClipboard(), transform); + commandManager.registerConverter( + Key.of(Mask.class, ClipboardMask.class), + new FactoryConverter<>(worldEdit, WorldEdit::getMaskFactory, "mask", + context -> { + try { + ClipboardHolder holder = context.getSession().getClipboard(); + Transform transform = holder.getTransform(); + Extent target; + if (transform.isIdentity()) { + target = holder.getClipboard(); + } else { + target = new BlockTransformExtent(holder.getClipboard(), transform); + } + context.setExtent(target); + } catch (EmptyClipboardException e) { + throw new IllegalStateException(e); + } } - context.setExtent(target); - } catch (EmptyClipboardException e) { - throw new IllegalStateException(e); - } - })); + ) + ); } private final WorldEdit worldEdit; private final Function> factoryExtractor; private final String description; - @Nullable private final Consumer contextTweaker; + @Nullable + private final Consumer contextTweaker; - private FactoryConverter(WorldEdit worldEdit, - Function> factoryExtractor, - String description, - @Nullable Consumer contextTweaker) { + private FactoryConverter( + WorldEdit worldEdit, + Function> factoryExtractor, + String description, + @Nullable Consumer contextTweaker + ) { this.worldEdit = worldEdit; this.factoryExtractor = factoryExtractor; this.description = description; @@ -99,7 +111,7 @@ public class FactoryConverter implements ArgumentConverter { @Override public ConversionResult convert(String argument, InjectedValueAccess context) { Actor actor = context.injectedValue(Key.of(Actor.class)) - .orElseThrow(() -> new IllegalStateException("No actor")); + .orElseThrow(() -> new IllegalStateException("No actor")); LocalSession session = WorldEdit.getInstance().getSessionManager().get(actor); ParserContext parserContext = new ParserContext(); @@ -124,7 +136,7 @@ public class FactoryConverter implements ArgumentConverter { try { return SuccessfulConversion.fromSingle( - factoryExtractor.apply(worldEdit).parseFromInput(argument, parserContext) + factoryExtractor.apply(worldEdit).parseFromInput(argument, parserContext) ); } catch (InputParseException e) { return FailedConversion.from(e); @@ -140,4 +152,5 @@ public class FactoryConverter implements ArgumentConverter { public Component describeAcceptableArguments() { return TextComponent.of("any " + description); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/argument/HeightConverter.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/argument/HeightConverter.java index 9906e7f74..d5b863ea2 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/argument/HeightConverter.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/argument/HeightConverter.java @@ -46,11 +46,12 @@ public class HeightConverter implements ArgumentConverter { public static final String DEFAULT_VALUE = "default-vertical-height"; private static final ArgumentConverter INT_CONVERTER = - ArgumentConverters.get(TypeToken.of(int.class)); + ArgumentConverters.get(TypeToken.of(int.class)); public static void register(CommandManager commandManager) { - commandManager.registerConverter(Key.of(int.class, VertHeight.class), - new HeightConverter() + commandManager.registerConverter( + Key.of(int.class, VertHeight.class), + new HeightConverter() ); } @@ -66,9 +67,10 @@ public class HeightConverter implements ArgumentConverter { public ConversionResult convert(String argument, InjectedValueAccess context) { if (DEFAULT_VALUE.equals(argument)) { return SuccessfulConversion.fromSingle( - WorldEdit.getInstance().getConfiguration().defaultVerticalHeight + WorldEdit.getInstance().getConfiguration().defaultVerticalHeight ); } return INT_CONVERTER.convert(argument, context); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/argument/LocationConverter.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/argument/LocationConverter.java index c1580f6a5..e027503e4 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/argument/LocationConverter.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/argument/LocationConverter.java @@ -21,7 +21,7 @@ public class LocationConverter implements ArgumentConverter { public static void register(CommandManager commandManager) { commandManager.registerConverter(Key.of(Location.class), LOCATION_CONVERTER); } - + public static final LocationConverter LOCATION_CONVERTER = new LocationConverter(); private final WorldConverter worldConverter = WorldConverter.WORLD_CONVERTER; @@ -66,4 +66,5 @@ public class LocationConverter implements ArgumentConverter { Location location = new Location(world.get().iterator().next(), vector.get().iterator().next().toVector3()); return SuccessfulConversion.fromSingle(location); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/argument/OffsetConverter.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/argument/OffsetConverter.java index 890626000..88b74a05f 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/argument/OffsetConverter.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/argument/OffsetConverter.java @@ -46,14 +46,14 @@ public class OffsetConverter implements ArgumentConverter { public static void register(WorldEdit worldEdit, CommandManager commandManager) { commandManager.registerConverter( - Key.of(BlockVector3.class, Offset.class), - new OffsetConverter(worldEdit) + Key.of(BlockVector3.class, Offset.class), + new OffsetConverter(worldEdit) ); } private final DirectionVectorConverter directionVectorConverter; private final VectorConverter vectorConverter = - VectorConverter.BLOCK_VECTOR_3_CONVERTER; + VectorConverter.BLOCK_VECTOR_3_CONVERTER; private OffsetConverter(WorldEdit worldEdit) { directionVectorConverter = new DirectionVectorConverter(worldEdit, true); @@ -62,23 +62,23 @@ public class OffsetConverter implements ArgumentConverter { @Override public Component describeAcceptableArguments() { return TextComponent.builder() - .append(directionVectorConverter.describeAcceptableArguments()) - .append(", or ") - .append(vectorConverter.describeAcceptableArguments()) - .build(); + .append(directionVectorConverter.describeAcceptableArguments()) + .append(", or ") + .append(vectorConverter.describeAcceptableArguments()) + .build(); } @Override public List getSuggestions(String input, InjectedValueAccess context) { if (input.startsWith("^") && context.injectedValue(Key.of(Actor.class)) - .filter(actor -> actor instanceof Locatable).isPresent()) { + .filter(actor -> actor instanceof Locatable).isPresent()) { return vectorConverter.getSuggestions(input.substring(1), context).stream() - .map(s -> "^" + s) - .collect(Collectors.toList()); + .map(s -> "^" + s) + .collect(Collectors.toList()); } return ImmutableList.copyOf(Iterables.concat( - directionVectorConverter.getSuggestions(input, context), - vectorConverter.getSuggestions(input, context) + directionVectorConverter.getSuggestions(input, context), + vectorConverter.getSuggestions(input, context) )); } @@ -98,15 +98,15 @@ public class OffsetConverter implements ArgumentConverter { // Create an affine transform of the columns (col4 is empty due to no translation) AffineTransform transform = new AffineTransform( - m1.getX(), m2.getX(), m3.getX(), 0, - m1.getY(), m2.getY(), m3.getY(), 0, - m1.getZ(), m2.getZ(), m3.getZ(), 0 + m1.getX(), m2.getX(), m3.getX(), 0, + m1.getY(), m2.getY(), m3.getY(), 0, + m1.getZ(), m2.getZ(), m3.getZ(), 0 ); return transform - .apply(relativeOffset.toVector3()) - // This *MUST* be rounded before converting to block points - .round().toBlockPoint(); + .apply(relativeOffset.toVector3()) + // This *MUST* be rounded before converting to block points + .round().toBlockPoint(); } @Override @@ -115,7 +115,7 @@ public class OffsetConverter implements ArgumentConverter { try { // Looking at a relative vector. Actor actor = context.injectedValue(Key.of(Actor.class)) - .orElseThrow(() -> new IllegalStateException("An actor is required to use relative offsets")); + .orElseThrow(() -> new IllegalStateException("An actor is required to use relative offsets")); if (!(actor instanceof Locatable)) { throw new IllegalStateException("Only a locatable actor may use relative offsets"); @@ -124,16 +124,17 @@ public class OffsetConverter implements ArgumentConverter { Location location = ((Locatable) actor).getLocation(); return vectorConverter.convert(input.substring(1), context).map(blockVector3s -> - blockVector3s.stream() - .map(vector -> rotateToRelative(location, vector)) - .collect(Collectors.toList()) + blockVector3s.stream() + .map(vector -> rotateToRelative(location, vector)) + .collect(Collectors.toList()) ); } catch (IllegalStateException e) { return FailedConversion.from(e); } } else { return directionVectorConverter.convert(input, context) - .orElse(vectorConverter.convert(input, context)); + .orElse(vectorConverter.convert(input, context)); } } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/argument/RegionFactoryConverter.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/argument/RegionFactoryConverter.java index 160c1c1ae..5fd556319 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/argument/RegionFactoryConverter.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/argument/RegionFactoryConverter.java @@ -31,19 +31,21 @@ import org.enginehub.piston.inject.Key; public class RegionFactoryConverter { public static void register(CommandManager commandManager) { - commandManager.registerConverter(Key.of(RegionFactory.class), - MultiKeyConverter.builder( - ImmutableSetMultimap.builder() - .put(new CuboidRegionFactory(), "cuboid") - .put(new SphereRegionFactory(), "sphere") - .putAll(new CylinderRegionFactory(1), "cyl", "cylinder") - .build() - ) - .errorMessage(arg -> "Not a known region type: " + arg) - .build() + commandManager.registerConverter( + Key.of(RegionFactory.class), + MultiKeyConverter.builder( + ImmutableSetMultimap.builder() + .put(new CuboidRegionFactory(), "cuboid") + .put(new SphereRegionFactory(), "sphere") + .putAll(new CylinderRegionFactory(1), "cyl", "cylinder") + .build() + ) + .errorMessage(arg -> "Not a known region type: " + arg) + .build() ); } private RegionFactoryConverter() { } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/argument/RegistryConverter.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/argument/RegistryConverter.java index ad07203a6..098d0a33d 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/argument/RegistryConverter.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/argument/RegistryConverter.java @@ -53,22 +53,22 @@ public final class RegistryConverter implements ArgumentConvert @SuppressWarnings("unchecked") public static void register(CommandManager commandManager) { ImmutableList.of( - BlockType.class, - BlockCategory.class, - ItemType.class, - ItemCategory.class, - BiomeType.class, - EntityType.class, - FluidType.class, - FluidCategory.class, - GameMode.class, - WeatherType.class + BlockType.class, + BlockCategory.class, + ItemType.class, + ItemCategory.class, + BiomeType.class, + EntityType.class, + FluidType.class, + FluidCategory.class, + GameMode.class, + WeatherType.class ) - .stream() - .map(c -> (Class) c) - .forEach(registryType -> - commandManager.registerConverter(Key.of(registryType), from(registryType)) - ); + .stream() + .map(c -> (Class) c) + .forEach(registryType -> + commandManager.registerConverter(Key.of(registryType), from(registryType)) + ); } @SuppressWarnings("unchecked") @@ -102,7 +102,7 @@ public final class RegistryConverter implements ArgumentConvert V result = registry.get(argument.toLowerCase(Locale.ROOT)); return result == null ? FailedConversion.from(new IllegalArgumentException( - "Not a valid " + registry.getName() + ": " + argument)) + "Not a valid " + registry.getName() + ": " + argument)) : SuccessfulConversion.fromSingle(result); } @@ -110,4 +110,5 @@ public final class RegistryConverter implements ArgumentConvert public List getSuggestions(String input, InjectedValueAccess context) { return SuggestionHelper.getRegistrySuggestions(registry, input).collect(Collectors.toList()); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/argument/SideEffectConverter.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/argument/SideEffectConverter.java index 4becfcc65..7008499ab 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/argument/SideEffectConverter.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/argument/SideEffectConverter.java @@ -70,4 +70,5 @@ public class SideEffectConverter implements ArgumentConverter { return FailedConversion.from(e); } } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/argument/VectorConverter.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/argument/VectorConverter.java index 91ddfa2e4..6349f3d21 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/argument/VectorConverter.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/argument/VectorConverter.java @@ -42,39 +42,46 @@ import java.util.function.Function; public class VectorConverter implements ArgumentConverter { private static final CommaSeparatedValuesConverter INT_CONVERTER = - CommaSeparatedValuesConverter.wrap(ArgumentConverters.get(TypeToken.of(int.class))); + CommaSeparatedValuesConverter.wrap(ArgumentConverters.get(TypeToken.of(int.class))); public static final VectorConverter BLOCK_VECTOR_3_CONVERTER = new VectorConverter<>( - INT_CONVERTER, - 3, - cmps -> BlockVector3.at(cmps.get(0), cmps.get(1), cmps.get(2)), - "block vector with x, y, and z" + INT_CONVERTER, + 3, + cmps -> BlockVector3.at(cmps.get(0), cmps.get(1), cmps.get(2)), + "block vector with x, y, and z" ); public static void register(CommandManager commandManager) { - CommaSeparatedValuesConverter doubleConverter = CommaSeparatedValuesConverter.wrap(ArgumentConverters.get(TypeToken.of(double.class))); - commandManager.registerConverter(Key.of(BlockVector2.class), - new VectorConverter<>( - INT_CONVERTER, - 2, - cmps -> BlockVector2.at(cmps.get(0), cmps.get(1)), - "block vector with x and z" - )); - commandManager.registerConverter(Key.of(Vector2.class), - new VectorConverter<>( - doubleConverter, - 2, - cmps -> Vector2.at(cmps.get(0), cmps.get(1)), - "vector with x and z" - )); + CommaSeparatedValuesConverter doubleConverter = CommaSeparatedValuesConverter.wrap(ArgumentConverters.get( + TypeToken.of(double.class))); + commandManager.registerConverter( + Key.of(BlockVector2.class), + new VectorConverter<>( + INT_CONVERTER, + 2, + cmps -> BlockVector2.at(cmps.get(0), cmps.get(1)), + "block vector with x and z" + ) + ); + commandManager.registerConverter( + Key.of(Vector2.class), + new VectorConverter<>( + doubleConverter, + 2, + cmps -> Vector2.at(cmps.get(0), cmps.get(1)), + "vector with x and z" + ) + ); commandManager.registerConverter(Key.of(BlockVector3.class), BLOCK_VECTOR_3_CONVERTER); - commandManager.registerConverter(Key.of(Vector3.class), - new VectorConverter<>( - doubleConverter, - 3, - cmps -> Vector3.at(cmps.get(0), cmps.get(1), cmps.get(2)), - "vector with x, y, and z" - )); + commandManager.registerConverter( + Key.of(Vector3.class), + new VectorConverter<>( + doubleConverter, + 3, + cmps -> Vector3.at(cmps.get(0), cmps.get(1), cmps.get(2)), + "vector with x, y, and z" + ) + ); } private final ArgumentConverter componentConverter; @@ -83,10 +90,12 @@ public class VectorConverter implements ArgumentConverter { private final String acceptableArguments; - private VectorConverter(ArgumentConverter componentConverter, - int componentCount, - Function, T> vectorConstructor, - String acceptableArguments) { + private VectorConverter( + ArgumentConverter componentConverter, + int componentCount, + Function, T> vectorConstructor, + String acceptableArguments + ) { this.componentConverter = componentConverter; this.componentCount = componentCount; this.vectorConstructor = vectorConstructor; @@ -106,9 +115,10 @@ public class VectorConverter implements ArgumentConverter { } if (components.get().size() != componentCount) { return FailedConversion.from(new IllegalArgumentException( - "Must have exactly " + componentCount + " vector components")); + "Must have exactly " + componentCount + " vector components")); } T vector = vectorConstructor.apply(ImmutableList.copyOf(components.get())); return SuccessfulConversion.fromSingle(vector); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/argument/WorldConverter.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/argument/WorldConverter.java index 9fb9d586d..fd043d440 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/argument/WorldConverter.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/argument/WorldConverter.java @@ -41,7 +41,7 @@ public class WorldConverter implements ArgumentConverter { public static void register(CommandManager commandManager) { commandManager.registerConverter(Key.of(World.class), WORLD_CONVERTER); } - + //FAWE start - Accessed by LocationConverter public static final WorldConverter WORLD_CONVERTER = new WorldConverter(); //FAWE end @@ -80,4 +80,5 @@ public class WorldConverter implements ArgumentConverter { "Not a valid world: " + s)) : SuccessfulConversion.fromSingle(result); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/argument/ZonedDateTimeConverter.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/argument/ZonedDateTimeConverter.java index f86f5e49b..f6575d1f1 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/argument/ZonedDateTimeConverter.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/argument/ZonedDateTimeConverter.java @@ -51,11 +51,12 @@ public class ZonedDateTimeConverter implements ArgumentConverter @Override public ConversionResult convert(String argument, InjectedValueAccess context) { LocalSession session = context.injectedValue(Key.of(LocalSession.class)) - .orElseThrow(() -> new IllegalStateException("Need a local session")); + .orElseThrow(() -> new IllegalStateException("Need a local session")); Calendar date = session.detectDate(argument); if (date == null) { return FailedConversion.from(new IllegalArgumentException("Not a date: " + argument)); } return SuccessfulConversion.fromSingle(date.toInstant().atZone(ZoneOffset.UTC)); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/factory/ItemUseFactory.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/factory/ItemUseFactory.java index ef159810d..9856b90e6 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/factory/ItemUseFactory.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/factory/ItemUseFactory.java @@ -29,6 +29,7 @@ import com.sk89q.worldedit.util.Direction; import com.sk89q.worldedit.world.World; public final class ItemUseFactory implements Contextual { + private final BaseItem item; private final Direction dir; @@ -51,4 +52,5 @@ public final class ItemUseFactory implements Contextual { public String toString() { return "application of the item " + item.getType(); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/factory/ReplaceFactory.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/factory/ReplaceFactory.java index 12b5f298d..b46dd5a92 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/factory/ReplaceFactory.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/factory/ReplaceFactory.java @@ -29,6 +29,7 @@ import com.sk89q.worldedit.function.pattern.Pattern; import static com.sk89q.worldedit.util.GuavaUtil.firstNonNull; public class ReplaceFactory implements Contextual { + private final Pattern fill; public ReplaceFactory(Pattern fill) { @@ -38,12 +39,14 @@ public class ReplaceFactory implements Contextual { @Override public RegionFunction createFromContext(EditContext context) { return new BlockReplace( - firstNonNull(context.getDestination(), new NullExtent()), - firstNonNull(context.getFill(), fill)); + firstNonNull(context.getDestination(), new NullExtent()), + firstNonNull(context.getFill(), fill) + ); } @Override public String toString() { return "replace blocks"; } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/factory/TreeGeneratorFactory.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/factory/TreeGeneratorFactory.java index f6effd113..1e6b06d7b 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/factory/TreeGeneratorFactory.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/factory/TreeGeneratorFactory.java @@ -26,6 +26,7 @@ import com.sk89q.worldedit.function.generator.ForestGenerator; import com.sk89q.worldedit.util.TreeGenerator; public final class TreeGeneratorFactory implements Contextual { + private final TreeGenerator.TreeType type; public TreeGeneratorFactory(TreeGenerator.TreeType type) { @@ -41,4 +42,5 @@ public final class TreeGeneratorFactory implements Contextual { public String toString() { return "tree of type " + type; } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/BlockDataCyler.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/BlockDataCyler.java index 8a6e25d42..c776dc38d 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/BlockDataCyler.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/BlockDataCyler.java @@ -36,11 +36,11 @@ import com.sk89q.worldedit.util.formatting.text.TextComponent; import com.sk89q.worldedit.world.World; import com.sk89q.worldedit.world.block.BlockState; +import javax.annotation.Nullable; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.UUID; -import javax.annotation.Nullable; /** * A mode that cycles the data values of supported blocks. @@ -54,8 +54,10 @@ public class BlockDataCyler implements DoubleActionBlockTool { private final Map> selectedProperties = new HashMap<>(); - private boolean handleCycle(LocalConfiguration config, Player player, LocalSession session, - Location clicked, boolean forward) { + private boolean handleCycle( + LocalConfiguration config, Player player, LocalSession session, + Location clicked, boolean forward + ) { World world = (World) clicked.getExtent(); @@ -117,12 +119,26 @@ public class BlockDataCyler implements DoubleActionBlockTool { } @Override - public boolean actPrimary(Platform server, LocalConfiguration config, Player player, LocalSession session, Location clicked, @Nullable Direction face) { + public boolean actPrimary( + Platform server, + LocalConfiguration config, + Player player, + LocalSession session, + Location clicked, + @Nullable Direction face + ) { return handleCycle(config, player, session, clicked, true); } @Override - public boolean actSecondary(Platform server, LocalConfiguration config, Player player, LocalSession session, Location clicked, @Nullable Direction face) { + public boolean actSecondary( + Platform server, + LocalConfiguration config, + Player player, + LocalSession session, + Location clicked, + @Nullable Direction face + ) { return handleCycle(config, player, session, clicked, false); } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/BlockReplacer.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/BlockReplacer.java index 7c74b0749..5ee353957 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/BlockReplacer.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/BlockReplacer.java @@ -53,7 +53,14 @@ public class BlockReplacer implements DoubleActionBlockTool { } @Override - public boolean actPrimary(Platform server, LocalConfiguration config, Player player, LocalSession session, Location clicked, @Nullable Direction face) { + public boolean actPrimary( + Platform server, + LocalConfiguration config, + Player player, + LocalSession session, + Location clicked, + @Nullable Direction face + ) { BlockBag bag = session.getBlockBag(player); try (EditSession editSession = session.createEditSession(player)) { @@ -76,7 +83,14 @@ public class BlockReplacer implements DoubleActionBlockTool { @Override - public boolean actSecondary(Platform server, LocalConfiguration config, Player player, LocalSession session, Location clicked, @Nullable Direction face) { + public boolean actSecondary( + Platform server, + LocalConfiguration config, + Player player, + LocalSession session, + Location clicked, + @Nullable Direction face + ) { BaseBlock targetBlock = player.getWorld().getFullBlock(clicked.toVector().toBlockPoint()); if (targetBlock != null) { diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/BlockTool.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/BlockTool.java index 1579bb37e..36c6f44f1 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/BlockTool.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/BlockTool.java @@ -37,33 +37,45 @@ public interface BlockTool extends Tool { * * @return true to cancel the original event which triggered this action (if possible) * @deprecated New subclasses should override - * {@link #actPrimary(Platform, LocalConfiguration, Player, LocalSession, Location, Direction)} - * instead + * {@link #actPrimary(Platform, LocalConfiguration, Player, LocalSession, Location, Direction)} + * instead */ @Deprecated - default boolean actPrimary(Platform server, LocalConfiguration config, Player player, LocalSession session, Location clicked) { + default boolean actPrimary( + Platform server, + LocalConfiguration config, + Player player, + LocalSession session, + Location clicked + ) { return actPrimary(server, config, player, session, clicked, null); } /** * Perform the primary action of this tool. * - * @param server The platform - * @param config The config instance - * @param player The player + * @param server The platform + * @param config The config instance + * @param player The player * @param session The local session * @param clicked The location that was clicked - * @param face The face that was clicked + * @param face The face that was clicked * @return true to cancel the original event which triggered this action (if possible) - * @apiNote This must be overridden by new subclasses. See {@link NonAbstractForCompatibility} - * for details */ @NonAbstractForCompatibility( - delegateName = "actPrimary", - delegateParams = { Platform.class, LocalConfiguration.class, Player.class, LocalSession.class, Location.class } + delegateName = "actPrimary", + delegateParams = {Platform.class, LocalConfiguration.class, Player.class, LocalSession.class, Location.class} ) - default boolean actPrimary(Platform server, LocalConfiguration config, Player player, LocalSession session, Location clicked, @Nullable Direction face) { + default boolean actPrimary( + Platform server, + LocalConfiguration config, + Player player, + LocalSession session, + Location clicked, + @Nullable Direction face + ) { DeprecationUtil.checkDelegatingOverride(getClass()); return actPrimary(server, config, player, session, clicked); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/BrushTool.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/BrushTool.java index 272a0aed8..c15d4dc6f 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/BrushTool.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/BrushTool.java @@ -19,13 +19,13 @@ package com.sk89q.worldedit.command.tool; -import com.fastasyncworldedit.core.configuration.Caption; -import com.fastasyncworldedit.core.command.tool.brush.BrushSettings; import com.fastasyncworldedit.core.command.tool.MovableTool; import com.fastasyncworldedit.core.command.tool.ResettableTool; import com.fastasyncworldedit.core.command.tool.TargetMode; +import com.fastasyncworldedit.core.command.tool.brush.BrushSettings; import com.fastasyncworldedit.core.command.tool.scroll.Scroll; import com.fastasyncworldedit.core.command.tool.scroll.ScrollTool; +import com.fastasyncworldedit.core.configuration.Caption; import com.fastasyncworldedit.core.extent.ResettableExtent; import com.fastasyncworldedit.core.function.mask.MaskedTargetBlock; import com.fastasyncworldedit.core.function.pattern.PatternTraverser; @@ -54,10 +54,10 @@ import com.sk89q.worldedit.session.request.Request; import com.sk89q.worldedit.util.Location; import com.sk89q.worldedit.world.block.BlockType; +import javax.annotation.Nullable; import java.io.IOException; import java.io.ObjectInputStream; import java.io.Serializable; -import javax.annotation.Nullable; import static com.google.common.base.Preconditions.checkNotNull; @@ -65,8 +65,8 @@ import static com.google.common.base.Preconditions.checkNotNull; * Builds a shape at the place being looked at. */ public class BrushTool - //FAWE start - All implements but TraceTool - implements DoubleActionTraceTool, ScrollTool, MovableTool, ResettableTool, Serializable, TraceTool { + //FAWE start - All implements but TraceTool + implements DoubleActionTraceTool, ScrollTool, MovableTool, ResettableTool, Serializable, TraceTool { // TODO: // Serialize methods // serialize BrushSettings (primary and secondary only if different) @@ -74,7 +74,8 @@ public class BrushTool enum BrushAction { - PRIMARY, SECONDARY + PRIMARY, + SECONDARY } //FAWE end @@ -256,6 +257,7 @@ public class BrushTool } //FAWE start + /** * Set the block filter used for identifying blocks to replace. * @@ -270,7 +272,7 @@ public class BrushTool /** * Set the brush. * - * @param brush the brush + * @param brush the brush * @param permission the permission */ public void setBrush(Brush brush, String permission) { @@ -357,8 +359,10 @@ public class BrushTool } @Override - public boolean actPrimary(Platform server, LocalConfiguration config, Player player, - LocalSession session) { + public boolean actPrimary( + Platform server, LocalConfiguration config, Player player, + LocalSession session + ) { //FAWE start - Use logic previously declared as FAWE-like return act(BrushAction.PRIMARY, player, session); //FAWE end @@ -376,7 +380,7 @@ public class BrushTool pitch = 23 - (pitch / 4); d += (int) (Math.sin(Math.toRadians(pitch)) * 50); final Vector3 vector = loc.getDirection().withY(0).normalize().multiply(d) - .add(loc.getX(), loc.getY(), loc.getZ()); + .add(loc.getX(), loc.getY(), loc.getZ()); return offset(vector, loc).toBlockPoint(); } case TARGET_POINT_HEIGHT: { @@ -433,7 +437,7 @@ public class BrushTool if (!current.canUse(player)) { player.print( - Caption.of("fawe.error.no-perm", StringMan.join(current.getPermissions(), ","))); + Caption.of("fawe.error.no-perm", StringMan.join(current.getPermissions(), ","))); return false; } try (EditSession editSession = session.createEditSession(player, current.toString())) { @@ -491,13 +495,14 @@ public class BrushTool } @Override - public boolean actSecondary(Platform server, LocalConfiguration config, Player player, - LocalSession session) { + public boolean actSecondary( + Platform server, LocalConfiguration config, Player player, + LocalSession session + ) { return act(BrushAction.SECONDARY, player, session); } - public void setScrollAction(Scroll scrollAction) { this.getContext().setScrollAction(scrollAction); update(); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/DistanceWand.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/DistanceWand.java index 17b3d6413..8706a9a15 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/DistanceWand.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/DistanceWand.java @@ -85,4 +85,5 @@ public class DistanceWand extends BrushTool implements DoubleActionTraceTool { return target; } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/DoubleActionBlockTool.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/DoubleActionBlockTool.java index 7efca8220..c335e92ad 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/DoubleActionBlockTool.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/DoubleActionBlockTool.java @@ -40,32 +40,43 @@ public interface DoubleActionBlockTool extends BlockTool { * * @return true to cancel the original event which triggered this action (if possible) * @deprecated New subclasses must override - * {@link #actSecondary(Platform, LocalConfiguration, Player, LocalSession, Location, Direction)} - * instead + * {@link #actSecondary(Platform, LocalConfiguration, Player, LocalSession, Location, Direction)} + * instead */ @Deprecated - default boolean actSecondary(Platform server, LocalConfiguration config, Player player, LocalSession session, Location clicked) { + default boolean actSecondary( + Platform server, + LocalConfiguration config, + Player player, + LocalSession session, + Location clicked + ) { return actSecondary(server, config, player, session, clicked, null); } /** * Perform the secondary action of this block tool. * - * @param server The platform - * @param config The config instance - * @param player The player + * @param server The platform + * @param config The config instance + * @param player The player * @param session The local session * @param clicked The location that was clicked - * @param face The face that was clicked + * @param face The face that was clicked * @return true to cancel the original event which triggered this action (if possible) - * @apiNote This must be overridden by new subclasses. See {@link NonAbstractForCompatibility} - * for details */ @NonAbstractForCompatibility( - delegateName = "actSecondary", - delegateParams = { Platform.class, LocalConfiguration.class, Player.class, LocalSession.class, Location.class } + delegateName = "actSecondary", + delegateParams = {Platform.class, LocalConfiguration.class, Player.class, LocalSession.class, Location.class} ) - default boolean actSecondary(Platform server, LocalConfiguration config, Player player, LocalSession session, Location clicked, @Nullable Direction face) { + default boolean actSecondary( + Platform server, + LocalConfiguration config, + Player player, + LocalSession session, + Location clicked, + @Nullable Direction face + ) { DeprecationUtil.checkDelegatingOverride(getClass()); return actSecondary(server, config, player, session, clicked); } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/DoubleActionTraceTool.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/DoubleActionTraceTool.java index fd79ed9fc..41c438683 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/DoubleActionTraceTool.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/DoubleActionTraceTool.java @@ -32,9 +32,9 @@ public interface DoubleActionTraceTool extends TraceTool { /** * Perform the secondary function of this tool. * - * @param server The platform - * @param config The config instance - * @param player The player + * @param server The platform + * @param config The config instance + * @param player The player * @param session The local session * @return true to cancel the original event which triggered this action (if possible) */ diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/FloatingTreeRemover.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/FloatingTreeRemover.java index 428444124..45e93e9cc 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/FloatingTreeRemover.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/FloatingTreeRemover.java @@ -36,8 +36,8 @@ import com.sk89q.worldedit.world.block.BlockCategories; import com.sk89q.worldedit.world.block.BlockState; import com.sk89q.worldedit.world.block.BlockType; import com.sk89q.worldedit.world.block.BlockTypes; -import javax.annotation.Nullable; +import javax.annotation.Nullable; import java.util.Iterator; import java.util.Set; @@ -46,6 +46,7 @@ import java.util.Set; * to anything else). */ public class FloatingTreeRemover implements BlockTool { + private final int rangeSq; public FloatingTreeRemover() { @@ -67,9 +68,11 @@ public class FloatingTreeRemover implements BlockTool { } @Override - public boolean actPrimary(Platform server, LocalConfiguration config, - Player player, LocalSession session, Location clicked, - @Nullable Direction face) { + public boolean actPrimary( + Platform server, LocalConfiguration config, + Player player, LocalSession session, Location clicked, + @Nullable Direction face + ) { final World world = (World) clicked.getExtent(); final BlockState state = world.getBlock(clicked.toVector().toBlockPoint()); @@ -115,7 +118,7 @@ public class FloatingTreeRemover implements BlockTool { /** * Helper method. * - * @param world the world that contains the tree + * @param world the world that contains the tree * @param origin any point contained in the floating tree * @return a set containing all blocks in the tree/shroom or null if this is not a floating tree/shroom. */ @@ -143,7 +146,7 @@ public class FloatingTreeRemover implements BlockTool { if (visited.add(next)) { BlockState state = world.getBlock(next); if (state.getBlockType().getMaterial().isAir() - || state.getBlockType() == BlockTypes.SNOW) { + || state.getBlockType() == BlockTypes.SNOW) { continue; } if (isTreeBlock(state.getBlockType())) { @@ -152,7 +155,7 @@ public class FloatingTreeRemover implements BlockTool { // we hit something solid - evaluate where we came from final BlockType currentType = world.getBlock(current).getBlockType(); if (!BlockCategories.LEAVES.contains(currentType) - && currentType != BlockTypes.VINE) { + && currentType != BlockTypes.VINE) { // log/shroom touching a wall/the ground => this is not a floating tree, bail out return null; } @@ -164,4 +167,5 @@ public class FloatingTreeRemover implements BlockTool { return visited; } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/FloodFillTool.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/FloodFillTool.java index 83da1b8c4..d4d6a65d8 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/FloodFillTool.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/FloodFillTool.java @@ -38,8 +38,8 @@ import com.sk89q.worldedit.util.Location; import com.sk89q.worldedit.world.World; import com.sk89q.worldedit.world.block.BlockType; import com.sk89q.worldedit.world.block.BlockTypes; -import javax.annotation.Nullable; +import javax.annotation.Nullable; import java.util.Set; /** @@ -61,7 +61,14 @@ public class FloodFillTool implements BlockTool { } @Override - public boolean actPrimary(Platform server, LocalConfiguration config, Player player, LocalSession session, Location clicked, @Nullable Direction face) { + public boolean actPrimary( + Platform server, + LocalConfiguration config, + Player player, + LocalSession session, + Location clicked, + @Nullable Direction face + ) { World world = (World) clicked.getExtent(); BlockVector3 origin = clicked.toVector().toBlockPoint(); @@ -94,8 +101,10 @@ public class FloodFillTool implements BlockTool { return true; } - private void recurse(EditSession editSession, BlockVector3 pos, BlockVector3 origin, int size, BlockType initialType, - Set visited) throws MaxChangedBlocksException { + private void recurse( + EditSession editSession, BlockVector3 pos, BlockVector3 origin, int size, BlockType initialType, + Set visited + ) throws MaxChangedBlocksException { if (origin.distance(pos) > size || visited.contains(pos)) { return; @@ -110,17 +119,23 @@ public class FloodFillTool implements BlockTool { } recurse(editSession, pos.add(1, 0, 0), - origin, size, initialType, visited); + origin, size, initialType, visited + ); recurse(editSession, pos.add(-1, 0, 0), - origin, size, initialType, visited); + origin, size, initialType, visited + ); recurse(editSession, pos.add(0, 0, 1), - origin, size, initialType, visited); + origin, size, initialType, visited + ); recurse(editSession, pos.add(0, 0, -1), - origin, size, initialType, visited); + origin, size, initialType, visited + ); recurse(editSession, pos.add(0, 1, 0), - origin, size, initialType, visited); + origin, size, initialType, visited + ); recurse(editSession, pos.add(0, -1, 0), - origin, size, initialType, visited); + origin, size, initialType, visited + ); } } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/InvalidToolBindException.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/InvalidToolBindException.java index a11e5c840..a95128515 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/InvalidToolBindException.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/InvalidToolBindException.java @@ -20,8 +20,8 @@ package com.sk89q.worldedit.command.tool; import com.sk89q.worldedit.WorldEditException; -import com.sk89q.worldedit.world.item.ItemType; import com.sk89q.worldedit.util.formatting.text.Component; +import com.sk89q.worldedit.world.item.ItemType; public class InvalidToolBindException extends WorldEditException { diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/NavigationWand.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/NavigationWand.java index 1dce4bb87..a41e6cc7b 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/NavigationWand.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/NavigationWand.java @@ -29,29 +29,29 @@ import com.sk89q.worldedit.util.Location; //FAWE start - enum-ized public enum NavigationWand implements DoubleActionTraceTool { - INSTANCE; + INSTANCE; //FAWE end private static final String PRIMARY_PERMISSION = "worldedit.navigation.thru.tool"; private static final String SECONDARY_PERMISSION = "worldedit.navigation.jumpto.tool"; - @Override - public boolean actSecondary(Platform server, LocalConfiguration config, Player player, LocalSession session) { - if (!player.hasPermission(SECONDARY_PERMISSION)) { - return false; - } - final int maxDist = config.navigationWandMaxDistance; - if (maxDist <= 0) { - return false; - } - Location pos = player.getSolidBlockTrace(maxDist); - if (pos != null) { - player.findFreePosition(pos); - } else { - player.print(Caption.of("worldedit.jumpto.none")); - } - return true; - } + @Override + public boolean actSecondary(Platform server, LocalConfiguration config, Player player, LocalSession session) { + if (!player.hasPermission(SECONDARY_PERMISSION)) { + return false; + } + final int maxDist = config.navigationWandMaxDistance; + if (maxDist <= 0) { + return false; + } + Location pos = player.getSolidBlockTrace(maxDist); + if (pos != null) { + player.findFreePosition(pos); + } else { + player.print(Caption.of("worldedit.jumpto.none")); + } + return true; + } @Override public boolean actPrimary(Platform server, LocalConfiguration config, Player player, LocalSession session) { diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/QueryTool.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/QueryTool.java index 8135037b8..42d372c06 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/QueryTool.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/QueryTool.java @@ -36,6 +36,7 @@ import com.sk89q.worldedit.util.formatting.text.format.TextColor; import com.sk89q.worldedit.world.World; import com.sk89q.worldedit.world.block.BaseBlock; import com.sk89q.worldedit.world.registry.LegacyMapper; + import javax.annotation.Nullable; /** @@ -49,8 +50,10 @@ public class QueryTool implements BlockTool { } @Override - public boolean actPrimary(Platform server, LocalConfiguration config, Player player, LocalSession session, Location clicked, @Nullable - Direction face) { + public boolean actPrimary( + Platform server, LocalConfiguration config, Player player, LocalSession session, Location clicked, @Nullable + Direction face + ) { World world = (World) clicked.getExtent(); EditSession editSession = session.createEditSession(player); @@ -61,21 +64,21 @@ public class QueryTool implements BlockTool { builder.append(TextComponent.of("@" + clicked.toVector().toBlockPoint() + ": ", TextColor.BLUE)); builder.append(block.getBlockType().getRichName().color(TextColor.YELLOW)); builder.append(TextComponent.of(" (" + block + ") ", TextColor.GRAY) - .hoverEvent(HoverEvent.of(HoverEvent.Action.SHOW_TEXT, Caption.of("worldedit.tool.info.blockstate.hover")))); + .hoverEvent(HoverEvent.of(HoverEvent.Action.SHOW_TEXT, Caption.of("worldedit.tool.info.blockstate.hover")))); final int internalId = BlockStateIdAccess.getBlockStateId(block.toImmutableState()); if (BlockStateIdAccess.isValidInternalId(internalId)) { builder.append(TextComponent.of(" (" + internalId + ") ", TextColor.DARK_GRAY) - .hoverEvent(HoverEvent.of(HoverEvent.Action.SHOW_TEXT, Caption.of("worldedit.tool.info.internalid.hover")))); + .hoverEvent(HoverEvent.of(HoverEvent.Action.SHOW_TEXT, Caption.of("worldedit.tool.info.internalid.hover")))); } final int[] legacy = LegacyMapper.getInstance().getLegacyFromBlock(block.toImmutableState()); if (legacy != null) { builder.append(TextComponent.of(" (" + legacy[0] + ":" + legacy[1] + ") ", TextColor.DARK_GRAY) - .hoverEvent(HoverEvent.of(HoverEvent.Action.SHOW_TEXT, Caption.of("worldedit.tool.info.legacy.hover")))); + .hoverEvent(HoverEvent.of(HoverEvent.Action.SHOW_TEXT, Caption.of("worldedit.tool.info.legacy.hover")))); } builder.append(TextComponent.of(" (" + world.getBlockLightLevel(blockPoint) + "/" - + world.getBlockLightLevel(blockPoint.add(0, 1, 0)) + ")", TextColor.WHITE) - .hoverEvent(HoverEvent.of(HoverEvent.Action.SHOW_TEXT, Caption.of("worldedit.tool.info.light.hover")))); + + world.getBlockLightLevel(blockPoint.add(0, 1, 0)) + ")", TextColor.WHITE) + .hoverEvent(HoverEvent.of(HoverEvent.Action.SHOW_TEXT, Caption.of("worldedit.tool.info.light.hover")))); player.print(builder.build()); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/RecursivePickaxe.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/RecursivePickaxe.java index 8141a38b6..b49c547a1 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/RecursivePickaxe.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/RecursivePickaxe.java @@ -35,8 +35,8 @@ import com.sk89q.worldedit.util.Location; import com.sk89q.worldedit.world.World; import com.sk89q.worldedit.world.block.BlockType; import com.sk89q.worldedit.world.block.BlockTypes; -import javax.annotation.Nullable; +import javax.annotation.Nullable; import java.util.Set; /** @@ -57,7 +57,14 @@ public class RecursivePickaxe implements BlockTool { } @Override - public boolean actPrimary(Platform server, LocalConfiguration config, Player player, LocalSession session, Location clicked, @Nullable Direction face) { + public boolean actPrimary( + Platform server, + LocalConfiguration config, + Player player, + LocalSession session, + Location clicked, + @Nullable Direction face + ) { World world = (World) clicked.getExtent(); final BlockVector3 pos = clicked.toBlockPoint(); @@ -92,8 +99,10 @@ public class RecursivePickaxe implements BlockTool { return true; } - private static void recurse(Platform server, EditSession editSession, World world, BlockVector3 pos, - BlockVector3 origin, double size, BlockType initialType, Set visited) throws MaxChangedBlocksException { + private static void recurse( + Platform server, EditSession editSession, World world, BlockVector3 pos, + BlockVector3 origin, double size, BlockType initialType, Set visited + ) throws MaxChangedBlocksException { final double distanceSq = origin.distanceSq(pos); if (distanceSq > size * size || visited.contains(pos)) { @@ -111,17 +120,23 @@ public class RecursivePickaxe implements BlockTool { world.queueBlockBreakEffect(server, pos, initialType, distanceSq); recurse(server, editSession, world, pos.add(1, 0, 0), - origin, size, initialType, visited); + origin, size, initialType, visited + ); recurse(server, editSession, world, pos.add(-1, 0, 0), - origin, size, initialType, visited); + origin, size, initialType, visited + ); recurse(server, editSession, world, pos.add(0, 0, 1), - origin, size, initialType, visited); + origin, size, initialType, visited + ); recurse(server, editSession, world, pos.add(0, 0, -1), - origin, size, initialType, visited); + origin, size, initialType, visited + ); recurse(server, editSession, world, pos.add(0, 1, 0), - origin, size, initialType, visited); + origin, size, initialType, visited + ); recurse(server, editSession, world, pos.add(0, -1, 0), - origin, size, initialType, visited); + origin, size, initialType, visited + ); } } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/SelectionWand.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/SelectionWand.java index 0e4af72bd..f1e8c2e04 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/SelectionWand.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/SelectionWand.java @@ -43,7 +43,14 @@ public enum SelectionWand implements DoubleActionBlockTool { private static final Logger LOGGER = LogManagerCompat.getLogger(); @Override - public boolean actSecondary(Platform server, LocalConfiguration config, Player player, LocalSession session, Location clicked, @Nullable Direction face) { + public boolean actSecondary( + Platform server, + LocalConfiguration config, + Player player, + LocalSession session, + Location clicked, + @Nullable Direction face + ) { RegionSelector selector = session.getRegionSelector(player.getWorld()); BlockVector3 blockPoint = clicked.toVector().toBlockPoint(); @@ -59,7 +66,14 @@ public enum SelectionWand implements DoubleActionBlockTool { } @Override - public boolean actPrimary(Platform server, LocalConfiguration config, Player player, LocalSession session, Location clicked, @Nullable Direction face) { + public boolean actPrimary( + Platform server, + LocalConfiguration config, + Player player, + LocalSession session, + Location clicked, + @Nullable Direction face + ) { RegionSelector selector = session.getRegionSelector(player.getWorld()); BlockVector3 blockPoint = clicked.toVector().toBlockPoint(); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/SinglePickaxe.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/SinglePickaxe.java index 0f77e54f0..216ac0042 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/SinglePickaxe.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/SinglePickaxe.java @@ -47,7 +47,14 @@ public class SinglePickaxe implements BlockTool { } @Override - public boolean actPrimary(Platform server, LocalConfiguration config, Player player, LocalSession session, Location clicked, @Nullable Direction face) { + public boolean actPrimary( + Platform server, + LocalConfiguration config, + Player player, + LocalSession session, + Location clicked, + @Nullable Direction face + ) { World world = (World) clicked.getExtent(); BlockVector3 blockPoint = clicked.toBlockPoint(); final BlockType blockType = world.getBlock(blockPoint).getBlockType(); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/StackTool.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/StackTool.java index b9ad98fc6..aeaeff9b7 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/StackTool.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/StackTool.java @@ -46,7 +46,14 @@ public class StackTool implements BlockTool { } @Override - public boolean actPrimary(Platform server, LocalConfiguration config, Player player, LocalSession session, Location clicked, @Nullable Direction face) { + public boolean actPrimary( + Platform server, + LocalConfiguration config, + Player player, + LocalSession session, + Location clicked, + @Nullable Direction face + ) { if (face == null) { return false; } @@ -82,4 +89,5 @@ public class StackTool implements BlockTool { public boolean canUse(Actor actor) { return actor.hasPermission("worldedit.tool.stack"); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/TraceTool.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/TraceTool.java index 7addce0b5..cf0bfa5ff 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/TraceTool.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/TraceTool.java @@ -29,11 +29,12 @@ public interface TraceTool extends Tool { /** * Perform the primary action of this trace tool. * - * @param server The platform - * @param config The config instance - * @param player The player + * @param server The platform + * @param config The config instance + * @param player The player * @param session The local session * @return true to cancel the original event which triggered this action (if possible) */ boolean actPrimary(Platform server, LocalConfiguration config, Player player, LocalSession session); + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/TreePlanter.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/TreePlanter.java index 3d1da4d04..1f52ff103 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/TreePlanter.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/TreePlanter.java @@ -51,7 +51,14 @@ public class TreePlanter implements BlockTool { } @Override - public boolean actPrimary(Platform server, LocalConfiguration config, Player player, LocalSession session, Location clicked, @Nullable Direction face) { + public boolean actPrimary( + Platform server, + LocalConfiguration config, + Player player, + LocalSession session, + Location clicked, + @Nullable Direction face + ) { try (EditSession editSession = session.createEditSession(player)) { try { diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/brush/Brush.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/brush/Brush.java index d7ff8c9e6..8efe2ab77 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/brush/Brush.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/brush/Brush.java @@ -33,9 +33,9 @@ public interface Brush { * Build the object. * * @param editSession the {@code EditSession} - * @param position the position - * @param pattern the pattern - * @param size the size of the brush + * @param position the position + * @param pattern the pattern + * @param size the size of the brush * @throws MaxChangedBlocksException if the maximum block change limit is exceeded */ void build(EditSession editSession, BlockVector3 position, Pattern pattern, double size) throws MaxChangedBlocksException; diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/brush/ButcherBrush.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/brush/ButcherBrush.java index 32b2b9f9f..bc6fe19f5 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/brush/ButcherBrush.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/brush/ButcherBrush.java @@ -40,7 +40,8 @@ public class ButcherBrush implements Brush { } @Override - public void build(EditSession editSession, BlockVector3 position, Pattern pattern, double size) throws MaxChangedBlocksException { + public void build(EditSession editSession, BlockVector3 position, Pattern pattern, double size) throws + MaxChangedBlocksException { CylinderRegion region = CylinderRegion.createRadius(editSession, position, size); List entities = editSession.getEntities(region); Operations.completeLegacy(new EntityVisitor(entities.iterator(), flags.createFunction())); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/brush/ClipboardBrush.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/brush/ClipboardBrush.java index 318ef9ed5..aac36df2f 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/brush/ClipboardBrush.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/brush/ClipboardBrush.java @@ -48,8 +48,10 @@ public class ClipboardBrush implements Brush { this.sourceMask = null; } - public ClipboardBrush(ClipboardHolder holder, boolean ignoreAirBlocks, boolean usingOrigin, boolean pasteEntities, - boolean pasteBiomes, Mask sourceMask) { + public ClipboardBrush( + ClipboardHolder holder, boolean ignoreAirBlocks, boolean usingOrigin, boolean pasteEntities, + boolean pasteBiomes, Mask sourceMask + ) { this.holder = holder; this.ignoreAirBlocks = ignoreAirBlocks; this.usingOrigin = usingOrigin; @@ -59,7 +61,8 @@ public class ClipboardBrush implements Brush { } @Override - public void build(EditSession editSession, BlockVector3 position, Pattern pattern, double size) throws MaxChangedBlocksException { + public void build(EditSession editSession, BlockVector3 position, Pattern pattern, double size) throws + MaxChangedBlocksException { Clipboard clipboard = holder.getClipboard(); Region region = clipboard.getRegion(); BlockVector3 centerOffset = region.getCenter().toBlockPoint().subtract(clipboard.getOrigin()); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/brush/CylinderBrush.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/brush/CylinderBrush.java index 9217066f6..323e210b9 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/brush/CylinderBrush.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/brush/CylinderBrush.java @@ -34,7 +34,8 @@ public class CylinderBrush implements Brush { } @Override - public void build(EditSession editSession, BlockVector3 position, Pattern pattern, double size) throws MaxChangedBlocksException { + public void build(EditSession editSession, BlockVector3 position, Pattern pattern, double size) throws + MaxChangedBlocksException { if (pattern == null) { pattern = BlockTypes.COBBLESTONE.getDefaultState(); } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/brush/GravityBrush.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/brush/GravityBrush.java index e85ce80a9..72bba1d95 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/brush/GravityBrush.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/brush/GravityBrush.java @@ -35,7 +35,8 @@ public class GravityBrush implements Brush { } @Override - public void build(EditSession editSession, BlockVector3 position, Pattern pattern, double size) throws MaxChangedBlocksException { + public void build(EditSession editSession, BlockVector3 position, Pattern pattern, double size) throws + MaxChangedBlocksException { //FAWE start - Ours operates differently to upstream, but does the same double endY = position.getY() + size; double startPerformY = Math.max(0, position.getY() - size); @@ -44,11 +45,11 @@ public class GravityBrush implements Brush { for (double z = position.getZ() + size; z > position.getZ() - size; --z) { double freeSpot = startCheckY; for (double y = startCheckY; y <= endY; y++) { - BlockState block = editSession.getBlock((int)x, (int)y, (int)z); + BlockState block = editSession.getBlock((int) x, (int) y, (int) z); if (!block.getBlockType().getMaterial().isAir()) { if (y != freeSpot) { - editSession.setBlock((int)x, (int)y, (int)z, BlockTypes.AIR.getDefaultState()); - editSession.setBlock((int)x, (int)freeSpot, (int)z, block); + editSession.setBlock((int) x, (int) y, (int) z, BlockTypes.AIR.getDefaultState()); + editSession.setBlock((int) x, (int) freeSpot, (int) z, block); } freeSpot = y + 1; } @@ -57,4 +58,5 @@ public class GravityBrush implements Brush { } //FAWE end } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/brush/HollowCylinderBrush.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/brush/HollowCylinderBrush.java index c39050166..d1789d91a 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/brush/HollowCylinderBrush.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/brush/HollowCylinderBrush.java @@ -34,7 +34,8 @@ public class HollowCylinderBrush implements Brush { } @Override - public void build(EditSession editSession, BlockVector3 position, Pattern pattern, double size) throws MaxChangedBlocksException { + public void build(EditSession editSession, BlockVector3 position, Pattern pattern, double size) throws + MaxChangedBlocksException { if (pattern == null) { pattern = BlockTypes.COBBLESTONE.getDefaultState(); } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/brush/HollowSphereBrush.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/brush/HollowSphereBrush.java index 63cb9eb4c..3d0ebf825 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/brush/HollowSphereBrush.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/brush/HollowSphereBrush.java @@ -28,10 +28,12 @@ import com.sk89q.worldedit.world.block.BlockTypes; public class HollowSphereBrush implements Brush { @Override - public void build(EditSession editSession, BlockVector3 position, Pattern pattern, double size) throws MaxChangedBlocksException { + public void build(EditSession editSession, BlockVector3 position, Pattern pattern, double size) throws + MaxChangedBlocksException { if (pattern == null) { pattern = BlockTypes.COBBLESTONE.getDefaultState(); } editSession.makeSphere(position, pattern, size, size, size, false); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/brush/OperationFactoryBrush.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/brush/OperationFactoryBrush.java index 6889135ca..736c51a6a 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/brush/OperationFactoryBrush.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/brush/OperationFactoryBrush.java @@ -40,14 +40,19 @@ public class OperationFactoryBrush implements Brush { this(operationFactory, regionFactory, null); } - public OperationFactoryBrush(Contextual operationFactory, RegionFactory regionFactory, LocalSession session) { + public OperationFactoryBrush( + Contextual operationFactory, + RegionFactory regionFactory, + LocalSession session + ) { this.operationFactory = operationFactory; this.regionFactory = regionFactory; this.session = session; } @Override - public void build(EditSession editSession, BlockVector3 position, Pattern pattern, double size) throws MaxChangedBlocksException { + public void build(EditSession editSession, BlockVector3 position, Pattern pattern, double size) throws + MaxChangedBlocksException { EditContext context = new EditContext(); context.setDestination(editSession); context.setRegion(regionFactory.createCenteredAt(position, size)); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/brush/SmoothBrush.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/brush/SmoothBrush.java index e92b9290e..087d07d48 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/brush/SmoothBrush.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/brush/SmoothBrush.java @@ -49,7 +49,8 @@ public class SmoothBrush implements Brush { } @Override - public void build(EditSession editSession, BlockVector3 position, Pattern pattern, double size) throws MaxChangedBlocksException { + public void build(EditSession editSession, BlockVector3 position, Pattern pattern, double size) throws + MaxChangedBlocksException { Vector3 posDouble = position.toVector3(); Location min = new Location(editSession.getWorld(), posDouble.subtract(size, size, size)); BlockVector3 max = posDouble.add(size, size + 10, size).toBlockPoint(); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/brush/SphereBrush.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/brush/SphereBrush.java index 1838ee13b..f5ce9cff2 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/brush/SphereBrush.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/brush/SphereBrush.java @@ -28,10 +28,12 @@ import com.sk89q.worldedit.world.block.BlockTypes; public class SphereBrush implements Brush { @Override - public void build(EditSession editSession, BlockVector3 position, Pattern pattern, double size) throws MaxChangedBlocksException { + public void build(EditSession editSession, BlockVector3 position, Pattern pattern, double size) throws + MaxChangedBlocksException { if (pattern == null) { pattern = BlockTypes.COBBLESTONE.getDefaultState(); } editSession.makeSphere(position, pattern, size, size, size, true); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/util/AsyncCommandBuilder.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/util/AsyncCommandBuilder.java index 7360028b6..33971d6f8 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/util/AsyncCommandBuilder.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/util/AsyncCommandBuilder.java @@ -37,9 +37,9 @@ import org.apache.logging.log4j.Logger; import org.enginehub.piston.exception.CommandException; import org.enginehub.piston.exception.CommandExecutionException; +import javax.annotation.Nullable; import java.util.concurrent.Callable; import java.util.function.Consumer; -import javax.annotation.Nullable; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkNotNull; @@ -215,4 +215,5 @@ public final class AsyncCommandBuilder { } return message; } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/util/CommandPermissions.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/util/CommandPermissions.java index 61cf87d71..d174d18f6 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/util/CommandPermissions.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/util/CommandPermissions.java @@ -37,4 +37,5 @@ public @interface CommandPermissions { String[] value() default {}; boolean queued() default true; + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/util/CommandPermissionsConditionGenerator.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/util/CommandPermissionsConditionGenerator.java index 929dbd91b..4bb2fb05f 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/util/CommandPermissionsConditionGenerator.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/util/CommandPermissionsConditionGenerator.java @@ -33,7 +33,9 @@ import static com.google.common.base.Preconditions.checkNotNull; public final class CommandPermissionsConditionGenerator implements CommandConditionGenerator { public interface Registration { + Registration commandPermissionsConditionGenerator(CommandPermissionsConditionGenerator generator); + } @Override @@ -43,4 +45,5 @@ public final class CommandPermissionsConditionGenerator implements CommandCondit Set permissions = ImmutableSet.copyOf(annotation.value()); return new PermissionCondition(permissions, annotation.queued()); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/util/CreatureButcher.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/util/CreatureButcher.java index d19ad7087..5d63d2c5c 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/util/CreatureButcher.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/util/CreatureButcher.java @@ -29,6 +29,7 @@ import com.sk89q.worldedit.function.EntityFunction; public class CreatureButcher { public final class Flags { + @SuppressWarnings("PointlessBitwiseExpression") public static final int PETS = 1 << 0; public static final int NPCS = 1 << 1; @@ -42,6 +43,7 @@ public class CreatureButcher { private Flags() { } + } private final Actor player; diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/util/EntityRemover.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/util/EntityRemover.java index f444e7709..023b33672 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/util/EntityRemover.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/util/EntityRemover.java @@ -23,8 +23,8 @@ import com.fastasyncworldedit.core.util.TaskManager; import com.sk89q.worldedit.entity.metadata.EntityProperties; import com.sk89q.worldedit.function.EntityFunction; -import java.util.regex.Pattern; import javax.annotation.Nullable; +import java.util.regex.Pattern; import static com.google.common.base.Preconditions.checkNotNull; @@ -129,7 +129,8 @@ public class EntityRemover { if (type != null) { return new EntityRemover(type); } else { - throw new IllegalArgumentException("Acceptable types: projectiles, items, paintings, itemframes, boats, minecarts, tnt, xp, or all"); + throw new IllegalArgumentException( + "Acceptable types: projectiles, items, paintings, itemframes, boats, minecarts, tnt, xp, or all"); } } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/util/FutureProgressListener.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/util/FutureProgressListener.java index 2d283a4db..78425c96a 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/util/FutureProgressListener.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/util/FutureProgressListener.java @@ -69,7 +69,12 @@ public class FutureProgressListener implements Runnable { future.addListener(new FutureProgressListener(sender, message), MoreExecutors.directExecutor()); } - public static void addProgressListener(ListenableFuture future, Actor sender, Component message, Component workingMessage) { + public static void addProgressListener( + ListenableFuture future, + Actor sender, + Component message, + Component workingMessage + ) { future.addListener(new FutureProgressListener(sender, message, workingMessage), MoreExecutors.directExecutor()); } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/util/HookMode.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/util/HookMode.java index a2e4cd16d..8ac2882e6 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/util/HookMode.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/util/HookMode.java @@ -20,5 +20,6 @@ package com.sk89q.worldedit.command.util; public enum HookMode { - ACTIVE, INACTIVE + ACTIVE, + INACTIVE } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/util/PermissionCondition.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/util/PermissionCondition.java index 00e9071b3..84f054c01 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/util/PermissionCondition.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/util/PermissionCondition.java @@ -51,9 +51,9 @@ public class PermissionCondition implements Command.Condition { @Override public boolean satisfied(InjectedValueAccess context) { return permissions.isEmpty() - || context.injectedValue(ACTOR_KEY) - .map(actor -> permissions.stream().anyMatch(actor::hasPermission)) - .orElse(false); + || context.injectedValue(ACTOR_KEY) + .map(actor -> permissions.stream().anyMatch(actor::hasPermission)) + .orElse(false); } //FAWE start diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/util/PrintCommandHelp.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/util/PrintCommandHelp.java index 434c42e22..569e2b74b 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/util/PrintCommandHelp.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/util/PrintCommandHelp.java @@ -68,8 +68,10 @@ public class PrintCommandHelp { return mapping.orElse(null); } - public static void help(List commandPath, int page, boolean listSubCommands, - CommandManager manager, Actor actor, String helpRootCommand) throws InvalidComponentException { + public static void help( + List commandPath, int page, boolean listSubCommands, + CommandManager manager, Actor actor, String helpRootCommand + ) throws InvalidComponentException { if (commandPath.isEmpty()) { printCommands(page, manager.getAllCommands(), actor, ImmutableList.of(), helpRootCommand); @@ -91,7 +93,8 @@ public class PrintCommandHelp { if (subCommands.isEmpty()) { actor.print(Caption.of("worldedit.help.no-subcommands", - TextComponent.of(toCommandString(visited)), TextComponent.of(subCommand))); + TextComponent.of(toCommandString(visited)), TextComponent.of(subCommand) + )); // full help for single command CommandUsageBox box = new CommandUsageBox(visited, visited.stream() .map(Command::getName).collect(Collectors.joining(" ")), helpRootCommand); @@ -104,9 +107,16 @@ public class PrintCommandHelp { visited.add(currentCommand); } else { actor.print(Caption.of("worldedit.help.subcommand-not-found", - TextComponent.of(subCommand), TextComponent.of(toCommandString(visited)))); + TextComponent.of(subCommand), TextComponent.of(toCommandString(visited)) + )); // list subcommands for currentCommand - printCommands(page, getSubCommands(Iterables.getLast(visited)).values().stream(), actor, visited, helpRootCommand); + printCommands( + page, + getSubCommands(Iterables.getLast(visited)).values().stream(), + actor, + visited, + helpRootCommand + ); return; } } @@ -126,18 +136,21 @@ public class PrintCommandHelp { return "/" + Joiner.on(" ").join(visited.stream().map(Command::getName).iterator()); } - private static void printCommands(int page, Stream commandStream, Actor actor, - List commandList, String helpRootCommand) throws InvalidComponentException { + private static void printCommands( + int page, Stream commandStream, Actor actor, + List commandList, String helpRootCommand + ) throws InvalidComponentException { // Get a list of aliases List commands = commandStream - .sorted(byCleanName()) - .collect(toList()); + .sorted(byCleanName()) + .collect(toList()); String used = commandList.isEmpty() ? null : toCommandString(commandList); CommandListBox box = new CommandListBox( (used == null ? "Help" : "Subcommands: " + used), helpRootCommand + " -s -p %page%" + (used == null ? "" : " " + used), - helpRootCommand); + helpRootCommand + ); if (!actor.isPlayer()) { box.formatForConsole(); } @@ -145,8 +158,8 @@ public class PrintCommandHelp { for (Command mapping : commands) { String alias = (commandList.isEmpty() ? "/" : "") + mapping.getName(); String command = Stream.concat(commandList.stream(), Stream.of(mapping)) - .map(Command::getName) - .collect(Collectors.joining(" ", "/", "")); + .map(Command::getName) + .collect(Collectors.joining(" ", "/", "")); box.appendCommand(alias, mapping.getDescription(), command); } @@ -155,4 +168,5 @@ public class PrintCommandHelp { private PrintCommandHelp() { } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/util/SubCommandPermissionCondition.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/util/SubCommandPermissionCondition.java index c3ac2f59d..84915ab32 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/util/SubCommandPermissionCondition.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/util/SubCommandPermissionCondition.java @@ -45,6 +45,7 @@ public final class SubCommandPermissionCondition extends PermissionCondition { } public static class Generator { + private final List subCommands; public Generator(Collection subCommands) { @@ -52,18 +53,30 @@ public final class SubCommandPermissionCondition extends PermissionCondition { } public Command.Condition build() { - final List conditions = subCommands.stream().map(Command::getCondition).collect(Collectors.toList()); - final List> permConds = conditions.stream().map(c -> c.as(PermissionCondition.class)).collect(Collectors.toList()); + final List conditions = subCommands + .stream() + .map(Command::getCondition) + .collect(Collectors.toList()); + final List> permConds = conditions + .stream() + .map(c -> c.as(PermissionCondition.class)) + .collect(Collectors.toList()); if (permConds.stream().anyMatch(o -> !o.isPresent())) { // if any sub-command doesn't require permissions, then this command doesn't require permissions return new PermissionCondition(ImmutableSet.of()); } // otherwise, this command requires any one subcommand to be available - final Set perms = permConds.stream().map(Optional::get).flatMap(cond -> cond.getPermissions().stream()).collect(Collectors.toSet()); + final Set perms = permConds + .stream() + .map(Optional::get) + .flatMap(cond -> cond.getPermissions().stream()) + .collect(Collectors.toSet()); final Command.Condition aggregate = permConds.stream().map(Optional::get) .map(c -> (Command.Condition) c) .reduce(Command.Condition::or).orElse(TRUE); return new SubCommandPermissionCondition(perms, aggregate); } + } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/util/SuggestionHelper.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/util/SuggestionHelper.java index 576204743..102685dda 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/util/SuggestionHelper.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/util/SuggestionHelper.java @@ -46,6 +46,7 @@ import static org.enginehub.piston.converter.SuggestionHelper.limitByPrefix; * Internal class for generating common command suggestions. */ public final class SuggestionHelper { + private SuggestionHelper() { } @@ -55,13 +56,17 @@ public final class SuggestionHelper { } if (tag.startsWith("##")) { if (tag.equals("##")) { - return Stream.concat(allowRandom ? Stream.of("##*") : Stream.empty(), - getNamespacedRegistrySuggestions(BlockCategory.REGISTRY, tag.substring(2)).map(s -> "##" + s)); + return Stream.concat( + allowRandom ? Stream.of("##*") : Stream.empty(), + getNamespacedRegistrySuggestions(BlockCategory.REGISTRY, tag.substring(2)).map(s -> "##" + s) + ); } else if (tag.equals("##*") && allowRandom) { return getNamespacedRegistrySuggestions(BlockCategory.REGISTRY, tag.substring(3)).map(s -> "##*" + s); } else { boolean wild = tag.startsWith("##*") && allowRandom; - return getNamespacedRegistrySuggestions(BlockCategory.REGISTRY, tag.substring(wild ? 3 : 2)).map(s -> (wild ? "##*" : "##") + s); + return getNamespacedRegistrySuggestions(BlockCategory.REGISTRY, tag.substring(wild ? 3 : 2)).map(s -> (wild + ? "##*" + : "##") + s); } } return Stream.empty(); @@ -97,7 +102,7 @@ public final class SuggestionHelper { lastValidInput + prop + "="); case 1: return matchingProps.get(0).getValues().stream().map(val -> - lastValidInput + matchingProps.get(0).getName() + "=" + lastValidInput + matchingProps.get(0).getName() + "=" + val.toString().toLowerCase(Locale.ROOT)); default: return matchingProps.stream().map(p -> lastValidInput + p.getName() + "="); @@ -107,9 +112,13 @@ public final class SuggestionHelper { if (prop == null) { return propertyMap.keySet().stream().map(p -> lastValidInput + p); } - final List values = prop.getValues().stream().map(v -> v.toString().toLowerCase(Locale.ROOT)).collect(Collectors.toList()); + final List values = prop.getValues().stream().map(v -> v.toString().toLowerCase(Locale.ROOT)).collect( + Collectors.toList()); String matchVal = propVal[1].toLowerCase(Locale.ROOT); - List matchingVals = values.stream().filter(val -> val.startsWith(matchVal)).collect(Collectors.toList()); + List matchingVals = values + .stream() + .filter(val -> val.startsWith(matchVal)) + .collect(Collectors.toList()); if (matchingVals.isEmpty()) { return values.stream().map(val -> lastValidInput + prop.getName() + "=" + val); } else { @@ -150,7 +159,10 @@ public final class SuggestionHelper { return limitByPrefix(registry.keySet().stream(), input).stream(); } - public static Stream getNamespacedRegistrySuggestions(NamespacedRegistry registry, String input) { + public static Stream getNamespacedRegistrySuggestions( + NamespacedRegistry registry, + String input + ) { if (input.isEmpty() || input.equals(":")) { final Set namespaces = registry.getKnownNamespaces(); if (namespaces.size() == 1) { @@ -171,8 +183,10 @@ public final class SuggestionHelper { final String lowerSearch = input.toLowerCase(Locale.ROOT); String defKey = registry.getDefaultNamespace() + ":" + lowerSearch; int defLength = registry.getDefaultNamespace().length() + 1; - return Stream.concat(registry.keySet().stream().filter(s -> s.startsWith(defKey)).map(s -> s.substring(defLength)), - registry.getKnownNamespaces().stream().filter(n -> n.startsWith(lowerSearch)).map(n -> n + ":")); + return Stream.concat( + registry.keySet().stream().filter(s -> s.startsWith(defKey)).map(s -> s.substring(defLength)), + registry.getKnownNamespaces().stream().filter(n -> n.startsWith(lowerSearch)).map(n -> n + ":") + ); } // have a namespace - search that Predicate search = byPrefix(input.toLowerCase(Locale.ROOT)); @@ -180,6 +194,7 @@ public final class SuggestionHelper { } //FAWE start + /** * Returns a stream of suggestions for positive doubles. * diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/util/WorldEditAsyncCommandBuilder.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/util/WorldEditAsyncCommandBuilder.java index 9f89216de..a77465cd0 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/util/WorldEditAsyncCommandBuilder.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/util/WorldEditAsyncCommandBuilder.java @@ -24,13 +24,14 @@ import com.sk89q.worldedit.extension.platform.Actor; import com.sk89q.worldedit.util.formatting.text.Component; import com.sk89q.worldedit.util.formatting.text.TextComponent; -import java.util.concurrent.Callable; import javax.annotation.Nullable; +import java.util.concurrent.Callable; /** * For internal WorldEdit use only. */ public final class WorldEditAsyncCommandBuilder { + private WorldEditAsyncCommandBuilder() { } @@ -46,7 +47,11 @@ public final class WorldEditAsyncCommandBuilder { } builder .onSuccess((String) null, actor::printInfo) - .onFailure((String) null, WorldEdit.getInstance().getPlatformManager().getPlatformCommandManager().getExceptionConverter()) + .onFailure( + (String) null, + WorldEdit.getInstance().getPlatformManager().getPlatformCommandManager().getExceptionConverter() + ) .buildAndExec(WorldEdit.getInstance().getExecutorService()); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/util/annotation/AllowedRegion.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/util/annotation/AllowedRegion.java index e71ddab91..6b47033b3 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/util/annotation/AllowedRegion.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/util/annotation/AllowedRegion.java @@ -12,5 +12,7 @@ import java.lang.annotation.Target; @Target({ElementType.PARAMETER, ElementType.METHOD}) @InjectAnnotation public @interface AllowedRegion { + FaweMaskManager.MaskType value() default FaweMaskManager.MaskType.OWNER; + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/util/annotation/Confirm.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/util/annotation/Confirm.java index 5a3195952..adb625ae2 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/util/annotation/Confirm.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/util/annotation/Confirm.java @@ -37,11 +37,12 @@ import java.util.stream.Stream; */ @Retention(RetentionPolicy.RUNTIME) @Target({ - ElementType.PARAMETER, - ElementType.METHOD - }) + ElementType.PARAMETER, + ElementType.METHOD +}) @InjectAnnotation public @interface Confirm { + Processor value() default Processor.ALWAYS; enum Processor { @@ -51,15 +52,18 @@ public @interface Confirm { if (checkExisting(context)) { return true; } - Region region = context.injectedValue(Key.of(Region.class, Selection.class)).orElseThrow(IncompleteRegionException::new); + Region region = context + .injectedValue(Key.of(Region.class, Selection.class)) + .orElseThrow(IncompleteRegionException::new); BlockVector3 pos1 = region.getMinimumPoint(); BlockVector3 pos2 = region.getMaximumPoint(); long area = (pos2.getX() - pos1.getX()) * (pos2.getZ() - pos1.getZ() + 1) - * (long) value; + * (long) value; long max = 2 << 18; if (max != -1 && area > max) { actor.print(Caption.of("fawe.cancel.worldedit.cancel.reason.confirm.region", - pos1, pos2, getArgs(context), region.getHeight() * area)); + pos1, pos2, getArgs(context), region.getHeight() * area + )); return confirm(actor, context); } return true; @@ -74,7 +78,8 @@ public @interface Confirm { int max = WorldEdit.getInstance().getConfiguration().maxRadius; if (max != -1 && value > max) { actor.print(Caption.of("fawe.cancel.worldedit.cancel.reason.confirm.radius", - value, max, getArgs(context))); + value, max, getArgs(context) + )); return confirm(actor, context); } return true; @@ -89,7 +94,8 @@ public @interface Confirm { int max = 50; //TODO configurable, get Key.of(Method.class) @Limit if (max != -1 && value > max) { actor.print(Caption.of("fawe.cancel.worldedit.cancel.reason.confirm.limit", - value, max, getArgs(context))); + value, max, getArgs(context) + )); return confirm(actor, context); } return true; @@ -190,8 +196,10 @@ public @interface Confirm { } class Reflect { + static final Field memory; static final Field injectedValues; + static { Field memoryField; try { @@ -215,4 +223,5 @@ public @interface Confirm { injectedValues = injectedValuesField; } } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/util/annotation/ConfirmHandler.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/util/annotation/ConfirmHandler.java index b29b3c87b..eeb5989f2 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/util/annotation/ConfirmHandler.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/util/annotation/ConfirmHandler.java @@ -1,7 +1,6 @@ package com.sk89q.worldedit.command.util.annotation; import com.fastasyncworldedit.core.configuration.Settings; -import com.sk89q.worldedit.command.util.annotation.Confirm; import com.sk89q.worldedit.extension.platform.Actor; import com.sk89q.worldedit.util.formatting.text.TextComponent; import org.enginehub.piston.CommandParameters; @@ -16,6 +15,7 @@ import java.util.Optional; * Logs called commands to a logger. */ public class ConfirmHandler implements CommandCallListener { + @Override public void beforeCall(Method method, CommandParameters parameters) { Confirm confirmAnnotation = method.getAnnotation(Confirm.class); @@ -36,4 +36,5 @@ public class ConfirmHandler implements CommandCallListener { throw new StopExecutionException(TextComponent.empty()); } } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/util/annotation/Link.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/util/annotation/Link.java index 9ad8f67ef..6632d8693 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/util/annotation/Link.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/util/annotation/Link.java @@ -7,5 +7,7 @@ import java.lang.annotation.RetentionPolicy; public @interface Link { Class clazz() default Link.class; + String value(); + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/util/annotation/PatternList.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/util/annotation/PatternList.java index 549cc5822..1c3a2f463 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/util/annotation/PatternList.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/util/annotation/PatternList.java @@ -14,4 +14,5 @@ import java.lang.annotation.Target; @Target(ElementType.PARAMETER) @InjectAnnotation public @interface PatternList { + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/util/annotation/Step.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/util/annotation/Step.java index d4e83a9f1..ea5702b93 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/util/annotation/Step.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/util/annotation/Step.java @@ -5,7 +5,9 @@ import java.lang.annotation.RetentionPolicy; @Retention(RetentionPolicy.RUNTIME) public @interface Step { + Class clazz() default Link.class; double value() default 1; + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/util/annotation/Time.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/util/annotation/Time.java index 67b31bc43..fe9d2c760 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/util/annotation/Time.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/util/annotation/Time.java @@ -11,4 +11,5 @@ import java.lang.annotation.Target; @Target({ElementType.PARAMETER, ElementType.METHOD}) @InjectAnnotation public @interface Time { + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/entity/BaseEntity.java b/worldedit-core/src/main/java/com/sk89q/worldedit/entity/BaseEntity.java index b01c732ad..857d5c741 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/entity/BaseEntity.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/entity/BaseEntity.java @@ -54,7 +54,7 @@ public class BaseEntity implements NbtValued { /** * Create a new base entity. * - * @param type the entity type + * @param type the entity type * @param nbtData NBT data * @deprecated Use {@link BaseEntity#BaseEntity(EntityType, LazyReference)} */ @@ -67,7 +67,7 @@ public class BaseEntity implements NbtValued { /** * Create a new base entity. * - * @param type the entity type + * @param type the entity type * @param nbtData NBT data */ public BaseEntity(EntityType type, LazyReference nbtData) { diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/entity/Player.java b/worldedit-core/src/main/java/com/sk89q/worldedit/entity/Player.java index 16dd39273..e0380bfc9 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/entity/Player.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/entity/Player.java @@ -76,8 +76,8 @@ public interface Player extends Entity, Actor { /** * Get the player's cardinal direction (N, W, NW, etc.) with an offset. May return null. - * @param yawOffset offset that is added to the player's yaw before determining the cardinal direction * + * @param yawOffset offset that is added to the player's yaw before determining the cardinal direction * @return the direction */ Direction getCardinalDirection(int yawOffset); @@ -174,7 +174,7 @@ public interface Player extends Entity, Actor { /** * Ascend to the ceiling above. * - * @param clearance How many blocks to leave above the player's head + * @param clearance How many blocks to leave above the player's head * @param alwaysGlass Always put glass under the player * @return whether the player was moved */ @@ -191,7 +191,7 @@ public interface Player extends Entity, Actor { /** * Just go up. * - * @param distance How far up to teleport + * @param distance How far up to teleport * @param alwaysGlass Always put glass under the player * @return whether the player was moved */ @@ -228,7 +228,7 @@ public interface Player extends Entity, Actor { * Get the point of the block being looked at. May return null. * Will return the farthest away air block if useLastBlock is true and no other block is found. * - * @param range how far to checks for blocks + * @param range how far to checks for blocks * @param useLastBlock try to return the last valid air block found * @return point */ @@ -238,9 +238,9 @@ public interface Player extends Entity, Actor { * Get the point of the block being looked at. May return null. * Will return the farthest away block before matching the stop mask if useLastBlock is true and no other block is found. * - * @param range how far to checks for blocks + * @param range how far to checks for blocks * @param useLastBlock try to return the last valid block not matching the stop mask found - * @param stopMask the mask used to determine when to stop tracing + * @param stopMask the mask used to determine when to stop tracing * @return point */ Location getBlockTrace(int range, boolean useLastBlock, @Nullable Mask stopMask); @@ -248,7 +248,7 @@ public interface Player extends Entity, Actor { /** * Get the face that the player is looking at. * - * @param range the range + * @param range the range * @param useLastBlock try to return the last valid air block found * @return a face */ @@ -257,9 +257,9 @@ public interface Player extends Entity, Actor { /** * Get the face that the player is looking at. * - * @param range the range + * @param range the range * @param useLastBlock try to return the last valid block not matching the stop mask found - * @param stopMask the mask used to determine when to stop tracing + * @param stopMask the mask used to determine when to stop tracing * @return a face */ Location getBlockTraceFace(int range, boolean useLastBlock, @Nullable Mask stopMask); @@ -298,11 +298,11 @@ public interface Player extends Entity, Actor { /** * Move the player. * - * @param pos where to move them + * @param pos where to move them * @param pitch the pitch (up/down) of the player's view in degrees - * @param yaw the yaw (left/right) of the player's view in degrees + * @param yaw the yaw (left/right) of the player's view in degrees * @deprecated This method may fail without indication. Use - * {@link #trySetPosition(Vector3, float, float)} instead + * {@link #trySetPosition(Vector3, float, float)} instead */ @Deprecated default void setPosition(Vector3 pos, float pitch, float yaw) { @@ -317,16 +317,14 @@ public interface Player extends Entity, Actor { * If so, this method will return {@code false}. *

    * - * @param pos where to move them + * @param pos where to move them * @param pitch the pitch (up/down) of the player's view in degrees - * @param yaw the yaw (left/right) of the player's view in degrees + * @param yaw the yaw (left/right) of the player's view in degrees * @return if the move was able to occur - * @apiNote This must be overridden by new subclasses. See {@link NonAbstractForCompatibility} - * for details */ @NonAbstractForCompatibility( - delegateName = "setPosition", - delegateParams = { Vector3.class, float.class, float.class } + delegateName = "setPosition", + delegateParams = {Vector3.class, float.class, float.class} ) default boolean trySetPosition(Vector3 pos, float pitch, float yaw) { DeprecationUtil.checkDelegatingOverride(getClass()); @@ -340,16 +338,16 @@ public interface Player extends Entity, Actor { * Sends a fake block to the client. * *

    - * This block isn't real. + * This block isn't real. *

    * - * @param pos The position of the block + * @param pos The position of the block * @param block The block to send, null to reset */ > void sendFakeBlock(BlockVector3 pos, @Nullable B block); //FAWE start - public Region[] getCurrentRegions(); + Region[] getCurrentRegions(); Region[] getCurrentRegions(FaweMaskManager.MaskType type); @@ -405,8 +403,10 @@ public interface Player extends Entity, Actor { * Loads any history items from disk: - Should already be called if history on disk is enabled. */ default void loadClipboardFromDisk() { - File file = MainUtil.getFile(Fawe.imp().getDirectory(), - Settings.IMP.PATHS.CLIPBOARD + File.separator + getUniqueId() + ".bd"); + File file = MainUtil.getFile( + Fawe.imp().getDirectory(), + Settings.IMP.PATHS.CLIPBOARD + File.separator + getUniqueId() + ".bd" + ); try { if (file.exists() && file.length() > 5) { DiskOptimizedClipboard doc = new DiskOptimizedClipboard(file); @@ -426,7 +426,13 @@ public interface Player extends Entity, Actor { event.printStackTrace(); print(Caption.of("fawe.error.stacktrace")); print(Caption.of("fawe.error.no-failure")); - print(Caption.of("File: ", TextComponent.of(file.getName()), TextComponent.of(" (len:"), TextComponent.of(file.length()), TextComponent.of(")"))); + print(Caption.of( + "File: ", + TextComponent.of(file.getName()), + TextComponent.of(" (len:"), + TextComponent.of(file.length()), + TextComponent.of(")") + )); print(Caption.of("fawe.error.stacktrace")); } } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/entity/metadata/EntityProperties.java b/worldedit-core/src/main/java/com/sk89q/worldedit/entity/metadata/EntityProperties.java index eae08e3fa..bc6ec2e30 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/entity/metadata/EntityProperties.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/entity/metadata/EntityProperties.java @@ -168,4 +168,5 @@ public interface EntityProperties { * @return true if water creature */ boolean isWaterCreature(); + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/event/AbstractCancellable.java b/worldedit-core/src/main/java/com/sk89q/worldedit/event/AbstractCancellable.java index 18d6a397f..b7003fb17 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/event/AbstractCancellable.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/event/AbstractCancellable.java @@ -36,4 +36,5 @@ public abstract class AbstractCancellable extends Event implements Cancellable { public void setCancelled(boolean cancelled) { this.cancelled = cancelled; } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/event/Event.java b/worldedit-core/src/main/java/com/sk89q/worldedit/event/Event.java index 641f7772f..523ab84c2 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/event/Event.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/event/Event.java @@ -29,6 +29,7 @@ public abstract class Event { /** * Returns true if this event was called and not cancelled. + * * @return !isCancelled */ public boolean call() { diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/event/extent/EditSessionEvent.java b/worldedit-core/src/main/java/com/sk89q/worldedit/event/extent/EditSessionEvent.java index 0c6abbf73..43d926844 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/event/extent/EditSessionEvent.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/event/extent/EditSessionEvent.java @@ -30,7 +30,6 @@ import com.sk89q.worldedit.world.World; import com.sk89q.worldedit.world.block.BlockStateHolder; import javax.annotation.Nullable; - import java.util.ArrayList; import java.util.List; @@ -80,10 +79,10 @@ public class EditSessionEvent extends Event implements Cancellable { /** * Create a new event. * - * @param world the world - * @param actor the actor, or null if there is no actor specified + * @param world the world + * @param actor the actor, or null if there is no actor specified * @param maxBlocks the maximum number of block changes - * @param stage the stage + * @param stage the stage */ public EditSessionEvent(@Nullable World world, Actor actor, int maxBlocks, Stage stage) { this.world = world; @@ -159,6 +158,7 @@ public class EditSessionEvent extends Event implements Cancellable { * Set tracing enabled, with the current extent as the "base". * * Internal use only. + * * @param tracing if tracing is enabled */ public void setTracing(boolean tracing) { diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/event/platform/BlockInteractEvent.java b/worldedit-core/src/main/java/com/sk89q/worldedit/event/platform/BlockInteractEvent.java index a7db9b225..57f5bf6de 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/event/platform/BlockInteractEvent.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/event/platform/BlockInteractEvent.java @@ -43,9 +43,9 @@ public class BlockInteractEvent extends Event implements Cancellable { /** * Create a new event. * - * @param cause the causing actor + * @param cause the causing actor * @param location the location of the block - * @param type the type of interaction + * @param type the type of interaction */ @Deprecated public BlockInteractEvent(Actor cause, Location location, Interaction type) { @@ -55,10 +55,10 @@ public class BlockInteractEvent extends Event implements Cancellable { /** * Create a new event. * - * @param cause the causing actor + * @param cause the causing actor * @param location the location of the block - * @param face the face of the block that was interacted with - * @param type the type of interaction + * @param face the face of the block that was interacted with + * @param type the type of interaction */ public BlockInteractEvent(Actor cause, Location location, @Nullable Direction face, Interaction type) { checkNotNull(cause); @@ -116,4 +116,5 @@ public class BlockInteractEvent extends Event implements Cancellable { public void setCancelled(boolean cancelled) { this.cancelled = cancelled; } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/event/platform/CommandEvent.java b/worldedit-core/src/main/java/com/sk89q/worldedit/event/platform/CommandEvent.java index e2146d4cf..811588aa5 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/event/platform/CommandEvent.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/event/platform/CommandEvent.java @@ -36,7 +36,7 @@ public class CommandEvent extends AbstractCancellable { /** * Create a new instance. * - * @param actor the player + * @param actor the player * @param arguments the arguments */ public CommandEvent(Actor actor, String arguments) { diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/event/platform/CommandSuggestionEvent.java b/worldedit-core/src/main/java/com/sk89q/worldedit/event/platform/CommandSuggestionEvent.java index 6e1c92ccf..e82033c89 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/event/platform/CommandSuggestionEvent.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/event/platform/CommandSuggestionEvent.java @@ -40,7 +40,7 @@ public class CommandSuggestionEvent extends Event { /** * Create a new instance. * - * @param actor the player + * @param actor the player * @param arguments the arguments */ public CommandSuggestionEvent(Actor actor, String arguments) { @@ -73,8 +73,8 @@ public class CommandSuggestionEvent extends Event { * Get the list of suggestions that are to be presented. * *

    - * Each Substring holds the replacement as the substring, - * and the replacement range as the original substring range. + * Each Substring holds the replacement as the substring, + * and the replacement range as the original substring range. *

    * * @return the list of suggestions diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/event/platform/PlatformEvent.java b/worldedit-core/src/main/java/com/sk89q/worldedit/event/platform/PlatformEvent.java index 261b78ae0..309fc4dc2 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/event/platform/PlatformEvent.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/event/platform/PlatformEvent.java @@ -23,6 +23,7 @@ import com.sk89q.worldedit.event.Event; import com.sk89q.worldedit.extension.platform.Platform; public abstract class PlatformEvent extends Event { + private final Platform platform; protected PlatformEvent(Platform platform) { @@ -37,4 +38,5 @@ public abstract class PlatformEvent extends Event { public Platform getPlatform() { return platform; } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/event/platform/PlatformInitializeEvent.java b/worldedit-core/src/main/java/com/sk89q/worldedit/event/platform/PlatformInitializeEvent.java index 251bf0275..2245331be 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/event/platform/PlatformInitializeEvent.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/event/platform/PlatformInitializeEvent.java @@ -28,4 +28,5 @@ import com.sk89q.worldedit.event.Event; *

    This event is fired once.

    */ public class PlatformInitializeEvent extends Event { + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/event/platform/PlatformReadyEvent.java b/worldedit-core/src/main/java/com/sk89q/worldedit/event/platform/PlatformReadyEvent.java index 7ae072ae5..410fe54fd 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/event/platform/PlatformReadyEvent.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/event/platform/PlatformReadyEvent.java @@ -25,7 +25,9 @@ import com.sk89q.worldedit.extension.platform.Platform; * Raised when a platform has finished loading its data. */ public class PlatformReadyEvent extends PlatformEvent { + public PlatformReadyEvent(Platform platform) { super(platform); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/event/platform/PlatformUnreadyEvent.java b/worldedit-core/src/main/java/com/sk89q/worldedit/event/platform/PlatformUnreadyEvent.java index 25930e6b7..ba8cc9992 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/event/platform/PlatformUnreadyEvent.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/event/platform/PlatformUnreadyEvent.java @@ -25,7 +25,9 @@ import com.sk89q.worldedit.extension.platform.Platform; * Raised when a platform needs to retract all registered data, e.g. due to a reload. */ public class PlatformUnreadyEvent extends PlatformEvent { + public PlatformUnreadyEvent(Platform platform) { super(platform); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/event/platform/PlatformsRegisteredEvent.java b/worldedit-core/src/main/java/com/sk89q/worldedit/event/platform/PlatformsRegisteredEvent.java index 8eac2569f..18c0eb1e7 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/event/platform/PlatformsRegisteredEvent.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/event/platform/PlatformsRegisteredEvent.java @@ -25,4 +25,5 @@ import com.sk89q.worldedit.event.Event; * Fired by a platform when it believes all available platforms should be registered. */ public class PlatformsRegisteredEvent extends Event { + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/event/platform/PlayerInputEvent.java b/worldedit-core/src/main/java/com/sk89q/worldedit/event/platform/PlayerInputEvent.java index 57b816aa7..2822036c8 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/event/platform/PlayerInputEvent.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/event/platform/PlayerInputEvent.java @@ -37,7 +37,7 @@ public class PlayerInputEvent extends Event implements Cancellable { /** * Create a new event. * - * @param player the player + * @param player the player * @param inputType the input type */ public PlayerInputEvent(Player player, InputType inputType) { diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/event/platform/SessionIdleEvent.java b/worldedit-core/src/main/java/com/sk89q/worldedit/event/platform/SessionIdleEvent.java index a304d0b29..e61c4c212 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/event/platform/SessionIdleEvent.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/event/platform/SessionIdleEvent.java @@ -28,6 +28,7 @@ import com.sk89q.worldedit.session.SessionKey; *

    This can happen when a player leaves the server.

    */ public final class SessionIdleEvent extends Event { + private final SessionKey key; public SessionIdleEvent(SessionKey key) { @@ -42,4 +43,5 @@ public final class SessionIdleEvent extends Event { public SessionKey getKey() { return this.key; } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/BlockFactory.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/BlockFactory.java index 6322ce199..14ecb48f1 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/BlockFactory.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/BlockFactory.java @@ -51,7 +51,7 @@ public class BlockFactory extends AbstractFactory { /** * Return a set of blocks from a comma-delimited list of blocks. * - * @param input the input + * @param input the input * @param context the context * @return a set of blocks * @throws InputParseException thrown in error with the input @@ -61,7 +61,7 @@ public class BlockFactory extends AbstractFactory { //FAWE start // String[] splits = input.split(","); for (String token : StringUtil.split(input, ',', '[', ']')) { - //FAWE end + //FAWE end blocks.add(parseFromInput(token, context)); } return blocks; diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/MaskFactory.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/MaskFactory.java index 0a47ff31d..f31954b2e 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/MaskFactory.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/MaskFactory.java @@ -20,34 +20,34 @@ package com.sk89q.worldedit.extension.factory; import com.fastasyncworldedit.core.configuration.Caption; -import com.sk89q.worldedit.WorldEdit; import com.fastasyncworldedit.core.extension.factory.parser.mask.AdjacentMaskParser; -import com.sk89q.worldedit.extension.factory.parser.mask.AirMaskParser; import com.fastasyncworldedit.core.extension.factory.parser.mask.AngleMaskParser; -import com.sk89q.worldedit.extension.factory.parser.mask.BiomeMaskParser; -import com.sk89q.worldedit.extension.factory.parser.mask.BlockCategoryMaskParser; -import com.sk89q.worldedit.extension.factory.parser.mask.BlockStateMaskParser; -import com.sk89q.worldedit.extension.factory.parser.mask.BlocksMaskParser; -import com.sk89q.worldedit.extension.factory.parser.mask.ExistingMaskParser; -import com.sk89q.worldedit.extension.factory.parser.mask.ExpressionMaskParser; import com.fastasyncworldedit.core.extension.factory.parser.mask.ExtremaMaskParser; import com.fastasyncworldedit.core.extension.factory.parser.mask.FalseMaskParser; -import com.sk89q.worldedit.extension.factory.parser.mask.LazyRegionMaskParser; import com.fastasyncworldedit.core.extension.factory.parser.mask.LiquidMaskParser; -import com.sk89q.worldedit.extension.factory.parser.mask.NegateMaskParser; -import com.sk89q.worldedit.extension.factory.parser.mask.NoiseMaskParser; -import com.sk89q.worldedit.extension.factory.parser.mask.OffsetMaskParser; import com.fastasyncworldedit.core.extension.factory.parser.mask.ROCAngleMaskParser; -import com.sk89q.worldedit.extension.factory.parser.mask.RegionMaskParser; import com.fastasyncworldedit.core.extension.factory.parser.mask.RichOffsetMaskParser; import com.fastasyncworldedit.core.extension.factory.parser.mask.SimplexMaskParser; -import com.sk89q.worldedit.extension.factory.parser.mask.SolidMaskParser; import com.fastasyncworldedit.core.extension.factory.parser.mask.SurfaceMaskParser; import com.fastasyncworldedit.core.extension.factory.parser.mask.TrueMaskParser; import com.fastasyncworldedit.core.extension.factory.parser.mask.WallMaskParser; import com.fastasyncworldedit.core.extension.factory.parser.mask.XAxisMaskParser; import com.fastasyncworldedit.core.extension.factory.parser.mask.YAxisMaskParser; import com.fastasyncworldedit.core.extension.factory.parser.mask.ZAxisMaskParser; +import com.sk89q.worldedit.WorldEdit; +import com.sk89q.worldedit.extension.factory.parser.mask.AirMaskParser; +import com.sk89q.worldedit.extension.factory.parser.mask.BiomeMaskParser; +import com.sk89q.worldedit.extension.factory.parser.mask.BlockCategoryMaskParser; +import com.sk89q.worldedit.extension.factory.parser.mask.BlockStateMaskParser; +import com.sk89q.worldedit.extension.factory.parser.mask.BlocksMaskParser; +import com.sk89q.worldedit.extension.factory.parser.mask.ExistingMaskParser; +import com.sk89q.worldedit.extension.factory.parser.mask.ExpressionMaskParser; +import com.sk89q.worldedit.extension.factory.parser.mask.LazyRegionMaskParser; +import com.sk89q.worldedit.extension.factory.parser.mask.NegateMaskParser; +import com.sk89q.worldedit.extension.factory.parser.mask.NoiseMaskParser; +import com.sk89q.worldedit.extension.factory.parser.mask.OffsetMaskParser; +import com.sk89q.worldedit.extension.factory.parser.mask.RegionMaskParser; +import com.sk89q.worldedit.extension.factory.parser.mask.SolidMaskParser; import com.sk89q.worldedit.extension.input.InputParseException; import com.sk89q.worldedit.extension.input.NoMatchException; import com.sk89q.worldedit.extension.input.ParserContext; @@ -117,7 +117,7 @@ public final class MaskFactory extends AbstractFactory { final String[] split = input.split(" "); if (split.length > 1) { String prev = input.substring(0, input.lastIndexOf(" ")) + " "; - return super.getSuggestions(split[split.length -1]).stream().map(s -> prev + s).collect(Collectors.toList()); + return super.getSuggestions(split[split.length - 1]).stream().map(s -> prev + s).collect(Collectors.toList()); } return super.getSuggestions(input); } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/PatternFactory.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/PatternFactory.java index 30c24f921..b85f4c0af 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/PatternFactory.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/PatternFactory.java @@ -19,22 +19,22 @@ package com.sk89q.worldedit.extension.factory; -import com.sk89q.worldedit.WorldEdit; import com.fastasyncworldedit.core.extension.factory.parser.pattern.BiomePatternParser; -import com.sk89q.worldedit.extension.factory.parser.pattern.BlockCategoryPatternParser; import com.fastasyncworldedit.core.extension.factory.parser.pattern.BufferedPatternParser; -import com.sk89q.worldedit.extension.factory.parser.pattern.ClipboardPatternParser; import com.fastasyncworldedit.core.extension.factory.parser.pattern.ExistingPatternParser; import com.fastasyncworldedit.core.extension.factory.parser.pattern.Linear2DPatternParser; import com.fastasyncworldedit.core.extension.factory.parser.pattern.Linear3DPatternParser; import com.fastasyncworldedit.core.extension.factory.parser.pattern.PerlinPatternParser; import com.fastasyncworldedit.core.extension.factory.parser.pattern.RandomPatternParser; -import com.sk89q.worldedit.extension.factory.parser.pattern.RandomStatePatternParser; import com.fastasyncworldedit.core.extension.factory.parser.pattern.RidgedMultiFractalPatternParser; import com.fastasyncworldedit.core.extension.factory.parser.pattern.SimplexPatternParser; +import com.fastasyncworldedit.core.extension.factory.parser.pattern.VoronoiPatternParser; +import com.sk89q.worldedit.WorldEdit; +import com.sk89q.worldedit.extension.factory.parser.pattern.BlockCategoryPatternParser; +import com.sk89q.worldedit.extension.factory.parser.pattern.ClipboardPatternParser; +import com.sk89q.worldedit.extension.factory.parser.pattern.RandomStatePatternParser; import com.sk89q.worldedit.extension.factory.parser.pattern.SingleBlockPatternParser; import com.sk89q.worldedit.extension.factory.parser.pattern.TypeOrStateApplyingPatternParser; -import com.fastasyncworldedit.core.extension.factory.parser.pattern.VoronoiPatternParser; import com.sk89q.worldedit.function.pattern.Pattern; import com.sk89q.worldedit.internal.registry.AbstractFactory; diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/parser/DefaultBlockParser.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/parser/DefaultBlockParser.java index 0734af6fb..b72c9aaf4 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/parser/DefaultBlockParser.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/parser/DefaultBlockParser.java @@ -20,10 +20,12 @@ package com.sk89q.worldedit.extension.factory.parser; import com.fastasyncworldedit.core.configuration.Caption; +import com.fastasyncworldedit.core.extent.inventory.SlottableBlockBag; import com.fastasyncworldedit.core.jnbt.JSON2NBT; import com.fastasyncworldedit.core.jnbt.NBTException; import com.fastasyncworldedit.core.util.MathMan; import com.fastasyncworldedit.core.util.StringMan; +import com.fastasyncworldedit.core.world.block.BlanketBaseBlock; import com.google.common.collect.Maps; import com.sk89q.jnbt.CompoundTag; import com.sk89q.worldedit.IncompleteRegionException; @@ -43,7 +45,6 @@ import com.sk89q.worldedit.extension.input.ParserContext; import com.sk89q.worldedit.extension.platform.Actor; import com.sk89q.worldedit.extension.platform.Capability; import com.sk89q.worldedit.extent.inventory.BlockBag; -import com.fastasyncworldedit.core.extent.inventory.SlottableBlockBag; import com.sk89q.worldedit.internal.registry.InputParser; import com.sk89q.worldedit.math.BlockVector3; import com.sk89q.worldedit.registry.state.Property; @@ -57,7 +58,6 @@ import com.sk89q.worldedit.world.block.BlockStateHolder; import com.sk89q.worldedit.world.block.BlockType; import com.sk89q.worldedit.world.block.BlockTypes; import com.sk89q.worldedit.world.block.FuzzyBlockState; -import com.fastasyncworldedit.core.world.block.BlanketBaseBlock; import com.sk89q.worldedit.world.entity.EntityType; import com.sk89q.worldedit.world.entity.EntityTypes; import com.sk89q.worldedit.world.registry.LegacyMapper; @@ -171,7 +171,11 @@ public class DefaultBlockParser extends InputParser { } } - private static Map, Object> parseProperties(BlockType type, String[] stateProperties, ParserContext context) throws NoMatchException { + private static Map, Object> parseProperties( + BlockType type, + String[] stateProperties, + ParserContext context + ) throws NoMatchException { Map, Object> blockStates = new HashMap<>(); if (stateProperties.length > 0) { // Block data not yet detected @@ -181,8 +185,10 @@ public class DefaultBlockParser extends InputParser { String[] parts = parseableData.split("="); if (parts.length != 2) { throw new InputParseException( - Caption.of("worldedit.error.parser.bad-state-format", - TextComponent.of(parseableData)) + Caption.of( + "worldedit.error.parser.bad-state-format", + TextComponent.of(parseableData) + ) ); } @@ -302,7 +308,10 @@ public class DefaultBlockParser extends InputParser { } else { typeString = blockAndExtraData[0].substring(0, stateStart); if (stateStart + 1 >= blockAndExtraData[0].length()) { - throw new InputParseException(Caption.of("worldedit.error.parser.hanging-lbracket", TextComponent.of(stateStart))); + throw new InputParseException(Caption.of( + "worldedit.error.parser.hanging-lbracket", + TextComponent.of(stateStart) + )); } int stateEnd = blockAndExtraData[0].lastIndexOf(']'); if (stateEnd < 0) { @@ -477,7 +486,10 @@ public class DefaultBlockParser extends InputParser { if (context.isRestricted()) { Actor actor = context.requireActor(); if (!actor.hasPermission("worldedit.anyblock") && worldEdit.getConfiguration().checkDisallowedBlocks(holder)) { - throw new DisallowedUsageException(Caption.of("worldedit.error.disallowed-block", TextComponent.of(String.valueOf(holder)))); + throw new DisallowedUsageException(Caption.of( + "worldedit.error.disallowed-block", + TextComponent.of(String.valueOf(holder)) + )); } CompoundTag nbt = holder.getNbtData(); if (nbt != null) { diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/parser/DefaultItemParser.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/parser/DefaultItemParser.java index 72cd69067..d10d3c836 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/parser/DefaultItemParser.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/parser/DefaultItemParser.java @@ -71,7 +71,10 @@ public class DefaultItemParser extends InputParser { } else if (split.length == 1) { itemType = LegacyMapper.getInstance().getItemFromLegacy(Integer.parseInt(split[0])); } else { - itemType = LegacyMapper.getInstance().getItemFromLegacy(Integer.parseInt(split[0]), Integer.parseInt(split[1])); + itemType = LegacyMapper.getInstance().getItemFromLegacy( + Integer.parseInt(split[0]), + Integer.parseInt(split[1]) + ); } if (itemType != null) { item = new BaseItem(itemType); @@ -90,7 +93,10 @@ public class DefaultItemParser extends InputParser { } else { typeString = input.substring(0, nbtStart); if (nbtStart + 1 >= input.length()) { - throw new InputParseException(TranslatableComponent.of("worldedit.error.parser.hanging-lbracket", TextComponent.of(nbtStart))); + throw new InputParseException(TranslatableComponent.of( + "worldedit.error.parser.hanging-lbracket", + TextComponent.of(nbtStart) + )); } int stateEnd = input.lastIndexOf('}'); if (stateEnd < 0) { @@ -132,9 +138,9 @@ public class DefaultItemParser extends InputParser { } } catch (IOException e) { throw new NoMatchException(TranslatableComponent.of( - "worldedit.error.invalid-nbt", - TextComponent.of(input), - TextComponent.of(e.getMessage()) + "worldedit.error.invalid-nbt", + TextComponent.of(input), + TextComponent.of(e.getMessage()) )); } } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/parser/mask/AirMaskParser.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/parser/mask/AirMaskParser.java index 43913f7db..c125e4930 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/parser/mask/AirMaskParser.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/parser/mask/AirMaskParser.java @@ -47,4 +47,5 @@ public class AirMaskParser extends SimpleInputParser { public Mask parseFromSimpleInput(String input, ParserContext context) throws InputParseException { return Masks.negate(new ExistingBlockMask(context.requireExtent())); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/parser/mask/BiomeMaskParser.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/parser/mask/BiomeMaskParser.java index ec0cba3d9..1ad3c4158 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/parser/mask/BiomeMaskParser.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/parser/mask/BiomeMaskParser.java @@ -81,4 +81,5 @@ public class BiomeMaskParser extends InputParser { return new BiomeMask(context.requireExtent(), biomes); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/parser/mask/BlockCategoryMaskParser.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/parser/mask/BlockCategoryMaskParser.java index 7dd2f9f1d..05e630efe 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/parser/mask/BlockCategoryMaskParser.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/parser/mask/BlockCategoryMaskParser.java @@ -53,9 +53,14 @@ public class BlockCategoryMaskParser extends InputParser { // This means it's a tag mask. BlockCategory category = BlockCategory.REGISTRY.get(input.substring(2).toLowerCase(Locale.ROOT)); if (category == null) { - throw new InputParseException(Caption.of("fawe.error.unrecognised-tag", TextComponent.of(input.substring(2)), TextComponent.of("\\"))); + throw new InputParseException(Caption.of( + "fawe.error.unrecognised-tag", + TextComponent.of(input.substring(2)), + TextComponent.of("\\") + )); } else { return new BlockCategoryMask(context.requireExtent(), category); } } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/parser/mask/BlockStateMaskParser.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/parser/mask/BlockStateMaskParser.java index 08f6ffc26..483354c4d 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/parser/mask/BlockStateMaskParser.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/parser/mask/BlockStateMaskParser.java @@ -54,11 +54,17 @@ public class BlockStateMaskParser extends InputParser { boolean strict = input.charAt(1) == '='; String states = input.substring(2 + (strict ? 1 : 0), input.length() - 1); try { - return new BlockStateMask(context.requireExtent(), + return new BlockStateMask( + context.requireExtent(), Splitter.on(',').omitEmptyStrings().trimResults().withKeyValueSeparator('=').split(states), - strict); + strict + ); } catch (Exception e) { - throw new InputParseException(Caption.of("worldedit.error.parser.bad-state-format", TextComponent.of(String.valueOf(e)))); + throw new InputParseException(Caption.of( + "worldedit.error.parser.bad-state-format", + TextComponent.of(String.valueOf(e)) + )); } } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/parser/mask/ExistingMaskParser.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/parser/mask/ExistingMaskParser.java index 4ec76a232..5a9d57f29 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/parser/mask/ExistingMaskParser.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/parser/mask/ExistingMaskParser.java @@ -46,4 +46,5 @@ public class ExistingMaskParser extends SimpleInputParser { public Mask parseFromSimpleInput(String input, ParserContext context) throws InputParseException { return new ExistingBlockMask(context.requireExtent()); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/parser/mask/ExpressionMaskParser.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/parser/mask/ExpressionMaskParser.java index 19c318c90..a892f9a5b 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/parser/mask/ExpressionMaskParser.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/parser/mask/ExpressionMaskParser.java @@ -68,7 +68,11 @@ public class ExpressionMaskParser extends InputParser { } return new ExpressionMask(exp); } catch (ExpressionException e) { - throw new InputParseException(Caption.of("worldedit.error.parser.invalid-expression", TextComponent.of(e.getMessage()))); + throw new InputParseException(Caption.of( + "worldedit.error.parser.invalid-expression", + TextComponent.of(e.getMessage()) + )); } } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/parser/mask/LazyRegionMaskParser.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/parser/mask/LazyRegionMaskParser.java index 50ac0e1c9..2954ea700 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/parser/mask/LazyRegionMaskParser.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/parser/mask/LazyRegionMaskParser.java @@ -46,4 +46,5 @@ public class LazyRegionMaskParser extends SimpleInputParser { public Mask parseFromSimpleInput(String input, ParserContext context) { return new RegionMask(new RequestSelection()); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/parser/mask/NegateMaskParser.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/parser/mask/NegateMaskParser.java index b4bec8ea5..aa88ac2e5 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/parser/mask/NegateMaskParser.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/parser/mask/NegateMaskParser.java @@ -58,4 +58,5 @@ public class NegateMaskParser extends InputParser { throw new InputParseException(Caption.of("worldedit.error.parser.negate-nothing")); } } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/parser/mask/NoiseMaskParser.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/parser/mask/NoiseMaskParser.java index 6466aebc9..713e43e46 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/parser/mask/NoiseMaskParser.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/parser/mask/NoiseMaskParser.java @@ -54,4 +54,5 @@ public class NoiseMaskParser extends InputParser { int i = Integer.parseInt(input.substring(1)); return new NoiseFilter(new RandomNoise(), ((double) i) / 100); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/parser/mask/OffsetMaskParser.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/parser/mask/OffsetMaskParser.java index 34112f902..6ced1206c 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/parser/mask/OffsetMaskParser.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/parser/mask/OffsetMaskParser.java @@ -66,4 +66,5 @@ public class OffsetMaskParser extends InputParser { OffsetMask offsetMask = new OffsetMask(submask, BlockVector3.at(0, firstChar == '>' ? -1 : 1, 0)); return new MaskIntersection(offsetMask, Masks.negate(submask)); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/parser/mask/RegionMaskParser.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/parser/mask/RegionMaskParser.java index 9d1d42e7c..15ba24d39 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/parser/mask/RegionMaskParser.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/parser/mask/RegionMaskParser.java @@ -52,4 +52,5 @@ public class RegionMaskParser extends SimpleInputParser { throw new InputParseException(Caption.of("worldedit.error.incomplete-region")); } } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/parser/mask/SolidMaskParser.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/parser/mask/SolidMaskParser.java index 5abaa3358..f46f5de51 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/parser/mask/SolidMaskParser.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/parser/mask/SolidMaskParser.java @@ -46,4 +46,5 @@ public class SolidMaskParser extends SimpleInputParser { public Mask parseFromSimpleInput(String input, ParserContext context) throws InputParseException { return new SolidBlockMask(context.requireExtent()); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/parser/pattern/BlockCategoryPatternParser.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/parser/pattern/BlockCategoryPatternParser.java index 7c47ba188..50f134156 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/parser/pattern/BlockCategoryPatternParser.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/parser/pattern/BlockCategoryPatternParser.java @@ -71,7 +71,7 @@ public class BlockCategoryPatternParser extends InputParser { if (anyState) { blocks.stream().flatMap(blockType -> blockType.getAllStates().stream()).forEach(state -> - randomPattern.add(state, 1.0)); + randomPattern.add(state, 1.0)); } else { for (BlockType blockType : blocks) { randomPattern.add(blockType.getDefaultState(), 1.0); @@ -80,4 +80,5 @@ public class BlockCategoryPatternParser extends InputParser { return randomPattern; } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/parser/pattern/ClipboardPatternParser.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/parser/pattern/ClipboardPatternParser.java index 1e928a4db..7f3066c8d 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/parser/pattern/ClipboardPatternParser.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/parser/pattern/ClipboardPatternParser.java @@ -31,7 +31,6 @@ import com.sk89q.worldedit.function.pattern.Pattern; import com.sk89q.worldedit.internal.registry.InputParser; import com.sk89q.worldedit.math.BlockVector3; import com.sk89q.worldedit.session.ClipboardHolder; -import com.sk89q.worldedit.util.formatting.text.TextComponent; import java.util.Locale; import java.util.stream.Stream; @@ -79,7 +78,7 @@ public class ClipboardPatternParser extends InputParser { if (offsetParts.length == 2) { String coords = offsetParts[1]; if (coords.length() < 7 // min length of `[x,y,z]` - || coords.charAt(0) != '[' || coords.charAt(coords.length() - 1) != ']') { + || coords.charAt(0) != '[' || coords.charAt(coords.length() - 1) != ']') { throw new InputParseException(Caption.of("worldedit.error.parser.clipboard.missing-offset")); } String[] offsetSplit = coords.substring(1, coords.length() - 1).split(","); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/parser/pattern/RandomStatePatternParser.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/parser/pattern/RandomStatePatternParser.java index b3096f57c..5d7780781 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/parser/pattern/RandomStatePatternParser.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/parser/pattern/RandomStatePatternParser.java @@ -31,6 +31,7 @@ import com.sk89q.worldedit.world.block.FuzzyBlockState; import java.util.stream.Stream; public class RandomStatePatternParser extends InputParser { + public RandomStatePatternParser(WorldEdit worldEdit) { super(worldEdit); } @@ -66,4 +67,5 @@ public class RandomStatePatternParser extends InputParser { return null; // only should happen if parseLogic changes } } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/parser/pattern/TypeOrStateApplyingPatternParser.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/parser/pattern/TypeOrStateApplyingPatternParser.java index 6a75f6b86..bbf42f8a2 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/parser/pattern/TypeOrStateApplyingPatternParser.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/parser/pattern/TypeOrStateApplyingPatternParser.java @@ -80,8 +80,10 @@ public class TypeOrStateApplyingPatternParser extends InputParser { String type = parts[0]; if (parts.length == 1) { - return new TypeApplyingPattern(extent, - worldEdit.getBlockFactory().parseFromInput(type, context).getBlockType().getDefaultState()); + return new TypeApplyingPattern( + extent, + worldEdit.getBlockFactory().parseFromInput(type, context).getBlockType().getDefaultState() + ); } else { // states given if (!parts[1].endsWith("]")) { @@ -106,15 +108,20 @@ public class TypeOrStateApplyingPatternParser extends InputParser { throw new InputParseException(Caption.of("worldedit.error.parser.empty-value")); } if (statesToSet.put(prop, value) != null) { - throw new InputParseException(Caption.of("worldedit.error.parser.duplicate-property", TextComponent.of(prop))); + throw new InputParseException(Caption.of( + "worldedit.error.parser.duplicate-property", + TextComponent.of(prop) + )); } } if (type.isEmpty()) { return new StateApplyingPattern(extent, statesToSet); } else { Extent buffer = new ExtentBuffer(extent); - Pattern typeApplier = new TypeApplyingPattern(buffer, - worldEdit.getBlockFactory().parseFromInput(type, context).getBlockType().getDefaultState()); + Pattern typeApplier = new TypeApplyingPattern( + buffer, + worldEdit.getBlockFactory().parseFromInput(type, context).getBlockType().getDefaultState() + ); Pattern stateApplier = new StateApplyingPattern(buffer, statesToSet); return new ExtentBufferedCompositePattern(buffer, typeApplier, stateApplier); } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/input/DisallowedUsageException.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/input/DisallowedUsageException.java index 63f3e3b36..816f341f0 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/input/DisallowedUsageException.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/input/DisallowedUsageException.java @@ -49,7 +49,7 @@ public class DisallowedUsageException extends InputParseException { * Create with a message and a cause. * * @param message the message - * @param cause the cause + * @param cause the cause */ public DisallowedUsageException(Component message, Throwable cause) { super(message, cause); @@ -59,7 +59,7 @@ public class DisallowedUsageException extends InputParseException { * Create with a message and a cause. * * @param message the message - * @param cause the cause + * @param cause the cause */ @Deprecated public DisallowedUsageException(String message, Throwable cause) { diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/input/InputParseException.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/input/InputParseException.java index 27e06ff17..52e3fe9ce 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/input/InputParseException.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/input/InputParseException.java @@ -50,7 +50,7 @@ public class InputParseException extends WorldEditException { * Throw with a message and a cause. * * @param message the message - * @param cause the cause + * @param cause the cause */ public InputParseException(Component message, Throwable cause) { super(message, cause); @@ -60,7 +60,7 @@ public class InputParseException extends WorldEditException { * Throw with a message and a cause. * * @param message the message - * @param cause the cause + * @param cause the cause */ @Deprecated public InputParseException(String message, Throwable cause) { diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/input/NoMatchException.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/input/NoMatchException.java index 7734816b5..96de8d1b5 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/input/NoMatchException.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/input/NoMatchException.java @@ -49,7 +49,7 @@ public class NoMatchException extends InputParseException { * Create with a message and a cause. * * @param message the message - * @param cause the cause + * @param cause the cause */ public NoMatchException(Component message, Throwable cause) { super(message, cause); @@ -59,7 +59,7 @@ public class NoMatchException extends InputParseException { * Create with a message and a cause. * * @param message the message - * @param cause the cause + * @param cause the cause */ @Deprecated public NoMatchException(String message, Throwable cause) { diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/AbstractNonPlayerActor.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/AbstractNonPlayerActor.java index 0daf50a76..4ede6bdee 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/AbstractNonPlayerActor.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/AbstractNonPlayerActor.java @@ -21,8 +21,8 @@ package com.sk89q.worldedit.extension.platform; import com.fastasyncworldedit.core.configuration.Caption; import com.fastasyncworldedit.core.internal.exception.FaweException; -import com.fastasyncworldedit.core.util.task.AsyncNotifyQueue; import com.fastasyncworldedit.core.util.TaskManager; +import com.fastasyncworldedit.core.util.task.AsyncNotifyQueue; import com.sk89q.worldedit.WorldEditException; import com.sk89q.worldedit.internal.cui.CUIEvent; @@ -66,8 +66,8 @@ public abstract class AbstractNonPlayerActor implements Actor { } // Queue for async tasks - private AtomicInteger runningCount = new AtomicInteger(); - private AsyncNotifyQueue asyncNotifyQueue = new AsyncNotifyQueue((thread, throwable) -> { + private final AtomicInteger runningCount = new AtomicInteger(); + private final AsyncNotifyQueue asyncNotifyQueue = new AsyncNotifyQueue((thread, throwable) -> { while (throwable.getCause() != null) { throwable = throwable.getCause(); } @@ -86,9 +86,9 @@ public abstract class AbstractNonPlayerActor implements Actor { /** * Run a task either async, or on the current thread. * - * @param ifFree the task to run if free + * @param ifFree the task to run if free * @param checkFree Whether to first check if a task is running - * @param async TODO Description + * @param async TODO Description * @return false if the task was ran or queued */ @Override diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/AbstractPlatform.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/AbstractPlatform.java index f6c6245cf..533fe054d 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/AbstractPlatform.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/AbstractPlatform.java @@ -54,4 +54,5 @@ public abstract class AbstractPlatform implements Platform { public DataFixer getDataFixer() { return null; } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/AbstractPlayerActor.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/AbstractPlayerActor.java index d58e878df..a4510835a 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/AbstractPlayerActor.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/AbstractPlayerActor.java @@ -21,10 +21,11 @@ package com.sk89q.worldedit.extension.platform; import com.fastasyncworldedit.core.configuration.Caption; import com.fastasyncworldedit.core.internal.exception.FaweException; -import com.fastasyncworldedit.core.util.task.AsyncNotifyQueue; +import com.fastasyncworldedit.core.math.MutableBlockVector3; import com.fastasyncworldedit.core.regions.FaweMaskManager; import com.fastasyncworldedit.core.util.TaskManager; import com.fastasyncworldedit.core.util.WEManager; +import com.fastasyncworldedit.core.util.task.AsyncNotifyQueue; import com.sk89q.worldedit.EditSession; import com.sk89q.worldedit.MaxChangedBlocksException; import com.sk89q.worldedit.WorldEdit; @@ -34,7 +35,6 @@ import com.sk89q.worldedit.extent.Extent; import com.sk89q.worldedit.function.mask.Mask; import com.sk89q.worldedit.internal.cui.CUIEvent; import com.sk89q.worldedit.math.BlockVector3; -import com.fastasyncworldedit.core.math.MutableBlockVector3; import com.sk89q.worldedit.math.Vector3; import com.sk89q.worldedit.regions.ConvexPolyhedralRegion; import com.sk89q.worldedit.regions.CylinderRegion; @@ -62,11 +62,11 @@ import com.sk89q.worldedit.world.gamemode.GameModes; import com.sk89q.worldedit.world.item.ItemType; import com.sk89q.worldedit.world.item.ItemTypes; +import javax.annotation.Nullable; import java.io.File; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.atomic.AtomicInteger; -import javax.annotation.Nullable; /** * An abstract implementation of both a {@link Actor} and a {@link Player} @@ -74,27 +74,28 @@ import javax.annotation.Nullable; * players that make use of WorldEdit. */ public abstract class AbstractPlayerActor implements Actor, Player, Cloneable { + //FAWE start private final Map meta; // Queue for async tasks private final AtomicInteger runningCount = new AtomicInteger(); private final AsyncNotifyQueue asyncNotifyQueue = new AsyncNotifyQueue( - (thread, throwable) -> { - while (throwable.getCause() != null) { - throwable = throwable.getCause(); - } - if (throwable instanceof WorldEditException) { - printError(Caption.of(throwable.getLocalizedMessage())); - } else { - FaweException fe = FaweException.get(throwable); - if (fe != null) { - printError(fe.getComponent()); - } else { - throwable.printStackTrace(); + (thread, throwable) -> { + while (throwable.getCause() != null) { + throwable = throwable.getCause(); } - } - }); + if (throwable instanceof WorldEditException) { + printError(Caption.of(throwable.getLocalizedMessage())); + } else { + FaweException fe = FaweException.get(throwable); + if (fe != null) { + printError(fe.getComponent()); + } else { + throwable.printStackTrace(); + } + } + }); public AbstractPlayerActor(Map meta) { this.meta = meta; @@ -212,7 +213,7 @@ public abstract class AbstractPlayerActor implements Actor, Player, Cloneable { final BlockVector3 pos = BlockVector3.at(x, y, z); final BlockState id = world.getBlock(pos); if (id.getBlockType().getMaterial().isMovementBlocker() - && trySetPosition(Vector3.at(x + 0.5, y + 1, z + 0.5))) { + && trySetPosition(Vector3.at(x + 0.5, y + 1, z + 0.5))) { return; } @@ -232,7 +233,7 @@ public abstract class AbstractPlayerActor implements Actor, Player, Cloneable { private boolean isPlayerHarmingBlock(BlockVector3 location) { BlockType type = getWorld().getBlock(location).getBlockType(); return type.getMaterial().isMovementBlocker() || type == BlockTypes.LAVA - || BlockCategories.FIRE.contains(type); + || BlockCategories.FIRE.contains(type); } /** @@ -249,7 +250,7 @@ public abstract class AbstractPlayerActor implements Actor, Player, Cloneable { return false; } return getWorld().getBlock(location.add(0, -1, 0)).getBlockType().getMaterial() - .isMovementBlocker(); + .isMovementBlocker(); } @Override @@ -453,6 +454,7 @@ public abstract class AbstractPlayerActor implements Actor, Player, Cloneable { } //FAWE start + /** * Get the player's current allowed WorldEdit regions. * @@ -492,7 +494,8 @@ public abstract class AbstractPlayerActor implements Actor, Player, Cloneable { selector = new Polygonal2DRegionSelector((Polygonal2DRegion) region); } else { selector = new CuboidRegionSelector(null, region.getMinimumPoint(), - region.getMaximumPoint()); + region.getMaximumPoint() + ); } selector.setWorld(region.getWorld()); @@ -612,12 +615,13 @@ public abstract class AbstractPlayerActor implements Actor, Player, Cloneable { } //FAWE start + /** * Run a task either async, or on the current thread. * - * @param ifFree the task to run if free + * @param ifFree the task to run if free * @param checkFree Whether to first check if a task is running - * @param async TODO description + * @param async TODO description * @return false if the task was ran or queued */ @Override @@ -703,4 +707,5 @@ public abstract class AbstractPlayerActor implements Actor, Player, Cloneable { public > void sendFakeBlock(BlockVector3 pos, B block) { } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/Actor.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/Actor.java index 86376adee..02183e217 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/Actor.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/Actor.java @@ -21,10 +21,10 @@ package com.sk89q.worldedit.extension.platform; import com.fastasyncworldedit.core.Fawe; import com.fastasyncworldedit.core.configuration.Settings; +import com.fastasyncworldedit.core.entity.MapMetadatable; import com.fastasyncworldedit.core.object.FaweLimit; import com.fastasyncworldedit.core.util.task.InterruptableCondition; import com.sk89q.worldedit.EditSession; -import com.fastasyncworldedit.core.entity.MapMetadatable; import com.sk89q.worldedit.entity.Player; import com.sk89q.worldedit.internal.cui.CUIEvent; import com.sk89q.worldedit.session.SessionOwner; @@ -184,6 +184,7 @@ public interface Actor extends Identifiable, SessionOwner, Subject, MapMetadatab /** * Decline any pending actions. + * * @return true if an action was pending */ default boolean decline() { @@ -197,6 +198,7 @@ public interface Actor extends Identifiable, SessionOwner, Subject, MapMetadatab /** * Confirm any pending actions. + * * @return true if an action was pending */ default boolean confirm() { @@ -238,6 +240,7 @@ public interface Actor extends Identifiable, SessionOwner, Subject, MapMetadatab /** * Attempt to cancel all pending and running actions. + * * @param close if Extents are closed * @return number of cancelled actions */ diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/Locatable.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/Locatable.java index 2acb33302..48ef79f2d 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/Locatable.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/Locatable.java @@ -55,7 +55,7 @@ public interface Locatable { * * @param pos where to move them * @deprecated This method may fail without indication. Use {@link #trySetPosition(Vector3)} - * instead + * instead */ @Deprecated default void setPosition(Vector3 pos) { diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/Platform.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/Platform.java index 613abee5c..abb84c3fe 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/Platform.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/Platform.java @@ -31,13 +31,13 @@ import com.sk89q.worldedit.world.DataFixer; import com.sk89q.worldedit.world.World; import com.sk89q.worldedit.world.registry.Registries; import org.enginehub.piston.CommandManager; -import javax.annotation.Nonnull; +import javax.annotation.Nonnull; +import javax.annotation.Nullable; import java.util.List; import java.util.Locale; import java.util.Map; import java.util.Set; -import javax.annotation.Nullable; /** * Represents a platform that WorldEdit has been implemented for. @@ -92,9 +92,9 @@ public interface Platform extends Keyed { * Schedules the given {@code task} to be invoked once every * {@code period} ticks after an initial delay of {@code delay} ticks. * - * @param delay Delay in server ticks before executing first repeat + * @param delay Delay in server ticks before executing first repeat * @param period Period in server ticks of the task - * @param task Task to be executed + * @param task Task to be executed * @return Task id number (-1 if scheduling failed) */ int schedule(long delay, long period, Runnable task); @@ -124,7 +124,8 @@ public interface Platform extends Keyed { * @param player the player to match * @return a matched player, otherwise null */ - @Nullable Player matchPlayer(Player player); + @Nullable + Player matchPlayer(Player player); /** * Create a duplicate of the given world. @@ -134,13 +135,14 @@ public interface Platform extends Keyed { * @param world the world to match * @return a matched world, otherwise null */ - @Nullable World matchWorld(World world); + @Nullable + World matchWorld(World world); /** * Register the commands contained within the given command manager. * *

    - * This method should be ignored if the platform offers a command registration event. + * This method should be ignored if the platform offers a command registration event. *

    * * @param commandManager the command manager @@ -213,11 +215,11 @@ public interface Platform extends Keyed { Set getSupportedSideEffects(); //FAWE start + /** * {@inheritDoc} + * * @return an id - * @apiNote This must be overridden by new subclasses. See {@link NonAbstractForCompatibility} - * for details */ @NonAbstractForCompatibility(delegateName = "getPlatformName", delegateParams = {}) @Override diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/PlatformCommandManager.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/PlatformCommandManager.java index ecbc2ff17..3ad589341 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/PlatformCommandManager.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/PlatformCommandManager.java @@ -22,10 +22,15 @@ package com.sk89q.worldedit.extension.platform; import com.fastasyncworldedit.core.Fawe; import com.fastasyncworldedit.core.configuration.Caption; import com.fastasyncworldedit.core.configuration.Settings; +import com.fastasyncworldedit.core.extension.platform.binding.Bindings; +import com.fastasyncworldedit.core.extension.platform.binding.ConsumeBindings; +import com.fastasyncworldedit.core.extension.platform.binding.PrimitiveBindings; +import com.fastasyncworldedit.core.extension.platform.binding.ProvideBindings; +import com.fastasyncworldedit.core.internal.command.MethodInjector; import com.fastasyncworldedit.core.internal.exception.FaweException; -import com.fastasyncworldedit.core.util.task.ThrowableSupplier; import com.fastasyncworldedit.core.util.StringMan; import com.fastasyncworldedit.core.util.TaskManager; +import com.fastasyncworldedit.core.util.task.ThrowableSupplier; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; import com.google.common.collect.Lists; @@ -100,22 +105,17 @@ import com.sk89q.worldedit.command.argument.ZonedDateTimeConverter; import com.sk89q.worldedit.command.util.PermissionCondition; import com.sk89q.worldedit.command.util.PrintCommandHelp; import com.sk89q.worldedit.command.util.SubCommandPermissionCondition; +import com.sk89q.worldedit.command.util.annotation.ConfirmHandler; import com.sk89q.worldedit.entity.Entity; import com.sk89q.worldedit.entity.Player; import com.sk89q.worldedit.event.Event; import com.sk89q.worldedit.event.platform.CommandEvent; import com.sk89q.worldedit.event.platform.CommandSuggestionEvent; -import com.fastasyncworldedit.core.extension.platform.binding.Bindings; -import com.fastasyncworldedit.core.extension.platform.binding.ConsumeBindings; -import com.fastasyncworldedit.core.extension.platform.binding.PrimitiveBindings; -import com.fastasyncworldedit.core.extension.platform.binding.ProvideBindings; import com.sk89q.worldedit.extent.Extent; import com.sk89q.worldedit.internal.annotation.Selection; import com.sk89q.worldedit.internal.command.CommandArgParser; import com.sk89q.worldedit.internal.command.CommandLoggingHandler; import com.sk89q.worldedit.internal.command.CommandRegistrationHandler; -import com.sk89q.worldedit.command.util.annotation.ConfirmHandler; -import com.fastasyncworldedit.core.internal.command.MethodInjector; import com.sk89q.worldedit.internal.command.exception.ExceptionConverter; import com.sk89q.worldedit.internal.command.exception.WorldEditExceptionConverter; import com.sk89q.worldedit.internal.util.LogManagerCompat; @@ -151,8 +151,9 @@ import org.enginehub.piston.part.SubCommandPart; import org.enginehub.piston.suggestion.Suggestion; import org.enginehub.piston.util.HelpGenerator; import org.enginehub.piston.util.ValueProvider; -import javax.annotation.Nonnull; +import javax.annotation.Nonnull; +import javax.annotation.Nullable; import java.io.File; import java.io.IOException; import java.util.ArrayList; @@ -167,7 +168,6 @@ import java.util.logging.Level; import java.util.regex.Pattern; import java.util.stream.Collectors; import java.util.stream.Stream; -import javax.annotation.Nullable; import static com.google.common.base.Preconditions.checkNotNull; @@ -182,7 +182,7 @@ public final class PlatformCommandManager { public static final Pattern COMMAND_CLEAN_PATTERN = Pattern.compile("^[/]+"); private static final Logger LOGGER = LogManagerCompat.getLogger(); private static final java.util.logging.Logger COMMAND_LOG = - java.util.logging.Logger.getLogger("com.sk89q.worldedit.CommandLog"); + java.util.logging.Logger.getLogger("com.sk89q.worldedit.CommandLog"); private final WorldEdit worldEdit; private final PlatformManager platformManager; @@ -216,12 +216,12 @@ public final class PlatformCommandManager { this.commandManager = commandManagerService.newCommandManager(); this.globalInjectedValues = MapBackedValueStore.create(); this.registration = new CommandRegistrationHandler( - ImmutableList.of( - new CommandLoggingHandler(worldEdit, COMMAND_LOG), - new MethodInjector(), - new ConfirmHandler() + ImmutableList.of( + new CommandLoggingHandler(worldEdit, COMMAND_LOG), + new MethodInjector(), + new ConfirmHandler() - )); + )); // setup separate from main constructor // ensures that everything is definitely assigned initialize(); @@ -245,10 +245,11 @@ public final class PlatformCommandManager { DirectionConverter.register(worldEdit, commandManager); FactoryConverter.register(worldEdit, commandManager); for (int count = 2; count <= 3; count++) { - commandManager.registerConverter(Key.of(double.class, Annotations.radii(count)), - CommaSeparatedValuesConverter.wrapAndLimit(ArgumentConverters.get( - TypeToken.of(double.class) - ), count) + commandManager.registerConverter( + Key.of(double.class, Annotations.radii(count)), + CommaSeparatedValuesConverter.wrapAndLimit(ArgumentConverters.get( + TypeToken.of(double.class) + ), count) ); } VectorConverter.register(commandManager); @@ -266,9 +267,11 @@ public final class PlatformCommandManager { HeightConverter.register(commandManager); OffsetConverter.register(worldEdit, commandManager); //FAWE start - commandManager.registerConverter(Key.of(com.sk89q.worldedit.function.pattern.Pattern.class, Annotations.patternList()), - CommaSeparatedValuesConverter.wrap(commandManager.getConverter(Key.of( - com.sk89q.worldedit.function.pattern.Pattern.class)).get())); + commandManager.registerConverter( + Key.of(com.sk89q.worldedit.function.pattern.Pattern.class, Annotations.patternList()), + CommaSeparatedValuesConverter.wrap(commandManager.getConverter(Key.of( + com.sk89q.worldedit.function.pattern.Pattern.class)).get()) + ); registerBindings(new ConsumeBindings(worldEdit, this)); registerBindings(new PrimitiveBindings(worldEdit)); @@ -283,7 +286,8 @@ public final class PlatformCommandManager { //FAWE end private void registerAlwaysInjectedValues() { - globalInjectedValues.injectValue(Key.of(Region.class, Selection.class), + globalInjectedValues.injectValue( + Key.of(Region.class, Selection.class), context -> { LocalSession localSession = context.injectedValue(Key.of(LocalSession.class)) .orElseThrow(() -> new IllegalStateException("No LocalSession")); @@ -296,7 +300,8 @@ public final class PlatformCommandManager { throw new AssertionError("Should have thrown a new exception.", e); } }); - }); + } + ); //FAWE start /* globalInjectedValues.injectValue(Key.of(EditSession.class), @@ -317,7 +322,8 @@ public final class PlatformCommandManager { // context -> context.injectedValue(Key.of(Actor.class)) // .orElseThrow(() -> new IllegalStateException("No CFI Settings")).getMeta("CFISettings")); //FAWE end - globalInjectedValues.injectValue(Key.of(World.class), + globalInjectedValues.injectValue( + Key.of(World.class), context -> { LocalSession localSession = context.injectedValue(Key.of(LocalSession.class)) .orElseThrow(() -> new IllegalStateException("No LocalSession")); @@ -336,7 +342,8 @@ public final class PlatformCommandManager { throw new AssertionError("Should have thrown a new exception.", e); } }); - }); + } + ); //FAWE start globalInjectedValues.injectValue(Key.of(InjectedValueAccess.class), Optional::of); //FAWE end @@ -345,15 +352,19 @@ public final class PlatformCommandManager { /** * Internal use only. */ - public void registerSubCommands(String name, List aliases, String desc, - CommandRegistration registration, CI instance) { + public void registerSubCommands( + String name, List aliases, String desc, + CommandRegistration registration, CI instance + ) { registerSubCommands(name, aliases, desc, registration, instance, m -> { }); } - private void registerSubCommands(String name, List aliases, String desc, - CommandRegistration registration, CI instance, - Consumer additionalConfig) { + private void registerSubCommands( + String name, List aliases, String desc, + CommandRegistration registration, CI instance, + Consumer additionalConfig + ) { commandManager.register(name, cmd -> { cmd.aliases(aliases); cmd.description(TextComponent.of(desc)); @@ -361,26 +372,30 @@ public final class PlatformCommandManager { CommandManager manager = commandManagerService.newCommandManager(); this.registration.register( - manager, - registration, - instance + manager, + registration, + instance ); additionalConfig.accept(manager); final List subCommands = manager.getAllCommands().collect(Collectors.toList()); - cmd.addPart(SubCommandPart.builder(Caption.of("worldedit.argument.action"), - TextComponent.of("Sub-command to run.")) - .withCommands(subCommands) - .required() - .build()); + cmd.addPart(SubCommandPart.builder( + Caption.of("worldedit.argument.action"), + TextComponent.of("Sub-command to run.") + ) + .withCommands(subCommands) + .required() + .build()); cmd.condition(new SubCommandPermissionCondition.Generator(subCommands).build()); }); } - private void registerSubCommands(String name, List aliases, String desc, - Consumer> handlerInstance, - @Nonnull Consumer additionalConfig) { + private void registerSubCommands( + String name, List aliases, String desc, + Consumer> handlerInstance, + @Nonnull Consumer additionalConfig + ) { commandManager.register(name, cmd -> { cmd.aliases(aliases); cmd.description(TextComponent.of(desc)); @@ -391,16 +406,18 @@ public final class PlatformCommandManager { //FAWE start handlerInstance.accept((handler, instance) -> this.registration.register( - manager, - handler, - instance - )); + manager, + handler, + instance + )); //FAWE end additionalConfig.accept(manager); final List subCommands = manager.getAllCommands().collect(Collectors.toList()); - cmd.addPart(SubCommandPart.builder(Caption.of("worldedit.argument.action"), - TextComponent.of("Sub-command to run.")) + cmd.addPart(SubCommandPart.builder( + Caption.of("worldedit.argument.action"), + TextComponent.of("Sub-command to run.") + ) .withCommands(subCommands) .required() .build()); @@ -434,27 +451,27 @@ public final class PlatformCommandManager { // TransformCommandsRegistration.builder(), // new TransformCommands() // ); - //FAWE end + //FAWE end registerSubCommands( - "schematic", - ImmutableList.of("schem", "/schematic", "/schem"), - "Schematic commands for saving/loading areas", - SchematicCommandsRegistration.builder(), - new SchematicCommands(worldEdit) + "schematic", + ImmutableList.of("schem", "/schematic", "/schem"), + "Schematic commands for saving/loading areas", + SchematicCommandsRegistration.builder(), + new SchematicCommands(worldEdit) ); registerSubCommands( - "snapshot", - ImmutableList.of("snap"), - "Snapshot commands for restoring backups", - SnapshotCommandsRegistration.builder(), - new SnapshotCommands(worldEdit) + "snapshot", + ImmutableList.of("snap"), + "Snapshot commands for restoring backups", + SnapshotCommandsRegistration.builder(), + new SnapshotCommands(worldEdit) ); registerSubCommands( - "superpickaxe", - ImmutableList.of("pickaxe", "sp"), - "Super-pickaxe commands", - SuperPickaxeCommandsRegistration.builder(), - new SuperPickaxeCommands(worldEdit) + "superpickaxe", + ImmutableList.of("pickaxe", "sp"), + "Super-pickaxe commands", + SuperPickaxeCommandsRegistration.builder(), + new SuperPickaxeCommands(worldEdit) ); registerSubCommands( "brush", @@ -473,28 +490,28 @@ public final class PlatformCommandManager { } ); registerSubCommands( - "worldedit", - //FAWE start - register fawe - ImmutableList.of("we", "fawe", "fastasyncworldedit"), - //FAWE end - "WorldEdit commands", - WorldEditCommandsRegistration.builder(), - new WorldEditCommands(worldEdit) + "worldedit", + //FAWE start - register fawe + ImmutableList.of("we", "fawe", "fastasyncworldedit"), + //FAWE end + "WorldEdit commands", + WorldEditCommandsRegistration.builder(), + new WorldEditCommands(worldEdit) ); this.registration.register( - commandManager, - BiomeCommandsRegistration.builder(), - new BiomeCommands() + commandManager, + BiomeCommandsRegistration.builder(), + new BiomeCommands() ); this.registration.register( - commandManager, - ChunkCommandsRegistration.builder(), - new ChunkCommands(worldEdit) + commandManager, + ChunkCommandsRegistration.builder(), + new ChunkCommands(worldEdit) ); this.registration.register( - commandManager, - ClipboardCommandsRegistration.builder(), - new ClipboardCommands() + commandManager, + ClipboardCommandsRegistration.builder(), + new ClipboardCommands() ); GeneralCommands.register( registration, @@ -515,43 +532,43 @@ public final class PlatformCommandManager { history ); registerSubCommands( - "/history", - ImmutableList.of("/frb"), - "Manage your history", - HistorySubCommandsRegistration.builder(), - new HistorySubCommands(history) + "/history", + ImmutableList.of("/frb"), + "Manage your history", + HistorySubCommandsRegistration.builder(), + new HistorySubCommands(history) ); //FAWE end this.registration.register( - commandManager, - NavigationCommandsRegistration.builder(), - new NavigationCommands(worldEdit) + commandManager, + NavigationCommandsRegistration.builder(), + new NavigationCommands(worldEdit) ); this.registration.register( - commandManager, - RegionCommandsRegistration.builder(), - new RegionCommands() + commandManager, + RegionCommandsRegistration.builder(), + new RegionCommands() ); this.registration.register( - commandManager, - ScriptingCommandsRegistration.builder(), - new ScriptingCommands(worldEdit) + commandManager, + ScriptingCommandsRegistration.builder(), + new ScriptingCommands(worldEdit) ); this.registration.register( - commandManager, - SelectionCommandsRegistration.builder(), - new SelectionCommands(worldEdit) + commandManager, + SelectionCommandsRegistration.builder(), + new SelectionCommands(worldEdit) ); ExpandCommands.register(registration, commandManager, commandManagerService); this.registration.register( - commandManager, - SnapshotUtilCommandsRegistration.builder(), - new SnapshotUtilCommands(worldEdit) + commandManager, + SnapshotUtilCommandsRegistration.builder(), + new SnapshotUtilCommands(worldEdit) ); this.registration.register( - commandManager, - ToolCommandsRegistration.builder(), - new ToolCommands(worldEdit) + commandManager, + ToolCommandsRegistration.builder(), + new ToolCommands(worldEdit) ); this.registration.register( commandManager, @@ -559,9 +576,9 @@ public final class PlatformCommandManager { new ToolUtilCommands(worldEdit) ); this.registration.register( - commandManager, - UtilityCommandsRegistration.builder(), - new UtilityCommands(worldEdit) + commandManager, + UtilityCommandsRegistration.builder(), + new UtilityCommands(worldEdit) ); } } @@ -681,8 +698,8 @@ public final class PlatformCommandManager { public void handleCommandOnCurrentThread(CommandEvent event) { Actor actor = platformManager.createProxyActor(event.getActor()); String[] split = parseArgs(event.getArguments()) - .map(Substring::getSubstring) - .toArray(String[]::new); + .map(Substring::getSubstring) + .toArray(String[]::new); // No command found! if (!commandManager.containsCommand(split[0])) { @@ -705,7 +722,12 @@ public final class PlatformCommandManager { handleCommandTask(task, context, session, event); } - public void handleCommandTask(ThrowableSupplier task, InjectedValueAccess context, @Nullable LocalSession session, CommandEvent event) { + public void handleCommandTask( + ThrowableSupplier task, + InjectedValueAccess context, + @Nullable LocalSession session, + CommandEvent event + ) { Actor actor = context.injectedValue(Key.of(Actor.class)).orElseThrow(() -> new IllegalStateException("No player")); long start = System.currentTimeMillis(); @@ -729,7 +751,10 @@ public final class PlatformCommandManager { } } catch (ConditionFailedException e) { if (e.getCondition() instanceof PermissionCondition) { - actor.printError(Caption.of("fawe.error.no-perm", StringMan.getString(((PermissionCondition) e.getCondition()).getPermissions()))); + actor.printError(Caption.of( + "fawe.error.no-perm", + StringMan.getString(((PermissionCondition) e.getCondition()).getPermissions()) + )); } else { actor.print(e.getRichMessage()); } @@ -738,12 +763,15 @@ public final class PlatformCommandManager { } catch (UsageException e) { ImmutableList cmd = e.getCommands(); if (!cmd.isEmpty()) { - actor.print(Caption.of("fawe.error.command.syntax", HelpGenerator.create(e.getCommandParseResult()).getFullHelp())); + actor.print(Caption.of( + "fawe.error.command.syntax", + HelpGenerator.create(e.getCommandParseResult()).getFullHelp() + )); } actor.printError(e.getRichMessage()); } catch (CommandExecutionException e) { if (e.getCause() instanceof FaweException) { - actor.print(Caption.of("fawe.cancel.worldedit.cancel.reason", ((FaweException)e.getCause()).getComponent())); + actor.print(Caption.of("fawe.cancel.worldedit.cancel.reason", ((FaweException) e.getCause()).getComponent())); } else { handleUnknownException(actor, e.getCause()); } @@ -806,7 +834,8 @@ public final class PlatformCommandManager { private void printUsage(Actor actor, List arguments) { PrintCommandHelp.help(arguments, 0, false, - getCommandManager(), actor, "//help"); + getCommandManager(), actor, "//help" + ); } //FAWE end @@ -823,12 +852,14 @@ public final class PlatformCommandManager { }); } store.injectValue(Key.of(Arguments.class), ValueProvider.constant(arguments)); - store.injectValue(Key.of(LocalSession.class), - context -> { - LocalSession localSession = worldEdit.getSessionManager().get(actor); - localSession.tellVersion(actor); - return Optional.of(localSession); - }); + store.injectValue( + Key.of(LocalSession.class), + context -> { + LocalSession localSession = worldEdit.getSessionManager().get(actor); + localSession.tellVersion(actor); + return Optional.of(localSession); + } + ); store.injectValue(Key.of(boolean.class), context -> Optional.of(isSuggestions)); store.injectValue(Key.of(InjectedValueStore.class), ValueProvider.constant(store)); store.injectValue(Key.of(Event.class), ValueProvider.constant(event)); @@ -854,8 +885,8 @@ public final class PlatformCommandManager { //FAWE end List split = parseArgs(arguments).collect(Collectors.toList()); List argStrings = split.stream() - .map(Substring::getSubstring) - .collect(Collectors.toList()); + .map(Substring::getSubstring) + .collect(Collectors.toList()); //FAWE start - event & suggestion MemoizingValueAccess access = initializeInjectedValues(() -> arguments, event.getActor(), event, true); //FAWE end @@ -871,17 +902,17 @@ public final class PlatformCommandManager { } event.setSuggestions(suggestions.stream() - .map(suggestion -> { - int noSlashLength = arguments.length(); - Substring original = suggestion.getReplacedArgument() == split.size() - ? Substring.from(arguments, noSlashLength, noSlashLength) - : split.get(suggestion.getReplacedArgument()); - return Substring.wrap( - suggestion.getSuggestion(), - original.getStart() + posOffset, - original.getEnd() + posOffset - ); - }).collect(Collectors.toList())); + .map(suggestion -> { + int noSlashLength = arguments.length(); + Substring original = suggestion.getReplacedArgument() == split.size() + ? Substring.from(arguments, noSlashLength, noSlashLength) + : split.get(suggestion.getReplacedArgument()); + return Substring.wrap( + suggestion.getSuggestion(), + original.getStart() + posOffset, + original.getEnd() + posOffset + ); + }).collect(Collectors.toList())); } catch (ConditionFailedException e) { if (e.getCondition() instanceof PermissionCondition) { event.setSuggestions(new ArrayList<>()); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/PlatformManager.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/PlatformManager.java index 967dc046d..73cbbcfdf 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/PlatformManager.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/PlatformManager.java @@ -20,8 +20,8 @@ package com.sk89q.worldedit.extension.platform; import com.fastasyncworldedit.core.configuration.Caption; -import com.fastasyncworldedit.core.internal.exception.FaweException; import com.fastasyncworldedit.core.function.pattern.PatternTraverser; +import com.fastasyncworldedit.core.internal.exception.FaweException; import com.fastasyncworldedit.core.wrappers.LocationMaskedPlayerWrapper; import com.fastasyncworldedit.core.wrappers.WorldWrapper; import com.sk89q.worldedit.LocalConfiguration; @@ -51,6 +51,7 @@ import com.sk89q.worldedit.util.formatting.text.TextComponent; import com.sk89q.worldedit.world.World; import org.apache.logging.log4j.Logger; +import javax.annotation.Nullable; import java.util.ArrayList; import java.util.Collection; import java.util.EnumMap; @@ -59,7 +60,6 @@ import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.concurrent.atomic.AtomicBoolean; -import javax.annotation.Nullable; import static com.google.common.base.Preconditions.checkNotNull; @@ -113,8 +113,12 @@ public class PlatformManager { // Make sure that versions are in sync if (firstSeenVersion != null) { if (!firstSeenVersion.equals(platform.getVersion())) { - LOGGER.warn("Multiple ports of WorldEdit are installed but they report different versions ({} and {}). " - + "If these two versions are truly different, then you may run into unexpected crashes and errors.", firstSeenVersion, platform.getVersion()); + LOGGER.warn( + "Multiple ports of WorldEdit are installed but they report different versions ({} and {}). " + + "If these two versions are truly different, then you may run into unexpected crashes and errors.", + firstSeenVersion, + platform.getVersion() + ); } } else { firstSeenVersion = platform.getVersion(); @@ -205,7 +209,8 @@ public class PlatformManager { // Fire configuration event if (preferences.containsKey(Capability.CONFIGURATION) && configured.compareAndSet(false, true)) { - worldEdit.getEventBus().post(new ConfigurationLoadEvent(queryCapability(Capability.CONFIGURATION).getConfiguration())); + worldEdit.getEventBus().post(new ConfigurationLoadEvent(queryCapability(Capability.CONFIGURATION) + .getConfiguration())); } } @@ -290,7 +295,7 @@ public class PlatformManager { } //FAWE start - private T proxyFawe(T player) { + private T proxyFawe(T player) { return (T) new LocationMaskedPlayerWrapper(player, player.getLocation(), true); } //FAWE end @@ -389,8 +394,9 @@ public class PlatformManager { if (superPickaxe != null && superPickaxe.canUse(player)) { //FAWE start - run async player.runAction(() -> reset(superPickaxe) - .actPrimary(queryCapability(Capability.WORLD_EDITING), - getConfiguration(), player, session, location, event.getFace()), false, true); + .actPrimary(queryCapability(Capability.WORLD_EDITING), + getConfiguration(), player, session, location, event.getFace() + ), false, true); //FAWE end event.setCancelled(true); return; @@ -401,8 +407,9 @@ public class PlatformManager { if (tool instanceof DoubleActionBlockTool && tool.canUse(player)) { //FAWE start - run async player.runAction(() -> reset((DoubleActionBlockTool) tool) - .actSecondary(queryCapability(Capability.WORLD_EDITING), - getConfiguration(), player, session, location, event.getFace()), false, true); + .actSecondary(queryCapability(Capability.WORLD_EDITING), + getConfiguration(), player, session, location, event.getFace() + ), false, true); //FAWE end event.setCancelled(true); } @@ -419,7 +426,8 @@ public class PlatformManager { blockTool = reset(blockTool); } blockTool.actPrimary(queryCapability(Capability.WORLD_EDITING), - getConfiguration(), player, session, location, event.getFace()); + getConfiguration(), player, session, location, event.getFace() + ); }, false, true); //FAWE end event.setCancelled(true); @@ -459,8 +467,10 @@ public class PlatformManager { Tool tool = session.getTool(player); if (tool instanceof DoubleActionTraceTool && tool.canUse(player)) { //FAWE start - run async - player.runAsyncIfFree(() -> reset((DoubleActionTraceTool) tool).actSecondary(queryCapability(Capability.WORLD_EDITING), - getConfiguration(), player, session)); + player.runAsyncIfFree(() -> reset((DoubleActionTraceTool) tool) + .actSecondary(queryCapability(Capability.WORLD_EDITING), + getConfiguration(), player, session + )); //FAWE end event.setCancelled(true); return; @@ -475,7 +485,8 @@ public class PlatformManager { //FAWE start - run async //todo this needs to be fixed so the event is canceled after actPrimary is used and returns true player.runAction(() -> reset((TraceTool) tool).actPrimary(queryCapability(Capability.WORLD_EDITING), - getConfiguration(), player, session), false, true); + getConfiguration(), player, session + ), false, true); //FAWE end event.setCancelled(true); return; diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/PlayerProxy.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/PlayerProxy.java index 78191b332..d540f062a 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/PlayerProxy.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/PlayerProxy.java @@ -37,9 +37,9 @@ import com.sk89q.worldedit.world.block.BaseBlock; import com.sk89q.worldedit.world.block.BlockStateHolder; import com.sk89q.worldedit.world.gamemode.GameMode; +import javax.annotation.Nullable; import java.util.Locale; import java.util.UUID; -import javax.annotation.Nullable; import static com.google.common.base.Preconditions.checkNotNull; @@ -160,12 +160,12 @@ public class PlayerProxy extends AbstractPlayerActor { return permActor.hasPermission(perm); } - @Override + @Override public boolean togglePermission(String permission) { return permActor.togglePermission(permission); } - @Override + @Override public void setPermission(String permission, boolean value) { permActor.setPermission(permission, value); } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/AbstractBufferingExtent.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/AbstractBufferingExtent.java index 9920cb707..aa120f7ce 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/AbstractBufferingExtent.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/AbstractBufferingExtent.java @@ -27,8 +27,8 @@ import com.sk89q.worldedit.world.block.BaseBlock; import com.sk89q.worldedit.world.block.BlockState; import com.sk89q.worldedit.world.block.BlockStateHolder; -import java.util.Optional; import javax.annotation.Nullable; +import java.util.Optional; /** * Base extent class for buffering changes between {@link #setBlock(BlockVector3, BlockStateHolder)} @@ -36,6 +36,7 @@ import javax.annotation.Nullable; * handled, by returning buffered blocks. */ public abstract class AbstractBufferingExtent extends AbstractDelegateExtent { + /** * Create a new instance. * @@ -48,7 +49,8 @@ public abstract class AbstractBufferingExtent extends AbstractDelegateExtent { @Override public abstract > boolean setBlock(BlockVector3 location, T block) throws WorldEditException; - protected final > boolean setDelegateBlock(BlockVector3 location, T block) throws WorldEditException { + protected final > boolean setDelegateBlock(BlockVector3 location, T block) throws + WorldEditException { return super.setBlock(location, block); } @@ -74,7 +76,7 @@ public abstract class AbstractBufferingExtent extends AbstractDelegateExtent { * Gets a block from the buffer. * * @deprecated New subclasses should override {@link #getBufferedFullBlock(BlockVector3)} - * instead + * instead */ @Deprecated protected Optional getBufferedBlock(BlockVector3 position) { @@ -86,12 +88,10 @@ public abstract class AbstractBufferingExtent extends AbstractDelegateExtent { * * @param position The position * @return The buffered block, or null - * @apiNote This must be overridden by new subclasses. See {@link NonAbstractForCompatibility} - * for details */ @NonAbstractForCompatibility( - delegateName = "getBufferedBlock", - delegateParams = { BlockVector3.class } + delegateName = "getBufferedBlock", + delegateParams = {BlockVector3.class} ) @Nullable protected BaseBlock getBufferedFullBlock(BlockVector3 position) { diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/AbstractDelegateExtent.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/AbstractDelegateExtent.java index 2c751fb86..d414c2a96 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/AbstractDelegateExtent.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/AbstractDelegateExtent.java @@ -19,11 +19,11 @@ package com.sk89q.worldedit.extent; -import com.fastasyncworldedit.core.queue.IBatchProcessor; import com.fastasyncworldedit.core.configuration.Settings; import com.fastasyncworldedit.core.extent.HistoryExtent; import com.fastasyncworldedit.core.history.changeset.AbstractChangeSet; import com.fastasyncworldedit.core.internal.exception.FaweException; +import com.fastasyncworldedit.core.queue.IBatchProcessor; import com.fastasyncworldedit.core.util.ExtentTraverser; import com.sk89q.jnbt.CompoundTag; import com.sk89q.worldedit.WorldEditException; @@ -43,9 +43,9 @@ import com.sk89q.worldedit.world.block.BlockStateHolder; import org.apache.logging.log4j.Logger; import org.jetbrains.annotations.Range; +import javax.annotation.Nullable; import java.util.List; import java.util.UUID; -import javax.annotation.Nullable; import static com.google.common.base.Preconditions.checkNotNull; import static org.apache.logging.log4j.LogManager.getLogger; @@ -155,10 +155,8 @@ public class AbstractDelegateExtent implements Extent { return new OperationQueue(ours, other); } else if (ours != null) { return ours; - } else if (other != null) { - return other; } else { - return null; + return other; } } @@ -318,8 +316,10 @@ public class AbstractDelegateExtent implements Extent { } @Override - public > boolean setBlock(int x, @Range(from = 0, to = 255) int y, - int z, T block) throws WorldEditException { + public > boolean setBlock( + int x, @Range(from = 0, to = 255) int y, + int z, T block + ) throws WorldEditException { return extent.setBlock(x, y, z, block); } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/ChangeSetExtent.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/ChangeSetExtent.java index f309bbfac..0239eb1ed 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/ChangeSetExtent.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/ChangeSetExtent.java @@ -34,9 +34,9 @@ import com.sk89q.worldedit.world.biome.BiomeType; import com.sk89q.worldedit.world.block.BaseBlock; import com.sk89q.worldedit.world.block.BlockStateHolder; +import javax.annotation.Nullable; import java.util.ArrayList; import java.util.List; -import javax.annotation.Nullable; import static com.google.common.base.Preconditions.checkNotNull; @@ -50,7 +50,7 @@ public class ChangeSetExtent extends AbstractDelegateExtent { /** * Create a new instance. * - * @param extent the extent + * @param extent the extent * @param changeSet the change set */ public ChangeSetExtent(Extent extent, ChangeSet changeSet) { @@ -102,6 +102,7 @@ public class ChangeSetExtent extends AbstractDelegateExtent { } private class TrackedEntity implements Entity { + private final Entity entity; private TrackedEntity(Entity entity) { @@ -145,5 +146,7 @@ public class ChangeSetExtent extends AbstractDelegateExtent { public T getFacet(Class cls) { return entity.getFacet(cls); } + } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/Extent.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/Extent.java index 9f9841cd0..f07cf4b34 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/Extent.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/Extent.java @@ -20,15 +20,22 @@ package com.sk89q.worldedit.extent; import com.fastasyncworldedit.core.FaweCache; -import com.fastasyncworldedit.core.queue.Filter; -import com.fastasyncworldedit.core.queue.IBatchProcessor; +import com.fastasyncworldedit.core.configuration.Settings; +import com.fastasyncworldedit.core.extent.NullExtent; +import com.fastasyncworldedit.core.extent.clipboard.WorldCopyClipboard; import com.fastasyncworldedit.core.extent.filter.block.ExtentFilterBlock; import com.fastasyncworldedit.core.extent.processor.ProcessorScope; -import com.fastasyncworldedit.core.configuration.Settings; +import com.fastasyncworldedit.core.function.generator.CavesGen; +import com.fastasyncworldedit.core.function.generator.GenBase; +import com.fastasyncworldedit.core.function.generator.OreGen; +import com.fastasyncworldedit.core.function.generator.Resource; +import com.fastasyncworldedit.core.function.generator.SchemGen; import com.fastasyncworldedit.core.history.changeset.AbstractChangeSet; -import com.fastasyncworldedit.core.extent.clipboard.WorldCopyClipboard; import com.fastasyncworldedit.core.internal.exception.FaweException; -import com.fastasyncworldedit.core.extent.NullExtent; +import com.fastasyncworldedit.core.math.MutableBlockVector3; +import com.fastasyncworldedit.core.queue.Filter; +import com.fastasyncworldedit.core.queue.IBatchProcessor; +import com.fastasyncworldedit.core.registry.state.PropertyGroup; import com.fastasyncworldedit.core.util.ExtentTraverser; import com.sk89q.worldedit.MaxChangedBlocksException; import com.sk89q.worldedit.WorldEditException; @@ -37,11 +44,6 @@ import com.sk89q.worldedit.entity.Entity; import com.sk89q.worldedit.extent.clipboard.Clipboard; import com.sk89q.worldedit.function.RegionMaskingFilter; import com.sk89q.worldedit.function.block.BlockReplace; -import com.fastasyncworldedit.core.function.generator.CavesGen; -import com.fastasyncworldedit.core.function.generator.GenBase; -import com.fastasyncworldedit.core.function.generator.OreGen; -import com.fastasyncworldedit.core.function.generator.Resource; -import com.fastasyncworldedit.core.function.generator.SchemGen; import com.sk89q.worldedit.function.mask.BlockMask; import com.sk89q.worldedit.function.mask.ExistingBlockMask; import com.sk89q.worldedit.function.mask.Mask; @@ -53,11 +55,9 @@ import com.sk89q.worldedit.function.visitor.RegionVisitor; import com.sk89q.worldedit.math.BlockVector2; import com.sk89q.worldedit.math.BlockVector3; import com.sk89q.worldedit.math.MathUtils; -import com.fastasyncworldedit.core.math.MutableBlockVector3; import com.sk89q.worldedit.math.Vector3; import com.sk89q.worldedit.regions.CuboidRegion; import com.sk89q.worldedit.regions.Region; -import com.fastasyncworldedit.core.registry.state.PropertyGroup; import com.sk89q.worldedit.session.ClipboardHolder; import com.sk89q.worldedit.util.Countable; import com.sk89q.worldedit.util.Location; @@ -69,13 +69,13 @@ import com.sk89q.worldedit.world.block.BlockStateHolder; import com.sk89q.worldedit.world.block.BlockType; import com.sk89q.worldedit.world.block.BlockTypes; +import javax.annotation.Nullable; import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Set; import java.util.UUID; import java.util.concurrent.ThreadLocalRandom; -import javax.annotation.Nullable; import static com.google.common.base.Preconditions.checkNotNull; @@ -138,7 +138,7 @@ public interface Extent extends InputExtent, OutputExtent { /** * Create an entity at the given location. * - * @param entity the entity + * @param entity the entity * @param location the location * @return a reference to the created entity, or null if the entity could not be created */ @@ -148,15 +148,17 @@ public interface Extent extends InputExtent, OutputExtent { } //FAWE start + /** * Create an entity at the given location. * - * @param x the x coordinate - * @param y the y coordinate - * @param z the z coordinate + * @param x the x coordinate + * @param y the y coordinate + * @param z the z coordinate * @param uuid the unique identifier of the entity */ - default void removeEntity(int x, int y, int z, UUID uuid) {} + default void removeEntity(int x, int y, int z, UUID uuid) { + } /* Queue based methods @@ -314,7 +316,16 @@ public interface Extent extends InputExtent, OutputExtent { return state ? failedMin : failedMax; } - default int getNearestSurfaceTerrainBlock(int x, int z, int y, int minY, int maxY, int failedMin, int failedMax, boolean ignoreAir) { + default int getNearestSurfaceTerrainBlock( + int x, + int z, + int y, + int minY, + int maxY, + int failedMin, + int failedMax, + boolean ignoreAir + ) { y = Math.max(minY, Math.min(maxY, y)); int clearanceAbove = maxY - y; int clearanceBelow = y - minY; @@ -369,7 +380,8 @@ public interface Extent extends InputExtent, OutputExtent { } } - default void addSchems(Region region, Mask mask, List clipboards, int rarity, boolean rotate) throws WorldEditException { + default void addSchems(Region region, Mask mask, List clipboards, int rarity, boolean rotate) throws + WorldEditException { spawnResource(region, new SchemGen(mask, this, clipboards, rotate), rarity, 1); } @@ -393,7 +405,16 @@ public interface Extent extends InputExtent, OutputExtent { return pt.containedWithin(min, max); } - default void addOre(Region region, Mask mask, Pattern material, int size, int frequency, int rarity, int minY, int maxY) throws WorldEditException { + default void addOre( + Region region, + Mask mask, + Pattern material, + int size, + int frequency, + int rarity, + int minY, + int maxY + ) throws WorldEditException { spawnResource(region, new OreGen(this, mask, material, size, minY, maxY), rarity, frequency); } @@ -532,7 +553,7 @@ public interface Extent extends InputExtent, OutputExtent { /** * Count the number of blocks of a list of types in a region. * - * @param region the region + * @param region the region * @param searchBlocks the list of blocks to search * @return the number of blocks that matched the block */ @@ -544,7 +565,7 @@ public interface Extent extends InputExtent, OutputExtent { /** * Count the number of blocks of a list of types in a region. * - * @param region the region + * @param region the region * @param searchMask mask to match * @return the number of blocks that matched the mask */ @@ -560,11 +581,11 @@ public interface Extent extends InputExtent, OutputExtent { * Sets all the blocks inside a region to a given block type. * * @param region the region - * @param block the block + * @param block the block * @return number of blocks affected * @throws MaxChangedBlocksException thrown if too many blocks are changed */ - default > int setBlocks(Region region, B block) throws MaxChangedBlocksException { + default > int setBlocks(Region region, B block) throws MaxChangedBlocksException { checkNotNull(region); checkNotNull(block); boolean hasNbt = block instanceof BaseBlock && block.hasNbtData(); @@ -581,7 +602,7 @@ public interface Extent extends InputExtent, OutputExtent { /** * Sets all the blocks inside a region to a given pattern. * - * @param region the region + * @param region the region * @param pattern the pattern that provides the replacement block * @return number of blocks affected * @throws MaxChangedBlocksException thrown if too many blocks are changed @@ -608,13 +629,14 @@ public interface Extent extends InputExtent, OutputExtent { * Replaces all the blocks matching a given filter, within a given region, to a block * returned by a given pattern. * - * @param region the region to replace the blocks within - * @param filter a list of block types to match, or null to use {@link com.sk89q.worldedit.function.mask.ExistingBlockMask} + * @param region the region to replace the blocks within + * @param filter a list of block types to match, or null to use {@link com.sk89q.worldedit.function.mask.ExistingBlockMask} * @param replacement the replacement block * @return number of blocks affected * @throws MaxChangedBlocksException thrown if too many blocks are changed */ - default > int replaceBlocks(Region region, Set filter, B replacement) throws MaxChangedBlocksException { + default > int replaceBlocks(Region region, Set filter, B replacement) throws + MaxChangedBlocksException { return replaceBlocks(region, filter, (Pattern) replacement); } @@ -622,8 +644,8 @@ public interface Extent extends InputExtent, OutputExtent { * Replaces all the blocks matching a given filter, within a given region, to a block * returned by a given pattern. * - * @param region the region to replace the blocks within - * @param filter a list of block types to match, or null to use {@link com.sk89q.worldedit.function.mask.ExistingBlockMask} + * @param region the region to replace the blocks within + * @param filter a list of block types to match, or null to use {@link com.sk89q.worldedit.function.mask.ExistingBlockMask} * @param pattern the pattern that provides the new blocks * @return number of blocks affected * @throws MaxChangedBlocksException thrown if too many blocks are changed @@ -637,8 +659,8 @@ public interface Extent extends InputExtent, OutputExtent { * Replaces all the blocks matching a given mask, within a given region, to a block * returned by a given pattern. * - * @param region the region to replace the blocks within - * @param mask the mask that blocks must match + * @param region the region to replace the blocks within + * @param mask the mask that blocks must match * @param pattern the pattern that provides the new blocks * @return number of blocks affected * @throws MaxChangedBlocksException thrown if too many blocks are changed @@ -663,7 +685,7 @@ public interface Extent extends InputExtent, OutputExtent { * If the center sits between two blocks on a certain axis, then two blocks * will be placed to mark the center. * - * @param region the region to find the center of + * @param region the region to find the center of * @param pattern the replacement pattern * @return the number of blocks placed * @throws MaxChangedBlocksException thrown if too many blocks are changed @@ -677,7 +699,9 @@ public interface Extent extends InputExtent, OutputExtent { this instanceof World ? (World) this : null, // Causes clamping of Y range BlockVector3.at(((int) center.getX()), ((int) center.getY()), ((int) center.getZ())), BlockVector3.at(MathUtils.roundHalfUp(center.getX()), - center.getY(), MathUtils.roundHalfUp(center.getZ()))); + center.getY(), MathUtils.roundHalfUp(center.getZ()) + ) + ); return setBlocks(centerRegion, pattern); } @@ -708,7 +732,8 @@ public interface Extent extends InputExtent, OutputExtent { /** * Have an extent processed - * - Either block (Extent) processing or chunk processing + * - Either block (Extent) processing or chunk processing + * * @param processor * @return processed Extent */ @@ -736,7 +761,7 @@ public interface Extent extends InputExtent, OutputExtent { } default T apply(Region region, T filter, boolean full) { - return apply((Iterable) region, filter); + return apply(region, filter); } default T apply(Iterable positions, T filter) { diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/InputExtent.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/InputExtent.java index 67d8c92b0..58863920c 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/InputExtent.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/InputExtent.java @@ -20,12 +20,12 @@ package com.sk89q.worldedit.extent; import com.fastasyncworldedit.core.extent.processor.heightmap.HeightMapType; +import com.fastasyncworldedit.core.math.MutableBlockVector3; import com.sk89q.worldedit.function.pattern.Pattern; import com.sk89q.worldedit.internal.util.DeprecationUtil; import com.sk89q.worldedit.internal.util.NonAbstractForCompatibility; import com.sk89q.worldedit.math.BlockVector2; import com.sk89q.worldedit.math.BlockVector3; -import com.fastasyncworldedit.core.math.MutableBlockVector3; import com.sk89q.worldedit.world.biome.BiomeType; import com.sk89q.worldedit.world.block.BaseBlock; import com.sk89q.worldedit.world.block.BlockState; @@ -83,7 +83,8 @@ public interface InputExtent { * @return the biome at the location * @deprecated Biomes in Minecraft are 3D now, use {@link InputExtent#getBiome(BlockVector3)} */ - @Deprecated default BiomeType getBiome(BlockVector2 position) { + @Deprecated + default BiomeType getBiome(BlockVector2 position) { return getBiomeType(position.getX(), 0, position.getZ()); } @@ -107,16 +108,17 @@ public interface InputExtent { * * @param position the (x, y, z) location to check the biome at * @return the biome at the location - * @apiNote This must be overridden by new subclasses. See {@link NonAbstractForCompatibility} - * for details + * @see NonAbstractForCompatibility This must be overridden by new subclasses. */ - @NonAbstractForCompatibility(delegateName = "getBiome", delegateParams = {BlockVector2.class}) default BiomeType getBiome(BlockVector3 position) { + @NonAbstractForCompatibility(delegateName = "getBiome", delegateParams = {BlockVector2.class}) + default BiomeType getBiome(BlockVector3 position) { DeprecationUtil.checkDelegatingOverride(getClass()); return getBiome(position.toBlockVector2()); } //FAWE start + /** * Get the light level at the given location. * diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/MaskingExtent.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/MaskingExtent.java index bc7c1cdc3..345ff978f 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/MaskingExtent.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/MaskingExtent.java @@ -20,15 +20,15 @@ package com.sk89q.worldedit.extent; import com.fastasyncworldedit.core.FaweCache; +import com.fastasyncworldedit.core.extent.filter.block.CharFilterBlock; +import com.fastasyncworldedit.core.extent.filter.block.ChunkFilterBlock; +import com.fastasyncworldedit.core.extent.filter.block.FilterBlock; +import com.fastasyncworldedit.core.extent.processor.ProcessorScope; import com.fastasyncworldedit.core.queue.Filter; import com.fastasyncworldedit.core.queue.IBatchProcessor; import com.fastasyncworldedit.core.queue.IChunk; import com.fastasyncworldedit.core.queue.IChunkGet; import com.fastasyncworldedit.core.queue.IChunkSet; -import com.fastasyncworldedit.core.extent.filter.block.CharFilterBlock; -import com.fastasyncworldedit.core.extent.filter.block.ChunkFilterBlock; -import com.fastasyncworldedit.core.extent.filter.block.FilterBlock; -import com.fastasyncworldedit.core.extent.processor.ProcessorScope; import com.google.common.cache.LoadingCache; import com.sk89q.worldedit.WorldEditException; import com.sk89q.worldedit.function.mask.Mask; @@ -55,7 +55,7 @@ public class MaskingExtent extends AbstractDelegateExtent implements IBatchProce * Create a new instance. * * @param extent the extent - * @param mask the mask + * @param mask the mask */ public MaskingExtent(Extent extent, Mask mask) { super(extent); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/NullExtent.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/NullExtent.java index 0cbbba151..0d044d8a4 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/NullExtent.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/NullExtent.java @@ -34,15 +34,16 @@ import com.sk89q.worldedit.world.block.BlockState; import com.sk89q.worldedit.world.block.BlockStateHolder; import com.sk89q.worldedit.world.block.BlockTypes; +import javax.annotation.Nullable; import java.util.Collections; import java.util.List; -import javax.annotation.Nullable; /** * An extent that returns air blocks for all blocks and does not * pass on any changes. */ public class NullExtent implements Extent { + public static final NullExtent INSTANCE = new NullExtent(); @Override diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/OutputExtent.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/OutputExtent.java index d7b3954e4..ffe880557 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/OutputExtent.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/OutputExtent.java @@ -20,6 +20,7 @@ package com.sk89q.worldedit.extent; import com.fastasyncworldedit.core.extent.processor.heightmap.HeightMapType; +import com.fastasyncworldedit.core.math.MutableBlockVector3; import com.sk89q.jnbt.CompoundTag; import com.sk89q.worldedit.WorldEditException; import com.sk89q.worldedit.function.operation.Operation; @@ -27,7 +28,6 @@ import com.sk89q.worldedit.internal.util.DeprecationUtil; import com.sk89q.worldedit.internal.util.NonAbstractForCompatibility; import com.sk89q.worldedit.math.BlockVector2; import com.sk89q.worldedit.math.BlockVector3; -import com.fastasyncworldedit.core.math.MutableBlockVector3; import com.sk89q.worldedit.world.biome.BiomeType; import com.sk89q.worldedit.world.block.BlockStateHolder; @@ -51,7 +51,7 @@ public interface OutputExtent { * example, the approximate number of changes.

    * * @param position position of the block - * @param block block to set + * @param block block to set * @return true if the block was successfully set (return value may not be accurate) * @throws WorldEditException thrown on an error * @deprecated It is recommended that you use {@link #setBlock(int, int, int, BlockStateHolder)} in FAWE @@ -88,22 +88,22 @@ public interface OutputExtent { * Set the biome. * * @param position the (x, z) location to set the biome at - * @param biome the biome to set to + * @param biome the biome to set to * @return true if the biome was successfully set (return value may not be accurate) * @deprecated Biomes in Minecraft are 3D now, use {@link OutputExtent#setBiome(BlockVector3, BiomeType)} */ @Deprecated default boolean setBiome(BlockVector2 position, BiomeType biome) { boolean result = false; - for (int y = 0; y < 256; y ++) { + for (int y = 0; y < 256; y++) { result |= setBiome(position.toBlockVector3().mutY(y), biome); } return result; } @NonAbstractForCompatibility( - delegateName = "setBiome", - delegateParams = { int.class, int.class, int.class, BiomeType.class } + delegateName = "setBiome", + delegateParams = {int.class, int.class, int.class, BiomeType.class} ) // The defaults need to remain for compatibility (the actual implementation still needs to override one of these) default boolean setBiome(int x, int y, int z, BiomeType biome) { @@ -113,24 +113,23 @@ public interface OutputExtent { } //FAWE start + /** * Set the biome. * *

    - * As implementation varies per Minecraft version, this may set more than - * this position's biome. On versions prior to 1.15, this will set the entire - * column. On later versions it will set the 4x4x4 cube. + * As implementation varies per Minecraft version, this may set more than + * this position's biome. On versions prior to 1.15, this will set the entire + * column. On later versions it will set the 4x4x4 cube. *

    * * @param position the (x, y, z) location to set the biome at - * @param biome the biome to set to + * @param biome the biome to set to * @return true if the biome was successfully set (return value may not be accurate) - * @apiNote This must be overridden by new subclasses. See {@link NonAbstractForCompatibility} - * for details */ @NonAbstractForCompatibility( - delegateName = "setBiome", - delegateParams = { BlockVector3.class, BiomeType.class } + delegateName = "setBiome", + delegateParams = {BlockVector3.class, BiomeType.class} ) default boolean setBiome(BlockVector3 position, BiomeType biome) { DeprecationUtil.checkDelegatingOverride(getClass()); @@ -142,7 +141,7 @@ public interface OutputExtent { * Set the light value. * * @param position position of the block - * @param value light level to set + * @param value light level to set */ default void setBlockLight(BlockVector3 position, int value) { setBlockLight(position.getX(), position.getY(), position.getZ(), value); @@ -155,7 +154,7 @@ public interface OutputExtent { * Set the sky light value. * * @param position position of the block - * @param value light level to set + * @param value light level to set */ default void setSkyLight(BlockVector3 position, int value) { setSkyLight(position.getX(), position.getY(), position.getZ(), value); @@ -174,5 +173,7 @@ public interface OutputExtent { * * @return an operation or null if there is none to execute */ - @Nullable Operation commit(); + @Nullable + Operation commit(); + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/TracingExtent.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/TracingExtent.java index fc7a129fd..b11278568 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/TracingExtent.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/TracingExtent.java @@ -30,10 +30,10 @@ import com.sk89q.worldedit.util.collection.BlockMap; import com.sk89q.worldedit.world.biome.BiomeType; import com.sk89q.worldedit.world.block.BlockStateHolder; +import javax.annotation.Nullable; import java.util.Collections; import java.util.EnumSet; import java.util.Set; -import javax.annotation.Nullable; /** * An extent that can report back if an operation fails due to the extent(s) below it. @@ -110,4 +110,5 @@ public class TracingExtent extends AbstractDelegateExtent { public String toString() { return "TracingExtent{delegate=" + getExtent() + "}"; } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/buffer/ExtentBuffer.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/buffer/ExtentBuffer.java index 8efd8615f..1b81e2946 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/buffer/ExtentBuffer.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/buffer/ExtentBuffer.java @@ -56,7 +56,7 @@ public class ExtentBuffer extends AbstractBufferingExtent { * of the given mask. * * @param delegate the delegate extent for {@link Extent#getBlock(BlockVector3)}, etc. calls - * @param mask the mask + * @param mask the mask */ public ExtentBuffer(Extent delegate, Mask mask) { super(delegate); @@ -81,4 +81,5 @@ public class ExtentBuffer extends AbstractBufferingExtent { } return false; } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/buffer/ForgetfulExtentBuffer.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/buffer/ForgetfulExtentBuffer.java index 9a515bb06..d1fdc5aad 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/buffer/ForgetfulExtentBuffer.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/buffer/ForgetfulExtentBuffer.java @@ -80,7 +80,7 @@ public class ForgetfulExtentBuffer extends AbstractDelegateExtent implements Pat * of the given mask. * * @param delegate the delegate extent for {@link Extent#getBlock(BlockVector3)}, etc. calls - * @param mask the mask + * @param mask the mask */ public ForgetfulExtentBuffer(Extent delegate, Mask mask) { super(delegate); @@ -233,4 +233,5 @@ public class ForgetfulExtentBuffer extends AbstractDelegateExtent implements Pat } }; } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/cache/LastAccessExtentCache.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/cache/LastAccessExtentCache.java index 9a5a6d804..1d195df13 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/cache/LastAccessExtentCache.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/cache/LastAccessExtentCache.java @@ -85,6 +85,7 @@ public class LastAccessExtentCache extends AbstractDelegateExtent { } private static class CachedBlock> { + private final BlockVector3 position; private final B block; @@ -92,6 +93,7 @@ public class LastAccessExtentCache extends AbstractDelegateExtent { this.position = position; this.block = block; } + } } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/BlockArrayClipboard.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/BlockArrayClipboard.java index 4fa3a20aa..9fb78632e 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/BlockArrayClipboard.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/BlockArrayClipboard.java @@ -19,17 +19,17 @@ package com.sk89q.worldedit.extent.clipboard; +import com.fastasyncworldedit.core.function.visitor.Order; +import com.fastasyncworldedit.core.math.MutableBlockVector2; +import com.fastasyncworldedit.core.math.OffsetBlockVector3; import com.google.common.collect.Iterators; import com.sk89q.jnbt.CompoundTag; import com.sk89q.worldedit.WorldEditException; import com.sk89q.worldedit.entity.BaseEntity; import com.sk89q.worldedit.entity.Entity; import com.sk89q.worldedit.extent.Extent; -import com.fastasyncworldedit.core.function.visitor.Order; import com.sk89q.worldedit.math.BlockVector2; import com.sk89q.worldedit.math.BlockVector3; -import com.fastasyncworldedit.core.math.MutableBlockVector2; -import com.fastasyncworldedit.core.math.OffsetBlockVector3; import com.sk89q.worldedit.regions.Region; import com.sk89q.worldedit.util.Location; import com.sk89q.worldedit.world.biome.BiomeType; @@ -37,13 +37,13 @@ import com.sk89q.worldedit.world.block.BaseBlock; import com.sk89q.worldedit.world.block.BlockState; import com.sk89q.worldedit.world.block.BlockStateHolder; import com.sk89q.worldedit.world.block.BlockTypes; -import javax.annotation.Nonnull; +import javax.annotation.Nonnull; +import javax.annotation.Nullable; import java.util.Iterator; import java.util.List; import java.util.UUID; import java.util.stream.Collectors; -import javax.annotation.Nullable; import static com.google.common.base.Preconditions.checkNotNull; @@ -210,10 +210,11 @@ public class BlockArrayClipboard implements Clipboard { ClipboardEntity ce = (ClipboardEntity) e; Location oldloc = ce.getLocation(); Location loc = new Location(oldloc.getExtent(), - oldloc.getX() + origin.getBlockX(), - oldloc.getY() + origin.getBlockY(), - oldloc.getZ() + origin.getBlockZ(), - oldloc.getYaw(), oldloc.getPitch()); + oldloc.getX() + origin.getBlockX(), + oldloc.getY() + origin.getBlockY(), + oldloc.getZ() + origin.getBlockZ(), + oldloc.getYaw(), oldloc.getPitch() + ); return new ClipboardEntity(loc, ce.entity); } return e; @@ -228,10 +229,11 @@ public class BlockArrayClipboard implements Clipboard { ClipboardEntity ce = (ClipboardEntity) e; Location oldloc = ce.getLocation(); Location loc = new Location(oldloc.getExtent(), - oldloc.getX() + origin.getBlockX(), - oldloc.getY() + origin.getBlockY(), - oldloc.getZ() + origin.getBlockZ(), - oldloc.getYaw(), oldloc.getPitch()); + oldloc.getX() + origin.getBlockX(), + oldloc.getY() + origin.getBlockY(), + oldloc.getZ() + origin.getBlockZ(), + oldloc.getYaw(), oldloc.getPitch() + ); return new ClipboardEntity(loc, ce.entity); } return e; @@ -242,10 +244,11 @@ public class BlockArrayClipboard implements Clipboard { @Nullable public Entity createEntity(Location location, BaseEntity entity) { Location l = new Location(location.getExtent(), - location.getX() - origin.getBlockX(), - location.getY() - origin.getBlockY(), - location.getZ() - origin.getBlockZ(), - location.getYaw(), location.getPitch()); + location.getX() - origin.getBlockX(), + location.getY() - origin.getBlockY(), + location.getZ() - origin.getBlockZ(), + location.getYaw(), location.getPitch() + ); return getParent().createEntity(l, entity); } @@ -291,7 +294,7 @@ public class BlockArrayClipboard implements Clipboard { public Iterator iterator2d() { MutableBlockVector2 mutable = new MutableBlockVector2(); return Iterators.transform(getParent().iterator2d(), input -> - mutable.setComponents(input.getX() + origin.getX(), input.getZ() + origin.getZ())); + mutable.setComponents(input.getX() + origin.getX(), input.getZ() + origin.getZ())); } @Override @@ -321,10 +324,12 @@ public class BlockArrayClipboard implements Clipboard { } //FAWE start + /** * Stores entity data. */ public static class ClipboardEntity implements Entity { + private final BaseEntity entity; private final Clipboard clipboard; private final double x; @@ -391,6 +396,7 @@ public class BlockArrayClipboard implements Clipboard { Entity result = clipboard.createEntity(loc, entity); return result != null; } + } //FAWE end } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/Clipboard.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/Clipboard.java index cd5fe76af..be340b13f 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/Clipboard.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/Clipboard.java @@ -19,12 +19,13 @@ package com.sk89q.worldedit.extent.clipboard; -import com.fastasyncworldedit.core.queue.Filter; import com.fastasyncworldedit.core.configuration.Settings; import com.fastasyncworldedit.core.extent.clipboard.CPUOptimizedClipboard; import com.fastasyncworldedit.core.extent.clipboard.DiskOptimizedClipboard; import com.fastasyncworldedit.core.extent.clipboard.MemoryOptimizedClipboard; import com.fastasyncworldedit.core.extent.clipboard.ReadOnlyClipboard; +import com.fastasyncworldedit.core.function.visitor.Order; +import com.fastasyncworldedit.core.queue.Filter; import com.fastasyncworldedit.core.util.EditSessionBuilder; import com.fastasyncworldedit.core.util.MaskTraverser; import com.sk89q.worldedit.EditSession; @@ -38,7 +39,6 @@ import com.sk89q.worldedit.function.mask.ExistingBlockMask; import com.sk89q.worldedit.function.mask.Mask; import com.sk89q.worldedit.function.operation.ForwardExtentCopy; import com.sk89q.worldedit.function.operation.Operations; -import com.fastasyncworldedit.core.function.visitor.Order; import com.sk89q.worldedit.math.BlockVector2; import com.sk89q.worldedit.math.BlockVector3; import com.sk89q.worldedit.math.transform.Transform; @@ -47,8 +47,9 @@ import com.sk89q.worldedit.regions.Regions; import com.sk89q.worldedit.util.Location; import com.sk89q.worldedit.world.World; import com.sk89q.worldedit.world.block.BaseBlock; -import javax.annotation.Nonnull; +import javax.annotation.Nonnull; +import javax.annotation.Nullable; import java.io.Closeable; import java.io.File; import java.io.FileOutputStream; @@ -57,7 +58,6 @@ import java.io.OutputStream; import java.net.URI; import java.util.Iterator; import java.util.UUID; -import javax.annotation.Nullable; import static com.google.common.base.Preconditions.checkNotNull; @@ -69,10 +69,12 @@ public interface Clipboard extends Extent, Iterable, Closeable { //FAWE start static Clipboard create(Region region) { checkNotNull(region); - checkNotNull(region.getWorld(), - "World cannot be null (use the other constructor for the region)"); + checkNotNull( + region.getWorld(), + "World cannot be null (use the other constructor for the region)" + ); EditSession session = new EditSessionBuilder(region.getWorld()).allowedRegionsEverywhere() - .autoQueue(false).build(); + .autoQueue(false).build(); return ReadOnlyClipboard.of(session, region); } @@ -130,6 +132,7 @@ public interface Clipboard extends Extent, Iterable, Closeable { } //FAWE start + /** * Remove entity from clipboard. */ @@ -216,16 +219,20 @@ public interface Clipboard extends Extent, Iterable, Closeable { } } - default EditSession paste(World world, BlockVector3 to, boolean allowUndo, boolean pasteAir, - @Nullable Transform transform) { + default EditSession paste( + World world, BlockVector3 to, boolean allowUndo, boolean pasteAir, + @Nullable Transform transform + ) { return paste(world, to, allowUndo, pasteAir, true, transform); } /** * Paste this schematic in a world. */ - default EditSession paste(World world, BlockVector3 to, boolean allowUndo, boolean pasteAir, - boolean copyEntities, @Nullable Transform transform) { + default EditSession paste( + World world, BlockVector3 to, boolean allowUndo, boolean pasteAir, + boolean copyEntities, @Nullable Transform transform + ) { checkNotNull(world); checkNotNull(to); EditSession editSession; @@ -233,7 +240,7 @@ public interface Clipboard extends Extent, Iterable, Closeable { editSession = (EditSession) world; } else { EditSessionBuilder builder = new EditSessionBuilder(world).autoQueue(true) - .checkMemory(false).allowedRegionsEverywhere().limitUnlimited(); + .checkMemory(false).allowedRegionsEverywhere().limitUnlimited(); if (allowUndo) { editSession = builder.build(); } else { @@ -250,7 +257,8 @@ public interface Clipboard extends Extent, Iterable, Closeable { return editSession; } ForwardExtentCopy copy = new ForwardExtentCopy(extent, this.getRegion(), - this.getOrigin(), editSession, to); + this.getOrigin(), editSession, to + ); if (transform != null && !transform.isIdentity()) { copy.setTransform(transform); } @@ -272,11 +280,13 @@ public interface Clipboard extends Extent, Iterable, Closeable { return editSession; } - default void paste(Extent extent, BlockVector3 to, boolean pasteAir, - @Nullable Transform transform) { + default void paste( + Extent extent, BlockVector3 to, boolean pasteAir, + @Nullable Transform transform + ) { if (extent instanceof World) { EditSessionBuilder builder = new EditSessionBuilder((World) extent).autoQueue(true) - .checkMemory(false).allowedRegionsEverywhere().limitUnlimited().changeSetNull(); + .checkMemory(false).allowedRegionsEverywhere().limitUnlimited().changeSetNull(); extent = builder.build(); } @@ -285,7 +295,8 @@ public interface Clipboard extends Extent, Iterable, Closeable { source = new BlockTransformExtent(this, transform); } ForwardExtentCopy copy = new ForwardExtentCopy(source, this.getRegion(), this.getOrigin(), - extent, to); + extent, to + ); if (transform != null) { copy.setTransform(transform); } @@ -312,7 +323,7 @@ public interface Clipboard extends Extent, Iterable, Closeable { default void paste(Extent extent, BlockVector3 to, boolean pasteAir, boolean pasteEntities, boolean pasteBiomes) { if (extent instanceof World) { EditSessionBuilder builder = new EditSessionBuilder((World) extent).autoQueue(true) - .checkMemory(false).allowedRegionsEverywhere().limitUnlimited().changeSetNull(); + .checkMemory(false).allowedRegionsEverywhere().limitUnlimited().changeSetNull(); extent = builder.build(); } @@ -350,13 +361,14 @@ public interface Clipboard extends Extent, Iterable, Closeable { for (Entity entity : this.getEntities()) { // skip players on pasting schematic if (entity.getState() != null && entity.getState().getType().getId() - .equals("minecraft:player")) { + .equals("minecraft:player")) { continue; } Location pos = entity.getLocation(); Location newPos = new Location(pos.getExtent(), pos.getX() + entityOffsetX, - pos.getY() + entityOffsetY, pos.getZ() + entityOffsetZ, pos.getYaw(), - pos.getPitch()); + pos.getY() + entityOffsetY, pos.getZ() + entityOffsetZ, pos.getYaw(), + pos.getPitch() + ); extent.createEntity(newPos, entity.getState()); } } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/StoredEntity.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/StoredEntity.java index eac1b75c5..e08c882bf 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/StoredEntity.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/StoredEntity.java @@ -40,7 +40,7 @@ abstract class StoredEntity implements Entity { * Create a new instance. * * @param location the location - * @param entity the entity (which will be copied) + * @param entity the entity (which will be copied) */ StoredEntity(Location location, BaseEntity entity) { checkNotNull(location); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/BuiltInClipboardFormat.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/BuiltInClipboardFormat.java index 3fe63f2c4..7c4c0d37d 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/BuiltInClipboardFormat.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/BuiltInClipboardFormat.java @@ -21,9 +21,9 @@ package com.sk89q.worldedit.extent.clipboard.io; import com.fastasyncworldedit.core.extent.clipboard.io.FastSchematicReader; import com.fastasyncworldedit.core.extent.clipboard.io.FastSchematicWriter; -import com.fastasyncworldedit.core.internal.io.ResettableFileInputStream; import com.fastasyncworldedit.core.extent.clipboard.io.schematic.MinecraftStructure; import com.fastasyncworldedit.core.extent.clipboard.io.schematic.PNGWriter; +import com.fastasyncworldedit.core.internal.io.ResettableFileInputStream; import com.google.common.collect.ImmutableSet; import com.sk89q.jnbt.CompoundTag; import com.sk89q.jnbt.NBTInputStream; @@ -52,7 +52,6 @@ public enum BuiltInClipboardFormat implements ClipboardFormat { //FAWE start - register fast clipboard io FAST("fast", "fawe") { - @Override public String getPrimaryFileExtension() { return "schem"; @@ -94,7 +93,6 @@ public enum BuiltInClipboardFormat implements ClipboardFormat { * The Schematic format used by MCEdit. */ MCEDIT_SCHEMATIC("mcedit", "mce", "schematic") { - @Override public String getPrimaryFileExtension() { return "schematic"; @@ -122,11 +120,11 @@ public enum BuiltInClipboardFormat implements ClipboardFormat { }, SPONGE_SCHEMATIC("sponge", "schem") { - @Override public String getPrimaryFileExtension() { return "schem"; } + @Override public ClipboardReader getReader(InputStream inputStream) throws IOException { NBTInputStream nbtStream = new NBTInputStream(new GZIPInputStream(inputStream)); @@ -163,7 +161,6 @@ public enum BuiltInClipboardFormat implements ClipboardFormat { //FAWE start - recover schematics with bad entity data & register other clipboard formats BROKENENTITY("brokenentity", "legacyentity", "le", "be", "brokenentities", "legacyentities") { - @Override public String getPrimaryFileExtension() { return "schem"; @@ -239,7 +236,6 @@ public enum BuiltInClipboardFormat implements ClipboardFormat { * Isometric PNG writer. */ PNG("png", "image") { - @Override public ClipboardReader getReader(InputStream inputStream) { return null; diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/ClipboardFormat.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/ClipboardFormat.java index 55ba6499c..cb5cd1b7a 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/ClipboardFormat.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/ClipboardFormat.java @@ -19,9 +19,9 @@ package com.sk89q.worldedit.extent.clipboard.io; -import com.fastasyncworldedit.core.util.task.RunnableVal; import com.fastasyncworldedit.core.extent.clipboard.URIClipboardHolder; import com.fastasyncworldedit.core.util.MainUtil; +import com.fastasyncworldedit.core.util.task.RunnableVal; import com.sk89q.worldedit.LocalSession; import com.sk89q.worldedit.WorldEdit; import com.sk89q.worldedit.extension.platform.Actor; @@ -100,10 +100,12 @@ public interface ClipboardFormat { Set getFileExtensions(); //FAWE start + /** * Sets the actor's clipboard. - * @param actor the actor - * @param uri the URI of the schematic to hold + * + * @param actor the actor + * @param uri the URI of the schematic to hold * @param inputStream the input stream * @throws IOException thrown on I/O error */ diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/ClipboardFormats.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/ClipboardFormats.java index f1312984e..c3b84f1b4 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/ClipboardFormats.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/ClipboardFormats.java @@ -76,8 +76,8 @@ public class ClipboardFormats { if (old != null) { aliasMap.put(lowKey, old); WorldEdit.logger.warn( - format.getClass().getName() + " cannot override existing alias '" + lowKey - + "' used by " + old.getClass().getName()); + format.getClass().getName() + " cannot override existing alias '" + lowKey + + "' used by " + old.getClass().getName()); } } for (String ext : format.getFileExtensions()) { @@ -96,8 +96,7 @@ public class ClipboardFormats { /** * Find the clipboard format named by the given alias. * - * @param alias - * the alias + * @param alias the alias * @return the format, otherwise null if none is matched */ @Nullable @@ -109,8 +108,7 @@ public class ClipboardFormats { /** * Detect the format of given a file. * - * @param file - * the file + * @param file the file * @return the format, otherwise null if one cannot be detected */ @Nullable @@ -151,6 +149,7 @@ public class ClipboardFormats { } //FAWE start + /** * Detect the format using the given extension. * @@ -171,7 +170,12 @@ public class ClipboardFormats { } - public static MultiClipboardHolder loadAllFromInput(Actor player, String input, ClipboardFormat format, boolean message) throws IOException { + public static MultiClipboardHolder loadAllFromInput( + Actor player, + String input, + ClipboardFormat format, + boolean message + ) throws IOException { checkNotNull(player); checkNotNull(input); WorldEdit worldEdit = WorldEdit.getInstance(); @@ -185,20 +189,20 @@ public class ClipboardFormats { } URL base = new URL(Settings.IMP.WEB.URL); input = new URL(base, "uploads/" + input.substring(4) + "." - + format.getPrimaryFileExtension()).toString(); + + format.getPrimaryFileExtension()).toString(); } if (input.startsWith("http")) { return null; } if (Settings.IMP.PATHS.PER_PLAYER_SCHEMATICS - && Pattern.compile("[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}").matcher(input).find() - && !player.hasPermission("worldedit.schematic.load.other")) { + && Pattern.compile("[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}").matcher(input).find() + && !player.hasPermission("worldedit.schematic.load.other")) { player.print(Caption.of("fawe.error.no-perm", "worldedit.schematic.load.other")); return null; } File working = worldEdit.getWorkingDirectoryPath(config.saveDir).toFile(); File dir = Settings.IMP.PATHS.PER_PLAYER_SCHEMATICS - ? new File(working, player.getUniqueId().toString()) : working; + ? new File(working, player.getUniqueId().toString()) : working; File f; if (input.startsWith("#")) { String[] extensions; @@ -216,8 +220,8 @@ public class ClipboardFormats { } } else { if (Settings.IMP.PATHS.PER_PLAYER_SCHEMATICS - && Pattern.compile("[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}").matcher(input).find() - && !player.hasPermission("worldedit.schematic.load.other")) { + && Pattern.compile("[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}").matcher(input).find() + && !player.hasPermission("worldedit.schematic.load.other")) { if (message) { player.print(Caption.of("fawe.error.no-perm", "worldedit.schematic.load.other")); } @@ -238,8 +242,8 @@ public class ClipboardFormats { if (f == null || !f.exists() || !MainUtil.isInSubDirectory(working, f)) { if (message) { player.printError( - "Schematic " + input + " does not exist! (" + ((f != null) && f.exists()) + "|" - + f + "|" + (f != null && !MainUtil.isInSubDirectory(working, f)) + ")"); + "Schematic " + input + " does not exist! (" + ((f != null) && f.exists()) + "|" + + f + "|" + (f != null && !MainUtil.isInSubDirectory(working, f)) + ")"); } return null; } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/MCEditSchematicReader.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/MCEditSchematicReader.java index 4f536fc35..ade1e2624 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/MCEditSchematicReader.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/MCEditSchematicReader.java @@ -80,16 +80,16 @@ public class MCEditSchematicReader extends NBTSchematicReader { private final DataFixer fixer; private static final ImmutableList COMPATIBILITY_HANDLERS = ImmutableList.of( - new SignCompatibilityHandler(), - new FlowerPotCompatibilityHandler(), - new NoteBlockCompatibilityHandler(), - new SkullBlockCompatibilityHandler(), - new BannerBlockCompatibilityHandler(), - new BedBlockCompatibilityHandler() + new SignCompatibilityHandler(), + new FlowerPotCompatibilityHandler(), + new NoteBlockCompatibilityHandler(), + new SkullBlockCompatibilityHandler(), + new BannerBlockCompatibilityHandler(), + new BedBlockCompatibilityHandler() ); private static final ImmutableList ENTITY_COMPATIBILITY_HANDLERS = ImmutableList.of( - new Pre13HangingCompatibilityHandler() + new Pre13HangingCompatibilityHandler() ); /** @@ -223,7 +223,11 @@ public class MCEditSchematicReader extends NBTSchematicReader { if (fixer != null && t != null) { //FAWE start - t = (CompoundTag) AdventureNBTConverter.fromAdventure(fixer.fixUp(DataFixer.FixTypes.BLOCK_ENTITY, t.asBinaryTag(), -1)); + t = (CompoundTag) AdventureNBTConverter.fromAdventure(fixer.fixUp( + DataFixer.FixTypes.BLOCK_ENTITY, + t.asBinaryTag(), + -1 + )); //FAWE end } @@ -285,10 +289,18 @@ public class MCEditSchematicReader extends NBTSchematicReader { if (tag instanceof CompoundTag) { CompoundTag compound = (CompoundTag) tag; if (fixer != null) { - compound = (CompoundTag) AdventureNBTConverter.fromAdventure(fixer.fixUp(DataFixer.FixTypes.ENTITY, compound.asBinaryTag(), -1)); + compound = (CompoundTag) AdventureNBTConverter.fromAdventure(fixer.fixUp( + DataFixer.FixTypes.ENTITY, + compound.asBinaryTag(), + -1 + )); } String id = convertEntityId(compound.getString("id")); - Location location = NBTConversions.toLocation(clipboard, compound.getListTag("Pos"), compound.getListTag("Rotation")); + Location location = NBTConversions.toLocation( + clipboard, + compound.getListTag("Pos"), + compound.getListTag("Rotation") + ); if (!id.isEmpty()) { EntityType entityType = EntityTypes.get(id.toLowerCase(Locale.ROOT)); if (entityType != null) { @@ -312,38 +324,70 @@ public class MCEditSchematicReader extends NBTSchematicReader { private String convertEntityId(String id) { switch (id) { - case "AreaEffectCloud": return "area_effect_cloud"; - case "ArmorStand": return "armor_stand"; - case "CaveSpider": return "cave_spider"; - case "MinecartChest": return "chest_minecart"; - case "DragonFireball": return "dragon_fireball"; - case "ThrownEgg": return "egg"; - case "EnderDragon": return "ender_dragon"; - case "ThrownEnderpearl": return "ender_pearl"; - case "FallingSand": return "falling_block"; - case "FireworksRocketEntity": return "fireworks_rocket"; - case "MinecartFurnace": return "furnace_minecart"; - case "MinecartHopper": return "hopper_minecart"; - case "EntityHorse": return "horse"; - case "ItemFrame": return "item_frame"; - case "LeashKnot": return "leash_knot"; - case "LightningBolt": return "lightning_bolt"; - case "LavaSlime": return "magma_cube"; - case "MinecartRideable": return "minecart"; - case "MushroomCow": return "mooshroom"; - case "Ozelot": return "ocelot"; - case "PolarBear": return "polar_bear"; - case "ThrownPotion": return "potion"; - case "ShulkerBullet": return "shulker_bullet"; - case "SmallFireball": return "small_fireball"; - case "MinecartSpawner": return "spawner_minecart"; - case "SpectralArrow": return "spectral_arrow"; - case "PrimedTnt": return "tnt"; - case "MinecartTNT": return "tnt_minecart"; - case "VillagerGolem": return "villager_golem"; - case "WitherBoss": return "wither"; - case "WitherSkull": return "wither_skull"; - case "PigZombie": return "zombie_pigman"; + case "AreaEffectCloud": + return "area_effect_cloud"; + case "ArmorStand": + return "armor_stand"; + case "CaveSpider": + return "cave_spider"; + case "MinecartChest": + return "chest_minecart"; + case "DragonFireball": + return "dragon_fireball"; + case "ThrownEgg": + return "egg"; + case "EnderDragon": + return "ender_dragon"; + case "ThrownEnderpearl": + return "ender_pearl"; + case "FallingSand": + return "falling_block"; + case "FireworksRocketEntity": + return "fireworks_rocket"; + case "MinecartFurnace": + return "furnace_minecart"; + case "MinecartHopper": + return "hopper_minecart"; + case "EntityHorse": + return "horse"; + case "ItemFrame": + return "item_frame"; + case "LeashKnot": + return "leash_knot"; + case "LightningBolt": + return "lightning_bolt"; + case "LavaSlime": + return "magma_cube"; + case "MinecartRideable": + return "minecart"; + case "MushroomCow": + return "mooshroom"; + case "Ozelot": + return "ocelot"; + case "PolarBear": + return "polar_bear"; + case "ThrownPotion": + return "potion"; + case "ShulkerBullet": + return "shulker_bullet"; + case "SmallFireball": + return "small_fireball"; + case "MinecartSpawner": + return "spawner_minecart"; + case "SpectralArrow": + return "spectral_arrow"; + case "PrimedTnt": + return "tnt"; + case "MinecartTNT": + return "tnt_minecart"; + case "VillagerGolem": + return "villager_golem"; + case "WitherBoss": + return "wither"; + case "WitherSkull": + return "wither_skull"; + case "PigZombie": + return "zombie_pigman"; case "XPOrb": case "xp_orb": return "experience_orb"; @@ -356,17 +400,25 @@ public class MCEditSchematicReader extends NBTSchematicReader { case "EnderCrystal": case "ender_crystal": return "end_crystal"; - case "fireworks_rocket": return "firework_rocket"; + case "fireworks_rocket": + return "firework_rocket"; case "MinecartCommandBlock": case "commandblock_minecart": return "command_block_minecart"; - case "snowman": return "snow_golem"; - case "villager_golem": return "iron_golem"; - case "evocation_fangs": return "evoker_fangs"; - case "evocation_illager": return "evoker"; - case "vindication_illager": return "vindicator"; - case "illusion_illager": return "illusioner"; - default: return id; + case "snowman": + return "snow_golem"; + case "villager_golem": + return "iron_golem"; + case "evocation_fangs": + return "evoker_fangs"; + case "evocation_illager": + return "evoker"; + case "vindication_illager": + return "vindicator"; + case "illusion_illager": + return "illusioner"; + default: + return id; } } @@ -430,4 +482,5 @@ public class MCEditSchematicReader extends NBTSchematicReader { public void close() throws IOException { inputStream.close(); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/NBTSchematicReader.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/NBTSchematicReader.java index 44a133cfd..0328b1c76 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/NBTSchematicReader.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/NBTSchematicReader.java @@ -21,9 +21,9 @@ package com.sk89q.worldedit.extent.clipboard.io; import com.sk89q.jnbt.Tag; +import javax.annotation.Nullable; import java.io.IOException; import java.util.Map; -import javax.annotation.Nullable; /** * Base class for NBT schematic readers. @@ -58,4 +58,5 @@ public abstract class NBTSchematicReader implements ClipboardReader { return expected.cast(test); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/SpongeSchematicReader.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/SpongeSchematicReader.java index 6a8708404..e5eb9bfcf 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/SpongeSchematicReader.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/SpongeSchematicReader.java @@ -93,7 +93,7 @@ public class SpongeSchematicReader extends NBTSchematicReader { Map schematic = schematicTag.getValue(); final Platform platform = WorldEdit.getInstance().getPlatformManager() - .queryCapability(Capability.WORLD_EDITING); + .queryCapability(Capability.WORLD_EDITING); int liveDataVersion = platform.getDataVersion(); if (schematicVersion == 1) { @@ -103,22 +103,29 @@ public class SpongeSchematicReader extends NBTSchematicReader { } else if (schematicVersion == 2) { dataVersion = requireTag(schematic, "DataVersion", IntTag.class).getValue(); if (dataVersion < 0) { - LOGGER.warn("Schematic has an unknown data version ({}). Data may be incompatible.", - dataVersion); + LOGGER.warn( + "Schematic has an unknown data version ({}). Data may be incompatible.", + dataVersion + ); // Do not DFU unknown data dataVersion = liveDataVersion; } if (dataVersion > liveDataVersion) { LOGGER.warn("Schematic was made in a newer Minecraft version ({} > {}). Data may be incompatible.", - dataVersion, liveDataVersion); + dataVersion, liveDataVersion + ); } else if (dataVersion < liveDataVersion) { fixer = platform.getDataFixer(); if (fixer != null) { LOGGER.debug("Schematic was made in an older Minecraft version ({} < {}), will attempt DFU.", - dataVersion, liveDataVersion); + dataVersion, liveDataVersion + ); } else { - LOGGER.info("Schematic was made in an older Minecraft version ({} < {}), but DFU is not available. Data may be incompatible.", - dataVersion, liveDataVersion); + LOGGER.info( + "Schematic was made in an older Minecraft version ({} < {}), but DFU is not available. Data may be incompatible.", + dataVersion, + liveDataVersion + ); } } @@ -174,11 +181,11 @@ public class SpongeSchematicReader extends NBTSchematicReader { int[] offsetParts; if (offsetTag != null) { offsetParts = offsetTag.getValue(); - if (offsetParts.length != 3) { + if (offsetParts.length != 3) { throw new IOException("Invalid offset specified in schematic."); } } else { - offsetParts = new int[] {0, 0, 0}; + offsetParts = new int[]{0, 0, 0}; } BlockVector3 min = BlockVector3.at(offsetParts[0], offsetParts[1], offsetParts[2]); @@ -252,7 +259,8 @@ public class SpongeSchematicReader extends NBTSchematicReader { if (fixer != null) { //FAWE start tileEntity = ((CompoundTag) AdventureNBTConverter.fromAdventure(fixer.fixUp(DataFixer.FixTypes.BLOCK_ENTITY, - new CompoundTag(values).asBinaryTag(), dataVersion))).getValue(); + new CompoundTag(values).asBinaryTag(), dataVersion + ))).getValue(); //FAWE end } else { tileEntity = values; @@ -291,7 +299,10 @@ public class SpongeSchematicReader extends NBTSchematicReader { BlockVector3 pt = BlockVector3.at(x, y, z); try { if (tileEntitiesMap.containsKey(pt)) { - clipboard.setBlock(clipboard.getMinimumPoint().add(pt), state.toBaseBlock(new CompoundTag(tileEntitiesMap.get(pt)))); + clipboard.setBlock( + clipboard.getMinimumPoint().add(pt), + state.toBaseBlock(new CompoundTag(tileEntitiesMap.get(pt))) + ); } else { clipboard.setBlock(clipboard.getMinimumPoint().add(pt), state); } @@ -334,7 +345,7 @@ public class SpongeSchematicReader extends NBTSchematicReader { BiomeType biome = BiomeTypes.get(key); if (biome == null) { LOGGER.warn("Unknown biome type :" + key - + " in palette. Are you missing a mod or using a schematic made in a newer version of Minecraft?"); + + " in palette. Are you missing a mod or using a schematic made in a newer version of Minecraft?"); } Tag idTag = palettePart.getValue(); if (!(idTag instanceof IntTag)) { @@ -392,15 +403,21 @@ public class SpongeSchematicReader extends NBTSchematicReader { if (fixer != null) { //FAWE start - entityTag = (CompoundTag) AdventureNBTConverter.fromAdventure(fixer.fixUp(DataFixer.FixTypes.ENTITY, entityTag.asBinaryTag(), dataVersion)); + entityTag = (CompoundTag) AdventureNBTConverter.fromAdventure(fixer.fixUp( + DataFixer.FixTypes.ENTITY, + entityTag.asBinaryTag(), + dataVersion + )); //FAWE end } EntityType entityType = EntityTypes.get(id); if (entityType != null) { - Location location = NBTConversions.toLocation(clipboard, + Location location = NBTConversions.toLocation( + clipboard, requireTag(tags, "Pos", ListTag.class), - requireTag(tags, "Rotation", ListTag.class)); + requireTag(tags, "Rotation", ListTag.class) + ); BaseEntity state = new BaseEntity(entityType, entityTag); clipboard.createEntity(location, state); } else { @@ -413,4 +430,5 @@ public class SpongeSchematicReader extends NBTSchematicReader { public void close() throws IOException { inputStream.close(); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/SpongeSchematicWriter.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/SpongeSchematicWriter.java index 340f00c39..8f4a7fa80 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/SpongeSchematicWriter.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/SpongeSchematicWriter.java @@ -105,7 +105,7 @@ public class SpongeSchematicWriter implements ClipboardWriter { Map schematic = new HashMap<>(); schematic.put("Version", new IntTag(CURRENT_VERSION)); schematic.put("DataVersion", new IntTag( - WorldEdit.getInstance().getPlatformManager().queryCapability(Capability.WORLD_EDITING).getDataVersion())); + WorldEdit.getInstance().getPlatformManager().queryCapability(Capability.WORLD_EDITING).getDataVersion())); Map metadata = new HashMap<>(); metadata.put("WEOffsetX", new IntTag(offset.getBlockX())); @@ -121,9 +121,9 @@ public class SpongeSchematicWriter implements ClipboardWriter { // The Sponge format Offset refers to the 'min' points location in the world. That's our 'Origin' schematic.put("Offset", new IntArrayTag(new int[]{ - min.getBlockX(), - min.getBlockY(), - min.getBlockZ(), + min.getBlockX(), + min.getBlockY(), + min.getBlockZ(), })); int paletteMax = 0; @@ -152,7 +152,7 @@ public class SpongeSchematicWriter implements ClipboardWriter { values.remove("z"); values.put("Id", new StringTag(block.getNbtId())); - values.put("Pos", new IntArrayTag(new int[] { x, y, z })); + values.put("Pos", new IntArrayTag(new int[]{x, y, z})); tileEntities.add(new CompoundTag(values)); } @@ -270,4 +270,5 @@ public class SpongeSchematicWriter implements ClipboardWriter { public void close() throws IOException { outputStream.close(); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/legacycompat/BannerBlockCompatibilityHandler.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/legacycompat/BannerBlockCompatibilityHandler.java index 873f5b5bd..826967400 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/legacycompat/BannerBlockCompatibilityHandler.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/legacycompat/BannerBlockCompatibilityHandler.java @@ -164,4 +164,5 @@ public class BannerBlockCompatibilityHandler implements NBTCompatibilityHandler } return color + (isWall ? "_wall_banner" : "_banner"); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/legacycompat/BedBlockCompatibilityHandler.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/legacycompat/BedBlockCompatibilityHandler.java index d95c2ac92..eea18f8df 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/legacycompat/BedBlockCompatibilityHandler.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/legacycompat/BedBlockCompatibilityHandler.java @@ -138,4 +138,5 @@ public class BedBlockCompatibilityHandler implements NBTCompatibilityHandler { } return color + "_bed"; } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/legacycompat/EntityNBTCompatibilityHandler.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/legacycompat/EntityNBTCompatibilityHandler.java index 12c26f0e5..6fcc6f422 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/legacycompat/EntityNBTCompatibilityHandler.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/legacycompat/EntityNBTCompatibilityHandler.java @@ -23,7 +23,9 @@ import com.sk89q.jnbt.CompoundTag; import com.sk89q.worldedit.world.entity.EntityType; public interface EntityNBTCompatibilityHandler { + boolean isAffectedEntity(EntityType type, CompoundTag entityTag); CompoundTag updateNBT(EntityType type, CompoundTag entityTag); + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/legacycompat/FlowerPotCompatibilityHandler.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/legacycompat/FlowerPotCompatibilityHandler.java index f49779656..974000762 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/legacycompat/FlowerPotCompatibilityHandler.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/legacycompat/FlowerPotCompatibilityHandler.java @@ -31,6 +31,7 @@ import com.sk89q.worldedit.world.registry.LegacyMapper; import java.util.Map; public class FlowerPotCompatibilityHandler implements NBTCompatibilityHandler { + @Override public > boolean isAffectedBlock(B block) { return block.getBlockType() == BlockTypes.FLOWER_POT; @@ -94,4 +95,5 @@ public class FlowerPotCompatibilityHandler implements NBTCompatibilityHandler { } return null; } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/legacycompat/NBTCompatibilityHandler.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/legacycompat/NBTCompatibilityHandler.java index efded2896..b7093dd4d 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/legacycompat/NBTCompatibilityHandler.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/legacycompat/NBTCompatibilityHandler.java @@ -25,7 +25,9 @@ import com.sk89q.worldedit.world.block.BlockStateHolder; import java.util.Map; public interface NBTCompatibilityHandler { + > boolean isAffectedBlock(B block); > BlockStateHolder updateNBT(B block, Map values); + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/legacycompat/NoteBlockCompatibilityHandler.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/legacycompat/NoteBlockCompatibilityHandler.java index 01d01cc92..508e84280 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/legacycompat/NoteBlockCompatibilityHandler.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/legacycompat/NoteBlockCompatibilityHandler.java @@ -29,6 +29,7 @@ import com.sk89q.worldedit.world.block.BlockTypes; import java.util.Map; public class NoteBlockCompatibilityHandler implements NBTCompatibilityHandler { + private static final IntegerProperty NoteProperty; static { @@ -60,4 +61,5 @@ public class NoteBlockCompatibilityHandler implements NBTCompatibilityHandler { } return block; } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/legacycompat/SignCompatibilityHandler.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/legacycompat/SignCompatibilityHandler.java index ea21e7b10..d2dd4f5a8 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/legacycompat/SignCompatibilityHandler.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/legacycompat/SignCompatibilityHandler.java @@ -71,4 +71,5 @@ public class SignCompatibilityHandler implements NBTCompatibilityHandler { } return block; } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/legacycompat/SkullBlockCompatibilityHandler.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/legacycompat/SkullBlockCompatibilityHandler.java index b728102c7..f00622561 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/legacycompat/SkullBlockCompatibilityHandler.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/legacycompat/SkullBlockCompatibilityHandler.java @@ -35,7 +35,7 @@ public class SkullBlockCompatibilityHandler implements NBTCompatibilityHandler { private static final Property FacingProperty; static { - Property tempFacing; + Property tempFacing; try { tempFacing = BlockTypes.SKELETON_WALL_SKULL.getProperty("facing"); } catch (NullPointerException | IllegalArgumentException | ClassCastException e) { @@ -97,4 +97,5 @@ public class SkullBlockCompatibilityHandler implements NBTCompatibilityHandler { return null; } } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/inventory/BlockBag.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/inventory/BlockBag.java index fb34aaf51..efa068dce 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/inventory/BlockBag.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/inventory/BlockBag.java @@ -90,7 +90,7 @@ public abstract class BlockBag { * Store a block. * * @param blockState The block state - * @param amount The amount + * @param amount The amount * @throws BlockBagException on error */ public abstract void storeBlock(BlockState blockState, int amount) throws BlockBagException; @@ -129,4 +129,5 @@ public abstract class BlockBag { * @param pos the position */ public abstract void addSingleSourcePosition(Location pos); + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/inventory/BlockBagException.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/inventory/BlockBagException.java index 2627d382d..814568ed5 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/inventory/BlockBagException.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/inventory/BlockBagException.java @@ -23,4 +23,5 @@ package com.sk89q.worldedit.extent.inventory; * Thrown when a block bag detects a problem. */ public class BlockBagException extends Exception { + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/inventory/BlockBagExtent.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/inventory/BlockBagExtent.java index e6b9f1085..ff516e4c9 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/inventory/BlockBagExtent.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/inventory/BlockBagExtent.java @@ -29,10 +29,10 @@ import com.sk89q.worldedit.world.block.BlockStateHolder; import com.sk89q.worldedit.world.block.BlockType; import com.sk89q.worldedit.world.block.BlockTypes; +import javax.annotation.Nullable; import java.util.Arrays; import java.util.HashMap; import java.util.Map; -import javax.annotation.Nullable; /** * Applies a {@link BlockBag} to operations. @@ -41,14 +41,14 @@ public class BlockBagExtent extends AbstractDelegateExtent { //FAWE start private final boolean mine; - private int[] missingBlocks = new int[BlockTypes.size()]; + private final int[] missingBlocks = new int[BlockTypes.size()]; //FAWE end private BlockBag blockBag; /** * Create a new instance. * - * @param extent the extent + * @param extent the extent * @param blockBag the block bag */ //FAWE start @@ -137,4 +137,5 @@ public class BlockBagExtent extends AbstractDelegateExtent { return super.setBlock(x, y, z, block); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/inventory/OutOfBlocksException.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/inventory/OutOfBlocksException.java index ede4b6cf0..1151895b0 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/inventory/OutOfBlocksException.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/inventory/OutOfBlocksException.java @@ -23,4 +23,5 @@ package com.sk89q.worldedit.extent.inventory; * Thrown when there are no more blocks left. */ public class OutOfBlocksException extends BlockBagException { + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/inventory/OutOfSpaceException.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/inventory/OutOfSpaceException.java index 70c0c5f29..dac3cfcad 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/inventory/OutOfSpaceException.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/inventory/OutOfSpaceException.java @@ -45,4 +45,5 @@ public class OutOfSpaceException extends BlockBagException { public BlockType getType() { return this.type; } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/inventory/UnplaceableBlockException.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/inventory/UnplaceableBlockException.java index 21d95ee52..be5f6215e 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/inventory/UnplaceableBlockException.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/inventory/UnplaceableBlockException.java @@ -23,4 +23,5 @@ package com.sk89q.worldedit.extent.inventory; * Thrown when a block that can't be placed is used. */ public class UnplaceableBlockException extends BlockBagException { + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/reorder/MultiStageReorder.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/reorder/MultiStageReorder.java index 17c1b8dc6..7904d3bf5 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/reorder/MultiStageReorder.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/reorder/MultiStageReorder.java @@ -170,7 +170,7 @@ public class MultiStageReorder extends AbstractBufferingExtent implements Reorde /** * Create a new instance. * - * @param extent the extent + * @param extent the extent * @param enabled true to enable */ public MultiStageReorder(Extent extent, boolean enabled) { @@ -225,7 +225,9 @@ public class MultiStageReorder extends AbstractBufferingExtent implements Reorde PlacementPriority srcPriority = getPlacementPriority(existing); if (srcPriority != PlacementPriority.FIRST) { - BaseBlock replacement = (block.getBlockType().getMaterial().isAir() ? block : BlockTypes.AIR.getDefaultState()).toBaseBlock(); + BaseBlock replacement = (block.getBlockType().getMaterial().isAir() + ? block + : BlockTypes.AIR.getDefaultState()).toBaseBlock(); switch (srcPriority) { case FINAL: @@ -283,4 +285,5 @@ public class MultiStageReorder extends AbstractBufferingExtent implements Reorde return new OperationQueue(operations); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/transform/BlockTransformExtent.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/transform/BlockTransformExtent.java index c9358f4b5..954c1e009 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/transform/BlockTransformExtent.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/transform/BlockTransformExtent.java @@ -21,6 +21,8 @@ package com.sk89q.worldedit.extent.transform; import com.fastasyncworldedit.core.configuration.Settings; import com.fastasyncworldedit.core.extent.ResettableExtent; +import com.fastasyncworldedit.core.registry.state.PropertyKey; +import com.fastasyncworldedit.core.registry.state.PropertyKeySet; import com.google.common.collect.ImmutableMap; import com.sk89q.jnbt.ByteTag; import com.sk89q.jnbt.CompoundTag; @@ -36,8 +38,6 @@ import com.sk89q.worldedit.math.transform.Transform; import com.sk89q.worldedit.registry.state.AbstractProperty; import com.sk89q.worldedit.registry.state.DirectionalProperty; import com.sk89q.worldedit.registry.state.Property; -import com.fastasyncworldedit.core.registry.state.PropertyKey; -import com.fastasyncworldedit.core.registry.state.PropertyKeySet; import com.sk89q.worldedit.util.Direction; import com.sk89q.worldedit.world.block.BaseBlock; import com.sk89q.worldedit.world.block.BlockState; @@ -46,8 +46,9 @@ import com.sk89q.worldedit.world.block.BlockType; import com.sk89q.worldedit.world.block.BlockTypes; import com.sk89q.worldedit.world.block.BlockTypesCache; import org.apache.logging.log4j.Logger; -import javax.annotation.Nonnull; +import javax.annotation.Nonnull; +import javax.annotation.Nullable; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; @@ -56,7 +57,6 @@ import java.util.List; import java.util.Locale; import java.util.Map; import java.util.Set; -import javax.annotation.Nullable; import static com.google.common.base.Preconditions.checkNotNull; import static com.sk89q.worldedit.util.Direction.ASCENDING_EAST; @@ -206,7 +206,10 @@ public class BlockTransformExtent extends ResettableExtent { return null; } case "hinge": { - return adapt(combine(NORTHEAST, NORTHWEST, SOUTHEAST, SOUTHWEST), combine(NORTHEAST, NORTHWEST, SOUTHEAST, SOUTHWEST)); + return adapt( + combine(NORTHEAST, NORTHWEST, SOUTHEAST, SOUTHWEST), + combine(NORTHEAST, NORTHWEST, SOUTHEAST, SOUTHWEST) + ); } case "shape": { if (values.contains("left")) { @@ -221,16 +224,32 @@ public class BlockTransformExtent extends ResettableExtent { result.add(combine(NORTH, EAST, SOUTH, WEST)); continue; case "inner_left": - result.add(orIndex(combine(NORTHEAST, NORTHWEST, SOUTHWEST, SOUTHEAST), property.getIndexFor("outer_right"), property.getIndexFor("outer_left"))); + result.add(orIndex( + combine(NORTHEAST, NORTHWEST, SOUTHWEST, SOUTHEAST), + property.getIndexFor("outer_right"), + property.getIndexFor("outer_left") + )); continue; case "inner_right": - result.add(orIndex(combine(NORTHEAST, NORTHWEST, SOUTHWEST, SOUTHEAST), property.getIndexFor("outer_right"), property.getIndexFor("outer_left"))); + result.add(orIndex( + combine(NORTHEAST, NORTHWEST, SOUTHWEST, SOUTHEAST), + property.getIndexFor("outer_right"), + property.getIndexFor("outer_left") + )); continue; case "outer_left": - result.add(orIndex(combine(NORTHEAST, NORTHWEST, SOUTHWEST, SOUTHEAST), property.getIndexFor("inner_left"), property.getIndexFor("inner_right"))); + result.add(orIndex( + combine(NORTHEAST, NORTHWEST, SOUTHWEST, SOUTHEAST), + property.getIndexFor("inner_left"), + property.getIndexFor("inner_right") + )); continue; case "outer_right": - result.add(orIndex(combine(NORTHEAST, NORTHWEST, SOUTHWEST, SOUTHEAST), property.getIndexFor("inner_left"), property.getIndexFor("inner_right"))); + result.add(orIndex( + combine(NORTHEAST, NORTHWEST, SOUTHWEST, SOUTHEAST), + property.getIndexFor("inner_left"), + property.getIndexFor("inner_right") + )); continue; default: LOGGER.warn("Unknown direction {}", value); @@ -377,7 +396,10 @@ public class BlockTransformExtent extends ResettableExtent { applyAbsolute.mutY(applyAbsolute.getY() - applyOrigin.getY()); applyAbsolute.mutZ(applyAbsolute.getZ() - applyOrigin.getZ()); - Direction newDirection = Direction.findClosest(applyAbsolute, Direction.Flag.CARDINAL | Direction.Flag.ORDINAL | Direction.Flag.SECONDARY_ORDINAL); + Direction newDirection = Direction.findClosest( + applyAbsolute, + Direction.Flag.CARDINAL | Direction.Flag.ORDINAL | Direction.Flag.SECONDARY_ORDINAL + ); if (newDirection != null) { Map values = new HashMap<>(tag.getValue()); @@ -396,7 +418,8 @@ public class BlockTransformExtent extends ResettableExtent { BlockType type = state.getBlockType(); // Rotate North, East, South, West - if (type.hasProperty(PropertyKey.NORTH) && type.hasProperty(PropertyKey.EAST) && type.hasProperty(PropertyKey.SOUTH) && type.hasProperty(PropertyKey.WEST)) { + if (type.hasProperty(PropertyKey.NORTH) && type.hasProperty(PropertyKey.EAST) && type.hasProperty(PropertyKey.SOUTH) && type + .hasProperty(PropertyKey.WEST)) { Direction newNorth = findClosest(transform.apply(NORTH.toVector()), Flag.CARDINAL); Direction newEast = findClosest(transform.apply(EAST.toVector()), Flag.CARDINAL); Direction newSouth = findClosest(transform.apply(SOUTH.toVector()), Flag.CARDINAL); @@ -424,7 +447,11 @@ public class BlockTransformExtent extends ResettableExtent { int oldIndex = property.getIndex(state.getInternalId()); if (oldIndex >= directions.length) { if (Settings.IMP.ENABLED_COMPONENTS.DEBUG) { - LOGGER.warn(String.format("Index outside direction array length found for block:{%s} property:{%s}", state.getBlockType().getId(), property.getName())); + LOGGER.warn(String.format( + "Index outside direction array length found for block:{%s} property:{%s}", + state.getBlockType().getId(), + property.getName() + )); } continue; } @@ -474,7 +501,7 @@ public class BlockTransformExtent extends ResettableExtent { /** * Transform a block without making a copy. * - * @param block the block + * @param block the block * @param reverse true to transform in the opposite direction * @return the same block */ @@ -525,7 +552,7 @@ public class BlockTransformExtent extends ResettableExtent { * *

    The provided block is not modified.

    * - * @param block the block + * @param block the block * @param transform the transform * @return the same block */ diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/validation/BlockChangeLimiter.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/validation/BlockChangeLimiter.java index dd93c8527..498e5ce9f 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/validation/BlockChangeLimiter.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/validation/BlockChangeLimiter.java @@ -41,7 +41,7 @@ public class BlockChangeLimiter extends AbstractDelegateExtent { * Create a new instance. * * @param extent the extent - * @param limit the limit (>= 0) or -1 for no limit + * @param limit the limit (>= 0) or -1 for no limit */ public BlockChangeLimiter(Extent extent, int limit) { super(extent); @@ -86,4 +86,5 @@ public class BlockChangeLimiter extends AbstractDelegateExtent { } return super.setBlock(location, block); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/validation/DataValidatorExtent.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/validation/DataValidatorExtent.java index 74617a66c..1b806c7d8 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/validation/DataValidatorExtent.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/validation/DataValidatorExtent.java @@ -40,7 +40,7 @@ public class DataValidatorExtent extends AbstractDelegateExtent { * Create a new instance. * * @param extent the extent - * @param world the world + * @param world the world */ public DataValidatorExtent(Extent extent, World world) { super(extent); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/world/BiomeQuirkExtent.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/world/BiomeQuirkExtent.java index 1abdccfa7..56b0fa363 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/world/BiomeQuirkExtent.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/world/BiomeQuirkExtent.java @@ -47,4 +47,5 @@ public class BiomeQuirkExtent extends AbstractDelegateExtent { } return super.setBiome(position, biome) || success; } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/world/BlockQuirkExtent.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/world/BlockQuirkExtent.java index d4a2e1b5c..5ac42e8b4 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/world/BlockQuirkExtent.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/world/BlockQuirkExtent.java @@ -45,7 +45,7 @@ public class BlockQuirkExtent extends AbstractDelegateExtent { * Create a new instance. * * @param extent the extent - * @param world the world + * @param world the world */ public BlockQuirkExtent(Extent extent, World world) { super(extent); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/world/ChunkLoadingExtent.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/world/ChunkLoadingExtent.java index 78a29bc61..eeec63915 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/world/ChunkLoadingExtent.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/world/ChunkLoadingExtent.java @@ -40,8 +40,8 @@ public class ChunkLoadingExtent extends AbstractDelegateExtent { /** * Create a new instance. * - * @param extent the extent - * @param world the world + * @param extent the extent + * @param world the world * @param enabled true to enable */ public ChunkLoadingExtent(Extent extent, World world, boolean enabled) { @@ -55,7 +55,7 @@ public class ChunkLoadingExtent extends AbstractDelegateExtent { * Create a new instance with chunk loading enabled. * * @param extent the extent - * @param world the world + * @param world the world */ public ChunkLoadingExtent(Extent extent, World world) { this(extent, world, true); @@ -76,4 +76,5 @@ public class ChunkLoadingExtent extends AbstractDelegateExtent { } return super.setBiome(position, biome); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/world/SideEffectExtent.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/world/SideEffectExtent.java index 2c6c4cdad..1eacb1b4a 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/world/SideEffectExtent.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/world/SideEffectExtent.java @@ -124,4 +124,5 @@ public class SideEffectExtent extends AbstractDelegateExtent { } }; } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/world/SurvivalModeExtent.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/world/SurvivalModeExtent.java index 91ab5bee5..2cccc8c45 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/world/SurvivalModeExtent.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/world/SurvivalModeExtent.java @@ -47,7 +47,7 @@ public class SurvivalModeExtent extends AbstractDelegateExtent { * Create a new instance. * * @param extent the extent - * @param world the world + * @param world the world */ public SurvivalModeExtent(Extent extent, World world) { super(extent); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/world/WatchdogTickingExtent.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/world/WatchdogTickingExtent.java index 811bbde75..da425b11a 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/world/WatchdogTickingExtent.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/world/WatchdogTickingExtent.java @@ -47,7 +47,7 @@ public class WatchdogTickingExtent extends AbstractDelegateExtent { /** * Create a new instance. * - * @param extent the extent + * @param extent the extent * @param watchdog the watchdog to reset */ public WatchdogTickingExtent(Extent extent, Watchdog watchdog) { @@ -91,4 +91,5 @@ public class WatchdogTickingExtent extends AbstractDelegateExtent { onOperation(); return super.setBiome(position, biome); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/function/EditContext.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/EditContext.java index fafa59d91..ff42c4974 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/function/EditContext.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/function/EditContext.java @@ -31,9 +31,12 @@ import static com.google.common.base.Preconditions.checkNotNull; public class EditContext { private Extent destination; - @Nullable private Region region; - @Nullable private Pattern fill; - @Nullable private LocalSession session; + @Nullable + private Region region; + @Nullable + private Pattern fill; + @Nullable + private LocalSession session; public Extent getDestination() { return destination; @@ -70,4 +73,5 @@ public class EditContext { public void setSession(@Nullable LocalSession session) { this.session = session; } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/function/FlatRegionMaskingFilter.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/FlatRegionMaskingFilter.java index d98bf233b..69bd94410 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/function/FlatRegionMaskingFilter.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/function/FlatRegionMaskingFilter.java @@ -38,7 +38,7 @@ public class FlatRegionMaskingFilter implements FlatRegionFunction { /** * Create a new masking filter. * - * @param mask the mask + * @param mask the mask * @param function the delegate function to call */ public FlatRegionMaskingFilter(Mask2D mask, FlatRegionFunction function) { diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/function/GroundFunction.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/GroundFunction.java index 163c46d8e..abebfc700 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/function/GroundFunction.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/function/GroundFunction.java @@ -37,7 +37,7 @@ public class GroundFunction implements LayerFunction { /** * Create a new ground function. * - * @param mask a mask + * @param mask a mask * @param function the function to apply */ public GroundFunction(Mask mask, RegionFunction function) { diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/function/ItemUseFunction.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/ItemUseFunction.java index 27c789bdb..66f2ad756 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/function/ItemUseFunction.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/function/ItemUseFunction.java @@ -26,6 +26,7 @@ import com.sk89q.worldedit.util.Direction; import com.sk89q.worldedit.world.World; public final class ItemUseFunction implements RegionFunction { + private final World world; private final BaseItem item; private final Direction dir; @@ -44,4 +45,5 @@ public final class ItemUseFunction implements RegionFunction { public boolean apply(BlockVector3 position) throws WorldEditException { return world.useItem(position, item, dir); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/function/LayerFunction.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/LayerFunction.java index cfc6904b4..fbf45eb26 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/function/LayerFunction.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/function/LayerFunction.java @@ -44,9 +44,10 @@ public interface LayerFunction { * a {@link LayerVisitor} was used.

    * * @param position the position - * @param depth the depth as a number starting from 0 + * @param depth the depth as a number starting from 0 * @return true whether this method should be called for further layers * @throws WorldEditException thrown on an error */ boolean apply(BlockVector3 position, int depth) throws WorldEditException; + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/function/RegionFunction.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/RegionFunction.java index 62833b96f..70336b04a 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/function/RegionFunction.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/function/RegionFunction.java @@ -19,8 +19,8 @@ package com.sk89q.worldedit.function; -import com.fastasyncworldedit.core.queue.Filter; import com.fastasyncworldedit.core.extent.filter.block.FilterBlock; +import com.fastasyncworldedit.core.queue.Filter; import com.sk89q.worldedit.WorldEditException; import com.sk89q.worldedit.math.BlockVector3; diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/function/RegionMaskingFilter.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/RegionMaskingFilter.java index b4046ee9d..f9c1f0216 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/function/RegionMaskingFilter.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/function/RegionMaskingFilter.java @@ -42,7 +42,7 @@ public class RegionMaskingFilter implements RegionFunction { /** * Create a new masking filter. * - * @param mask the mask + * @param mask the mask * @param function the function */ //FAWE start - Extent diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/function/biome/BiomeReplace.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/biome/BiomeReplace.java index 787091e3c..6ae4ad2ec 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/function/biome/BiomeReplace.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/function/biome/BiomeReplace.java @@ -42,7 +42,7 @@ public class BiomeReplace implements FlatRegionFunction, RegionFunction { * Create a new instance. * * @param extent an extent - * @param biome a biome + * @param biome a biome */ public BiomeReplace(Extent extent, BiomeType biome) { this(extent, (BiomePattern) biome); @@ -51,7 +51,7 @@ public class BiomeReplace implements FlatRegionFunction, RegionFunction { /** * Create a new instance. * - * @param extent the extent to apply this function to + * @param extent the extent to apply this function to * @param pattern the biome pattern to set */ public BiomeReplace(Extent extent, BiomePattern pattern) { @@ -75,4 +75,5 @@ public class BiomeReplace implements FlatRegionFunction, RegionFunction { } return success; } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/function/biome/ExtentBiomeCopy.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/biome/ExtentBiomeCopy.java index 07e375db0..076c1f561 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/function/biome/ExtentBiomeCopy.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/function/biome/ExtentBiomeCopy.java @@ -44,11 +44,11 @@ public class ExtentBiomeCopy implements FlatRegionFunction, RegionFunction { /** * Make a new biome copy. * - * @param source the source extent - * @param from the source offset + * @param source the source extent + * @param from the source offset * @param destination the destination extent - * @param to the destination offset - * @param transform a transform to apply to positions (after source offset, before destination offset) + * @param to the destination offset + * @param transform a transform to apply to positions (after source offset, before destination offset) * @deprecated use {@link ExtentBiomeCopy#ExtentBiomeCopy(Extent, BlockVector3, Extent, BlockVector3, Transform)} */ @Deprecated @@ -68,11 +68,11 @@ public class ExtentBiomeCopy implements FlatRegionFunction, RegionFunction { /** * Make a new biome copy. * - * @param source the source extent - * @param from the source offset + * @param source the source extent + * @param from the source offset * @param destination the destination extent - * @param to the destination offset - * @param transform a transform to apply to positions (after source offset, before destination offset) + * @param to the destination offset + * @param transform a transform to apply to positions (after source offset, before destination offset) */ public ExtentBiomeCopy(Extent source, BlockVector3 from, Extent destination, BlockVector3 to, Transform transform) { checkNotNull(source); @@ -92,8 +92,8 @@ public class ExtentBiomeCopy implements FlatRegionFunction, RegionFunction { BiomeType biome = source.getBiome(position); BlockVector3 orig = position.subtract(from); BlockVector3 transformed = transform.apply(orig.toVector3()) - .toBlockPoint() - .add(to); + .toBlockPoint() + .add(to); return destination.setBiome(transformed, biome); } @@ -107,4 +107,5 @@ public class ExtentBiomeCopy implements FlatRegionFunction, RegionFunction { } return success; } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/function/block/BlockDistributionCounter.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/block/BlockDistributionCounter.java index fd080fd51..b0ee6e010 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/function/block/BlockDistributionCounter.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/function/block/BlockDistributionCounter.java @@ -73,4 +73,5 @@ public class BlockDistributionCounter implements RegionFunction { Collections.reverse(distribution); return this.distribution; } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/function/block/BlockReplace.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/block/BlockReplace.java index 55432053e..84f98d430 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/function/block/BlockReplace.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/function/block/BlockReplace.java @@ -38,7 +38,7 @@ public class BlockReplace implements RegionFunction { /** * Create a new instance. * - * @param extent an extent + * @param extent an extent * @param pattern a pattern */ public BlockReplace(Extent extent, Pattern pattern) { diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/function/block/ExtentBlockCopy.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/block/ExtentBlockCopy.java index 1b3efa404..093a7737f 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/function/block/ExtentBlockCopy.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/function/block/ExtentBlockCopy.java @@ -49,11 +49,11 @@ public class ExtentBlockCopy implements RegionFunction { /** * Make a new copy. * - * @param source the source extent - * @param from the source offset + * @param source the source extent + * @param from the source offset * @param destination the destination extent - * @param to the destination offset - * @param transform a transform to apply to positions (after source offset, before destination offset) + * @param to the destination offset + * @param transform a transform to apply to positions (after source offset, before destination offset) */ public ExtentBlockCopy(Extent source, BlockVector3 from, Extent destination, BlockVector3 to, Transform transform) { checkNotNull(source); @@ -105,8 +105,8 @@ public class ExtentBlockCopy implements RegionFunction { if (newDirection != null) { return state.toBaseBlock( - tag.putByte("Rot", (byte) MCDirections.toRotation(newDirection)) - //FAWE end + tag.putByte("Rot", (byte) MCDirections.toRotation(newDirection)) + //FAWE end ); } } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/function/block/Naturalizer.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/block/Naturalizer.java index dbab12632..7b990dc29 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/function/block/Naturalizer.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/function/block/Naturalizer.java @@ -105,4 +105,5 @@ public class Naturalizer implements LayerFunction { return true; } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/function/block/SnowSimulator.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/block/SnowSimulator.java index 37ac7d2d8..c84fcc67a 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/function/block/SnowSimulator.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/function/block/SnowSimulator.java @@ -39,7 +39,8 @@ public class SnowSimulator implements LayerFunction { private static final EnumProperty slab = (EnumProperty) (Property) BlockTypes.SANDSTONE_SLAB.getProperty("type"); private static final EnumProperty stair = (EnumProperty) (Property) BlockTypes.SANDSTONE_STAIRS.getProperty("half"); private static final EnumProperty trapdoor = (EnumProperty) (Property) BlockTypes.ACACIA_TRAPDOOR.getProperty("half"); - private static final BooleanProperty trapdoorOpen = (BooleanProperty) (Property) BlockTypes.ACACIA_TRAPDOOR.getProperty("open"); + private static final BooleanProperty trapdoorOpen = (BooleanProperty) (Property) BlockTypes.ACACIA_TRAPDOOR.getProperty( + "open"); //FAWE end private final BlockState ice = BlockTypes.ICE.getDefaultState(); @@ -115,14 +116,15 @@ public class SnowSimulator implements LayerFunction { if (!above.getBlockType().getMaterial().isAir() && (!stack || above.getBlockType() != BlockTypes.SNOW)) { return false; //FAWE start - } else if (!block.getBlockType().getId().toLowerCase(Locale.ROOT).contains("ice") && this.extent.getEmittedLight(abovePosition) > 10) { + } else if (!block.getBlockType().getId().toLowerCase(Locale.ROOT).contains("ice") && this.extent.getEmittedLight( + abovePosition) > 10) { return false; } else if (!block.getBlockType().getMaterial().isFullCube()) { Map, Object> states = block.getStates(); if (states.containsKey(slab) && block.getState(slab).equalsIgnoreCase("bottom")) { return false; } else if (states.containsKey(trapdoorOpen) && states.containsKey(trapdoor) && (block.getState(trapdoorOpen) - || block.getState(trapdoor).equalsIgnoreCase("bottom"))) { + || block.getState(trapdoor).equalsIgnoreCase("bottom"))) { return false; } else if (states.containsKey(stair) && block.getState(stair).equalsIgnoreCase("bottom")) { return false; @@ -130,7 +132,10 @@ public class SnowSimulator implements LayerFunction { return false; } //FAWE end - } else if (!block.getBlockType().getId().toLowerCase(Locale.ROOT).contains("ice") && block.getBlockType().getMaterial().isTranslucent()) { + } else if (!block.getBlockType().getId().toLowerCase(Locale.ROOT).contains("ice") && block + .getBlockType() + .getMaterial() + .isTranslucent()) { return false; } @@ -162,4 +167,5 @@ public class SnowSimulator implements LayerFunction { } return false; } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/function/entity/ExtentEntityCopy.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/entity/ExtentEntityCopy.java index b9bdc9445..4e3fdfd79 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/function/entity/ExtentEntityCopy.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/function/entity/ExtentEntityCopy.java @@ -57,13 +57,14 @@ public class ExtentEntityCopy implements EntityFunction { private boolean removing; //FAWE start + /** * Create a new instance. * - * @param from the from position + * @param from the from position * @param destination the destination {@code Extent} - * @param to the destination position - * @param transform the transformation to apply to both position and orientation + * @param to the destination position + * @param transform the transformation to apply to both position and orientation * @deprecated FAWE Deprecation - Use method with Extent */ @Deprecated @@ -83,11 +84,11 @@ public class ExtentEntityCopy implements EntityFunction { /** * Create a new instance. * - * @param source the source {@code Extent} - * @param from the from position + * @param source the source {@code Extent} + * @param from the from position * @param destination the destination {@code Extent} - * @param to the destination position - * @param transform the transformation to apply to both position and orientation + * @param to the destination position + * @param transform the transformation to apply to both position and orientation */ public ExtentEntityCopy(Extent source, Vector3 from, Extent destination, Vector3 to, Transform transform) { checkNotNull(source); @@ -125,14 +126,17 @@ public class ExtentEntityCopy implements EntityFunction { BaseEntity state = entity.getState(); //FAWE start - Don't copy players if (state != null && state.getType() != EntityTypes.PLAYER) { - //FAWE end + //FAWE end Location newLocation; Location location = entity.getLocation(); // If the entity has stored the location in the NBT data, we use that location CompoundTag tag = state.getNbtData(); - boolean hasTilePosition = tag != null && tag.containsKey("TileX") && tag.containsKey("TileY") && tag.containsKey("TileZ"); + boolean hasTilePosition = tag != null && tag.containsKey("TileX") && tag.containsKey("TileY") && tag.containsKey( + "TileZ"); if (hasTilePosition) { - location = location.setPosition(Vector3.at(tag.asInt("TileX"), tag.asInt("TileY"), tag.asInt("TileZ")).add(0.5, 0.5, 0.5)); + location = location.setPosition(Vector3 + .at(tag.asInt("TileX"), tag.asInt("TileY"), tag.asInt("TileZ")) + .add(0.5, 0.5, 0.5)); } Vector3 pivot = from.round().add(0.5, 0.5, 0.5); @@ -143,8 +147,8 @@ public class ExtentEntityCopy implements EntityFunction { Vector3 newDirection; newDirection = transform.isIdentity() - ? entity.getLocation().getDirection() - : transform.apply(location.getDirection()).subtract(transform.apply(Vector3.ZERO)).normalize(); + ? entity.getLocation().getDirection() + : transform.apply(location.getDirection()).subtract(transform.apply(Vector3.ZERO)).normalize(); newLocation = new Location(destination, newPosition.add(to.round().add(0.5, 0.5, 0.5)), newDirection); // Some entities store their position data in NBT @@ -166,9 +170,14 @@ public class ExtentEntityCopy implements EntityFunction { } if (uuid != null) { if (source != null) { - source.removeEntity(entity.getLocation().getBlockX(), entity.getLocation().getBlockY(), entity.getLocation().getBlockZ(), uuid); + source.removeEntity( + entity.getLocation().getBlockX(), + entity.getLocation().getBlockY(), + entity.getLocation().getBlockZ(), + uuid + ); } else { - //FAWE end + //FAWE end entity.remove(); } } @@ -196,14 +205,18 @@ public class ExtentEntityCopy implements EntityFunction { if (leashTag instanceof CompoundTag) { CompoundTag leashCompound = (CompoundTag) leashTag; if (leashCompound.containsKey("X")) { // leashed to a fence - Vector3 tilePosition = Vector3.at(leashCompound.asInt("X"), leashCompound.asInt("Y"), leashCompound.asInt("Z")); + Vector3 tilePosition = Vector3.at( + leashCompound.asInt("X"), + leashCompound.asInt("Y"), + leashCompound.asInt("Z") + ); BlockVector3 newLeash = transform.apply(tilePosition.subtract(from)).add(to).toBlockPoint(); return new BaseEntity(state.getType(), tag.createBuilder() .put("Leash", leashCompound.createBuilder() - .putInt("X", newLeash.getBlockX()) - .putInt("Y", newLeash.getBlockY()) - .putInt("Z", newLeash.getBlockZ()) - .build() + .putInt("X", newLeash.getBlockX()) + .putInt("Y", newLeash.getBlockY()) + .putInt("Z", newLeash.getBlockZ()) + .build() ).build()); } } @@ -226,14 +239,24 @@ public class ExtentEntityCopy implements EntityFunction { if (hasFacing) { boolean isPainting = state.getType() == EntityTypes.PAINTING; // Paintings have different facing values - Direction direction = isPainting ? MCDirections.fromHorizontalHanging(tag.asInt("Facing")) : MCDirections.fromHanging(tag.asInt("Facing")); + Direction direction = isPainting + ? MCDirections.fromHorizontalHanging(tag.asInt("Facing")) + : MCDirections.fromHanging(tag.asInt("Facing")); if (direction != null) { - Vector3 vector = transform.apply(direction.toVector()).subtract(transform.apply(Vector3.ZERO)).normalize(); + Vector3 vector = transform + .apply(direction.toVector()) + .subtract(transform.apply(Vector3.ZERO)) + .normalize(); Direction newDirection = Direction.findClosest(vector, Flag.CARDINAL); if (newDirection != null) { - builder.putByte("Facing", (byte) (isPainting ? MCDirections.toHorizontalHanging(newDirection) : MCDirections.toHanging(newDirection))); + builder.putByte( + "Facing", + (byte) (isPainting + ? MCDirections.toHorizontalHanging(newDirection) + : MCDirections.toHanging(newDirection)) + ); } } } @@ -243,7 +266,16 @@ public class ExtentEntityCopy implements EntityFunction { ListTag orgrot = state.getNbtData().getListTag("Rotation"); Vector3 orgDirection = new Location(source, 0, 0, 0, orgrot.getFloat(0), orgrot.getFloat(1)).getDirection(); Vector3 newDirection = transform.apply(orgDirection).subtract(transform.apply(Vector3.ZERO)).normalize(); - builder.put("Rotation", new ListTag(FloatTag.class, Arrays.asList(new FloatTag((float) newDirection.toYaw()), new FloatTag((float) newDirection.toPitch())))); + builder.put( + "Rotation", + new ListTag( + FloatTag.class, + Arrays.asList( + new FloatTag((float) newDirection.toYaw()), + new FloatTag((float) newDirection.toPitch()) + ) + ) + ); } return new BaseEntity(state.getType(), builder.build()); @@ -253,7 +285,16 @@ public class ExtentEntityCopy implements EntityFunction { ListTag orgrot = state.getNbtData().getListTag("Rotation"); Vector3 orgDirection = new Location(source, 0, 0, 0, orgrot.getFloat(0), orgrot.getFloat(1)).getDirection(); Vector3 newDirection = transform.apply(orgDirection).subtract(transform.apply(Vector3.ZERO)).normalize(); - builder.put("Rotation", new ListTag(FloatTag.class, Arrays.asList(new FloatTag((float) newDirection.toYaw()), new FloatTag((float) newDirection.toPitch())))); + builder.put( + "Rotation", + new ListTag( + FloatTag.class, + Arrays.asList( + new FloatTag((float) newDirection.toYaw()), + new FloatTag((float) newDirection.toPitch()) + ) + ) + ); return new BaseEntity(state.getType(), builder.build()); //FAWE end @@ -262,4 +303,5 @@ public class ExtentEntityCopy implements EntityFunction { return state; } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/function/factory/Apply.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/factory/Apply.java index 252476e77..131151081 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/function/factory/Apply.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/function/factory/Apply.java @@ -34,7 +34,7 @@ import static com.sk89q.worldedit.util.GuavaUtil.firstNonNull; * Creates an operation from a region context. * * @deprecated Use {@link ApplyRegion} or {@link ApplyLayer} - * depending on function type. + * depending on function type. */ @Deprecated public class Apply implements Contextual { diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/function/factory/ApplyLayer.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/factory/ApplyLayer.java index d1ad47907..1d4d31fb5 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/function/factory/ApplyLayer.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/function/factory/ApplyLayer.java @@ -51,10 +51,12 @@ public class ApplyLayer implements Contextual { public Operation createFromContext(EditContext context) { FlatRegion localRegion = Regions.asFlatRegion(firstNonNull(context.getRegion(), region)); - return new LayerVisitor(localRegion, - localRegion.getMinimumPoint().getY(), - localRegion.getMaximumPoint().getY(), - function.createFromContext(context)); + return new LayerVisitor( + localRegion, + localRegion.getMinimumPoint().getY(), + localRegion.getMaximumPoint().getY(), + function.createFromContext(context) + ); } @Override diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/function/factory/Deform.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/factory/Deform.java index 95367bc26..115c05044 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/function/factory/Deform.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/function/factory/Deform.java @@ -163,10 +163,12 @@ public class Deform implements Contextual { LocalSession session = context.getSession(); return new DeformOperation(context.getDestination(), region, zero, unit, expression, - session == null ? WorldEdit.getInstance().getConfiguration().calculationTimeout : session.getTimeout()); + session == null ? WorldEdit.getInstance().getConfiguration().calculationTimeout : session.getTimeout() + ); } private static final class DeformOperation implements Operation { + private final Extent destination; private final Region region; private final Vector3 zero; @@ -201,8 +203,10 @@ public class Deform implements Contextual { @Override public Iterable getStatusMessages() { - return ImmutableList.of(Caption.of("worldedit.operation.deform.expression", - TextComponent.of(expression))); + return ImmutableList.of(Caption.of( + "worldedit.operation.deform.expression", + TextComponent.of(expression) + )); } } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/function/factory/Paint.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/factory/Paint.java index ad7dd9f2e..cec32b679 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/function/factory/Paint.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/function/factory/Paint.java @@ -50,8 +50,10 @@ public class Paint implements Contextual { this(new NullExtent(), new NullRegion(), function, density); } - public Paint(Extent destination, Region region, Contextual function, - double density) { + public Paint( + Extent destination, Region region, Contextual function, + double density + ) { checkNotNull(destination, "destination"); checkNotNull(region, "region"); checkNotNull(function, "function"); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/function/factory/Snow.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/factory/Snow.java index 0f09b54a7..11a9aaaf0 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/function/factory/Snow.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/function/factory/Snow.java @@ -41,4 +41,5 @@ public class Snow implements Contextual { public String toString() { return "snow" + (this.stack ? " stacker" : ""); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/function/generator/ForestGenerator.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/generator/ForestGenerator.java index e502615ce..2c4bfadca 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/function/generator/ForestGenerator.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/function/generator/ForestGenerator.java @@ -41,7 +41,7 @@ public class ForestGenerator implements RegionFunction { * Create a new instance. * * @param editSession the edit session - * @param treeType a tree generator + * @param treeType a tree generator */ public ForestGenerator(EditSession editSession, TreeGenerator.TreeType treeType) { this.editSession = editSession; @@ -71,4 +71,5 @@ public class ForestGenerator implements RegionFunction { return false; } } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/function/generator/GardenPatchGenerator.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/generator/GardenPatchGenerator.java index a9c07030f..e72e2e5fe 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/function/generator/GardenPatchGenerator.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/function/generator/GardenPatchGenerator.java @@ -38,7 +38,8 @@ public class GardenPatchGenerator implements RegionFunction { private final Random random = new Random(); private final EditSession editSession; private Pattern plant = getPumpkinPattern(); - private final Pattern leafPattern = BlockTypes.OAK_LEAVES.getDefaultState().with(BlockTypes.OAK_LEAVES.getProperty("persistent"), true); + private final Pattern leafPattern = BlockTypes.OAK_LEAVES.getDefaultState().with(BlockTypes.OAK_LEAVES.getProperty( + "persistent"), true); private int affected; /** @@ -81,7 +82,7 @@ public class GardenPatchGenerator implements RegionFunction { * Make a patch vine. * * @param basePos the base position - * @param pos the vine position + * @param pos the vine position */ private void placeVine(BlockVector3 basePos, BlockVector3 pos) throws MaxChangedBlocksException { if (pos.distance(basePos) > 4) { @@ -196,11 +197,12 @@ public class GardenPatchGenerator implements RegionFunction { * Set a block only if there's no block already there. * * @param position the position - * @param pattern the pattern to set + * @param pattern the pattern to set * @return if block was changed * @throws MaxChangedBlocksException thrown if too many blocks are changed */ - private static boolean setBlockIfAir(EditSession session, BlockVector3 position, Pattern pattern) throws MaxChangedBlocksException { + private static boolean setBlockIfAir(EditSession session, BlockVector3 position, Pattern pattern) throws + MaxChangedBlocksException { return session.getBlock(position).getBlockType().getMaterial().isAir() && session.setBlock(position, pattern); } @@ -212,4 +214,5 @@ public class GardenPatchGenerator implements RegionFunction { public static Pattern getMelonPattern() { return BlockTypes.MELON.getDefaultState(); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/AbstractMask.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/AbstractMask.java index adb9f38bd..c14ce3862 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/AbstractMask.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/AbstractMask.java @@ -23,4 +23,5 @@ package com.sk89q.worldedit.function.mask; * A base class of {@link Mask} that all masks should inherit from. */ public abstract class AbstractMask implements Mask { + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/AbstractMask2D.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/AbstractMask2D.java index d00a78f4a..b2a7caa1a 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/AbstractMask2D.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/AbstractMask2D.java @@ -23,4 +23,5 @@ package com.sk89q.worldedit.function.mask; * A base class of {@link Mask2D} that all masks should inherit from. */ public abstract class AbstractMask2D implements Mask2D { + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/BiomeMask.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/BiomeMask.java index 762dd104d..cd3ef56d5 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/BiomeMask.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/BiomeMask.java @@ -23,11 +23,11 @@ import com.sk89q.worldedit.extent.Extent; import com.sk89q.worldedit.math.BlockVector3; import com.sk89q.worldedit.world.biome.BiomeType; +import javax.annotation.Nullable; import java.util.Arrays; import java.util.Collection; import java.util.HashSet; import java.util.Set; -import javax.annotation.Nullable; import static com.google.common.base.Preconditions.checkNotNull; @@ -58,7 +58,7 @@ public class BiomeMask extends AbstractExtentMask { * Create a new biome mask. * * @param extent the extent - * @param biome an array of biomes to match + * @param biome an array of biomes to match */ public BiomeMask(Extent extent, BiomeType... biome) { this(extent, Arrays.asList(checkNotNull(biome))); @@ -116,4 +116,5 @@ public class BiomeMask extends AbstractExtentMask { BiomeType biome = getExtent().getBiome(position); return biomes.contains(biome); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/BiomeMask2D.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/BiomeMask2D.java index 5b26617a5..f77bf17c9 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/BiomeMask2D.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/BiomeMask2D.java @@ -58,7 +58,7 @@ public class BiomeMask2D extends AbstractMask2D { * Create a new biome mask. * * @param extent the extent - * @param biome an array of biomes to match + * @param biome an array of biomes to match */ public BiomeMask2D(Extent extent, BiomeType... biome) { this(extent, Arrays.asList(checkNotNull(biome))); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/BlockMask.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/BlockMask.java index 2b54b7d85..c7dd577c1 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/BlockMask.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/BlockMask.java @@ -22,6 +22,7 @@ package com.sk89q.worldedit.function.mask; import com.fastasyncworldedit.core.function.mask.ABlockMask; import com.fastasyncworldedit.core.function.mask.SingleBlockStateMask; import com.fastasyncworldedit.core.function.mask.SingleBlockTypeMask; +import com.fastasyncworldedit.core.world.block.BlanketBaseBlock; import com.sk89q.worldedit.extent.Extent; import com.sk89q.worldedit.extent.NullExtent; import com.sk89q.worldedit.math.BlockVector3; @@ -30,7 +31,6 @@ import com.sk89q.worldedit.world.block.BlockState; import com.sk89q.worldedit.world.block.BlockType; import com.sk89q.worldedit.world.block.BlockTypes; import com.sk89q.worldedit.world.block.BlockTypesCache; -import com.fastasyncworldedit.core.world.block.BlanketBaseBlock; import javax.annotation.Nullable; import java.util.Arrays; @@ -87,7 +87,7 @@ public class BlockMask extends ABlockMask { * Create a new block mask. * * @param extent the extent - * @param block an array of blocks to match + * @param block an array of blocks to match */ public BlockMask(Extent extent, BaseBlock... block) { this(extent, Arrays.asList(checkNotNull(block))); @@ -211,8 +211,8 @@ public class BlockMask extends ABlockMask { @Override public boolean replacesAir() { return ordinals[BlockTypes.AIR.getDefaultState().getOrdinal()] - || ordinals[BlockTypes.CAVE_AIR.getDefaultState().getOrdinal()] - || ordinals[BlockTypes.VOID_AIR.getDefaultState().getOrdinal()]; + || ordinals[BlockTypes.CAVE_AIR.getDefaultState().getOrdinal()] + || ordinals[BlockTypes.VOID_AIR.getDefaultState().getOrdinal()]; } @Override diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/BlockStateMask.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/BlockStateMask.java index 52950e022..ac558520c 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/BlockStateMask.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/BlockStateMask.java @@ -28,9 +28,9 @@ import com.sk89q.worldedit.world.block.BlockState; import com.sk89q.worldedit.world.block.BlockType; import com.sk89q.worldedit.world.block.BlockTypes; +import javax.annotation.Nullable; import java.util.HashMap; import java.util.Map; -import javax.annotation.Nullable; @Deprecated public class BlockStateMask extends AbstractExtentMask { @@ -45,7 +45,7 @@ public class BlockStateMask extends AbstractExtentMask { * @param extent the extent to get blocks from * @param states the desired states (property -> value) that a block should have to match the mask * @param strict true to only match blocks that have all properties and values, false to also match blocks that - * do not have the properties (but only fail blocks with the properties but wrong values) + * do not have the properties (but only fail blocks with the properties but wrong values) */ public BlockStateMask(Extent extent, Map states, boolean strict) { super(extent); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/BlockTypeMask.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/BlockTypeMask.java index eac2aebd6..17f1419e5 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/BlockTypeMask.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/BlockTypeMask.java @@ -23,12 +23,12 @@ import com.sk89q.worldedit.extent.Extent; import com.sk89q.worldedit.math.BlockVector3; import com.sk89q.worldedit.world.block.BlockType; import com.sk89q.worldedit.world.block.BlockTypes; -import javax.annotation.Nonnull; +import javax.annotation.Nonnull; +import javax.annotation.Nullable; import java.util.Collection; import java.util.HashSet; import java.util.Set; -import javax.annotation.Nullable; import static com.google.common.base.Preconditions.checkNotNull; @@ -58,7 +58,7 @@ public class BlockTypeMask extends AbstractExtentMask { * Create a new block mask. * * @param extent the extent - * @param block an array of blocks to match + * @param block an array of blocks to match */ public BlockTypeMask(Extent extent, @Nonnull BlockType... block) { super(extent); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/ExpressionMask.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/ExpressionMask.java index 5f46676ee..1b95057ba 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/ExpressionMask.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/ExpressionMask.java @@ -25,8 +25,8 @@ import com.sk89q.worldedit.internal.expression.ExpressionException; import com.sk89q.worldedit.math.BlockVector3; import com.sk89q.worldedit.regions.shape.WorldEditExpressionEnvironment; -import java.util.function.IntSupplier; import javax.annotation.Nullable; +import java.util.function.IntSupplier; import static com.google.common.base.Preconditions.checkNotNull; @@ -75,8 +75,10 @@ public class ExpressionMask extends AbstractMask { if (timeout == null) { return expression.evaluate(vector.getX(), vector.getY(), vector.getZ()) > 0; } else { - return expression.evaluate(new double[]{vector.getX(), vector.getY(), vector.getZ()}, - timeout.getAsInt()) > 0; + return expression.evaluate( + new double[]{vector.getX(), vector.getY(), vector.getZ()}, + timeout.getAsInt() + ) > 0; } } catch (EvaluationException e) { return false; diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/ExpressionMask2D.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/ExpressionMask2D.java index bc31f84f6..0d2854b7c 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/ExpressionMask2D.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/ExpressionMask2D.java @@ -24,8 +24,8 @@ import com.sk89q.worldedit.internal.expression.Expression; import com.sk89q.worldedit.internal.expression.ExpressionException; import com.sk89q.worldedit.math.BlockVector2; -import java.util.function.IntSupplier; import javax.annotation.Nullable; +import java.util.function.IntSupplier; import static com.google.common.base.Preconditions.checkNotNull; diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/InverseSingleBlockStateMask.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/InverseSingleBlockStateMask.java index 249d94d31..e8b14b95a 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/InverseSingleBlockStateMask.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/InverseSingleBlockStateMask.java @@ -7,6 +7,7 @@ import com.sk89q.worldedit.math.BlockVector3; import com.sk89q.worldedit.world.block.BlockState; public class InverseSingleBlockStateMask extends ABlockMask { + private final char ordinal; private final boolean isAir; @@ -53,4 +54,5 @@ public class InverseSingleBlockStateMask extends ABlockMask { public Mask copy() { return new InverseSingleBlockStateMask(getExtent(), ordinal, isAir); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/InverseSingleBlockTypeMask.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/InverseSingleBlockTypeMask.java index 9a3ab9a88..7ebca6b62 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/InverseSingleBlockTypeMask.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/InverseSingleBlockTypeMask.java @@ -9,6 +9,7 @@ import com.sk89q.worldedit.world.block.BlockTypes; import com.sk89q.worldedit.world.block.BlockTypesCache; public class InverseSingleBlockTypeMask extends ABlockMask { + private final int internalId; private final boolean replacesAir; @@ -42,4 +43,5 @@ public class InverseSingleBlockTypeMask extends ABlockMask { public boolean replacesAir() { return replacesAir; } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/Mask.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/Mask.java index 5b6e3e97c..86d76cf5d 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/Mask.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/Mask.java @@ -19,13 +19,13 @@ package com.sk89q.worldedit.function.mask; -import com.fastasyncworldedit.core.queue.Filter; import com.fastasyncworldedit.core.extent.filter.MaskFilter; import com.fastasyncworldedit.core.extent.filter.block.FilterBlock; import com.fastasyncworldedit.core.function.mask.InverseMask; +import com.fastasyncworldedit.core.queue.Filter; import com.sk89q.worldedit.math.BlockVector3; -import javax.annotation.Nullable; +import javax.annotation.Nullable; import java.util.function.Consumer; /** @@ -52,9 +52,11 @@ public interface Mask { } //FAWE start + /** * Returns null if no optimization took place * otherwise a new/same mask + * * @return */ @Nullable @@ -105,6 +107,7 @@ public interface Mask { /** * Returns a copy of the mask. Usually for multi-threaded operation + * * @return a clone of the mask */ Mask copy(); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/MaskIntersection.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/MaskIntersection.java index 9c4a8625a..fd4bb1730 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/MaskIntersection.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/MaskIntersection.java @@ -23,6 +23,7 @@ import com.sk89q.worldedit.internal.util.LogManagerCompat; import com.sk89q.worldedit.math.BlockVector3; import org.apache.logging.log4j.Logger; +import javax.annotation.Nullable; import java.util.AbstractMap; import java.util.ArrayList; import java.util.Arrays; @@ -36,7 +37,6 @@ import java.util.Map.Entry; import java.util.Set; import java.util.function.Function; import java.util.stream.Collectors; -import javax.annotation.Nullable; import static com.google.common.base.Preconditions.checkNotNull; @@ -260,7 +260,7 @@ public class MaskIntersection extends AbstractMask { @Override public boolean test(BlockVector3 vector) { for (Mask mask : masksArray) { - if (!mask.test( vector)) { + if (!mask.test(vector)) { return false; } } @@ -286,7 +286,7 @@ public class MaskIntersection extends AbstractMask { //FAWE start @Override - public Mask copy(){ + public Mask copy() { Set masks = this.masks.stream().map(Mask::copy).collect(Collectors.toSet()); return new MaskIntersection(masks); } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/Masks.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/Masks.java index 7c135acdf..cf1ee8321 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/Masks.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/Masks.java @@ -126,7 +126,8 @@ public final class Masks { //FAWE start - protected > private protected static class AlwaysTrue implements Mask, Mask2D { - //FAWE end + + //FAWE end @Override public boolean test(BlockVector3 vector) { return true; @@ -171,7 +172,8 @@ public final class Masks { //FAWE start - protected > private protected static class AlwaysFalse implements Mask, Mask2D { - //FAWE end + + //FAWE end @Override public boolean test(BlockVector3 vector) { return false; diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/NoiseFilter.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/NoiseFilter.java index 88efb649a..2742942e0 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/NoiseFilter.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/NoiseFilter.java @@ -19,8 +19,8 @@ package com.sk89q.worldedit.function.mask; -import com.sk89q.worldedit.math.BlockVector3; import com.fastasyncworldedit.core.math.MutableVector3; +import com.sk89q.worldedit.math.BlockVector3; import com.sk89q.worldedit.math.noise.NoiseGenerator; import javax.annotation.Nullable; @@ -41,7 +41,7 @@ public class NoiseFilter extends AbstractMask { * Create a new noise filter. * * @param noiseGenerator the noise generator - * @param density the density + * @param density the density */ public NoiseFilter(NoiseGenerator noiseGenerator, double density) { setNoiseGenerator(noiseGenerator); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/NoiseFilter2D.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/NoiseFilter2D.java index 1d792e540..67f94376b 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/NoiseFilter2D.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/NoiseFilter2D.java @@ -38,7 +38,7 @@ public class NoiseFilter2D extends AbstractMask2D { * Create a new noise filter. * * @param noiseGenerator the noise generator - * @param density the density + * @param density the density */ public NoiseFilter2D(NoiseGenerator noiseGenerator, double density) { setNoiseGenerator(noiseGenerator); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/OffsetMask.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/OffsetMask.java index 2bc9b13a9..b7d8006ad 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/OffsetMask.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/OffsetMask.java @@ -37,7 +37,7 @@ public class OffsetMask extends AbstractMask { /** * Create a new instance. * - * @param mask the mask + * @param mask the mask * @param offset the offset */ public OffsetMask(Mask mask, BlockVector3 offset) { diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/OffsetMask2D.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/OffsetMask2D.java index afafc66c4..3e70c9ddd 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/OffsetMask2D.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/OffsetMask2D.java @@ -19,8 +19,8 @@ package com.sk89q.worldedit.function.mask; -import com.sk89q.worldedit.math.BlockVector2; import com.fastasyncworldedit.core.math.MutableBlockVector2; +import com.sk89q.worldedit.math.BlockVector2; import static com.google.common.base.Preconditions.checkNotNull; @@ -37,7 +37,7 @@ public class OffsetMask2D extends AbstractMask2D { /** * Create a new instance. * - * @param mask the mask + * @param mask the mask * @param offset the offset */ public OffsetMask2D(Mask2D mask, BlockVector2 offset) { diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/SolidBlockMask.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/SolidBlockMask.java index d327ff97a..4a85bc33d 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/SolidBlockMask.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/SolidBlockMask.java @@ -24,6 +24,7 @@ import com.sk89q.worldedit.extent.Extent; import javax.annotation.Nullable; public class SolidBlockMask extends BlockMask { + public SolidBlockMask(Extent extent) { super(extent); add(state -> state.getMaterial().isMovementBlocker()); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/function/operation/BackwardsExtentBlockCopy.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/operation/BackwardsExtentBlockCopy.java index ba3e7a809..f766cf8d7 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/function/operation/BackwardsExtentBlockCopy.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/function/operation/BackwardsExtentBlockCopy.java @@ -1,13 +1,11 @@ package com.sk89q.worldedit.function.operation; -import com.sk89q.worldedit.WorldEditException; -import com.sk89q.worldedit.function.RegionFunction; -import com.sk89q.worldedit.function.operation.Operation; -import com.sk89q.worldedit.function.operation.RunContext; -import com.sk89q.worldedit.function.visitor.RegionVisitor; -import com.sk89q.worldedit.math.BlockVector3; import com.fastasyncworldedit.core.math.MutableBlockVector3; import com.fastasyncworldedit.core.math.MutableVector3; +import com.sk89q.worldedit.WorldEditException; +import com.sk89q.worldedit.function.RegionFunction; +import com.sk89q.worldedit.function.visitor.RegionVisitor; +import com.sk89q.worldedit.math.BlockVector3; import com.sk89q.worldedit.math.Vector3; import com.sk89q.worldedit.math.transform.Transform; import com.sk89q.worldedit.regions.CuboidRegion; @@ -16,6 +14,7 @@ import com.sk89q.worldedit.regions.Region; import java.util.List; public class BackwardsExtentBlockCopy extends RegionVisitor implements Operation { + private final Region region; private final Transform transform; private final RegionFunction function; @@ -53,9 +52,9 @@ public class BackwardsExtentBlockCopy extends RegionVisitor implements Operation BlockVector3 max = BlockVector3.at(Integer.MIN_VALUE, Integer.MIN_VALUE, Integer.MIN_VALUE); BlockVector3 pos1 = region.getMinimumPoint(); BlockVector3 pos2 = region.getMaximumPoint(); - for (int x : new int[] { pos1.getBlockX(), pos2.getBlockX() }) { - for (int y : new int[] { pos1.getBlockY(), pos2.getBlockY() }) { - for (int z : new int[] { pos1.getBlockZ(), pos2.getBlockZ() }) { + for (int x : new int[]{pos1.getBlockX(), pos2.getBlockX()}) { + for (int y : new int[]{pos1.getBlockY(), pos2.getBlockY()}) { + for (int z : new int[]{pos1.getBlockZ(), pos2.getBlockZ()}) { BlockVector3 pt = transform(transform, BlockVector3.at(x, y, z)); min = min.getMinimum(pt); max = max.getMaximum(pt); @@ -89,4 +88,5 @@ public class BackwardsExtentBlockCopy extends RegionVisitor implements Operation public void addStatusMessages(List messages) { } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/function/operation/ChangeSetExecutor.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/operation/ChangeSetExecutor.java index 5011bf230..12359fdee 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/function/operation/ChangeSetExecutor.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/function/operation/ChangeSetExecutor.java @@ -63,8 +63,8 @@ public class ChangeSetExecutor implements Operation { * Create a new instance. * * @param changeSet the change set - * @param type type of change - * @param context the undo context + * @param type type of change + * @param context the undo context */ //FAWE start - BlockBag & inventory private ChangeSetExecutor(ChangeSet changeSet, Type type, UndoContext context, BlockBag blockBag, int inventory) { @@ -100,7 +100,13 @@ public class ChangeSetExecutor implements Operation { } //FAWE start - public static ChangeSetExecutor create(ChangeSet changeSet, UndoContext context, Type type, BlockBag blockBag, int inventory) { + public static ChangeSetExecutor create( + ChangeSet changeSet, + UndoContext context, + Type type, + BlockBag blockBag, + int inventory + ) { return new ChangeSetExecutor(changeSet, type, context, blockBag, inventory); } //FAWE end @@ -109,7 +115,7 @@ public class ChangeSetExecutor implements Operation { * Create a new undo operation. * * @param changeSet the change set - * @param context an undo context + * @param context an undo context * @return an operation */ public static ChangeSetExecutor createUndo(ChangeSet changeSet, UndoContext context) { @@ -120,7 +126,7 @@ public class ChangeSetExecutor implements Operation { * Create a new redo operation. * * @param changeSet the change set - * @param context an undo context + * @param context an undo context * @return an operation */ public static ChangeSetExecutor createRedo(ChangeSet changeSet, UndoContext context) { diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/function/operation/ForwardExtentCopy.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/operation/ForwardExtentCopy.java index 1164a53ed..5035df7d6 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/function/operation/ForwardExtentCopy.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/function/operation/ForwardExtentCopy.java @@ -22,9 +22,11 @@ package com.sk89q.worldedit.function.operation; import com.fastasyncworldedit.core.configuration.Caption; import com.fastasyncworldedit.core.extent.BlockTranslateExtent; import com.fastasyncworldedit.core.extent.PositionTransformExtent; +import com.fastasyncworldedit.core.function.RegionMaskTestFunction; import com.fastasyncworldedit.core.function.block.BiomeCopy; import com.fastasyncworldedit.core.function.block.CombinedBlockCopy; import com.fastasyncworldedit.core.function.block.SimpleBlockCopy; +import com.fastasyncworldedit.core.function.visitor.IntersectRegionFunction; import com.fastasyncworldedit.core.util.MaskTraverser; import com.google.common.collect.ImmutableList; import com.google.common.collect.Lists; @@ -34,13 +36,11 @@ import com.sk89q.worldedit.entity.metadata.EntityProperties; import com.sk89q.worldedit.extent.Extent; import com.sk89q.worldedit.function.CombinedRegionFunction; import com.sk89q.worldedit.function.RegionFunction; -import com.fastasyncworldedit.core.function.RegionMaskTestFunction; import com.sk89q.worldedit.function.RegionMaskingFilter; import com.sk89q.worldedit.function.entity.ExtentEntityCopy; import com.sk89q.worldedit.function.mask.Mask; import com.sk89q.worldedit.function.mask.Masks; import com.sk89q.worldedit.function.visitor.EntityVisitor; -import com.fastasyncworldedit.core.function.visitor.IntersectRegionFunction; import com.sk89q.worldedit.function.visitor.RegionVisitor; import com.sk89q.worldedit.math.BlockVector3; import com.sk89q.worldedit.math.transform.AffineTransform; @@ -92,10 +92,10 @@ public class ForwardExtentCopy implements Operation { * Create a new copy using the region's lowest minimum point as the * "from" position. * - * @param source the source extent - * @param region the region to copy + * @param source the source extent + * @param region the region to copy * @param destination the destination extent - * @param to the destination position + * @param to the destination position * @see #ForwardExtentCopy(Extent, Region, BlockVector3, Extent, BlockVector3) the main constructor */ public ForwardExtentCopy(Extent source, Region region, Extent destination, BlockVector3 to) { @@ -105,11 +105,11 @@ public class ForwardExtentCopy implements Operation { /** * Create a new copy. * - * @param source the source extent - * @param region the region to copy - * @param from the source position + * @param source the source extent + * @param region the region to copy + * @param from the source position * @param destination the destination extent - * @param to the destination position + * @param to the destination position */ public ForwardExtentCopy(Extent source, Region region, BlockVector3 from, Extent destination, BlockVector3 to) { checkNotNull(source); @@ -302,11 +302,16 @@ public class ForwardExtentCopy implements Operation { BlockVector3 translation = to.subtract(from); if (!translation.equals(BlockVector3.ZERO)) { - finalDest = new BlockTranslateExtent(finalDest, translation.getBlockX(), translation.getBlockY(), translation.getBlockZ()); + finalDest = new BlockTranslateExtent( + finalDest, + translation.getBlockX(), + translation.getBlockY(), + translation.getBlockZ() + ); } //FAWE end - //FAWE start - RegionVisitor > ExtentBlockCopy + //FAWE start - RegionVisitor > ExtentBlockCopy RegionFunction copy; RegionVisitor blockCopy = null; PositionTransformExtent transExt = null; @@ -342,7 +347,8 @@ public class ForwardExtentCopy implements Operation { if (sourceFunction != null) { BlockVector3 disAbs = translation.abs(); BlockVector3 size = region.getMaximumPoint().subtract(region.getMinimumPoint()).add(1, 1, 1); - boolean overlap = (disAbs.getBlockX() < size.getBlockX() && disAbs.getBlockY() < size.getBlockY() && disAbs.getBlockZ() < size.getBlockZ()); + boolean overlap = (disAbs.getBlockX() < size.getBlockX() && disAbs.getBlockY() < size.getBlockY() && disAbs.getBlockZ() < size + .getBlockZ()); RegionFunction copySrcFunc = sourceFunction; if (overlap && translation.length() != 0) { @@ -352,7 +358,11 @@ public class ForwardExtentCopy implements Operation { int z = translation.getBlockZ(); maskFunc = position -> { - BlockVector3 bv = BlockVector3.at(position.getBlockX() + x, position.getBlockY() + y, position.getBlockZ() + z); + BlockVector3 bv = BlockVector3.at( + position.getBlockX() + x, + position.getBlockY() + y, + position.getBlockZ() + z + ); if (region.contains(bv)) { return sourceFunction.apply(bv); } @@ -360,7 +370,11 @@ public class ForwardExtentCopy implements Operation { }; copySrcFunc = position -> { - BlockVector3 bv = BlockVector3.at(position.getBlockX() - x, position.getBlockY() - y, position.getBlockZ() - z); + BlockVector3 bv = BlockVector3.at( + position.getBlockX() - x, + position.getBlockY() - y, + position.getBlockZ() - z + ); if (!region.contains(bv)) { return sourceFunction.apply(position); } @@ -403,7 +417,13 @@ public class ForwardExtentCopy implements Operation { Operations.completeBlindly(blockCopy); if (!entities.isEmpty()) { - ExtentEntityCopy entityCopy = new ExtentEntityCopy(source, from.toVector3(), destination, to.toVector3(), currentTransform); + ExtentEntityCopy entityCopy = new ExtentEntityCopy( + source, + from.toVector3(), + destination, + to.toVector3(), + currentTransform + ); entityCopy.setRemoving(removingEntities); List entities2 = Lists.newArrayList(source.getEntities(region)); entities2.removeIf(entity -> { @@ -433,12 +453,18 @@ public class ForwardExtentCopy implements Operation { @Override public Iterable getStatusMessages() { return ImmutableList.of( - Caption.of("worldedit.operation.affected.block", - TextComponent.of(affectedBlocks)), - Caption.of("worldedit.operation.affected.biome", - TextComponent.of(affectedBiomeCols)), - Caption.of("worldedit.operation.affected.entity", - TextComponent.of(affectedEntities)) + Caption.of( + "worldedit.operation.affected.block", + TextComponent.of(affectedBlocks) + ), + Caption.of( + "worldedit.operation.affected.biome", + TextComponent.of(affectedBiomeCols) + ), + Caption.of( + "worldedit.operation.affected.entity", + TextComponent.of(affectedEntities) + ) ); } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/function/operation/Operation.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/operation/Operation.java index 3b2e06959..08952bebc 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/function/operation/Operation.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/function/operation/Operation.java @@ -87,10 +87,12 @@ public interface Operation { if (oldMessages.size() > 0) { String className = getClass().getName(); if (!warnedDeprecatedClasses.contains(className)) { - WorldEdit.logger.warn("An operation is using the old status message API. This will be removed in WorldEdit 8. Class: " + className); + WorldEdit.logger.warn( + "An operation is using the old status message API. This will be removed in WorldEdit 8. Class: " + className); warnedDeprecatedClasses.add(className); } } return oldMessages.stream().map(TextComponent::of).collect(Collectors.toList()); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/function/pattern/AbstractExtentPattern.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/pattern/AbstractExtentPattern.java index 4748c33ed..8ad5b3155 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/function/pattern/AbstractExtentPattern.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/function/pattern/AbstractExtentPattern.java @@ -36,4 +36,5 @@ public abstract class AbstractExtentPattern extends AbstractPattern implements E public Extent getExtent() { return extent; } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/function/pattern/AbstractPattern.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/pattern/AbstractPattern.java index c68866335..107240707 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/function/pattern/AbstractPattern.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/function/pattern/AbstractPattern.java @@ -23,4 +23,5 @@ package com.sk89q.worldedit.function.pattern; * An abstract implementation for {@link Pattern}s. */ public abstract class AbstractPattern implements Pattern { + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/function/pattern/BiomePattern.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/pattern/BiomePattern.java index 4dac73a98..ccb750c60 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/function/pattern/BiomePattern.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/function/pattern/BiomePattern.java @@ -47,16 +47,15 @@ public interface BiomePattern { * * @param position the position * @return a biome - * @apiNote This must be overridden by new subclasses. See {@link NonAbstractForCompatibility} - * for details */ @NonAbstractForCompatibility( - delegateName = "apply", - delegateParams = { BlockVector2.class } + delegateName = "apply", + delegateParams = {BlockVector2.class} ) default BiomeType applyBiome(BlockVector3 position) { DeprecationUtil.checkDelegatingOverride(getClass()); return apply(position.toBlockVector2()); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/function/pattern/ClipboardPattern.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/pattern/ClipboardPattern.java index 08e575209..b0fac9c40 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/function/pattern/ClipboardPattern.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/function/pattern/ClipboardPattern.java @@ -40,9 +40,10 @@ public class ClipboardPattern extends RepeatingExtentPattern { * Create a new clipboard pattern. * * @param clipboard the clipboard - * @param offset the offset + * @param offset the offset */ public ClipboardPattern(Clipboard clipboard, BlockVector3 offset) { super(clipboard, clipboard.getMinimumPoint(), offset); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/function/pattern/ExtentBufferedCompositePattern.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/pattern/ExtentBufferedCompositePattern.java index 5583e5508..49e7f5472 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/function/pattern/ExtentBufferedCompositePattern.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/function/pattern/ExtentBufferedCompositePattern.java @@ -42,7 +42,7 @@ public class ExtentBufferedCompositePattern extends AbstractExtentPattern { *

    Note that all patterns passed which are ExtentPatterns should use the same extent as the one * passed to this constructor, or block changes may not be realized by those patterns.

    * - * @param extent the extent to buffer changes to + * @param extent the extent to buffer changes to * @param patterns the patterns to apply, in order */ public ExtentBufferedCompositePattern(Extent extent, Pattern... patterns) { @@ -63,4 +63,5 @@ public class ExtentBufferedCompositePattern extends AbstractExtentPattern { } return lastBlock; } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/function/pattern/ExtentPattern.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/pattern/ExtentPattern.java index 22a8f410a..056b52f3e 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/function/pattern/ExtentPattern.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/function/pattern/ExtentPattern.java @@ -29,4 +29,5 @@ public interface ExtentPattern extends Pattern { * @return the extent for this pattern */ Extent getExtent(); + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/function/pattern/Pattern.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/pattern/Pattern.java index e0e88bb07..801b07a65 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/function/pattern/Pattern.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/function/pattern/Pattern.java @@ -19,8 +19,8 @@ package com.sk89q.worldedit.function.pattern; -import com.fastasyncworldedit.core.queue.Filter; import com.fastasyncworldedit.core.extent.filter.block.FilterBlock; +import com.fastasyncworldedit.core.queue.Filter; import com.sk89q.worldedit.WorldEditException; import com.sk89q.worldedit.extent.Extent; import com.sk89q.worldedit.internal.util.NonAbstractForCompatibility; @@ -38,12 +38,13 @@ public interface Pattern extends Filter { * * @param position the position * @return a block + * @see NonAbstractForCompatibility This must be overridden by new subclasses. * @deprecated use {@link Pattern#applyBlock(BlockVector3)} */ @Deprecated @NonAbstractForCompatibility( - delegateName = "applyBlock", - delegateParams = { BlockVector3.class } + delegateName = "applyBlock", + delegateParams = {BlockVector3.class} ) default BaseBlock apply(BlockVector3 position) { return applyBlock(position); @@ -65,8 +66,7 @@ public interface Pattern extends Filter { * * @param position the position * @return a block - * @apiNote This must be overridden by new subclasses. See {@link NonAbstractForCompatibility} - * for details */ BaseBlock applyBlock(BlockVector3 position); + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/function/pattern/RandomPattern.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/pattern/RandomPattern.java index e1049d304..0568fd5b8 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/function/pattern/RandomPattern.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/function/pattern/RandomPattern.java @@ -19,9 +19,9 @@ package com.sk89q.worldedit.function.pattern; -import com.fastasyncworldedit.core.util.collection.RandomCollection; import com.fastasyncworldedit.core.math.random.SimpleRandom; import com.fastasyncworldedit.core.math.random.TrueRandom; +import com.fastasyncworldedit.core.util.collection.RandomCollection; import com.sk89q.worldedit.WorldEditException; import com.sk89q.worldedit.extent.Extent; import com.sk89q.worldedit.math.BlockVector3; @@ -76,7 +76,7 @@ public class RandomPattern extends AbstractPattern { * the sum of the probabilities of all added patterns.

    * * @param pattern the pattern - * @param chance the chance, which can be any positive number + * @param chance the chance, which can be any positive number */ public void add(Pattern pattern, double chance) { checkNotNull(pattern); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/function/pattern/RandomStatePattern.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/pattern/RandomStatePattern.java index 65e06336a..5c6a8107b 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/function/pattern/RandomStatePattern.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/function/pattern/RandomStatePattern.java @@ -42,4 +42,5 @@ public class RandomStatePattern implements Pattern { public BaseBlock applyBlock(BlockVector3 position) { return blocks.get(rand.nextInt(blocks.size())); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/function/pattern/StateApplyingPattern.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/pattern/StateApplyingPattern.java index 39fc0cf77..3d834f76b 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/function/pattern/StateApplyingPattern.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/function/pattern/StateApplyingPattern.java @@ -55,4 +55,5 @@ public class StateApplyingPattern extends AbstractExtentPattern { } return block.toBaseBlock(); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/function/pattern/TypeApplyingPattern.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/pattern/TypeApplyingPattern.java index 2cee171f4..b02393331 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/function/pattern/TypeApplyingPattern.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/function/pattern/TypeApplyingPattern.java @@ -21,16 +21,14 @@ package com.sk89q.worldedit.function.pattern; import com.sk89q.worldedit.extent.Extent; import com.sk89q.worldedit.math.BlockVector3; -import com.sk89q.worldedit.registry.state.Property; import com.sk89q.worldedit.world.block.BaseBlock; import com.sk89q.worldedit.world.block.BlockState; -import java.util.Map.Entry; - /** * Applies a block type while retaining all possible states. */ public class TypeApplyingPattern extends AbstractExtentPattern { + private final BlockState blockState; public TypeApplyingPattern(Extent extent, BlockState blockState) { @@ -44,4 +42,5 @@ public class TypeApplyingPattern extends AbstractExtentPattern { BlockState newBlock = blockState.withProperties(oldBlock); return newBlock.toBaseBlock(); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/function/pattern/WaterloggedRemover.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/pattern/WaterloggedRemover.java index 64ad58e93..aa72f1f67 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/function/pattern/WaterloggedRemover.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/function/pattern/WaterloggedRemover.java @@ -19,9 +19,9 @@ package com.sk89q.worldedit.function.pattern; +import com.fastasyncworldedit.core.registry.state.PropertyKey; import com.sk89q.worldedit.extent.Extent; import com.sk89q.worldedit.math.BlockVector3; -import com.fastasyncworldedit.core.registry.state.PropertyKey; import com.sk89q.worldedit.world.block.BaseBlock; import com.sk89q.worldedit.world.block.BlockState; import com.sk89q.worldedit.world.block.BlockType; @@ -78,4 +78,5 @@ public class WaterloggedRemover extends AbstractExtentPattern { //FAWE end return BlockTypes.AIR.getDefaultState().toBaseBlock(); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/function/util/FlatRegionOffset.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/util/FlatRegionOffset.java index 7b256556f..67b333fdf 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/function/util/FlatRegionOffset.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/function/util/FlatRegionOffset.java @@ -36,7 +36,7 @@ public class FlatRegionOffset implements FlatRegionFunction { /** * Create a new instance. * - * @param offset the offset + * @param offset the offset * @param function the function that is called with the offset position */ public FlatRegionOffset(BlockVector2 offset, FlatRegionFunction function) { @@ -68,4 +68,5 @@ public class FlatRegionOffset implements FlatRegionFunction { public boolean apply(BlockVector2 position) throws WorldEditException { return function.apply(position.add(offset)); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/function/util/RegionOffset.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/util/RegionOffset.java index ec2834421..dbf3c7864 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/function/util/RegionOffset.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/function/util/RegionOffset.java @@ -36,7 +36,7 @@ public class RegionOffset implements RegionFunction { /** * Create a new instance. * - * @param offset the offset + * @param offset the offset * @param function the function that is called with the offset position */ public RegionOffset(BlockVector3 offset, RegionFunction function) { diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/function/visitor/BreadthFirstSearch.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/visitor/BreadthFirstSearch.java index c670b20ff..e69601360 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/function/visitor/BreadthFirstSearch.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/function/visitor/BreadthFirstSearch.java @@ -21,6 +21,7 @@ package com.sk89q.worldedit.function.visitor; import com.fastasyncworldedit.core.configuration.Caption; import com.fastasyncworldedit.core.math.BlockVectorSet; +import com.fastasyncworldedit.core.math.MutableBlockVector3; import com.google.common.collect.ImmutableList; import com.google.common.collect.Sets; import com.sk89q.worldedit.WorldEditException; @@ -28,7 +29,6 @@ import com.sk89q.worldedit.function.RegionFunction; import com.sk89q.worldedit.function.operation.Operation; import com.sk89q.worldedit.function.operation.RunContext; import com.sk89q.worldedit.math.BlockVector3; -import com.fastasyncworldedit.core.math.MutableBlockVector3; import com.sk89q.worldedit.util.Direction; import com.sk89q.worldedit.util.formatting.text.Component; import com.sk89q.worldedit.util.formatting.text.TextComponent; @@ -195,7 +195,7 @@ public abstract class BreadthFirstSearch implements Operation { * Try to visit the given 'to' location. * * @param from the origin block - * @param to the block under question + * @param to the block under question */ private void visit(BlockVector3 from, BlockVector3 to) { if (!visited.contains(to)) { @@ -229,7 +229,7 @@ public abstract class BreadthFirstSearch implements Operation { * 'from' block. * * @param from the origin block - * @param to the block under question + * @param to the block under question * @return true if the 'to' block should be visited */ protected abstract boolean isVisitable(BlockVector3 from, BlockVector3 to); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/function/visitor/DownwardVisitor.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/visitor/DownwardVisitor.java index e7570e963..8ff23b190 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/function/visitor/DownwardVisitor.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/function/visitor/DownwardVisitor.java @@ -37,12 +37,13 @@ public class DownwardVisitor extends RecursiveVisitor { private final int baseY; //FAWE start + /** * Create a new visitor. * - * @param mask the mask + * @param mask the mask * @param function the function - * @param baseY the base Y + * @param baseY the base Y */ public DownwardVisitor(Mask mask, RegionFunction function, int baseY) { this(mask, function, baseY, Integer.MAX_VALUE); @@ -56,11 +57,11 @@ public class DownwardVisitor extends RecursiveVisitor { this.baseY = baseY; setDirections( - BlockVector3.UNIT_X, - BlockVector3.UNIT_MINUS_X, - BlockVector3.UNIT_Z, - BlockVector3.UNIT_MINUS_Z, - BlockVector3.UNIT_MINUS_Y + BlockVector3.UNIT_X, + BlockVector3.UNIT_MINUS_X, + BlockVector3.UNIT_Z, + BlockVector3.UNIT_MINUS_Z, + BlockVector3.UNIT_MINUS_Y ); } @@ -69,4 +70,5 @@ public class DownwardVisitor extends RecursiveVisitor { int fromY = from.getBlockY(); return (fromY == baseY || to.subtract(from).getBlockY() < 0) && super.isVisitable(from, to); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/function/visitor/FlatRegionVisitor.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/visitor/FlatRegionVisitor.java index 8d4a2ed61..b6ec33ec9 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/function/visitor/FlatRegionVisitor.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/function/visitor/FlatRegionVisitor.java @@ -45,7 +45,7 @@ public class FlatRegionVisitor implements Operation { * Create a new visitor. * * @param flatRegion a flat region - * @param function a function to apply to columns + * @param function a function to apply to columns */ public FlatRegionVisitor(FlatRegion flatRegion, FlatRegionFunction function) { checkNotNull(flatRegion); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/function/visitor/LayerVisitor.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/visitor/LayerVisitor.java index c5acd33bd..1998df2c1 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/function/visitor/LayerVisitor.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/function/visitor/LayerVisitor.java @@ -52,9 +52,9 @@ public class LayerVisitor implements Operation { * Create a new visitor. * * @param flatRegion the flat region to visit - * @param minY the minimum Y to stop the search at - * @param maxY the maximum Y to begin the search at - * @param function the layer function to apply t blocks + * @param minY the minimum Y to stop the search at + * @param maxY the maximum Y to begin the search at + * @param function the layer function to apply t blocks */ public LayerVisitor(FlatRegion flatRegion, int minY, int maxY, LayerFunction function) { checkNotNull(flatRegion); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/function/visitor/NonRisingVisitor.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/visitor/NonRisingVisitor.java index 828865ceb..29f071920 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/function/visitor/NonRisingVisitor.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/function/visitor/NonRisingVisitor.java @@ -29,10 +29,11 @@ import com.sk89q.worldedit.math.BlockVector3; public class NonRisingVisitor extends RecursiveVisitor { //FAWE start - max int + /** * Create a new recursive visitor. * - * @param mask the mask + * @param mask the mask * @param function the function */ public NonRisingVisitor(Mask mask, RegionFunction function) { @@ -44,11 +45,11 @@ public class NonRisingVisitor extends RecursiveVisitor { public NonRisingVisitor(Mask mask, RegionFunction function, int depth) { super(mask, function, depth); setDirections( - BlockVector3.UNIT_X, - BlockVector3.UNIT_MINUS_X, - BlockVector3.UNIT_Z, - BlockVector3.UNIT_MINUS_Z, - BlockVector3.UNIT_MINUS_Y + BlockVector3.UNIT_X, + BlockVector3.UNIT_MINUS_X, + BlockVector3.UNIT_Z, + BlockVector3.UNIT_MINUS_Z, + BlockVector3.UNIT_MINUS_Y ); } //FAWE end diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/function/visitor/RecursiveVisitor.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/visitor/RecursiveVisitor.java index 51cc3bc60..a65e8704d 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/function/visitor/RecursiveVisitor.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/function/visitor/RecursiveVisitor.java @@ -42,7 +42,7 @@ public class RecursiveVisitor extends BreadthFirstSearch { /** * Create a new recursive visitor. * - * @param mask the mask + * @param mask the mask * @param function the function */ public RecursiveVisitor(Mask mask, RegionFunction function, int maxDepth) { @@ -55,4 +55,5 @@ public class RecursiveVisitor extends BreadthFirstSearch { protected boolean isVisitable(BlockVector3 from, BlockVector3 to) { return mask.test(to); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/history/UndoContext.java b/worldedit-core/src/main/java/com/sk89q/worldedit/history/UndoContext.java index 02b08d65c..e77551bf7 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/history/UndoContext.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/history/UndoContext.java @@ -52,4 +52,5 @@ public class UndoContext { public void setExtent(@Nullable Extent extent) { this.extent = extent; } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/history/change/BiomeChange.java b/worldedit-core/src/main/java/com/sk89q/worldedit/history/change/BiomeChange.java index 634dd3169..466e72c13 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/history/change/BiomeChange.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/history/change/BiomeChange.java @@ -33,6 +33,7 @@ import static com.google.common.base.Preconditions.checkNotNull; *

    This biome change does not have an {@link Extent} assigned to it because * one will be taken from the passed {@link UndoContext}. If the context * does not have an extent (it is null), cryptic errors may occur.

    + * * @deprecated use {@link BiomeChange3D} */ @Deprecated @@ -47,7 +48,7 @@ public class BiomeChange implements Change { * * @param position the position * @param previous the previous biome - * @param current the current biome + * @param current the current biome */ public BiomeChange(BlockVector2 position, BiomeType previous, BiomeType current) { checkNotNull(position); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/history/change/BiomeChange3D.java b/worldedit-core/src/main/java/com/sk89q/worldedit/history/change/BiomeChange3D.java index 6b40127fd..74a16e90e 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/history/change/BiomeChange3D.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/history/change/BiomeChange3D.java @@ -45,7 +45,7 @@ public class BiomeChange3D implements Change { * * @param position the position * @param previous the previous biome - * @param current the current biome + * @param current the current biome */ public BiomeChange3D(BlockVector3 position, BiomeType previous, BiomeType current) { checkNotNull(position); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/history/change/BlockChange.java b/worldedit-core/src/main/java/com/sk89q/worldedit/history/change/BlockChange.java index 0b01508cd..ec9bb104d 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/history/change/BlockChange.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/history/change/BlockChange.java @@ -46,9 +46,13 @@ public class BlockChange implements Change { * * @param position the position * @param previous the previous block - * @param current the current block + * @param current the current block */ - public , BC extends BlockStateHolder> BlockChange(BlockVector3 position, BP previous, BC current) { + public , BC extends BlockStateHolder> BlockChange( + BlockVector3 position, + BP previous, + BC current + ) { checkNotNull(position); checkNotNull(previous); checkNotNull(current); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/history/change/EntityCreate.java b/worldedit-core/src/main/java/com/sk89q/worldedit/history/change/EntityCreate.java index 8930f4c97..4bcd96504 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/history/change/EntityCreate.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/history/change/EntityCreate.java @@ -42,8 +42,8 @@ public class EntityCreate implements Change { * Create a new instance. * * @param location the location - * @param state the state of the created entity - * @param entity the entity that was created + * @param state the state of the created entity + * @param entity the entity that was created */ public EntityCreate(Location location, BaseEntity state, Entity entity) { checkNotNull(location); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/history/change/EntityRemove.java b/worldedit-core/src/main/java/com/sk89q/worldedit/history/change/EntityRemove.java index 51b8757d5..0811e1f97 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/history/change/EntityRemove.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/history/change/EntityRemove.java @@ -42,7 +42,7 @@ public class EntityRemove implements Change { * Create a new instance. * * @param location the location - * @param state the state of the created entity + * @param state the state of the created entity */ public EntityRemove(Location location, BaseEntity state) { checkNotNull(location); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/history/changeset/BlockOptimizedHistory.java b/worldedit-core/src/main/java/com/sk89q/worldedit/history/changeset/BlockOptimizedHistory.java index 995679f69..2019e3022 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/history/changeset/BlockOptimizedHistory.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/history/changeset/BlockOptimizedHistory.java @@ -68,18 +68,21 @@ public class BlockOptimizedHistory extends ArrayListHistory { public Iterator forwardIterator() { return Iterators.concat( super.forwardIterator(), - Iterators.transform(current.iterator(), BlockOptimizedHistory::createChange)); + Iterators.transform(current.iterator(), BlockOptimizedHistory::createChange) + ); } @Override public Iterator backwardIterator() { return Iterators.concat( super.backwardIterator(), - Iterators.transform(previous.reverseIterator(), BlockOptimizedHistory::createChange)); + Iterators.transform(previous.reverseIterator(), BlockOptimizedHistory::createChange) + ); } @Override public int size() { return super.size() + previous.size(); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/history/changeset/ChangeSet.java b/worldedit-core/src/main/java/com/sk89q/worldedit/history/changeset/ChangeSet.java index 14cb21487..b4ab9adc1 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/history/changeset/ChangeSet.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/history/changeset/ChangeSet.java @@ -22,8 +22,8 @@ package com.sk89q.worldedit.history.changeset; import com.fastasyncworldedit.core.history.changeset.ChangeSetSummary; import com.sk89q.worldedit.history.change.Change; import com.sk89q.worldedit.regions.Region; -import javax.annotation.Nullable; +import javax.annotation.Nullable; import java.io.Closeable; import java.io.IOException; import java.util.Iterator; @@ -85,6 +85,7 @@ public interface ChangeSet extends Closeable { int size(); //FAWE start + /** * Close the changeset. */ @@ -108,6 +109,7 @@ public interface ChangeSet extends Closeable { /** * Get if the changeset is empty (i.e. size == 0) + * * @return is empty */ default boolean isEmpty() { diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/SchematicsEventListener.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/SchematicsEventListener.java index 388953dc0..75907138d 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/SchematicsEventListener.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/SchematicsEventListener.java @@ -44,4 +44,5 @@ public class SchematicsEventListener { LOGGER.warn("Failed to create schematics directory", e); } } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/annotation/Chunk3d.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/annotation/Chunk3d.java index e97c3dd91..6de709457 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/annotation/Chunk3d.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/annotation/Chunk3d.java @@ -38,4 +38,5 @@ import java.lang.annotation.Target; @Target(ElementType.PARAMETER) @InjectAnnotation public @interface Chunk3d { + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/annotation/ClipboardMask.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/annotation/ClipboardMask.java index a0325756a..dbab36483 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/annotation/ClipboardMask.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/annotation/ClipboardMask.java @@ -34,4 +34,5 @@ import java.lang.annotation.Target; @Target(ElementType.PARAMETER) @InjectAnnotation public @interface ClipboardMask { + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/annotation/Direction.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/annotation/Direction.java index 43fbfbcb1..3bc5cc2c5 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/annotation/Direction.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/annotation/Direction.java @@ -38,4 +38,5 @@ public @interface Direction { String AIM = "me"; boolean includeDiagonals() default false; + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/annotation/MultiDirection.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/annotation/MultiDirection.java index c23858936..cf7eff3d8 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/annotation/MultiDirection.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/annotation/MultiDirection.java @@ -33,5 +33,7 @@ import java.lang.annotation.Target; @Target(ElementType.PARAMETER) @InjectAnnotation public @interface MultiDirection { + boolean includeDiagonals() default false; + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/annotation/Offset.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/annotation/Offset.java index 0772402fa..d102aa23c 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/annotation/Offset.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/annotation/Offset.java @@ -34,5 +34,7 @@ import java.lang.annotation.Target; @Target(ElementType.PARAMETER) @InjectAnnotation public @interface Offset { + String FORWARD = "forward"; + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/annotation/OptionalArg.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/annotation/OptionalArg.java index 1514a6649..1d6496c97 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/annotation/OptionalArg.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/annotation/OptionalArg.java @@ -35,4 +35,5 @@ import java.lang.annotation.Target; @Target(ElementType.PARAMETER) @InjectAnnotation public @interface OptionalArg { + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/annotation/Radii.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/annotation/Radii.java index 467883604..75edd65fc 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/annotation/Radii.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/annotation/Radii.java @@ -33,8 +33,10 @@ import java.lang.annotation.Target; @Target(ElementType.PARAMETER) @InjectAnnotation public @interface Radii { + /** * Number of radii values to inject at maximum. May inject less. */ int value(); + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/annotation/Selection.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/annotation/Selection.java index e916fb7cf..6187e20b9 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/annotation/Selection.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/annotation/Selection.java @@ -33,4 +33,5 @@ import java.lang.annotation.Target; @Target({ElementType.PARAMETER, ElementType.METHOD}) @InjectAnnotation public @interface Selection { + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/annotation/VertHeight.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/annotation/VertHeight.java index 38f4bb131..3b4e0b3ef 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/annotation/VertHeight.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/annotation/VertHeight.java @@ -33,4 +33,5 @@ import java.lang.annotation.Target; @Target(ElementType.PARAMETER) @InjectAnnotation public @interface VertHeight { + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/anvil/ChunkDeleter.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/anvil/ChunkDeleter.java index f009ff055..ddf12e521 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/anvil/ChunkDeleter.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/anvil/ChunkDeleter.java @@ -33,7 +33,6 @@ import org.apache.logging.log4j.Logger; import java.io.BufferedWriter; import java.io.IOException; -import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; @@ -55,7 +54,7 @@ public final class ChunkDeleter { private static final Logger LOGGER = LogManagerCompat.getLogger(); private static final Comparator chunkSorter = Comparator.comparing( - pos -> (pos.getBlockX() & 31) + (pos.getBlockZ() & 31) * 32 + pos -> (pos.getBlockX() & 31) + (pos.getBlockZ() & 31) * 32 ); private static final Gson chunkDeleterGson = new GsonBuilder() @@ -69,7 +68,8 @@ public final class ChunkDeleter { } public static void writeInfo(ChunkDeletionInfo info, Path chunkFile) throws IOException, JsonIOException { - String json = chunkDeleterGson.toJson(info, new TypeToken() {}.getType()); + String json = chunkDeleterGson.toJson(info, new TypeToken() { + }.getType()); try (BufferedWriter writer = Files.newBufferedWriter(chunkFile)) { writer.write(json); } @@ -88,7 +88,8 @@ public final class ChunkDeleter { if (chunkDeleter.runDeleter()) { LOGGER.info("Successfully deleted {} matching chunks (out of {}, taking {} ms).", chunkDeleter.getDeletedChunkCount(), chunkDeleter.getDeletionsRequested(), - System.currentTimeMillis() - start); + System.currentTimeMillis() - start + ); if (deleteOnSuccess) { boolean deletedFile = false; try { @@ -97,12 +98,12 @@ public final class ChunkDeleter { } if (!deletedFile) { LOGGER.warn("Chunk deletion file could not be cleaned up. This may have unintended consequences" - + " on next startup, or if /delchunks is used again."); + + " on next startup, or if /delchunks is used again."); } } } else { LOGGER.error("Error occurred while deleting chunks. " - + "If world errors occur, stop the server and restore the *.bak backup files."); + + "If world errors occur, stop the server and restore the *.bak backup files."); } } @@ -159,10 +160,11 @@ public final class ChunkDeleter { Path worldPath = Paths.get(chunkBatch.worldPath); if (chunkBatch.chunks != null) { return chunkBatch.chunks.stream() - .collect(Collectors.groupingBy(RegionFilePos::new)) - .entrySet().stream().collect(Collectors.toMap( - e -> worldPath.resolve("region").resolve(e.getKey().getFileName()), - e -> e.getValue().stream().sorted(chunkSorter))); + .collect(Collectors.groupingBy(RegionFilePos::new)) + .entrySet().stream().collect(Collectors.toMap( + e -> worldPath.resolve("region").resolve(e.getKey().getFileName()), + e -> e.getValue().stream().sorted(chunkSorter) + )); } else { final BlockVector2 minChunk = chunkBatch.minChunk; final BlockVector2 maxChunk = chunkBatch.maxChunk; @@ -184,18 +186,20 @@ public final class ChunkDeleter { int minZ = Math.max(Math.min(startZ, endZ), minChunk.getBlockZ()); int maxX = Math.min(Math.max(startX, endX), maxChunk.getBlockX()); int maxZ = Math.min(Math.max(startZ, endZ), maxChunk.getBlockZ()); - Stream stream = Stream.iterate(BlockVector2.at(minX, minZ), - bv2 -> { - int nextX = bv2.getBlockX(); - int nextZ = bv2.getBlockZ(); - if (++nextX > maxX) { - nextX = minX; - if (++nextZ > maxZ) { - return null; + Stream stream = Stream.iterate( + BlockVector2.at(minX, minZ), + bv2 -> { + int nextX = bv2.getBlockX(); + int nextZ = bv2.getBlockZ(); + if (++nextX > maxX) { + nextX = minX; + if (++nextZ > maxZ) { + return null; + } } + return BlockVector2.at(nextX, nextZ); } - return BlockVector2.at(nextX, nextZ); - }); + ); groupedChunks.put(regionPath, stream); } } @@ -251,10 +255,12 @@ public final class ChunkDeleter { backedUpRegions.add(backupFile); } - private boolean deleteChunks(Path regionFile, Stream chunks, - BiPredicate deletionPredicate) { + private boolean deleteChunks( + Path regionFile, Stream chunks, + BiPredicate deletionPredicate + ) { try (RegionAccess region = new RegionAccess(regionFile, shouldPreload)) { - for (Iterator iterator = chunks.iterator(); iterator.hasNext();) { + for (Iterator iterator = chunks.iterator(); iterator.hasNext(); ) { BlockVector2 chunk = iterator.next(); if (chunk == null) { break; @@ -285,6 +291,7 @@ public final class ChunkDeleter { } private static class BlockVector2Adapter extends TypeAdapter { + @Override public void write(JsonWriter out, BlockVector2 value) throws IOException { out.beginArray(); @@ -301,9 +308,11 @@ public final class ChunkDeleter { in.endArray(); return BlockVector2.at(x, z); } + } private static class RegionFilePos { + private final int x; private final int z; @@ -358,5 +367,7 @@ public final class ChunkDeleter { public String toString() { return "(" + x + ", " + z + ")"; } + } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/anvil/ChunkDeletionInfo.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/anvil/ChunkDeletionInfo.java index adf001f80..13b9d3847 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/anvil/ChunkDeletionInfo.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/anvil/ChunkDeletionInfo.java @@ -31,6 +31,7 @@ public class ChunkDeletionInfo { public List batches; public static class ChunkBatch { + public String worldPath; public boolean backup; public List deletionPredicates; @@ -46,11 +47,15 @@ public class ChunkDeletionInfo { final BlockVector2 dist = maxChunk.subtract(minChunk).add(1, 1); return dist.getBlockX() * dist.getBlockZ(); } + } public static class DeletionPredicate { + public String property; public String comparison; public String value; + } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/anvil/RegionAccess.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/anvil/RegionAccess.java index 4a7e7d944..80eb6989e 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/anvil/RegionAccess.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/anvil/RegionAccess.java @@ -98,4 +98,5 @@ class RegionAccess implements AutoCloseable { public void close() throws IOException { raf.close(); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/block/BlockStateIdAccess.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/block/BlockStateIdAccess.java index 0233529bf..058b3a72f 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/block/BlockStateIdAccess.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/block/BlockStateIdAccess.java @@ -30,6 +30,7 @@ public final class BlockStateIdAccess { /** * An invalid internal ID, for verification purposes. + * * @return an internal ID which is never valid */ public static int invalidId() { diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/command/ActorAuthorizer.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/command/ActorAuthorizer.java index b161fb50d..7e2bacec6 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/command/ActorAuthorizer.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/command/ActorAuthorizer.java @@ -37,4 +37,5 @@ public class ActorAuthorizer implements Authorizer { return sender.hasPermission(permission); } } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/command/CommandArgParser.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/command/CommandArgParser.java index 092844b12..2e85af059 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/command/CommandArgParser.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/command/CommandArgParser.java @@ -106,8 +106,8 @@ public class CommandArgParser { if (part.getSubstring().endsWith("\"")) { state = State.NORMAL; currentArg.add(Substring.wrap( - part.getSubstring().substring(0, part.getSubstring().length() - 1), - part.getStart(), part.getEnd() - 1 + part.getSubstring().substring(0, part.getSubstring().length() - 1), + part.getStart(), part.getEnd() - 1 )); finishArg(); } else { @@ -121,9 +121,9 @@ public class CommandArgParser { int start = currentArg.get(0).getStart(); int end = Iterables.getLast(currentArg).getEnd(); args.add(Substring.wrap(currentArg.stream() - .map(Substring::getSubstring) - .collect(Collectors.joining(" ")), - start, end + .map(Substring::getSubstring) + .collect(Collectors.joining(" ")), + start, end )); currentArg.clear(); } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/command/CommandLoggingHandler.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/command/CommandLoggingHandler.java index 02085795e..44766b76f 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/command/CommandLoggingHandler.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/command/CommandLoggingHandler.java @@ -53,7 +53,7 @@ public class CommandLoggingHandler implements CommandCallListener, AutoCloseable * Create a new instance. * * @param worldEdit an instance of WorldEdit - * @param logger the logger to send messages to + * @param logger the logger to send messages to */ public CommandLoggingHandler(WorldEdit worldEdit, Logger logger) { checkNotNull(worldEdit); @@ -98,10 +98,10 @@ public class CommandLoggingHandler implements CommandCallListener, AutoCloseable builder.append(": ").append(parameters.getMetadata().getCalledName()); builder.append(": ") - .append(Stream.concat( - Stream.of(parameters.getMetadata().getCalledName()), - parameters.getMetadata().getArguments().stream() - ).collect(Collectors.joining(" "))); + .append(Stream.concat( + Stream.of(parameters.getMetadata().getCalledName()), + parameters.getMetadata().getArguments().stream() + ).collect(Collectors.joining(" "))); if (logMode != null && actor instanceof Player) { Player player = (Player) actor; @@ -132,7 +132,7 @@ public class CommandLoggingHandler implements CommandCallListener, AutoCloseable case REGION: try { builder.append(" - Region: ") - .append(session.getSelection(world)); + .append(session.getSelection(world)); } catch (IncompleteRegionException e) { break; } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/command/CommandRegistrationHandler.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/command/CommandRegistrationHandler.java index a935bed02..cb9674e6f 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/command/CommandRegistrationHandler.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/command/CommandRegistrationHandler.java @@ -39,13 +39,14 @@ public class CommandRegistrationHandler { public void register(CommandManager manager, CommandRegistration registration, CI instance) { registration.containerInstance(instance) - .commandManager(manager) - .listeners(callListeners); + .commandManager(manager) + .listeners(callListeners); if (registration instanceof CommandPermissionsConditionGenerator.Registration) { ((CommandPermissionsConditionGenerator.Registration) registration).commandPermissionsConditionGenerator( - PERM_GEN + PERM_GEN ); } registration.build(); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/command/CommandUtil.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/command/CommandUtil.java index b6c8d8e35..593b2edbf 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/command/CommandUtil.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/command/CommandUtil.java @@ -55,10 +55,10 @@ public class CommandUtil { private static Component makeDeprecatedFooter(String reason, Component replacement) { return TextComponent.builder() - .append(DEPRECATION_MARKER) - .append(" " + reason + ".") - .append(TextComponent.newline()) - .build(); + .append(DEPRECATION_MARKER) + .append(" " + reason + ".") + .append(TextComponent.newline()) + .build(); } public interface NewCommandGenerator { @@ -86,55 +86,57 @@ public class CommandUtil { public static Component createNewCommandReplacementText(String suggestedCommand) { return TranslatableComponent.builder("worldedit.command.deprecation-message") - .append(TextComponent.of(suggestedCommand) - .clickEvent(ClickEvent.suggestCommand(suggestedCommand))) - .build(); + .append(TextComponent.of(suggestedCommand) + .clickEvent(ClickEvent.suggestCommand(suggestedCommand))) + .build(); } - public static Command deprecate(Command command, String reason, - ReplacementMessageGenerator replacementMessageGenerator) { + public static Command deprecate( + Command command, String reason, + ReplacementMessageGenerator replacementMessageGenerator + ) { Component deprecatedWarning = makeDeprecatedFooter( - reason, - replacementMessageGenerator.getReplacement( - command, - NoInputCommandParameters.builder().build() - ) + reason, + replacementMessageGenerator.getReplacement( + command, + NoInputCommandParameters.builder().build() + ) ); return command.toBuilder() - .action(parameters -> - deprecatedCommandWarning(parameters, command, reason, replacementMessageGenerator)) - .footer(command.getFooter() - .map(existingFooter -> existingFooter - .append(TextComponent.newline()) - .append(deprecatedWarning)) - .orElse(deprecatedWarning)) - .build(); + .action(parameters -> + deprecatedCommandWarning(parameters, command, reason, replacementMessageGenerator)) + .footer(command.getFooter() + .map(existingFooter -> existingFooter + .append(TextComponent.newline()) + .append(deprecatedWarning)) + .orElse(deprecatedWarning)) + .build(); } public static Optional footerWithoutDeprecation(Command command) { return command.getFooter() - .filter(footer -> anyComponent(footer, Predicate.isEqual(DEPRECATION_MARKER))) - .map(footer -> Optional.of( - replaceDeprecation(footer) - )) - .orElseGet(command::getFooter); + .filter(footer -> anyComponent(footer, Predicate.isEqual(DEPRECATION_MARKER))) + .map(footer -> Optional.of( + replaceDeprecation(footer) + )) + .orElseGet(command::getFooter); } public static Optional deprecationWarning(Command command) { return command.getFooter() - .map(CommandUtil::extractDeprecation) - .orElseGet(command::getFooter); + .map(CommandUtil::extractDeprecation) + .orElseGet(command::getFooter); } public static boolean isDeprecated(Command command) { return command.getFooter() - .filter(footer -> anyComponent(footer, Predicate.isEqual(DEPRECATION_MARKER))) - .isPresent(); + .filter(footer -> anyComponent(footer, Predicate.isEqual(DEPRECATION_MARKER))) + .isPresent(); } private static boolean anyComponent(Component component, Predicate test) { return test.test(component) || component.children().stream() - .anyMatch(x -> anyComponent(x, test)); + .anyMatch(x -> anyComponent(x, test)); } private static Component replaceDeprecation(Component component) { @@ -142,9 +144,9 @@ public class CommandUtil { return TextComponent.empty(); } return component.children( - component.children().stream() - .map(CommandUtil::replaceDeprecation) - .collect(toList()) + component.children().stream() + .map(CommandUtil::replaceDeprecation) + .collect(toList()) ); } @@ -153,45 +155,45 @@ public class CommandUtil { return Optional.of(component); } return component.children().stream() - .map(CommandUtil::extractDeprecation) - .filter(Optional::isPresent) - .map(Optional::get) - .findAny(); + .map(CommandUtil::extractDeprecation) + .filter(Optional::isPresent) + .map(Optional::get) + .findAny(); } private static int deprecatedCommandWarning( - CommandParameters parameters, - Command command, - String reason, - ReplacementMessageGenerator generator + CommandParameters parameters, + Command command, + String reason, + ReplacementMessageGenerator generator ) throws Exception { parameters.injectedValue(Key.of(Actor.class)) - .ifPresent(actor -> - sendDeprecationMessage(parameters, command, reason, generator, actor) - ); + .ifPresent(actor -> + sendDeprecationMessage(parameters, command, reason, generator, actor) + ); return command.getAction().run(parameters); } private static void sendDeprecationMessage( - CommandParameters parameters, - Command command, - String reason, - ReplacementMessageGenerator generator, - Actor actor + CommandParameters parameters, + Command command, + String reason, + ReplacementMessageGenerator generator, + Actor actor ) { Component replacement = generator.getReplacement(command, parameters); actor.print( - TextComponent.builder(reason + ". ", TextColor.GOLD) - .append(replacement) - .build() + TextComponent.builder(reason + ". ", TextColor.GOLD) + .append(replacement) + .build() ); } public static Map getSubCommands(Command currentCommand) { return currentCommand.getParts().stream() - .filter(p -> p instanceof SubCommandPart) - .flatMap(p -> ((SubCommandPart) p).getCommands().stream()) - .collect(Collectors.toMap(Command::getName, Function.identity())); + .filter(p -> p instanceof SubCommandPart) + .flatMap(p -> ((SubCommandPart) p).getCommands().stream()) + .collect(Collectors.toMap(Command::getName, Function.identity())); } private static String clean(String input) { @@ -199,7 +201,7 @@ public class CommandUtil { } private static final Comparator BY_CLEAN_NAME = - Comparator.comparing(c -> clean(c.getName())); + Comparator.comparing(c -> clean(c.getName())); public static Comparator byCleanName() { return BY_CLEAN_NAME; @@ -210,15 +212,15 @@ public class CommandUtil { */ public static List fixSuggestions(String arguments, List suggestions) { Substring lastArg = Iterables.getLast( - CommandArgParser.spaceSplit(arguments) + CommandArgParser.spaceSplit(arguments) ); return suggestions.stream() - // Re-map suggestions to only operate on the last non-quoted word - .map(suggestion -> onlyOnLastQuotedWord(lastArg, suggestion)) - .map(suggestion -> suggestLast(lastArg, suggestion)) - .filter(Optional::isPresent) - .map(Optional::get) - .collect(toList()); + // Re-map suggestions to only operate on the last non-quoted word + .map(suggestion -> onlyOnLastQuotedWord(lastArg, suggestion)) + .map(suggestion -> suggestLast(lastArg, suggestion)) + .filter(Optional::isPresent) + .map(Optional::get) + .collect(toList()); } private static Substring onlyOnLastQuotedWord(Substring lastArg, Substring suggestion) { @@ -254,7 +256,8 @@ public class CommandUtil { return Optional.empty(); } checkState(end <= builder.length(), - "Suggestion ends too late, last=%s, suggestion=", last, suggestion); + "Suggestion ends too late, last=%s, suggestion=", last, suggestion + ); builder.replace(start, end, suggestion.getSubstring()); return Optional.of(builder.toString()); } @@ -264,7 +267,7 @@ public class CommandUtil { * with the given message. * * @param condition the condition to check - * @param message the message for failure + * @param message the message for failure */ public static void checkCommandArgument(boolean condition, String message) { checkCommandArgument(condition, TextComponent.of(message)); @@ -275,7 +278,7 @@ public class CommandUtil { * with the given message. * * @param condition the condition to check - * @param message the message for failure + * @param message the message for failure */ public static void checkCommandArgument(boolean condition, Component message) { if (!condition) { @@ -285,10 +288,11 @@ public class CommandUtil { public static T requireIV(Key type, String name, InjectedValueAccess injectedValueAccess) { return injectedValueAccess.injectedValue(type).orElseThrow(() -> - new IllegalStateException("No injected value for " + name + " (type " + type + ")") + new IllegalStateException("No injected value for " + name + " (type " + type + ")") ); } private CommandUtil() { } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/command/exception/ExceptionConverterHelper.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/command/exception/ExceptionConverterHelper.java index e02343c8f..ddeb035d7 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/command/exception/ExceptionConverterHelper.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/command/exception/ExceptionConverterHelper.java @@ -88,6 +88,7 @@ public abstract class ExceptionConverterHelper implements ExceptionConverter { } private static class ExceptionHandler implements Comparable { + final Class cls; final Method method; @@ -108,6 +109,7 @@ public abstract class ExceptionConverterHelper implements ExceptionConverter { return cls.getCanonicalName().compareTo(o.cls.getCanonicalName()); } } + } } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/command/exception/WorldEditExceptionConverter.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/command/exception/WorldEditExceptionConverter.java index e36a7791d..fc59315c9 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/command/exception/WorldEditExceptionConverter.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/command/exception/WorldEditExceptionConverter.java @@ -76,7 +76,10 @@ public class WorldEditExceptionConverter extends ExceptionConverterHelper { final Matcher matcher = numberFormat.matcher(e.getMessage()); if (matcher.matches()) { - throw newCommandException(Caption.of("worldedit.error.invalid-number.matches", TextComponent.of(matcher.group(1))), e); + throw newCommandException( + Caption.of("worldedit.error.invalid-number.matches", TextComponent.of(matcher.group(1))), + e + ); } else { throw newCommandException(Caption.of("worldedit.error.invalid-number"), e); } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/cui/CUIEvent.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/cui/CUIEvent.java index f60328bb2..40f9ea383 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/cui/CUIEvent.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/cui/CUIEvent.java @@ -24,4 +24,5 @@ public interface CUIEvent { String getTypeId(); String[] getParameters(); + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/cui/CUIRegion.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/cui/CUIRegion.java index 81360cd07..fba5a6ca5 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/cui/CUIRegion.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/cui/CUIRegion.java @@ -28,7 +28,6 @@ public interface CUIRegion { * Sends CUI events describing the region for * versions of CUI equal to or greater than the * value supplied by getProtocolVersion(). - * */ void describeCUI(LocalSession session, Actor player); @@ -36,7 +35,6 @@ public interface CUIRegion { * Sends CUI events describing the region for * versions of CUI smaller than the value * supplied by getProtocolVersion(). - * */ void describeLegacyCUI(LocalSession session, Actor player); @@ -63,4 +61,5 @@ public interface CUIRegion { * @return the legacy type ID */ String getLegacyTypeID(); + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/cui/SelectionCylinderEvent.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/cui/SelectionCylinderEvent.java index a2bb4631c..b9cf79fe0 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/cui/SelectionCylinderEvent.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/cui/SelectionCylinderEvent.java @@ -41,7 +41,7 @@ public class SelectionCylinderEvent implements CUIEvent { @Override public String[] getParameters() { - return new String[] { + return new String[]{ String.valueOf(pos.getBlockX()), String.valueOf(pos.getBlockY()), String.valueOf(pos.getBlockZ()), @@ -49,4 +49,5 @@ public class SelectionCylinderEvent implements CUIEvent { String.valueOf(radius.getZ()) }; } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/cui/SelectionEllipsoidPointEvent.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/cui/SelectionEllipsoidPointEvent.java index 477c2f0f6..3bf609b1b 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/cui/SelectionEllipsoidPointEvent.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/cui/SelectionEllipsoidPointEvent.java @@ -38,7 +38,7 @@ public class SelectionEllipsoidPointEvent implements CUIEvent { @Override public String[] getParameters() { - return new String[] { + return new String[]{ String.valueOf(id), String.valueOf(pos.getBlockX()), String.valueOf(pos.getBlockY()), diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/cui/SelectionMinMaxEvent.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/cui/SelectionMinMaxEvent.java index 8077e1d4e..49532db7f 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/cui/SelectionMinMaxEvent.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/cui/SelectionMinMaxEvent.java @@ -36,7 +36,7 @@ public class SelectionMinMaxEvent implements CUIEvent { @Override public String[] getParameters() { - return new String[] { + return new String[]{ String.valueOf(min), String.valueOf(max), }; diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/cui/SelectionPoint2DEvent.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/cui/SelectionPoint2DEvent.java index a0d0ce4a9..f27eda25c 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/cui/SelectionPoint2DEvent.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/cui/SelectionPoint2DEvent.java @@ -66,7 +66,7 @@ public class SelectionPoint2DEvent implements CUIEvent { @Override public String[] getParameters() { - return new String[] { + return new String[]{ String.valueOf(id), String.valueOf(blockX), String.valueOf(blockZ), diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/cui/SelectionPointEvent.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/cui/SelectionPointEvent.java index a2c5d19b2..1ee2e466d 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/cui/SelectionPointEvent.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/cui/SelectionPointEvent.java @@ -47,7 +47,7 @@ public class SelectionPointEvent implements CUIEvent { @Override public String[] getParameters() { - return new String[] { + return new String[]{ String.valueOf(id), String.valueOf(pos.getBlockX()), String.valueOf(pos.getBlockY()), diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/cui/SelectionShapeEvent.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/cui/SelectionShapeEvent.java index 9ef5218cd..36f37b6b8 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/cui/SelectionShapeEvent.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/cui/SelectionShapeEvent.java @@ -34,7 +34,7 @@ public class SelectionShapeEvent implements CUIEvent { @Override public String[] getParameters() { - return new String[] { shapeName }; + return new String[]{shapeName}; } } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/cui/ServerCUIHandler.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/cui/ServerCUIHandler.java index 3051e8d7e..b9f3891f3 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/cui/ServerCUIHandler.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/cui/ServerCUIHandler.java @@ -56,7 +56,7 @@ public class ServerCUIHandler { * Creates a structure block that shows the region. * *

    - * Null symbolises removal of the CUI. + * Null symbolises removal of the CUI. *

    * * @param player The player to create the structure block for. @@ -170,4 +170,5 @@ public class ServerCUIHandler { return BlockTypes.STRUCTURE_BLOCK.getDefaultState().toBaseBlock(structureTag.build()); //FAWE end } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/ExecutionData.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/ExecutionData.java index d78592922..1fef5aa81 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/ExecutionData.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/ExecutionData.java @@ -58,4 +58,5 @@ public class ExecutionData { throw new ExpressionTimeoutException("Calculations exceeded time limit."); } } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/Expression.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/Expression.java index b8c765d4d..b7ce1acf3 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/Expression.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/Expression.java @@ -91,8 +91,10 @@ public class Expression implements Cloneable { for (String variableName : variableNames) { slots.initVariable(variableName) - .orElseThrow(() -> new ExpressionException(-1, - "Tried to overwrite identifier '" + variableName + "'")); + .orElseThrow(() -> new ExpressionException( + -1, + "Tried to overwrite identifier '" + variableName + "'" + )); } this.providedSlots = ImmutableList.copyOf(variableNames); @@ -124,8 +126,10 @@ public class Expression implements Cloneable { for (String variableName : variableNames) { slots.initVariable(variableName) - .orElseThrow(() -> new ExpressionException(-1, - "Tried to overwrite identifier '" + variableName + "'")); + .orElseThrow(() -> new ExpressionException( + -1, + "Tried to overwrite identifier '" + variableName + "'" + )); } this.providedSlots = ImmutableList.copyOf(variableNames); @@ -155,8 +159,10 @@ public class Expression implements Cloneable { for (int i = 0; i < values.length; ++i) { String slotName = providedSlots.get(i); LocalSlot.Variable slot = slots.getVariable(slotName) - .orElseThrow(() -> new EvaluationException(-1, - "Tried to assign to non-variable " + slotName + ".")); + .orElseThrow(() -> new EvaluationException( + -1, + "Tried to assign to non-variable " + slotName + "." + )); slot.setValue(values[i]); } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/ExpressionHelper.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/ExpressionHelper.java index 922657976..0afeb6dd3 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/ExpressionHelper.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/ExpressionHelper.java @@ -50,8 +50,8 @@ public class ExpressionHelper { public static EvaluationException evalException(Token token, String message) { return new EvaluationException( - getErrorPosition(token), - message + getErrorPosition(token), + message ); } @@ -59,8 +59,10 @@ public class ExpressionHelper { check(iterations <= 256, ctx, "Loop exceeded 256 iterations"); } - public static MethodHandle resolveFunction(Functions functions, - ExpressionParser.FunctionCallContext ctx) { + public static MethodHandle resolveFunction( + Functions functions, + ExpressionParser.FunctionCallContext ctx + ) { String fnName = ctx.name.getText(); Set matchingFns = functions.getMap().get(fnName); check(!matchingFns.isEmpty(), ctx, "Unknown function '" + fnName + "'"); @@ -93,12 +95,12 @@ public class ExpressionHelper { } // We matched no function, fail with appropriate message. String possibleCounts = matchingFns.stream() - .map(mh -> mh.isVarargsCollector() - ? (mh.type().parameterCount() - 1) + "+" - : String.valueOf(mh.type().parameterCount())) - .collect(Collectors.joining("/")); + .map(mh -> mh.isVarargsCollector() + ? (mh.type().parameterCount() - 1) + "+" + : String.valueOf(mh.type().parameterCount())) + .collect(Collectors.joining("/")); throw evalException(ctx, "Incorrect number of arguments for function '" + fnName + "', " - + "expected " + possibleCounts + ", " + "got " + ctx.args.size()); + + "expected " + possibleCounts + ", " + "got " + ctx.args.size()); } // Special argument handle names @@ -111,15 +113,18 @@ public class ExpressionHelper { * If this argument needs a handle, returns the name of the handle needed. Otherwise, returns * {@code null}. If {@code arg} isn't a valid handle reference, throws. */ - public static String getArgumentHandleName(String fnName, MethodType type, int i, - ParserRuleContext arg) { + public static String getArgumentHandleName( + String fnName, MethodType type, int i, + ParserRuleContext arg + ) { // Pass variable handle in for modification? Class pType = type.parameterType(i); Optional id = tryResolveId(arg); if (pType == LocalSlot.Variable.class) { // MUST be an id check(id.isPresent(), arg, - "Function '" + fnName + "' requires a variable in parameter " + i); + "Function '" + fnName + "' requires a variable in parameter " + i + ); return id.get(); } else if (pType == LocalSlot.class) { return id.orElse(WRAPPED_CONSTANT); @@ -129,7 +134,7 @@ public class ExpressionHelper { private static Optional tryResolveId(ParserRuleContext arg) { Optional wrappedExprContext = - tryAs(arg, ExpressionParser.WrappedExprContext.class); + tryAs(arg, ExpressionParser.WrappedExprContext.class); if (wrappedExprContext.isPresent()) { return tryResolveId(wrappedExprContext.get().expression()); } @@ -140,8 +145,8 @@ public class ExpressionHelper { } private static Optional tryAs( - ParserRuleContext ctx, - Class rule + ParserRuleContext ctx, + Class rule ) { if (rule.isInstance(ctx)) { return Optional.of(rule.cast(ctx)); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/ExpressionTimeoutException.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/ExpressionTimeoutException.java index ff415ebcb..8e5282eac 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/ExpressionTimeoutException.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/ExpressionTimeoutException.java @@ -23,7 +23,9 @@ package com.sk89q.worldedit.internal.expression; * Thrown when an evaluation exceeds the timeout time. */ public class ExpressionTimeoutException extends EvaluationException { + public ExpressionTimeoutException(String message) { super(-1, message); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/ExpressionValidator.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/ExpressionValidator.java index b7c2edfcb..6c42cefbc 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/ExpressionValidator.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/ExpressionValidator.java @@ -34,8 +34,10 @@ class ExpressionValidator extends ExpressionBaseListener { private final Set variableNames = new HashSet<>(); private final Functions functions; - ExpressionValidator(Collection variableNames, - Functions functions) { + ExpressionValidator( + Collection variableNames, + Functions functions + ) { this.variableNames.addAll(variableNames); this.functions = functions; } @@ -58,11 +60,13 @@ class ExpressionValidator extends ExpressionBaseListener { public void enterIdExpr(ExpressionParser.IdExprContext ctx) { String text = ctx.source.getText(); check(variableNames.contains(text), ctx, - "Variable '" + text + "' is not bound"); + "Variable '" + text + "' is not bound" + ); } @Override public void enterFunctionCall(ExpressionParser.FunctionCallContext ctx) { resolveFunction(functions, ctx); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/Functions.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/Functions.java index b40c91a94..d3b737ae1 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/Functions.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/Functions.java @@ -56,7 +56,8 @@ public final class Functions { MethodHandles.Lookup lookup = MethodHandles.lookup(); try { DOUBLE_VALUE = lookup.findVirtual(Number.class, "doubleValue", - methodType(double.class)); + methodType(double.class) + ); } catch (NoSuchMethodException | IllegalAccessException e) { throw new IllegalStateException(e); } @@ -68,8 +69,10 @@ public final class Functions { handle = handle.asType(handle.type().wrap()); if (handle.type().returnType() != Double.class) { // Ensure that the handle returns a Double, even if originally a Number - checkState(Number.class.isAssignableFrom(handle.type().returnType()), - "Function does not return a number"); + checkState( + Number.class.isAssignableFrom(handle.type().returnType()), + "Function does not return a number" + ); handle = handle.asType(handle.type().changeReturnType(Number.class)); handle = filterReturnValue(handle, DOUBLE_VALUE); } @@ -83,94 +86,124 @@ public final class Functions { } private static void addMathHandles( - SetMultimap map, - MethodHandles.Lookup lookup + SetMultimap map, + MethodHandles.Lookup lookup ) throws NoSuchMethodException, IllegalAccessException { // double (double) functions for (String name : ImmutableList.of( - "sin", "cos", "tan", "asin", "acos", "atan", - "sinh", "cosh", "tanh", "sqrt", "cbrt", "abs", - "ceil", "floor", "rint", "exp", "log", "log10" + "sin", "cos", "tan", "asin", "acos", "atan", + "sinh", "cosh", "tanh", "sqrt", "cbrt", "abs", + "ceil", "floor", "rint", "exp", "log", "log10" )) { map.put(name, lookup.findStatic(Math.class, name, - methodType(double.class, double.class))); + methodType(double.class, double.class) + )); } // Alias ln -> log map.put("ln", lookup.findStatic(Math.class, "log", - methodType(double.class, double.class))); + methodType(double.class, double.class) + )); map.put("round", lookup.findStatic(Math.class, "round", - methodType(long.class, double.class))); + methodType(long.class, double.class) + )); map.put("atan2", lookup.findStatic(Math.class, "atan2", - methodType(double.class, double.class, double.class))); + methodType(double.class, double.class, double.class) + )); // Special cases: we accept varargs for these map.put("min", lookup.findStatic(Doubles.class, "min", - methodType(double.class, double[].class)) - .asVarargsCollector(double[].class)); + methodType(double.class, double[].class) + ) + .asVarargsCollector(double[].class)); map.put("max", lookup.findStatic(Doubles.class, "max", - methodType(double.class, double[].class)) - .asVarargsCollector(double[].class)); + methodType(double.class, double[].class) + ) + .asVarargsCollector(double[].class)); } private static void addStaticFunctionHandles( - SetMultimap map, - MethodHandles.Lookup lookup + SetMultimap map, + MethodHandles.Lookup lookup ) throws NoSuchMethodException, IllegalAccessException { map.put("rotate", lookup.findStatic(Functions.class, "rotate", - methodType(double.class, Variable.class, Variable.class, double.class))); + methodType(double.class, Variable.class, Variable.class, double.class) + )); map.put("swap", lookup.findStatic(Functions.class, "swap", - methodType(double.class, Variable.class, Variable.class))); + methodType(double.class, Variable.class, Variable.class) + )); map.put("gmegabuf", lookup.findStatic(Functions.class, "gmegabuf", - methodType(double.class, double.class))); + methodType(double.class, double.class) + )); map.put("gmegabuf", lookup.findStatic(Functions.class, "gmegabuf", - methodType(double.class, double.class, double.class))); + methodType(double.class, double.class, double.class) + )); map.put("gclosest", lookup.findStatic(Functions.class, "gclosest", - methodType(double.class, double.class, double.class, double.class, double.class, - double.class, double.class))); + methodType(double.class, double.class, double.class, double.class, double.class, + double.class, double.class + ) + )); map.put("random", lookup.findStatic(Functions.class, "random", - methodType(double.class))); + methodType(double.class) + )); map.put("randint", lookup.findStatic(Functions.class, "randint", - methodType(double.class, double.class))); + methodType(double.class, double.class) + )); map.put("perlin", lookup.findStatic(Functions.class, "perlin", - methodType(double.class, double.class, double.class, double.class, double.class, - double.class, double.class, double.class))); + methodType(double.class, double.class, double.class, double.class, double.class, + double.class, double.class, double.class + ) + )); map.put("voronoi", lookup.findStatic(Functions.class, "voronoi", - methodType(double.class, double.class, double.class, double.class, double.class, - double.class))); + methodType(double.class, double.class, double.class, double.class, double.class, + double.class + ) + )); map.put("ridgedmulti", lookup.findStatic(Functions.class, "ridgedmulti", - methodType(double.class, double.class, double.class, double.class, double.class, - double.class, double.class))); + methodType(double.class, double.class, double.class, double.class, double.class, + double.class, double.class + ) + )); } private void addInstanceFunctionHandles( - SetMultimap map, - MethodHandles.Lookup lookup + SetMultimap map, + MethodHandles.Lookup lookup ) throws NoSuchMethodException, IllegalAccessException { map.put("megabuf", lookup.findSpecial(Functions.class, "megabuf", - methodType(double.class, double.class), Functions.class) - .bindTo(this)); + methodType(double.class, double.class), Functions.class + ) + .bindTo(this)); map.put("megabuf", lookup.findSpecial(Functions.class, "megabuf", - methodType(double.class, double.class, double.class), Functions.class) - .bindTo(this)); + methodType(double.class, double.class, double.class), Functions.class + ) + .bindTo(this)); map.put("closest", lookup.findSpecial(Functions.class, "closest", - methodType(double.class, double.class, double.class, double.class, double.class, - double.class, double.class), Functions.class) - .bindTo(this)); + methodType(double.class, double.class, double.class, double.class, double.class, + double.class, double.class + ), Functions.class + ) + .bindTo(this)); // rely on expression field map.put("query", lookup.findSpecial(Functions.class, "query", - methodType(double.class, double.class, double.class, double.class, LocalSlot.class, - LocalSlot.class), Functions.class) - .bindTo(this)); + methodType(double.class, double.class, double.class, double.class, LocalSlot.class, + LocalSlot.class + ), Functions.class + ) + .bindTo(this)); map.put("queryAbs", lookup.findSpecial(Functions.class, "queryAbs", - methodType(double.class, double.class, double.class, double.class, LocalSlot.class, - LocalSlot.class), Functions.class) - .bindTo(this)); + methodType(double.class, double.class, double.class, double.class, LocalSlot.class, + LocalSlot.class + ), Functions.class + ) + .bindTo(this)); map.put("queryRel", lookup.findSpecial(Functions.class, "queryRel", - methodType(double.class, double.class, double.class, double.class, LocalSlot.class, - LocalSlot.class), Functions.class) - .bindTo(this)); + methodType(double.class, double.class, double.class, double.class, LocalSlot.class, + LocalSlot.class + ), Functions.class + ) + .bindTo(this)); } private static double rotate(Variable x, Variable y, double angle) { @@ -212,7 +245,7 @@ public final class Functions { throw new IllegalStateException(e); } this.map = ImmutableSetMultimap.copyOf( - Multimaps.transformValues(map, Functions::clean) + Multimaps.transformValues(map, Functions::clean) ); } @@ -258,17 +291,25 @@ public final class Functions { private double closest(double x, double y, double z, double index, double count, double stride) { return findClosest( - megaBuffer, x, y, z, (int) index, (int) count, (int) stride + megaBuffer, x, y, z, (int) index, (int) count, (int) stride ); } private static double gclosest(double x, double y, double z, double index, double count, double stride) { return findClosest( - globalMegaBuffer, x, y, z, (int) index, (int) count, (int) stride + globalMegaBuffer, x, y, z, (int) index, (int) count, (int) stride ); } - private static double findClosest(Int2ObjectMap megabuf, double x, double y, double z, int index, int count, int stride) { + private static double findClosest( + Int2ObjectMap megabuf, + double x, + double y, + double z, + int index, + int count, + int stride + ) { int closestIndex = -1; double minDistanceSquared = Double.MAX_VALUE; @@ -300,8 +341,10 @@ public final class Functions { private static final ThreadLocal localPerlin = ThreadLocal.withInitial(PerlinNoise::new); - private static double perlin(double seed, double x, double y, double z, - double frequency, double octaves, double persistence) { + private static double perlin( + double seed, double x, double y, double z, + double frequency, double octaves, double persistence + ) { PerlinNoise perlin = localPerlin.get(); try { perlin.setSeed((int) seed); @@ -329,8 +372,10 @@ public final class Functions { private static final ThreadLocal localRidgedMulti = ThreadLocal.withInitial(RidgedMultiFractalNoise::new); - private static double ridgedmulti(double seed, double x, double y, double z, - double frequency, double octaves) { + private static double ridgedmulti( + double seed, double x, double y, double z, + double frequency, double octaves + ) { RidgedMultiFractalNoise ridgedMulti = localRidgedMulti.get(); try { ridgedMulti.setSeed((int) seed); @@ -346,7 +391,7 @@ public final class Functions { // Compare to input values and determine return value // -1 is a wildcard, always true double ret = ((type.getValue() == -1 || typeId == type.getValue()) - && (data.getValue() == -1 || dataValue == data.getValue())) ? 1.0 : 0.0; + && (data.getValue() == -1 || dataValue == data.getValue())) ? 1.0 : 0.0; if (type instanceof Variable) { ((Variable) type).setValue(typeId); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/LexerErrorListener.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/LexerErrorListener.java index 0fd0101bd..7b83b8edd 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/LexerErrorListener.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/LexerErrorListener.java @@ -24,8 +24,17 @@ import org.antlr.v4.runtime.RecognitionException; import org.antlr.v4.runtime.Recognizer; class LexerErrorListener extends BaseErrorListener { + @Override - public void syntaxError(Recognizer recognizer, Object offendingSymbol, int line, int charPositionInLine, String msg, RecognitionException e) { + public void syntaxError( + Recognizer recognizer, + Object offendingSymbol, + int line, + int charPositionInLine, + String msg, + RecognitionException e + ) { throw new LexerException(charPositionInLine, msg); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/LocalSlot.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/LocalSlot.java index 8e81a55fa..2b02fa036 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/LocalSlot.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/LocalSlot.java @@ -25,6 +25,7 @@ package com.sk89q.worldedit.internal.expression; public interface LocalSlot { final class Constant implements LocalSlot { + private final double value; public Constant(double value) { @@ -40,9 +41,11 @@ public interface LocalSlot { public String toString() { return String.valueOf(value); } + } final class Variable implements LocalSlot { + private double value; public Variable(double value) { @@ -62,6 +65,7 @@ public interface LocalSlot { public String toString() { return String.valueOf(value); } + } double getValue(); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/ParserErrorListener.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/ParserErrorListener.java index e69635d25..f714b7d9b 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/ParserErrorListener.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/ParserErrorListener.java @@ -24,8 +24,17 @@ import org.antlr.v4.runtime.RecognitionException; import org.antlr.v4.runtime.Recognizer; class ParserErrorListener extends BaseErrorListener { + @Override - public void syntaxError(Recognizer recognizer, Object offendingSymbol, int line, int charPositionInLine, String msg, RecognitionException e) { + public void syntaxError( + Recognizer recognizer, + Object offendingSymbol, + int line, + int charPositionInLine, + String msg, + RecognitionException e + ) { throw new ParserException(charPositionInLine, msg); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/SlotTable.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/SlotTable.java index e727793e3..a94c9dc62 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/SlotTable.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/SlotTable.java @@ -52,8 +52,8 @@ public class SlotTable { public Optional getVariable(String name) { return getSlot(name) - .filter(LocalSlot.Variable.class::isInstance) - .map(LocalSlot.Variable.class::cast); + .filter(LocalSlot.Variable.class::isInstance) + .map(LocalSlot.Variable.class::cast); } public OptionalDouble getSlotValue(String name) { diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/invoke/BreakException.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/invoke/BreakException.java index 519c06c18..f6be500a1 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/invoke/BreakException.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/invoke/BreakException.java @@ -32,7 +32,8 @@ class BreakException extends RuntimeException { private BreakException(boolean doContinue) { super(doContinue ? "'continue' encountered outside a loop" : "'break' encountered outside a loop", - null, true, false); + null, true, false + ); this.doContinue = doContinue; } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/invoke/CompilingVisitor.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/invoke/CompilingVisitor.java index 7f9b2841e..7645c8413 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/invoke/CompilingVisitor.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/invoke/CompilingVisitor.java @@ -94,9 +94,9 @@ class CompilingVisitor extends ExpressionBaseVisitor { private Token extractToken(ParserRuleContext ctx) { List children = ctx.children.stream() - .filter(TerminalNode.class::isInstance) - .map(TerminalNode.class::cast) - .collect(Collectors.toList()); + .filter(TerminalNode.class::isInstance) + .map(TerminalNode.class::cast) + .collect(Collectors.toList()); ExpressionHelper.check(children.size() == 1, ctx, "Expected exactly one token, got " + children.size()); return children.get(0).getSymbol(); } @@ -111,19 +111,20 @@ class CompilingVisitor extends ExpressionBaseVisitor { private void checkHandle(MethodHandle mh, ParserRuleContext ctx) { ExpressionHelper.check(mh.type().equals(ExpressionHandles.COMPILED_EXPRESSION_SIG), ctx, - "Incorrect type returned from handler for " + ctx.getClass()); + "Incorrect type returned from handler for " + ctx.getClass() + ); } private MethodHandle evaluateForNamedValue(ParserRuleContext ctx, String name) { MethodHandle guard = MethodHandles.guardWithTest( - // if result is null - IS_NULL.asType(methodType(boolean.class, Double.class)), - // throw appropriate exception, dropping `result` argument - MethodHandles.dropArguments( - ExpressionHandles.throwEvalException(ctx, "Invalid expression for " + name), 0, Double.class - ), - // else return the argument we were passed - MethodHandles.identity(Double.class) + // if result is null + IS_NULL.asType(methodType(boolean.class, Double.class)), + // throw appropriate exception, dropping `result` argument + MethodHandles.dropArguments( + ExpressionHandles.throwEvalException(ctx, "Invalid expression for " + name), 0, Double.class + ), + // else return the argument we were passed + MethodHandles.identity(Double.class) ); // now pass `result` into `guard` MethodHandle result = evaluate(ctx).handle; @@ -138,18 +139,20 @@ class CompilingVisitor extends ExpressionBaseVisitor { MethodHandle value = evaluateForNamedValue(boolExpression, "a boolean"); // Pass `value` into converter, returns (ExecutionData)boolean; return MethodHandles.collectArguments( - DOUBLE_TO_BOOL, 0, value + DOUBLE_TO_BOOL, 0, value ); } - private MethodHandle evaluateConditional(ParserRuleContext condition, - ParserRuleContext trueBranch, - ParserRuleContext falseBranch) { + private MethodHandle evaluateConditional( + ParserRuleContext condition, + ParserRuleContext trueBranch, + ParserRuleContext falseBranch + ) { // easiest one of the bunch return MethodHandles.guardWithTest( - evaluateBoolean(condition), - trueBranch == null ? NULL_DOUBLE : evaluate(trueBranch).handle, - falseBranch == null ? NULL_DOUBLE : evaluate(falseBranch).handle + evaluateBoolean(condition), + trueBranch == null ? NULL_DOUBLE : evaluate(trueBranch).handle, + falseBranch == null ? NULL_DOUBLE : evaluate(falseBranch).handle ); } @@ -166,45 +169,45 @@ class CompilingVisitor extends ExpressionBaseVisitor { @Override public MethodHandle visitWhileStatement(ExpressionParser.WhileStatementContext ctx) { return ExpressionHandles.whileLoop( - evaluateBoolean(ctx.condition), - evaluate(ctx.body) + evaluateBoolean(ctx.condition), + evaluate(ctx.body) ); } @Override public MethodHandle visitDoStatement(ExpressionParser.DoStatementContext ctx) { return ExpressionHandles.doWhileLoop( - evaluateBoolean(ctx.condition), - evaluate(ctx.body) + evaluateBoolean(ctx.condition), + evaluate(ctx.body) ); } @Override public MethodHandle visitForStatement(ExpressionParser.ForStatementContext ctx) { return ExpressionHandles.forLoop( - evaluate(ctx.init).handle, - evaluateBoolean(ctx.condition), - evaluate(ctx.body), - evaluate(ctx.update).handle + evaluate(ctx.init).handle, + evaluateBoolean(ctx.condition), + evaluate(ctx.body), + evaluate(ctx.update).handle ); } @Override public MethodHandle visitSimpleForStatement(ExpressionParser.SimpleForStatementContext ctx) { return ExpressionHandles.simpleForLoop( - evaluateForValue(ctx.first), - evaluateForValue(ctx.last), - ctx.counter, - evaluate(ctx.body) + evaluateForValue(ctx.first), + evaluateForValue(ctx.last), + ctx.counter, + evaluate(ctx.body) ); } private static final MethodHandle BREAK_STATEMENT = - ExpressionHandles.dropData(MethodHandles.throwException(Double.class, BreakException.class) - .bindTo(BreakException.BREAK)); + ExpressionHandles.dropData(MethodHandles.throwException(Double.class, BreakException.class) + .bindTo(BreakException.BREAK)); private static final MethodHandle CONTINUE_STATEMENT = - ExpressionHandles.dropData(MethodHandles.throwException(Double.class, BreakException.class) - .bindTo(BreakException.CONTINUE)); + ExpressionHandles.dropData(MethodHandles.throwException(Double.class, BreakException.class) + .bindTo(BreakException.CONTINUE)); @Override public MethodHandle visitBreakStatement(ExpressionParser.BreakStatementContext ctx) { @@ -219,20 +222,20 @@ class CompilingVisitor extends ExpressionBaseVisitor { // MH = (Double)Double // takes the double to return, conveniently has Double return type private static final MethodHandle RETURN_STATEMENT_BASE = MethodHandles.filterReturnValue( - // take the (Double)ReturnException constructor - ExpressionHandles.NEW_RETURN_EXCEPTION, - // and map the return type to Double by throwing it - MethodHandles.throwException(Double.class, ReturnException.class) + // take the (Double)ReturnException constructor + ExpressionHandles.NEW_RETURN_EXCEPTION, + // and map the return type to Double by throwing it + MethodHandles.throwException(Double.class, ReturnException.class) ); @Override public MethodHandle visitReturnStatement(ExpressionParser.ReturnStatementContext ctx) { return MethodHandles.filterArguments( - // take the (Double)Double return statement - RETURN_STATEMENT_BASE, - 0, - // map the Double back to ExecutionData via the returnValue - evaluate(ctx.value).handle + // take the (Double)Double return statement + RETURN_STATEMENT_BASE, + 0, + // map the Double back to ExecutionData via the returnValue + evaluate(ctx.value).handle ); } @@ -305,7 +308,7 @@ class CompilingVisitor extends ExpressionBaseVisitor { return value; case MINUS: return ExpressionHandles.call(data -> - -(double) ExpressionHandles.standardInvoke(value, data) + -(double) ExpressionHandles.standardInvoke(value, data) ); } throw ExpressionHelper.evalException(ctx, "Invalid text for plus/minus expr: " + ctx.op.getText()); @@ -315,7 +318,7 @@ class CompilingVisitor extends ExpressionBaseVisitor { public MethodHandle visitNotExpr(ExpressionParser.NotExprContext ctx) { MethodHandle expr = evaluateBoolean(ctx.expr); return ExpressionHandles.call(data -> - ExpressionHandles.boolToDouble(!(boolean) ExpressionHandles.standardInvoke(expr, data)) + ExpressionHandles.boolToDouble(!(boolean) ExpressionHandles.standardInvoke(expr, data)) ); } @@ -327,7 +330,7 @@ class CompilingVisitor extends ExpressionBaseVisitor { // - Convert to long from double value // - Convert from Object to Double to double. return ExpressionHandles.call(data -> - (double) ~(long) (double) ExpressionHandles.standardInvoke(expr, data) + (double) ~(long) (double) ExpressionHandles.standardInvoke(expr, data) ); } @@ -336,11 +339,11 @@ class CompilingVisitor extends ExpressionBaseVisitor { MethodHandle left = evaluateBoolean(ctx.left); MethodHandle right = evaluateForValue(ctx.right); return MethodHandles.guardWithTest( - left, - right, - ExpressionHandles.dropData( - MethodHandles.constant(Double.class, ExpressionHandles.boolToDouble(false)) - ) + left, + right, + ExpressionHandles.dropData( + MethodHandles.constant(Double.class, ExpressionHandles.boolToDouble(false)) + ) ); } @@ -351,41 +354,45 @@ class CompilingVisitor extends ExpressionBaseVisitor { // Inject left as primary condition, on failure take right with data parameter // logic = (Double,ExecutionData)Double MethodHandle logic = MethodHandles.guardWithTest( - // data arg dropped implicitly -- (Double)boolean; - DOUBLE_TO_BOOL, - // drop data arg -- (Double,ExecutionData)Double; - MethodHandles.dropArguments( - MethodHandles.identity(Double.class), 1, ExecutionData.class - ), - // drop left arg, call right -- (Double,ExecutionData)Double; - MethodHandles.dropArguments( - right, 0, Double.class - ) + // data arg dropped implicitly -- (Double)boolean; + DOUBLE_TO_BOOL, + // drop data arg -- (Double,ExecutionData)Double; + MethodHandles.dropArguments( + MethodHandles.identity(Double.class), 1, ExecutionData.class + ), + // drop left arg, call right -- (Double,ExecutionData)Double; + MethodHandles.dropArguments( + right, 0, Double.class + ) ); // mixed = (ExecutionData,ExecutionData)Double MethodHandle mixed = MethodHandles.collectArguments( - logic, 0, left + logic, 0, left ); // Deduplicate ExecutionData return ExpressionHandles.dedupData(mixed); } - private MethodHandle evaluateBinary(ParserRuleContext left, - ParserRuleContext right, - DoubleBinaryOperator op) { + private MethodHandle evaluateBinary( + ParserRuleContext left, + ParserRuleContext right, + DoubleBinaryOperator op + ) { MethodHandle mhLeft = evaluateForValue(left); MethodHandle mhRight = evaluateForValue(right); // Map two data args to two double args, then evaluate op MethodHandle doubleData = MethodHandles.filterArguments( - CALL_BINARY_OP.bindTo(op), 0, - unboxDoubles(mhLeft), unboxDoubles(mhRight) + CALL_BINARY_OP.bindTo(op), 0, + unboxDoubles(mhLeft), unboxDoubles(mhRight) ); return ExpressionHandles.dedupData(doubleData); } - private MethodHandle evaluateBinary(ParserRuleContext left, - ParserRuleContext right, - Supplier op) { + private MethodHandle evaluateBinary( + ParserRuleContext left, + ParserRuleContext right, + Supplier op + ) { return evaluateBinary(left, right, op.get()); } @@ -494,11 +501,13 @@ class CompilingVisitor extends ExpressionBaseVisitor { MethodHandle value = evaluateForValue(ctx.expr); if (ctx.op.getType() == EXCLAMATION_MARK) { return ExpressionHandles.call(data -> - factorial((double) ExpressionHandles.standardInvoke(value, data)) + factorial((double) ExpressionHandles.standardInvoke(value, data)) ); } - throw ExpressionHelper.evalException(ctx, - "Invalid text for post-unary expr: " + ctx.op.getText()); + throw ExpressionHelper.evalException( + ctx, + "Invalid text for post-unary expr: " + ctx.op.getText() + ); } private static final double[] factorials = new double[171]; @@ -560,7 +569,7 @@ class CompilingVisitor extends ExpressionBaseVisitor { break; default: throw ExpressionHelper.evalException(ctx, "Invalid text for assign expr: " - + ctx.assignmentOperator().getText()); + + ctx.assignmentOperator().getText()); } } variable.setValue(value); @@ -589,7 +598,7 @@ class CompilingVisitor extends ExpressionBaseVisitor { // Collapse every data into one argument int[] permutation = new int[arguments.length]; return MethodHandles.permuteArguments( - manyData, ExpressionHandles.COMPILED_EXPRESSION_SIG, permutation + manyData, ExpressionHandles.COMPILED_EXPRESSION_SIG, permutation ); } @@ -605,7 +614,7 @@ class CompilingVisitor extends ExpressionBaseVisitor { MethodHandle filter = evaluateForValue(arg); filter = filter.asType(filter.type().unwrap()); return MethodHandles.collectArguments( - NEW_LS_CONSTANT, 0, filter + NEW_LS_CONSTANT, 0, filter ); } // small hack @@ -617,7 +626,7 @@ class CompilingVisitor extends ExpressionBaseVisitor { @Override public MethodHandle visitConstantExpression(ExpressionParser.ConstantExpressionContext ctx) { return ExpressionHandles.dropData( - MethodHandles.constant(Double.class, Double.parseDouble(ctx.getText())) + MethodHandles.constant(Double.class, Double.parseDouble(ctx.getText())) ); } @@ -631,7 +640,7 @@ class CompilingVisitor extends ExpressionBaseVisitor { * Method handle (ExecutionData)Double, returns null. */ private static final MethodHandle DEFAULT_RESULT = - ExpressionHandles.dropData(MethodHandles.constant(Double.class, null)); + ExpressionHandles.dropData(MethodHandles.constant(Double.class, null)); @Override protected MethodHandle defaultResult() { @@ -678,15 +687,16 @@ class CompilingVisitor extends ExpressionBaseVisitor { // Add a dummy Double parameter to the end // MH:dummyDouble = (ExecutionData, Double)Double MethodHandle dummyDouble = MethodHandles.dropArguments( - result, 1, Double.class + result, 1, Double.class ); // Have oldResult turn it from data->Double // MH:doubledData = (ExecutionData, ExecutionData)Double MethodHandle doubledData = MethodHandles.collectArguments( - dummyDouble, 1, oldResult + dummyDouble, 1, oldResult ); // Deduplicate the `data` parameter // MH:@return = (ExecutionData)Double return ExpressionHandles.dedupData(doubledData); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/invoke/ExecNode.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/invoke/ExecNode.java index 806d0c927..6c53a13e5 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/invoke/ExecNode.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/invoke/ExecNode.java @@ -24,6 +24,7 @@ import org.antlr.v4.runtime.ParserRuleContext; import java.lang.invoke.MethodHandle; class ExecNode { + final ParserRuleContext ctx; final MethodHandle handle; @@ -31,4 +32,5 @@ class ExecNode { this.ctx = ctx; this.handle = handle; } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/invoke/ExpressionCompiler.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/invoke/ExpressionCompiler.java index ed698816c..0b34b86a7 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/invoke/ExpressionCompiler.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/invoke/ExpressionCompiler.java @@ -38,7 +38,7 @@ public class ExpressionCompiler { private static final String CE_EXECUTE = "execute"; private static final MethodType HANDLE_TO_CE = - methodType(CompiledExpression.class, MethodHandle.class); + methodType(CompiledExpression.class, MethodHandle.class); private static final MethodHandle HANDLE_TO_CE_CONVERTER; @@ -46,35 +46,38 @@ public class ExpressionCompiler { MethodHandle handleInvoker = MethodHandles.invoker(ExpressionHandles.COMPILED_EXPRESSION_SIG); try { HANDLE_TO_CE_CONVERTER = LambdaMetafactory.metafactory( - MethodHandles.lookup(), - // Implementing CompiledExpression.execute - CE_EXECUTE, - // Take a handle, to be converted to CompiledExpression - HANDLE_TO_CE, - // Raw signature for SAM type - ExpressionHandles.COMPILED_EXPRESSION_SIG, - // Handle to call the captured handle. - handleInvoker, - // Actual signature at invoke time - ExpressionHandles.COMPILED_EXPRESSION_SIG + MethodHandles.lookup(), + // Implementing CompiledExpression.execute + CE_EXECUTE, + // Take a handle, to be converted to CompiledExpression + HANDLE_TO_CE, + // Raw signature for SAM type + ExpressionHandles.COMPILED_EXPRESSION_SIG, + // Handle to call the captured handle. + handleInvoker, + // Actual signature at invoke time + ExpressionHandles.COMPILED_EXPRESSION_SIG ).dynamicInvoker().asType(HANDLE_TO_CE); } catch (LambdaConversionException e) { throw new IllegalStateException("Failed to load ExpressionCompiler MetaFactory", e); } } - public CompiledExpression compileExpression(ExpressionParser.AllStatementsContext root, - Functions functions) { + public CompiledExpression compileExpression( + ExpressionParser.AllStatementsContext root, + Functions functions + ) { MethodHandle invokable = root.accept(new CompilingVisitor(functions)); // catch ReturnExpression and substitute its result invokable = MethodHandles.catchException( - invokable, - ReturnException.class, - ExpressionHandles.RETURN_EXCEPTION_GET_RESULT + invokable, + ReturnException.class, + ExpressionHandles.RETURN_EXCEPTION_GET_RESULT ); MethodHandle finalInvokable = invokable; return (CompiledExpression) ExpressionHandles.safeInvoke( - HANDLE_TO_CE_CONVERTER, h -> h.invoke(finalInvokable) + HANDLE_TO_CE_CONVERTER, h -> h.invoke(finalInvokable) ); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/invoke/ExpressionHandles.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/invoke/ExpressionHandles.java index 82cad7e06..97a1f63d3 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/invoke/ExpressionHandles.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/invoke/ExpressionHandles.java @@ -30,6 +30,7 @@ import it.unimi.dsi.fastutil.doubles.Double2ObjectMaps; import org.antlr.v4.runtime.ParserRuleContext; import org.antlr.v4.runtime.Token; +import javax.annotation.Nullable; import java.lang.invoke.MethodHandle; import java.lang.invoke.MethodHandles; import java.lang.invoke.MethodType; @@ -37,7 +38,6 @@ import java.util.Objects; import java.util.function.DoubleBinaryOperator; import java.util.function.Supplier; import java.util.stream.Collectors; -import javax.annotation.Nullable; import static com.sk89q.worldedit.internal.expression.ExpressionHelper.check; import static com.sk89q.worldedit.internal.expression.ExpressionHelper.checkIterations; @@ -80,38 +80,56 @@ class ExpressionHandles { MethodHandles.Lookup lookup = MethodHandles.lookup(); try { EVAL_EXCEPTION_CONSTR = lookup.findConstructor( - EvaluationException.class, methodType(void.class, int.class, String.class)); + EvaluationException.class, methodType(void.class, int.class, String.class)); CALL_EXPRESSION = lookup.findVirtual( - CompiledExpression.class, "execute", - methodType(Double.class, ExecutionData.class)); + CompiledExpression.class, "execute", + methodType(Double.class, ExecutionData.class) + ); GET_VARIABLE = lookup.findStatic(ExpressionHandles.class, "getVariable", - methodType(LocalSlot.Variable.class, ExecutionData.class, Token.class)); - WHILE_FOR_LOOP_IMPL = lookup.findStatic(ExpressionHandles.class, - "whileForLoopImpl", - methodType(Double.class, ExecutionData.class, MethodHandle.class, - MethodHandle.class, ExecNode.class, MethodHandle.class)); + methodType(LocalSlot.Variable.class, ExecutionData.class, Token.class) + ); + WHILE_FOR_LOOP_IMPL = lookup.findStatic( + ExpressionHandles.class, + "whileForLoopImpl", + methodType(Double.class, ExecutionData.class, MethodHandle.class, + MethodHandle.class, ExecNode.class, MethodHandle.class + ) + ); DO_WHILE_LOOP_IMPL = lookup.findStatic(ExpressionHandles.class, "doWhileLoopImpl", - methodType(Double.class, ExecutionData.class, MethodHandle.class, ExecNode.class)); + methodType(Double.class, ExecutionData.class, MethodHandle.class, ExecNode.class) + ); SIMPLE_FOR_LOOP_IMPL = lookup.findStatic(ExpressionHandles.class, "simpleForLoopImpl", - methodType(Double.class, ExecutionData.class, MethodHandle.class, - MethodHandle.class, Token.class, ExecNode.class)); + methodType(Double.class, ExecutionData.class, MethodHandle.class, + MethodHandle.class, Token.class, ExecNode.class + ) + ); SWITCH_IMPL = lookup.findStatic(ExpressionHandles.class, "switchImpl", - methodType(Double.class, ExecutionData.class, Double2ObjectMap.class, - MethodHandle.class, ExecNode.class)); + methodType(Double.class, ExecutionData.class, Double2ObjectMap.class, + MethodHandle.class, ExecNode.class + ) + ); IS_NULL = lookup.findStatic(Objects.class, "isNull", - methodType(boolean.class, Object.class)); + methodType(boolean.class, Object.class) + ); DOUBLE_TO_BOOL = boxDoubles(lookup.findStatic(ExpressionHandles.class, "doubleToBool", - methodType(boolean.class, double.class))); + methodType(boolean.class, double.class) + )); CALL_BINARY_OP = lookup.findVirtual(DoubleBinaryOperator.class, "applyAsDouble", - methodType(double.class, double.class, double.class)) - .asType(methodType(Double.class, DoubleBinaryOperator.class, double.class, double.class)); - NEW_LS_CONSTANT = lookup.findConstructor(LocalSlot.Constant.class, - methodType(void.class, double.class)); - NEW_RETURN_EXCEPTION = lookup.findConstructor(ReturnException.class, - methodType(void.class, Double.class)); + methodType(double.class, double.class, double.class) + ) + .asType(methodType(Double.class, DoubleBinaryOperator.class, double.class, double.class)); + NEW_LS_CONSTANT = lookup.findConstructor( + LocalSlot.Constant.class, + methodType(void.class, double.class) + ); + NEW_RETURN_EXCEPTION = lookup.findConstructor( + ReturnException.class, + methodType(void.class, Double.class) + ); RETURN_EXCEPTION_GET_RESULT = lookup.findVirtual(ReturnException.class, - "getResult", methodType(Double.class)); + "getResult", methodType(Double.class) + ); } catch (NoSuchMethodException | IllegalAccessException e) { throw new IllegalStateException(e); } @@ -120,9 +138,9 @@ class ExpressionHandles { static MethodHandle boxDoubles(MethodHandle handle) { MethodType type = handle.type(); type = methodType( - boxIfPrimitiveDouble(type.returnType()), - type.parameterList().stream().map(ExpressionHandles::boxIfPrimitiveDouble) - .collect(Collectors.toList()) + boxIfPrimitiveDouble(type.returnType()), + type.parameterList().stream().map(ExpressionHandles::boxIfPrimitiveDouble) + .collect(Collectors.toList()) ); return handle.asType(type); } @@ -134,9 +152,9 @@ class ExpressionHandles { static MethodHandle unboxDoubles(MethodHandle handle) { MethodType type = handle.type(); type = methodType( - unboxIfDouble(type.returnType()), - type.parameterList().stream().map(ExpressionHandles::unboxIfDouble) - .collect(Collectors.toList()) + unboxIfDouble(type.returnType()), + type.parameterList().stream().map(ExpressionHandles::unboxIfDouble) + .collect(Collectors.toList()) ); return handle.asType(type); } @@ -147,7 +165,9 @@ class ExpressionHandles { @FunctionalInterface interface Invokable { + Object invoke(MethodHandle handle) throws Throwable; + } static Object safeInvoke(MethodHandle handle, Invokable invokable) { @@ -173,22 +193,22 @@ class ExpressionHandles { static MethodHandle dedupData(MethodHandle doubleData) { return permuteArguments( - doubleData, COMPILED_EXPRESSION_SIG, - 0, 0 + doubleData, COMPILED_EXPRESSION_SIG, + 0, 0 ); } static LocalSlot.Variable initVariable(ExecutionData data, Token nameToken) { String name = nameToken.getText(); return data.getSlots().initVariable(name) - .orElseThrow(() -> ExpressionHelper.evalException( - nameToken, "Cannot overwrite non-variable '" + name + "'" - )); + .orElseThrow(() -> ExpressionHelper.evalException( + nameToken, "Cannot overwrite non-variable '" + name + "'" + )); } private static Supplier varNotInitException(Token nameToken) { return () -> ExpressionHelper.evalException( - nameToken, "'" + nameToken.getText() + "' is not initialized yet" + nameToken, "'" + nameToken.getText() + "' is not initialized yet" ); } @@ -199,10 +219,10 @@ class ExpressionHandles { static LocalSlot.Variable getVariable(ExecutionData data, Token nameToken) { String name = nameToken.getText(); LocalSlot slot = data.getSlots().getSlot(name) - .orElseThrow(varNotInitException(nameToken)); + .orElseThrow(varNotInitException(nameToken)); if (!(slot instanceof LocalSlot.Variable)) { throw ExpressionHelper.evalException( - nameToken, "'" + name + "' is not a variable" + nameToken, "'" + name + "' is not a variable" ); } return (LocalSlot.Variable) slot; @@ -211,7 +231,7 @@ class ExpressionHandles { static double getSlotValue(ExecutionData data, Token nameToken) { String name = nameToken.getText(); return data.getSlots().getSlotValue(name) - .orElseThrow(varNotInitException(nameToken)); + .orElseThrow(varNotInitException(nameToken)); } /** @@ -220,7 +240,8 @@ class ExpressionHandles { */ private static MethodHandle evalException(ParserRuleContext ctx, String message) { return insertArguments(EVAL_EXCEPTION_CONSTR, 0, - getErrorPosition(ctx.start), message); + getErrorPosition(ctx.start), message + ); } /** @@ -230,9 +251,9 @@ class ExpressionHandles { static MethodHandle throwEvalException(ParserRuleContext ctx, String message) { // replace arg0 of `throw` with `evalException` return collectArguments( - throwException(Double.class, EvaluationException.class), - 0, - evalException(ctx, message) + throwException(Double.class, EvaluationException.class), + 0, + evalException(ctx, message) ); } @@ -253,22 +274,28 @@ class ExpressionHandles { static MethodHandle whileLoop(MethodHandle condition, ExecNode body) { return insertArguments(WHILE_FOR_LOOP_IMPL, 1, - null, condition, body, null); + null, condition, body, null + ); } - static MethodHandle forLoop(MethodHandle init, - MethodHandle condition, - ExecNode body, - MethodHandle update) { + static MethodHandle forLoop( + MethodHandle init, + MethodHandle condition, + ExecNode body, + MethodHandle update + ) { return insertArguments(WHILE_FOR_LOOP_IMPL, 1, - init, condition, body, update); + init, condition, body, update + ); } - private static Double whileForLoopImpl(ExecutionData data, - @Nullable MethodHandle init, - MethodHandle condition, - ExecNode body, - @Nullable MethodHandle update) { + private static Double whileForLoopImpl( + ExecutionData data, + @Nullable MethodHandle init, + MethodHandle condition, + ExecNode body, + @Nullable MethodHandle update + ) { Double result = null; int iterations = 0; if (init != null) { @@ -296,9 +323,11 @@ class ExpressionHandles { return insertArguments(DO_WHILE_LOOP_IMPL, 1, condition, body); } - private static Double doWhileLoopImpl(ExecutionData data, - MethodHandle condition, - ExecNode body) { + private static Double doWhileLoopImpl( + ExecutionData data, + MethodHandle condition, + ExecNode body + ) { Double result = null; int iterations = 0; do { @@ -316,19 +345,24 @@ class ExpressionHandles { return result; } - static MethodHandle simpleForLoop(MethodHandle first, - MethodHandle last, - Token counter, - ExecNode body) { + static MethodHandle simpleForLoop( + MethodHandle first, + MethodHandle last, + Token counter, + ExecNode body + ) { return insertArguments(SIMPLE_FOR_LOOP_IMPL, 1, - first, last, counter, body); + first, last, counter, body + ); } - private static Double simpleForLoopImpl(ExecutionData data, - MethodHandle getFirst, - MethodHandle getLast, - Token counterToken, - ExecNode body) { + private static Double simpleForLoopImpl( + ExecutionData data, + MethodHandle getFirst, + MethodHandle getLast, + Token counterToken, + ExecNode body + ) { Double result = null; int iterations = 0; double first = (double) standardInvoke(getFirst, data); @@ -350,16 +384,20 @@ class ExpressionHandles { return result; } - static MethodHandle switchStatement(Double2ObjectMap cases, - MethodHandle getValue, - @Nullable ExecNode defaultCase) { + static MethodHandle switchStatement( + Double2ObjectMap cases, + MethodHandle getValue, + @Nullable ExecNode defaultCase + ) { return insertArguments(SWITCH_IMPL, 1, cases, getValue, defaultCase); } - private static Double switchImpl(ExecutionData data, - Double2ObjectMap cases, - MethodHandle getValue, - @Nullable ExecNode defaultCase) { + private static Double switchImpl( + ExecutionData data, + Double2ObjectMap cases, + MethodHandle getValue, + @Nullable ExecNode defaultCase + ) { double value = (double) standardInvoke(getValue, data); boolean matched = false; Double evaluated = null; diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/invoke/ReturnException.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/invoke/ReturnException.java index 717710501..09ec0a94b 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/invoke/ReturnException.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/invoke/ReturnException.java @@ -38,4 +38,5 @@ public class ReturnException extends RuntimeException { public Double getResult() { return result; } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/helper/MCDirections.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/helper/MCDirections.java index 21455bd84..140583edb 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/helper/MCDirections.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/helper/MCDirections.java @@ -103,10 +103,14 @@ public final class MCDirections { public static int fromLegacyHanging(byte i) { switch (i) { - case 0: return 2; - case 1: return 1; - case 2: return 0; - default: return 3; + case 0: + return 2; + case 1: + return 1; + case 2: + return 0; + default: + return 3; } } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/registry/AbstractFactory.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/registry/AbstractFactory.java index c427031ac..d544286f3 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/registry/AbstractFactory.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/registry/AbstractFactory.java @@ -47,7 +47,7 @@ public abstract class AbstractFactory { /** * Create a new factory. * - * @param worldEdit the WorldEdit instance + * @param worldEdit the WorldEdit instance * @param defaultParser the parser to fall back to */ protected AbstractFactory(WorldEdit worldEdit, InputParser defaultParser) { @@ -86,7 +86,7 @@ public abstract class AbstractFactory { public List getSuggestions(String input) { return parsers.stream().flatMap( - p -> p.getSuggestions(input) + p -> p.getSuggestions(input) ).collect(Collectors.toList()); } @@ -100,4 +100,5 @@ public abstract class AbstractFactory { parsers.add(parsers.size() - 1, inputParser); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/registry/InputParser.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/registry/InputParser.java index aff1973f3..87829a272 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/registry/InputParser.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/registry/InputParser.java @@ -49,4 +49,5 @@ public abstract class InputParser { public Stream getSuggestions(String input) { return Stream.empty(); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/registry/SimpleInputParser.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/registry/SimpleInputParser.java index faf9b3452..c30ced38f 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/registry/SimpleInputParser.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/registry/SimpleInputParser.java @@ -78,4 +78,5 @@ public abstract class SimpleInputParser extends InputParser { } return Stream.empty(); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/util/BiomeMath.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/util/BiomeMath.java index a95bbf1a5..c043a8874 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/util/BiomeMath.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/util/BiomeMath.java @@ -52,9 +52,9 @@ public class BiomeMath { /** * Compute the index into the MC biome array, for extended-height worlds. * - * @param x the block x coordinate - * @param y the block y coordinate - * @param z the block z coordinate + * @param x the block x coordinate + * @param y the block y coordinate + * @param z the block z coordinate * @param minY minimum y of the world * @param maxY maximum y of the world * @return the index into the standard MC biome array @@ -67,4 +67,5 @@ public class BiomeMath { | n << HORIZONTAL_SECTION_COUNT | l; } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/util/DeprecationUtil.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/util/DeprecationUtil.java index 298cedb40..2161ea1bf 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/util/DeprecationUtil.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/util/DeprecationUtil.java @@ -48,16 +48,16 @@ public class DeprecationUtil { // find the matching caller method Method callingMethod = getCallingMethod(caller); NonAbstractForCompatibility annotation = - callingMethod.getAnnotation(NonAbstractForCompatibility.class); + callingMethod.getAnnotation(NonAbstractForCompatibility.class); // get the deprecated method Method deprecatedMethod; try { deprecatedMethod = implementingClass.getMethod( - annotation.delegateName(), annotation.delegateParams() + annotation.delegateName(), annotation.delegateParams() ); } catch (NoSuchMethodException e) { throw new AssertionError( - "Missing method referenced by " + NonAbstractForCompatibility.class, e + "Missing method referenced by " + NonAbstractForCompatibility.class, e ); } // Check if the deprecated method was overridden. If the declaring class is the caller's @@ -67,7 +67,7 @@ public class DeprecationUtil { // way this could be reached is if someone calls `super.xyz`, which they have no reason to. if (deprecatedMethod.getDeclaringClass().getName().equals(caller.getClassName())) { throw new IllegalStateException("Class " + implementingClass.getName() - + " must override " + methodToString(callingMethod)); + + " must override " + methodToString(callingMethod)); } } @@ -80,22 +80,22 @@ public class DeprecationUtil { } for (Method declaredMethod : declaredMethods) { if (declaredMethod.isAnnotationPresent(NonAbstractForCompatibility.class) - && declaredMethod.getName().equals(callerInfo.getMethodName())) { + && declaredMethod.getName().equals(callerInfo.getMethodName())) { return declaredMethod; } } throw new IllegalStateException("Failed to find caller method " - + callerInfo.getMethodName() + " annotated with " + NonAbstractForCompatibility.class); + + callerInfo.getMethodName() + " annotated with " + NonAbstractForCompatibility.class); } private static String methodToString(Method method) { StringBuilder builder = new StringBuilder(method.getDeclaringClass().getCanonicalName()) - .append('.') - .append(method.getName()) - .append('('); + .append('.') + .append(method.getName()) + .append('('); Joiner.on(", ").appendTo(builder, Stream.of(method.getParameterTypes()) - .map(Class::getSimpleName) - .iterator()); + .map(Class::getSimpleName) + .iterator()); builder.append(')'); return builder.toString(); } @@ -106,12 +106,12 @@ public class DeprecationUtil { @SuppressWarnings("deprecation") BlockType wallSign = BlockTypes.WALL_SIGN; return blockType == sign || blockType == wallSign - || BlockCategories.SIGNS.contains(blockType); + || BlockCategories.SIGNS.contains(blockType); } public static String getHeadOwnerKey() { int dataVersion = WorldEdit.getInstance().getPlatformManager() - .queryCapability(Capability.GAME_HOOKS).getDataVersion(); + .queryCapability(Capability.GAME_HOOKS).getDataVersion(); return dataVersion >= Constants.DATA_VERSION_MC_1_16 ? "SkullOwner" : "Owner"; } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/util/InfoEntryPoint.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/util/InfoEntryPoint.java index 803a2029f..10411eeeb 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/util/InfoEntryPoint.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/util/InfoEntryPoint.java @@ -21,15 +21,15 @@ package com.sk89q.worldedit.internal.util; import com.sk89q.worldedit.WorldEditManifest; -import java.awt.Desktop; -import java.io.IOException; -import java.net.URISyntaxException; import javax.swing.JOptionPane; import javax.swing.JTextPane; import javax.swing.UIManager; import javax.swing.event.HyperlinkEvent; import javax.swing.text.html.HTMLDocument; import javax.swing.text.html.HTMLEditorKit; +import java.awt.Desktop; +import java.io.IOException; +import java.net.URISyntaxException; public class InfoEntryPoint { @@ -68,6 +68,7 @@ public class InfoEntryPoint { } private static class NavigableEditorPane extends JTextPane { + public NavigableEditorPane(String htmlBody) { super(new HTMLDocument()); setEditorKit(new HTMLEditorKit()); @@ -86,5 +87,7 @@ public class InfoEntryPoint { setEditable(false); setBorder(null); } + } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/util/LogManagerCompat.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/util/LogManagerCompat.java index e94ae6ec8..80e26e5de 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/util/LogManagerCompat.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/util/LogManagerCompat.java @@ -41,4 +41,5 @@ public class LogManagerCompat { private LogManagerCompat() { } -} \ No newline at end of file + +} diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/util/RegionOptimizedVectorSorter.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/util/RegionOptimizedVectorSorter.java index 3bb4ebcb2..b30bd8f49 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/util/RegionOptimizedVectorSorter.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/util/RegionOptimizedVectorSorter.java @@ -65,10 +65,10 @@ public class RegionOptimizedVectorSorter { long x = elem.getX(); long z = elem.getZ(); return (((x << (REGION_X_SHIFT - 9)) & REGION_X_MASK) ^ FLIP_REGION_X_SIGN) - | (((z << (REGION_Z_SHIFT - 9)) & REGION_Z_MASK) ^ FLIP_REGION_Z_SIGN) - | ((x << (CHUNK_X_SHIFT - 4)) & CHUNK_X_MASK) - | ((z << (CHUNK_Z_SHIFT - 4)) & CHUNK_Z_MASK) - | (Y_MAX - elem.getY()); + | (((z << (REGION_Z_SHIFT - 9)) & REGION_Z_MASK) ^ FLIP_REGION_Z_SIGN) + | ((x << (CHUNK_X_SHIFT - 4)) & CHUNK_X_MASK) + | ((z << (CHUNK_Z_SHIFT - 4)) & CHUNK_Z_MASK) + | (Y_MAX - elem.getY()); } private static final int NUMBER_OF_BITS = 64; @@ -91,11 +91,11 @@ public class RegionOptimizedVectorSorter { } private static final ExecutorService SORT_SVC = Executors.newFixedThreadPool( - Runtime.getRuntime().availableProcessors(), - new ThreadFactoryBuilder() - .setDaemon(true) - .setNameFormat("worldedit-sort-svc-%d") - .build() + Runtime.getRuntime().availableProcessors(), + new ThreadFactoryBuilder() + .setDaemon(true) + .setNameFormat("worldedit-sort-svc-%d") + .build() ); public static void sort(List vectors) { @@ -110,7 +110,7 @@ public class RegionOptimizedVectorSorter { *

    * * @param parallel {@code true} to sort in parallel - * @param vectors the vectors to sort + * @param vectors the vectors to sort */ public static void sort(boolean parallel, List vectors) { // Currently we don't do an in-place radix sort, but we could in the future. @@ -122,8 +122,8 @@ public class RegionOptimizedVectorSorter { BlockVector3[] source = vectors.toArray(new BlockVector3[0]); BlockVector3[] sorted = new BlockVector3[size]; source = !parallel - ? serialSort(source, size, sorted) - : parallelSort(source, size, sorted); + ? serialSort(source, size, sorted) + : parallelSort(source, size, sorted); ListIterator it = vectors.listIterator(); for (BlockVector3 blockVector3 : source) { it.next(); @@ -213,4 +213,5 @@ public class RegionOptimizedVectorSorter { private RegionOptimizedVectorSorter() { } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/util/Substring.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/util/Substring.java index fd8514edc..db0edbafe 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/util/Substring.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/util/Substring.java @@ -85,8 +85,8 @@ public final class Substring { } Substring substring1 = (Substring) o; return start == substring1.start - && end == substring1.end - && substring.equals(substring1.substring); + && end == substring1.end + && substring.equals(substring1.substring); } @Override @@ -97,9 +97,10 @@ public final class Substring { @Override public String toString() { return "Substring{" - + "substring='" + substring + "'" - + ",start=" + start - + ",end=" + end - + "}"; + + "substring='" + substring + "'" + + ",start=" + start + + ",end=" + end + + "}"; } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/wna/WorldNativeAccess.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/wna/WorldNativeAccess.java index 1ef64be43..1bd487028 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/wna/WorldNativeAccess.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/wna/WorldNativeAccess.java @@ -38,13 +38,14 @@ import static com.google.common.base.Preconditions.checkNotNull; /** * Natively access and perform operations on the world. * - * @param the native chunk type + * @param the native chunk type * @param the native block state type - * @param the native position type + * @param the native position type */ public interface WorldNativeAccess { - default > boolean setBlock(BlockVector3 position, B block, SideEffectSet sideEffects) throws WorldEditException { + default > boolean setBlock(BlockVector3 position, B block, SideEffectSet sideEffects) throws + WorldEditException { checkNotNull(position); checkNotNull(block); setCurrentSideEffectSet(sideEffects); @@ -73,10 +74,10 @@ public interface WorldNativeAccess { CompoundBinaryTag tag = baseBlock.getNbt(); if (tag != null) { tag = tag.put(ImmutableMap.of( - "id", StringBinaryTag.of(baseBlock.getNbtId()), - "x", IntBinaryTag.of(position.getX()), - "y", IntBinaryTag.of(position.getY()), - "z", IntBinaryTag.of(position.getZ()) + "id", StringBinaryTag.of(baseBlock.getNbtId()), + "x", IntBinaryTag.of(position.getX()), + "y", IntBinaryTag.of(position.getY()), + "z", IntBinaryTag.of(position.getZ()) )); // update if TE changed as well diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/math/BlockVector2.java b/worldedit-core/src/main/java/com/sk89q/worldedit/math/BlockVector2.java index 0d5ba2648..fe95ad3ad 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/math/BlockVector2.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/math/BlockVector2.java @@ -53,7 +53,7 @@ public class BlockVector2 { * */ public static final Comparator COMPARING_GRID_ARRANGEMENT = - Comparator.comparingInt(BlockVector2::getZ).thenComparingInt(BlockVector2::getX); + Comparator.comparingInt(BlockVector2::getZ).thenComparingInt(BlockVector2::getX); public static BlockVector2 at(double x, double z) { return at((int) Math.floor(x), (int) Math.floor(z)); @@ -508,9 +508,9 @@ public class BlockVector2 { /** * Perform a 2D transformation on this vector and return a new one. * - * @param angle in degrees - * @param aboutX about which x coordinate to rotate - * @param aboutZ about which z coordinate to rotate + * @param angle in degrees + * @param aboutX about which x coordinate to rotate + * @param aboutZ about which z coordinate to rotate * @param translateX what to add after rotation * @param translateZ what to add after rotation * @return a new vector @@ -526,7 +526,8 @@ public class BlockVector2 { double z2 = x * sin + z * cos; return BlockVector2.at( x2 + aboutX + translateX, - z2 + aboutZ + translateZ); + z2 + aboutZ + translateZ + ); } /** @@ -537,8 +538,8 @@ public class BlockVector2 { */ public BlockVector2 getMinimum(BlockVector2 v2) { return new BlockVector2( - Math.min(x, v2.x), - Math.min(z, v2.z) + Math.min(x, v2.x), + Math.min(z, v2.z) ); } @@ -550,8 +551,8 @@ public class BlockVector2 { */ public BlockVector2 getMaximum(BlockVector2 v2) { return new BlockVector2( - Math.max(x, v2.x), - Math.max(z, v2.z) + Math.max(x, v2.x), + Math.max(z, v2.z) ); } @@ -620,9 +621,11 @@ public class BlockVector2 { /** * Returns a string representation that is supported by the parser. + * * @return string */ public String toParserString() { return x + "," + z; } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/math/BlockVector3.java b/worldedit-core/src/main/java/com/sk89q/worldedit/math/BlockVector3.java index 8d75feccd..03d4c4930 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/math/BlockVector3.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/math/BlockVector3.java @@ -85,13 +85,14 @@ public abstract class BlockVector3 { public static boolean isLongPackable(BlockVector3 location) { return isHorizontallyInBounds(location.getX()) - && isHorizontallyInBounds(location.getZ()) - && WORLD_Y_MIN <= location.getY() && location.getY() <= WORLD_Y_MAX; + && isHorizontallyInBounds(location.getZ()) + && WORLD_Y_MIN <= location.getY() && location.getY() <= WORLD_Y_MAX; } public static void checkLongPackable(BlockVector3 location) { checkArgument(isLongPackable(location), - "Location exceeds long packing limits: %s", location); + "Location exceeds long packing limits: %s", location + ); } private static final long BITS_26 = mask(26); @@ -103,10 +104,12 @@ public abstract class BlockVector3 { // thread-safe initialization idiom private static final class YzxOrderComparator { + private static final Comparator YZX_ORDER = - Comparator.comparingInt(BlockVector3::getY) - .thenComparingInt(BlockVector3::getZ) - .thenComparingInt(BlockVector3::getX); + Comparator.comparingInt(BlockVector3::getY) + .thenComparingInt(BlockVector3::getZ) + .thenComparingInt(BlockVector3::getX); + } /** @@ -583,9 +586,9 @@ public abstract class BlockVector3 { //FAWE start - getter public BlockVector3 cross(BlockVector3 other) { return new BlockVector3Imp( - getY() * other.getZ() - getZ() * other.getY(), - getZ() * other.getX() - getX() * other.getZ(), - getX() * other.getY() - getY() * other.getX() + getY() * other.getZ() - getZ() * other.getY(), + getZ() * other.getX() - getX() * other.getZ(), + getX() * other.getY() - getY() * other.getX() ); } //FAWE end @@ -600,7 +603,7 @@ public abstract class BlockVector3 { //FAWE start - getter public boolean containedWithin(BlockVector3 min, BlockVector3 max) { return getX() >= min.getX() && getX() <= max.getX() && getY() >= min.getY() && getY() <= max - .getY() && getZ() >= min.getZ() && getZ() <= max.getZ(); + .getY() && getZ() >= min.getZ() && getZ() <= max.getZ(); } //FAWE end @@ -671,9 +674,9 @@ public abstract class BlockVector3 { /** * Perform a 2D transformation on this vector and return a new one. * - * @param angle in degrees - * @param aboutX about which x coordinate to rotate - * @param aboutZ about which z coordinate to rotate + * @param angle in degrees + * @param aboutX about which x coordinate to rotate + * @param aboutZ about which z coordinate to rotate * @param translateX what to add after rotation * @param translateZ what to add after rotation * @return a new vector @@ -690,9 +693,9 @@ public abstract class BlockVector3 { double z2 = x * sin + z * cos; return BlockVector3.at( - x2 + aboutX + translateX, - getY(), - z2 + aboutZ + translateZ + x2 + aboutX + translateX, + getY(), + z2 + aboutZ + translateZ ); } //FAWE end @@ -861,6 +864,7 @@ public abstract class BlockVector3 { /** * Returns a string representation that is supported by the parser. + * * @return string */ public String toParserString() { diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/math/BlockVector3Imp.java b/worldedit-core/src/main/java/com/sk89q/worldedit/math/BlockVector3Imp.java index 3adbf4e08..ab202e83b 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/math/BlockVector3Imp.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/math/BlockVector3Imp.java @@ -24,11 +24,11 @@ package com.sk89q.worldedit.math; */ public final class BlockVector3Imp extends BlockVector3 { - public static final BlockVector3Imp ZERO = new BlockVector3Imp(0, 0, 0); + public static final BlockVector3Imp ZERO = new BlockVector3Imp(0, 0, 0); public static final BlockVector3Imp UNIT_X = new BlockVector3Imp(1, 0, 0); public static final BlockVector3Imp UNIT_Y = new BlockVector3Imp(0, 1, 0); public static final BlockVector3Imp UNIT_Z = new BlockVector3Imp(0, 0, 1); - public static final BlockVector3Imp ONE = new BlockVector3Imp(1, 1, 1); + public static final BlockVector3Imp ONE = new BlockVector3Imp(1, 1, 1); public static BlockVector3Imp at(double x, double y, double z) { return at((int) Math.floor(x), (int) Math.floor(y), (int) Math.floor(z)); @@ -84,4 +84,5 @@ public final class BlockVector3Imp extends BlockVector3 { public String toString() { return "(" + getX() + ", " + getY() + ", " + getZ() + ")"; } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/math/MathUtils.java b/worldedit-core/src/main/java/com/sk89q/worldedit/math/MathUtils.java index 897baad39..d50012991 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/math/MathUtils.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/math/MathUtils.java @@ -123,4 +123,5 @@ public final class MathUtils { public static double roundHalfUp(double value) { return Math.signum(value) * Math.round(Math.abs(value)); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/math/RegionOptimizedChunkComparator.java b/worldedit-core/src/main/java/com/sk89q/worldedit/math/RegionOptimizedChunkComparator.java index 09d0aaf4e..b6ac1ea52 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/math/RegionOptimizedChunkComparator.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/math/RegionOptimizedChunkComparator.java @@ -29,11 +29,11 @@ import static com.sk89q.worldedit.math.BlockVector2.COMPARING_GRID_ARRANGEMENT; public class RegionOptimizedChunkComparator { private static final Comparator CHUNK_COMPARATOR = - Comparator.comparing((BlockVector2 chunkPos) -> chunkPos.shr(5), COMPARING_GRID_ARRANGEMENT) - .thenComparing(COMPARING_GRID_ARRANGEMENT); + Comparator.comparing((BlockVector2 chunkPos) -> chunkPos.shr(5), COMPARING_GRID_ARRANGEMENT) + .thenComparing(COMPARING_GRID_ARRANGEMENT); public static final Comparator INSTANCE - = Comparator.comparing(blockPos -> blockPos.toBlockVector2().shr(4), CHUNK_COMPARATOR); + = Comparator.comparing(blockPos -> blockPos.toBlockVector2().shr(4), CHUNK_COMPARATOR); private RegionOptimizedChunkComparator() { } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/math/RegionOptimizedComparator.java b/worldedit-core/src/main/java/com/sk89q/worldedit/math/RegionOptimizedComparator.java index 8bfb1aff5..547d7c624 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/math/RegionOptimizedComparator.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/math/RegionOptimizedComparator.java @@ -27,8 +27,8 @@ import java.util.Comparator; public class RegionOptimizedComparator { public static final Comparator INSTANCE - = RegionOptimizedChunkComparator.INSTANCE - .thenComparing(BlockVector3.sortByCoordsYzx()); + = RegionOptimizedChunkComparator.INSTANCE + .thenComparing(BlockVector3.sortByCoordsYzx()); private RegionOptimizedComparator() { } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/math/Vector2.java b/worldedit-core/src/main/java/com/sk89q/worldedit/math/Vector2.java index fa2703a9e..d680b0c0d 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/math/Vector2.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/math/Vector2.java @@ -378,9 +378,9 @@ public final class Vector2 { /** * Perform a 2D transformation on this vector and return a new one. * - * @param angle in degrees - * @param aboutX about which x coordinate to rotate - * @param aboutZ about which z coordinate to rotate + * @param angle in degrees + * @param aboutX about which x coordinate to rotate + * @param aboutZ about which z coordinate to rotate * @param translateX what to add after rotation * @param translateZ what to add after rotation * @return a new vector @@ -396,7 +396,8 @@ public final class Vector2 { double z2 = x * sin + z * cos; return new Vector2( x2 + aboutX + translateX, - z2 + aboutZ + translateZ); + z2 + aboutZ + translateZ + ); } /** @@ -407,8 +408,8 @@ public final class Vector2 { */ public Vector2 getMinimum(Vector2 v2) { return new Vector2( - Math.min(x, v2.x), - Math.min(z, v2.z) + Math.min(x, v2.x), + Math.min(z, v2.z) ); } @@ -420,8 +421,8 @@ public final class Vector2 { */ public Vector2 getMaximum(Vector2 v2) { return new Vector2( - Math.max(x, v2.x), - Math.max(z, v2.z) + Math.max(x, v2.x), + Math.max(z, v2.z) ); } @@ -482,6 +483,7 @@ public final class Vector2 { /** * Returns a string representation that is supported by the parser. + * * @return string */ public String toParserString() { diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/math/Vector3.java b/worldedit-core/src/main/java/com/sk89q/worldedit/math/Vector3.java index b6a7559a3..5a4d550b4 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/math/Vector3.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/math/Vector3.java @@ -66,6 +66,7 @@ public abstract class Vector3 { // thread-safe initialization idiom private static final class YzxOrderComparator { + private static final Comparator YZX_ORDER = (a, b) -> { return ComparisonChain.start() .compare(a.getY(), b.getY()) @@ -73,6 +74,7 @@ public abstract class Vector3 { .compare(a.getX(), b.getX()) .result(); }; + } /** @@ -87,6 +89,7 @@ public abstract class Vector3 { } //FAWE start + /** * Gets the x coordinate rounded, accounting for negative coordinates * @@ -484,9 +487,9 @@ public abstract class Vector3 { //FAWE start - getter public Vector3 cross(Vector3 other) { return Vector3.at( - getY() * other.getZ() - getZ() * other.getY(), - getZ() * other.getX() - getX() * other.getZ(), - getX() * other.getY() - getY() * other.getX() + getY() * other.getZ() - getZ() * other.getY(), + getZ() * other.getX() - getX() * other.getZ(), + getX() * other.getY() - getY() * other.getX() ); } //FAWE end @@ -500,7 +503,8 @@ public abstract class Vector3 { */ //FAWE start - getter public boolean containedWithin(Vector3 min, Vector3 max) { - return getX() >= min.getX() && getX() <= max.getX() && getY() >= min.getY() && getY() <= max.getY() && getZ() >= min.getZ() && getZ() <= max.getZ(); + return getX() >= min.getX() && getX() <= max.getX() && getY() >= min.getY() && getY() <= max.getY() && getZ() >= min.getZ() && getZ() <= max + .getZ(); } //FAWE end @@ -585,9 +589,9 @@ public abstract class Vector3 { /** * Perform a 2D transformation on this vector and return a new one. * - * @param angle in degrees - * @param aboutX about which x coordinate to rotate - * @param aboutZ about which z coordinate to rotate + * @param angle in degrees + * @param aboutX about which x coordinate to rotate + * @param aboutZ about which z coordinate to rotate * @param translateX what to add after rotation * @param translateZ what to add after rotation * @return a new vector @@ -604,9 +608,9 @@ public abstract class Vector3 { double z2 = x * sin + z * cos; return Vector3.at( - x2 + aboutX + translateX, - getY(), - z2 + aboutZ + translateZ + x2 + aboutX + translateX, + getY(), + z2 + aboutZ + translateZ ); } //FAWE end @@ -724,6 +728,7 @@ public abstract class Vector3 { } //FAWE start + /** * Tests if vectors are equal, accounting for floating point errors * @@ -742,10 +747,7 @@ public abstract class Vector3 { if (Math.abs(getY() - other.getY()) > 0.000001d) { return false; } - if (Math.abs(getZ() - other.getZ()) > 0.000001d) { - return false; - } - return true; + return !(Math.abs(getZ() - other.getZ()) > 0.000001d); } //FAWE end @@ -767,6 +769,7 @@ public abstract class Vector3 { /** * Returns a string representation that is supported by the parser. + * * @return string */ //FAWE start - getter diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/math/convolution/GaussianKernel.java b/worldedit-core/src/main/java/com/sk89q/worldedit/math/convolution/GaussianKernel.java index 31dec0cda..406e9ea59 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/math/convolution/GaussianKernel.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/math/convolution/GaussianKernel.java @@ -28,7 +28,7 @@ public class GaussianKernel extends Kernel { * Constructor of the kernel. * * @param radius the resulting diameter will be radius * 2 + 1 - * @param sigma controls 'flatness' + * @param sigma controls 'flatness' */ public GaussianKernel(int radius, double sigma) { super(radius * 2 + 1, radius * 2 + 1, createKernel(radius, sigma)); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/math/convolution/HeightMap.java b/worldedit-core/src/main/java/com/sk89q/worldedit/math/convolution/HeightMap.java index 7a73b8e4b..d280f3699 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/math/convolution/HeightMap.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/math/convolution/HeightMap.java @@ -19,6 +19,7 @@ package com.sk89q.worldedit.math.convolution; +import com.fastasyncworldedit.core.registry.state.PropertyGroup; import com.sk89q.worldedit.EditSession; import com.sk89q.worldedit.MaxChangedBlocksException; import com.sk89q.worldedit.function.mask.Mask; @@ -26,13 +27,12 @@ import com.sk89q.worldedit.math.BlockVector2; import com.sk89q.worldedit.math.BlockVector3; import com.sk89q.worldedit.regions.Region; import com.sk89q.worldedit.regions.Regions; -import com.fastasyncworldedit.core.registry.state.PropertyGroup; import com.sk89q.worldedit.world.block.BlockState; import com.sk89q.worldedit.world.block.BlockStateHolder; import com.sk89q.worldedit.world.block.BlockTypes; -import java.util.Iterator; import javax.annotation.Nullable; +import java.util.Iterator; import static com.google.common.base.Preconditions.checkNotNull; @@ -58,7 +58,7 @@ public class HeightMap { * Constructs the HeightMap. * * @param session an edit session - * @param region the region + * @param region the region */ //FAWE start public HeightMap(EditSession session, Region region) { @@ -112,9 +112,26 @@ public class HeightMap { for (int z = 0; z < height; ++z) { for (int x = 0; x < width; ++x, index++) { if (mask != null) { - yTmp = session.getNearestSurfaceTerrainBlock(x + minX, z + minZ, yTmp, minY, maxY, Integer.MIN_VALUE, Integer.MAX_VALUE, mask); + yTmp = session.getNearestSurfaceTerrainBlock( + x + minX, + z + minZ, + yTmp, + minY, + maxY, + Integer.MIN_VALUE, + Integer.MAX_VALUE, + mask + ); } else { - yTmp = session.getNearestSurfaceTerrainBlock(x + minX, z + minZ, yTmp, minY, maxY, Integer.MIN_VALUE, Integer.MAX_VALUE); + yTmp = session.getNearestSurfaceTerrainBlock( + x + minX, + z + minZ, + yTmp, + minY, + maxY, + Integer.MIN_VALUE, + Integer.MAX_VALUE + ); } switch (yTmp) { case Integer.MIN_VALUE: @@ -151,7 +168,7 @@ public class HeightMap { /** * Apply the filter 'iterations' amount times. * - * @param filter the filter + * @param filter the filter * @param iterations the number of iterations * @return number of blocks affected * @throws MaxChangedBlocksException if the maximum block change limit is exceeded diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/math/convolution/HeightMapFilter.java b/worldedit-core/src/main/java/com/sk89q/worldedit/math/convolution/HeightMapFilter.java index 73126c34f..1e693facd 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/math/convolution/HeightMapFilter.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/math/convolution/HeightMapFilter.java @@ -43,9 +43,9 @@ public class HeightMapFilter { /** * Construct the HeightMapFilter object. * - * @param kernelWidth the width + * @param kernelWidth the width * @param kernelHeight the height - * @param kernelData the data + * @param kernelData the data */ public HeightMapFilter(int kernelWidth, int kernelHeight, float[] kernelData) { checkNotNull(kernelData); @@ -74,9 +74,8 @@ public class HeightMapFilter { * Filter with a 2D kernel. * * @param inData the data - * @param width the width + * @param width the width * @param height the height - * * @return the modified height map */ public int[] filter(int[] inData, int width, int height) { diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/math/geom/Polygons.java b/worldedit-core/src/main/java/com/sk89q/worldedit/math/geom/Polygons.java index ae14589c7..30236d9a3 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/math/geom/Polygons.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/math/geom/Polygons.java @@ -36,8 +36,8 @@ public final class Polygons { /** * Calculates the polygon shape of a cylinder which can then be used for e.g. intersection detection. * - * @param center the center point of the cylinder - * @param radius the radius of the cylinder + * @param center the center point of the cylinder + * @param radius the radius of the cylinder * @param maxPoints max points to be used for the calculation * @return a list of {@link BlockVector2} which resemble the shape as a polygon */ diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/math/interpolation/KochanekBartelsInterpolation.java b/worldedit-core/src/main/java/com/sk89q/worldedit/math/interpolation/KochanekBartelsInterpolation.java index b26c33647..561ba14bf 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/math/interpolation/KochanekBartelsInterpolation.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/math/interpolation/KochanekBartelsInterpolation.java @@ -104,15 +104,15 @@ public class KochanekBartelsInterpolation implements Interpolation { * Returns the linear combination of the given coefficients with the nodes adjacent to baseIndex. * * @param baseIndex node index - * @param f1 coefficient for baseIndex-1 - * @param f2 coefficient for baseIndex - * @param f3 coefficient for baseIndex+1 - * @param f4 coefficient for baseIndex+2 + * @param f1 coefficient for baseIndex-1 + * @param f2 coefficient for baseIndex + * @param f3 coefficient for baseIndex+1 + * @param f4 coefficient for baseIndex+2 * @return linear combination of nodes[n-1..n+2] with f1..4 */ private Vector3 linearCombination(int baseIndex, double f1, double f2, double f3, double f4) { final Vector3 r1 = retrieve(baseIndex - 1).multiply(f1); - final Vector3 r2 = retrieve(baseIndex ).multiply(f2); + final Vector3 r2 = retrieve(baseIndex).multiply(f2); final Vector3 r3 = retrieve(baseIndex + 1).multiply(f3); final Vector3 r4 = retrieve(baseIndex + 2).multiply(f4); @@ -123,7 +123,7 @@ public class KochanekBartelsInterpolation implements Interpolation { * Retrieves a node. Indexes are clamped to the valid range. * * @param index node index to retrieve - * @return nodes[clamp(0, nodes.length-1)] + * @return nodes[clamp(0, nodes.length - 1)] */ private Vector3 retrieve(int index) { if (index < 0) { @@ -190,7 +190,10 @@ public class KochanekBartelsInterpolation implements Interpolation { final Vector3 b = coeffB[index]; final Vector3 c = coeffC[index]; - return a.multiply(1.5 * position - 3.0 * index).add(b).multiply(2.0 * position).add(a.multiply(1.5 * index).subtract(b).multiply(2.0 * index)).add(c).multiply(scaling); + return a.multiply(1.5 * position - 3.0 * index).add(b).multiply(2.0 * position).add(a + .multiply(1.5 * index) + .subtract(b) + .multiply(2.0 * index)).add(c).multiply(scaling); } @Override @@ -226,11 +229,11 @@ public class KochanekBartelsInterpolation implements Interpolation { case 1: // This case is merely a speed-up for a very common case return arcLengthRecursive(indexLeft, remainderLeft, 1.0) - + arcLengthRecursive(indexRight, 0.0, remainderRight); + + arcLengthRecursive(indexRight, 0.0, remainderRight); default: return arcLengthRecursive(indexLeft, remainderLeft, indexRight - 1, 1.0) - + arcLengthRecursive(indexRight, 0.0, remainderRight); + + arcLengthRecursive(indexRight, 0.0, remainderRight); } } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/math/interpolation/LinearInterpolation.java b/worldedit-core/src/main/java/com/sk89q/worldedit/math/interpolation/LinearInterpolation.java index 54c700e09..597250add 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/math/interpolation/LinearInterpolation.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/math/interpolation/LinearInterpolation.java @@ -130,11 +130,11 @@ public class LinearInterpolation implements Interpolation { case 1: // This case is merely a speed-up for a very common case return arcLengthRecursive(indexA, remainderA, 1.0) - + arcLengthRecursive(indexB, 0.0, remainderB); + + arcLengthRecursive(indexB, 0.0, remainderB); default: return arcLengthRecursive(indexA, remainderA, indexB - 1, 1.0) - + arcLengthRecursive(indexB, 0.0, remainderB); + + arcLengthRecursive(indexB, 0.0, remainderB); } } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/math/transform/AffineTransform.java b/worldedit-core/src/main/java/com/sk89q/worldedit/math/transform/AffineTransform.java index 4261bea20..c06e0968e 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/math/transform/AffineTransform.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/math/transform/AffineTransform.java @@ -105,9 +105,11 @@ public class AffineTransform implements Transform, Serializable { } } - public AffineTransform(double xx, double yx, double zx, double tx, - double xy, double yy, double zy, double ty, double xz, double yz, - double zz, double tz) { + public AffineTransform( + double xx, double yx, double zx, double tx, + double xy, double yy, double zy, double ty, double xz, double yz, + double zz, double tz + ) { m00 = xx; m01 = yx; m02 = zx; @@ -128,9 +130,9 @@ public class AffineTransform implements Transform, Serializable { @Override public boolean isIdentity() { return m00 == m11 && m11 == m22 && m22 == 1 - && m01 == m02 && m02 == m03 && m03 == 0 - && m10 == m12 && m12 == m13 && m13 == 0 - && m20 == m21 && m21 == m23 && m23 == 0; + && m01 == m02 && m02 == m03 && m03 == 0 + && m10 == m12 && m12 == m13 && m13 == 0 + && m20 == m21 && m21 == m23 && m23 == 0; } /** @@ -186,7 +188,8 @@ public class AffineTransform implements Transform, Serializable { (m20 * m01 - m00 * m21) / det, (m00 * m11 - m10 * m01) / det, (m00 * (m21 * m13 - m11 * m23) + m01 * (m10 * m23 - m20 * m13) - - m03 * (m10 * m21 - m20 * m11)) / det); + - m03 * (m10 * m21 - m20 * m11)) / det + ); } // =================================================================== @@ -215,7 +218,8 @@ public class AffineTransform implements Transform, Serializable { return new AffineTransform( n00, n01, n02, n03, n10, n11, n12, n13, - n20, n21, n22, n23); + n20, n21, n22, n23 + ); } /** @@ -241,7 +245,8 @@ public class AffineTransform implements Transform, Serializable { return new AffineTransform( n00, n01, n02, n03, n10, n11, n12, n13, - n20, n21, n22, n23); + n20, n21, n22, n23 + ); } public AffineTransform translate(Vector3 vec) { @@ -263,7 +268,8 @@ public class AffineTransform implements Transform, Serializable { new AffineTransform( 1, 0, 0, 0, 0, cot, -sit, 0, - 0, sit, cot, 0)); + 0, sit, cot, 0 + )); } public AffineTransform rotateY(double theta) { @@ -273,7 +279,8 @@ public class AffineTransform implements Transform, Serializable { new AffineTransform( cot, 0, sit, 0, 0, 1, 0, 0, - -sit, 0, cot, 0)); + -sit, 0, cot, 0 + )); } public AffineTransform rotateZ(double theta) { @@ -283,7 +290,8 @@ public class AffineTransform implements Transform, Serializable { new AffineTransform( cot, -sit, 0, 0, sit, cot, 0, 0, - 0, 0, 1, 0)); + 0, 0, 1, 0 + )); } public AffineTransform scale(double s) { @@ -369,7 +377,21 @@ public class AffineTransform implements Transform, Serializable { @Override public String toString() { - return String.format("Affine[%g %g %g %g, %g %g %g %g, %g %g %g %g]}", m00, m01, m02, m03, m10, m11, m12, m13, m20, m21, m22, m23); + return String.format( + "Affine[%g %g %g %g, %g %g %g %g, %g %g %g %g]}", + m00, + m01, + m02, + m03, + m10, + m11, + m12, + m13, + m20, + m21, + m22, + m23 + ); } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/math/transform/Transforms.java b/worldedit-core/src/main/java/com/sk89q/worldedit/math/transform/Transforms.java index aee830834..42144f119 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/math/transform/Transforms.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/math/transform/Transforms.java @@ -36,7 +36,7 @@ public final class Transforms { * *

    Direction is unaffected.

    * - * @param location the location + * @param location the location * @param transform the transform * @return the transformed location */ diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/regions/AbstractRegion.java b/worldedit-core/src/main/java/com/sk89q/worldedit/regions/AbstractRegion.java index f884f149f..2768f914b 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/regions/AbstractRegion.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/regions/AbstractRegion.java @@ -40,7 +40,8 @@ import java.util.Set; public abstract class AbstractRegion extends AbstractSet implements Region { //FAWE end - @Nullable protected World world; + @Nullable + protected World world; public AbstractRegion(@Nullable World world) { this.world = world; @@ -69,7 +70,8 @@ public abstract class AbstractRegion extends AbstractSet implement } @Override - public @Nullable World getWorld() { + public @Nullable + World getWorld() { return world; } @@ -96,7 +98,8 @@ public abstract class AbstractRegion extends AbstractSet implement @Override public List polygonize(int maxPoints) { if (maxPoints >= 0 && maxPoints < 4) { - throw new IllegalArgumentException("Cannot polygonize an AbstractRegion with no overridden polygonize method into less than 4 points."); + throw new IllegalArgumentException( + "Cannot polygonize an AbstractRegion with no overridden polygonize method into less than 4 points."); } final BlockVector3 min = getMinimumPoint(); @@ -118,8 +121,8 @@ public abstract class AbstractRegion extends AbstractSet implement BlockVector3 max = getMaximumPoint(); return (max.getX() - min.getX() + 1L) - * (max.getY() - min.getY() + 1L) - * (max.getZ() - min.getZ() + 1L); + * (max.getY() - min.getY() + 1L) + * (max.getZ() - min.getZ() + 1L); } /** @@ -204,9 +207,9 @@ public abstract class AbstractRegion extends AbstractSet implement } chunks.add(BlockVector3.at( - x >> ChunkStore.CHUNK_SHIFTS, - y >> ChunkStore.CHUNK_SHIFTS, - z >> ChunkStore.CHUNK_SHIFTS + x >> ChunkStore.CHUNK_SHIFTS, + y >> ChunkStore.CHUNK_SHIFTS, + z >> ChunkStore.CHUNK_SHIFTS )); } } @@ -250,13 +253,10 @@ public abstract class AbstractRegion extends AbstractSet implement } Region region = ((Region) o); - if (Objects.equals(this.getWorld(), region.getWorld()) - && this.getMinimumPoint().equals(region.getMinimumPoint()) - && this.getMaximumPoint().equals(region.getMaximumPoint()) - && this.getVolume() == region.getVolume()) { - return true; - } - return false; + return Objects.equals(this.getWorld(), region.getWorld()) + && this.getMinimumPoint().equals(region.getMinimumPoint()) + && this.getMaximumPoint().equals(region.getMaximumPoint()) + && this.getVolume() == region.getVolume(); } //FAWE end diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/regions/ConvexPolyhedralRegion.java b/worldedit-core/src/main/java/com/sk89q/worldedit/regions/ConvexPolyhedralRegion.java index 9979cdd74..c49d57a5a 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/regions/ConvexPolyhedralRegion.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/regions/ConvexPolyhedralRegion.java @@ -25,13 +25,13 @@ import com.sk89q.worldedit.regions.polyhedron.Edge; import com.sk89q.worldedit.regions.polyhedron.Triangle; import com.sk89q.worldedit.world.World; +import javax.annotation.Nullable; import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; import java.util.LinkedHashSet; import java.util.List; import java.util.Set; -import javax.annotation.Nullable; import static com.google.common.base.Preconditions.checkNotNull; diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/regions/CuboidRegion.java b/worldedit-core/src/main/java/com/sk89q/worldedit/regions/CuboidRegion.java index 01d312cb4..d13fc5b8f 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/regions/CuboidRegion.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/regions/CuboidRegion.java @@ -20,21 +20,21 @@ package com.sk89q.worldedit.regions; import com.fastasyncworldedit.core.FaweCache; +import com.fastasyncworldedit.core.configuration.Settings; +import com.fastasyncworldedit.core.extent.filter.block.ChunkFilterBlock; +import com.fastasyncworldedit.core.math.BlockVectorSet; +import com.fastasyncworldedit.core.math.MutableBlockVector2; +import com.fastasyncworldedit.core.math.MutableBlockVector3; import com.fastasyncworldedit.core.queue.Filter; import com.fastasyncworldedit.core.queue.IChunk; import com.fastasyncworldedit.core.queue.IChunkGet; import com.fastasyncworldedit.core.queue.IChunkSet; -import com.fastasyncworldedit.core.extent.filter.block.ChunkFilterBlock; -import com.fastasyncworldedit.core.configuration.Settings; -import com.fastasyncworldedit.core.math.BlockVectorSet; import com.sk89q.worldedit.math.BlockVector2; import com.sk89q.worldedit.math.BlockVector3; -import com.fastasyncworldedit.core.math.MutableBlockVector2; -import com.fastasyncworldedit.core.math.MutableBlockVector3; import com.sk89q.worldedit.world.World; import com.sk89q.worldedit.world.storage.ChunkStore; -import javax.annotation.Nonnull; +import javax.annotation.Nonnull; import java.util.AbstractSet; import java.util.Iterator; import java.util.NoSuchElementException; @@ -164,7 +164,8 @@ public class CuboidRegion extends AbstractRegion implements FlatRegion { // Project to the X-Z plane new CuboidRegion(pos1.withY(min.getY()), pos2.withY(min.getY())), - new CuboidRegion(pos1.withY(max.getY()), pos2.withY(max.getY()))); + new CuboidRegion(pos1.withY(max.getY()), pos2.withY(max.getY())) + ); } /** @@ -183,8 +184,15 @@ public class CuboidRegion extends AbstractRegion implements FlatRegion { new CuboidRegion(pos1.withX(max.getX()), pos2.withX(max.getX())), // Project to X-Y plane - new CuboidRegion(pos1.withZ(min.getZ()).add(BlockVector3.UNIT_X), pos2.withZ(min.getZ()).subtract(BlockVector3.UNIT_X)), - new CuboidRegion(pos1.withZ(max.getZ()).add(BlockVector3.UNIT_X), pos2.withZ(max.getZ()).subtract(BlockVector3.UNIT_X))); + new CuboidRegion( + pos1.withZ(min.getZ()).add(BlockVector3.UNIT_X), + pos2.withZ(min.getZ()).subtract(BlockVector3.UNIT_X) + ), + new CuboidRegion( + pos1.withZ(max.getZ()).add(BlockVector3.UNIT_X), + pos2.withZ(max.getZ()).subtract(BlockVector3.UNIT_X) + ) + ); } @Override @@ -642,14 +650,18 @@ public class CuboidRegion extends AbstractRegion implements FlatRegion { public static boolean contains(CuboidRegion region) { BlockVector3 min = region.getMinimumPoint(); BlockVector3 max = region.getMaximumPoint(); - return region.contains(min.getBlockX(), min.getBlockY(), min.getBlockZ()) && region.contains(max.getBlockX(), max.getBlockY(), max.getBlockZ()); + return region.contains(min.getBlockX(), min.getBlockY(), min.getBlockZ()) && region.contains( + max.getBlockX(), + max.getBlockY(), + max.getBlockZ() + ); } //FAWE end /** * Make a cuboid from the center. * - * @param origin the origin + * @param origin the origin * @param apothem the apothem, where 0 is the minimum value to make a 1x1 cuboid * @return a cuboid region */ @@ -678,7 +690,14 @@ public class CuboidRegion extends AbstractRegion implements FlatRegion { } @Override - public void filter(final IChunk chunk, final Filter filter, ChunkFilterBlock block, final IChunkGet get, final IChunkSet set, boolean full) { + public void filter( + final IChunk chunk, + final Filter filter, + ChunkFilterBlock block, + final IChunkGet get, + final IChunkSet set, + boolean full + ) { int chunkX = chunk.getX(); int chunkZ = chunk.getZ(); block = block.initChunk(chunkX, chunkZ); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/regions/CylinderRegion.java b/worldedit-core/src/main/java/com/sk89q/worldedit/regions/CylinderRegion.java index d444d81f9..03b38a55c 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/regions/CylinderRegion.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/regions/CylinderRegion.java @@ -19,12 +19,12 @@ package com.sk89q.worldedit.regions; +import com.fastasyncworldedit.core.configuration.Caption; +import com.fastasyncworldedit.core.extent.filter.block.ChunkFilterBlock; import com.fastasyncworldedit.core.queue.Filter; import com.fastasyncworldedit.core.queue.IChunk; import com.fastasyncworldedit.core.queue.IChunkGet; import com.fastasyncworldedit.core.queue.IChunkSet; -import com.fastasyncworldedit.core.extent.filter.block.ChunkFilterBlock; -import com.fastasyncworldedit.core.configuration.Caption; import com.sk89q.worldedit.extent.Extent; import com.sk89q.worldedit.math.BlockVector2; import com.sk89q.worldedit.math.BlockVector3; @@ -74,11 +74,11 @@ public class CylinderRegion extends AbstractRegion implements FlatRegion { /** * Construct the region. * - * @param world the world + * @param world the world * @param center the center position * @param radius the radius along the X and Z axes - * @param minY the minimum Y, inclusive - * @param maxY the maximum Y, inclusive + * @param minY the minimum Y, inclusive + * @param maxY the maximum Y, inclusive */ public CylinderRegion(World world, BlockVector3 center, Vector2 radius, int minY, int maxY) { super(world); @@ -94,8 +94,8 @@ public class CylinderRegion extends AbstractRegion implements FlatRegion { * * @param center the center position * @param radius the radius along the X and Z axes - * @param minY the minimum Y, inclusive - * @param maxY the maximum Y, inclusive + * @param minY the minimum Y, inclusive + * @param maxY the maximum Y, inclusive */ public CylinderRegion(BlockVector3 center, Vector2 radius, int minY, int maxY) { super(null); @@ -409,8 +409,10 @@ public class CylinderRegion extends AbstractRegion implements FlatRegion { //FAWE start @Override - public void filter(final IChunk chunk, final Filter filter, final ChunkFilterBlock block, - final IChunkGet get, final IChunkSet set, boolean full) { + public void filter( + final IChunk chunk, final Filter filter, final ChunkFilterBlock block, + final IChunkGet get, final IChunkSet set, boolean full + ) { int bcx = chunk.getX() >> 4; int bcz = chunk.getZ() >> 4; int tcx = bcx + 15; diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/regions/EllipsoidRegion.java b/worldedit-core/src/main/java/com/sk89q/worldedit/regions/EllipsoidRegion.java index 47a35ee17..14b26e2d0 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/regions/EllipsoidRegion.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/regions/EllipsoidRegion.java @@ -20,12 +20,12 @@ package com.sk89q.worldedit.regions; +import com.fastasyncworldedit.core.configuration.Caption; +import com.fastasyncworldedit.core.extent.filter.block.ChunkFilterBlock; import com.fastasyncworldedit.core.queue.Filter; import com.fastasyncworldedit.core.queue.IChunk; import com.fastasyncworldedit.core.queue.IChunkGet; import com.fastasyncworldedit.core.queue.IChunkSet; -import com.fastasyncworldedit.core.extent.filter.block.ChunkFilterBlock; -import com.fastasyncworldedit.core.configuration.Caption; import com.fastasyncworldedit.core.util.MathMan; import com.sk89q.worldedit.math.BlockVector2; import com.sk89q.worldedit.math.BlockVector3; @@ -73,7 +73,7 @@ public class EllipsoidRegion extends AbstractRegion { /** * Construct a new instance of this ellipsoid region. * - * @param world the world + * @param world the world * @param center the center * @param radius the radius */ @@ -219,8 +219,8 @@ public class EllipsoidRegion extends AbstractRegion { } chunks.add(BlockVector2.at( - x >> ChunkStore.CHUNK_SHIFTS, - z >> ChunkStore.CHUNK_SHIFTS + x >> ChunkStore.CHUNK_SHIFTS, + z >> ChunkStore.CHUNK_SHIFTS )); } } @@ -307,8 +307,10 @@ public class EllipsoidRegion extends AbstractRegion { } //FAWE start - private void filterSpherePartial(int y1, int y2, int bx, int bz, Filter filter, - ChunkFilterBlock block, IChunkGet get, IChunkSet set) { + private void filterSpherePartial( + int y1, int y2, int bx, int bz, Filter filter, + ChunkFilterBlock block, IChunkGet get, IChunkSet set + ) { int minSection = y1 >> 4; int maxSection = y2 >> 4; int yStart = (y1 & 15); @@ -333,8 +335,10 @@ public class EllipsoidRegion extends AbstractRegion { } } - private void filterSpherePartial(int layer, int y1, int y2, int bx, int bz, Filter filter, - ChunkFilterBlock block, IChunkGet get, IChunkSet set) { + private void filterSpherePartial( + int layer, int y1, int y2, int bx, int bz, Filter filter, + ChunkFilterBlock block, IChunkGet get, IChunkSet set + ) { int cx = center.getBlockX(); int cy = center.getBlockY(); int cz = center.getBlockZ(); @@ -366,8 +370,10 @@ public class EllipsoidRegion extends AbstractRegion { } @Override - public void filter(IChunk chunk, Filter filter, ChunkFilterBlock block, IChunkGet get, - IChunkSet set, boolean full) { + public void filter( + IChunk chunk, Filter filter, ChunkFilterBlock block, IChunkGet get, + IChunkSet set, boolean full + ) { // Check bounds // This needs to be able to perform 50M blocks/sec otherwise it becomes a bottleneck int cx = center.getBlockX(); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/regions/FlatRegion.java b/worldedit-core/src/main/java/com/sk89q/worldedit/regions/FlatRegion.java index 3f2b2719c..37a1c09db 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/regions/FlatRegion.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/regions/FlatRegion.java @@ -43,4 +43,5 @@ public interface FlatRegion extends Region { * @return a flat region iterable */ Iterable asFlatRegion(); + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/regions/Polygonal2DRegion.java b/worldedit-core/src/main/java/com/sk89q/worldedit/regions/Polygonal2DRegion.java index 9f08c0f39..e02e72029 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/regions/Polygonal2DRegion.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/regions/Polygonal2DRegion.java @@ -65,10 +65,10 @@ public class Polygonal2DRegion extends AbstractRegion implements FlatRegion { /** * Construct the region. * - * @param world the world + * @param world the world * @param points list of points - * @param minY minimum Y - * @param maxY maximum Y + * @param minY minimum Y + * @param maxY maximum Y */ public Polygonal2DRegion(World world, List points, int minY, int maxY) { super(world); @@ -356,9 +356,9 @@ public class Polygonal2DRegion extends AbstractRegion implements FlatRegion { * Checks to see if a point is inside a region. * * @param points a list of points - * @param minY the min Y - * @param maxY the max Y - * @param pt the position to check + * @param minY the min Y + * @param maxY the max Y + * @param pt the position to check * @return true if the given polygon contains the given point */ public static boolean contains(List points, int minY, int maxY, BlockVector3 pt) { diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/regions/Region.java b/worldedit-core/src/main/java/com/sk89q/worldedit/regions/Region.java index 020f6e457..8ca6493a6 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/regions/Region.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/regions/Region.java @@ -19,15 +19,15 @@ package com.sk89q.worldedit.regions; +import com.fastasyncworldedit.core.extent.SingleRegionExtent; +import com.fastasyncworldedit.core.extent.filter.block.ChunkFilterBlock; +import com.fastasyncworldedit.core.extent.processor.ProcessorScope; +import com.fastasyncworldedit.core.object.FaweLimit; import com.fastasyncworldedit.core.queue.Filter; import com.fastasyncworldedit.core.queue.IBatchProcessor; import com.fastasyncworldedit.core.queue.IChunk; import com.fastasyncworldedit.core.queue.IChunkGet; import com.fastasyncworldedit.core.queue.IChunkSet; -import com.fastasyncworldedit.core.extent.filter.block.ChunkFilterBlock; -import com.fastasyncworldedit.core.extent.processor.ProcessorScope; -import com.fastasyncworldedit.core.object.FaweLimit; -import com.fastasyncworldedit.core.extent.SingleRegionExtent; import com.sk89q.worldedit.extent.Extent; import com.sk89q.worldedit.internal.util.DeprecationUtil; import com.sk89q.worldedit.internal.util.NonAbstractForCompatibility; @@ -36,11 +36,11 @@ import com.sk89q.worldedit.math.BlockVector3; import com.sk89q.worldedit.math.Vector3; import com.sk89q.worldedit.world.World; +import javax.annotation.Nullable; import java.util.List; import java.util.Set; import java.util.concurrent.CompletableFuture; import java.util.concurrent.Future; -import javax.annotation.Nullable; /** * Represents a physical shape. @@ -95,12 +95,10 @@ public interface Region extends Iterable, Cloneable, IBatchProcess * Get the number of blocks in the region. * * @return number of blocks - * @apiNote This must be overridden by new subclasses. See {@link NonAbstractForCompatibility} - * for details */ @NonAbstractForCompatibility( - delegateName = "getArea", - delegateParams = {} + delegateName = "getArea", + delegateParams = {} ) default long getVolume() { DeprecationUtil.checkDelegatingOverride(getClass()); @@ -116,6 +114,7 @@ public interface Region extends Iterable, Cloneable, IBatchProcess return (max.getX() - min.getX() + 1) * (max.getY() - min.getY() + 1) * (max.getZ() - min.getZ() + 1); } */ + /** * Get X-size. * @@ -188,7 +187,8 @@ public interface Region extends Iterable, Cloneable, IBatchProcess * * @return the world, or null */ - @Nullable World getWorld(); + @Nullable + World getWorld(); /** * Sets the world that the selection is in. @@ -224,7 +224,8 @@ public interface Region extends Iterable, Cloneable, IBatchProcess default boolean isGlobal() { BlockVector3 pos1 = getMinimumPoint(); BlockVector3 pos2 = getMaximumPoint(); - return pos1.getBlockX() == Integer.MIN_VALUE && pos1.getBlockZ() == Integer.MIN_VALUE && pos2.getBlockX() == Integer.MAX_VALUE && pos2.getBlockZ() == Integer.MAX_VALUE && pos1.getBlockY() <= 0 && pos2.getBlockY() >= 255; + return pos1.getBlockX() == Integer.MIN_VALUE && pos1.getBlockZ() == Integer.MIN_VALUE && pos2.getBlockX() == Integer.MAX_VALUE && pos2 + .getBlockZ() == Integer.MAX_VALUE && pos1.getBlockY() <= 0 && pos2.getBlockY() >= 255; } default int getMinimumY() { @@ -235,7 +236,14 @@ public interface Region extends Iterable, Cloneable, IBatchProcess return getMaximumPoint().getY(); } - default void filter(final IChunk chunk, final Filter filter, ChunkFilterBlock block, final IChunkGet get, final IChunkSet set, boolean full) { + default void filter( + final IChunk chunk, + final Filter filter, + ChunkFilterBlock block, + final IChunkGet get, + final IChunkSet set, + boolean full + ) { int minSection = Math.max(0, getMinimumY() >> 4); int maxSection = Math.min(15, getMaximumY() >> 4); block = block.initChunk(chunk.getX(), chunk.getZ()); @@ -248,7 +256,16 @@ public interface Region extends Iterable, Cloneable, IBatchProcess } } - default void filter(final IChunk chunk, final Filter filter, ChunkFilterBlock block, final IChunkGet get, final IChunkSet set, final int minY, final int maxY, boolean full) { + default void filter( + final IChunk chunk, + final Filter filter, + ChunkFilterBlock block, + final IChunkGet get, + final IChunkSet set, + final int minY, + final int maxY, + boolean full + ) { int minSection = minY >> 4; int maxSection = maxY >> 4; int yStart = (minY & 15); @@ -272,7 +289,15 @@ public interface Region extends Iterable, Cloneable, IBatchProcess } } - default void filter(final IChunk chunk, final Filter filter, ChunkFilterBlock block, final IChunkGet get, final IChunkSet set, int layer, boolean full) { + default void filter( + final IChunk chunk, + final Filter filter, + ChunkFilterBlock block, + final IChunkGet get, + final IChunkSet set, + int layer, + boolean full + ) { if ((!full && !get.hasSection(layer)) || !filter.appliesLayer(chunk, layer)) { return; } @@ -280,7 +305,21 @@ public interface Region extends Iterable, Cloneable, IBatchProcess block.filter(filter); } - default void filter(final IChunk chunk, final Filter filter, ChunkFilterBlock block, final IChunkGet get, final IChunkSet set, int layer, int minX, int minY, int minZ, int maxX, int maxY, int maxZ, boolean full) { + default void filter( + final IChunk chunk, + final Filter filter, + ChunkFilterBlock block, + final IChunkGet get, + final IChunkSet set, + int layer, + int minX, + int minY, + int minZ, + int maxX, + int maxY, + int maxZ, + boolean full + ) { if ((!full && !get.hasSection(layer)) || !filter.appliesLayer(chunk, layer)) { return; } @@ -288,7 +327,17 @@ public interface Region extends Iterable, Cloneable, IBatchProcess block.filter(filter, minX, minY, minZ, maxX, maxY, maxZ); } - default void filter(final IChunk chunk, final Filter filter, ChunkFilterBlock block, final IChunkGet get, final IChunkSet set, int layer, int yStart, int yEnd, boolean full) { + default void filter( + final IChunk chunk, + final Filter filter, + ChunkFilterBlock block, + final IChunkGet get, + final IChunkSet set, + int layer, + int yStart, + int yEnd, + boolean full + ) { if ((!full && !get.hasSection(layer)) || !filter.appliesLayer(chunk, layer)) { return; } @@ -298,13 +347,13 @@ public interface Region extends Iterable, Cloneable, IBatchProcess default boolean containsEntireCuboid(int bx, int tx, int by, int ty, int bz, int tz) { return contains(bx, by, bz) - && contains(bx, by, tz) - && contains(tx, by, bz) - && contains(tx, by, tz) - && contains(bx, ty, bz) - && contains(bx, ty, tz) - && contains(tx, ty, bz) - && contains(tx, ty, tz); + && contains(bx, by, tz) + && contains(tx, by, bz) + && contains(tx, by, tz) + && contains(bx, ty, bz) + && contains(bx, ty, tz) + && contains(tx, ty, bz) + && contains(tx, ty, tz); } default boolean containsChunk(int chunkX, int chunkZ) { @@ -375,4 +424,5 @@ public interface Region extends Iterable, Cloneable, IBatchProcess default ProcessorScope getScope() { return ProcessorScope.REMOVING_BLOCKS; } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/regions/RegionIntersection.java b/worldedit-core/src/main/java/com/sk89q/worldedit/regions/RegionIntersection.java index dd4a37231..cc489d298 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/regions/RegionIntersection.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/regions/RegionIntersection.java @@ -19,10 +19,10 @@ package com.sk89q.worldedit.regions; +import com.fastasyncworldedit.core.configuration.Caption; import com.fastasyncworldedit.core.queue.IChunk; import com.fastasyncworldedit.core.queue.IChunkGet; import com.fastasyncworldedit.core.queue.IChunkSet; -import com.fastasyncworldedit.core.configuration.Caption; import com.google.common.collect.Iterators; import com.google.common.collect.Sets; import com.sk89q.worldedit.math.BlockVector2; diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/regions/RegionSelector.java b/worldedit-core/src/main/java/com/sk89q/worldedit/regions/RegionSelector.java index ded6af568..efe64904a 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/regions/RegionSelector.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/regions/RegionSelector.java @@ -31,8 +31,8 @@ import com.sk89q.worldedit.util.formatting.text.Component; import com.sk89q.worldedit.util.formatting.text.TextComponent; import com.sk89q.worldedit.util.formatting.text.format.TextColor; import com.sk89q.worldedit.world.World; -import javax.annotation.Nullable; +import javax.annotation.Nullable; import java.util.Collections; import java.util.List; import java.util.stream.Collectors; @@ -78,8 +78,8 @@ public interface RegionSelector { /** * Tell the player information about his/her primary selection. * - * @param actor the actor - * @param session the session + * @param actor the actor + * @param session the session * @param position position */ void explainPrimarySelection(Actor actor, LocalSession session, BlockVector3 position); @@ -87,8 +87,8 @@ public interface RegionSelector { /** * Tell the player information about his/her secondary selection. * - * @param actor the actor - * @param session the session + * @param actor the actor + * @param session the session * @param position position */ void explainSecondarySelection(Actor actor, LocalSession session, BlockVector3 position); @@ -97,7 +97,7 @@ public interface RegionSelector { * Tell the player information about the region's changes. This may resend * all the defining region information if needed. * - * @param actor the actor + * @param actor the actor * @param session the session */ void explainRegionAdjust(Actor actor, LocalSession session); @@ -147,12 +147,10 @@ public interface RegionSelector { * Get the number of blocks inside the region. * * @return number of blocks, or -1 if undefined - * @apiNote This must be overridden by new subclasses. See {@link NonAbstractForCompatibility} - * for details */ @NonAbstractForCompatibility( - delegateName = "getArea", - delegateParams = {} + delegateName = "getArea", + delegateParams = {} ) default long getVolume() { DeprecationUtil.checkDelegatingOverride(getClass()); @@ -207,4 +205,5 @@ public interface RegionSelector { default List getVertices() throws IncompleteRegionException { return Collections.singletonList(getPrimaryPosition()); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/regions/TransformRegion.java b/worldedit-core/src/main/java/com/sk89q/worldedit/regions/TransformRegion.java index 6211b1747..b2471af32 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/regions/TransformRegion.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/regions/TransformRegion.java @@ -27,10 +27,10 @@ import com.sk89q.worldedit.math.transform.Identity; import com.sk89q.worldedit.math.transform.Transform; import com.sk89q.worldedit.world.World; +import javax.annotation.Nullable; import java.util.ArrayList; import java.util.Iterator; import java.util.List; -import javax.annotation.Nullable; import static com.google.common.base.Preconditions.checkNotNull; @@ -47,7 +47,7 @@ public class TransformRegion extends AbstractRegion { /** * Create a new instance. * - * @param region the region + * @param region the region * @param transform the transform */ public TransformRegion(Region region, Transform transform) { @@ -57,8 +57,8 @@ public class TransformRegion extends AbstractRegion { /** * Create a new instance. * - * @param world the world, which may be null - * @param region the region + * @param world the world, which may be null + * @param region the region * @param transform the transform */ public TransformRegion(@Nullable World world, Region region, Transform transform) { @@ -188,4 +188,5 @@ public class TransformRegion extends AbstractRegion { } }; } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/regions/factory/CylinderRegionFactory.java b/worldedit-core/src/main/java/com/sk89q/worldedit/regions/factory/CylinderRegionFactory.java index 7203ff3d5..386700b1e 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/regions/factory/CylinderRegionFactory.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/regions/factory/CylinderRegionFactory.java @@ -34,7 +34,12 @@ public class CylinderRegionFactory implements RegionFactory { @Override public Region createCenteredAt(BlockVector3 position, double size) { - return new CylinderRegion(position, Vector2.at(size, size), position.getBlockY() - (int) (height / 2), position.getBlockY() + (int) (height / 2)); + return new CylinderRegion( + position, + Vector2.at(size, size), + position.getBlockY() - (int) (height / 2), + position.getBlockY() + (int) (height / 2) + ); } } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/regions/iterator/FlatRegionIterator.java b/worldedit-core/src/main/java/com/sk89q/worldedit/regions/iterator/FlatRegionIterator.java index 4aea7d026..e62c72ecd 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/regions/iterator/FlatRegionIterator.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/regions/iterator/FlatRegionIterator.java @@ -28,7 +28,7 @@ import java.util.NoSuchElementException; import static com.google.common.base.Preconditions.checkNotNull; -public class FlatRegionIterator implements Iterator { +public class FlatRegionIterator implements Iterator { private final Region region; private final int y; diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/regions/polyhedron/Edge.java b/worldedit-core/src/main/java/com/sk89q/worldedit/regions/polyhedron/Edge.java index 7d003a041..fe571de3e 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/regions/polyhedron/Edge.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/regions/polyhedron/Edge.java @@ -47,11 +47,7 @@ public class Edge { return true; } - if ((this.end == otherEdge.end) && (this.start == otherEdge.start)) { - return true; - } - - return false; + return (this.end == otherEdge.end) && (this.start == otherEdge.start); } @Override diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/regions/polyhedron/Triangle.java b/worldedit-core/src/main/java/com/sk89q/worldedit/regions/polyhedron/Triangle.java index 400fabb8b..bab9fe931 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/regions/polyhedron/Triangle.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/regions/polyhedron/Triangle.java @@ -42,7 +42,7 @@ public class Triangle { checkNotNull(v1); checkNotNull(v2); - vertices = new Vector3[] { v0, v1, v2 }; + vertices = new Vector3[]{v0, v1, v2}; this.normal = v1.subtract(v0).cross(v2.subtract(v0)).normalize(); this.maxDotProduct = Math.max(Math.max(normal.dot(v0), normal.dot(v1)), normal.dot(v2)); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/regions/selector/ConvexPolyhedralRegionSelector.java b/worldedit-core/src/main/java/com/sk89q/worldedit/regions/selector/ConvexPolyhedralRegionSelector.java index 1ae6815fc..ced04eddf 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/regions/selector/ConvexPolyhedralRegionSelector.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/regions/selector/ConvexPolyhedralRegionSelector.java @@ -37,13 +37,13 @@ import com.sk89q.worldedit.util.formatting.text.Component; import com.sk89q.worldedit.util.formatting.text.TextComponent; import com.sk89q.worldedit.world.World; +import javax.annotation.Nullable; import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Optional; -import javax.annotation.Nullable; import static com.google.common.base.Preconditions.checkNotNull; diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/regions/selector/CuboidRegionSelector.java b/worldedit-core/src/main/java/com/sk89q/worldedit/regions/selector/CuboidRegionSelector.java index 4d0fea61d..cf2bfaf26 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/regions/selector/CuboidRegionSelector.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/regions/selector/CuboidRegionSelector.java @@ -37,10 +37,10 @@ import com.sk89q.worldedit.util.formatting.text.event.ClickEvent; import com.sk89q.worldedit.util.formatting.text.event.HoverEvent; import com.sk89q.worldedit.world.World; +import javax.annotation.Nullable; import java.util.ArrayList; import java.util.Arrays; import java.util.List; -import javax.annotation.Nullable; import static com.google.common.base.Preconditions.checkNotNull; @@ -101,7 +101,7 @@ public class CuboidRegionSelector implements RegionSelector, CUIRegion { /** * Create a new region selector with the given two positions. * - * @param world the world + * @param world the world * @param position1 position 1 * @param position2 position 2 */ diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/regions/selector/CylinderRegionSelector.java b/worldedit-core/src/main/java/com/sk89q/worldedit/regions/selector/CylinderRegionSelector.java index f6aa1b818..689cd3701 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/regions/selector/CylinderRegionSelector.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/regions/selector/CylinderRegionSelector.java @@ -41,10 +41,10 @@ import com.sk89q.worldedit.util.formatting.text.event.ClickEvent; import com.sk89q.worldedit.util.formatting.text.event.HoverEvent; import com.sk89q.worldedit.world.World; +import javax.annotation.Nullable; import java.text.NumberFormat; import java.util.ArrayList; import java.util.List; -import javax.annotation.Nullable; import static com.google.common.base.Preconditions.checkNotNull; @@ -126,11 +126,11 @@ public class CylinderRegionSelector implements RegionSelector, CUIRegion { /** * Create a new selector. * - * @param world the world + * @param world the world * @param center the center * @param radius the radius - * @param minY the minimum Y - * @param maxY the maximum Y + * @param minY the minimum Y + * @param maxY the maximum Y */ public CylinderRegionSelector(@Nullable World world, BlockVector2 center, Vector2 radius, int minY, int maxY) { this(world); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/regions/selector/EllipsoidRegionSelector.java b/worldedit-core/src/main/java/com/sk89q/worldedit/regions/selector/EllipsoidRegionSelector.java index fa7cf4a94..02d570969 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/regions/selector/EllipsoidRegionSelector.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/regions/selector/EllipsoidRegionSelector.java @@ -38,9 +38,9 @@ import com.sk89q.worldedit.util.formatting.text.event.ClickEvent; import com.sk89q.worldedit.util.formatting.text.event.HoverEvent; import com.sk89q.worldedit.world.World; +import javax.annotation.Nullable; import java.util.ArrayList; import java.util.List; -import javax.annotation.Nullable; import static com.google.common.base.Preconditions.checkNotNull; @@ -104,7 +104,7 @@ public class EllipsoidRegionSelector implements RegionSelector, CUIRegion { /** * Create a new selector. * - * @param world the world + * @param world the world * @param center the center * @param radius the radius */ diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/regions/selector/ExtendingCuboidRegionSelector.java b/worldedit-core/src/main/java/com/sk89q/worldedit/regions/selector/ExtendingCuboidRegionSelector.java index 0cadd5c65..5d74d7ae6 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/regions/selector/ExtendingCuboidRegionSelector.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/regions/selector/ExtendingCuboidRegionSelector.java @@ -73,7 +73,7 @@ public class ExtendingCuboidRegionSelector extends CuboidRegionSelector { /** * Create a new selector. * - * @param world the world + * @param world the world * @param position1 the first position * @param position2 the second position */ diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/regions/selector/Polygonal2DRegionSelector.java b/worldedit-core/src/main/java/com/sk89q/worldedit/regions/selector/Polygonal2DRegionSelector.java index 2fb951786..bf472615a 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/regions/selector/Polygonal2DRegionSelector.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/regions/selector/Polygonal2DRegionSelector.java @@ -37,10 +37,10 @@ import com.sk89q.worldedit.util.formatting.text.Component; import com.sk89q.worldedit.util.formatting.text.TextComponent; import com.sk89q.worldedit.world.World; +import javax.annotation.Nullable; import java.util.Collections; import java.util.List; import java.util.Optional; -import javax.annotation.Nullable; import static com.google.common.base.Preconditions.checkNotNull; @@ -109,10 +109,10 @@ public class Polygonal2DRegionSelector implements RegionSelector, CUIRegion { /** * Create a new selector. * - * @param world the world + * @param world the world * @param points a list of points - * @param minY the minimum Y - * @param maxY the maximum Y + * @param minY the minimum Y + * @param maxY the maximum Y */ public Polygonal2DRegionSelector(@Nullable World world, List points, int minY, int maxY) { checkNotNull(points); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/regions/selector/SphereRegionSelector.java b/worldedit-core/src/main/java/com/sk89q/worldedit/regions/selector/SphereRegionSelector.java index 33e6eca47..a0eff3046 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/regions/selector/SphereRegionSelector.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/regions/selector/SphereRegionSelector.java @@ -69,7 +69,7 @@ public class SphereRegionSelector extends EllipsoidRegionSelector { /** * Create a new selector. * - * @param world the world + * @param world the world * @param center the center position * @param radius the radius */ diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/regions/shape/ArbitraryBiomeShape.java b/worldedit-core/src/main/java/com/sk89q/worldedit/regions/shape/ArbitraryBiomeShape.java index 7e5457bef..2bea6ca97 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/regions/shape/ArbitraryBiomeShape.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/regions/shape/ArbitraryBiomeShape.java @@ -78,8 +78,8 @@ public abstract class ArbitraryBiomeShape { /** * Override this function to specify the shape to generate. * - * @param x X coordinate to be queried - * @param z Z coordinate to be queried + * @param x X coordinate to be queried + * @param z Z coordinate to be queried * @param defaultBaseBiome The default biome for the current column. * @return material to place or null to not place anything. */ @@ -120,8 +120,8 @@ public abstract class ArbitraryBiomeShape { * Generates the shape. * * @param editSession The EditSession to use. - * @param baseBiome The default biome type. - * @param hollow Specifies whether to generate a hollow shape. + * @param baseBiome The default biome type. + * @param hollow Specifies whether to generate a hollow shape. * @return number of affected blocks. */ public int generate(EditSession editSession, BiomeType baseBiome, boolean hollow) { diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/regions/shape/ArbitraryShape.java b/worldedit-core/src/main/java/com/sk89q/worldedit/regions/shape/ArbitraryShape.java index 60ccf643d..4feff6b8f 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/regions/shape/ArbitraryShape.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/regions/shape/ArbitraryShape.java @@ -77,9 +77,9 @@ public abstract class ArbitraryShape { /** * Override this function to specify the shape to generate. * - * @param x X coordinate to be queried - * @param y Y coordinate to be queried - * @param z Z coordinate to be queried + * @param x X coordinate to be queried + * @param y Y coordinate to be queried + * @param z Z coordinate to be queried * @param defaultMaterial The material returned by the pattern for the current block. * @return material to place or null to not place anything. */ @@ -89,8 +89,8 @@ public abstract class ArbitraryShape { * Generates the shape. * * @param editSession The EditSession to use. - * @param pattern The pattern to generate default materials from. - * @param hollow Specifies whether to generate a hollow shape. + * @param pattern The pattern to generate default materials from. + * @param hollow Specifies whether to generate a hollow shape. * @return number of affected blocks. * @throws MaxChangedBlocksException if the maximum blocks changed is exceeded */ diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/regions/shape/WorldEditExpressionEnvironment.java b/worldedit-core/src/main/java/com/sk89q/worldedit/regions/shape/WorldEditExpressionEnvironment.java index 40c397bc6..15e93c7db 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/regions/shape/WorldEditExpressionEnvironment.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/regions/shape/WorldEditExpressionEnvironment.java @@ -19,11 +19,11 @@ package com.sk89q.worldedit.regions.shape; +import com.fastasyncworldedit.core.math.MutableVector3; import com.sk89q.worldedit.EditSession; import com.sk89q.worldedit.extent.Extent; import com.sk89q.worldedit.internal.expression.ExpressionEnvironment; import com.sk89q.worldedit.math.BlockVector3; -import com.fastasyncworldedit.core.math.MutableVector3; import com.sk89q.worldedit.math.Vector3; public class WorldEditExpressionEnvironment implements ExpressionEnvironment { diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/registry/Category.java b/worldedit-core/src/main/java/com/sk89q/worldedit/registry/Category.java index ae41c2cba..fc8a5e895 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/registry/Category.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/registry/Category.java @@ -83,4 +83,5 @@ public abstract class Category implements RegistryItem { public String toString() { return getId(); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/registry/Keyed.java b/worldedit-core/src/main/java/com/sk89q/worldedit/registry/Keyed.java index faae292df..e892ba1f1 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/registry/Keyed.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/registry/Keyed.java @@ -23,9 +23,12 @@ package com.sk89q.worldedit.registry; * Represents an objects that can be added to a registry and referenced by an id which is unique within its registry. */ public interface Keyed { + /** * The id of this object in the registry. Must be unique, and lowercase. Certain registries (e.g Namespaced ones) may have additional restrictions. + * * @return an id */ String getId(); + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/registry/NamespacedRegistry.java b/worldedit-core/src/main/java/com/sk89q/worldedit/registry/NamespacedRegistry.java index e915667f9..5fca65799 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/registry/NamespacedRegistry.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/registry/NamespacedRegistry.java @@ -34,6 +34,7 @@ import static com.google.common.base.Preconditions.checkState; import static java.util.Objects.requireNonNull; public final class NamespacedRegistry extends Registry { + private static final String MINECRAFT_NAMESPACE = "minecraft"; private final Set knownNamespaces = new HashSet<>(); private final String defaultNamespace; diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/registry/Registry.java b/worldedit-core/src/main/java/com/sk89q/worldedit/registry/Registry.java index 3b1d3aa0c..44cdd44f8 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/registry/Registry.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/registry/Registry.java @@ -19,6 +19,7 @@ package com.sk89q.worldedit.registry; +import javax.annotation.Nullable; import java.util.Collection; import java.util.Collections; import java.util.HashMap; @@ -26,12 +27,12 @@ import java.util.Iterator; import java.util.Locale; import java.util.Map; import java.util.Set; -import javax.annotation.Nullable; import static com.google.common.base.Preconditions.checkState; import static java.util.Objects.requireNonNull; public class Registry implements Iterable { + private final Map map = new HashMap<>(); private final String name; diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/registry/state/AbstractProperty.java b/worldedit-core/src/main/java/com/sk89q/worldedit/registry/state/AbstractProperty.java index b2c71eba1..e248ad5cb 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/registry/state/AbstractProperty.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/registry/state/AbstractProperty.java @@ -22,8 +22,8 @@ package com.sk89q.worldedit.registry.state; import com.fastasyncworldedit.core.registry.state.PropertyKey; import com.fastasyncworldedit.core.util.MathMan; import com.sk89q.worldedit.world.block.BlockTypesCache; -import javax.annotation.Nullable; +import javax.annotation.Nullable; import java.util.List; import static com.google.common.base.Preconditions.checkState; diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/registry/state/BooleanProperty.java b/worldedit-core/src/main/java/com/sk89q/worldedit/registry/state/BooleanProperty.java index 2a06a7390..b6ebd1f24 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/registry/state/BooleanProperty.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/registry/state/BooleanProperty.java @@ -19,8 +19,8 @@ package com.sk89q.worldedit.registry.state; -import java.util.List; import javax.annotation.Nullable; +import java.util.List; public class BooleanProperty extends AbstractProperty { @@ -68,4 +68,5 @@ public class BooleanProperty extends AbstractProperty { } return val; } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/registry/state/DirectionalProperty.java b/worldedit-core/src/main/java/com/sk89q/worldedit/registry/state/DirectionalProperty.java index 2a437144a..606134b74 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/registry/state/DirectionalProperty.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/registry/state/DirectionalProperty.java @@ -21,10 +21,10 @@ package com.sk89q.worldedit.registry.state; import com.sk89q.worldedit.util.Direction; +import javax.annotation.Nullable; import java.util.Arrays; import java.util.List; import java.util.Locale; -import javax.annotation.Nullable; public class DirectionalProperty extends AbstractProperty { @@ -73,4 +73,5 @@ public class DirectionalProperty extends AbstractProperty { } return direction; } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/registry/state/EnumProperty.java b/worldedit-core/src/main/java/com/sk89q/worldedit/registry/state/EnumProperty.java index 10d2763e7..83f353b16 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/registry/state/EnumProperty.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/registry/state/EnumProperty.java @@ -19,10 +19,10 @@ package com.sk89q.worldedit.registry.state; +import javax.annotation.Nullable; import java.util.HashMap; import java.util.List; import java.util.Map; -import javax.annotation.Nullable; public class EnumProperty extends AbstractProperty { @@ -65,4 +65,5 @@ public class EnumProperty extends AbstractProperty { } return getValues().get(offset); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/registry/state/IntegerProperty.java b/worldedit-core/src/main/java/com/sk89q/worldedit/registry/state/IntegerProperty.java index df8e2b8eb..3271ca08a 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/registry/state/IntegerProperty.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/registry/state/IntegerProperty.java @@ -21,9 +21,9 @@ package com.sk89q.worldedit.registry.state; import com.fastasyncworldedit.core.util.StringMan; +import javax.annotation.Nullable; import java.util.Collections; import java.util.List; -import javax.annotation.Nullable; public class IntegerProperty extends AbstractProperty { @@ -85,4 +85,5 @@ public class IntegerProperty extends AbstractProperty { throw new IllegalArgumentException("Invalid int value: " + string + ". Not an int."); } } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/registry/state/Property.java b/worldedit-core/src/main/java/com/sk89q/worldedit/registry/state/Property.java index 620b4ffd2..4e3a09473 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/registry/state/Property.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/registry/state/Property.java @@ -21,8 +21,8 @@ package com.sk89q.worldedit.registry.state; import com.fastasyncworldedit.core.registry.state.PropertyKey; -import java.util.List; import javax.annotation.Nullable; +import java.util.List; /** * Describes a state property of a block. diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/scripting/CraftScriptContext.java b/worldedit-core/src/main/java/com/sk89q/worldedit/scripting/CraftScriptContext.java index fe5d43567..b1aac6589 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/scripting/CraftScriptContext.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/scripting/CraftScriptContext.java @@ -52,9 +52,11 @@ public class CraftScriptContext extends CraftScriptEnvironment { private final List editSessions = new ArrayList<>(); private final String[] args; - public CraftScriptContext(WorldEdit controller, + public CraftScriptContext( + WorldEdit controller, Platform server, LocalConfiguration config, - LocalSession session, Player player, String[] args) { + LocalSession session, Player player, String[] args + ) { super(controller, server, config, session, player); this.args = args; } @@ -68,7 +70,8 @@ public class CraftScriptContext extends CraftScriptEnvironment { public EditSession remember() { EditSession editSession = controller.getEditSessionFactory() .getEditSession(player.getWorld(), - session.getBlockChangeLimit(), session.getBlockBag(player), player); + session.getBlockChangeLimit(), session.getBlockBag(player), player + ); Request.request().setEditSession(editSession); editSession.enableStandardMode(); editSessions.add(editSession); @@ -141,8 +144,8 @@ public class CraftScriptContext extends CraftScriptEnvironment { /** * Checks to make sure that there are enough but not too many arguments. * - * @param min a number of arguments - * @param max -1 for no maximum + * @param min a number of arguments + * @param max -1 for no maximum * @param usage usage string * @throws InsufficientArgumentsException if the arguments are not "sufficiently" good */ @@ -166,10 +169,10 @@ public class CraftScriptContext extends CraftScriptEnvironment { /** * Get an item from an item name or an item ID number. * - * @param input input to parse + * @param input input to parse * @param allAllowed true to ignore blacklists * @return a block - * @throws NoMatchException if no block was found + * @throws NoMatchException if no block was found * @throws DisallowedUsageException if the block is disallowed */ public BaseBlock getBlock(String input, boolean allAllowed) throws WorldEditException { @@ -188,7 +191,7 @@ public class CraftScriptContext extends CraftScriptEnvironment { * * @param id the type Id * @return a block - * @throws NoMatchException if no block was found + * @throws NoMatchException if no block was found * @throws DisallowedUsageException if the block is disallowed */ public BaseBlock getBlock(String id) throws WorldEditException { @@ -200,7 +203,7 @@ public class CraftScriptContext extends CraftScriptEnvironment { * * @param list the input * @return pattern - * @throws NoMatchException if the pattern was invalid + * @throws NoMatchException if the pattern was invalid * @throws DisallowedUsageException if the block is disallowed */ public Pattern getBlockPattern(String list) throws WorldEditException { @@ -214,10 +217,10 @@ public class CraftScriptContext extends CraftScriptEnvironment { /** * Get a list of blocks as a set. * - * @param list a list + * @param list a list * @param allBlocksAllowed true if all blocks are allowed * @return set - * @throws NoMatchException if the blocks couldn't be found + * @throws NoMatchException if the blocks couldn't be found * @throws DisallowedUsageException if the block is disallowed */ public Set getBlocks(String list, boolean allBlocksAllowed) throws WorldEditException { @@ -238,10 +241,10 @@ public class CraftScriptContext extends CraftScriptEnvironment { * *

    Use this method if you need to read a file from a directory.

    * - * @param folder sub-directory to look in - * @param filename filename (user-submitted) + * @param folder sub-directory to look in + * @param filename filename (user-submitted) * @param defaultExt default extension to append if there is none - * @param exts list of extensions for file open dialog, null for no filter + * @param exts list of extensions for file open dialog, null for no filter * @return a file * @throws FilenameException if there is a problem with the name of the file */ @@ -259,10 +262,10 @@ public class CraftScriptContext extends CraftScriptEnvironment { * *

    Use this method if you need to read a file from a directory.

    * - * @param folder sub-directory to look in - * @param filename filename (user-submitted) + * @param folder sub-directory to look in + * @param filename filename (user-submitted) * @param defaultExt default extension to append if there is none - * @param exts list of extensions for file save dialog, null for no filter + * @param exts list of extensions for file save dialog, null for no filter * @return a file * @throws FilenameException if there is a problem with the name of the file */ diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/scripting/CraftScriptEngine.java b/worldedit-core/src/main/java/com/sk89q/worldedit/scripting/CraftScriptEngine.java index 3d3d3f258..5cf29615b 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/scripting/CraftScriptEngine.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/scripting/CraftScriptEngine.java @@ -20,13 +20,14 @@ package com.sk89q.worldedit.scripting; import java.util.Map; -import javax.script.ScriptException; public interface CraftScriptEngine { + void setTimeLimit(int milliseconds); int getTimeLimit(); Object evaluate(String script, String filename, Map args) - throws ScriptException, Throwable; + throws Throwable; + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/scripting/CraftScriptEnvironment.java b/worldedit-core/src/main/java/com/sk89q/worldedit/scripting/CraftScriptEnvironment.java index 10684770d..04f0d239d 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/scripting/CraftScriptEnvironment.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/scripting/CraftScriptEnvironment.java @@ -33,7 +33,13 @@ public abstract class CraftScriptEnvironment { protected LocalSession session; protected Platform server; - public CraftScriptEnvironment(WorldEdit controller, Platform server, LocalConfiguration config, LocalSession session, Player player) { + public CraftScriptEnvironment( + WorldEdit controller, + Platform server, + LocalConfiguration config, + LocalSession session, + Player player + ) { this.controller = controller; this.player = player; this.config = config; diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/scripting/MinecraftHidingClassShutter.java b/worldedit-core/src/main/java/com/sk89q/worldedit/scripting/MinecraftHidingClassShutter.java index 4e59775bc..2357f0036 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/scripting/MinecraftHidingClassShutter.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/scripting/MinecraftHidingClassShutter.java @@ -34,4 +34,5 @@ class MinecraftHidingClassShutter implements ClassShutter { } return !fullClassName.startsWith("net.minecraft"); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/scripting/RhinoContextFactory.java b/worldedit-core/src/main/java/com/sk89q/worldedit/scripting/RhinoContextFactory.java index fc9f7e0bb..e6f027117 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/scripting/RhinoContextFactory.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/scripting/RhinoContextFactory.java @@ -58,8 +58,10 @@ public class RhinoContextFactory extends ContextFactory { } @Override - protected Object doTopCall(Callable callable, Context cx, Scriptable scope, - Scriptable thisObj, Object[] args) { + protected Object doTopCall( + Callable callable, Context cx, Scriptable scope, + Scriptable thisObj, Object[] args + ) { RhinoContext mcx = (RhinoContext) cx; mcx.startTime = System.currentTimeMillis(); @@ -67,11 +69,13 @@ public class RhinoContextFactory extends ContextFactory { } private static class RhinoContext extends Context { + long startTime; private RhinoContext(ContextFactory factory) { super(factory); } + } } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/scripting/RhinoCraftScriptEngine.java b/worldedit-core/src/main/java/com/sk89q/worldedit/scripting/RhinoCraftScriptEngine.java index af3cbac00..360123977 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/scripting/RhinoCraftScriptEngine.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/scripting/RhinoCraftScriptEngine.java @@ -28,10 +28,11 @@ import org.mozilla.javascript.Scriptable; import org.mozilla.javascript.ScriptableObject; import org.mozilla.javascript.WrappedException; -import java.util.Map; import javax.script.ScriptException; +import java.util.Map; public class RhinoCraftScriptEngine implements CraftScriptEngine { + private int timeLimit; @Override @@ -46,7 +47,7 @@ public class RhinoCraftScriptEngine implements CraftScriptEngine { @Override public Object evaluate(String script, String filename, Map args) - throws ScriptException, Throwable { + throws Throwable { RhinoContextFactory factory = new RhinoContextFactory(timeLimit); Context cx = factory.enterContext(); cx.setClassShutter(new MinecraftHidingClassShutter()); @@ -55,7 +56,8 @@ public class RhinoCraftScriptEngine implements CraftScriptEngine { for (Map.Entry entry : args.entrySet()) { ScriptableObject.putProperty(scope, entry.getKey(), - Context.javaToJS(entry.getValue(), scope)); + Context.javaToJS(entry.getValue(), scope) + ); } try { return cx.evaluateString(scope, script, filename, 1, null); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/session/ClipboardHolder.java b/worldedit-core/src/main/java/com/sk89q/worldedit/session/ClipboardHolder.java index ecfa5f220..8c7af5a04 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/session/ClipboardHolder.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/session/ClipboardHolder.java @@ -55,8 +55,8 @@ public class ClipboardHolder { * not contain its effect. *

    * - * @deprecated FAWE supports multiple loaded schematics {@link #getClipboards()} * @return the clipboard + * @deprecated FAWE supports multiple loaded schematics {@link #getClipboards()} */ @Deprecated public Clipboard getClipboard() { @@ -64,8 +64,10 @@ public class ClipboardHolder { } //FAWE start + /** * Gets all currently held clipboards. + * * @return all clipboards being held. */ public List getClipboards() { @@ -78,8 +80,9 @@ public class ClipboardHolder { /** * Gets all end ClipboardHolders
    - * - Usually this will return itself.
    - * - If this is a multi clipboard, it will return the children + * - Usually this will return itself.
    + * - If this is a multi clipboard, it will return the children + * * @return a List of end ClipboardHolders */ public List getHolders() { @@ -123,5 +126,4 @@ public class ClipboardHolder { } - } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/session/PasteBuilder.java b/worldedit-core/src/main/java/com/sk89q/worldedit/session/PasteBuilder.java index 5d6f5e6ec..71a191a7d 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/session/PasteBuilder.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/session/PasteBuilder.java @@ -56,7 +56,7 @@ public class PasteBuilder { /** * Create a new instance. * - * @param holder the clipboard holder + * @param holder the clipboard holder * @param targetExtent an extent */ PasteBuilder(ClipboardHolder holder, Extent targetExtent) { diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/session/SessionManager.java b/worldedit-core/src/main/java/com/sk89q/worldedit/session/SessionManager.java index 269c8911f..d93a6b298 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/session/SessionManager.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/session/SessionManager.java @@ -44,6 +44,7 @@ import com.sk89q.worldedit.world.item.ItemType; import com.sk89q.worldedit.world.item.ItemTypes; import org.apache.logging.log4j.Logger; +import javax.annotation.Nullable; import java.io.File; import java.io.IOException; import java.util.HashMap; @@ -53,7 +54,6 @@ import java.util.Timer; import java.util.TimerTask; import java.util.UUID; import java.util.concurrent.Callable; -import javax.annotation.Nullable; import static com.google.common.base.Preconditions.checkNotNull; @@ -221,7 +221,8 @@ public class SessionManager { return false; } - private void setDefaultWand(String sessionItem, String configItem, LocalSession session, Tool wand) throws InvalidToolBindException { + private void setDefaultWand(String sessionItem, String configItem, LocalSession session, Tool wand) throws + InvalidToolBindException { ItemType wandItem = null; if (sessionItem != null) { wandItem = ItemTypes.get(sessionItem); @@ -373,6 +374,7 @@ public class SessionManager { * Stores the owner of a session, the session, and the last active time. */ private static final class SessionHolder { + private final SessionKey key; private final LocalSession session; private long lastActive = System.currentTimeMillis(); @@ -382,6 +384,7 @@ public class SessionManager { this.key = key; this.session = session; } + } /** @@ -389,12 +392,14 @@ public class SessionManager { * of time. Commits them as well. */ private class SessionTracker extends TimerTask { + @Override public void run() { synchronized (SessionManager.this) { saveChangedSessions(); } } + } } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/session/TransientSessionException.java b/worldedit-core/src/main/java/com/sk89q/worldedit/session/TransientSessionException.java index d25d4e97a..71d005a82 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/session/TransientSessionException.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/session/TransientSessionException.java @@ -39,4 +39,5 @@ public class TransientSessionException extends Exception { public TransientSessionException(Throwable cause) { super(cause); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/session/request/Request.java b/worldedit-core/src/main/java/com/sk89q/worldedit/session/request/Request.java index 25f8ae601..554f0cfa8 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/session/request/Request.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/session/request/Request.java @@ -124,6 +124,7 @@ public final class Request { } //FAWE start + /** * Get the request session. * @@ -185,4 +186,5 @@ public final class Request { private void invalidate() { valid = false; } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/session/request/RequestExtent.java b/worldedit-core/src/main/java/com/sk89q/worldedit/session/request/RequestExtent.java index 148936629..8a982d6f2 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/session/request/RequestExtent.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/session/request/RequestExtent.java @@ -34,8 +34,8 @@ import com.sk89q.worldedit.world.block.BaseBlock; import com.sk89q.worldedit.world.block.BlockState; import com.sk89q.worldedit.world.block.BlockStateHolder; -import java.util.List; import javax.annotation.Nullable; +import java.util.List; public class RequestExtent implements Extent { @@ -99,7 +99,7 @@ public class RequestExtent implements Extent { @Override public > boolean setBlock(int x, int y, int z, T block) - throws WorldEditException { + throws WorldEditException { return getExtent().setBlock(x, y, z, block); } @@ -132,4 +132,5 @@ public class RequestExtent implements Extent { request = null; return commit; } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/session/storage/SessionStore.java b/worldedit-core/src/main/java/com/sk89q/worldedit/session/storage/SessionStore.java index a5e578d9d..7c36d023c 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/session/storage/SessionStore.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/session/storage/SessionStore.java @@ -48,7 +48,7 @@ public interface SessionStore { /** * Save the given session identified by the given UUID. * - * @param id the UUID + * @param id the UUID * @param session a session * @throws IOException thrown on read error */ diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/Countable.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/Countable.java index 03dfdf6c8..3656164e3 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/Countable.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/Countable.java @@ -27,7 +27,7 @@ public class Countable implements Comparable> { /** * Construct the object. * - * @param id the ID + * @param id the ID * @param amount the count of */ public Countable(T id, int amount) { @@ -69,4 +69,5 @@ public class Countable implements Comparable> { public int compareTo(Countable other) { return Integer.compare(amount, other.amount); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/Direction.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/Direction.java index b9e4bb489..d117ff328 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/Direction.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/Direction.java @@ -22,13 +22,13 @@ package com.sk89q.worldedit.util; import com.sk89q.worldedit.math.BlockVector3; import com.sk89q.worldedit.math.Vector3; +import javax.annotation.Nullable; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Locale; import java.util.Optional; import java.util.OptionalInt; -import javax.annotation.Nullable; /** * A collection of cardinal, ordinal, and secondary-ordinal directions. @@ -192,7 +192,7 @@ public enum Direction { * Find the closest direction to the given direction vector. * * @param vector the vector - * @param flags the only flags that are permitted (use bitwise math) + * @param flags the only flags that are permitted (use bitwise math) * @return the closest direction, or null if no direction can be returned */ @Nullable @@ -240,7 +240,7 @@ public enum Direction { * Converts a rotation index into a Direction. * *

    - * Rotation indexes are used in BlockStates, such as sign posts. + * Rotation indexes are used in BlockStates, such as sign posts. *

    * * @param rotation The rotation index @@ -328,6 +328,7 @@ public enum Direction { * Flags to use with {@link #findClosest(Vector3, int)}. */ public static final class Flag { + public static int CARDINAL = 0x1; public static int ORDINAL = 0x2; public static int SECONDARY_ORDINAL = 0x4; @@ -342,6 +343,7 @@ public enum Direction { private Flag() { } + } } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/Enums.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/Enums.java index 5669bb9b0..8514aaa97 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/Enums.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/Enums.java @@ -36,8 +36,8 @@ public final class Enums { * given values, searching in an ascending manner. * * @param enumType the enum type - * @param values the list of values - * @param the type of enum + * @param values the list of values + * @param the type of enum * @return the found value or null */ @Nullable @@ -52,4 +52,5 @@ public final class Enums { } return null; } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/FileDialogUtil.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/FileDialogUtil.java index 68e3400fd..559070e30 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/FileDialogUtil.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/FileDialogUtil.java @@ -21,14 +21,15 @@ package com.sk89q.worldedit.util; import com.sk89q.util.StringUtil; +import javax.swing.JFileChooser; +import javax.swing.filechooser.FileFilter; import java.io.File; import java.util.Arrays; import java.util.HashSet; import java.util.Set; -import javax.swing.JFileChooser; -import javax.swing.filechooser.FileFilter; public final class FileDialogUtil { + private FileDialogUtil() { } @@ -65,6 +66,7 @@ public final class FileDialogUtil { } private static class ExtensionFilter extends FileFilter { + private final Set exts; private final String desc; @@ -92,5 +94,7 @@ public final class FileDialogUtil { public String getDescription() { return desc; } + } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/GuavaUtil.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/GuavaUtil.java index b35d01cdf..fe5740822 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/GuavaUtil.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/GuavaUtil.java @@ -31,4 +31,5 @@ public final class GuavaUtil { public static T firstNonNull(@Nullable T first, @Nullable T second) { return first != null ? first : checkNotNull(second); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/Location.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/Location.java index 0d44d1d70..3a3cd6fb8 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/Location.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/Location.java @@ -19,9 +19,9 @@ package com.sk89q.worldedit.util; +import com.fastasyncworldedit.core.math.Vector3Impl; import com.sk89q.worldedit.extent.Extent; import com.sk89q.worldedit.math.Vector3; -import com.fastasyncworldedit.core.math.Vector3Impl; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkNotNull; @@ -59,9 +59,9 @@ public class Location extends Vector3Impl { * with a direction vector of 0, 0, 0. * * @param extent the extent - * @param x the X coordinate - * @param y the Y coordinate - * @param z the Z coordinate + * @param x the X coordinate + * @param y the Y coordinate + * @param z the Z coordinate */ public Location(Extent extent, double x, double y, double z) { this(extent, Vector3.at(x, y, z), 0f, 90f); @@ -71,7 +71,7 @@ public class Location extends Vector3Impl { * Create a new instance in the given extent with the given position * vector and a direction vector of 0, 0, 0. * - * @param extent the extent + * @param extent the extent * @param position the position vector */ public Location(Extent extent, Vector3 position) { @@ -82,10 +82,10 @@ public class Location extends Vector3Impl { * Create a new instance in the given extent with the given coordinates * and the given direction vector. * - * @param extent the extent - * @param x the X coordinate - * @param y the Y coordinate - * @param z the Z coordinate + * @param extent the extent + * @param x the X coordinate + * @param y the Y coordinate + * @param z the Z coordinate * @param direction the direction vector */ public Location(Extent extent, double x, double y, double z, Vector3 direction) { @@ -97,11 +97,11 @@ public class Location extends Vector3Impl { * and the given direction vector. * * @param extent the extent - * @param x the X coordinate - * @param y the Y coordinate - * @param z the Z coordinate - * @param yaw the yaw, in degrees - * @param pitch the pitch, in degrees + * @param x the X coordinate + * @param y the Y coordinate + * @param z the Z coordinate + * @param yaw the yaw, in degrees + * @param pitch the pitch, in degrees */ public Location(Extent extent, double x, double y, double z, float yaw, float pitch) { this(extent, Vector3.at(x, y, z), yaw, pitch); @@ -111,8 +111,8 @@ public class Location extends Vector3Impl { * Create a new instance in the given extent with the given position vector * and the given direction vector. * - * @param extent the extent - * @param position the position vector + * @param extent the extent + * @param position the position vector * @param direction the direction vector */ public Location(Extent extent, Vector3 position, Vector3 direction) { @@ -123,10 +123,10 @@ public class Location extends Vector3Impl { * Create a new instance in the given extent with the given position vector * and the given direction vector. * - * @param extent the extent + * @param extent the extent * @param position the position vector - * @param yaw the yaw, in degrees - * @param pitch the pitch, in degrees + * @param yaw the yaw, in degrees + * @param pitch the pitch, in degrees */ public Location(Extent extent, Vector3 position, float yaw, float pitch) { //FAWE start @@ -199,7 +199,7 @@ public class Location extends Vector3Impl { /** * Create a clone of this object with the given yaw and pitch. * - * @param yaw the new yaw + * @param yaw the new yaw * @param pitch the new pitch * @return the new instance */ @@ -222,7 +222,8 @@ public class Location extends Vector3Impl { return Vector3.at( -xz * Math.sin(yaw), -Math.sin(pitch), - xz * Math.cos(yaw)); + xz * Math.cos(yaw) + ); } /** @@ -298,7 +299,8 @@ public class Location extends Vector3Impl { } //FAWE start - @Override public Location clampY(int min, int max) { + @Override + public Location clampY(int min, int max) { checkArgument(min <= max, "minimum cannot be greater than maximum"); if (getY() < min) { return new Location(extent, getX(), min, getZ()); @@ -338,12 +340,8 @@ public class Location extends Vector3Impl { if (this.getY() != location.getY()) { return false; } - if (!extent.equals(location.extent)) { - return false; - } + return extent.equals(location.extent); //FAWE end - - return true; } } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/PropertiesConfiguration.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/PropertiesConfiguration.java index 218832d60..a9a8b88af 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/PropertiesConfiguration.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/PropertiesConfiguration.java @@ -49,10 +49,13 @@ import java.util.Set; */ public class PropertiesConfiguration extends LocalConfiguration { - @Unreported private static final Logger LOGGER = LogManagerCompat.getLogger(); + @Unreported + private static final Logger LOGGER = LogManagerCompat.getLogger(); - @Unreported protected Properties properties; - @Unreported protected File path; + @Unreported + protected Properties properties; + @Unreported + protected File path; /** * Construct the object. The configuration isn't loaded yet. diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/SideEffectSet.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/SideEffectSet.java index c36f5740f..04169effb 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/SideEffectSet.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/SideEffectSet.java @@ -30,6 +30,7 @@ import java.util.function.Function; import java.util.stream.Collectors; public class SideEffectSet { + private static final SideEffectSet DEFAULT = new SideEffectSet( Arrays.stream(SideEffect.values()).collect(Collectors.toMap(Function.identity(), SideEffect::getDefaultValue)) ); @@ -57,7 +58,9 @@ public class SideEffectSet { } public SideEffectSet with(SideEffect sideEffect, SideEffect.State state) { - Map entries = this.sideEffects.isEmpty() ? Maps.newEnumMap(SideEffect.class) : new EnumMap<>(this.sideEffects); + Map entries = this.sideEffects.isEmpty() + ? Maps.newEnumMap(SideEffect.class) + : new EnumMap<>(this.sideEffects); entries.put(sideEffect, state); return new SideEffectSet(entries); } @@ -95,4 +98,5 @@ public class SideEffectSet { public static SideEffectSet none() { return NONE; } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/TargetBlock.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/TargetBlock.java index 9040a5c3a..a0fb78882 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/TargetBlock.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/TargetBlock.java @@ -63,7 +63,8 @@ public class TargetBlock { public TargetBlock(Player player) { this.world = player.getWorld(); this.setValues(player.getLocation().toVector(), player.getLocation().getYaw(), player.getLocation().getPitch(), - 300, 1.65, 0.2); + 300, 1.65, 0.2 + ); this.stopMask = new ExistingBlockMask(world); this.solidMask = new SolidBlockMask(world); } @@ -71,8 +72,8 @@ public class TargetBlock { /** * Constructor requiring a player, max distance and a checking distance. * - * @param player Player to work with - * @param maxDistance how far it checks for blocks + * @param player Player to work with + * @param maxDistance how far it checks for blocks * @param checkDistance how often to check for blocks, the smaller the more precise */ public TargetBlock(Player player, int maxDistance, double checkDistance) { @@ -84,7 +85,14 @@ public class TargetBlock { //FAWE start - Extend > World public TargetBlock(Player player, Extent extent, int maxDistance, double checkDistance) { this.world = player.getWorld(); - this.setValues(player.getLocation().toVector(), player.getLocation().getYaw(), player.getLocation().getPitch(), maxDistance, 1.65, checkDistance); + this.setValues( + player.getLocation().toVector(), + player.getLocation().getYaw(), + player.getLocation().getPitch(), + maxDistance, + 1.65, + checkDistance + ); this.stopMask = new ExistingBlockMask(world); this.solidMask = new SolidBlockMask(world); } @@ -121,14 +129,21 @@ public class TargetBlock { /** * Set the values, all constructors uses this function. * - * @param loc location of the view - * @param rotationX the X rotation - * @param rotationY the Y rotation - * @param maxDistance how far it checks for blocks - * @param viewHeight where the view is positioned in y-axis + * @param loc location of the view + * @param rotationX the X rotation + * @param rotationY the Y rotation + * @param maxDistance how far it checks for blocks + * @param viewHeight where the view is positioned in y-axis * @param checkDistance how often to check for blocks, the smaller the more precise */ - private void setValues(Vector3 loc, double rotationX, double rotationY, int maxDistance, double viewHeight, double checkDistance) { + private void setValues( + Vector3 loc, + double rotationX, + double rotationY, + int maxDistance, + double viewHeight, + double checkDistance + ) { this.maxDistance = maxDistance; this.checkDistance = checkDistance; this.curDistance = 0; @@ -137,9 +152,11 @@ public class TargetBlock { double h = (checkDistance * Math.cos(Math.toRadians(rotationY))); - offset = Vector3.at((h * Math.cos(Math.toRadians(rotationX))), - (checkDistance * Math.sin(Math.toRadians(rotationY))), - (h * Math.sin(Math.toRadians(rotationX)))); + offset = Vector3.at( + (h * Math.cos(Math.toRadians(rotationX))), + (checkDistance * Math.sin(Math.toRadians(rotationY))), + (h * Math.sin(Math.toRadians(rotationX))) + ); targetPosDouble = loc.add(0, viewHeight, 0); targetPos = targetPosDouble.toBlockPoint(); @@ -207,9 +224,11 @@ public class TargetBlock { do { curDistance += checkDistance; - targetPosDouble = offset.add(targetPosDouble.getX(), - targetPosDouble.getY(), - targetPosDouble.getZ()); + targetPosDouble = offset.add( + targetPosDouble.getX(), + targetPosDouble.getY(), + targetPosDouble.getZ() + ); targetPos = targetPosDouble.toBlockPoint(); } while (curDistance <= maxDistance && targetPos.getBlockX() == prevPos.getBlockX() diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/TreeGenerator.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/TreeGenerator.java index a2a45ce00..169b1d0e6 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/TreeGenerator.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/TreeGenerator.java @@ -28,6 +28,7 @@ import com.sk89q.worldedit.world.block.BlockState; import com.sk89q.worldedit.world.block.BlockStateHolder; import com.sk89q.worldedit.world.block.BlockTypes; +import javax.annotation.Nullable; import java.util.Collections; import java.util.EnumSet; import java.util.HashMap; @@ -35,7 +36,6 @@ import java.util.Locale; import java.util.Map; import java.util.Random; import java.util.Set; -import javax.annotation.Nullable; /** * Tree generator. @@ -51,7 +51,7 @@ public final class TreeGenerator { RANDOM_REDWOOD("Random spruce tree", "randspruce", "randredwood", "randomredwood", "anyredwood") { @Override public boolean generate(EditSession editSession, BlockVector3 pos) throws MaxChangedBlocksException { - TreeType[] choices = { REDWOOD, TALL_REDWOOD, MEGA_REDWOOD }; + TreeType[] choices = {REDWOOD, TALL_REDWOOD, MEGA_REDWOOD}; return choices[TreeGenerator.RANDOM.nextInt(choices.length)].generate(editSession, pos); } }, @@ -60,7 +60,7 @@ public final class TreeGenerator { RANDOM_BIRCH("Random birch tree", "randbirch", "randombirch") { @Override public boolean generate(EditSession editSession, BlockVector3 pos) throws MaxChangedBlocksException { - TreeType[] choices = { BIRCH, TALL_BIRCH }; + TreeType[] choices = {BIRCH, TALL_BIRCH}; return choices[TreeGenerator.RANDOM.nextInt(choices.length)].generate(editSession, pos); } }, @@ -75,7 +75,7 @@ public final class TreeGenerator { RANDOM_JUNGLE("Random jungle tree", "randjungle", "randomjungle") { @Override public boolean generate(EditSession editSession, BlockVector3 pos) throws MaxChangedBlocksException { - TreeType[] choices = { JUNGLE, SMALL_JUNGLE }; + TreeType[] choices = {JUNGLE, SMALL_JUNGLE}; return choices[TreeGenerator.RANDOM.nextInt(choices.length)].generate(editSession, pos); } }, @@ -87,7 +87,7 @@ public final class TreeGenerator { RANDOM_MUSHROOM("Random mushroom", "randmushroom", "randommushroom") { @Override public boolean generate(EditSession editSession, BlockVector3 pos) throws MaxChangedBlocksException { - TreeType[] choices = { RED_MUSHROOM, BROWN_MUSHROOM, CRIMSON_FUNGUS, WARPED_FUNGUS }; + TreeType[] choices = {RED_MUSHROOM, BROWN_MUSHROOM, CRIMSON_FUNGUS, WARPED_FUNGUS}; return choices[TreeGenerator.RANDOM.nextInt(choices.length)].generate(editSession, pos); } }, @@ -255,13 +255,18 @@ public final class TreeGenerator { * Set a block (only if a previous block was not there) if {@link Math#random()} * returns a number less than the given probability. * - * @param position the position - * @param block the block + * @param position the position + * @param block the block * @param probability a probability between 0 and 1, inclusive * @return whether a block was changed * @throws MaxChangedBlocksException thrown if too many blocks are changed */ - private static > boolean setChanceBlockIfAir(EditSession session, BlockVector3 position, B block, double probability) + private static > boolean setChanceBlockIfAir( + EditSession session, + BlockVector3 position, + B block, + double probability + ) throws MaxChangedBlocksException { return Math.random() <= probability && setBlockIfAir(session, position, block); } @@ -270,11 +275,16 @@ public final class TreeGenerator { * Set a block only if there's no block already there. * * @param position the position - * @param block the block to set + * @param block the block to set * @return if block was changed * @throws MaxChangedBlocksException thrown if too many blocks are changed */ - private static > boolean setBlockIfAir(EditSession session, BlockVector3 position, B block) throws MaxChangedBlocksException { + private static > boolean setBlockIfAir( + EditSession session, + BlockVector3 position, + B block + ) throws MaxChangedBlocksException { return session.getBlock(position).getBlockType().getMaterial().isAir() && session.setBlock(position, block); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/WeightedChoice.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/WeightedChoice.java index 49329e522..f8fa70a82 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/WeightedChoice.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/WeightedChoice.java @@ -44,7 +44,7 @@ public class WeightedChoice { * Create a new instance. * * @param function a function that assigns a score for each choice - * @param target the target score that the best choice should be closest to + * @param target the target score that the best choice should be closest to */ public WeightedChoice(Function function, double target) { checkNotNull(function); @@ -86,6 +86,7 @@ public class WeightedChoice { * @param the choice type */ public static class Choice { + private final T object; private final double value; @@ -111,6 +112,7 @@ public class WeightedChoice { public double getScore() { return value; } + } } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/YAMLConfiguration.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/YAMLConfiguration.java index f013cc488..ccca0ed2b 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/YAMLConfiguration.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/YAMLConfiguration.java @@ -37,8 +37,10 @@ import java.util.Locale; */ public class YAMLConfiguration extends LocalConfiguration { - @Unreported protected final YAMLProcessor config; - @Unreported protected final Logger logger; + @Unreported + protected final YAMLProcessor config; + @Unreported + protected final Logger logger; public YAMLConfiguration(YAMLProcessor config, Logger logger) { this.config = config; @@ -59,18 +61,29 @@ public class YAMLConfiguration extends LocalConfiguration { defaultChangeLimit = Math.max(-1, config.getInt( "limits.max-blocks-changed.default", defaultChangeLimit)); - maxChangeLimit = Math.max(-1, - config.getInt("limits.max-blocks-changed.maximum", maxChangeLimit)); + maxChangeLimit = Math.max( + -1, + config.getInt("limits.max-blocks-changed.maximum", maxChangeLimit) + ); - defaultVerticalHeight = Math.max(1, - config.getInt("limits.vertical-height.default", defaultVerticalHeight)); + defaultVerticalHeight = Math.max( + 1, + config.getInt("limits.vertical-height.default", defaultVerticalHeight) + ); - defaultMaxPolygonalPoints = Math.max(-1, - config.getInt("limits.max-polygonal-points.default", defaultMaxPolygonalPoints)); - maxPolygonalPoints = Math.max(-1, - config.getInt("limits.max-polygonal-points.maximum", maxPolygonalPoints)); + defaultMaxPolygonalPoints = Math.max( + -1, + config.getInt("limits.max-polygonal-points.default", defaultMaxPolygonalPoints) + ); + maxPolygonalPoints = Math.max( + -1, + config.getInt("limits.max-polygonal-points.maximum", maxPolygonalPoints) + ); - defaultMaxPolyhedronPoints = Math.max(-1, config.getInt("limits.max-polyhedron-points.default", defaultMaxPolyhedronPoints)); + defaultMaxPolyhedronPoints = Math.max( + -1, + config.getInt("limits.max-polyhedron-points.default", defaultMaxPolyhedronPoints) + ); maxPolyhedronPoints = Math.max(-1, config.getInt("limits.max-polyhedron-points.maximum", maxPolyhedronPoints)); maxRadius = Math.max(-1, config.getInt("limits.max-radius", maxRadius)); @@ -81,7 +94,10 @@ public class YAMLConfiguration extends LocalConfiguration { butcherDefaultRadius = Math.max(-1, config.getInt("limits.butcher-radius.default", butcherDefaultRadius)); butcherMaxRadius = Math.max(-1, config.getInt("limits.butcher-radius.maximum", butcherMaxRadius)); - disallowedBlocks = new HashSet<>(config.getStringList("limits.disallowed-blocks", Lists.newArrayList(getDefaultDisallowedBlocks()))); + disallowedBlocks = new HashSet<>(config.getStringList( + "limits.disallowed-blocks", + Lists.newArrayList(getDefaultDisallowedBlocks()) + )); allowedDataCycleBlocks = new HashSet<>(config.getStringList("limits.allowed-data-cycle-blocks", null)); registerHelp = config.getBoolean("register-help", true); @@ -89,16 +105,22 @@ public class YAMLConfiguration extends LocalConfiguration { logFile = config.getString("logging.file", logFile); logFormat = config.getString("logging.format", logFormat); - superPickaxeDrop = config.getBoolean("super-pickaxe.drop-items", - superPickaxeDrop); + superPickaxeDrop = config.getBoolean( + "super-pickaxe.drop-items", + superPickaxeDrop + ); superPickaxeManyDrop = config.getBoolean( "super-pickaxe.many-drop-items", superPickaxeManyDrop); useInventory = config.getBoolean("use-inventory.enable", useInventory); - useInventoryOverride = config.getBoolean("use-inventory.allow-override", - useInventoryOverride); - useInventoryCreativeOverride = config.getBoolean("use-inventory.creative-mode-overrides", - useInventoryCreativeOverride); + useInventoryOverride = config.getBoolean( + "use-inventory.allow-override", + useInventoryOverride + ); + useInventoryCreativeOverride = config.getBoolean( + "use-inventory.creative-mode-overrides", + useInventoryCreativeOverride + ); navigationWand = convertLegacyItem(config.getString("navigation-wand.item", navigationWand)).toLowerCase(Locale.ROOT); navigationWandMaxDistance = config.getInt("navigation-wand.max-distance", navigationWandMaxDistance); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/auth/AuthorizationException.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/auth/AuthorizationException.java index ee2d55ac9..4105594e7 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/auth/AuthorizationException.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/auth/AuthorizationException.java @@ -51,4 +51,5 @@ public class AuthorizationException extends WorldEditException { public AuthorizationException(Throwable cause) { super(cause); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/auth/Authorizer.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/auth/Authorizer.java index 72a4946df..477926ad7 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/auth/Authorizer.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/auth/Authorizer.java @@ -29,7 +29,7 @@ public interface Authorizer { /** * Tests whether permission is granted for the given context. * - * @param locals locals + * @param locals locals * @param permission the permission string * @return true if permitted */ diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/auth/Subject.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/auth/Subject.java index 35c3c3269..98fca8b9b 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/auth/Subject.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/auth/Subject.java @@ -49,6 +49,7 @@ public interface Subject { boolean hasPermission(String permission); //FAWE start + /** * Add and remove permissions from a subject to show and hide certain messages. * diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/collection/BlockMap.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/collection/BlockMap.java index beddc4624..43c175dbc 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/collection/BlockMap.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/collection/BlockMap.java @@ -86,14 +86,14 @@ public class BlockMap extends AbstractMap { private static long toGroupKey(BlockVector3 location) { return ((location.getX() >>> 6) & BITS_20) - | (((location.getZ() >>> 6) & BITS_20) << 20) - | (((location.getY() >>> 8) & BITS_24) << (20 + 20)); + | (((location.getZ() >>> 6) & BITS_20) << 20) + | (((location.getY() >>> 8) & BITS_24) << (20 + 20)); } private static int toInnerKey(BlockVector3 location) { return (location.getX() & BITS_6) - | ((location.getZ() & BITS_6) << 6) - | ((location.getY() & BITS_8) << (6 + 6)); + | ((location.getZ() & BITS_6) << 6) + | ((location.getY() & BITS_8) << (6 + 6)); } private static final long GROUP_X = BITS_20; @@ -165,24 +165,24 @@ public class BlockMap extends AbstractMap { public V getOrDefault(Object key, V defaultValue) { BlockVector3 vec = (BlockVector3) key; return getOrEmptyMap(toGroupKey(vec)) - .getOrDefault(toInnerKey(vec), defaultValue); + .getOrDefault(toInnerKey(vec), defaultValue); } @Override public void forEach(BiConsumer action) { maps.forEach((groupKey, m) -> - m.forEach((innerKey, block) -> - action.accept(reconstructLocation(groupKey, innerKey), block) - ) + m.forEach((innerKey, block) -> + action.accept(reconstructLocation(groupKey, innerKey), block) + ) ); } @Override public void replaceAll(BiFunction function) { maps.forEach((groupKey, m) -> - m.replaceAll((innerKey, block) -> - function.apply(reconstructLocation(groupKey, innerKey), block) - ) + m.replaceAll((innerKey, block) -> + function.apply(reconstructLocation(groupKey, innerKey), block) + ) ); } @@ -194,14 +194,18 @@ public class BlockMap extends AbstractMap { @Override public boolean remove(Object key, Object value) { BlockVector3 vec = (BlockVector3) key; - return cleanlyModifyMap(toGroupKey(vec), - map -> map.remove(toInnerKey(vec), value)); + return cleanlyModifyMap( + toGroupKey(vec), + map -> map.remove(toInnerKey(vec), value) + ); } @Override public boolean replace(BlockVector3 key, V oldValue, V newValue) { - return cleanlyModifyMap(toGroupKey(key), - map -> map.replace(toInnerKey(key), oldValue, newValue)); + return cleanlyModifyMap( + toGroupKey(key), + map -> map.replace(toInnerKey(key), oldValue, newValue) + ); } @Override @@ -211,26 +215,34 @@ public class BlockMap extends AbstractMap { @Override public V computeIfAbsent(BlockVector3 key, Function mappingFunction) { - return cleanlyModifyMap(toGroupKey(key), - map -> map.computeIfAbsent(toInnerKey(key), ik -> mappingFunction.apply(key))); + return cleanlyModifyMap( + toGroupKey(key), + map -> map.computeIfAbsent(toInnerKey(key), ik -> mappingFunction.apply(key)) + ); } @Override public V computeIfPresent(BlockVector3 key, BiFunction remappingFunction) { - return cleanlyModifyMap(toGroupKey(key), - map -> map.computeIfPresent(toInnerKey(key), (ik, block) -> remappingFunction.apply(key, block))); + return cleanlyModifyMap( + toGroupKey(key), + map -> map.computeIfPresent(toInnerKey(key), (ik, block) -> remappingFunction.apply(key, block)) + ); } @Override public V compute(BlockVector3 key, BiFunction remappingFunction) { - return cleanlyModifyMap(toGroupKey(key), - map -> map.compute(toInnerKey(key), (ik, block) -> remappingFunction.apply(key, block))); + return cleanlyModifyMap( + toGroupKey(key), + map -> map.compute(toInnerKey(key), (ik, block) -> remappingFunction.apply(key, block)) + ); } @Override public V merge(BlockVector3 key, V value, BiFunction remappingFunction) { - return cleanlyModifyMap(toGroupKey(key), - map -> map.merge(toInnerKey(key), value, remappingFunction)); + return cleanlyModifyMap( + toGroupKey(key), + map -> map.merge(toInnerKey(key), value, remappingFunction) + ); } @Override @@ -243,7 +255,7 @@ public class BlockMap extends AbstractMap { return new Iterator>() { private final ObjectIterator>> primaryIterator - = Long2ObjectMaps.fastIterator(maps); + = Long2ObjectMaps.fastIterator(maps); private Long2ObjectMap.Entry> currentPrimaryEntry; private ObjectIterator> secondaryIterator; private boolean finished; @@ -274,8 +286,10 @@ public class BlockMap extends AbstractMap { currentPrimaryEntry = primaryIterator.next(); secondaryIterator = Int2ObjectMaps.fastIterator(currentPrimaryEntry.getValue()); // be paranoid - checkState(secondaryIterator.hasNext(), - "Should not have an empty map entry, it should have been removed!"); + checkState( + secondaryIterator.hasNext(), + "Should not have an empty map entry, it should have been removed!" + ); } Int2ObjectMap.Entry next = secondaryIterator.next(); return new LazyEntry(currentPrimaryEntry.getLongKey(), next.getIntKey(), next.getValue()); @@ -354,8 +368,8 @@ public class BlockMap extends AbstractMap { @SuppressWarnings("unchecked") LazyEntry otherE = (LazyEntry) o; return otherE.groupKey == groupKey - && otherE.innerKey == innerKey - && Objects.equals(value, e.getValue()); + && otherE.innerKey == innerKey + && Objects.equals(value, e.getValue()); } return Objects.equals(getKey(), e.getKey()) && Objects.equals(value, e.getValue()); } @@ -369,6 +383,7 @@ public class BlockMap extends AbstractMap { public String toString() { return getKey() + "=" + getValue(); } + } @Override @@ -417,7 +432,7 @@ public class BlockMap extends AbstractMap { if (m instanceof BlockMap) { // optimize insertions: ((BlockMap) m).maps.forEach((groupKey, map) -> - getOrCreateMap(groupKey).putAll(map) + getOrCreateMap(groupKey).putAll(map) ); } else { super.putAll(m); @@ -445,8 +460,8 @@ public class BlockMap extends AbstractMap { @Override public Iterator iterator() { return maps.values().stream() - .flatMap(m -> m.values().stream()) - .iterator(); + .flatMap(m -> m.values().stream()) + .iterator(); } @Override @@ -477,4 +492,5 @@ public class BlockMap extends AbstractMap { public int hashCode() { return super.hashCode(); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/collection/DoubleArrayList.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/collection/DoubleArrayList.java index 83215d7d6..3f5335da2 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/collection/DoubleArrayList.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/collection/DoubleArrayList.java @@ -83,11 +83,13 @@ public class DoubleArrayList implements Iterable> { if (reversed) { return new ReverseEntryIterator<>( listA.listIterator(listA.size()), - listB.listIterator(listB.size())); + listB.listIterator(listB.size()) + ); } else { return new ForwardEntryIterator<>( listA.iterator(), - listB.iterator()); + listB.iterator() + ); } } @@ -124,6 +126,7 @@ public class DoubleArrayList implements Iterable> { public void remove() { throw new UnsupportedOperationException(); } + } /** @@ -154,12 +157,14 @@ public class DoubleArrayList implements Iterable> { public void remove() { throw new UnsupportedOperationException(); } + } /** * Class to masquerade as Map.Entry. */ public class Entry implements Map.Entry { + private final A key; private final B value; @@ -182,6 +187,7 @@ public class DoubleArrayList implements Iterable> { public B setValue(B value) { throw new UnsupportedOperationException(); } + } } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/collection/Int2BaseBlockMap.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/collection/Int2BaseBlockMap.java index e3203d28c..751a42e1e 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/collection/Int2BaseBlockMap.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/collection/Int2BaseBlockMap.java @@ -33,9 +33,9 @@ import it.unimi.dsi.fastutil.objects.AbstractObjectSet; import it.unimi.dsi.fastutil.objects.ObjectIterator; import it.unimi.dsi.fastutil.objects.ObjectSet; +import javax.annotation.Nonnull; import java.util.NoSuchElementException; import java.util.function.BiFunction; -import javax.annotation.Nonnull; /** * Int-to-BaseBlock map, but with optimizations for common cases. @@ -68,11 +68,10 @@ class Int2BaseBlockMap extends AbstractInt2ObjectMap { } private final Int2IntMap commonMap = new Int2IntOpenHashMap(64, 0.9f); - private final Int2ObjectMap uncommonMap = new Int2ObjectOpenHashMap<>(1, 0.75f); - { commonMap.defaultReturnValue(BlockStateIdAccess.invalidId()); } + private final Int2ObjectMap uncommonMap = new Int2ObjectOpenHashMap<>(1, 0.75f); @Override public int size() { @@ -88,9 +87,9 @@ class Int2BaseBlockMap extends AbstractInt2ObjectMap { return new ObjectIterator>() { private final ObjectIterator commonIter - = Int2IntMaps.fastIterator(commonMap); + = Int2IntMaps.fastIterator(commonMap); private final ObjectIterator> uncommonIter - = Int2ObjectMaps.fastIterator(uncommonMap); + = Int2ObjectMaps.fastIterator(uncommonMap); private boolean lastNextFromCommon = false; @Override @@ -104,7 +103,7 @@ class Int2BaseBlockMap extends AbstractInt2ObjectMap { Int2IntMap.Entry e = commonIter.next(); lastNextFromCommon = true; return new BasicEntry<>( - e.getIntKey(), assumeAsBlock(e.getIntValue()) + e.getIntKey(), assumeAsBlock(e.getIntValue()) ); } if (uncommonIter.hasNext()) { @@ -208,4 +207,5 @@ class Int2BaseBlockMap extends AbstractInt2ObjectMap { } } } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/collection/LocatedBlockList.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/collection/LocatedBlockList.java index d0a0c56bc..f32e8111f 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/collection/LocatedBlockList.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/collection/LocatedBlockList.java @@ -26,9 +26,9 @@ import com.sk89q.worldedit.util.LocatedBlock; import com.sk89q.worldedit.world.block.BaseBlock; import com.sk89q.worldedit.world.block.BlockStateHolder; +import javax.annotation.Nullable; import java.util.Collection; import java.util.Iterator; -import javax.annotation.Nullable; import static com.google.common.base.Preconditions.checkNotNull; @@ -39,7 +39,7 @@ public class LocatedBlockList implements Iterable { private final BlockMap blocks = BlockMap.createForBaseBlock(); private final PositionList order = PositionList.create( - WorldEdit.getInstance().getConfiguration().extendedYLimit + WorldEdit.getInstance().getConfiguration().extendedYLimit ); public LocatedBlockList() { @@ -82,12 +82,12 @@ public class LocatedBlockList implements Iterable { @Override public Iterator iterator() { return Iterators.transform(order.iterator(), position -> - new LocatedBlock(position, blocks.get(position))); + new LocatedBlock(position, blocks.get(position))); } public Iterator reverseIterator() { return Iterators.transform(order.reverseIterator(), position -> - new LocatedBlock(position, blocks.get(position))); + new LocatedBlock(position, blocks.get(position))); } } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/collection/LongPositionList.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/collection/LongPositionList.java index ffb53e2a9..25cbbd073 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/collection/LongPositionList.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/collection/LongPositionList.java @@ -55,16 +55,20 @@ class LongPositionList implements PositionList { @Override public Iterator iterator() { - return new PositionIterator(delegate.iterator(), - LongListIterator::hasNext, - LongListIterator::nextLong); + return new PositionIterator( + delegate.iterator(), + LongListIterator::hasNext, + LongListIterator::nextLong + ); } @Override public Iterator reverseIterator() { - return new PositionIterator(delegate.listIterator(size()), - LongListIterator::hasPrevious, - LongListIterator::previousLong); + return new PositionIterator( + delegate.listIterator(size()), + LongListIterator::hasPrevious, + LongListIterator::previousLong + ); } private static final class PositionIterator extends AbstractIterator { @@ -73,9 +77,11 @@ class LongPositionList implements PositionList { private final Predicate hasNext; private final ToLongFunction next; - private PositionIterator(LongListIterator iterator, - Predicate hasNext, - ToLongFunction next) { + private PositionIterator( + LongListIterator iterator, + Predicate hasNext, + ToLongFunction next + ) { this.iterator = iterator; this.hasNext = hasNext; this.next = next; @@ -84,8 +90,10 @@ class LongPositionList implements PositionList { @Override protected BlockVector3 computeNext() { return hasNext.test(iterator) - ? BlockVector3.fromLongPackedForm(next.applyAsLong(iterator)) - : endOfData(); + ? BlockVector3.fromLongPackedForm(next.applyAsLong(iterator)) + : endOfData(); } + } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/collection/MoreStreams.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/collection/MoreStreams.java index a60204bd4..5320e2828 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/collection/MoreStreams.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/collection/MoreStreams.java @@ -74,10 +74,11 @@ public class MoreStreams { // Not SIZED, Not SUBSIZED chars &= ~(Spliterator.SIZED | Spliterator.SUBSIZED); return StreamSupport.stream(Spliterators.spliterator( - iter, spliterator.estimateSize(), chars + iter, spliterator.estimateSize(), chars ), stream.isParallel()).onClose(stream::close); } private MoreStreams() { } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/collection/VectorPositionList.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/collection/VectorPositionList.java index 9af301828..d7be0fc99 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/collection/VectorPositionList.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/collection/VectorPositionList.java @@ -37,9 +37,10 @@ class VectorPositionList implements PositionList { @Override public BlockVector3 get(int index) { return BlockVector3.at( - delegateX.getInt(index), - delegateY.getInt(index), - delegateZ.getInt(index)); + delegateX.getInt(index), + delegateY.getInt(index), + delegateZ.getInt(index) + ); } @Override @@ -75,9 +76,10 @@ class VectorPositionList implements PositionList { return endOfData(); } return BlockVector3.at( - iteratorX.nextInt(), - iteratorY.nextInt(), - iteratorZ.nextInt()); + iteratorX.nextInt(), + iteratorY.nextInt(), + iteratorZ.nextInt() + ); } }; } @@ -96,10 +98,12 @@ class VectorPositionList implements PositionList { return endOfData(); } return BlockVector3.at( - iteratorX.previousInt(), - iteratorY.previousInt(), - iteratorZ.previousInt()); + iteratorX.previousInt(), + iteratorY.previousInt(), + iteratorZ.previousInt() + ); } }; } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/concurrency/EvenMoreExecutors.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/concurrency/EvenMoreExecutors.java index dfd9a9c4d..202d6c6f6 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/concurrency/EvenMoreExecutors.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/concurrency/EvenMoreExecutors.java @@ -63,7 +63,8 @@ public final class EvenMoreExecutors { ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor( minThreads, maxThreads, 60L, TimeUnit.SECONDS, - new LinkedBlockingDeque<>(queueSize)); + new LinkedBlockingDeque<>(queueSize) + ); threadPoolExecutor.allowCoreThreadTimeOut(true); if (threadFormat != null) { threadPoolExecutor.setThreadFactory(new ThreadFactoryBuilder().setNameFormat(threadFormat).build()); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/concurrency/LazyReference.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/concurrency/LazyReference.java index 4af4ac72d..488ca83e5 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/concurrency/LazyReference.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/concurrency/LazyReference.java @@ -33,11 +33,12 @@ public class LazyReference { } //FAWE start + /** * Pre-computed reference, for setting a lazy reference field with a known value. * * @param value the value of the reference - * @param the type of the value + * @param the type of the value * @return the new reference */ public static LazyReference computed(T value) { @@ -50,12 +51,14 @@ public class LazyReference { // it's no longer needed. private static final class RefInfo { + private final Lock lock = new ReentrantLock(); private final Supplier valueComputation; private RefInfo(Supplier valueComputation) { this.valueComputation = valueComputation; } + } private Object value; diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/eventbus/AnnotatedSubscriberFinder.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/eventbus/AnnotatedSubscriberFinder.java index f10f5277c..e2e7e80c3 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/eventbus/AnnotatedSubscriberFinder.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/eventbus/AnnotatedSubscriberFinder.java @@ -53,9 +53,9 @@ class AnnotatedSubscriberFinder implements SubscriberFindingStrategy { Class[] parameterTypes = method.getParameterTypes(); if (parameterTypes.length != 1) { throw new IllegalArgumentException( - "Method " + method + " has @Subscribe annotation, but requires " - + parameterTypes.length + " arguments. Event handler methods " - + "must require a single argument." + "Method " + method + " has @Subscribe annotation, but requires " + + parameterTypes.length + " arguments. Event handler methods " + + "must require a single argument." ); } Class eventType = parameterTypes[0]; diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/eventbus/EventBus.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/eventbus/EventBus.java index 34286db83..ccccb6728 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/eventbus/EventBus.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/eventbus/EventBus.java @@ -52,7 +52,7 @@ public final class EventBus { private final ReadWriteLock lock = new ReentrantReadWriteLock(); private final SetMultimap, EventHandler> handlersByType = - HashMultimap.create(); + HashMultimap.create(); /** * Strategy for finding handler methods in registered objects. Currently, @@ -66,7 +66,7 @@ public final class EventBus { /** * Registers the given handler for the given class to receive events. * - * @param clazz the event class to register + * @param clazz the event class to register * @param handler the handler to register */ public void subscribe(Class clazz, EventHandler handler) { @@ -98,7 +98,7 @@ public final class EventBus { /** * Unregisters the given handler for the given class. * - * @param clazz the class + * @param clazz the class * @param handler the handler */ public void unsubscribe(Class clazz, EventHandler handler) { @@ -144,7 +144,7 @@ public final class EventBus { /** * Unregisters all handler methods on a registered {@code object}. * - * @param object object whose handler methods should be unregistered. + * @param object object whose handler methods should be unregistered. * @throws IllegalArgumentException if the object was not previously registered. */ public void unregister(Object object) { @@ -156,7 +156,7 @@ public final class EventBus { * successfully after the event has been posted to all handlers, and * regardless of any exceptions thrown by handlers. * - * @param event event to post. + * @param event event to post. */ public void post(Object event) { List dispatching = new ArrayList<>(); @@ -185,8 +185,8 @@ public final class EventBus { /** * Dispatches {@code event} to the handler in {@code handler}. * - * @param event event to dispatch. - * @param handler handler that will call the handler. + * @param event event to dispatch. + * @param handler handler that will call the handler. */ private void dispatch(Object event, EventHandler handler) { try { diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/eventbus/HierarchyCache.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/eventbus/HierarchyCache.java index 92d35afcb..0286096be 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/eventbus/HierarchyCache.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/eventbus/HierarchyCache.java @@ -35,8 +35,8 @@ import java.util.Set; class HierarchyCache { private final LoadingCache, Set>> cache = CacheBuilder.newBuilder() - .weakKeys() - .build(CacheLoader.from(this::build)); + .weakKeys() + .build(CacheLoader.from(this::build)); public Set> get(Class concreteClass) { return cache.getUnchecked(concreteClass); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/eventbus/MethodEventHandler.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/eventbus/MethodEventHandler.java index 03f69fb5b..c4114677e 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/eventbus/MethodEventHandler.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/eventbus/MethodEventHandler.java @@ -35,7 +35,7 @@ public class MethodEventHandler extends EventHandler { * Create a new event handler. * * @param priority the priority - * @param method the method + * @param method the method */ public MethodEventHandler(Priority priority, Object object, Method method) { super(priority); @@ -72,11 +72,7 @@ public class MethodEventHandler extends EventHandler { if (!method.equals(that.method)) { return false; } - if (object != null ? !object.equals(that.object) : that.object != null) { - return false; - } - - return true; + return object != null ? object.equals(that.object) : that.object == null; } @Override @@ -85,4 +81,5 @@ public class MethodEventHandler extends EventHandler { result = 31 * result + method.hashCode(); return result; } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/eventbus/SubscriberFindingStrategy.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/eventbus/SubscriberFindingStrategy.java index f7a52634b..200357858 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/eventbus/SubscriberFindingStrategy.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/eventbus/SubscriberFindingStrategy.java @@ -31,12 +31,11 @@ interface SubscriberFindingStrategy { * Finds all suitable event handler methods in {@code source}, organizes them * by the type of event they handle, and wraps them in {@link EventHandler}s. * - * @param source object whose handlers are desired. + * @param source object whose handlers are desired. * @return EventHandler objects for each handler method, organized by event * type. - * * @throws IllegalArgumentException if {@code source} is not appropriate for - * this strategy (in ways that this interface does not define). + * this strategy (in ways that this interface does not define). */ Multimap, EventHandler> findAllSubscribers(Object source); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/formatting/WorldEditText.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/formatting/WorldEditText.java index fd50c81d7..3c3cc1c32 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/formatting/WorldEditText.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/formatting/WorldEditText.java @@ -29,6 +29,7 @@ import org.enginehub.piston.util.TextHelper; import java.util.Locale; public class WorldEditText { + private static final ConfigRenderer RENDERER = ConfigRenderer.getInstance(); public static final ConfigHolder CONFIG_HOLDER = ConfigHolder.create(); @@ -38,8 +39,8 @@ public class WorldEditText { public static Component format(Component component, Locale locale) { return WorldEdit.getInstance().getTranslationManager().convertText( - RENDERER.render(component, CONFIG_HOLDER), - locale + RENDERER.render(component, CONFIG_HOLDER), + locale ); } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/formatting/component/CodeFormat.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/formatting/component/CodeFormat.java index 6f3640d3e..9928d415b 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/formatting/component/CodeFormat.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/formatting/component/CodeFormat.java @@ -39,10 +39,11 @@ public class CodeFormat extends TextComponentProducer { */ public static TextComponent wrap(String... texts) { CodeFormat code = new CodeFormat(); - for (String text: texts) { + for (String text : texts) { code.append(text); } return code.create(); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/formatting/component/CommandListBox.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/formatting/component/CommandListBox.java index b9717c0d3..651c97e55 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/formatting/component/CommandListBox.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/formatting/component/CommandListBox.java @@ -76,6 +76,7 @@ public class CommandListBox extends PaginationBox { } private class CommandEntry { + private final String alias; private final Component description; private final String insertion; @@ -90,7 +91,10 @@ public class CommandListBox extends PaginationBox { TextComponentProducer line = new TextComponentProducer(); if (!hideHelp) { line.append(SubtleFormat.wrap("? ") - .clickEvent(ClickEvent.of(ClickEvent.Action.RUN_COMMAND, CommandListBox.this.helpCommand + " " + insertion)) + .clickEvent(ClickEvent.of( + ClickEvent.Action.RUN_COMMAND, + CommandListBox.this.helpCommand + " " + insertion + )) .hoverEvent(HoverEvent.of(HoverEvent.Action.SHOW_TEXT, TextComponent.of("Additional Help")))); } TextComponent command = TextComponent.of(alias, TextColor.GOLD); @@ -103,5 +107,7 @@ public class CommandListBox extends PaginationBox { } return line.append(TextComponent.of(": ")).append(description).create(); } + } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/formatting/component/CommandUsageBox.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/formatting/component/CommandUsageBox.java index 96c9ec2e6..e11bbc054 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/formatting/component/CommandUsageBox.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/formatting/component/CommandUsageBox.java @@ -29,8 +29,8 @@ import org.enginehub.piston.CommandParameters; import org.enginehub.piston.config.ColorConfig; import org.enginehub.piston.util.HelpGenerator; -import java.util.List; import javax.annotation.Nullable; +import java.util.List; import static com.google.common.base.Preconditions.checkNotNull; import static com.sk89q.worldedit.internal.command.CommandUtil.getSubCommands; @@ -43,24 +43,27 @@ public class CommandUsageBox extends TextComponentProducer { /** * Create a new usage box. * - * @param commands the commands to describe - * @param commandString the commands that were used, such as "/we" or "/brush sphere" + * @param commands the commands to describe + * @param commandString the commands that were used, such as "/we" or "/brush sphere" * @param helpRootCommand the command used to get subcommand help */ - public CommandUsageBox(List commands, String commandString, String helpRootCommand) throws InvalidComponentException { + public CommandUsageBox(List commands, String commandString, String helpRootCommand) throws + InvalidComponentException { this(commands, commandString, helpRootCommand, null); } /** * Create a new usage box. * - * @param commands the commands to describe - * @param commandString the commands that were used, such as "/we" or "/brush sphere" + * @param commands the commands to describe + * @param commandString the commands that were used, such as "/we" or "/brush sphere" * @param helpRootCommand the command used to get subcommand help - * @param parameters list of parameters to use + * @param parameters list of parameters to use */ - public CommandUsageBox(List commands, String commandString, String helpRootCommand, - @Nullable CommandParameters parameters) throws InvalidComponentException { + public CommandUsageBox( + List commands, String commandString, String helpRootCommand, + @Nullable CommandParameters parameters + ) throws InvalidComponentException { checkNotNull(commands); checkNotNull(commandString); checkNotNull(helpRootCommand); @@ -69,19 +72,21 @@ public class CommandUsageBox extends TextComponentProducer { private void attachCommandUsage(List commands, String commandString, String helpRootCommand) { TextComponentProducer boxContent = new TextComponentProducer() - .append(HelpGenerator.create(commands).getFullHelp()); + .append(HelpGenerator.create(commands).getFullHelp()); if (getSubCommands(Iterables.getLast(commands)).size() > 0) { boxContent.append(TextComponent.newline()) - .append(ColorConfig.helpText().wrap(TextComponent.builder("> ") - .append(ColorConfig.mainText().wrap(TextComponent.builder("List Subcommands") - .decoration(TextDecoration.ITALIC, true) - .clickEvent(ClickEvent.runCommand(helpRootCommand + " -s " + commandString)) - .hoverEvent(HoverEvent.showText(TextComponent.of("List all subcommands of this command"))) - .build())) - .build())); + .append(ColorConfig.helpText().wrap(TextComponent.builder("> ") + .append(ColorConfig.mainText().wrap(TextComponent.builder("List Subcommands") + .decoration(TextDecoration.ITALIC, true) + .clickEvent(ClickEvent.runCommand(helpRootCommand + " -s " + commandString)) + .hoverEvent(HoverEvent.showText(TextComponent.of("List all subcommands of this command"))) + .build())) + .build())); } - MessageBox box = new MessageBox("Help for " + commandString, - boxContent); + MessageBox box = new MessageBox( + "Help for " + commandString, + boxContent + ); append(box.create()); } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/formatting/component/ErrorFormat.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/formatting/component/ErrorFormat.java index 5b60afb3f..345e6c9d3 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/formatting/component/ErrorFormat.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/formatting/component/ErrorFormat.java @@ -48,4 +48,5 @@ public class ErrorFormat extends TextComponentProducer { return error.create(); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/formatting/component/InvalidComponentException.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/formatting/component/InvalidComponentException.java index 54965f763..793a1c3d6 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/formatting/component/InvalidComponentException.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/formatting/component/InvalidComponentException.java @@ -32,4 +32,5 @@ public class InvalidComponentException extends WorldEditException { public InvalidComponentException(Component message) { super(message); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/formatting/component/LabelFormat.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/formatting/component/LabelFormat.java index 4ca8c7879..8c124b6b3 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/formatting/component/LabelFormat.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/formatting/component/LabelFormat.java @@ -40,7 +40,7 @@ public class LabelFormat extends TextComponentProducer { * @param texts The text * @return The Component */ - public static TextComponent wrap(String ... texts) { + public static TextComponent wrap(String... texts) { LabelFormat label = new LabelFormat(); for (String component : texts) { label.append(component); @@ -48,4 +48,5 @@ public class LabelFormat extends TextComponentProducer { return label.create(); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/formatting/component/MessageBox.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/formatting/component/MessageBox.java index 585aa3a6f..c5ec74ef8 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/formatting/component/MessageBox.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/formatting/component/MessageBox.java @@ -83,7 +83,8 @@ public class MessageBox extends TextComponentProducer { private TextComponent createBorder(int count) { return TextComponent.of(Strings.repeat("-", count), - borderColor, Sets.newHashSet(TextDecoration.STRIKETHROUGH)); + borderColor, Sets.newHashSet(TextDecoration.STRIKETHROUGH) + ); } /** @@ -100,4 +101,5 @@ public class MessageBox extends TextComponentProducer { append(contents.create()); return super.create(); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/formatting/component/PaginationBox.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/formatting/component/PaginationBox.java index f0c3d0bcf..179fc05c0 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/formatting/component/PaginationBox.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/formatting/component/PaginationBox.java @@ -71,7 +71,7 @@ public abstract class PaginationBox extends MessageBox { /** * Creates a Paginated component * - * @param title The title + * @param title The title * @param pageCommand The command to run to switch page, with %page% representing page number */ protected PaginationBox(String title, @Nullable String pageCommand) { @@ -117,14 +117,20 @@ public abstract class PaginationBox extends MessageBox { TextComponentProducer navProducer = new TextComponentProducer(); if (page > 1) { TextComponent prevComponent = TextComponent.of("<<< ", TextColor.GOLD) - .clickEvent(ClickEvent.of(ClickEvent.Action.RUN_COMMAND, pageCommand.replace("%page%", String.valueOf(page - 1)))) + .clickEvent(ClickEvent.of( + ClickEvent.Action.RUN_COMMAND, + pageCommand.replace("%page%", String.valueOf(page - 1)) + )) .hoverEvent(HoverEvent.of(HoverEvent.Action.SHOW_TEXT, TextComponent.of("Click to navigate"))); navProducer.append(prevComponent); } navProducer.append(pageNumberComponent); if (page < pageCount) { TextComponent nextComponent = TextComponent.of(" >>>", TextColor.GOLD) - .clickEvent(ClickEvent.of(ClickEvent.Action.RUN_COMMAND, pageCommand.replace("%page%", String.valueOf(page + 1)))) + .clickEvent(ClickEvent.of( + ClickEvent.Action.RUN_COMMAND, + pageCommand.replace("%page%", String.valueOf(page + 1)) + )) .hoverEvent(HoverEvent.of(HoverEvent.Action.SHOW_TEXT, TextComponent.of("Click to navigate"))); navProducer.append(nextComponent); } @@ -140,14 +146,19 @@ public abstract class PaginationBox extends MessageBox { throw new IllegalStateException("Pagination components must be created with a page"); } - public static PaginationBox fromStrings(String header, @Nullable String pageCommand, Collection lines, Function adapt) { + public static PaginationBox fromStrings( + String header, + @Nullable String pageCommand, + Collection lines, + Function adapt + ) { return fromComponents(header, pageCommand, Collections2.transform(lines, adapt)); } public static PaginationBox fromStrings(String header, @Nullable String pageCommand, Collection lines) { return fromComponents(header, pageCommand, lines.stream() - .map(TextComponent::of) - .collect(Collectors.toList())); + .map(TextComponent::of) + .collect(Collectors.toList())); } public static PaginationBox fromComponents(String header, @Nullable String pageCommand, Collection lines) { @@ -155,6 +166,7 @@ public abstract class PaginationBox extends MessageBox { } private static class ListPaginationBox extends PaginationBox { + private final List lines; ListPaginationBox(String header, String pageCommand, Collection lines) { @@ -171,10 +183,12 @@ public abstract class PaginationBox extends MessageBox { public int getComponentsSize() { return lines.size(); } + } //FAWE start public static class MergedPaginationBox extends PaginationBox { + private final PaginationBox[] values; public MergedPaginationBox(String header, String pageCommand, PaginationBox... values) { @@ -212,6 +226,7 @@ public abstract class PaginationBox extends MessageBox { } return size; } + } //FAWE end } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/formatting/component/SideEffectBox.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/formatting/component/SideEffectBox.java index 79fad489b..c3d340807 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/formatting/component/SideEffectBox.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/formatting/component/SideEffectBox.java @@ -38,7 +38,7 @@ public class SideEffectBox extends PaginationBox { private static List sideEffects; - private SideEffectSet sideEffectSet; + private final SideEffectSet sideEffectSet; private static List getSideEffects() { //FAWE start @@ -72,7 +72,9 @@ public class SideEffectBox extends PaginationBox { for (SideEffect.State uiState : SHOWN_VALUES) { builder = builder.append(TextComponent.space()); builder = builder.append(Caption.of(uiState.getDisplayName(), uiState == state ? TextColor.WHITE : TextColor.GRAY) - .clickEvent(ClickEvent.runCommand("//perf -h " + effect.name().toLowerCase(Locale.US) + " " + uiState.name().toLowerCase(Locale.US))) + .clickEvent(ClickEvent.runCommand("//perf -h " + effect.name().toLowerCase(Locale.US) + " " + uiState + .name() + .toLowerCase(Locale.US))) .hoverEvent(HoverEvent.showText(uiState == state ? Caption.of("worldedit.sideeffect.box.current") : Caption.of("worldedit.sideeffect.box.change-to", Caption.of(uiState.getDisplayName())) @@ -87,4 +89,5 @@ public class SideEffectBox extends PaginationBox { public int getComponentsSize() { return getSideEffects().size(); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/formatting/component/SubtleFormat.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/formatting/component/SubtleFormat.java index 735b6cf40..a38b7db9a 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/formatting/component/SubtleFormat.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/formatting/component/SubtleFormat.java @@ -48,4 +48,5 @@ public class SubtleFormat extends TextComponentProducer { return subtle.create(); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/formatting/component/TextComponentProducer.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/formatting/component/TextComponentProducer.java index e6018fb4e..31683586c 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/formatting/component/TextComponentProducer.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/formatting/component/TextComponentProducer.java @@ -80,4 +80,5 @@ public class TextComponentProducer { builder = TextComponent.builder().content(""); return this; } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/formatting/component/TextUtils.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/formatting/component/TextUtils.java index f8e869666..a660bc177 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/formatting/component/TextUtils.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/formatting/component/TextUtils.java @@ -34,7 +34,7 @@ public class TextUtils { * Join an array of components with a joiner component. * * @param components The components to join - * @param joiner The joiner component + * @param joiner The joiner component * @return The joined component */ public static Component join(List components, Component joiner) { @@ -57,4 +57,5 @@ public class TextUtils { public static Locale getLocaleByMinecraftTag(String locale) { return Locale.forLanguageTag(locale.replace('_', '-')); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/function/LevenshteinDistance.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/function/LevenshteinDistance.java index 0fdf93185..7595d75e6 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/function/LevenshteinDistance.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/function/LevenshteinDistance.java @@ -21,9 +21,9 @@ package com.sk89q.worldedit.util.function; import com.google.common.base.Function; +import javax.annotation.Nullable; import java.util.Locale; import java.util.regex.Pattern; -import javax.annotation.Nullable; import static com.google.common.base.Preconditions.checkNotNull; @@ -42,7 +42,7 @@ public class LevenshteinDistance implements Function { /** * Create a new instance. * - * @param baseString the string to compare to + * @param baseString the string to compare to * @param caseSensitive true to make case sensitive comparisons */ public LevenshteinDistance(String baseString, boolean caseSensitive) { @@ -52,8 +52,8 @@ public class LevenshteinDistance implements Function { /** * Create a new instance. * - * @param baseString the string to compare to - * @param caseSensitive true to make case sensitive comparisons + * @param baseString the string to compare to + * @param caseSensitive true to make case sensitive comparisons * @param replacePattern pattern to match characters to be removed in both the input and test strings (may be null) */ public LevenshteinDistance(String baseString, boolean caseSensitive, @Nullable Pattern replacePattern) { @@ -112,8 +112,8 @@ public class LevenshteinDistance implements Function { * distance("hello", "hallo") = 1 * * - * @param s the first String, must not be null - * @param t the second String, must not be null + * @param s the first String, must not be null + * @param t the second String, must not be null * @return result distance * @throws IllegalArgumentException if either String input {@code null} */ diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/gson/BlockVectorAdapter.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/gson/BlockVectorAdapter.java index ac6a6387b..00ae22f16 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/gson/BlockVectorAdapter.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/gson/BlockVectorAdapter.java @@ -31,7 +31,8 @@ import java.lang.reflect.Type; public class BlockVectorAdapter implements JsonDeserializer { @Override - public BlockVector3 deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException { + public BlockVector3 deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws + JsonParseException { JsonArray jsonArray = json.getAsJsonArray(); if (jsonArray.size() != 3) { throw new JsonParseException("Expected array of 3 length for BlockVector3"); @@ -43,4 +44,5 @@ public class BlockVectorAdapter implements JsonDeserializer { return BlockVector3.at(x, y, z); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/gson/GsonUtil.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/gson/GsonUtil.java index d780ea361..9b9a9a6e5 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/gson/GsonUtil.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/gson/GsonUtil.java @@ -45,7 +45,9 @@ public final class GsonUtil { } private static final Gson gson = new Gson(); + public static String stringValue(String s) { return gson.toJson(s); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/gson/VectorAdapter.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/gson/VectorAdapter.java index cb48789bb..c198fce44 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/gson/VectorAdapter.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/gson/VectorAdapter.java @@ -46,4 +46,5 @@ public class VectorAdapter implements JsonDeserializer { return Vector3.at(x, y, z); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/io/Closer.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/io/Closer.java index b9600ca04..49e5a7dbc 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/io/Closer.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/io/Closer.java @@ -59,7 +59,8 @@ public final class Closer implements Closeable { private final Deque zipStack = new ArrayDeque<>(4); private Throwable thrown; - @VisibleForTesting Closer(Suppressor suppressor) { + @VisibleForTesting + Closer(Suppressor suppressor) { this.suppressor = checkNotNull(suppressor); // checkNotNull to satisfy null tests } @@ -139,10 +140,12 @@ public final class Closer implements Closeable { * * @return this method does not return; it always throws * @throws IOException when the given throwable is an IOException - * @throws X when the given throwable is of the declared type X + * @throws X when the given throwable is of the declared type X */ - public RuntimeException rethrow(Throwable e, - Class declaredType) throws IOException, X { + public RuntimeException rethrow( + Throwable e, + Class declaredType + ) throws IOException, X { thrown = e; Throwables.propagateIfPossible(e, IOException.class); Throwables.propagateIfPossible(e, declaredType); @@ -162,11 +165,12 @@ public final class Closer implements Closeable { * * @return this method does not return; it always throws * @throws IOException when the given throwable is an IOException - * @throws X1 when the given throwable is of the declared type X1 - * @throws X2 when the given throwable is of the declared type X2 + * @throws X1 when the given throwable is of the declared type X1 + * @throws X2 when the given throwable is of the declared type X2 */ public RuntimeException rethrow( - Throwable e, Class declaredType1, Class declaredType2) throws IOException, X1, X2 { + Throwable e, Class declaredType1, Class declaredType2 + ) throws IOException, X1, X2 { thrown = e; Throwables.propagateIfPossible(e, IOException.class); Throwables.propagateIfPossible(e, declaredType1, declaredType2); @@ -220,19 +224,23 @@ public final class Closer implements Closeable { /** * Suppression strategy interface. */ - @VisibleForTesting interface Suppressor { + @VisibleForTesting + interface Suppressor { + /** * Suppresses the given exception ({@code suppressed}) which was thrown when attempting to close * the given closeable. {@code thrown} is the exception that is actually being thrown from the * method. Implementations of this method should not throw under any circumstances. */ void suppress(Object closeable, Throwable thrown, Throwable suppressed); + } /** * Suppresses exceptions by logging them. */ - @VisibleForTesting static final class LoggingSuppressor implements Suppressor { + @VisibleForTesting + static final class LoggingSuppressor implements Suppressor { static final LoggingSuppressor INSTANCE = new LoggingSuppressor(); @@ -241,13 +249,15 @@ public final class Closer implements Closeable { // log to the same place as Closeables LOGGER.warn("Suppressing exception thrown when closing " + closeable, suppressed); } + } /** * Suppresses exceptions by adding them to the exception that will be thrown using JDK7's * addSuppressed(Throwable) mechanism. */ - @VisibleForTesting static final class SuppressingSuppressor implements Suppressor { + @VisibleForTesting + static final class SuppressingSuppressor implements Suppressor { static final SuppressingSuppressor INSTANCE = new SuppressingSuppressor(); @@ -278,5 +288,7 @@ public final class Closer implements Closeable { LoggingSuppressor.INSTANCE.suppress(closeable, thrown, suppressed); } } + } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/io/ForwardSeekableInputStream.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/io/ForwardSeekableInputStream.java index 3fb87bde3..585eaa00e 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/io/ForwardSeekableInputStream.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/io/ForwardSeekableInputStream.java @@ -99,4 +99,5 @@ public class ForwardSeekableInputStream extends InputStream { throw new IOException("Failed to seek " + diff + " bytes"); } } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/io/ResourceLoader.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/io/ResourceLoader.java index 4e7a31f3c..02952561f 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/io/ResourceLoader.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/io/ResourceLoader.java @@ -19,10 +19,10 @@ package com.sk89q.worldedit.util.io; +import javax.annotation.Nullable; import java.io.IOException; import java.net.URL; import java.nio.file.Path; -import javax.annotation.Nullable; import static com.google.common.base.Preconditions.checkArgument; @@ -39,7 +39,7 @@ public interface ResourceLoader { * The path name must not start with {@code /}. *

    * - * @param clazz The class to search relative to + * @param clazz The class to search relative to * @param pathName The path name * @return The URL to this bundled resource * @throws IOException if an IO issue occurs @@ -48,7 +48,7 @@ public interface ResourceLoader { default URL getResource(Class clazz, String pathName) throws IOException { checkArgument(!pathName.startsWith("/"), "pathName must not start with /"); String qualifiedName = clazz.getName().substring(0, clazz.getName().lastIndexOf('.')) - .replace(".", "/") + "/" + pathName; + .replace(".", "/") + "/" + pathName; return getRootResource(qualifiedName); } @@ -78,4 +78,5 @@ public interface ResourceLoader { * @return The path reference */ Path getLocalResource(String pathName); + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/io/WorldEditResourceLoader.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/io/WorldEditResourceLoader.java index 65a569d7e..5c4cd15b8 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/io/WorldEditResourceLoader.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/io/WorldEditResourceLoader.java @@ -35,4 +35,5 @@ public class WorldEditResourceLoader implements ResourceLoader { public Path getLocalResource(String pathName) { return this.worldEdit.getWorkingDirectoryPath(pathName); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/io/file/ArchiveNioSupports.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/io/file/ArchiveNioSupports.java index 512f887eb..48be6809e 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/io/file/ArchiveNioSupports.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/io/file/ArchiveNioSupports.java @@ -36,8 +36,8 @@ public class ArchiveNioSupports { static { ImmutableList.Builder builder = ImmutableList.builder(); SUPPORTS = builder.add(ZipArchiveNioSupport.getInstance()) - .addAll(ServiceLoader.load(ArchiveNioSupport.class)) - .build(); + .addAll(ServiceLoader.load(ArchiveNioSupport.class)) + .build(); } public static Optional tryOpenAsDir(Path archive) throws IOException { @@ -54,6 +54,7 @@ public class ArchiveNioSupports { /** * Get an {@link ArchiveNioSupport} that combines all known instances. + * * @return a combined {@link ArchiveNioSupport} instance */ public static ArchiveNioSupport combined() { @@ -91,4 +92,5 @@ public class ArchiveNioSupports { private ArchiveNioSupports() { } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/io/file/AttributeTarget.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/io/file/AttributeTarget.java index 6f12c9492..115537bbe 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/io/file/AttributeTarget.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/io/file/AttributeTarget.java @@ -20,5 +20,6 @@ package com.sk89q.worldedit.util.io.file; public enum AttributeTarget { - FILE, DIRECTORY + FILE, + DIRECTORY } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/io/file/FileSelectionAbortedException.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/io/file/FileSelectionAbortedException.java index 3cf4bb8d2..a9a8687be 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/io/file/FileSelectionAbortedException.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/io/file/FileSelectionAbortedException.java @@ -35,4 +35,5 @@ public class FileSelectionAbortedException extends FilenameException { public FileSelectionAbortedException(Component msg) { super("", msg); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/io/file/MorePaths.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/io/file/MorePaths.java index 9034b26dc..193e6af53 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/io/file/MorePaths.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/io/file/MorePaths.java @@ -84,4 +84,5 @@ public class MorePaths { private MorePaths() { } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/io/file/SafeFiles.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/io/file/SafeFiles.java index 61dad4039..1cb59f59e 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/io/file/SafeFiles.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/io/file/SafeFiles.java @@ -21,6 +21,7 @@ package com.sk89q.worldedit.util.io.file; import com.google.common.collect.ImmutableSet; +import javax.annotation.Nullable; import java.io.IOException; import java.nio.file.FileSystems; import java.nio.file.Files; @@ -32,7 +33,6 @@ import java.util.Iterator; import java.util.List; import java.util.stream.Collectors; import java.util.stream.Stream; -import javax.annotation.Nullable; public class SafeFiles { @@ -151,7 +151,7 @@ public class SafeFiles { static { if (FileSystems.getDefault().supportedFileAttributeViews().contains("posix")) { - OWNER_ONLY_FILE_ATTRS = new FileAttribute[] { + OWNER_ONLY_FILE_ATTRS = new FileAttribute[]{ PosixFilePermissions.asFileAttribute( ImmutableSet.of( PosixFilePermission.OWNER_READ, @@ -159,7 +159,7 @@ public class SafeFiles { ) ) }; - OWNER_ONLY_DIR_ATTRS = new FileAttribute[] { + OWNER_ONLY_DIR_ATTRS = new FileAttribute[]{ PosixFilePermissions.asFileAttribute( ImmutableSet.of( PosixFilePermission.OWNER_READ, @@ -196,4 +196,5 @@ public class SafeFiles { private SafeFiles() { } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/io/file/ZipArchiveNioSupport.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/io/file/ZipArchiveNioSupport.java index 0a60d3da3..320ecf2e1 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/io/file/ZipArchiveNioSupport.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/io/file/ZipArchiveNioSupport.java @@ -42,11 +42,11 @@ public final class ZipArchiveNioSupport implements ArchiveNioSupport { return Optional.empty(); } FileSystem zipFs = FileSystems.newFileSystem( - archive, getClass().getClassLoader() + archive, getClass().getClassLoader() ); Path root = ArchiveNioSupports.skipRootSameName( - zipFs.getPath("/"), archive.getFileName().toString() - .replaceFirst("\\.zip$", "") + zipFs.getPath("/"), archive.getFileName().toString() + .replaceFirst("\\.zip$", "") ); return Optional.of(new ArchiveDir() { @Override diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/lifecycle/ConstantLifecycled.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/lifecycle/ConstantLifecycled.java index 41cb21022..d274d5ee4 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/lifecycle/ConstantLifecycled.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/lifecycle/ConstantLifecycled.java @@ -27,6 +27,7 @@ import java.util.function.BiConsumer; * A {@link Lifecycled} that never invalidates. */ public final class ConstantLifecycled implements Lifecycled { + private final T value; public ConstantLifecycled(T value) { @@ -52,4 +53,5 @@ public final class ConstantLifecycled implements Lifecycled { } }; } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/lifecycle/FlatMapLifecycled.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/lifecycle/FlatMapLifecycled.java index 9c0fd63d8..2717de238 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/lifecycle/FlatMapLifecycled.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/lifecycle/FlatMapLifecycled.java @@ -19,11 +19,12 @@ package com.sk89q.worldedit.util.lifecycle; +import javax.annotation.Nullable; import java.util.Optional; import java.util.function.Function; -import javax.annotation.Nullable; class FlatMapLifecycled implements Lifecycled { + private final LifecycledCallbackHandler events = new LifecycledCallbackHandler<>(this); private Lifecycled mapped; private Token> mappedToken; @@ -77,4 +78,5 @@ class FlatMapLifecycled implements Lifecycled { public Events events() { return events; } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/lifecycle/Lifecycled.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/lifecycle/Lifecycled.java index d9d2c7f49..1269c6c1e 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/lifecycle/Lifecycled.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/lifecycle/Lifecycled.java @@ -51,6 +51,7 @@ import java.util.function.Predicate; public interface Lifecycled { interface Events { + /** * Add a callback for when this lifecycled is given a new value. Will be called immediately * if this lifecycled is currently valid. @@ -61,7 +62,7 @@ public interface Lifecycled { * loop. *

    * - * @param owner when the owner is GC'd, the callback is removed + * @param owner when the owner is GC'd, the callback is removed * @param callback the callback, will be passed the lifecycled object */ void onNewValue(O owner, BiConsumer> callback); @@ -76,10 +77,11 @@ public interface Lifecycled { * loop. *

    * - * @param owner when the owner is GC'd, the callback is removed + * @param owner when the owner is GC'd, the callback is removed * @param callback the callback, will be passed the lifecycled object */ void onInvalidated(O owner, BiConsumer> callback); + } /** @@ -119,7 +121,7 @@ public interface Lifecycled { * Map the value. * * @param mapper the mapper function - * @param the new type + * @param the new type * @return the downstream lifecycled */ default Lifecycled map(Function mapper) { @@ -148,4 +150,5 @@ public interface Lifecycled { default Lifecycled flatMap(Function> mapper) { return new FlatMapLifecycled<>(this, mapper); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/lifecycle/LifecycledCallbackHandler.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/lifecycle/LifecycledCallbackHandler.java index f4181de80..81a210d27 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/lifecycle/LifecycledCallbackHandler.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/lifecycle/LifecycledCallbackHandler.java @@ -29,6 +29,7 @@ import java.util.function.BiConsumer; * Convenience class for implementing the callbacks of {@link Lifecycled}. */ public class LifecycledCallbackHandler implements Lifecycled.Events { + private final Lifecycled lifecycled; private final Lock lock = new ReentrantLock(); private final Map>> onInvalidatedCallbacks = @@ -111,4 +112,5 @@ public class LifecycledCallbackHandler implements Lifecycled.Events { lock.unlock(); } } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/lifecycle/MapLifecycled.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/lifecycle/MapLifecycled.java index a7ed07bb8..22427a191 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/lifecycle/MapLifecycled.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/lifecycle/MapLifecycled.java @@ -19,12 +19,13 @@ package com.sk89q.worldedit.util.lifecycle; +import javax.annotation.Nullable; import java.util.Objects; import java.util.Optional; import java.util.function.Function; -import javax.annotation.Nullable; class MapLifecycled implements Lifecycled { + private final LifecycledCallbackHandler events = new LifecycledCallbackHandler<>(this); private final Lifecycled upstream; private final Function mapper; @@ -43,7 +44,7 @@ class MapLifecycled implements Lifecycled { this$.events.fireInvalidated(); } }); - upstream.events().onNewValue(this, (this$, __) -> { + upstream.events().onNewValue(this, (this$, __) -> { boolean fire = !this$.computable; this$.computable = true; if (fire) { @@ -79,4 +80,5 @@ class MapLifecycled implements Lifecycled { public Events events() { return events; } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/lifecycle/SimpleLifecycled.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/lifecycle/SimpleLifecycled.java index 2c97d4850..f5fd5ea00 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/lifecycle/SimpleLifecycled.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/lifecycle/SimpleLifecycled.java @@ -19,15 +19,16 @@ package com.sk89q.worldedit.util.lifecycle; +import javax.annotation.Nullable; import java.util.Objects; import java.util.Optional; -import javax.annotation.Nullable; /** * A {@link Lifecycled} that can be directly called to {@linkplain #invalidate() invalidate} it or * set a {@linkplain #newValue(Object) new value}. */ public final class SimpleLifecycled implements Lifecycled { + public static SimpleLifecycled valid(T value) { return new SimpleLifecycled<>(Objects.requireNonNull(value)); } @@ -76,4 +77,5 @@ public final class SimpleLifecycled implements Lifecycled { public Events events() { return events; } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/lifecycle/Token.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/lifecycle/Token.java index b721ec87c..386acec29 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/lifecycle/Token.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/lifecycle/Token.java @@ -25,9 +25,11 @@ package com.sk89q.worldedit.util.lifecycle; * @param the inner object */ class Token { + final T inner; Token(T inner) { this.inner = inner; } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/logging/DynamicStreamHandler.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/logging/DynamicStreamHandler.java index 4a36e2a6b..b6f9c2c45 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/logging/DynamicStreamHandler.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/logging/DynamicStreamHandler.java @@ -19,6 +19,7 @@ package com.sk89q.worldedit.util.logging; +import javax.annotation.Nullable; import java.io.UnsupportedEncodingException; import java.util.logging.Filter; import java.util.logging.Formatter; @@ -26,7 +27,6 @@ import java.util.logging.Level; import java.util.logging.LogRecord; import java.util.logging.SimpleFormatter; import java.util.logging.StreamHandler; -import javax.annotation.Nullable; /** * A {@link StreamHandler} delegate that allows for the swap and disable of diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/logging/LogFormat.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/logging/LogFormat.java index a67de7368..5ed85113a 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/logging/LogFormat.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/logging/LogFormat.java @@ -29,6 +29,7 @@ import java.util.logging.LogRecord; * A standard logging format for WorldEdit. */ public class LogFormat extends Formatter { + public static final String DEFAULT_FORMAT = "[%1$tY-%1$tm-%1$td %1$tH:%1$tM:%1$tS %4$s]: %5$s%6$s%n"; private final Date dat = new Date(); private final String format; @@ -72,12 +73,15 @@ public class LogFormat extends Formatter { pw.close(); throwable = sw.toString(); } - return String.format(format, + return String.format( + format, dat, source, record.getLoggerName(), record.getLevel().getName(), message, - throwable); + throwable + ); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/net/HttpRequest.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/net/HttpRequest.java index 74be79bfc..e9e457f8a 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/net/HttpRequest.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/net/HttpRequest.java @@ -45,8 +45,6 @@ import java.util.LinkedHashMap; import java.util.Map; import java.util.concurrent.ThreadLocalRandom; -import static com.google.common.base.Preconditions.checkState; - public class HttpRequest implements Closeable { private static final int CONNECT_TIMEOUT = 1000 * 5; @@ -170,8 +168,8 @@ public class HttpRequest implements Closeable { } inputStream = conn.getResponseCode() == HttpURLConnection.HTTP_OK - ? conn.getInputStream() - : conn.getErrorStream(); + ? conn.getInputStream() + : conn.getErrorStream(); successful = true; } finally { @@ -376,7 +374,8 @@ public class HttpRequest implements Closeable { URL url = new URL(existing.toString()); URI uri = new URI( url.getProtocol(), url.getUserInfo(), url.getHost(), url.getPort(), - url.getPath(), url.getQuery(), url.getRef()); + url.getPath(), url.getQuery(), url.getRef() + ); url = uri.toURL(); return url; } catch (MalformedURLException | URISyntaxException e) { @@ -390,13 +389,13 @@ public class HttpRequest implements Closeable { public static final class Form { private static final Joiner.MapJoiner URL_ENCODER = Joiner.on('&') - .withKeyValueSeparator('='); + .withKeyValueSeparator('='); private static final Joiner CRLF_JOINER = Joiner.on("\r\n"); public final Map elements = new LinkedHashMap<>(); private final String formDataSeparator = "EngineHubFormData" - + ThreadLocalRandom.current().nextInt(10000, 99999); + + ThreadLocalRandom.current().nextInt(10000, 99999); private Form() { } @@ -423,12 +422,12 @@ public class HttpRequest implements Closeable { for (Map.Entry element : elements.entrySet()) { CRLF_JOINER.appendTo( - builder, - separatorWithDashes, - "Content-Disposition: form-data; name=\"" + element.getKey() + "\"", - "", - element.getValue(), - "" + builder, + separatorWithDashes, + "Content-Disposition: form-data; name=\"" + element.getKey() + "\"", + "", + element.getValue(), + "" ); } @@ -439,12 +438,12 @@ public class HttpRequest implements Closeable { public String toUrlEncodedString() { return URL_ENCODER.join( - elements.entrySet().stream() - .map(e -> Maps.immutableEntry( - UrlEscapers.urlFormParameterEscaper().escape(e.getKey()), - UrlEscapers.urlFormParameterEscaper().escape(e.getValue()) - )) - .iterator() + elements.entrySet().stream() + .map(e -> Maps.immutableEntry( + UrlEscapers.urlFormParameterEscaper().escape(e.getKey()), + UrlEscapers.urlFormParameterEscaper().escape(e.getValue()) + )) + .iterator() ); } @@ -456,12 +455,14 @@ public class HttpRequest implements Closeable { public static Form create() { return new Form(); } + } /** * Used to buffer the response in memory. */ public class BufferedResponse { + private final byte[] data; private BufferedResponse(byte[] data) { @@ -525,6 +526,7 @@ public class HttpRequest implements Closeable { return this; } + } } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/paste/ActorCallbackPaste.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/paste/ActorCallbackPaste.java index a0e261451..680dbed0d 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/paste/ActorCallbackPaste.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/paste/ActorCallbackPaste.java @@ -40,9 +40,9 @@ public final class ActorCallbackPaste { * Submit data to a pastebin service and inform the sender of * success or failure. * - * @param supervisor The supervisor instance - * @param sender The sender - * @param content The content + * @param supervisor The supervisor instance + * @param sender The sender + * @param content The content * @param successMessage The message, formatted with {@link String#format(String, Object...)} on success * @deprecated Use the Component-based version */ @@ -62,12 +62,17 @@ public final class ActorCallbackPaste { * Submit data to a pastebin service and inform the sender of * success or failure. * - * @param supervisor The supervisor instance - * @param sender The sender - * @param content The content + * @param supervisor The supervisor instance + * @param sender The sender + * @param content The content * @param successMessage The message builder, given the URL as an arg */ - public static void pastebin(Supervisor supervisor, final Actor sender, String content, final TranslatableComponent.Builder successMessage) { + public static void pastebin( + Supervisor supervisor, + final Actor sender, + String content, + final TranslatableComponent.Builder successMessage + ) { Callable task = paster.paste(content); AsyncCommandBuilder.wrap(task, sender) diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/paste/EngineHubPaste.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/paste/EngineHubPaste.java index 7416d8c3c..f9bf84375 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/paste/EngineHubPaste.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/paste/EngineHubPaste.java @@ -38,6 +38,7 @@ public class EngineHubPaste implements Paster { } private static final class PasteTask implements Callable { + private final String content; private PasteTask(String content) { @@ -49,10 +50,10 @@ public class EngineHubPaste implements Paster { URL initialUrl = HttpRequest.url("https://paste.enginehub.org/signed_paste"); SignedPasteResponse response = GSON.fromJson(HttpRequest.get(initialUrl) - .execute() - .expectResponseCode(200) - .returnContent() - .asString("UTF-8"), TypeToken.get(SignedPasteResponse.class).getType()); + .execute() + .expectResponseCode(200) + .returnContent() + .asString("UTF-8"), TypeToken.get(SignedPasteResponse.class).getType()); HttpRequest.Form form = HttpRequest.Form.create(); for (Map.Entry entry : response.uploadFields.entrySet()) { @@ -69,11 +70,15 @@ public class EngineHubPaste implements Paster { return new URL(response.viewUrl); } + } private static final class SignedPasteResponse { + String viewUrl; String uploadUrl; Map uploadFields; + } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/paste/Pasters.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/paste/Pasters.java index 430aac42c..8d3e2e9d1 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/paste/Pasters.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/paste/Pasters.java @@ -32,7 +32,8 @@ final class Pasters { MoreExecutors.listeningDecorator( new ThreadPoolExecutor(0, Integer.MAX_VALUE, 2L, TimeUnit.SECONDS, - new SynchronousQueue<>())); + new SynchronousQueue<>() + )); private Pasters() { } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/report/DataReport.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/report/DataReport.java index a871c5f16..8a18f07b3 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/report/DataReport.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/report/DataReport.java @@ -169,6 +169,7 @@ public class DataReport implements Report { } private static class Line { + private final String key; private final String value; @@ -176,6 +177,7 @@ public class DataReport implements Report { this.key = key; this.value = value; } + } } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/report/HierarchyObjectReport.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/report/HierarchyObjectReport.java index b2fff9e8d..581860770 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/report/HierarchyObjectReport.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/report/HierarchyObjectReport.java @@ -29,4 +29,5 @@ public class HierarchyObjectReport extends ShallowObjectReport { scanClass(object, type); } } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/report/ReportList.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/report/ReportList.java index 7ee4b5244..962e31bf5 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/report/ReportList.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/report/ReportList.java @@ -174,7 +174,7 @@ public class ReportList implements Report, List { .append(report.getTitle()) .append("\n================================") .append("\n\n") - .append(report.toString()) + .append(report) .append("\n\n"); } return builder.toString(); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/report/ShallowObjectReport.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/report/ShallowObjectReport.java index 7f6bc2715..760700c0b 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/report/ShallowObjectReport.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/report/ShallowObjectReport.java @@ -57,4 +57,5 @@ public class ShallowObjectReport extends DataReport { } } } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/report/SystemInfoReport.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/report/SystemInfoReport.java index ccb5d8435..4b111d7cc 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/report/SystemInfoReport.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/report/SystemInfoReport.java @@ -44,11 +44,13 @@ public class SystemInfoReport extends DataReport { append("Java", "%s %s (%s)", System.getProperty("java.vendor"), System.getProperty("java.version"), - System.getProperty("java.vendor.url")); + System.getProperty("java.vendor.url") + ); append("Operating System", "%s %s (%s)", System.getProperty("os.name"), System.getProperty("os.version"), - System.getProperty("os.arch")); + System.getProperty("os.arch") + ); append("Available Processors", runtime.availableProcessors()); append("Free Memory", runtime.freeMemory() / 1024 / 1024 + " MB"); append("Max Memory", runtime.maxMemory() / 1024 / 1024 + " MB"); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/report/Unreported.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/report/Unreported.java index db8e93072..d87e31dcb 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/report/Unreported.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/report/Unreported.java @@ -30,4 +30,5 @@ import java.lang.annotation.Target; @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.FIELD) public @interface Unreported { + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/task/AbstractTask.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/task/AbstractTask.java index 14b77736b..5749240e7 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/task/AbstractTask.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/task/AbstractTask.java @@ -21,9 +21,9 @@ package com.sk89q.worldedit.util.task; import com.google.common.util.concurrent.AbstractFuture; +import javax.annotation.Nullable; import java.util.Date; import java.util.UUID; -import javax.annotation.Nullable; import static com.google.common.base.Preconditions.checkNotNull; @@ -42,7 +42,7 @@ public abstract class AbstractTask extends AbstractFuture implements Task< /** * Create a new instance. * - * @param name the name + * @param name the name * @param owner the owner */ protected AbstractTask(String name, @Nullable Object owner) { @@ -71,4 +71,5 @@ public abstract class AbstractTask extends AbstractFuture implements Task< public Date getCreationDate() { return creationDate; } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/task/FutureForwardingTask.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/task/FutureForwardingTask.java index 07cde87f1..fcf0bd661 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/task/FutureForwardingTask.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/task/FutureForwardingTask.java @@ -22,11 +22,11 @@ package com.sk89q.worldedit.util.task; import com.google.common.util.concurrent.ListenableFuture; import com.sk89q.worldedit.util.task.progress.Progress; +import javax.annotation.Nullable; import java.util.concurrent.ExecutionException; import java.util.concurrent.Executor; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; -import javax.annotation.Nullable; import static com.google.common.base.Preconditions.checkNotNull; @@ -109,9 +109,9 @@ public class FutureForwardingTask extends AbstractTask { * Create a new instance. * * @param future the future - * @param name the name of the task - * @param owner the owner of the task, or {@code null} - * @param the type returned by the future + * @param name the name of the task + * @param owner the owner of the task, or {@code null} + * @param the type returned by the future * @return a new instance */ public static FutureForwardingTask create(ListenableFuture future, String name, @Nullable Object owner) { diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/task/Task.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/task/Task.java index bbebfb07e..fd26c2649 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/task/Task.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/task/Task.java @@ -22,9 +22,9 @@ package com.sk89q.worldedit.util.task; import com.google.common.util.concurrent.ListenableFuture; import com.sk89q.worldedit.util.task.progress.ProgressObservable; +import javax.annotation.Nullable; import java.util.Date; import java.util.UUID; -import javax.annotation.Nullable; /** * A task is a job that can be scheduled, run, or cancelled. Tasks can report diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/task/progress/ProgressIterator.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/task/progress/ProgressIterator.java index 26ceb12b0..fe93ca696 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/task/progress/ProgressIterator.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/task/progress/ProgressIterator.java @@ -44,7 +44,7 @@ public class ProgressIterator implements Iterator, ProgressObservable { * Create a new instance. * * @param iterator the iterator - * @param count the count + * @param count the count */ private ProgressIterator(Iterator iterator, int count) { checkNotNull(iterator); @@ -78,8 +78,8 @@ public class ProgressIterator implements Iterator, ProgressObservable { * Create a new instance. * * @param iterator the iterator - * @param count the number of objects - * @param the type + * @param count the number of objects + * @param the type * @return an instance */ public static ProgressIterator create(Iterator iterator, int count) { @@ -90,7 +90,7 @@ public class ProgressIterator implements Iterator, ProgressObservable { * Create a new instance from a list. * * @param list a list - * @param the type + * @param the type * @return an instance */ public static ProgressIterator create(List list) { diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/time/FileNameDateTimeParser.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/time/FileNameDateTimeParser.java index 2f9d2ebcd..d3d4d9997 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/time/FileNameDateTimeParser.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/time/FileNameDateTimeParser.java @@ -22,13 +22,13 @@ package com.sk89q.worldedit.util.time; import com.google.common.collect.Streams; import com.sk89q.worldedit.util.io.file.MorePaths; +import javax.annotation.Nullable; import java.nio.file.Path; import java.time.ZoneId; import java.time.ZonedDateTime; import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.stream.StreamSupport; -import javax.annotation.Nullable; /** * Parses date-times by looking at the file name. File names without a time @@ -65,11 +65,11 @@ public class FileNameDateTimeParser implements SnapshotDateTimeParser { private static final String SEP = "[ \\-_:]"; private static final Pattern BASIC_FILTER = Pattern.compile( - "^(?\\d{4})" + SEP + "(?\\d{1,2})" + SEP + "(?\\d{1,2})" - // Optionally: - + "(?:" + "[ \\-_:T]" - + "(?\\d{1,2})" + SEP + "(?\\d{1,2})" + SEP + "(?\\d{1,2})" - + ")?" + "^(?\\d{4})" + SEP + "(?\\d{1,2})" + SEP + "(?\\d{1,2})" + // Optionally: + + "(?:" + "[ \\-_:T]" + + "(?\\d{1,2})" + SEP + "(?\\d{1,2})" + SEP + "(?\\d{1,2})" + + ")?" ); private FileNameDateTimeParser() { @@ -80,9 +80,9 @@ public class FileNameDateTimeParser implements SnapshotDateTimeParser { public ZonedDateTime detectDateTime(Path path) { // Make this perform a little better: Matcher matcher = Streams.findLast( - StreamSupport.stream(MorePaths.optimizedSpliterator(path), false) - .map(p -> BASIC_FILTER.matcher(p.toString())) - .filter(Matcher::find) + StreamSupport.stream(MorePaths.optimizedSpliterator(path), false) + .map(p -> BASIC_FILTER.matcher(p.toString())) + .filter(Matcher::find) ).orElse(null); if (matcher != null) { int year = matchAndParseOrZero(matcher, "year"); @@ -92,7 +92,8 @@ public class FileNameDateTimeParser implements SnapshotDateTimeParser { int minute = matchAndParseOrZero(matcher, "minute"); int second = matchAndParseOrZero(matcher, "second"); return ZonedDateTime.of(year, month, day, hour, minute, second, - 0, ZoneId.systemDefault()); + 0, ZoneId.systemDefault() + ); } return null; } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/time/SnapshotDateTimeParser.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/time/SnapshotDateTimeParser.java index fad3bfbf9..e1788c40e 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/time/SnapshotDateTimeParser.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/time/SnapshotDateTimeParser.java @@ -19,9 +19,9 @@ package com.sk89q.worldedit.util.time; +import javax.annotation.Nullable; import java.nio.file.Path; import java.time.ZonedDateTime; -import javax.annotation.Nullable; /** * Instances of this interface try to determine an {@link ZonedDateTime} from a given diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/translation/TranslationManager.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/translation/TranslationManager.java index bfe1ce5f0..b49befe9d 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/translation/TranslationManager.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/translation/TranslationManager.java @@ -66,7 +66,8 @@ import static java.util.stream.Collectors.toMap; public class TranslationManager { private static final Gson gson = new GsonBuilder().create(); - private static final Type STRING_MAP_TYPE = new TypeToken>() {}.getType(); + private static final Type STRING_MAP_TYPE = new TypeToken>() { + }.getType(); public static String makeTranslationKey(String type, String id) { String[] parts = id.split(":", 2); @@ -75,14 +76,14 @@ public class TranslationManager { private final Map> translationMap = new ConcurrentHashMap<>(); private final TranslatableComponentRenderer friendlyComponentRenderer = TranslatableComponentRenderer.from( - (locale, key) -> { - String translation = getTranslationMap(locale).get(key); - if (translation == null) { - // let it pass through (for e.g. MC messages) - return null; + (locale, key) -> { + String translation = getTranslationMap(locale).get(key); + if (translation == null) { + // let it pass through (for e.g. MC messages) + return null; + } + return new MessageFormat(translation, locale); } - return new MessageFormat(translation, locale); - } ); private Locale defaultLocale = Locale.ENGLISH; @@ -101,9 +102,9 @@ public class TranslationManager { private Map filterTranslations(Map translations) { return translations.entrySet().stream() - .filter(e -> !e.getValue().isEmpty()) - .map(e -> Maps.immutableEntry(e.getKey(), e.getValue().replace("'", "''"))) - .collect(toMap(Map.Entry::getKey, Map.Entry::getValue)); + .filter(e -> !e.getValue().isEmpty()) + .map(e -> Maps.immutableEntry(e.getKey(), e.getValue().replace("'", "''"))) + .collect(toMap(Map.Entry::getKey, Map.Entry::getValue)); } private Map parseTranslationFile(InputStream inputStream) throws IOException { @@ -163,7 +164,7 @@ public class TranslationManager { } if (locale.equals(defaultLocale)) { translationMap.put(Locale.ENGLISH, loadTranslationFile("strings.json").orElseThrow( - () -> new RuntimeException("Failed to load WorldEdit strings!") + () -> new RuntimeException("Failed to load WorldEdit strings!") )); return true; } @@ -191,4 +192,5 @@ public class TranslationManager { public Locale getDefaultLocale() { return defaultLocale; } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/AbstractWorld.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/AbstractWorld.java index 16f358ab2..1f498a873 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/AbstractWorld.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/AbstractWorld.java @@ -19,11 +19,11 @@ package com.sk89q.worldedit.world; +import com.fastasyncworldedit.core.function.mask.BlockMaskBuilder; import com.sk89q.worldedit.WorldEditException; import com.sk89q.worldedit.blocks.BaseItem; import com.sk89q.worldedit.blocks.BaseItemStack; import com.sk89q.worldedit.extension.platform.Platform; -import com.fastasyncworldedit.core.function.mask.BlockMaskBuilder; import com.sk89q.worldedit.function.mask.Mask; import com.sk89q.worldedit.function.operation.Operation; import com.sk89q.worldedit.math.BlockVector2; @@ -37,9 +37,9 @@ import com.sk89q.worldedit.world.block.BlockTypes; import com.sk89q.worldedit.world.weather.WeatherType; import com.sk89q.worldedit.world.weather.WeatherTypes; +import javax.annotation.Nullable; import java.nio.file.Path; import java.util.PriorityQueue; -import javax.annotation.Nullable; /** * An abstract implementation of {@link World}. @@ -164,6 +164,7 @@ public abstract class AbstractWorld implements World { } private class QueuedEffect implements Comparable { + private final Vector3 position; private final BlockType blockType; private final double priority; @@ -183,6 +184,7 @@ public abstract class AbstractWorld implements World { public int compareTo(@Nullable QueuedEffect other) { return Double.compare(priority, other != null ? other.priority : 0); } + } } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/DataFixer.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/DataFixer.java index f548d2687..9f3d6faed 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/DataFixer.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/DataFixer.java @@ -29,11 +29,14 @@ import com.sk89q.worldedit.util.nbt.CompoundBinaryTag; public interface DataFixer { final class FixType { + private FixType() { } + } final class FixTypes { + private FixTypes() { } @@ -43,6 +46,7 @@ public interface DataFixer { public static FixType BLOCK_STATE = new FixType<>(); public static FixType BIOME = new FixType<>(); public static FixType ITEM_TYPE = new FixType<>(); + } default T fixUp(FixType type, T original) { @@ -50,4 +54,5 @@ public interface DataFixer { } T fixUp(FixType type, T original, int srcVer); + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/NbtValued.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/NbtValued.java index 4a0a1047c..a85868685 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/NbtValued.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/NbtValued.java @@ -49,6 +49,7 @@ public interface NbtValued { } //FAWE start + /** * Get the object's NBT data (tile entity data). The returned tag, if * modified in any way, should be sent to {@link #setNbtData(CompoundTag)} @@ -89,12 +90,10 @@ public interface NbtValued { *

    * * @return compound tag, or null - * @apiNote This must be overridden by new subclasses. See {@link NonAbstractForCompatibility} - * for details */ @NonAbstractForCompatibility( - delegateName = "getNbtData", - delegateParams = { } + delegateName = "getNbtData", + delegateParams = {} ) @Nullable default LazyReference getNbtReference() { @@ -108,8 +107,6 @@ public interface NbtValued { * Get the object's NBT data (tile entity data). * * @return compound tag, or null - * @apiNote This must be overridden by new subclasses. See {@link NonAbstractForCompatibility} - * for details */ @Nullable default CompoundBinaryTag getNbt() { @@ -121,12 +118,10 @@ public interface NbtValued { * Set the object's NBT data (tile entity data). * * @param nbtData NBT data, or null if no data - * @apiNote This must be overridden by new subclasses. See {@link NonAbstractForCompatibility} - * for details */ @NonAbstractForCompatibility( - delegateName = "setNbtData", - delegateParams = { CompoundTag.class } + delegateName = "setNbtData", + delegateParams = {CompoundTag.class} ) default void setNbtReference(@Nullable LazyReference nbtData) { DeprecationUtil.checkDelegatingOverride(getClass()); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/NullWorld.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/NullWorld.java index 3fdc12a14..91038a22e 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/NullWorld.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/NullWorld.java @@ -48,10 +48,10 @@ import com.sk89q.worldedit.world.block.BlockTypes; import com.sk89q.worldedit.world.weather.WeatherType; import com.sk89q.worldedit.world.weather.WeatherTypes; +import javax.annotation.Nullable; import java.util.Collections; import java.util.List; import java.util.Set; -import javax.annotation.Nullable; /** * A null implementation of {@link World} that drops all changes and @@ -75,7 +75,8 @@ public class NullWorld extends AbstractWorld { } @Override - public > boolean setBlock(BlockVector3 position, B block, SideEffectSet sideEffects) throws WorldEditException { + public > boolean setBlock(BlockVector3 position, B block, SideEffectSet sideEffects) throws + WorldEditException { return false; } @@ -94,6 +95,7 @@ public class NullWorld extends AbstractWorld { public boolean clearContainerBlockContents(BlockVector3 position) { return false; } + @Override public boolean fullySupports3DBiomes() { return false; @@ -240,6 +242,7 @@ public class NullWorld extends AbstractWorld { } @Override - public void flush() {} + public void flush() { + } //FAWE end } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/RegenOptions.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/RegenOptions.java index 14a5c26e3..7edc96dd6 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/RegenOptions.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/RegenOptions.java @@ -24,8 +24,8 @@ import com.sk89q.worldedit.extent.Extent; import com.sk89q.worldedit.regions.Region; import com.sk89q.worldedit.world.biome.BiomeType; -import java.util.OptionalLong; import javax.annotation.Nullable; +import java.util.OptionalLong; /** * Regeneration options for {@link World#regenerate(Region, Extent, RegenOptions)}. @@ -73,8 +73,10 @@ public abstract class RegenOptions { public abstract Builder regenBiomes(boolean regenBiomes); //FAWE start + /** * Defines the {@code BiomeType} the regenerator should use for regeneration. Defaults to {@code null}. + * * @param biomeType the {@code BiomeType} to be used for regeneration * @return this builder */ @@ -112,7 +114,8 @@ public abstract class RegenOptions { } //FAWE start - @Nullable public abstract BiomeType getBiomeType(); + @Nullable + public abstract BiomeType getBiomeType(); public boolean hasBiomeType() { return getBiomeType() != null; diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/World.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/World.java index 8f4d88112..5db1a8e72 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/World.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/World.java @@ -48,10 +48,10 @@ import com.sk89q.worldedit.world.block.BlockStateHolder; import com.sk89q.worldedit.world.block.BlockType; import com.sk89q.worldedit.world.weather.WeatherType; +import javax.annotation.Nullable; import java.nio.file.Path; import java.util.Locale; import java.util.Set; -import javax.annotation.Nullable; /** * Represents a world (dimension). @@ -122,13 +122,14 @@ public interface World extends Extent, Keyed, IChunkCache { *

    On implementations where the world is not simulated, the * {@code notifyAndLight} parameter has no effect either way.

    * - * @param position position of the block - * @param block block to set + * @param position position of the block + * @param block block to set * @param notifyAndLight true to to notify and light * @return true if the block was successfully set (return value may not be accurate) */ @Deprecated - default > boolean setBlock(BlockVector3 position, B block, boolean notifyAndLight) throws WorldEditException { + default > boolean setBlock(BlockVector3 position, B block, boolean notifyAndLight) throws + WorldEditException { return setBlock(position, block, notifyAndLight ? SideEffectSet.defaults() : SideEffectSet.none()); } @@ -142,18 +143,19 @@ public interface World extends Extent, Keyed, IChunkCache { * {@link Platform#getSupportedSideEffects()} for a list of supported side effects. * Non-supported side effects will be ignored.

    * - * @param position position of the block - * @param block block to set + * @param position position of the block + * @param block block to set * @param sideEffects which side effects to perform * @return true if the block was successfully set (return value may not be accurate) */ - > boolean setBlock(BlockVector3 position, B block, SideEffectSet sideEffects) throws WorldEditException; + > boolean setBlock(BlockVector3 position, B block, SideEffectSet sideEffects) throws + WorldEditException; /** * Notifies the simulation that the block at the given location has * been changed and it must be re-lighted (and issue other events). * - * @param position position of the block + * @param position position of the block * @param previousType the type of the previous block that was there * @return true if the block was successfully notified */ @@ -165,12 +167,13 @@ public interface World extends Extent, Keyed, IChunkCache { /** * Applies a set of side effects on the given block. * - * @param position position of the block - * @param previousType the type of the previous block that was there + * @param position position of the block + * @param previousType the type of the previous block that was there * @param sideEffectSet which side effects to perform * @return a set of side effects that were applied */ - Set applySideEffects(BlockVector3 position, BlockState previousType, SideEffectSet sideEffectSet) throws WorldEditException; + Set applySideEffects(BlockVector3 position, BlockState previousType, SideEffectSet sideEffectSet) throws + WorldEditException; /** * Get the light level at the given block. @@ -194,8 +197,8 @@ public interface World extends Extent, Keyed, IChunkCache { * Drop an item at the given position. * * @param position the position - * @param item the item to drop - * @param count the number of individual stacks to drop (number of item entities) + * @param item the item to drop + * @param count the number of individual stacks to drop (number of item entities) */ void dropItem(Vector3 position, BaseItemStack item, int count); @@ -203,7 +206,7 @@ public interface World extends Extent, Keyed, IChunkCache { * Drop one stack of the item at the given position. * * @param position the position - * @param item the item to drop + * @param item the item to drop * @see #dropItem(Vector3, BaseItemStack, int) shortcut method to specify the number of stacks */ void dropItem(Vector3 position, BaseItemStack item); @@ -218,7 +221,7 @@ public interface World extends Extent, Keyed, IChunkCache { /** * Gets whether the given {@link BlockState} can be placed here. * - * @param position The position + * @param position The position * @param blockState The blockstate * @return If it can be placed */ @@ -229,7 +232,7 @@ public interface World extends Extent, Keyed, IChunkCache { /** * Regenerate an area. * - * @param region the region + * @param region the region * @param editSession the {@link EditSession} * @return true if re-generation was successful */ @@ -251,16 +254,14 @@ public interface World extends Extent, Keyed, IChunkCache { /** * Regenerate an area. * - * @param region the region - * @param extent the {@link Extent} + * @param region the region + * @param extent the {@link Extent} * @param options the regeneration options * @return true if regeneration was successful - * @apiNote This must be overridden by new subclasses. See {@link NonAbstractForCompatibility} - * for details */ @NonAbstractForCompatibility( delegateName = "regenerate", - delegateParams = { Region.class, EditSession.class } + delegateParams = {Region.class, EditSession.class} ) default boolean regenerate(Region region, Extent extent, RegenOptions options) { DeprecationUtil.checkDelegatingOverride(getClass()); @@ -275,13 +276,14 @@ public interface World extends Extent, Keyed, IChunkCache { /** * Generate a tree at the given position. * - * @param type the tree type + * @param type the tree type * @param editSession the {@link EditSession} - * @param position the position + * @param position the position * @return true if generation was successful * @throws MaxChangedBlocksException thrown if too many blocks were changed */ - boolean generateTree(TreeGenerator.TreeType type, EditSession editSession, BlockVector3 position) throws MaxChangedBlocksException; + boolean generateTree(TreeGenerator.TreeType type, EditSession editSession, BlockVector3 position) throws + MaxChangedBlocksException; /** * Load the chunk at the given position if it isn't loaded. @@ -314,8 +316,8 @@ public interface World extends Extent, Keyed, IChunkCache { * Play the given effect. * * @param position the position - * @param type the effect type - * @param data the effect data + * @param type the effect type + * @param data the effect data * @return true if the effect was played */ boolean playEffect(Vector3 position, int type, int data); @@ -323,10 +325,10 @@ public interface World extends Extent, Keyed, IChunkCache { /** * Queue a block break effect. * - * @param server the server - * @param position the position + * @param server the server + * @param position the position * @param blockType the block type - * @param priority the priority + * @param priority the priority * @return true if the effect was played */ boolean queueBlockBreakEffect(Platform server, BlockVector3 position, BlockType blockType, double priority); @@ -356,7 +358,7 @@ public interface World extends Extent, Keyed, IChunkCache { * Sets the weather type of the world. * * @param weatherType The weather type - * @param duration The duration of the weather + * @param duration The duration of the weather */ void setWeather(WeatherType weatherType, long duration); @@ -396,12 +398,14 @@ public interface World extends Extent, Keyed, IChunkCache { /** * Send a fake chunk to a player. + * * @param player may be null to send to everyone * @param packet the chunk packet */ void sendFakeChunk(@Nullable Player player, ChunkPacket packet); - @Override @Nullable + @Override + @Nullable default BiomeType getBiome(BlockVector3 position) { return null; } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/WorldUnloadedException.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/WorldUnloadedException.java index 30f191c7c..eca60bfa4 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/WorldUnloadedException.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/WorldUnloadedException.java @@ -33,4 +33,5 @@ public class WorldUnloadedException extends WorldEditException { public WorldUnloadedException() { super(Caption.of("worldedit.error.world-unloaded")); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/biome/BiomeData.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/biome/BiomeData.java index 72307720f..45dc7572e 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/biome/BiomeData.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/biome/BiomeData.java @@ -35,7 +35,7 @@ public interface BiomeData { * * @return the biome's name * @deprecated This method does not work on the server. - * Use {@link BiomeRegistry#getRichName(BiomeType)}. + * Use {@link BiomeRegistry#getRichName(BiomeType)}. */ @Deprecated String getName(); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/biome/BiomeType.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/biome/BiomeType.java index fdb279fbc..ab503e1fb 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/biome/BiomeType.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/biome/BiomeType.java @@ -19,11 +19,11 @@ package com.sk89q.worldedit.world.biome; +import com.fastasyncworldedit.core.registry.RegistryItem; import com.sk89q.worldedit.function.pattern.BiomePattern; import com.sk89q.worldedit.math.BlockVector3; import com.sk89q.worldedit.registry.Keyed; import com.sk89q.worldedit.registry.NamespacedRegistry; -import com.fastasyncworldedit.core.registry.RegistryItem; /** * All the types of biomes in the game. @@ -93,4 +93,5 @@ public class BiomeType implements RegistryItem, Keyed, BiomePattern { public BiomeType applyBiome(BlockVector3 position) { return this; } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/biome/BiomeTypes.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/biome/BiomeTypes.java index 6e7960364..81954bb0d 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/biome/BiomeTypes.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/biome/BiomeTypes.java @@ -19,8 +19,8 @@ package com.sk89q.worldedit.world.biome; -import java.util.Collection; import javax.annotation.Nullable; +import java.util.Collection; /** * Stores a list of common {@link BiomeType BiomeTypes}. @@ -29,88 +29,172 @@ import javax.annotation.Nullable; */ @SuppressWarnings("unused") public final class BiomeTypes { - @Nullable public static final BiomeType BADLANDS = get("minecraft:badlands"); - @Nullable public static final BiomeType BADLANDS_PLATEAU = get("minecraft:badlands_plateau"); - @Nullable public static final BiomeType BAMBOO_JUNGLE = get("minecraft:bamboo_jungle"); - @Nullable public static final BiomeType BAMBOO_JUNGLE_HILLS = get("minecraft:bamboo_jungle_hills"); - @Nullable public static final BiomeType BASALT_DELTAS = get("minecraft:basalt_deltas"); - @Nullable public static final BiomeType BEACH = get("minecraft:beach"); - @Nullable public static final BiomeType BIRCH_FOREST = get("minecraft:birch_forest"); - @Nullable public static final BiomeType BIRCH_FOREST_HILLS = get("minecraft:birch_forest_hills"); - @Nullable public static final BiomeType COLD_OCEAN = get("minecraft:cold_ocean"); - @Nullable public static final BiomeType CRIMSON_FOREST = get("minecraft:crimson_forest"); - @Nullable public static final BiomeType DARK_FOREST = get("minecraft:dark_forest"); - @Nullable public static final BiomeType DARK_FOREST_HILLS = get("minecraft:dark_forest_hills"); - @Nullable public static final BiomeType DEEP_COLD_OCEAN = get("minecraft:deep_cold_ocean"); - @Nullable public static final BiomeType DEEP_FROZEN_OCEAN = get("minecraft:deep_frozen_ocean"); - @Nullable public static final BiomeType DEEP_LUKEWARM_OCEAN = get("minecraft:deep_lukewarm_ocean"); - @Nullable public static final BiomeType DEEP_OCEAN = get("minecraft:deep_ocean"); - @Nullable public static final BiomeType DEEP_WARM_OCEAN = get("minecraft:deep_warm_ocean"); - @Nullable public static final BiomeType DESERT = get("minecraft:desert"); - @Nullable public static final BiomeType DESERT_HILLS = get("minecraft:desert_hills"); - @Nullable public static final BiomeType DESERT_LAKES = get("minecraft:desert_lakes"); - @Nullable public static final BiomeType DRIPSTONE_CAVES = get("minecraft:dripstone_caves"); - @Nullable public static final BiomeType END_BARRENS = get("minecraft:end_barrens"); - @Nullable public static final BiomeType END_HIGHLANDS = get("minecraft:end_highlands"); - @Nullable public static final BiomeType END_MIDLANDS = get("minecraft:end_midlands"); - @Nullable public static final BiomeType ERODED_BADLANDS = get("minecraft:eroded_badlands"); - @Nullable public static final BiomeType FLOWER_FOREST = get("minecraft:flower_forest"); - @Nullable public static final BiomeType FOREST = get("minecraft:forest"); - @Nullable public static final BiomeType FROZEN_OCEAN = get("minecraft:frozen_ocean"); - @Nullable public static final BiomeType FROZEN_RIVER = get("minecraft:frozen_river"); - @Nullable public static final BiomeType GIANT_SPRUCE_TAIGA = get("minecraft:giant_spruce_taiga"); - @Nullable public static final BiomeType GIANT_SPRUCE_TAIGA_HILLS = get("minecraft:giant_spruce_taiga_hills"); - @Nullable public static final BiomeType GIANT_TREE_TAIGA = get("minecraft:giant_tree_taiga"); - @Nullable public static final BiomeType GIANT_TREE_TAIGA_HILLS = get("minecraft:giant_tree_taiga_hills"); - @Nullable public static final BiomeType GRAVELLY_MOUNTAINS = get("minecraft:gravelly_mountains"); - @Nullable public static final BiomeType ICE_SPIKES = get("minecraft:ice_spikes"); - @Nullable public static final BiomeType JUNGLE = get("minecraft:jungle"); - @Nullable public static final BiomeType JUNGLE_EDGE = get("minecraft:jungle_edge"); - @Nullable public static final BiomeType JUNGLE_HILLS = get("minecraft:jungle_hills"); - @Nullable public static final BiomeType LUKEWARM_OCEAN = get("minecraft:lukewarm_ocean"); - @Nullable public static final BiomeType LUSH_CAVES = get("minecraft:lush_caves"); - @Nullable public static final BiomeType MODIFIED_BADLANDS_PLATEAU = get("minecraft:modified_badlands_plateau"); - @Nullable public static final BiomeType MODIFIED_GRAVELLY_MOUNTAINS = get("minecraft:modified_gravelly_mountains"); - @Nullable public static final BiomeType MODIFIED_JUNGLE = get("minecraft:modified_jungle"); - @Nullable public static final BiomeType MODIFIED_JUNGLE_EDGE = get("minecraft:modified_jungle_edge"); - @Nullable public static final BiomeType MODIFIED_WOODED_BADLANDS_PLATEAU = get("minecraft:modified_wooded_badlands_plateau"); - @Nullable public static final BiomeType MOUNTAIN_EDGE = get("minecraft:mountain_edge"); - @Nullable public static final BiomeType MOUNTAINS = get("minecraft:mountains"); - @Nullable public static final BiomeType MUSHROOM_FIELD_SHORE = get("minecraft:mushroom_field_shore"); - @Nullable public static final BiomeType MUSHROOM_FIELDS = get("minecraft:mushroom_fields"); - @Nullable @Deprecated public static final BiomeType NETHER = get("minecraft:nether"); - @Nullable public static final BiomeType NETHER_WASTES = get("minecraft:nether_wastes"); - @Nullable public static final BiomeType OCEAN = get("minecraft:ocean"); - @Nullable public static final BiomeType PLAINS = get("minecraft:plains"); - @Nullable public static final BiomeType RIVER = get("minecraft:river"); - @Nullable public static final BiomeType SAVANNA = get("minecraft:savanna"); - @Nullable public static final BiomeType SAVANNA_PLATEAU = get("minecraft:savanna_plateau"); - @Nullable public static final BiomeType SHATTERED_SAVANNA = get("minecraft:shattered_savanna"); - @Nullable public static final BiomeType SHATTERED_SAVANNA_PLATEAU = get("minecraft:shattered_savanna_plateau"); - @Nullable public static final BiomeType SMALL_END_ISLANDS = get("minecraft:small_end_islands"); - @Nullable public static final BiomeType SNOWY_BEACH = get("minecraft:snowy_beach"); - @Nullable public static final BiomeType SNOWY_MOUNTAINS = get("minecraft:snowy_mountains"); - @Nullable public static final BiomeType SNOWY_TAIGA = get("minecraft:snowy_taiga"); - @Nullable public static final BiomeType SNOWY_TAIGA_HILLS = get("minecraft:snowy_taiga_hills"); - @Nullable public static final BiomeType SNOWY_TAIGA_MOUNTAINS = get("minecraft:snowy_taiga_mountains"); - @Nullable public static final BiomeType SNOWY_TUNDRA = get("minecraft:snowy_tundra"); - @Nullable public static final BiomeType SOUL_SAND_VALLEY = get("minecraft:soul_sand_valley"); - @Nullable public static final BiomeType STONE_SHORE = get("minecraft:stone_shore"); - @Nullable public static final BiomeType SUNFLOWER_PLAINS = get("minecraft:sunflower_plains"); - @Nullable public static final BiomeType SWAMP = get("minecraft:swamp"); - @Nullable public static final BiomeType SWAMP_HILLS = get("minecraft:swamp_hills"); - @Nullable public static final BiomeType TAIGA = get("minecraft:taiga"); - @Nullable public static final BiomeType TAIGA_HILLS = get("minecraft:taiga_hills"); - @Nullable public static final BiomeType TAIGA_MOUNTAINS = get("minecraft:taiga_mountains"); - @Nullable public static final BiomeType TALL_BIRCH_FOREST = get("minecraft:tall_birch_forest"); - @Nullable public static final BiomeType TALL_BIRCH_HILLS = get("minecraft:tall_birch_hills"); - @Nullable public static final BiomeType THE_END = get("minecraft:the_end"); - @Nullable public static final BiomeType THE_VOID = get("minecraft:the_void"); - @Nullable public static final BiomeType WARM_OCEAN = get("minecraft:warm_ocean"); - @Nullable public static final BiomeType WARPED_FOREST = get("minecraft:warped_forest"); - @Nullable public static final BiomeType WOODED_BADLANDS_PLATEAU = get("minecraft:wooded_badlands_plateau"); - @Nullable public static final BiomeType WOODED_HILLS = get("minecraft:wooded_hills"); - @Nullable public static final BiomeType WOODED_MOUNTAINS = get("minecraft:wooded_mountains"); + + @Nullable + public static final BiomeType BADLANDS = get("minecraft:badlands"); + @Nullable + public static final BiomeType BADLANDS_PLATEAU = get("minecraft:badlands_plateau"); + @Nullable + public static final BiomeType BAMBOO_JUNGLE = get("minecraft:bamboo_jungle"); + @Nullable + public static final BiomeType BAMBOO_JUNGLE_HILLS = get("minecraft:bamboo_jungle_hills"); + @Nullable + public static final BiomeType BASALT_DELTAS = get("minecraft:basalt_deltas"); + @Nullable + public static final BiomeType BEACH = get("minecraft:beach"); + @Nullable + public static final BiomeType BIRCH_FOREST = get("minecraft:birch_forest"); + @Nullable + public static final BiomeType BIRCH_FOREST_HILLS = get("minecraft:birch_forest_hills"); + @Nullable + public static final BiomeType COLD_OCEAN = get("minecraft:cold_ocean"); + @Nullable + public static final BiomeType CRIMSON_FOREST = get("minecraft:crimson_forest"); + @Nullable + public static final BiomeType DARK_FOREST = get("minecraft:dark_forest"); + @Nullable + public static final BiomeType DARK_FOREST_HILLS = get("minecraft:dark_forest_hills"); + @Nullable + public static final BiomeType DEEP_COLD_OCEAN = get("minecraft:deep_cold_ocean"); + @Nullable + public static final BiomeType DEEP_FROZEN_OCEAN = get("minecraft:deep_frozen_ocean"); + @Nullable + public static final BiomeType DEEP_LUKEWARM_OCEAN = get("minecraft:deep_lukewarm_ocean"); + @Nullable + public static final BiomeType DEEP_OCEAN = get("minecraft:deep_ocean"); + @Nullable + public static final BiomeType DEEP_WARM_OCEAN = get("minecraft:deep_warm_ocean"); + @Nullable + public static final BiomeType DESERT = get("minecraft:desert"); + @Nullable + public static final BiomeType DESERT_HILLS = get("minecraft:desert_hills"); + @Nullable + public static final BiomeType DESERT_LAKES = get("minecraft:desert_lakes"); + @Nullable + public static final BiomeType DRIPSTONE_CAVES = get("minecraft:dripstone_caves"); + @Nullable + public static final BiomeType END_BARRENS = get("minecraft:end_barrens"); + @Nullable + public static final BiomeType END_HIGHLANDS = get("minecraft:end_highlands"); + @Nullable + public static final BiomeType END_MIDLANDS = get("minecraft:end_midlands"); + @Nullable + public static final BiomeType ERODED_BADLANDS = get("minecraft:eroded_badlands"); + @Nullable + public static final BiomeType FLOWER_FOREST = get("minecraft:flower_forest"); + @Nullable + public static final BiomeType FOREST = get("minecraft:forest"); + @Nullable + public static final BiomeType FROZEN_OCEAN = get("minecraft:frozen_ocean"); + @Nullable + public static final BiomeType FROZEN_RIVER = get("minecraft:frozen_river"); + @Nullable + public static final BiomeType GIANT_SPRUCE_TAIGA = get("minecraft:giant_spruce_taiga"); + @Nullable + public static final BiomeType GIANT_SPRUCE_TAIGA_HILLS = get("minecraft:giant_spruce_taiga_hills"); + @Nullable + public static final BiomeType GIANT_TREE_TAIGA = get("minecraft:giant_tree_taiga"); + @Nullable + public static final BiomeType GIANT_TREE_TAIGA_HILLS = get("minecraft:giant_tree_taiga_hills"); + @Nullable + public static final BiomeType GRAVELLY_MOUNTAINS = get("minecraft:gravelly_mountains"); + @Nullable + public static final BiomeType ICE_SPIKES = get("minecraft:ice_spikes"); + @Nullable + public static final BiomeType JUNGLE = get("minecraft:jungle"); + @Nullable + public static final BiomeType JUNGLE_EDGE = get("minecraft:jungle_edge"); + @Nullable + public static final BiomeType JUNGLE_HILLS = get("minecraft:jungle_hills"); + @Nullable + public static final BiomeType LUKEWARM_OCEAN = get("minecraft:lukewarm_ocean"); + @Nullable + public static final BiomeType LUSH_CAVES = get("minecraft:lush_caves"); + @Nullable + public static final BiomeType MODIFIED_BADLANDS_PLATEAU = get("minecraft:modified_badlands_plateau"); + @Nullable + public static final BiomeType MODIFIED_GRAVELLY_MOUNTAINS = get("minecraft:modified_gravelly_mountains"); + @Nullable + public static final BiomeType MODIFIED_JUNGLE = get("minecraft:modified_jungle"); + @Nullable + public static final BiomeType MODIFIED_JUNGLE_EDGE = get("minecraft:modified_jungle_edge"); + @Nullable + public static final BiomeType MODIFIED_WOODED_BADLANDS_PLATEAU = get("minecraft:modified_wooded_badlands_plateau"); + @Nullable + public static final BiomeType MOUNTAIN_EDGE = get("minecraft:mountain_edge"); + @Nullable + public static final BiomeType MOUNTAINS = get("minecraft:mountains"); + @Nullable + public static final BiomeType MUSHROOM_FIELD_SHORE = get("minecraft:mushroom_field_shore"); + @Nullable + public static final BiomeType MUSHROOM_FIELDS = get("minecraft:mushroom_fields"); + @Nullable + @Deprecated + public static final BiomeType NETHER = get("minecraft:nether"); + @Nullable + public static final BiomeType NETHER_WASTES = get("minecraft:nether_wastes"); + @Nullable + public static final BiomeType OCEAN = get("minecraft:ocean"); + @Nullable + public static final BiomeType PLAINS = get("minecraft:plains"); + @Nullable + public static final BiomeType RIVER = get("minecraft:river"); + @Nullable + public static final BiomeType SAVANNA = get("minecraft:savanna"); + @Nullable + public static final BiomeType SAVANNA_PLATEAU = get("minecraft:savanna_plateau"); + @Nullable + public static final BiomeType SHATTERED_SAVANNA = get("minecraft:shattered_savanna"); + @Nullable + public static final BiomeType SHATTERED_SAVANNA_PLATEAU = get("minecraft:shattered_savanna_plateau"); + @Nullable + public static final BiomeType SMALL_END_ISLANDS = get("minecraft:small_end_islands"); + @Nullable + public static final BiomeType SNOWY_BEACH = get("minecraft:snowy_beach"); + @Nullable + public static final BiomeType SNOWY_MOUNTAINS = get("minecraft:snowy_mountains"); + @Nullable + public static final BiomeType SNOWY_TAIGA = get("minecraft:snowy_taiga"); + @Nullable + public static final BiomeType SNOWY_TAIGA_HILLS = get("minecraft:snowy_taiga_hills"); + @Nullable + public static final BiomeType SNOWY_TAIGA_MOUNTAINS = get("minecraft:snowy_taiga_mountains"); + @Nullable + public static final BiomeType SNOWY_TUNDRA = get("minecraft:snowy_tundra"); + @Nullable + public static final BiomeType SOUL_SAND_VALLEY = get("minecraft:soul_sand_valley"); + @Nullable + public static final BiomeType STONE_SHORE = get("minecraft:stone_shore"); + @Nullable + public static final BiomeType SUNFLOWER_PLAINS = get("minecraft:sunflower_plains"); + @Nullable + public static final BiomeType SWAMP = get("minecraft:swamp"); + @Nullable + public static final BiomeType SWAMP_HILLS = get("minecraft:swamp_hills"); + @Nullable + public static final BiomeType TAIGA = get("minecraft:taiga"); + @Nullable + public static final BiomeType TAIGA_HILLS = get("minecraft:taiga_hills"); + @Nullable + public static final BiomeType TAIGA_MOUNTAINS = get("minecraft:taiga_mountains"); + @Nullable + public static final BiomeType TALL_BIRCH_FOREST = get("minecraft:tall_birch_forest"); + @Nullable + public static final BiomeType TALL_BIRCH_HILLS = get("minecraft:tall_birch_hills"); + @Nullable + public static final BiomeType THE_END = get("minecraft:the_end"); + @Nullable + public static final BiomeType THE_VOID = get("minecraft:the_void"); + @Nullable + public static final BiomeType WARM_OCEAN = get("minecraft:warm_ocean"); + @Nullable + public static final BiomeType WARPED_FOREST = get("minecraft:warped_forest"); + @Nullable + public static final BiomeType WOODED_BADLANDS_PLATEAU = get("minecraft:wooded_badlands_plateau"); + @Nullable + public static final BiomeType WOODED_HILLS = get("minecraft:wooded_hills"); + @Nullable + public static final BiomeType WOODED_MOUNTAINS = get("minecraft:wooded_mountains"); private BiomeTypes() { } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/biome/Biomes.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/biome/Biomes.java index 9e0b3fac8..8bc4ead22 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/biome/Biomes.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/biome/Biomes.java @@ -25,10 +25,10 @@ import com.sk89q.worldedit.util.WeightedChoice.Choice; import com.sk89q.worldedit.util.function.LevenshteinDistance; import com.sk89q.worldedit.world.registry.BiomeRegistry; +import javax.annotation.Nullable; import java.util.Collection; import java.util.Optional; import java.util.function.Function; -import javax.annotation.Nullable; import static com.google.common.base.Preconditions.checkNotNull; @@ -46,8 +46,8 @@ public final class Biomes { /** * Find a biome that matches the given input name. * - * @param biomes a list of biomes - * @param name the name to test + * @param biomes a list of biomes + * @param name the name to test * @param registry a biome registry * @return a biome or null * @deprecated This uses the outdated name system. Find names by comparing with their ID instead. diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/block/BaseBlock.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/block/BaseBlock.java index de800e99d..536da7ec8 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/block/BaseBlock.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/block/BaseBlock.java @@ -19,6 +19,7 @@ package com.sk89q.worldedit.world.block; +import com.fastasyncworldedit.core.registry.state.PropertyKey; import com.sk89q.jnbt.CompoundTag; import com.sk89q.worldedit.WorldEdit; import com.sk89q.worldedit.WorldEditException; @@ -27,17 +28,16 @@ import com.sk89q.worldedit.extent.Extent; import com.sk89q.worldedit.extent.OutputExtent; import com.sk89q.worldedit.math.BlockVector3; import com.sk89q.worldedit.registry.state.Property; -import com.fastasyncworldedit.core.registry.state.PropertyKey; import com.sk89q.worldedit.util.concurrency.LazyReference; import com.sk89q.worldedit.util.nbt.CompoundBinaryTag; import com.sk89q.worldedit.util.nbt.TagStringIO; import com.sk89q.worldedit.world.registry.BlockMaterial; import com.sk89q.worldedit.world.registry.LegacyMapper; +import javax.annotation.Nullable; import java.io.IOException; import java.util.Map; import java.util.Objects; -import javax.annotation.Nullable; import static com.google.common.base.Preconditions.checkNotNull; @@ -59,10 +59,12 @@ public class BaseBlock implements BlockStateHolder, TileEntityBlock { //FAWE end //FAWE start + /** * Construct a block with the given type and default data. - * @deprecated Just use the BlockType.getDefaultState() + * * @param blockType The block type + * @deprecated Just use the BlockType.getDefaultState() */ @Deprecated public BaseBlock(BlockType blockType) { @@ -71,6 +73,7 @@ public class BaseBlock implements BlockStateHolder, TileEntityBlock { //FAWE end //FAWE start - made public from protected + /** * Construct a block with a state. * @@ -83,10 +86,11 @@ public class BaseBlock implements BlockStateHolder, TileEntityBlock { //FAWE end //FAWE start - deprecated upstream method and replaced CompoundTag with LR + /** * Construct a block with the given ID, data value and NBT data structure. * - * @param state The block state + * @param state The block state * @param nbtData NBT data, which must be provided */ @Deprecated @@ -99,7 +103,7 @@ public class BaseBlock implements BlockStateHolder, TileEntityBlock { /** * Construct a block with the given ID, data value and NBT data structure. * - * @param state The block state + * @param state The block state * @param nbtData NBT data, which must be provided */ protected BaseBlock(BlockState state, LazyReference nbtData) { @@ -109,10 +113,11 @@ public class BaseBlock implements BlockStateHolder, TileEntityBlock { } //FAWE start + /** * Construct a block with the given ID and data value. * - * @param id ID value + * @param id ID value * @param data data value */ @Deprecated diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/block/BlockCategories.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/block/BlockCategories.java index ec79adeab..4b1a7444b 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/block/BlockCategories.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/block/BlockCategories.java @@ -26,6 +26,7 @@ package com.sk89q.worldedit.world.block; */ @SuppressWarnings("unused") public final class BlockCategories { + public static final BlockCategory ACACIA_LOGS = get("minecraft:acacia_logs"); public static final BlockCategory ANVIL = get("minecraft:anvil"); public static final BlockCategory BAMBOO_PLANTABLE_ON = get("minecraft:bamboo_plantable_on"); @@ -57,7 +58,8 @@ public final class BlockCategories { public static final BlockCategory DEEPSLATE_ORE_REPLACEABLES = get("minecraft:deepslate_ore_replaceables"); public static final BlockCategory DIAMOND_ORES = get("minecraft:diamond_ores"); public static final BlockCategory DIRT = get("minecraft:dirt"); - @Deprecated public static final BlockCategory DIRT_LIKE = get("minecraft:dirt_like"); + @Deprecated + public static final BlockCategory DIRT_LIKE = get("minecraft:dirt_like"); public static final BlockCategory DOORS = get("minecraft:doors"); public static final BlockCategory DRAGON_IMMUNE = get("minecraft:dragon_immune"); public static final BlockCategory DRIPSTONE_REPLACEABLE_BLOCKS = get("minecraft:dripstone_replaceable_blocks"); @@ -163,4 +165,5 @@ public final class BlockCategories { } return entry; } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/block/BlockCategory.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/block/BlockCategory.java index f3f1b2ffc..3ed6f7a3f 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/block/BlockCategory.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/block/BlockCategory.java @@ -32,6 +32,7 @@ import java.util.Set; * blocks such as wool into separate ids. */ public class BlockCategory extends Category implements Keyed { + //FAWE start private boolean[] flatMap; //FAWE end @@ -73,4 +74,5 @@ public class BlockCategory extends Category implements Keyed { return flatMap.length > typeId && flatMap[typeId]; //FAWE end } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/block/BlockState.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/block/BlockState.java index f6d29f12c..19341d084 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/block/BlockState.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/block/BlockState.java @@ -19,8 +19,10 @@ package com.sk89q.worldedit.world.block; -import com.fastasyncworldedit.core.queue.ITileInput; import com.fastasyncworldedit.core.command.SuggestInputParseException; +import com.fastasyncworldedit.core.function.mask.SingleBlockStateMask; +import com.fastasyncworldedit.core.queue.ITileInput; +import com.fastasyncworldedit.core.registry.state.PropertyKey; import com.fastasyncworldedit.core.util.MutableCharSequence; import com.fastasyncworldedit.core.util.StringMan; import com.fastasyncworldedit.core.world.block.BlanketBaseBlock; @@ -36,23 +38,21 @@ import com.sk89q.worldedit.extent.Extent; import com.sk89q.worldedit.extent.NullExtent; import com.sk89q.worldedit.extent.OutputExtent; import com.sk89q.worldedit.function.mask.Mask; -import com.fastasyncworldedit.core.function.mask.SingleBlockStateMask; import com.sk89q.worldedit.function.pattern.Pattern; import com.sk89q.worldedit.math.BlockVector3; import com.sk89q.worldedit.registry.state.AbstractProperty; import com.sk89q.worldedit.registry.state.Property; -import com.fastasyncworldedit.core.registry.state.PropertyKey; import com.sk89q.worldedit.util.concurrency.LazyReference; import com.sk89q.worldedit.util.nbt.CompoundBinaryTag; import com.sk89q.worldedit.world.registry.BlockMaterial; -import javax.annotation.Nonnull; +import javax.annotation.Nonnull; +import javax.annotation.Nullable; import java.util.Collections; import java.util.List; import java.util.Map; import java.util.stream.Collectors; import java.util.stream.Stream; -import javax.annotation.Nullable; /** * An immutable class that represents the state a block can be in. @@ -89,8 +89,9 @@ public class BlockState implements BlockStateHolder, Pattern { /** * Returns a temporary BlockState for a given internal id. - * @deprecated Magic Numbers + * * @return BlockState + * @deprecated Magic Numbers */ @Deprecated public static BlockState getFromInternalId(int combinedId) throws InputParseException { @@ -104,6 +105,7 @@ public class BlockState implements BlockStateHolder, Pattern { /** * Returns a temporary BlockState for a given type and string. + * * @param state String e.g., minecraft:water[level=4] * @return BlockState */ @@ -116,7 +118,7 @@ public class BlockState implements BlockStateHolder, Pattern { * *

    It's faster if a BlockType is provided compared to parsing the string.

    * - * @param type BlockType e.g., BlockTypes.STONE (or null) + * @param type BlockType e.g., BlockTypes.STONE (or null) * @param state String e.g., minecraft:water[level=4] * @return BlockState */ @@ -129,7 +131,7 @@ public class BlockState implements BlockStateHolder, Pattern { * *

    It's faster if a BlockType is provided compared to parsing the string.

    * - * @param type BlockType e.g., BlockTypes.STONE (or null) + * @param type BlockType e.g., BlockTypes.STONE (or null) * @param state String e.g., minecraft:water[level=4] * @return BlockState */ @@ -148,7 +150,8 @@ public class BlockState implements BlockStateHolder, Pattern { type = BlockTypes.get(key); if (type == null) { String input = key.toString(); - throw new SuggestInputParseException("Does not match a valid block type: " + input, input, () -> Stream.of(BlockTypesCache.values) + throw new SuggestInputParseException("Does not match a valid block type: " + input, input, () -> Stream.of( + BlockTypesCache.values) .filter(b -> StringMan.blockStateMatches(input, b.getId())) .map(BlockType::getId) .sorted(StringMan.blockStateComparator(input)) @@ -207,14 +210,22 @@ public class BlockState implements BlockStateHolder, Pattern { // Suggest property String input = charSequence.toString(); BlockType finalType = type; - throw new SuggestInputParseException("Invalid property " + key + ":" + input + " for type " + type, input, () -> - finalType.getProperties().stream() - .map(Property::getName) - .filter(p -> StringMan.blockStateMatches(input, p)) - .sorted(StringMan.blockStateComparator(input)) - .collect(Collectors.toList())); + throw new SuggestInputParseException( + "Invalid property " + key + ":" + input + " for type " + type, + input, + () -> + finalType.getProperties().stream() + .map(Property::getName) + .filter(p -> StringMan.blockStateMatches(input, p)) + .sorted(StringMan.blockStateComparator(input)) + .collect(Collectors.toList()) + ); } else { - throw new SuggestInputParseException("No operator for " + state, "", () -> Collections.singletonList("=")); + throw new SuggestInputParseException( + "No operator for " + state, + "", + () -> Collections.singletonList("=") + ); } } property = null; @@ -319,7 +330,7 @@ public class BlockState implements BlockStateHolder, Pattern { return this; } BlockState newState = this; - for (Property prop: ot.getProperties()) { + for (Property prop : ot.getProperties()) { PropertyKey key = prop.getKey(); if (blockType.hasProperty(key)) { newState = newState.with(key, other.getState(key)); @@ -396,7 +407,13 @@ public class BlockState implements BlockStateHolder, Pattern { if (blockType == BlockTypes.__RESERVED__) { return this.material = blockType.getMaterial(); } - this.material = WorldEdit.getInstance().getPlatformManager().queryCapability(Capability.GAME_HOOKS).getRegistries().getBlockRegistry().getMaterial(this); + this.material = WorldEdit + .getInstance() + .getPlatformManager() + .queryCapability(Capability.GAME_HOOKS) + .getRegistries() + .getBlockRegistry() + .getMaterial(this); if (this.material.hasContainer()) { this.compoundInput = CompoundInput.CONTAINER; } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/block/BlockStateHolder.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/block/BlockStateHolder.java index b555e518f..9c914228c 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/block/BlockStateHolder.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/block/BlockStateHolder.java @@ -20,6 +20,7 @@ package com.sk89q.worldedit.world.block; import com.fastasyncworldedit.core.queue.ITileInput; +import com.fastasyncworldedit.core.registry.state.PropertyKey; import com.sk89q.jnbt.CompoundTag; import com.sk89q.worldedit.blocks.TileEntityBlock; import com.sk89q.worldedit.extent.OutputExtent; @@ -28,10 +29,9 @@ import com.sk89q.worldedit.internal.util.DeprecationUtil; import com.sk89q.worldedit.internal.util.NonAbstractForCompatibility; import com.sk89q.worldedit.math.BlockVector3; import com.sk89q.worldedit.registry.state.Property; -import com.fastasyncworldedit.core.registry.state.PropertyKey; import com.sk89q.worldedit.util.concurrency.LazyReference; -import com.sk89q.worldedit.world.registry.BlockMaterial; import com.sk89q.worldedit.util.nbt.CompoundBinaryTag; +import com.sk89q.worldedit.world.registry.BlockMaterial; import java.util.Locale; import java.util.Map; @@ -49,6 +49,7 @@ public interface BlockStateHolder> extends TileEnt BlockType getBlockType(); //FAWE start + /** * Magic number (legacy uses). */ @@ -86,7 +87,7 @@ public interface BlockStateHolder> extends TileEnt * Returns a BlockState with the given state and value applied. * * @param property The state - * @param value The value + * @param value The value * @return The modified state, or same if could not be applied */ B with(final Property property, final V value); @@ -95,7 +96,7 @@ public interface BlockStateHolder> extends TileEnt * Returns a BlockStateHolder with the given state and value applied. * * @param property The property key - * @param value The value + * @param value The value * @return The modified state, or same if could not be applied */ B with(final PropertyKey property, final V value); @@ -146,6 +147,7 @@ public interface BlockStateHolder> extends TileEnt BaseBlock toBaseBlock(); //FAWE start + /** * Gets a {@link BaseBlock} from this BlockStateHolder. * @@ -167,8 +169,8 @@ public interface BlockStateHolder> extends TileEnt * for details */ @NonAbstractForCompatibility( - delegateName = "toBaseBlock", - delegateParams = { CompoundTag.class } + delegateName = "toBaseBlock", + delegateParams = {CompoundTag.class} ) default BaseBlock toBaseBlock(LazyReference compoundTag) { DeprecationUtil.checkDelegatingOverride(getClass()); @@ -203,11 +205,12 @@ public interface BlockStateHolder> extends TileEnt return this.getBlockType().getId(); } else { String properties = getStates().entrySet().stream() - .map(entry -> entry.getKey().getName() - + "=" - + entry.getValue().toString().toLowerCase(Locale.ROOT)) - .collect(Collectors.joining(",")); + .map(entry -> entry.getKey().getName() + + "=" + + entry.getValue().toString().toLowerCase(Locale.ROOT)) + .collect(Collectors.joining(",")); return this.getBlockType().getId() + "[" + properties + "]"; } } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/block/BlockType.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/block/BlockType.java index c6b4f99e7..9f2758224 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/block/BlockType.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/block/BlockType.java @@ -19,12 +19,13 @@ package com.sk89q.worldedit.world.block; +import com.fastasyncworldedit.core.function.mask.SingleBlockTypeMask; +import com.fastasyncworldedit.core.registry.state.PropertyKey; import com.sk89q.worldedit.WorldEdit; import com.sk89q.worldedit.WorldEditException; import com.sk89q.worldedit.extension.platform.Capability; import com.sk89q.worldedit.extent.Extent; import com.sk89q.worldedit.extent.NullExtent; -import com.fastasyncworldedit.core.function.mask.SingleBlockTypeMask; import com.sk89q.worldedit.function.pattern.Pattern; import com.sk89q.worldedit.internal.util.LogManagerCompat; import com.sk89q.worldedit.math.BlockVector3; @@ -32,7 +33,6 @@ import com.sk89q.worldedit.registry.Keyed; import com.sk89q.worldedit.registry.NamespacedRegistry; import com.sk89q.worldedit.registry.state.AbstractProperty; import com.sk89q.worldedit.registry.state.Property; -import com.fastasyncworldedit.core.registry.state.PropertyKey; import com.sk89q.worldedit.util.concurrency.LazyReference; import com.sk89q.worldedit.util.formatting.text.Component; import com.sk89q.worldedit.world.item.ItemType; @@ -41,6 +41,7 @@ import com.sk89q.worldedit.world.registry.BlockMaterial; import com.sk89q.worldedit.world.registry.LegacyMapper; import org.apache.logging.log4j.Logger; +import javax.annotation.Nullable; import java.util.Collections; import java.util.List; import java.util.Map; @@ -48,7 +49,6 @@ import java.util.Set; import java.util.function.Function; import java.util.stream.Collectors; import java.util.stream.IntStream; -import javax.annotation.Nullable; import static com.google.common.base.Preconditions.checkArgument; @@ -62,7 +62,7 @@ public class BlockType implements Keyed, Pattern { private final String id; private final BlockTypesCache.Settings settings; private final LazyReference emptyFuzzy - = LazyReference.from(() -> new FuzzyBlockState(this)); + = LazyReference.from(() -> new FuzzyBlockState(this)); //FAWE start private final LazyReference legacyId = LazyReference.from(() -> computeLegacy(0)); @@ -106,7 +106,7 @@ public class BlockType implements Keyed, Pattern { public Component getRichName() { return WorldEdit.getInstance().getPlatformManager().queryCapability(Capability.GAME_HOOKS) - .getRegistries().getBlockRegistry().getRichName(this); + .getRegistries().getBlockRegistry().getRichName(this); } //FAWE start @@ -148,12 +148,20 @@ public class BlockType implements Keyed, Pattern { if (settings.stateOrdinals == null) { return settings.defaultState; } else if (propertyId >= settings.stateOrdinals.length || propertyId < 0) { - LOGGER.error("Attempted to load blockstate with id {} of type {} outside of state ordinals length. Using default state.", propertyId, getId()); + LOGGER.error( + "Attempted to load blockstate with id {} of type {} outside of state ordinals length. Using default state.", + propertyId, + getId() + ); return settings.defaultState; } int ordinal = settings.stateOrdinals[propertyId]; if (ordinal >= BlockTypesCache.states.length || ordinal < 0) { - LOGGER.error("Attempted to load blockstate with ordinal {} of type {} outside of states length. Using default state. Using default state.", ordinal, getId()); + LOGGER.error( + "Attempted to load blockstate with ordinal {} of type {} outside of states length. Using default state. Using default state.", + ordinal, + getId() + ); return settings.defaultState; } return BlockTypesCache.states[ordinal]; @@ -244,7 +252,8 @@ public class BlockType implements Keyed, Pattern { if (settings.stateOrdinals == null) { return Collections.singletonList(getDefaultState()); } - return IntStream.of(settings.stateOrdinals).filter(i -> i != -1).mapToObj(i -> BlockTypesCache.states[i]).collect(Collectors.toList()); + return IntStream.of(settings.stateOrdinals).filter(i -> i != -1).mapToObj(i -> BlockTypesCache.states[i]).collect( + Collectors.toList()); //FAWE end } @@ -311,7 +320,7 @@ public class BlockType implements Keyed, Pattern { /** * Gets the legacy ID. Needed for legacy reasons. - * + *

    * DO NOT USE THIS. * * @return legacy id or 0, if unknown @@ -326,7 +335,7 @@ public class BlockType implements Keyed, Pattern { /** * Gets the legacy data. Needed for legacy reasons. - * + *

    * DO NOT USE THIS. * * @return legacy data or 0, if unknown @@ -364,6 +373,7 @@ public class BlockType implements Keyed, Pattern { } //FAWE start + /** * The internal index of this type. * diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/block/BlockTypes.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/block/BlockTypes.java index 7bd2f92bf..17f8668b6 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/block/BlockTypes.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/block/BlockTypes.java @@ -25,12 +25,12 @@ import com.fastasyncworldedit.core.util.StringMan; import com.sk89q.worldedit.extension.input.InputParseException; import com.sk89q.worldedit.world.registry.LegacyMapper; +import javax.annotation.Nullable; import java.lang.reflect.Field; import java.util.Locale; import java.util.Set; import java.util.stream.Collectors; import java.util.stream.Stream; -import javax.annotation.Nullable; /** * Stores a list of common {@link BlockType BlockTypes}. @@ -39,908 +39,1812 @@ import javax.annotation.Nullable; */ @SuppressWarnings("unused") public final class BlockTypes { + //FAWE start - init // Doesn't really matter what the hardcoded values are, as FAWE will update it on load - @Nullable public static final BlockType __RESERVED__ = init(); // Placeholder for null index (i.e. when block types are represented as primitives) - @Nullable public static final BlockType ACACIA_BUTTON = init(); - @Nullable public static final BlockType ACACIA_DOOR = init(); - @Nullable public static final BlockType ACACIA_FENCE = init(); - @Nullable public static final BlockType ACACIA_FENCE_GATE = init(); - @Nullable public static final BlockType ACACIA_LEAVES = init(); - @Nullable public static final BlockType ACACIA_LOG = init(); - @Nullable public static final BlockType ACACIA_PLANKS = init(); - @Nullable public static final BlockType ACACIA_PRESSURE_PLATE = init(); - @Nullable public static final BlockType ACACIA_SAPLING = init(); - @Nullable public static final BlockType ACACIA_SIGN = init(); - @Nullable public static final BlockType ACACIA_SLAB = init(); - @Nullable public static final BlockType ACACIA_STAIRS = init(); - @Nullable public static final BlockType ACACIA_TRAPDOOR = init(); - @Nullable public static final BlockType ACACIA_WALL_SIGN = init(); - @Nullable public static final BlockType ACACIA_WOOD = init(); - @Nullable public static final BlockType ACTIVATOR_RAIL = init(); - @Nullable public static final BlockType AIR = init(); - @Nullable public static final BlockType ALLIUM = init(); - @Nullable public static final BlockType AMETHYST_BLOCK = init(); - @Nullable public static final BlockType AMETHYST_CLUSTER = init(); - @Nullable public static final BlockType ANCIENT_DEBRIS = init(); - @Nullable public static final BlockType ANDESITE = init(); - @Nullable public static final BlockType ANDESITE_SLAB = init(); - @Nullable public static final BlockType ANDESITE_STAIRS = init(); - @Nullable public static final BlockType ANDESITE_WALL = init(); - @Nullable public static final BlockType ANVIL = init(); - @Nullable public static final BlockType ATTACHED_MELON_STEM = init(); - @Nullable public static final BlockType ATTACHED_PUMPKIN_STEM = init(); - @Nullable public static final BlockType AZALEA = init(); - @Nullable public static final BlockType AZALEA_LEAVES = init(); - @Nullable public static final BlockType AZURE_BLUET = init(); - @Nullable public static final BlockType BAMBOO = init(); - @Nullable public static final BlockType BAMBOO_SAPLING = init(); - @Nullable public static final BlockType BARREL = init(); - @Nullable public static final BlockType BARRIER = init(); - @Nullable public static final BlockType BASALT = init(); - @Nullable public static final BlockType BEACON = init(); - @Nullable public static final BlockType BEDROCK = init(); - @Nullable public static final BlockType BEE_NEST = init(); - @Nullable public static final BlockType BEEHIVE = init(); - @Nullable public static final BlockType BEETROOTS = init(); - @Nullable public static final BlockType BELL = init(); - @Nullable public static final BlockType BIG_DRIPLEAF = init(); - @Nullable public static final BlockType BIG_DRIPLEAF_STEM = init(); - @Nullable public static final BlockType BIRCH_BUTTON = init(); - @Nullable public static final BlockType BIRCH_DOOR = init(); - @Nullable public static final BlockType BIRCH_FENCE = init(); - @Nullable public static final BlockType BIRCH_FENCE_GATE = init(); - @Nullable public static final BlockType BIRCH_LEAVES = init(); - @Nullable public static final BlockType BIRCH_LOG = init(); - @Nullable public static final BlockType BIRCH_PLANKS = init(); - @Nullable public static final BlockType BIRCH_PRESSURE_PLATE = init(); - @Nullable public static final BlockType BIRCH_SAPLING = init(); - @Nullable public static final BlockType BIRCH_SIGN = init(); - @Nullable public static final BlockType BIRCH_SLAB = init(); - @Nullable public static final BlockType BIRCH_STAIRS = init(); - @Nullable public static final BlockType BIRCH_TRAPDOOR = init(); - @Nullable public static final BlockType BIRCH_WALL_SIGN = init(); - @Nullable public static final BlockType BIRCH_WOOD = init(); - @Nullable public static final BlockType BLACK_BANNER = init(); - @Nullable public static final BlockType BLACK_BED = init(); - @Nullable public static final BlockType BLACK_CANDLE = init(); - @Nullable public static final BlockType BLACK_CANDLE_CAKE = init(); - @Nullable public static final BlockType BLACK_CARPET = init(); - @Nullable public static final BlockType BLACK_CONCRETE = init(); - @Nullable public static final BlockType BLACK_CONCRETE_POWDER = init(); - @Nullable public static final BlockType BLACK_GLAZED_TERRACOTTA = init(); - @Nullable public static final BlockType BLACK_SHULKER_BOX = init(); - @Nullable public static final BlockType BLACK_STAINED_GLASS = init(); - @Nullable public static final BlockType BLACK_STAINED_GLASS_PANE = init(); - @Nullable public static final BlockType BLACK_TERRACOTTA = init(); - @Nullable public static final BlockType BLACK_WALL_BANNER = init(); - @Nullable public static final BlockType BLACK_WOOL = init(); - @Nullable public static final BlockType BLACKSTONE = init(); - @Nullable public static final BlockType BLACKSTONE_SLAB = init(); - @Nullable public static final BlockType BLACKSTONE_STAIRS = init(); - @Nullable public static final BlockType BLACKSTONE_WALL = init(); - @Nullable public static final BlockType BLAST_FURNACE = init(); - @Nullable public static final BlockType BLUE_BANNER = init(); - @Nullable public static final BlockType BLUE_BED = init(); - @Nullable public static final BlockType BLUE_CANDLE = init(); - @Nullable public static final BlockType BLUE_CANDLE_CAKE = init(); - @Nullable public static final BlockType BLUE_CARPET = init(); - @Nullable public static final BlockType BLUE_CONCRETE = init(); - @Nullable public static final BlockType BLUE_CONCRETE_POWDER = init(); - @Nullable public static final BlockType BLUE_GLAZED_TERRACOTTA = init(); - @Nullable public static final BlockType BLUE_ICE = init(); - @Nullable public static final BlockType BLUE_ORCHID = init(); - @Nullable public static final BlockType BLUE_SHULKER_BOX = init(); - @Nullable public static final BlockType BLUE_STAINED_GLASS = init(); - @Nullable public static final BlockType BLUE_STAINED_GLASS_PANE = init(); - @Nullable public static final BlockType BLUE_TERRACOTTA = init(); - @Nullable public static final BlockType BLUE_WALL_BANNER = init(); - @Nullable public static final BlockType BLUE_WOOL = init(); - @Nullable public static final BlockType BONE_BLOCK = init(); - @Nullable public static final BlockType BOOKSHELF = init(); - @Nullable public static final BlockType BRAIN_CORAL = init(); - @Nullable public static final BlockType BRAIN_CORAL_BLOCK = init(); - @Nullable public static final BlockType BRAIN_CORAL_FAN = init(); - @Nullable public static final BlockType BRAIN_CORAL_WALL_FAN = init(); - @Nullable public static final BlockType BREWING_STAND = init(); - @Nullable public static final BlockType BRICK_SLAB = init(); - @Nullable public static final BlockType BRICK_STAIRS = init(); - @Nullable public static final BlockType BRICK_WALL = init(); - @Nullable public static final BlockType BRICKS = init(); - @Nullable public static final BlockType BROWN_BANNER = init(); - @Nullable public static final BlockType BROWN_BED = init(); - @Nullable public static final BlockType BROWN_CANDLE = init(); - @Nullable public static final BlockType BROWN_CANDLE_CAKE = init(); - @Nullable public static final BlockType BROWN_CARPET = init(); - @Nullable public static final BlockType BROWN_CONCRETE = init(); - @Nullable public static final BlockType BROWN_CONCRETE_POWDER = init(); - @Nullable public static final BlockType BROWN_GLAZED_TERRACOTTA = init(); - @Nullable public static final BlockType BROWN_MUSHROOM = init(); - @Nullable public static final BlockType BROWN_MUSHROOM_BLOCK = init(); - @Nullable public static final BlockType BROWN_SHULKER_BOX = init(); - @Nullable public static final BlockType BROWN_STAINED_GLASS = init(); - @Nullable public static final BlockType BROWN_STAINED_GLASS_PANE = init(); - @Nullable public static final BlockType BROWN_TERRACOTTA = init(); - @Nullable public static final BlockType BROWN_WALL_BANNER = init(); - @Nullable public static final BlockType BROWN_WOOL = init(); - @Nullable public static final BlockType BUBBLE_COLUMN = init(); - @Nullable public static final BlockType BUBBLE_CORAL = init(); - @Nullable public static final BlockType BUBBLE_CORAL_BLOCK = init(); - @Nullable public static final BlockType BUBBLE_CORAL_FAN = init(); - @Nullable public static final BlockType BUBBLE_CORAL_WALL_FAN = init(); - @Nullable public static final BlockType BUDDING_AMETHYST = init(); - @Nullable public static final BlockType CACTUS = init(); - @Nullable public static final BlockType CAKE = init(); - @Nullable public static final BlockType CALCITE = init(); - @Nullable public static final BlockType CAMPFIRE = init(); - @Nullable public static final BlockType CANDLE = init(); - @Nullable public static final BlockType CANDLE_CAKE = init(); - @Nullable public static final BlockType CARROTS = init(); - @Nullable public static final BlockType CARTOGRAPHY_TABLE = init(); - @Nullable public static final BlockType CARVED_PUMPKIN = init(); - @Nullable public static final BlockType CAULDRON = init(); - @Nullable public static final BlockType CAVE_AIR = init(); - @Nullable public static final BlockType CAVE_VINES = init(); - @Nullable public static final BlockType CAVE_VINES_PLANT = init(); - @Nullable public static final BlockType CHAIN = init(); - @Nullable public static final BlockType CHAIN_COMMAND_BLOCK = init(); - @Nullable public static final BlockType CHEST = init(); - @Nullable public static final BlockType CHIPPED_ANVIL = init(); - @Nullable public static final BlockType CHISELED_DEEPSLATE = init(); - @Nullable public static final BlockType CHISELED_NETHER_BRICKS = init(); - @Nullable public static final BlockType CHISELED_POLISHED_BLACKSTONE = init(); - @Nullable public static final BlockType CHISELED_QUARTZ_BLOCK = init(); - @Nullable public static final BlockType CHISELED_RED_SANDSTONE = init(); - @Nullable public static final BlockType CHISELED_SANDSTONE = init(); - @Nullable public static final BlockType CHISELED_STONE_BRICKS = init(); - @Nullable public static final BlockType CHORUS_FLOWER = init(); - @Nullable public static final BlockType CHORUS_PLANT = init(); - @Nullable public static final BlockType CLAY = init(); - @Nullable public static final BlockType COAL_BLOCK = init(); - @Nullable public static final BlockType COAL_ORE = init(); - @Nullable public static final BlockType COARSE_DIRT = init(); - @Nullable public static final BlockType COBBLED_DEEPSLATE = init(); - @Nullable public static final BlockType COBBLED_DEEPSLATE_SLAB = init(); - @Nullable public static final BlockType COBBLED_DEEPSLATE_STAIRS = init(); - @Nullable public static final BlockType COBBLED_DEEPSLATE_WALL = init(); - @Nullable public static final BlockType COBBLESTONE = init(); - @Nullable public static final BlockType COBBLESTONE_SLAB = init(); - @Nullable public static final BlockType COBBLESTONE_STAIRS = init(); - @Nullable public static final BlockType COBBLESTONE_WALL = init(); - @Nullable public static final BlockType COBWEB = init(); - @Nullable public static final BlockType COCOA = init(); - @Nullable public static final BlockType COMMAND_BLOCK = init(); - @Nullable public static final BlockType COMPARATOR = init(); - @Nullable public static final BlockType COMPOSTER = init(); - @Nullable public static final BlockType CONDUIT = init(); - @Nullable public static final BlockType COPPER_BLOCK = init(); - @Nullable public static final BlockType COPPER_ORE = init(); - @Nullable public static final BlockType CORNFLOWER = init(); - @Nullable public static final BlockType CRACKED_DEEPSLATE_BRICKS = init(); - @Nullable public static final BlockType CRACKED_DEEPSLATE_TILES = init(); - @Nullable public static final BlockType CRACKED_NETHER_BRICKS = init(); - @Nullable public static final BlockType CRACKED_POLISHED_BLACKSTONE_BRICKS = init(); - @Nullable public static final BlockType CRACKED_STONE_BRICKS = init(); - @Nullable public static final BlockType CRAFTING_TABLE = init(); - @Nullable public static final BlockType CREEPER_HEAD = init(); - @Nullable public static final BlockType CREEPER_WALL_HEAD = init(); - @Nullable public static final BlockType CRIMSON_BUTTON = init(); - @Nullable public static final BlockType CRIMSON_DOOR = init(); - @Nullable public static final BlockType CRIMSON_FENCE = init(); - @Nullable public static final BlockType CRIMSON_FENCE_GATE = init(); - @Nullable public static final BlockType CRIMSON_FUNGUS = init(); - @Nullable public static final BlockType CRIMSON_HYPHAE = init(); - @Nullable public static final BlockType CRIMSON_NYLIUM = init(); - @Nullable public static final BlockType CRIMSON_PLANKS = init(); - @Nullable public static final BlockType CRIMSON_PRESSURE_PLATE = init(); - @Nullable public static final BlockType CRIMSON_ROOTS = init(); - @Nullable public static final BlockType CRIMSON_SIGN = init(); - @Nullable public static final BlockType CRIMSON_SLAB = init(); - @Nullable public static final BlockType CRIMSON_STAIRS = init(); - @Nullable public static final BlockType CRIMSON_STEM = init(); - @Nullable public static final BlockType CRIMSON_TRAPDOOR = init(); - @Nullable public static final BlockType CRIMSON_WALL_SIGN = init(); - @Nullable public static final BlockType CRYING_OBSIDIAN = init(); - @Nullable public static final BlockType CUT_COPPER = init(); - @Nullable public static final BlockType CUT_COPPER_SLAB = init(); - @Nullable public static final BlockType CUT_COPPER_STAIRS = init(); - @Nullable public static final BlockType CUT_RED_SANDSTONE = init(); - @Nullable public static final BlockType CUT_RED_SANDSTONE_SLAB = init(); - @Nullable public static final BlockType CUT_SANDSTONE = init(); - @Nullable public static final BlockType CUT_SANDSTONE_SLAB = init(); - @Nullable public static final BlockType CYAN_BANNER = init(); - @Nullable public static final BlockType CYAN_BED = init(); - @Nullable public static final BlockType CYAN_CANDLE = init(); - @Nullable public static final BlockType CYAN_CANDLE_CAKE = init(); - @Nullable public static final BlockType CYAN_CARPET = init(); - @Nullable public static final BlockType CYAN_CONCRETE = init(); - @Nullable public static final BlockType CYAN_CONCRETE_POWDER = init(); - @Nullable public static final BlockType CYAN_GLAZED_TERRACOTTA = init(); - @Nullable public static final BlockType CYAN_SHULKER_BOX = init(); - @Nullable public static final BlockType CYAN_STAINED_GLASS = init(); - @Nullable public static final BlockType CYAN_STAINED_GLASS_PANE = init(); - @Nullable public static final BlockType CYAN_TERRACOTTA = init(); - @Nullable public static final BlockType CYAN_WALL_BANNER = init(); - @Nullable public static final BlockType CYAN_WOOL = init(); - @Nullable public static final BlockType DAMAGED_ANVIL = init(); - @Nullable public static final BlockType DANDELION = init(); - @Nullable public static final BlockType DARK_OAK_BUTTON = init(); - @Nullable public static final BlockType DARK_OAK_DOOR = init(); - @Nullable public static final BlockType DARK_OAK_FENCE = init(); - @Nullable public static final BlockType DARK_OAK_FENCE_GATE = init(); - @Nullable public static final BlockType DARK_OAK_LEAVES = init(); - @Nullable public static final BlockType DARK_OAK_LOG = init(); - @Nullable public static final BlockType DARK_OAK_PLANKS = init(); - @Nullable public static final BlockType DARK_OAK_PRESSURE_PLATE = init(); - @Nullable public static final BlockType DARK_OAK_SAPLING = init(); - @Nullable public static final BlockType DARK_OAK_SIGN = init(); - @Nullable public static final BlockType DARK_OAK_SLAB = init(); - @Nullable public static final BlockType DARK_OAK_STAIRS = init(); - @Nullable public static final BlockType DARK_OAK_TRAPDOOR = init(); - @Nullable public static final BlockType DARK_OAK_WALL_SIGN = init(); - @Nullable public static final BlockType DARK_OAK_WOOD = init(); - @Nullable public static final BlockType DARK_PRISMARINE = init(); - @Nullable public static final BlockType DARK_PRISMARINE_SLAB = init(); - @Nullable public static final BlockType DARK_PRISMARINE_STAIRS = init(); - @Nullable public static final BlockType DAYLIGHT_DETECTOR = init(); - @Nullable public static final BlockType DEAD_BRAIN_CORAL = init(); - @Nullable public static final BlockType DEAD_BRAIN_CORAL_BLOCK = init(); - @Nullable public static final BlockType DEAD_BRAIN_CORAL_FAN = init(); - @Nullable public static final BlockType DEAD_BRAIN_CORAL_WALL_FAN = init(); - @Nullable public static final BlockType DEAD_BUBBLE_CORAL = init(); - @Nullable public static final BlockType DEAD_BUBBLE_CORAL_BLOCK = init(); - @Nullable public static final BlockType DEAD_BUBBLE_CORAL_FAN = init(); - @Nullable public static final BlockType DEAD_BUBBLE_CORAL_WALL_FAN = init(); - @Nullable public static final BlockType DEAD_BUSH = init(); - @Nullable public static final BlockType DEAD_FIRE_CORAL = init(); - @Nullable public static final BlockType DEAD_FIRE_CORAL_BLOCK = init(); - @Nullable public static final BlockType DEAD_FIRE_CORAL_FAN = init(); - @Nullable public static final BlockType DEAD_FIRE_CORAL_WALL_FAN = init(); - @Nullable public static final BlockType DEAD_HORN_CORAL = init(); - @Nullable public static final BlockType DEAD_HORN_CORAL_BLOCK = init(); - @Nullable public static final BlockType DEAD_HORN_CORAL_FAN = init(); - @Nullable public static final BlockType DEAD_HORN_CORAL_WALL_FAN = init(); - @Nullable public static final BlockType DEAD_TUBE_CORAL = init(); - @Nullable public static final BlockType DEAD_TUBE_CORAL_BLOCK = init(); - @Nullable public static final BlockType DEAD_TUBE_CORAL_FAN = init(); - @Nullable public static final BlockType DEAD_TUBE_CORAL_WALL_FAN = init(); - @Nullable public static final BlockType DEEPSLATE = init(); - @Nullable public static final BlockType DEEPSLATE_BRICK_SLAB = init(); - @Nullable public static final BlockType DEEPSLATE_BRICK_STAIRS = init(); - @Nullable public static final BlockType DEEPSLATE_BRICK_WALL = init(); - @Nullable public static final BlockType DEEPSLATE_BRICKS = init(); - @Nullable public static final BlockType DEEPSLATE_COAL_ORE = init(); - @Nullable public static final BlockType DEEPSLATE_COPPER_ORE = init(); - @Nullable public static final BlockType DEEPSLATE_DIAMOND_ORE = init(); - @Nullable public static final BlockType DEEPSLATE_EMERALD_ORE = init(); - @Nullable public static final BlockType DEEPSLATE_GOLD_ORE = init(); - @Nullable public static final BlockType DEEPSLATE_IRON_ORE = init(); - @Nullable public static final BlockType DEEPSLATE_LAPIS_ORE = init(); - @Nullable public static final BlockType DEEPSLATE_REDSTONE_ORE = init(); - @Nullable public static final BlockType DEEPSLATE_TILE_SLAB = init(); - @Nullable public static final BlockType DEEPSLATE_TILE_STAIRS = init(); - @Nullable public static final BlockType DEEPSLATE_TILE_WALL = init(); - @Nullable public static final BlockType DEEPSLATE_TILES = init(); - @Nullable public static final BlockType DETECTOR_RAIL = init(); - @Nullable public static final BlockType DIAMOND_BLOCK = init(); - @Nullable public static final BlockType DIAMOND_ORE = init(); - @Nullable public static final BlockType DIORITE = init(); - @Nullable public static final BlockType DIORITE_SLAB = init(); - @Nullable public static final BlockType DIORITE_STAIRS = init(); - @Nullable public static final BlockType DIORITE_WALL = init(); - @Nullable public static final BlockType DIRT = init(); - @Nullable public static final BlockType DIRT_PATH = init(); - @Nullable public static final BlockType DISPENSER = init(); - @Nullable public static final BlockType DRAGON_EGG = init(); - @Nullable public static final BlockType DRAGON_HEAD = init(); - @Nullable public static final BlockType DRAGON_WALL_HEAD = init(); - @Nullable public static final BlockType DRIED_KELP_BLOCK = init(); - @Nullable public static final BlockType DRIPSTONE_BLOCK = init(); - @Nullable public static final BlockType DROPPER = init(); - @Nullable public static final BlockType EMERALD_BLOCK = init(); - @Nullable public static final BlockType EMERALD_ORE = init(); - @Nullable public static final BlockType ENCHANTING_TABLE = init(); - @Nullable public static final BlockType END_GATEWAY = init(); - @Nullable public static final BlockType END_PORTAL = init(); - @Nullable public static final BlockType END_PORTAL_FRAME = init(); - @Nullable public static final BlockType END_ROD = init(); - @Nullable public static final BlockType END_STONE = init(); - @Nullable public static final BlockType END_STONE_BRICK_SLAB = init(); - @Nullable public static final BlockType END_STONE_BRICK_STAIRS = init(); - @Nullable public static final BlockType END_STONE_BRICK_WALL = init(); - @Nullable public static final BlockType END_STONE_BRICKS = init(); - @Nullable public static final BlockType EXPOSED_COPPER = init(); - @Nullable public static final BlockType ENDER_CHEST = init(); - @Nullable public static final BlockType EXPOSED_CUT_COPPER = init(); - @Nullable public static final BlockType EXPOSED_CUT_COPPER_SLAB = init(); - @Nullable public static final BlockType EXPOSED_CUT_COPPER_STAIRS = init(); - @Nullable public static final BlockType FARMLAND = init(); - @Nullable public static final BlockType FERN = init(); - @Nullable public static final BlockType FIRE = init(); - @Nullable public static final BlockType FIRE_CORAL = init(); - @Nullable public static final BlockType FIRE_CORAL_BLOCK = init(); - @Nullable public static final BlockType FIRE_CORAL_FAN = init(); - @Nullable public static final BlockType FIRE_CORAL_WALL_FAN = init(); - @Nullable public static final BlockType FLETCHING_TABLE = init(); - @Nullable public static final BlockType FLOWER_POT = init(); - @Nullable public static final BlockType FLOWERING_AZALEA = init(); - @Nullable public static final BlockType FLOWERING_AZALEA_LEAVES = init(); - @Nullable public static final BlockType FROSTED_ICE = init(); - @Nullable public static final BlockType FURNACE = init(); - @Nullable public static final BlockType GILDED_BLACKSTONE = init(); - @Nullable public static final BlockType GLASS = init(); - @Nullable public static final BlockType GLASS_PANE = init(); - @Nullable public static final BlockType GLOW_LICHEN = init(); - @Nullable public static final BlockType GLOWSTONE = init(); - @Nullable public static final BlockType GOLD_BLOCK = init(); - @Nullable public static final BlockType GOLD_ORE = init(); - @Nullable public static final BlockType GRANITE = init(); - @Nullable public static final BlockType GRANITE_SLAB = init(); - @Nullable public static final BlockType GRANITE_STAIRS = init(); - @Nullable public static final BlockType GRANITE_WALL = init(); - @Nullable public static final BlockType GRASS = init(); - @Nullable public static final BlockType GRASS_BLOCK = init(); - @Deprecated @Nullable public static final BlockType GRASS_PATH = init(); - @Nullable public static final BlockType GRAVEL = init(); - @Nullable public static final BlockType GRAY_BANNER = init(); - @Nullable public static final BlockType GRAY_BED = init(); - @Nullable public static final BlockType GREEN_CANDLE = init(); - @Nullable public static final BlockType GREEN_CANDLE_CAKE = init(); - @Nullable public static final BlockType GRAY_CARPET = init(); - @Nullable public static final BlockType GRAY_CONCRETE = init(); - @Nullable public static final BlockType GRAY_CONCRETE_POWDER = init(); - @Nullable public static final BlockType GRAY_GLAZED_TERRACOTTA = init(); - @Nullable public static final BlockType GRAY_SHULKER_BOX = init(); - @Nullable public static final BlockType GRAY_STAINED_GLASS = init(); - @Nullable public static final BlockType GRAY_STAINED_GLASS_PANE = init(); - @Nullable public static final BlockType GRAY_TERRACOTTA = init(); - @Nullable public static final BlockType GRAY_WALL_BANNER = init(); - @Nullable public static final BlockType GRAY_WOOL = init(); - @Nullable public static final BlockType GREEN_BANNER = init(); - @Nullable public static final BlockType GREEN_BED = init(); - @Nullable public static final BlockType GREEN_CARPET = init(); - @Nullable public static final BlockType GREEN_CONCRETE = init(); - @Nullable public static final BlockType GREEN_CONCRETE_POWDER = init(); - @Nullable public static final BlockType GREEN_GLAZED_TERRACOTTA = init(); - @Nullable public static final BlockType GREEN_SHULKER_BOX = init(); - @Nullable public static final BlockType GREEN_STAINED_GLASS = init(); - @Nullable public static final BlockType GREEN_STAINED_GLASS_PANE = init(); - @Nullable public static final BlockType GREEN_TERRACOTTA = init(); - @Nullable public static final BlockType GREEN_WALL_BANNER = init(); - @Nullable public static final BlockType GREEN_WOOL = init(); - @Nullable public static final BlockType GRINDSTONE = init(); - @Nullable public static final BlockType HANGING_ROOTS = init(); - @Nullable public static final BlockType HAY_BLOCK = init(); - @Nullable public static final BlockType HEAVY_WEIGHTED_PRESSURE_PLATE = init(); - @Nullable public static final BlockType HONEY_BLOCK = init(); - @Nullable public static final BlockType HONEYCOMB_BLOCK = init(); - @Nullable public static final BlockType HOPPER = init(); - @Nullable public static final BlockType HORN_CORAL = init(); - @Nullable public static final BlockType HORN_CORAL_BLOCK = init(); - @Nullable public static final BlockType HORN_CORAL_FAN = init(); - @Nullable public static final BlockType HORN_CORAL_WALL_FAN = init(); - @Nullable public static final BlockType ICE = init(); - @Nullable public static final BlockType INFESTED_CHISELED_STONE_BRICKS = init(); - @Nullable public static final BlockType INFESTED_COBBLESTONE = init(); - @Nullable public static final BlockType INFESTED_CRACKED_STONE_BRICKS = init(); - @Nullable public static final BlockType INFESTED_DEEPSLATE = init(); - @Nullable public static final BlockType INFESTED_MOSSY_STONE_BRICKS = init(); - @Nullable public static final BlockType INFESTED_STONE = init(); - @Nullable public static final BlockType INFESTED_STONE_BRICKS = init(); - @Nullable public static final BlockType IRON_BARS = init(); - @Nullable public static final BlockType IRON_BLOCK = init(); - @Nullable public static final BlockType IRON_DOOR = init(); - @Nullable public static final BlockType IRON_ORE = init(); - @Nullable public static final BlockType IRON_TRAPDOOR = init(); - @Nullable public static final BlockType JACK_O_LANTERN = init(); - @Nullable public static final BlockType JIGSAW = init(); - @Nullable public static final BlockType JUKEBOX = init(); - @Nullable public static final BlockType JUNGLE_BUTTON = init(); - @Nullable public static final BlockType JUNGLE_DOOR = init(); - @Nullable public static final BlockType JUNGLE_FENCE = init(); - @Nullable public static final BlockType JUNGLE_FENCE_GATE = init(); - @Nullable public static final BlockType JUNGLE_LEAVES = init(); - @Nullable public static final BlockType JUNGLE_LOG = init(); - @Nullable public static final BlockType JUNGLE_PLANKS = init(); - @Nullable public static final BlockType JUNGLE_PRESSURE_PLATE = init(); - @Nullable public static final BlockType JUNGLE_SAPLING = init(); - @Nullable public static final BlockType JUNGLE_SIGN = init(); - @Nullable public static final BlockType JUNGLE_SLAB = init(); - @Nullable public static final BlockType JUNGLE_STAIRS = init(); - @Nullable public static final BlockType JUNGLE_TRAPDOOR = init(); - @Nullable public static final BlockType JUNGLE_WALL_SIGN = init(); - @Nullable public static final BlockType JUNGLE_WOOD = init(); - @Nullable public static final BlockType KELP = init(); - @Nullable public static final BlockType KELP_PLANT = init(); - @Nullable public static final BlockType LADDER = init(); - @Nullable public static final BlockType LANTERN = init(); - @Nullable public static final BlockType LAPIS_BLOCK = init(); - @Nullable public static final BlockType LAPIS_ORE = init(); - @Nullable public static final BlockType LARGE_AMETHYST_BUD = init(); - @Nullable public static final BlockType LARGE_FERN = init(); - @Nullable public static final BlockType LAVA = init(); - @Nullable public static final BlockType LAVA_CAULDRON = init(); - @Nullable public static final BlockType LECTERN = init(); - @Nullable public static final BlockType LEVER = init(); - @Nullable public static final BlockType LIGHT = init(); - @Nullable public static final BlockType LIGHT_BLUE_BANNER = init(); - @Nullable public static final BlockType LIGHT_BLUE_BED = init(); - @Nullable public static final BlockType LIGHT_BLUE_CANDLE = init(); - @Nullable public static final BlockType LIGHT_BLUE_CANDLE_CAKE = init(); - @Nullable public static final BlockType LIGHT_BLUE_CARPET = init(); - @Nullable public static final BlockType LIGHT_BLUE_CONCRETE = init(); - @Nullable public static final BlockType LIGHT_BLUE_CONCRETE_POWDER = init(); - @Nullable public static final BlockType LIGHT_BLUE_GLAZED_TERRACOTTA = init(); - @Nullable public static final BlockType LIGHT_BLUE_SHULKER_BOX = init(); - @Nullable public static final BlockType LIGHT_BLUE_STAINED_GLASS = init(); - @Nullable public static final BlockType LIGHT_BLUE_STAINED_GLASS_PANE = init(); - @Nullable public static final BlockType LIGHT_BLUE_TERRACOTTA = init(); - @Nullable public static final BlockType LIGHT_BLUE_WALL_BANNER = init(); - @Nullable public static final BlockType LIGHT_BLUE_WOOL = init(); - @Nullable public static final BlockType LIGHT_GRAY_BANNER = init(); - @Nullable public static final BlockType LIGHT_GRAY_BED = init(); - @Nullable public static final BlockType LIGHT_GRAY_CANDLE = init(); - @Nullable public static final BlockType LIGHT_GRAY_CANDLE_CAKE = init(); - @Nullable public static final BlockType LIGHT_GRAY_CARPET = init(); - @Nullable public static final BlockType LIGHT_GRAY_CONCRETE = init(); - @Nullable public static final BlockType LIGHT_GRAY_CONCRETE_POWDER = init(); - @Nullable public static final BlockType LIGHT_GRAY_GLAZED_TERRACOTTA = init(); - @Nullable public static final BlockType LIGHT_GRAY_SHULKER_BOX = init(); - @Nullable public static final BlockType LIGHT_GRAY_STAINED_GLASS = init(); - @Nullable public static final BlockType LIGHT_GRAY_STAINED_GLASS_PANE = init(); - @Nullable public static final BlockType LIGHT_GRAY_TERRACOTTA = init(); - @Nullable public static final BlockType LIGHT_GRAY_WALL_BANNER = init(); - @Nullable public static final BlockType LIGHT_GRAY_WOOL = init(); - @Nullable public static final BlockType LIGHT_WEIGHTED_PRESSURE_PLATE = init(); - @Nullable public static final BlockType LIGHTNING_ROD = init(); - @Nullable public static final BlockType LILAC = init(); - @Nullable public static final BlockType LILY_OF_THE_VALLEY = init(); - @Nullable public static final BlockType LILY_PAD = init(); - @Nullable public static final BlockType LIME_BANNER = init(); - @Nullable public static final BlockType LIME_BED = init(); - @Nullable public static final BlockType LIME_CANDLE = init(); - @Nullable public static final BlockType LIME_CANDLE_CAKE = init(); - @Nullable public static final BlockType LIME_CARPET = init(); - @Nullable public static final BlockType LIME_CONCRETE = init(); - @Nullable public static final BlockType LIME_CONCRETE_POWDER = init(); - @Nullable public static final BlockType LIME_GLAZED_TERRACOTTA = init(); - @Nullable public static final BlockType LIME_SHULKER_BOX = init(); - @Nullable public static final BlockType LIME_STAINED_GLASS = init(); - @Nullable public static final BlockType LIME_STAINED_GLASS_PANE = init(); - @Nullable public static final BlockType LIME_TERRACOTTA = init(); - @Nullable public static final BlockType LIME_WALL_BANNER = init(); - @Nullable public static final BlockType LIME_WOOL = init(); - @Nullable public static final BlockType LODESTONE = init(); - @Nullable public static final BlockType LOOM = init(); - @Nullable public static final BlockType MAGENTA_BANNER = init(); - @Nullable public static final BlockType MAGENTA_BED = init(); - @Nullable public static final BlockType MAGENTA_CANDLE = init(); - @Nullable public static final BlockType MAGENTA_CANDLE_CAKE = init(); - @Nullable public static final BlockType MAGENTA_CARPET = init(); - @Nullable public static final BlockType MAGENTA_CONCRETE = init(); - @Nullable public static final BlockType MAGENTA_CONCRETE_POWDER = init(); - @Nullable public static final BlockType MAGENTA_GLAZED_TERRACOTTA = init(); - @Nullable public static final BlockType MAGENTA_SHULKER_BOX = init(); - @Nullable public static final BlockType MAGENTA_STAINED_GLASS = init(); - @Nullable public static final BlockType MAGENTA_STAINED_GLASS_PANE = init(); - @Nullable public static final BlockType MAGENTA_TERRACOTTA = init(); - @Nullable public static final BlockType MAGENTA_WALL_BANNER = init(); - @Nullable public static final BlockType MAGENTA_WOOL = init(); - @Nullable public static final BlockType MAGMA_BLOCK = init(); - @Nullable public static final BlockType MEDIUM_AMETHYST_BUD = init(); - @Nullable public static final BlockType MELON = init(); - @Nullable public static final BlockType MELON_STEM = init(); - @Nullable public static final BlockType MOSS_BLOCK = init(); - @Nullable public static final BlockType MOSS_CARPET = init(); - @Nullable public static final BlockType MOSSY_COBBLESTONE = init(); - @Nullable public static final BlockType MOSSY_COBBLESTONE_SLAB = init(); - @Nullable public static final BlockType MOSSY_COBBLESTONE_STAIRS = init(); - @Nullable public static final BlockType MOSSY_COBBLESTONE_WALL = init(); - @Nullable public static final BlockType MOSSY_STONE_BRICK_SLAB = init(); - @Nullable public static final BlockType MOSSY_STONE_BRICK_STAIRS = init(); - @Nullable public static final BlockType MOSSY_STONE_BRICK_WALL = init(); - @Nullable public static final BlockType MOSSY_STONE_BRICKS = init(); - @Nullable public static final BlockType MOVING_PISTON = init(); - @Nullable public static final BlockType MUSHROOM_STEM = init(); - @Nullable public static final BlockType MYCELIUM = init(); - @Nullable public static final BlockType NETHER_BRICK_FENCE = init(); - @Nullable public static final BlockType NETHER_BRICK_SLAB = init(); - @Nullable public static final BlockType NETHER_BRICK_STAIRS = init(); - @Nullable public static final BlockType NETHER_BRICK_WALL = init(); - @Nullable public static final BlockType NETHER_BRICKS = init(); - @Nullable public static final BlockType NETHER_GOLD_ORE = init(); - @Nullable public static final BlockType NETHER_PORTAL = init(); - @Nullable public static final BlockType NETHER_QUARTZ_ORE = init(); - @Nullable public static final BlockType NETHER_SPROUTS = init(); - @Nullable public static final BlockType NETHER_WART = init(); - @Nullable public static final BlockType NETHER_WART_BLOCK = init(); - @Nullable public static final BlockType NETHERITE_BLOCK = init(); - @Nullable public static final BlockType NETHERRACK = init(); - @Nullable public static final BlockType NOTE_BLOCK = init(); - @Nullable public static final BlockType OAK_BUTTON = init(); - @Nullable public static final BlockType OAK_DOOR = init(); - @Nullable public static final BlockType OAK_FENCE = init(); - @Nullable public static final BlockType OAK_FENCE_GATE = init(); - @Nullable public static final BlockType OAK_LEAVES = init(); - @Nullable public static final BlockType OAK_LOG = init(); - @Nullable public static final BlockType OAK_PLANKS = init(); - @Nullable public static final BlockType OAK_PRESSURE_PLATE = init(); - @Nullable public static final BlockType OAK_SAPLING = init(); - @Nullable public static final BlockType OAK_SIGN = init(); - @Nullable public static final BlockType OAK_SLAB = init(); - @Nullable public static final BlockType OAK_STAIRS = init(); - @Nullable public static final BlockType OAK_TRAPDOOR = init(); - @Nullable public static final BlockType OAK_WALL_SIGN = init(); - @Nullable public static final BlockType OAK_WOOD = init(); - @Nullable public static final BlockType OBSERVER = init(); - @Nullable public static final BlockType OBSIDIAN = init(); - @Nullable public static final BlockType ORANGE_BANNER = init(); - @Nullable public static final BlockType ORANGE_BED = init(); - @Nullable public static final BlockType ORANGE_CANDLE = init(); - @Nullable public static final BlockType ORANGE_CANDLE_CAKE = init(); - @Nullable public static final BlockType ORANGE_CARPET = init(); - @Nullable public static final BlockType ORANGE_CONCRETE = init(); - @Nullable public static final BlockType ORANGE_CONCRETE_POWDER = init(); - @Nullable public static final BlockType ORANGE_GLAZED_TERRACOTTA = init(); - @Nullable public static final BlockType ORANGE_SHULKER_BOX = init(); - @Nullable public static final BlockType ORANGE_STAINED_GLASS = init(); - @Nullable public static final BlockType ORANGE_STAINED_GLASS_PANE = init(); - @Nullable public static final BlockType ORANGE_TERRACOTTA = init(); - @Nullable public static final BlockType ORANGE_TULIP = init(); - @Nullable public static final BlockType ORANGE_WALL_BANNER = init(); - @Nullable public static final BlockType ORANGE_WOOL = init(); - @Nullable public static final BlockType OXEYE_DAISY = init(); - @Nullable public static final BlockType OXIDIZED_COPPER = init(); - @Nullable public static final BlockType OXIDIZED_CUT_COPPER = init(); - @Nullable public static final BlockType OXIDIZED_CUT_COPPER_SLAB = init(); - @Nullable public static final BlockType OXIDIZED_CUT_COPPER_STAIRS = init(); - @Nullable public static final BlockType PACKED_ICE = init(); - @Nullable public static final BlockType PEONY = init(); - @Nullable public static final BlockType PETRIFIED_OAK_SLAB = init(); - @Nullable public static final BlockType PINK_BANNER = init(); - @Nullable public static final BlockType PINK_BED = init(); - @Nullable public static final BlockType PINK_CANDLE = init(); - @Nullable public static final BlockType PINK_CANDLE_CAKE = init(); - @Nullable public static final BlockType PINK_CARPET = init(); - @Nullable public static final BlockType PINK_CONCRETE = init(); - @Nullable public static final BlockType PINK_CONCRETE_POWDER = init(); - @Nullable public static final BlockType PINK_GLAZED_TERRACOTTA = init(); - @Nullable public static final BlockType PINK_SHULKER_BOX = init(); - @Nullable public static final BlockType PINK_STAINED_GLASS = init(); - @Nullable public static final BlockType PINK_STAINED_GLASS_PANE = init(); - @Nullable public static final BlockType PINK_TERRACOTTA = init(); - @Nullable public static final BlockType PINK_TULIP = init(); - @Nullable public static final BlockType PINK_WALL_BANNER = init(); - @Nullable public static final BlockType PINK_WOOL = init(); - @Nullable public static final BlockType PISTON = init(); - @Nullable public static final BlockType PISTON_HEAD = init(); - @Nullable public static final BlockType PLAYER_HEAD = init(); - @Nullable public static final BlockType PLAYER_WALL_HEAD = init(); - @Nullable public static final BlockType PODZOL = init(); - @Nullable public static final BlockType POINTED_DRIPSTONE = init(); - @Nullable public static final BlockType POLISHED_ANDESITE = init(); - @Nullable public static final BlockType POLISHED_ANDESITE_SLAB = init(); - @Nullable public static final BlockType POLISHED_ANDESITE_STAIRS = init(); - @Nullable public static final BlockType POLISHED_BASALT = init(); - @Nullable public static final BlockType POLISHED_BLACKSTONE = init(); - @Nullable public static final BlockType POLISHED_BLACKSTONE_BRICK_SLAB = init(); - @Nullable public static final BlockType POLISHED_BLACKSTONE_BRICK_STAIRS = init(); - @Nullable public static final BlockType POLISHED_BLACKSTONE_BRICK_WALL = init(); - @Nullable public static final BlockType POLISHED_BLACKSTONE_BRICKS = init(); - @Nullable public static final BlockType POLISHED_BLACKSTONE_BUTTON = init(); - @Nullable public static final BlockType POLISHED_BLACKSTONE_PRESSURE_PLATE = init(); - @Nullable public static final BlockType POLISHED_BLACKSTONE_SLAB = init(); - @Nullable public static final BlockType POLISHED_BLACKSTONE_STAIRS = init(); - @Nullable public static final BlockType POLISHED_BLACKSTONE_WALL = init(); - @Nullable public static final BlockType POLISHED_DEEPSLATE = init(); - @Nullable public static final BlockType POLISHED_DEEPSLATE_SLAB = init(); - @Nullable public static final BlockType POLISHED_DEEPSLATE_STAIRS = init(); - @Nullable public static final BlockType POLISHED_DEEPSLATE_WALL = init(); - @Nullable public static final BlockType POLISHED_DIORITE = init(); - @Nullable public static final BlockType POLISHED_DIORITE_SLAB = init(); - @Nullable public static final BlockType POLISHED_DIORITE_STAIRS = init(); - @Nullable public static final BlockType POLISHED_GRANITE = init(); - @Nullable public static final BlockType POLISHED_GRANITE_SLAB = init(); - @Nullable public static final BlockType POLISHED_GRANITE_STAIRS = init(); - @Nullable public static final BlockType POPPY = init(); - @Nullable public static final BlockType POTATOES = init(); - @Nullable public static final BlockType POTTED_ACACIA_SAPLING = init(); - @Nullable public static final BlockType POTTED_ALLIUM = init(); - @Nullable public static final BlockType POTTED_AZALEA_BUSH = init(); - @Nullable public static final BlockType POTTED_AZURE_BLUET = init(); - @Nullable public static final BlockType POTTED_BAMBOO = init(); - @Nullable public static final BlockType POTTED_BIRCH_SAPLING = init(); - @Nullable public static final BlockType POTTED_BLUE_ORCHID = init(); - @Nullable public static final BlockType POTTED_BROWN_MUSHROOM = init(); - @Nullable public static final BlockType POTTED_CACTUS = init(); - @Nullable public static final BlockType POTTED_CORNFLOWER = init(); - @Nullable public static final BlockType POTTED_CRIMSON_FUNGUS = init(); - @Nullable public static final BlockType POTTED_CRIMSON_ROOTS = init(); - @Nullable public static final BlockType POTTED_DANDELION = init(); - @Nullable public static final BlockType POTTED_DARK_OAK_SAPLING = init(); - @Nullable public static final BlockType POTTED_DEAD_BUSH = init(); - @Nullable public static final BlockType POTTED_FERN = init(); - @Nullable public static final BlockType POTTED_FLOWERING_AZALEA_BUSH = init(); - @Nullable public static final BlockType POTTED_JUNGLE_SAPLING = init(); - @Nullable public static final BlockType POTTED_LILY_OF_THE_VALLEY = init(); - @Nullable public static final BlockType POTTED_OAK_SAPLING = init(); - @Nullable public static final BlockType POTTED_ORANGE_TULIP = init(); - @Nullable public static final BlockType POTTED_OXEYE_DAISY = init(); - @Nullable public static final BlockType POTTED_PINK_TULIP = init(); - @Nullable public static final BlockType POTTED_POPPY = init(); - @Nullable public static final BlockType POTTED_RED_MUSHROOM = init(); - @Nullable public static final BlockType POTTED_RED_TULIP = init(); - @Nullable public static final BlockType POTTED_SPRUCE_SAPLING = init(); - @Nullable public static final BlockType POTTED_WARPED_FUNGUS = init(); - @Nullable public static final BlockType POTTED_WARPED_ROOTS = init(); - @Nullable public static final BlockType POTTED_WHITE_TULIP = init(); - @Nullable public static final BlockType POTTED_WITHER_ROSE = init(); - @Nullable public static final BlockType POWDER_SNOW = init(); - @Nullable public static final BlockType POWDER_SNOW_CAULDRON = init(); - @Nullable public static final BlockType POWERED_RAIL = init(); - @Nullable public static final BlockType PRISMARINE = init(); - @Nullable public static final BlockType PRISMARINE_BRICK_SLAB = init(); - @Nullable public static final BlockType PRISMARINE_BRICK_STAIRS = init(); - @Nullable public static final BlockType PRISMARINE_BRICKS = init(); - @Nullable public static final BlockType PRISMARINE_SLAB = init(); - @Nullable public static final BlockType PRISMARINE_STAIRS = init(); - @Nullable public static final BlockType PRISMARINE_WALL = init(); - @Nullable public static final BlockType PUMPKIN = init(); - @Nullable public static final BlockType PUMPKIN_STEM = init(); - @Nullable public static final BlockType PURPLE_BANNER = init(); - @Nullable public static final BlockType PURPLE_BED = init(); - @Nullable public static final BlockType PURPLE_CANDLE = init(); - @Nullable public static final BlockType PURPLE_CANDLE_CAKE = init(); - @Nullable public static final BlockType PURPLE_CARPET = init(); - @Nullable public static final BlockType PURPLE_CONCRETE = init(); - @Nullable public static final BlockType PURPLE_CONCRETE_POWDER = init(); - @Nullable public static final BlockType PURPLE_GLAZED_TERRACOTTA = init(); - @Nullable public static final BlockType PURPLE_SHULKER_BOX = init(); - @Nullable public static final BlockType PURPLE_STAINED_GLASS = init(); - @Nullable public static final BlockType PURPLE_STAINED_GLASS_PANE = init(); - @Nullable public static final BlockType PURPLE_TERRACOTTA = init(); - @Nullable public static final BlockType PURPLE_WALL_BANNER = init(); - @Nullable public static final BlockType PURPLE_WOOL = init(); - @Nullable public static final BlockType PURPUR_BLOCK = init(); - @Nullable public static final BlockType PURPUR_PILLAR = init(); - @Nullable public static final BlockType PURPUR_SLAB = init(); - @Nullable public static final BlockType PURPUR_STAIRS = init(); - @Nullable public static final BlockType QUARTZ_BLOCK = init(); - @Nullable public static final BlockType QUARTZ_BRICKS = init(); - @Nullable public static final BlockType QUARTZ_PILLAR = init(); - @Nullable public static final BlockType QUARTZ_SLAB = init(); - @Nullable public static final BlockType QUARTZ_STAIRS = init(); - @Nullable public static final BlockType RAIL = init(); - @Nullable public static final BlockType RAW_COPPER_BLOCK = init(); - @Nullable public static final BlockType RAW_GOLD_BLOCK = init(); - @Nullable public static final BlockType RAW_IRON_BLOCK = init(); - @Nullable public static final BlockType RED_BANNER = init(); - @Nullable public static final BlockType RED_BED = init(); - @Nullable public static final BlockType RED_CANDLE = init(); - @Nullable public static final BlockType RED_CANDLE_CAKE = init(); - @Nullable public static final BlockType RED_CARPET = init(); - @Nullable public static final BlockType RED_CONCRETE = init(); - @Nullable public static final BlockType RED_CONCRETE_POWDER = init(); - @Nullable public static final BlockType RED_GLAZED_TERRACOTTA = init(); - @Nullable public static final BlockType RED_MUSHROOM = init(); - @Nullable public static final BlockType RED_MUSHROOM_BLOCK = init(); - @Nullable public static final BlockType RED_NETHER_BRICK_SLAB = init(); - @Nullable public static final BlockType RED_NETHER_BRICK_STAIRS = init(); - @Nullable public static final BlockType RED_NETHER_BRICK_WALL = init(); - @Nullable public static final BlockType RED_NETHER_BRICKS = init(); - @Nullable public static final BlockType RED_SAND = init(); - @Nullable public static final BlockType RED_SANDSTONE = init(); - @Nullable public static final BlockType RED_SANDSTONE_SLAB = init(); - @Nullable public static final BlockType RED_SANDSTONE_STAIRS = init(); - @Nullable public static final BlockType RED_SANDSTONE_WALL = init(); - @Nullable public static final BlockType RED_SHULKER_BOX = init(); - @Nullable public static final BlockType RED_STAINED_GLASS = init(); - @Nullable public static final BlockType RED_STAINED_GLASS_PANE = init(); - @Nullable public static final BlockType RED_TERRACOTTA = init(); - @Nullable public static final BlockType RED_TULIP = init(); - @Nullable public static final BlockType RED_WALL_BANNER = init(); - @Nullable public static final BlockType RED_WOOL = init(); - @Nullable public static final BlockType REDSTONE_BLOCK = init(); - @Nullable public static final BlockType REDSTONE_LAMP = init(); - @Nullable public static final BlockType REDSTONE_ORE = init(); - @Nullable public static final BlockType REDSTONE_TORCH = init(); - @Nullable public static final BlockType REDSTONE_WALL_TORCH = init(); - @Nullable public static final BlockType REDSTONE_WIRE = init(); - @Nullable public static final BlockType REPEATER = init(); - @Nullable public static final BlockType REPEATING_COMMAND_BLOCK = init(); - @Nullable public static final BlockType RESPAWN_ANCHOR = init(); - @Nullable public static final BlockType ROOTED_DIRT = init(); - @Nullable public static final BlockType ROSE_BUSH = init(); - @Nullable public static final BlockType SAND = init(); - @Nullable public static final BlockType SANDSTONE = init(); - @Nullable public static final BlockType SANDSTONE_SLAB = init(); - @Nullable public static final BlockType SANDSTONE_STAIRS = init(); - @Nullable public static final BlockType SANDSTONE_WALL = init(); - @Nullable public static final BlockType SCAFFOLDING = init(); - @Nullable public static final BlockType SCULK_SENSOR = init(); - @Nullable public static final BlockType SEA_LANTERN = init(); - @Nullable public static final BlockType SEA_PICKLE = init(); - @Nullable public static final BlockType SEAGRASS = init(); - @Nullable public static final BlockType SHROOMLIGHT = init(); - @Nullable public static final BlockType SHULKER_BOX = init(); - @Deprecated @Nullable public static final BlockType SIGN = init(); - @Nullable public static final BlockType SKELETON_SKULL = init(); - @Nullable public static final BlockType SKELETON_WALL_SKULL = init(); - @Nullable public static final BlockType SLIME_BLOCK = init(); - @Nullable public static final BlockType SMALL_AMETHYST_BUD = init(); - @Nullable public static final BlockType SMALL_DRIPLEAF = init(); - @Nullable public static final BlockType SMITHING_TABLE = init(); - @Nullable public static final BlockType SMOKER = init(); - @Nullable public static final BlockType SMOOTH_BASALT = init(); - @Nullable public static final BlockType SMOOTH_QUARTZ = init(); - @Nullable public static final BlockType SMOOTH_QUARTZ_SLAB = init(); - @Nullable public static final BlockType SMOOTH_QUARTZ_STAIRS = init(); - @Nullable public static final BlockType SMOOTH_RED_SANDSTONE = init(); - @Nullable public static final BlockType SMOOTH_RED_SANDSTONE_SLAB = init(); - @Nullable public static final BlockType SMOOTH_RED_SANDSTONE_STAIRS = init(); - @Nullable public static final BlockType SMOOTH_SANDSTONE = init(); - @Nullable public static final BlockType SMOOTH_SANDSTONE_SLAB = init(); - @Nullable public static final BlockType SMOOTH_SANDSTONE_STAIRS = init(); - @Nullable public static final BlockType SMOOTH_STONE = init(); - @Nullable public static final BlockType SMOOTH_STONE_SLAB = init(); - @Nullable public static final BlockType SNOW = init(); - @Nullable public static final BlockType SNOW_BLOCK = init(); - @Nullable public static final BlockType SOUL_CAMPFIRE = init(); - @Nullable public static final BlockType SOUL_FIRE = init(); - @Nullable public static final BlockType SOUL_LANTERN = init(); - @Nullable public static final BlockType SOUL_SAND = init(); - @Nullable public static final BlockType SOUL_SOIL = init(); - @Nullable public static final BlockType SOUL_TORCH = init(); - @Nullable public static final BlockType SOUL_WALL_TORCH = init(); - @Nullable public static final BlockType SPAWNER = init(); - @Nullable public static final BlockType SPONGE = init(); - @Nullable public static final BlockType SPORE_BLOSSOM = init(); - @Nullable public static final BlockType SPRUCE_BUTTON = init(); - @Nullable public static final BlockType SPRUCE_DOOR = init(); - @Nullable public static final BlockType SPRUCE_FENCE = init(); - @Nullable public static final BlockType SPRUCE_FENCE_GATE = init(); - @Nullable public static final BlockType SPRUCE_LEAVES = init(); - @Nullable public static final BlockType SPRUCE_LOG = init(); - @Nullable public static final BlockType SPRUCE_PLANKS = init(); - @Nullable public static final BlockType SPRUCE_PRESSURE_PLATE = init(); - @Nullable public static final BlockType SPRUCE_SAPLING = init(); - @Nullable public static final BlockType SPRUCE_SIGN = init(); - @Nullable public static final BlockType SPRUCE_SLAB = init(); - @Nullable public static final BlockType SPRUCE_STAIRS = init(); - @Nullable public static final BlockType SPRUCE_TRAPDOOR = init(); - @Nullable public static final BlockType SPRUCE_WALL_SIGN = init(); - @Nullable public static final BlockType SPRUCE_WOOD = init(); - @Nullable public static final BlockType STICKY_PISTON = init(); - @Nullable public static final BlockType STONE = init(); - @Nullable public static final BlockType STONE_BRICK_SLAB = init(); - @Nullable public static final BlockType STONE_BRICK_STAIRS = init(); - @Nullable public static final BlockType STONE_BRICK_WALL = init(); - @Nullable public static final BlockType STONE_BRICKS = init(); - @Nullable public static final BlockType STONE_BUTTON = init(); - @Nullable public static final BlockType STONE_PRESSURE_PLATE = init(); - @Nullable public static final BlockType STONE_SLAB = init(); - @Nullable public static final BlockType STONE_STAIRS = init(); - @Nullable public static final BlockType STONECUTTER = init(); - @Nullable public static final BlockType STRIPPED_ACACIA_LOG = init(); - @Nullable public static final BlockType STRIPPED_ACACIA_WOOD = init(); - @Nullable public static final BlockType STRIPPED_BIRCH_LOG = init(); - @Nullable public static final BlockType STRIPPED_BIRCH_WOOD = init(); - @Nullable public static final BlockType STRIPPED_CRIMSON_HYPHAE = init(); - @Nullable public static final BlockType STRIPPED_CRIMSON_STEM = init(); - @Nullable public static final BlockType STRIPPED_DARK_OAK_LOG = init(); - @Nullable public static final BlockType STRIPPED_DARK_OAK_WOOD = init(); - @Nullable public static final BlockType STRIPPED_JUNGLE_LOG = init(); - @Nullable public static final BlockType STRIPPED_JUNGLE_WOOD = init(); - @Nullable public static final BlockType STRIPPED_OAK_LOG = init(); - @Nullable public static final BlockType STRIPPED_OAK_WOOD = init(); - @Nullable public static final BlockType STRIPPED_SPRUCE_LOG = init(); - @Nullable public static final BlockType STRIPPED_SPRUCE_WOOD = init(); - @Nullable public static final BlockType STRIPPED_WARPED_HYPHAE = init(); - @Nullable public static final BlockType STRIPPED_WARPED_STEM = init(); - @Nullable public static final BlockType STRUCTURE_BLOCK = init(); - @Nullable public static final BlockType STRUCTURE_VOID = init(); - @Nullable public static final BlockType SUGAR_CANE = init(); - @Nullable public static final BlockType SUNFLOWER = init(); - @Nullable public static final BlockType SWEET_BERRY_BUSH = init(); - @Nullable public static final BlockType TALL_GRASS = init(); - @Nullable public static final BlockType TALL_SEAGRASS = init(); - @Nullable public static final BlockType TARGET = init(); - @Nullable public static final BlockType TERRACOTTA = init(); - @Nullable public static final BlockType TINTED_GLASS = init(); - @Nullable public static final BlockType TNT = init(); - @Nullable public static final BlockType TORCH = init(); - @Nullable public static final BlockType TRAPPED_CHEST = init(); - @Nullable public static final BlockType TRIPWIRE = init(); - @Nullable public static final BlockType TRIPWIRE_HOOK = init(); - @Nullable public static final BlockType TUBE_CORAL = init(); - @Nullable public static final BlockType TUBE_CORAL_BLOCK = init(); - @Nullable public static final BlockType TUBE_CORAL_FAN = init(); - @Nullable public static final BlockType TUBE_CORAL_WALL_FAN = init(); - @Nullable public static final BlockType TUFF = init(); - @Nullable public static final BlockType TURTLE_EGG = init(); - @Nullable public static final BlockType TWISTING_VINES = init(); - @Nullable public static final BlockType TWISTING_VINES_PLANT = init(); - @Nullable public static final BlockType VINE = init(); - @Nullable public static final BlockType VOID_AIR = init(); - @Deprecated @Nullable public static final BlockType WALL_SIGN = init(); - @Nullable public static final BlockType WALL_TORCH = init(); - @Nullable public static final BlockType WARPED_BUTTON = init(); - @Nullable public static final BlockType WARPED_DOOR = init(); - @Nullable public static final BlockType WARPED_FENCE = init(); - @Nullable public static final BlockType WARPED_FENCE_GATE = init(); - @Nullable public static final BlockType WARPED_FUNGUS = init(); - @Nullable public static final BlockType WARPED_HYPHAE = init(); - @Nullable public static final BlockType WARPED_NYLIUM = init(); - @Nullable public static final BlockType WARPED_PLANKS = init(); - @Nullable public static final BlockType WARPED_PRESSURE_PLATE = init(); - @Nullable public static final BlockType WARPED_ROOTS = init(); - @Nullable public static final BlockType WARPED_SIGN = init(); - @Nullable public static final BlockType WARPED_SLAB = init(); - @Nullable public static final BlockType WARPED_STAIRS = init(); - @Nullable public static final BlockType WARPED_STEM = init(); - @Nullable public static final BlockType WARPED_TRAPDOOR = init(); - @Nullable public static final BlockType WARPED_WALL_SIGN = init(); - @Nullable public static final BlockType WARPED_WART_BLOCK = init(); - @Nullable public static final BlockType WATER = init(); - @Nullable public static final BlockType WATER_CAULDRON = init(); - @Nullable public static final BlockType WAXED_COPPER_BLOCK = init(); - @Nullable public static final BlockType WAXED_CUT_COPPER = init(); - @Nullable public static final BlockType WAXED_CUT_COPPER_SLAB = init(); - @Nullable public static final BlockType WAXED_CUT_COPPER_STAIRS = init(); - @Nullable public static final BlockType WAXED_EXPOSED_COPPER = init(); - @Nullable public static final BlockType WAXED_EXPOSED_CUT_COPPER = init(); - @Nullable public static final BlockType WAXED_EXPOSED_CUT_COPPER_SLAB = init(); - @Nullable public static final BlockType WAXED_EXPOSED_CUT_COPPER_STAIRS = init(); - @Nullable public static final BlockType WAXED_OXIDIZED_COPPER = init(); - @Nullable public static final BlockType WAXED_OXIDIZED_CUT_COPPER = init(); - @Nullable public static final BlockType WAXED_OXIDIZED_CUT_COPPER_SLAB = init(); - @Nullable public static final BlockType WAXED_OXIDIZED_CUT_COPPER_STAIRS = init(); - @Nullable public static final BlockType WAXED_WEATHERED_COPPER = init(); - @Nullable public static final BlockType WAXED_WEATHERED_CUT_COPPER = init(); - @Nullable public static final BlockType WAXED_WEATHERED_CUT_COPPER_SLAB = init(); - @Nullable public static final BlockType WAXED_WEATHERED_CUT_COPPER_STAIRS = init(); - @Nullable public static final BlockType WEATHERED_COPPER = init(); - @Nullable public static final BlockType WEATHERED_CUT_COPPER = init(); - @Nullable public static final BlockType WEATHERED_CUT_COPPER_SLAB = init(); - @Nullable public static final BlockType WEEPING_VINES = init(); - @Nullable public static final BlockType WEATHERED_CUT_COPPER_STAIRS = init(); - @Nullable public static final BlockType WEEPING_VINES_PLANT = init(); - @Nullable public static final BlockType WET_SPONGE = init(); - @Nullable public static final BlockType WHEAT = init(); - @Nullable public static final BlockType WHITE_BANNER = init(); - @Nullable public static final BlockType WHITE_BED = init(); - @Nullable public static final BlockType WHITE_CANDLE = init(); - @Nullable public static final BlockType WHITE_CANDLE_CAKE = init(); - @Nullable public static final BlockType WHITE_CARPET = init(); - @Nullable public static final BlockType WHITE_CONCRETE = init(); - @Nullable public static final BlockType WHITE_CONCRETE_POWDER = init(); - @Nullable public static final BlockType WHITE_GLAZED_TERRACOTTA = init(); - @Nullable public static final BlockType WHITE_SHULKER_BOX = init(); - @Nullable public static final BlockType WHITE_STAINED_GLASS = init(); - @Nullable public static final BlockType WHITE_STAINED_GLASS_PANE = init(); - @Nullable public static final BlockType WHITE_TERRACOTTA = init(); - @Nullable public static final BlockType WHITE_TULIP = init(); - @Nullable public static final BlockType WHITE_WALL_BANNER = init(); - @Nullable public static final BlockType WHITE_WOOL = init(); - @Nullable public static final BlockType WITHER_ROSE = init(); - @Nullable public static final BlockType WITHER_SKELETON_SKULL = init(); - @Nullable public static final BlockType WITHER_SKELETON_WALL_SKULL = init(); - @Nullable public static final BlockType YELLOW_BANNER = init(); - @Nullable public static final BlockType YELLOW_BED = init(); - @Nullable public static final BlockType YELLOW_CANDLE = init(); - @Nullable public static final BlockType YELLOW_CANDLE_CAKE = init(); - @Nullable public static final BlockType YELLOW_CARPET = init(); - @Nullable public static final BlockType YELLOW_CONCRETE = init(); - @Nullable public static final BlockType YELLOW_CONCRETE_POWDER = init(); - @Nullable public static final BlockType YELLOW_GLAZED_TERRACOTTA = init(); - @Nullable public static final BlockType YELLOW_SHULKER_BOX = init(); - @Nullable public static final BlockType YELLOW_STAINED_GLASS = init(); - @Nullable public static final BlockType YELLOW_STAINED_GLASS_PANE = init(); - @Nullable public static final BlockType YELLOW_TERRACOTTA = init(); - @Nullable public static final BlockType YELLOW_WALL_BANNER = init(); - @Nullable public static final BlockType YELLOW_WOOL = init(); - @Nullable public static final BlockType ZOMBIE_HEAD = init(); - @Nullable public static final BlockType ZOMBIE_WALL_HEAD = init(); + @Nullable + public static final BlockType __RESERVED__ = init(); // Placeholder for null index (i.e. when block types are represented as primitives) + @Nullable + public static final BlockType ACACIA_BUTTON = init(); + @Nullable + public static final BlockType ACACIA_DOOR = init(); + @Nullable + public static final BlockType ACACIA_FENCE = init(); + @Nullable + public static final BlockType ACACIA_FENCE_GATE = init(); + @Nullable + public static final BlockType ACACIA_LEAVES = init(); + @Nullable + public static final BlockType ACACIA_LOG = init(); + @Nullable + public static final BlockType ACACIA_PLANKS = init(); + @Nullable + public static final BlockType ACACIA_PRESSURE_PLATE = init(); + @Nullable + public static final BlockType ACACIA_SAPLING = init(); + @Nullable + public static final BlockType ACACIA_SIGN = init(); + @Nullable + public static final BlockType ACACIA_SLAB = init(); + @Nullable + public static final BlockType ACACIA_STAIRS = init(); + @Nullable + public static final BlockType ACACIA_TRAPDOOR = init(); + @Nullable + public static final BlockType ACACIA_WALL_SIGN = init(); + @Nullable + public static final BlockType ACACIA_WOOD = init(); + @Nullable + public static final BlockType ACTIVATOR_RAIL = init(); + @Nullable + public static final BlockType AIR = init(); + @Nullable + public static final BlockType ALLIUM = init(); + @Nullable + public static final BlockType AMETHYST_BLOCK = init(); + @Nullable + public static final BlockType AMETHYST_CLUSTER = init(); + @Nullable + public static final BlockType ANCIENT_DEBRIS = init(); + @Nullable + public static final BlockType ANDESITE = init(); + @Nullable + public static final BlockType ANDESITE_SLAB = init(); + @Nullable + public static final BlockType ANDESITE_STAIRS = init(); + @Nullable + public static final BlockType ANDESITE_WALL = init(); + @Nullable + public static final BlockType ANVIL = init(); + @Nullable + public static final BlockType ATTACHED_MELON_STEM = init(); + @Nullable + public static final BlockType ATTACHED_PUMPKIN_STEM = init(); + @Nullable + public static final BlockType AZALEA = init(); + @Nullable + public static final BlockType AZALEA_LEAVES = init(); + @Nullable + public static final BlockType AZURE_BLUET = init(); + @Nullable + public static final BlockType BAMBOO = init(); + @Nullable + public static final BlockType BAMBOO_SAPLING = init(); + @Nullable + public static final BlockType BARREL = init(); + @Nullable + public static final BlockType BARRIER = init(); + @Nullable + public static final BlockType BASALT = init(); + @Nullable + public static final BlockType BEACON = init(); + @Nullable + public static final BlockType BEDROCK = init(); + @Nullable + public static final BlockType BEE_NEST = init(); + @Nullable + public static final BlockType BEEHIVE = init(); + @Nullable + public static final BlockType BEETROOTS = init(); + @Nullable + public static final BlockType BELL = init(); + @Nullable + public static final BlockType BIG_DRIPLEAF = init(); + @Nullable + public static final BlockType BIG_DRIPLEAF_STEM = init(); + @Nullable + public static final BlockType BIRCH_BUTTON = init(); + @Nullable + public static final BlockType BIRCH_DOOR = init(); + @Nullable + public static final BlockType BIRCH_FENCE = init(); + @Nullable + public static final BlockType BIRCH_FENCE_GATE = init(); + @Nullable + public static final BlockType BIRCH_LEAVES = init(); + @Nullable + public static final BlockType BIRCH_LOG = init(); + @Nullable + public static final BlockType BIRCH_PLANKS = init(); + @Nullable + public static final BlockType BIRCH_PRESSURE_PLATE = init(); + @Nullable + public static final BlockType BIRCH_SAPLING = init(); + @Nullable + public static final BlockType BIRCH_SIGN = init(); + @Nullable + public static final BlockType BIRCH_SLAB = init(); + @Nullable + public static final BlockType BIRCH_STAIRS = init(); + @Nullable + public static final BlockType BIRCH_TRAPDOOR = init(); + @Nullable + public static final BlockType BIRCH_WALL_SIGN = init(); + @Nullable + public static final BlockType BIRCH_WOOD = init(); + @Nullable + public static final BlockType BLACK_BANNER = init(); + @Nullable + public static final BlockType BLACK_BED = init(); + @Nullable + public static final BlockType BLACK_CANDLE = init(); + @Nullable + public static final BlockType BLACK_CANDLE_CAKE = init(); + @Nullable + public static final BlockType BLACK_CARPET = init(); + @Nullable + public static final BlockType BLACK_CONCRETE = init(); + @Nullable + public static final BlockType BLACK_CONCRETE_POWDER = init(); + @Nullable + public static final BlockType BLACK_GLAZED_TERRACOTTA = init(); + @Nullable + public static final BlockType BLACK_SHULKER_BOX = init(); + @Nullable + public static final BlockType BLACK_STAINED_GLASS = init(); + @Nullable + public static final BlockType BLACK_STAINED_GLASS_PANE = init(); + @Nullable + public static final BlockType BLACK_TERRACOTTA = init(); + @Nullable + public static final BlockType BLACK_WALL_BANNER = init(); + @Nullable + public static final BlockType BLACK_WOOL = init(); + @Nullable + public static final BlockType BLACKSTONE = init(); + @Nullable + public static final BlockType BLACKSTONE_SLAB = init(); + @Nullable + public static final BlockType BLACKSTONE_STAIRS = init(); + @Nullable + public static final BlockType BLACKSTONE_WALL = init(); + @Nullable + public static final BlockType BLAST_FURNACE = init(); + @Nullable + public static final BlockType BLUE_BANNER = init(); + @Nullable + public static final BlockType BLUE_BED = init(); + @Nullable + public static final BlockType BLUE_CANDLE = init(); + @Nullable + public static final BlockType BLUE_CANDLE_CAKE = init(); + @Nullable + public static final BlockType BLUE_CARPET = init(); + @Nullable + public static final BlockType BLUE_CONCRETE = init(); + @Nullable + public static final BlockType BLUE_CONCRETE_POWDER = init(); + @Nullable + public static final BlockType BLUE_GLAZED_TERRACOTTA = init(); + @Nullable + public static final BlockType BLUE_ICE = init(); + @Nullable + public static final BlockType BLUE_ORCHID = init(); + @Nullable + public static final BlockType BLUE_SHULKER_BOX = init(); + @Nullable + public static final BlockType BLUE_STAINED_GLASS = init(); + @Nullable + public static final BlockType BLUE_STAINED_GLASS_PANE = init(); + @Nullable + public static final BlockType BLUE_TERRACOTTA = init(); + @Nullable + public static final BlockType BLUE_WALL_BANNER = init(); + @Nullable + public static final BlockType BLUE_WOOL = init(); + @Nullable + public static final BlockType BONE_BLOCK = init(); + @Nullable + public static final BlockType BOOKSHELF = init(); + @Nullable + public static final BlockType BRAIN_CORAL = init(); + @Nullable + public static final BlockType BRAIN_CORAL_BLOCK = init(); + @Nullable + public static final BlockType BRAIN_CORAL_FAN = init(); + @Nullable + public static final BlockType BRAIN_CORAL_WALL_FAN = init(); + @Nullable + public static final BlockType BREWING_STAND = init(); + @Nullable + public static final BlockType BRICK_SLAB = init(); + @Nullable + public static final BlockType BRICK_STAIRS = init(); + @Nullable + public static final BlockType BRICK_WALL = init(); + @Nullable + public static final BlockType BRICKS = init(); + @Nullable + public static final BlockType BROWN_BANNER = init(); + @Nullable + public static final BlockType BROWN_BED = init(); + @Nullable + public static final BlockType BROWN_CANDLE = init(); + @Nullable + public static final BlockType BROWN_CANDLE_CAKE = init(); + @Nullable + public static final BlockType BROWN_CARPET = init(); + @Nullable + public static final BlockType BROWN_CONCRETE = init(); + @Nullable + public static final BlockType BROWN_CONCRETE_POWDER = init(); + @Nullable + public static final BlockType BROWN_GLAZED_TERRACOTTA = init(); + @Nullable + public static final BlockType BROWN_MUSHROOM = init(); + @Nullable + public static final BlockType BROWN_MUSHROOM_BLOCK = init(); + @Nullable + public static final BlockType BROWN_SHULKER_BOX = init(); + @Nullable + public static final BlockType BROWN_STAINED_GLASS = init(); + @Nullable + public static final BlockType BROWN_STAINED_GLASS_PANE = init(); + @Nullable + public static final BlockType BROWN_TERRACOTTA = init(); + @Nullable + public static final BlockType BROWN_WALL_BANNER = init(); + @Nullable + public static final BlockType BROWN_WOOL = init(); + @Nullable + public static final BlockType BUBBLE_COLUMN = init(); + @Nullable + public static final BlockType BUBBLE_CORAL = init(); + @Nullable + public static final BlockType BUBBLE_CORAL_BLOCK = init(); + @Nullable + public static final BlockType BUBBLE_CORAL_FAN = init(); + @Nullable + public static final BlockType BUBBLE_CORAL_WALL_FAN = init(); + @Nullable + public static final BlockType BUDDING_AMETHYST = init(); + @Nullable + public static final BlockType CACTUS = init(); + @Nullable + public static final BlockType CAKE = init(); + @Nullable + public static final BlockType CALCITE = init(); + @Nullable + public static final BlockType CAMPFIRE = init(); + @Nullable + public static final BlockType CANDLE = init(); + @Nullable + public static final BlockType CANDLE_CAKE = init(); + @Nullable + public static final BlockType CARROTS = init(); + @Nullable + public static final BlockType CARTOGRAPHY_TABLE = init(); + @Nullable + public static final BlockType CARVED_PUMPKIN = init(); + @Nullable + public static final BlockType CAULDRON = init(); + @Nullable + public static final BlockType CAVE_AIR = init(); + @Nullable + public static final BlockType CAVE_VINES = init(); + @Nullable + public static final BlockType CAVE_VINES_PLANT = init(); + @Nullable + public static final BlockType CHAIN = init(); + @Nullable + public static final BlockType CHAIN_COMMAND_BLOCK = init(); + @Nullable + public static final BlockType CHEST = init(); + @Nullable + public static final BlockType CHIPPED_ANVIL = init(); + @Nullable + public static final BlockType CHISELED_DEEPSLATE = init(); + @Nullable + public static final BlockType CHISELED_NETHER_BRICKS = init(); + @Nullable + public static final BlockType CHISELED_POLISHED_BLACKSTONE = init(); + @Nullable + public static final BlockType CHISELED_QUARTZ_BLOCK = init(); + @Nullable + public static final BlockType CHISELED_RED_SANDSTONE = init(); + @Nullable + public static final BlockType CHISELED_SANDSTONE = init(); + @Nullable + public static final BlockType CHISELED_STONE_BRICKS = init(); + @Nullable + public static final BlockType CHORUS_FLOWER = init(); + @Nullable + public static final BlockType CHORUS_PLANT = init(); + @Nullable + public static final BlockType CLAY = init(); + @Nullable + public static final BlockType COAL_BLOCK = init(); + @Nullable + public static final BlockType COAL_ORE = init(); + @Nullable + public static final BlockType COARSE_DIRT = init(); + @Nullable + public static final BlockType COBBLED_DEEPSLATE = init(); + @Nullable + public static final BlockType COBBLED_DEEPSLATE_SLAB = init(); + @Nullable + public static final BlockType COBBLED_DEEPSLATE_STAIRS = init(); + @Nullable + public static final BlockType COBBLED_DEEPSLATE_WALL = init(); + @Nullable + public static final BlockType COBBLESTONE = init(); + @Nullable + public static final BlockType COBBLESTONE_SLAB = init(); + @Nullable + public static final BlockType COBBLESTONE_STAIRS = init(); + @Nullable + public static final BlockType COBBLESTONE_WALL = init(); + @Nullable + public static final BlockType COBWEB = init(); + @Nullable + public static final BlockType COCOA = init(); + @Nullable + public static final BlockType COMMAND_BLOCK = init(); + @Nullable + public static final BlockType COMPARATOR = init(); + @Nullable + public static final BlockType COMPOSTER = init(); + @Nullable + public static final BlockType CONDUIT = init(); + @Nullable + public static final BlockType COPPER_BLOCK = init(); + @Nullable + public static final BlockType COPPER_ORE = init(); + @Nullable + public static final BlockType CORNFLOWER = init(); + @Nullable + public static final BlockType CRACKED_DEEPSLATE_BRICKS = init(); + @Nullable + public static final BlockType CRACKED_DEEPSLATE_TILES = init(); + @Nullable + public static final BlockType CRACKED_NETHER_BRICKS = init(); + @Nullable + public static final BlockType CRACKED_POLISHED_BLACKSTONE_BRICKS = init(); + @Nullable + public static final BlockType CRACKED_STONE_BRICKS = init(); + @Nullable + public static final BlockType CRAFTING_TABLE = init(); + @Nullable + public static final BlockType CREEPER_HEAD = init(); + @Nullable + public static final BlockType CREEPER_WALL_HEAD = init(); + @Nullable + public static final BlockType CRIMSON_BUTTON = init(); + @Nullable + public static final BlockType CRIMSON_DOOR = init(); + @Nullable + public static final BlockType CRIMSON_FENCE = init(); + @Nullable + public static final BlockType CRIMSON_FENCE_GATE = init(); + @Nullable + public static final BlockType CRIMSON_FUNGUS = init(); + @Nullable + public static final BlockType CRIMSON_HYPHAE = init(); + @Nullable + public static final BlockType CRIMSON_NYLIUM = init(); + @Nullable + public static final BlockType CRIMSON_PLANKS = init(); + @Nullable + public static final BlockType CRIMSON_PRESSURE_PLATE = init(); + @Nullable + public static final BlockType CRIMSON_ROOTS = init(); + @Nullable + public static final BlockType CRIMSON_SIGN = init(); + @Nullable + public static final BlockType CRIMSON_SLAB = init(); + @Nullable + public static final BlockType CRIMSON_STAIRS = init(); + @Nullable + public static final BlockType CRIMSON_STEM = init(); + @Nullable + public static final BlockType CRIMSON_TRAPDOOR = init(); + @Nullable + public static final BlockType CRIMSON_WALL_SIGN = init(); + @Nullable + public static final BlockType CRYING_OBSIDIAN = init(); + @Nullable + public static final BlockType CUT_COPPER = init(); + @Nullable + public static final BlockType CUT_COPPER_SLAB = init(); + @Nullable + public static final BlockType CUT_COPPER_STAIRS = init(); + @Nullable + public static final BlockType CUT_RED_SANDSTONE = init(); + @Nullable + public static final BlockType CUT_RED_SANDSTONE_SLAB = init(); + @Nullable + public static final BlockType CUT_SANDSTONE = init(); + @Nullable + public static final BlockType CUT_SANDSTONE_SLAB = init(); + @Nullable + public static final BlockType CYAN_BANNER = init(); + @Nullable + public static final BlockType CYAN_BED = init(); + @Nullable + public static final BlockType CYAN_CANDLE = init(); + @Nullable + public static final BlockType CYAN_CANDLE_CAKE = init(); + @Nullable + public static final BlockType CYAN_CARPET = init(); + @Nullable + public static final BlockType CYAN_CONCRETE = init(); + @Nullable + public static final BlockType CYAN_CONCRETE_POWDER = init(); + @Nullable + public static final BlockType CYAN_GLAZED_TERRACOTTA = init(); + @Nullable + public static final BlockType CYAN_SHULKER_BOX = init(); + @Nullable + public static final BlockType CYAN_STAINED_GLASS = init(); + @Nullable + public static final BlockType CYAN_STAINED_GLASS_PANE = init(); + @Nullable + public static final BlockType CYAN_TERRACOTTA = init(); + @Nullable + public static final BlockType CYAN_WALL_BANNER = init(); + @Nullable + public static final BlockType CYAN_WOOL = init(); + @Nullable + public static final BlockType DAMAGED_ANVIL = init(); + @Nullable + public static final BlockType DANDELION = init(); + @Nullable + public static final BlockType DARK_OAK_BUTTON = init(); + @Nullable + public static final BlockType DARK_OAK_DOOR = init(); + @Nullable + public static final BlockType DARK_OAK_FENCE = init(); + @Nullable + public static final BlockType DARK_OAK_FENCE_GATE = init(); + @Nullable + public static final BlockType DARK_OAK_LEAVES = init(); + @Nullable + public static final BlockType DARK_OAK_LOG = init(); + @Nullable + public static final BlockType DARK_OAK_PLANKS = init(); + @Nullable + public static final BlockType DARK_OAK_PRESSURE_PLATE = init(); + @Nullable + public static final BlockType DARK_OAK_SAPLING = init(); + @Nullable + public static final BlockType DARK_OAK_SIGN = init(); + @Nullable + public static final BlockType DARK_OAK_SLAB = init(); + @Nullable + public static final BlockType DARK_OAK_STAIRS = init(); + @Nullable + public static final BlockType DARK_OAK_TRAPDOOR = init(); + @Nullable + public static final BlockType DARK_OAK_WALL_SIGN = init(); + @Nullable + public static final BlockType DARK_OAK_WOOD = init(); + @Nullable + public static final BlockType DARK_PRISMARINE = init(); + @Nullable + public static final BlockType DARK_PRISMARINE_SLAB = init(); + @Nullable + public static final BlockType DARK_PRISMARINE_STAIRS = init(); + @Nullable + public static final BlockType DAYLIGHT_DETECTOR = init(); + @Nullable + public static final BlockType DEAD_BRAIN_CORAL = init(); + @Nullable + public static final BlockType DEAD_BRAIN_CORAL_BLOCK = init(); + @Nullable + public static final BlockType DEAD_BRAIN_CORAL_FAN = init(); + @Nullable + public static final BlockType DEAD_BRAIN_CORAL_WALL_FAN = init(); + @Nullable + public static final BlockType DEAD_BUBBLE_CORAL = init(); + @Nullable + public static final BlockType DEAD_BUBBLE_CORAL_BLOCK = init(); + @Nullable + public static final BlockType DEAD_BUBBLE_CORAL_FAN = init(); + @Nullable + public static final BlockType DEAD_BUBBLE_CORAL_WALL_FAN = init(); + @Nullable + public static final BlockType DEAD_BUSH = init(); + @Nullable + public static final BlockType DEAD_FIRE_CORAL = init(); + @Nullable + public static final BlockType DEAD_FIRE_CORAL_BLOCK = init(); + @Nullable + public static final BlockType DEAD_FIRE_CORAL_FAN = init(); + @Nullable + public static final BlockType DEAD_FIRE_CORAL_WALL_FAN = init(); + @Nullable + public static final BlockType DEAD_HORN_CORAL = init(); + @Nullable + public static final BlockType DEAD_HORN_CORAL_BLOCK = init(); + @Nullable + public static final BlockType DEAD_HORN_CORAL_FAN = init(); + @Nullable + public static final BlockType DEAD_HORN_CORAL_WALL_FAN = init(); + @Nullable + public static final BlockType DEAD_TUBE_CORAL = init(); + @Nullable + public static final BlockType DEAD_TUBE_CORAL_BLOCK = init(); + @Nullable + public static final BlockType DEAD_TUBE_CORAL_FAN = init(); + @Nullable + public static final BlockType DEAD_TUBE_CORAL_WALL_FAN = init(); + @Nullable + public static final BlockType DEEPSLATE = init(); + @Nullable + public static final BlockType DEEPSLATE_BRICK_SLAB = init(); + @Nullable + public static final BlockType DEEPSLATE_BRICK_STAIRS = init(); + @Nullable + public static final BlockType DEEPSLATE_BRICK_WALL = init(); + @Nullable + public static final BlockType DEEPSLATE_BRICKS = init(); + @Nullable + public static final BlockType DEEPSLATE_COAL_ORE = init(); + @Nullable + public static final BlockType DEEPSLATE_COPPER_ORE = init(); + @Nullable + public static final BlockType DEEPSLATE_DIAMOND_ORE = init(); + @Nullable + public static final BlockType DEEPSLATE_EMERALD_ORE = init(); + @Nullable + public static final BlockType DEEPSLATE_GOLD_ORE = init(); + @Nullable + public static final BlockType DEEPSLATE_IRON_ORE = init(); + @Nullable + public static final BlockType DEEPSLATE_LAPIS_ORE = init(); + @Nullable + public static final BlockType DEEPSLATE_REDSTONE_ORE = init(); + @Nullable + public static final BlockType DEEPSLATE_TILE_SLAB = init(); + @Nullable + public static final BlockType DEEPSLATE_TILE_STAIRS = init(); + @Nullable + public static final BlockType DEEPSLATE_TILE_WALL = init(); + @Nullable + public static final BlockType DEEPSLATE_TILES = init(); + @Nullable + public static final BlockType DETECTOR_RAIL = init(); + @Nullable + public static final BlockType DIAMOND_BLOCK = init(); + @Nullable + public static final BlockType DIAMOND_ORE = init(); + @Nullable + public static final BlockType DIORITE = init(); + @Nullable + public static final BlockType DIORITE_SLAB = init(); + @Nullable + public static final BlockType DIORITE_STAIRS = init(); + @Nullable + public static final BlockType DIORITE_WALL = init(); + @Nullable + public static final BlockType DIRT = init(); + @Nullable + public static final BlockType DIRT_PATH = init(); + @Nullable + public static final BlockType DISPENSER = init(); + @Nullable + public static final BlockType DRAGON_EGG = init(); + @Nullable + public static final BlockType DRAGON_HEAD = init(); + @Nullable + public static final BlockType DRAGON_WALL_HEAD = init(); + @Nullable + public static final BlockType DRIED_KELP_BLOCK = init(); + @Nullable + public static final BlockType DRIPSTONE_BLOCK = init(); + @Nullable + public static final BlockType DROPPER = init(); + @Nullable + public static final BlockType EMERALD_BLOCK = init(); + @Nullable + public static final BlockType EMERALD_ORE = init(); + @Nullable + public static final BlockType ENCHANTING_TABLE = init(); + @Nullable + public static final BlockType END_GATEWAY = init(); + @Nullable + public static final BlockType END_PORTAL = init(); + @Nullable + public static final BlockType END_PORTAL_FRAME = init(); + @Nullable + public static final BlockType END_ROD = init(); + @Nullable + public static final BlockType END_STONE = init(); + @Nullable + public static final BlockType END_STONE_BRICK_SLAB = init(); + @Nullable + public static final BlockType END_STONE_BRICK_STAIRS = init(); + @Nullable + public static final BlockType END_STONE_BRICK_WALL = init(); + @Nullable + public static final BlockType END_STONE_BRICKS = init(); + @Nullable + public static final BlockType EXPOSED_COPPER = init(); + @Nullable + public static final BlockType ENDER_CHEST = init(); + @Nullable + public static final BlockType EXPOSED_CUT_COPPER = init(); + @Nullable + public static final BlockType EXPOSED_CUT_COPPER_SLAB = init(); + @Nullable + public static final BlockType EXPOSED_CUT_COPPER_STAIRS = init(); + @Nullable + public static final BlockType FARMLAND = init(); + @Nullable + public static final BlockType FERN = init(); + @Nullable + public static final BlockType FIRE = init(); + @Nullable + public static final BlockType FIRE_CORAL = init(); + @Nullable + public static final BlockType FIRE_CORAL_BLOCK = init(); + @Nullable + public static final BlockType FIRE_CORAL_FAN = init(); + @Nullable + public static final BlockType FIRE_CORAL_WALL_FAN = init(); + @Nullable + public static final BlockType FLETCHING_TABLE = init(); + @Nullable + public static final BlockType FLOWER_POT = init(); + @Nullable + public static final BlockType FLOWERING_AZALEA = init(); + @Nullable + public static final BlockType FLOWERING_AZALEA_LEAVES = init(); + @Nullable + public static final BlockType FROSTED_ICE = init(); + @Nullable + public static final BlockType FURNACE = init(); + @Nullable + public static final BlockType GILDED_BLACKSTONE = init(); + @Nullable + public static final BlockType GLASS = init(); + @Nullable + public static final BlockType GLASS_PANE = init(); + @Nullable + public static final BlockType GLOW_LICHEN = init(); + @Nullable + public static final BlockType GLOWSTONE = init(); + @Nullable + public static final BlockType GOLD_BLOCK = init(); + @Nullable + public static final BlockType GOLD_ORE = init(); + @Nullable + public static final BlockType GRANITE = init(); + @Nullable + public static final BlockType GRANITE_SLAB = init(); + @Nullable + public static final BlockType GRANITE_STAIRS = init(); + @Nullable + public static final BlockType GRANITE_WALL = init(); + @Nullable + public static final BlockType GRASS = init(); + @Nullable + public static final BlockType GRASS_BLOCK = init(); + @Deprecated + @Nullable + public static final BlockType GRASS_PATH = init(); + @Nullable + public static final BlockType GRAVEL = init(); + @Nullable + public static final BlockType GRAY_BANNER = init(); + @Nullable + public static final BlockType GRAY_BED = init(); + @Nullable + public static final BlockType GREEN_CANDLE = init(); + @Nullable + public static final BlockType GREEN_CANDLE_CAKE = init(); + @Nullable + public static final BlockType GRAY_CARPET = init(); + @Nullable + public static final BlockType GRAY_CONCRETE = init(); + @Nullable + public static final BlockType GRAY_CONCRETE_POWDER = init(); + @Nullable + public static final BlockType GRAY_GLAZED_TERRACOTTA = init(); + @Nullable + public static final BlockType GRAY_SHULKER_BOX = init(); + @Nullable + public static final BlockType GRAY_STAINED_GLASS = init(); + @Nullable + public static final BlockType GRAY_STAINED_GLASS_PANE = init(); + @Nullable + public static final BlockType GRAY_TERRACOTTA = init(); + @Nullable + public static final BlockType GRAY_WALL_BANNER = init(); + @Nullable + public static final BlockType GRAY_WOOL = init(); + @Nullable + public static final BlockType GREEN_BANNER = init(); + @Nullable + public static final BlockType GREEN_BED = init(); + @Nullable + public static final BlockType GREEN_CARPET = init(); + @Nullable + public static final BlockType GREEN_CONCRETE = init(); + @Nullable + public static final BlockType GREEN_CONCRETE_POWDER = init(); + @Nullable + public static final BlockType GREEN_GLAZED_TERRACOTTA = init(); + @Nullable + public static final BlockType GREEN_SHULKER_BOX = init(); + @Nullable + public static final BlockType GREEN_STAINED_GLASS = init(); + @Nullable + public static final BlockType GREEN_STAINED_GLASS_PANE = init(); + @Nullable + public static final BlockType GREEN_TERRACOTTA = init(); + @Nullable + public static final BlockType GREEN_WALL_BANNER = init(); + @Nullable + public static final BlockType GREEN_WOOL = init(); + @Nullable + public static final BlockType GRINDSTONE = init(); + @Nullable + public static final BlockType HANGING_ROOTS = init(); + @Nullable + public static final BlockType HAY_BLOCK = init(); + @Nullable + public static final BlockType HEAVY_WEIGHTED_PRESSURE_PLATE = init(); + @Nullable + public static final BlockType HONEY_BLOCK = init(); + @Nullable + public static final BlockType HONEYCOMB_BLOCK = init(); + @Nullable + public static final BlockType HOPPER = init(); + @Nullable + public static final BlockType HORN_CORAL = init(); + @Nullable + public static final BlockType HORN_CORAL_BLOCK = init(); + @Nullable + public static final BlockType HORN_CORAL_FAN = init(); + @Nullable + public static final BlockType HORN_CORAL_WALL_FAN = init(); + @Nullable + public static final BlockType ICE = init(); + @Nullable + public static final BlockType INFESTED_CHISELED_STONE_BRICKS = init(); + @Nullable + public static final BlockType INFESTED_COBBLESTONE = init(); + @Nullable + public static final BlockType INFESTED_CRACKED_STONE_BRICKS = init(); + @Nullable + public static final BlockType INFESTED_DEEPSLATE = init(); + @Nullable + public static final BlockType INFESTED_MOSSY_STONE_BRICKS = init(); + @Nullable + public static final BlockType INFESTED_STONE = init(); + @Nullable + public static final BlockType INFESTED_STONE_BRICKS = init(); + @Nullable + public static final BlockType IRON_BARS = init(); + @Nullable + public static final BlockType IRON_BLOCK = init(); + @Nullable + public static final BlockType IRON_DOOR = init(); + @Nullable + public static final BlockType IRON_ORE = init(); + @Nullable + public static final BlockType IRON_TRAPDOOR = init(); + @Nullable + public static final BlockType JACK_O_LANTERN = init(); + @Nullable + public static final BlockType JIGSAW = init(); + @Nullable + public static final BlockType JUKEBOX = init(); + @Nullable + public static final BlockType JUNGLE_BUTTON = init(); + @Nullable + public static final BlockType JUNGLE_DOOR = init(); + @Nullable + public static final BlockType JUNGLE_FENCE = init(); + @Nullable + public static final BlockType JUNGLE_FENCE_GATE = init(); + @Nullable + public static final BlockType JUNGLE_LEAVES = init(); + @Nullable + public static final BlockType JUNGLE_LOG = init(); + @Nullable + public static final BlockType JUNGLE_PLANKS = init(); + @Nullable + public static final BlockType JUNGLE_PRESSURE_PLATE = init(); + @Nullable + public static final BlockType JUNGLE_SAPLING = init(); + @Nullable + public static final BlockType JUNGLE_SIGN = init(); + @Nullable + public static final BlockType JUNGLE_SLAB = init(); + @Nullable + public static final BlockType JUNGLE_STAIRS = init(); + @Nullable + public static final BlockType JUNGLE_TRAPDOOR = init(); + @Nullable + public static final BlockType JUNGLE_WALL_SIGN = init(); + @Nullable + public static final BlockType JUNGLE_WOOD = init(); + @Nullable + public static final BlockType KELP = init(); + @Nullable + public static final BlockType KELP_PLANT = init(); + @Nullable + public static final BlockType LADDER = init(); + @Nullable + public static final BlockType LANTERN = init(); + @Nullable + public static final BlockType LAPIS_BLOCK = init(); + @Nullable + public static final BlockType LAPIS_ORE = init(); + @Nullable + public static final BlockType LARGE_AMETHYST_BUD = init(); + @Nullable + public static final BlockType LARGE_FERN = init(); + @Nullable + public static final BlockType LAVA = init(); + @Nullable + public static final BlockType LAVA_CAULDRON = init(); + @Nullable + public static final BlockType LECTERN = init(); + @Nullable + public static final BlockType LEVER = init(); + @Nullable + public static final BlockType LIGHT = init(); + @Nullable + public static final BlockType LIGHT_BLUE_BANNER = init(); + @Nullable + public static final BlockType LIGHT_BLUE_BED = init(); + @Nullable + public static final BlockType LIGHT_BLUE_CANDLE = init(); + @Nullable + public static final BlockType LIGHT_BLUE_CANDLE_CAKE = init(); + @Nullable + public static final BlockType LIGHT_BLUE_CARPET = init(); + @Nullable + public static final BlockType LIGHT_BLUE_CONCRETE = init(); + @Nullable + public static final BlockType LIGHT_BLUE_CONCRETE_POWDER = init(); + @Nullable + public static final BlockType LIGHT_BLUE_GLAZED_TERRACOTTA = init(); + @Nullable + public static final BlockType LIGHT_BLUE_SHULKER_BOX = init(); + @Nullable + public static final BlockType LIGHT_BLUE_STAINED_GLASS = init(); + @Nullable + public static final BlockType LIGHT_BLUE_STAINED_GLASS_PANE = init(); + @Nullable + public static final BlockType LIGHT_BLUE_TERRACOTTA = init(); + @Nullable + public static final BlockType LIGHT_BLUE_WALL_BANNER = init(); + @Nullable + public static final BlockType LIGHT_BLUE_WOOL = init(); + @Nullable + public static final BlockType LIGHT_GRAY_BANNER = init(); + @Nullable + public static final BlockType LIGHT_GRAY_BED = init(); + @Nullable + public static final BlockType LIGHT_GRAY_CANDLE = init(); + @Nullable + public static final BlockType LIGHT_GRAY_CANDLE_CAKE = init(); + @Nullable + public static final BlockType LIGHT_GRAY_CARPET = init(); + @Nullable + public static final BlockType LIGHT_GRAY_CONCRETE = init(); + @Nullable + public static final BlockType LIGHT_GRAY_CONCRETE_POWDER = init(); + @Nullable + public static final BlockType LIGHT_GRAY_GLAZED_TERRACOTTA = init(); + @Nullable + public static final BlockType LIGHT_GRAY_SHULKER_BOX = init(); + @Nullable + public static final BlockType LIGHT_GRAY_STAINED_GLASS = init(); + @Nullable + public static final BlockType LIGHT_GRAY_STAINED_GLASS_PANE = init(); + @Nullable + public static final BlockType LIGHT_GRAY_TERRACOTTA = init(); + @Nullable + public static final BlockType LIGHT_GRAY_WALL_BANNER = init(); + @Nullable + public static final BlockType LIGHT_GRAY_WOOL = init(); + @Nullable + public static final BlockType LIGHT_WEIGHTED_PRESSURE_PLATE = init(); + @Nullable + public static final BlockType LIGHTNING_ROD = init(); + @Nullable + public static final BlockType LILAC = init(); + @Nullable + public static final BlockType LILY_OF_THE_VALLEY = init(); + @Nullable + public static final BlockType LILY_PAD = init(); + @Nullable + public static final BlockType LIME_BANNER = init(); + @Nullable + public static final BlockType LIME_BED = init(); + @Nullable + public static final BlockType LIME_CANDLE = init(); + @Nullable + public static final BlockType LIME_CANDLE_CAKE = init(); + @Nullable + public static final BlockType LIME_CARPET = init(); + @Nullable + public static final BlockType LIME_CONCRETE = init(); + @Nullable + public static final BlockType LIME_CONCRETE_POWDER = init(); + @Nullable + public static final BlockType LIME_GLAZED_TERRACOTTA = init(); + @Nullable + public static final BlockType LIME_SHULKER_BOX = init(); + @Nullable + public static final BlockType LIME_STAINED_GLASS = init(); + @Nullable + public static final BlockType LIME_STAINED_GLASS_PANE = init(); + @Nullable + public static final BlockType LIME_TERRACOTTA = init(); + @Nullable + public static final BlockType LIME_WALL_BANNER = init(); + @Nullable + public static final BlockType LIME_WOOL = init(); + @Nullable + public static final BlockType LODESTONE = init(); + @Nullable + public static final BlockType LOOM = init(); + @Nullable + public static final BlockType MAGENTA_BANNER = init(); + @Nullable + public static final BlockType MAGENTA_BED = init(); + @Nullable + public static final BlockType MAGENTA_CANDLE = init(); + @Nullable + public static final BlockType MAGENTA_CANDLE_CAKE = init(); + @Nullable + public static final BlockType MAGENTA_CARPET = init(); + @Nullable + public static final BlockType MAGENTA_CONCRETE = init(); + @Nullable + public static final BlockType MAGENTA_CONCRETE_POWDER = init(); + @Nullable + public static final BlockType MAGENTA_GLAZED_TERRACOTTA = init(); + @Nullable + public static final BlockType MAGENTA_SHULKER_BOX = init(); + @Nullable + public static final BlockType MAGENTA_STAINED_GLASS = init(); + @Nullable + public static final BlockType MAGENTA_STAINED_GLASS_PANE = init(); + @Nullable + public static final BlockType MAGENTA_TERRACOTTA = init(); + @Nullable + public static final BlockType MAGENTA_WALL_BANNER = init(); + @Nullable + public static final BlockType MAGENTA_WOOL = init(); + @Nullable + public static final BlockType MAGMA_BLOCK = init(); + @Nullable + public static final BlockType MEDIUM_AMETHYST_BUD = init(); + @Nullable + public static final BlockType MELON = init(); + @Nullable + public static final BlockType MELON_STEM = init(); + @Nullable + public static final BlockType MOSS_BLOCK = init(); + @Nullable + public static final BlockType MOSS_CARPET = init(); + @Nullable + public static final BlockType MOSSY_COBBLESTONE = init(); + @Nullable + public static final BlockType MOSSY_COBBLESTONE_SLAB = init(); + @Nullable + public static final BlockType MOSSY_COBBLESTONE_STAIRS = init(); + @Nullable + public static final BlockType MOSSY_COBBLESTONE_WALL = init(); + @Nullable + public static final BlockType MOSSY_STONE_BRICK_SLAB = init(); + @Nullable + public static final BlockType MOSSY_STONE_BRICK_STAIRS = init(); + @Nullable + public static final BlockType MOSSY_STONE_BRICK_WALL = init(); + @Nullable + public static final BlockType MOSSY_STONE_BRICKS = init(); + @Nullable + public static final BlockType MOVING_PISTON = init(); + @Nullable + public static final BlockType MUSHROOM_STEM = init(); + @Nullable + public static final BlockType MYCELIUM = init(); + @Nullable + public static final BlockType NETHER_BRICK_FENCE = init(); + @Nullable + public static final BlockType NETHER_BRICK_SLAB = init(); + @Nullable + public static final BlockType NETHER_BRICK_STAIRS = init(); + @Nullable + public static final BlockType NETHER_BRICK_WALL = init(); + @Nullable + public static final BlockType NETHER_BRICKS = init(); + @Nullable + public static final BlockType NETHER_GOLD_ORE = init(); + @Nullable + public static final BlockType NETHER_PORTAL = init(); + @Nullable + public static final BlockType NETHER_QUARTZ_ORE = init(); + @Nullable + public static final BlockType NETHER_SPROUTS = init(); + @Nullable + public static final BlockType NETHER_WART = init(); + @Nullable + public static final BlockType NETHER_WART_BLOCK = init(); + @Nullable + public static final BlockType NETHERITE_BLOCK = init(); + @Nullable + public static final BlockType NETHERRACK = init(); + @Nullable + public static final BlockType NOTE_BLOCK = init(); + @Nullable + public static final BlockType OAK_BUTTON = init(); + @Nullable + public static final BlockType OAK_DOOR = init(); + @Nullable + public static final BlockType OAK_FENCE = init(); + @Nullable + public static final BlockType OAK_FENCE_GATE = init(); + @Nullable + public static final BlockType OAK_LEAVES = init(); + @Nullable + public static final BlockType OAK_LOG = init(); + @Nullable + public static final BlockType OAK_PLANKS = init(); + @Nullable + public static final BlockType OAK_PRESSURE_PLATE = init(); + @Nullable + public static final BlockType OAK_SAPLING = init(); + @Nullable + public static final BlockType OAK_SIGN = init(); + @Nullable + public static final BlockType OAK_SLAB = init(); + @Nullable + public static final BlockType OAK_STAIRS = init(); + @Nullable + public static final BlockType OAK_TRAPDOOR = init(); + @Nullable + public static final BlockType OAK_WALL_SIGN = init(); + @Nullable + public static final BlockType OAK_WOOD = init(); + @Nullable + public static final BlockType OBSERVER = init(); + @Nullable + public static final BlockType OBSIDIAN = init(); + @Nullable + public static final BlockType ORANGE_BANNER = init(); + @Nullable + public static final BlockType ORANGE_BED = init(); + @Nullable + public static final BlockType ORANGE_CANDLE = init(); + @Nullable + public static final BlockType ORANGE_CANDLE_CAKE = init(); + @Nullable + public static final BlockType ORANGE_CARPET = init(); + @Nullable + public static final BlockType ORANGE_CONCRETE = init(); + @Nullable + public static final BlockType ORANGE_CONCRETE_POWDER = init(); + @Nullable + public static final BlockType ORANGE_GLAZED_TERRACOTTA = init(); + @Nullable + public static final BlockType ORANGE_SHULKER_BOX = init(); + @Nullable + public static final BlockType ORANGE_STAINED_GLASS = init(); + @Nullable + public static final BlockType ORANGE_STAINED_GLASS_PANE = init(); + @Nullable + public static final BlockType ORANGE_TERRACOTTA = init(); + @Nullable + public static final BlockType ORANGE_TULIP = init(); + @Nullable + public static final BlockType ORANGE_WALL_BANNER = init(); + @Nullable + public static final BlockType ORANGE_WOOL = init(); + @Nullable + public static final BlockType OXEYE_DAISY = init(); + @Nullable + public static final BlockType OXIDIZED_COPPER = init(); + @Nullable + public static final BlockType OXIDIZED_CUT_COPPER = init(); + @Nullable + public static final BlockType OXIDIZED_CUT_COPPER_SLAB = init(); + @Nullable + public static final BlockType OXIDIZED_CUT_COPPER_STAIRS = init(); + @Nullable + public static final BlockType PACKED_ICE = init(); + @Nullable + public static final BlockType PEONY = init(); + @Nullable + public static final BlockType PETRIFIED_OAK_SLAB = init(); + @Nullable + public static final BlockType PINK_BANNER = init(); + @Nullable + public static final BlockType PINK_BED = init(); + @Nullable + public static final BlockType PINK_CANDLE = init(); + @Nullable + public static final BlockType PINK_CANDLE_CAKE = init(); + @Nullable + public static final BlockType PINK_CARPET = init(); + @Nullable + public static final BlockType PINK_CONCRETE = init(); + @Nullable + public static final BlockType PINK_CONCRETE_POWDER = init(); + @Nullable + public static final BlockType PINK_GLAZED_TERRACOTTA = init(); + @Nullable + public static final BlockType PINK_SHULKER_BOX = init(); + @Nullable + public static final BlockType PINK_STAINED_GLASS = init(); + @Nullable + public static final BlockType PINK_STAINED_GLASS_PANE = init(); + @Nullable + public static final BlockType PINK_TERRACOTTA = init(); + @Nullable + public static final BlockType PINK_TULIP = init(); + @Nullable + public static final BlockType PINK_WALL_BANNER = init(); + @Nullable + public static final BlockType PINK_WOOL = init(); + @Nullable + public static final BlockType PISTON = init(); + @Nullable + public static final BlockType PISTON_HEAD = init(); + @Nullable + public static final BlockType PLAYER_HEAD = init(); + @Nullable + public static final BlockType PLAYER_WALL_HEAD = init(); + @Nullable + public static final BlockType PODZOL = init(); + @Nullable + public static final BlockType POINTED_DRIPSTONE = init(); + @Nullable + public static final BlockType POLISHED_ANDESITE = init(); + @Nullable + public static final BlockType POLISHED_ANDESITE_SLAB = init(); + @Nullable + public static final BlockType POLISHED_ANDESITE_STAIRS = init(); + @Nullable + public static final BlockType POLISHED_BASALT = init(); + @Nullable + public static final BlockType POLISHED_BLACKSTONE = init(); + @Nullable + public static final BlockType POLISHED_BLACKSTONE_BRICK_SLAB = init(); + @Nullable + public static final BlockType POLISHED_BLACKSTONE_BRICK_STAIRS = init(); + @Nullable + public static final BlockType POLISHED_BLACKSTONE_BRICK_WALL = init(); + @Nullable + public static final BlockType POLISHED_BLACKSTONE_BRICKS = init(); + @Nullable + public static final BlockType POLISHED_BLACKSTONE_BUTTON = init(); + @Nullable + public static final BlockType POLISHED_BLACKSTONE_PRESSURE_PLATE = init(); + @Nullable + public static final BlockType POLISHED_BLACKSTONE_SLAB = init(); + @Nullable + public static final BlockType POLISHED_BLACKSTONE_STAIRS = init(); + @Nullable + public static final BlockType POLISHED_BLACKSTONE_WALL = init(); + @Nullable + public static final BlockType POLISHED_DEEPSLATE = init(); + @Nullable + public static final BlockType POLISHED_DEEPSLATE_SLAB = init(); + @Nullable + public static final BlockType POLISHED_DEEPSLATE_STAIRS = init(); + @Nullable + public static final BlockType POLISHED_DEEPSLATE_WALL = init(); + @Nullable + public static final BlockType POLISHED_DIORITE = init(); + @Nullable + public static final BlockType POLISHED_DIORITE_SLAB = init(); + @Nullable + public static final BlockType POLISHED_DIORITE_STAIRS = init(); + @Nullable + public static final BlockType POLISHED_GRANITE = init(); + @Nullable + public static final BlockType POLISHED_GRANITE_SLAB = init(); + @Nullable + public static final BlockType POLISHED_GRANITE_STAIRS = init(); + @Nullable + public static final BlockType POPPY = init(); + @Nullable + public static final BlockType POTATOES = init(); + @Nullable + public static final BlockType POTTED_ACACIA_SAPLING = init(); + @Nullable + public static final BlockType POTTED_ALLIUM = init(); + @Nullable + public static final BlockType POTTED_AZALEA_BUSH = init(); + @Nullable + public static final BlockType POTTED_AZURE_BLUET = init(); + @Nullable + public static final BlockType POTTED_BAMBOO = init(); + @Nullable + public static final BlockType POTTED_BIRCH_SAPLING = init(); + @Nullable + public static final BlockType POTTED_BLUE_ORCHID = init(); + @Nullable + public static final BlockType POTTED_BROWN_MUSHROOM = init(); + @Nullable + public static final BlockType POTTED_CACTUS = init(); + @Nullable + public static final BlockType POTTED_CORNFLOWER = init(); + @Nullable + public static final BlockType POTTED_CRIMSON_FUNGUS = init(); + @Nullable + public static final BlockType POTTED_CRIMSON_ROOTS = init(); + @Nullable + public static final BlockType POTTED_DANDELION = init(); + @Nullable + public static final BlockType POTTED_DARK_OAK_SAPLING = init(); + @Nullable + public static final BlockType POTTED_DEAD_BUSH = init(); + @Nullable + public static final BlockType POTTED_FERN = init(); + @Nullable + public static final BlockType POTTED_FLOWERING_AZALEA_BUSH = init(); + @Nullable + public static final BlockType POTTED_JUNGLE_SAPLING = init(); + @Nullable + public static final BlockType POTTED_LILY_OF_THE_VALLEY = init(); + @Nullable + public static final BlockType POTTED_OAK_SAPLING = init(); + @Nullable + public static final BlockType POTTED_ORANGE_TULIP = init(); + @Nullable + public static final BlockType POTTED_OXEYE_DAISY = init(); + @Nullable + public static final BlockType POTTED_PINK_TULIP = init(); + @Nullable + public static final BlockType POTTED_POPPY = init(); + @Nullable + public static final BlockType POTTED_RED_MUSHROOM = init(); + @Nullable + public static final BlockType POTTED_RED_TULIP = init(); + @Nullable + public static final BlockType POTTED_SPRUCE_SAPLING = init(); + @Nullable + public static final BlockType POTTED_WARPED_FUNGUS = init(); + @Nullable + public static final BlockType POTTED_WARPED_ROOTS = init(); + @Nullable + public static final BlockType POTTED_WHITE_TULIP = init(); + @Nullable + public static final BlockType POTTED_WITHER_ROSE = init(); + @Nullable + public static final BlockType POWDER_SNOW = init(); + @Nullable + public static final BlockType POWDER_SNOW_CAULDRON = init(); + @Nullable + public static final BlockType POWERED_RAIL = init(); + @Nullable + public static final BlockType PRISMARINE = init(); + @Nullable + public static final BlockType PRISMARINE_BRICK_SLAB = init(); + @Nullable + public static final BlockType PRISMARINE_BRICK_STAIRS = init(); + @Nullable + public static final BlockType PRISMARINE_BRICKS = init(); + @Nullable + public static final BlockType PRISMARINE_SLAB = init(); + @Nullable + public static final BlockType PRISMARINE_STAIRS = init(); + @Nullable + public static final BlockType PRISMARINE_WALL = init(); + @Nullable + public static final BlockType PUMPKIN = init(); + @Nullable + public static final BlockType PUMPKIN_STEM = init(); + @Nullable + public static final BlockType PURPLE_BANNER = init(); + @Nullable + public static final BlockType PURPLE_BED = init(); + @Nullable + public static final BlockType PURPLE_CANDLE = init(); + @Nullable + public static final BlockType PURPLE_CANDLE_CAKE = init(); + @Nullable + public static final BlockType PURPLE_CARPET = init(); + @Nullable + public static final BlockType PURPLE_CONCRETE = init(); + @Nullable + public static final BlockType PURPLE_CONCRETE_POWDER = init(); + @Nullable + public static final BlockType PURPLE_GLAZED_TERRACOTTA = init(); + @Nullable + public static final BlockType PURPLE_SHULKER_BOX = init(); + @Nullable + public static final BlockType PURPLE_STAINED_GLASS = init(); + @Nullable + public static final BlockType PURPLE_STAINED_GLASS_PANE = init(); + @Nullable + public static final BlockType PURPLE_TERRACOTTA = init(); + @Nullable + public static final BlockType PURPLE_WALL_BANNER = init(); + @Nullable + public static final BlockType PURPLE_WOOL = init(); + @Nullable + public static final BlockType PURPUR_BLOCK = init(); + @Nullable + public static final BlockType PURPUR_PILLAR = init(); + @Nullable + public static final BlockType PURPUR_SLAB = init(); + @Nullable + public static final BlockType PURPUR_STAIRS = init(); + @Nullable + public static final BlockType QUARTZ_BLOCK = init(); + @Nullable + public static final BlockType QUARTZ_BRICKS = init(); + @Nullable + public static final BlockType QUARTZ_PILLAR = init(); + @Nullable + public static final BlockType QUARTZ_SLAB = init(); + @Nullable + public static final BlockType QUARTZ_STAIRS = init(); + @Nullable + public static final BlockType RAIL = init(); + @Nullable + public static final BlockType RAW_COPPER_BLOCK = init(); + @Nullable + public static final BlockType RAW_GOLD_BLOCK = init(); + @Nullable + public static final BlockType RAW_IRON_BLOCK = init(); + @Nullable + public static final BlockType RED_BANNER = init(); + @Nullable + public static final BlockType RED_BED = init(); + @Nullable + public static final BlockType RED_CANDLE = init(); + @Nullable + public static final BlockType RED_CANDLE_CAKE = init(); + @Nullable + public static final BlockType RED_CARPET = init(); + @Nullable + public static final BlockType RED_CONCRETE = init(); + @Nullable + public static final BlockType RED_CONCRETE_POWDER = init(); + @Nullable + public static final BlockType RED_GLAZED_TERRACOTTA = init(); + @Nullable + public static final BlockType RED_MUSHROOM = init(); + @Nullable + public static final BlockType RED_MUSHROOM_BLOCK = init(); + @Nullable + public static final BlockType RED_NETHER_BRICK_SLAB = init(); + @Nullable + public static final BlockType RED_NETHER_BRICK_STAIRS = init(); + @Nullable + public static final BlockType RED_NETHER_BRICK_WALL = init(); + @Nullable + public static final BlockType RED_NETHER_BRICKS = init(); + @Nullable + public static final BlockType RED_SAND = init(); + @Nullable + public static final BlockType RED_SANDSTONE = init(); + @Nullable + public static final BlockType RED_SANDSTONE_SLAB = init(); + @Nullable + public static final BlockType RED_SANDSTONE_STAIRS = init(); + @Nullable + public static final BlockType RED_SANDSTONE_WALL = init(); + @Nullable + public static final BlockType RED_SHULKER_BOX = init(); + @Nullable + public static final BlockType RED_STAINED_GLASS = init(); + @Nullable + public static final BlockType RED_STAINED_GLASS_PANE = init(); + @Nullable + public static final BlockType RED_TERRACOTTA = init(); + @Nullable + public static final BlockType RED_TULIP = init(); + @Nullable + public static final BlockType RED_WALL_BANNER = init(); + @Nullable + public static final BlockType RED_WOOL = init(); + @Nullable + public static final BlockType REDSTONE_BLOCK = init(); + @Nullable + public static final BlockType REDSTONE_LAMP = init(); + @Nullable + public static final BlockType REDSTONE_ORE = init(); + @Nullable + public static final BlockType REDSTONE_TORCH = init(); + @Nullable + public static final BlockType REDSTONE_WALL_TORCH = init(); + @Nullable + public static final BlockType REDSTONE_WIRE = init(); + @Nullable + public static final BlockType REPEATER = init(); + @Nullable + public static final BlockType REPEATING_COMMAND_BLOCK = init(); + @Nullable + public static final BlockType RESPAWN_ANCHOR = init(); + @Nullable + public static final BlockType ROOTED_DIRT = init(); + @Nullable + public static final BlockType ROSE_BUSH = init(); + @Nullable + public static final BlockType SAND = init(); + @Nullable + public static final BlockType SANDSTONE = init(); + @Nullable + public static final BlockType SANDSTONE_SLAB = init(); + @Nullable + public static final BlockType SANDSTONE_STAIRS = init(); + @Nullable + public static final BlockType SANDSTONE_WALL = init(); + @Nullable + public static final BlockType SCAFFOLDING = init(); + @Nullable + public static final BlockType SCULK_SENSOR = init(); + @Nullable + public static final BlockType SEA_LANTERN = init(); + @Nullable + public static final BlockType SEA_PICKLE = init(); + @Nullable + public static final BlockType SEAGRASS = init(); + @Nullable + public static final BlockType SHROOMLIGHT = init(); + @Nullable + public static final BlockType SHULKER_BOX = init(); + @Deprecated + @Nullable + public static final BlockType SIGN = init(); + @Nullable + public static final BlockType SKELETON_SKULL = init(); + @Nullable + public static final BlockType SKELETON_WALL_SKULL = init(); + @Nullable + public static final BlockType SLIME_BLOCK = init(); + @Nullable + public static final BlockType SMALL_AMETHYST_BUD = init(); + @Nullable + public static final BlockType SMALL_DRIPLEAF = init(); + @Nullable + public static final BlockType SMITHING_TABLE = init(); + @Nullable + public static final BlockType SMOKER = init(); + @Nullable + public static final BlockType SMOOTH_BASALT = init(); + @Nullable + public static final BlockType SMOOTH_QUARTZ = init(); + @Nullable + public static final BlockType SMOOTH_QUARTZ_SLAB = init(); + @Nullable + public static final BlockType SMOOTH_QUARTZ_STAIRS = init(); + @Nullable + public static final BlockType SMOOTH_RED_SANDSTONE = init(); + @Nullable + public static final BlockType SMOOTH_RED_SANDSTONE_SLAB = init(); + @Nullable + public static final BlockType SMOOTH_RED_SANDSTONE_STAIRS = init(); + @Nullable + public static final BlockType SMOOTH_SANDSTONE = init(); + @Nullable + public static final BlockType SMOOTH_SANDSTONE_SLAB = init(); + @Nullable + public static final BlockType SMOOTH_SANDSTONE_STAIRS = init(); + @Nullable + public static final BlockType SMOOTH_STONE = init(); + @Nullable + public static final BlockType SMOOTH_STONE_SLAB = init(); + @Nullable + public static final BlockType SNOW = init(); + @Nullable + public static final BlockType SNOW_BLOCK = init(); + @Nullable + public static final BlockType SOUL_CAMPFIRE = init(); + @Nullable + public static final BlockType SOUL_FIRE = init(); + @Nullable + public static final BlockType SOUL_LANTERN = init(); + @Nullable + public static final BlockType SOUL_SAND = init(); + @Nullable + public static final BlockType SOUL_SOIL = init(); + @Nullable + public static final BlockType SOUL_TORCH = init(); + @Nullable + public static final BlockType SOUL_WALL_TORCH = init(); + @Nullable + public static final BlockType SPAWNER = init(); + @Nullable + public static final BlockType SPONGE = init(); + @Nullable + public static final BlockType SPORE_BLOSSOM = init(); + @Nullable + public static final BlockType SPRUCE_BUTTON = init(); + @Nullable + public static final BlockType SPRUCE_DOOR = init(); + @Nullable + public static final BlockType SPRUCE_FENCE = init(); + @Nullable + public static final BlockType SPRUCE_FENCE_GATE = init(); + @Nullable + public static final BlockType SPRUCE_LEAVES = init(); + @Nullable + public static final BlockType SPRUCE_LOG = init(); + @Nullable + public static final BlockType SPRUCE_PLANKS = init(); + @Nullable + public static final BlockType SPRUCE_PRESSURE_PLATE = init(); + @Nullable + public static final BlockType SPRUCE_SAPLING = init(); + @Nullable + public static final BlockType SPRUCE_SIGN = init(); + @Nullable + public static final BlockType SPRUCE_SLAB = init(); + @Nullable + public static final BlockType SPRUCE_STAIRS = init(); + @Nullable + public static final BlockType SPRUCE_TRAPDOOR = init(); + @Nullable + public static final BlockType SPRUCE_WALL_SIGN = init(); + @Nullable + public static final BlockType SPRUCE_WOOD = init(); + @Nullable + public static final BlockType STICKY_PISTON = init(); + @Nullable + public static final BlockType STONE = init(); + @Nullable + public static final BlockType STONE_BRICK_SLAB = init(); + @Nullable + public static final BlockType STONE_BRICK_STAIRS = init(); + @Nullable + public static final BlockType STONE_BRICK_WALL = init(); + @Nullable + public static final BlockType STONE_BRICKS = init(); + @Nullable + public static final BlockType STONE_BUTTON = init(); + @Nullable + public static final BlockType STONE_PRESSURE_PLATE = init(); + @Nullable + public static final BlockType STONE_SLAB = init(); + @Nullable + public static final BlockType STONE_STAIRS = init(); + @Nullable + public static final BlockType STONECUTTER = init(); + @Nullable + public static final BlockType STRIPPED_ACACIA_LOG = init(); + @Nullable + public static final BlockType STRIPPED_ACACIA_WOOD = init(); + @Nullable + public static final BlockType STRIPPED_BIRCH_LOG = init(); + @Nullable + public static final BlockType STRIPPED_BIRCH_WOOD = init(); + @Nullable + public static final BlockType STRIPPED_CRIMSON_HYPHAE = init(); + @Nullable + public static final BlockType STRIPPED_CRIMSON_STEM = init(); + @Nullable + public static final BlockType STRIPPED_DARK_OAK_LOG = init(); + @Nullable + public static final BlockType STRIPPED_DARK_OAK_WOOD = init(); + @Nullable + public static final BlockType STRIPPED_JUNGLE_LOG = init(); + @Nullable + public static final BlockType STRIPPED_JUNGLE_WOOD = init(); + @Nullable + public static final BlockType STRIPPED_OAK_LOG = init(); + @Nullable + public static final BlockType STRIPPED_OAK_WOOD = init(); + @Nullable + public static final BlockType STRIPPED_SPRUCE_LOG = init(); + @Nullable + public static final BlockType STRIPPED_SPRUCE_WOOD = init(); + @Nullable + public static final BlockType STRIPPED_WARPED_HYPHAE = init(); + @Nullable + public static final BlockType STRIPPED_WARPED_STEM = init(); + @Nullable + public static final BlockType STRUCTURE_BLOCK = init(); + @Nullable + public static final BlockType STRUCTURE_VOID = init(); + @Nullable + public static final BlockType SUGAR_CANE = init(); + @Nullable + public static final BlockType SUNFLOWER = init(); + @Nullable + public static final BlockType SWEET_BERRY_BUSH = init(); + @Nullable + public static final BlockType TALL_GRASS = init(); + @Nullable + public static final BlockType TALL_SEAGRASS = init(); + @Nullable + public static final BlockType TARGET = init(); + @Nullable + public static final BlockType TERRACOTTA = init(); + @Nullable + public static final BlockType TINTED_GLASS = init(); + @Nullable + public static final BlockType TNT = init(); + @Nullable + public static final BlockType TORCH = init(); + @Nullable + public static final BlockType TRAPPED_CHEST = init(); + @Nullable + public static final BlockType TRIPWIRE = init(); + @Nullable + public static final BlockType TRIPWIRE_HOOK = init(); + @Nullable + public static final BlockType TUBE_CORAL = init(); + @Nullable + public static final BlockType TUBE_CORAL_BLOCK = init(); + @Nullable + public static final BlockType TUBE_CORAL_FAN = init(); + @Nullable + public static final BlockType TUBE_CORAL_WALL_FAN = init(); + @Nullable + public static final BlockType TUFF = init(); + @Nullable + public static final BlockType TURTLE_EGG = init(); + @Nullable + public static final BlockType TWISTING_VINES = init(); + @Nullable + public static final BlockType TWISTING_VINES_PLANT = init(); + @Nullable + public static final BlockType VINE = init(); + @Nullable + public static final BlockType VOID_AIR = init(); + @Deprecated + @Nullable + public static final BlockType WALL_SIGN = init(); + @Nullable + public static final BlockType WALL_TORCH = init(); + @Nullable + public static final BlockType WARPED_BUTTON = init(); + @Nullable + public static final BlockType WARPED_DOOR = init(); + @Nullable + public static final BlockType WARPED_FENCE = init(); + @Nullable + public static final BlockType WARPED_FENCE_GATE = init(); + @Nullable + public static final BlockType WARPED_FUNGUS = init(); + @Nullable + public static final BlockType WARPED_HYPHAE = init(); + @Nullable + public static final BlockType WARPED_NYLIUM = init(); + @Nullable + public static final BlockType WARPED_PLANKS = init(); + @Nullable + public static final BlockType WARPED_PRESSURE_PLATE = init(); + @Nullable + public static final BlockType WARPED_ROOTS = init(); + @Nullable + public static final BlockType WARPED_SIGN = init(); + @Nullable + public static final BlockType WARPED_SLAB = init(); + @Nullable + public static final BlockType WARPED_STAIRS = init(); + @Nullable + public static final BlockType WARPED_STEM = init(); + @Nullable + public static final BlockType WARPED_TRAPDOOR = init(); + @Nullable + public static final BlockType WARPED_WALL_SIGN = init(); + @Nullable + public static final BlockType WARPED_WART_BLOCK = init(); + @Nullable + public static final BlockType WATER = init(); + @Nullable + public static final BlockType WATER_CAULDRON = init(); + @Nullable + public static final BlockType WAXED_COPPER_BLOCK = init(); + @Nullable + public static final BlockType WAXED_CUT_COPPER = init(); + @Nullable + public static final BlockType WAXED_CUT_COPPER_SLAB = init(); + @Nullable + public static final BlockType WAXED_CUT_COPPER_STAIRS = init(); + @Nullable + public static final BlockType WAXED_EXPOSED_COPPER = init(); + @Nullable + public static final BlockType WAXED_EXPOSED_CUT_COPPER = init(); + @Nullable + public static final BlockType WAXED_EXPOSED_CUT_COPPER_SLAB = init(); + @Nullable + public static final BlockType WAXED_EXPOSED_CUT_COPPER_STAIRS = init(); + @Nullable + public static final BlockType WAXED_OXIDIZED_COPPER = init(); + @Nullable + public static final BlockType WAXED_OXIDIZED_CUT_COPPER = init(); + @Nullable + public static final BlockType WAXED_OXIDIZED_CUT_COPPER_SLAB = init(); + @Nullable + public static final BlockType WAXED_OXIDIZED_CUT_COPPER_STAIRS = init(); + @Nullable + public static final BlockType WAXED_WEATHERED_COPPER = init(); + @Nullable + public static final BlockType WAXED_WEATHERED_CUT_COPPER = init(); + @Nullable + public static final BlockType WAXED_WEATHERED_CUT_COPPER_SLAB = init(); + @Nullable + public static final BlockType WAXED_WEATHERED_CUT_COPPER_STAIRS = init(); + @Nullable + public static final BlockType WEATHERED_COPPER = init(); + @Nullable + public static final BlockType WEATHERED_CUT_COPPER = init(); + @Nullable + public static final BlockType WEATHERED_CUT_COPPER_SLAB = init(); + @Nullable + public static final BlockType WEEPING_VINES = init(); + @Nullable + public static final BlockType WEATHERED_CUT_COPPER_STAIRS = init(); + @Nullable + public static final BlockType WEEPING_VINES_PLANT = init(); + @Nullable + public static final BlockType WET_SPONGE = init(); + @Nullable + public static final BlockType WHEAT = init(); + @Nullable + public static final BlockType WHITE_BANNER = init(); + @Nullable + public static final BlockType WHITE_BED = init(); + @Nullable + public static final BlockType WHITE_CANDLE = init(); + @Nullable + public static final BlockType WHITE_CANDLE_CAKE = init(); + @Nullable + public static final BlockType WHITE_CARPET = init(); + @Nullable + public static final BlockType WHITE_CONCRETE = init(); + @Nullable + public static final BlockType WHITE_CONCRETE_POWDER = init(); + @Nullable + public static final BlockType WHITE_GLAZED_TERRACOTTA = init(); + @Nullable + public static final BlockType WHITE_SHULKER_BOX = init(); + @Nullable + public static final BlockType WHITE_STAINED_GLASS = init(); + @Nullable + public static final BlockType WHITE_STAINED_GLASS_PANE = init(); + @Nullable + public static final BlockType WHITE_TERRACOTTA = init(); + @Nullable + public static final BlockType WHITE_TULIP = init(); + @Nullable + public static final BlockType WHITE_WALL_BANNER = init(); + @Nullable + public static final BlockType WHITE_WOOL = init(); + @Nullable + public static final BlockType WITHER_ROSE = init(); + @Nullable + public static final BlockType WITHER_SKELETON_SKULL = init(); + @Nullable + public static final BlockType WITHER_SKELETON_WALL_SKULL = init(); + @Nullable + public static final BlockType YELLOW_BANNER = init(); + @Nullable + public static final BlockType YELLOW_BED = init(); + @Nullable + public static final BlockType YELLOW_CANDLE = init(); + @Nullable + public static final BlockType YELLOW_CANDLE_CAKE = init(); + @Nullable + public static final BlockType YELLOW_CARPET = init(); + @Nullable + public static final BlockType YELLOW_CONCRETE = init(); + @Nullable + public static final BlockType YELLOW_CONCRETE_POWDER = init(); + @Nullable + public static final BlockType YELLOW_GLAZED_TERRACOTTA = init(); + @Nullable + public static final BlockType YELLOW_SHULKER_BOX = init(); + @Nullable + public static final BlockType YELLOW_STAINED_GLASS = init(); + @Nullable + public static final BlockType YELLOW_STAINED_GLASS_PANE = init(); + @Nullable + public static final BlockType YELLOW_TERRACOTTA = init(); + @Nullable + public static final BlockType YELLOW_WALL_BANNER = init(); + @Nullable + public static final BlockType YELLOW_WOOL = init(); + @Nullable + public static final BlockType ZOMBIE_HEAD = init(); + @Nullable + public static final BlockType ZOMBIE_WALL_HEAD = init(); private static Field[] fieldsTmp; private static JoinedCharSequence joined; @@ -988,11 +1892,12 @@ public final class BlockTypes { } catch (NumberFormatException | IndexOutOfBoundsException ignored) { } - throw new SuggestInputParseException("Does not match a valid block type: " + inputLower, inputLower, () -> Stream.of(BlockTypesCache.values) - .filter(b -> StringMan.blockStateMatches(inputLower, b.getId())) - .map(BlockType::getId) - .sorted(StringMan.blockStateComparator(inputLower)) - .collect(Collectors.toList()) + throw new SuggestInputParseException("Does not match a valid block type: " + inputLower, inputLower, () -> Stream.of( + BlockTypesCache.values) + .filter(b -> StringMan.blockStateMatches(inputLower, b.getId())) + .map(BlockType::getId) + .sorted(StringMan.blockStateComparator(inputLower)) + .collect(Collectors.toList()) ); } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/block/BlockTypesCache.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/block/BlockTypesCache.java index 01079cb8c..59ed85560 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/block/BlockTypesCache.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/block/BlockTypesCache.java @@ -1,5 +1,6 @@ package com.sk89q.worldedit.world.block; +import com.fastasyncworldedit.core.registry.state.PropertyKey; import com.fastasyncworldedit.core.util.MathMan; import com.fastasyncworldedit.core.world.block.BlockID; import com.google.common.primitives.Booleans; @@ -9,7 +10,6 @@ import com.sk89q.worldedit.extension.platform.Capability; import com.sk89q.worldedit.extension.platform.Platform; import com.sk89q.worldedit.registry.state.AbstractProperty; import com.sk89q.worldedit.registry.state.Property; -import com.fastasyncworldedit.core.registry.state.PropertyKey; import com.sk89q.worldedit.world.registry.BlockMaterial; import com.sk89q.worldedit.world.registry.BlockRegistry; import com.sk89q.worldedit.world.registry.Registries; @@ -20,8 +20,8 @@ import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.HashMap; -import java.util.LinkedHashSet; import java.util.LinkedHashMap; +import java.util.LinkedHashSet; import java.util.List; import java.util.Locale; import java.util.Map; @@ -29,12 +29,14 @@ import java.util.Set; import java.util.stream.Collectors; public class BlockTypesCache { + /* ----------------------------------------------------- Settings ----------------------------------------------------- */ protected static final class Settings { + protected final int internalId; protected final BlockState defaultState; protected final AbstractProperty[] propertiesMapArr; @@ -55,7 +57,8 @@ public class BlockTypesCache { } int maxInternalStateId = 0; - Map> properties = WorldEdit.getInstance().getPlatformManager().queryCapability(Capability.GAME_HOOKS).getRegistries().getBlockRegistry().getProperties(type); + Map> properties = WorldEdit.getInstance().getPlatformManager().queryCapability( + Capability.GAME_HOOKS).getRegistries().getBlockRegistry().getProperties(type); if (!properties.isEmpty()) { // Ensure the properties are registered int maxOrdinal = 0; @@ -91,7 +94,13 @@ public class BlockTypesCache { } this.permutations = maxInternalStateId; - this.blockMaterial = WorldEdit.getInstance().getPlatformManager().queryCapability(Capability.GAME_HOOKS).getRegistries().getBlockRegistry().getMaterial(type); + this.blockMaterial = WorldEdit + .getInstance() + .getPlatformManager() + .queryCapability(Capability.GAME_HOOKS) + .getRegistries() + .getBlockRegistry() + .getMaterial(type); if (!propertiesList.isEmpty()) { this.stateOrdinals = generateStateOrdinals(internalId, states.size(), maxInternalStateId, propertiesList); @@ -101,8 +110,13 @@ public class BlockTypesCache { if (ordinal != -1) { int stateId = internalId + (propId << BIT_OFFSET); CompoundTag defaultNBT = blockMaterial.getDefaultTile(); - BlockState state = defaultNBT != null ? new BlockState(type, stateId, ordinal, blockMaterial.getDefaultTile()) : - new BlockState(type, stateId, ordinal); + BlockState state = defaultNBT != null ? new BlockState( + type, + stateId, + ordinal, + blockMaterial.getDefaultTile() + ) : + new BlockState(type, stateId, ordinal); states.add(state); } } @@ -111,8 +125,13 @@ public class BlockTypesCache { this.defaultState = states.get(this.stateOrdinals[defaultPropId]); } else { CompoundTag defaultNBT = blockMaterial.getDefaultTile(); - this.defaultState = defaultNBT != null ? new BlockState(type, internalId, states.size(), blockMaterial.getDefaultTile()) : - new BlockState(type, internalId, states.size()); + this.defaultState = defaultNBT != null ? new BlockState( + type, + internalId, + states.size(), + blockMaterial.getDefaultTile() + ) : + new BlockState(type, internalId, states.size()); states.add(this.defaultState); } } @@ -128,6 +147,7 @@ public class BlockTypesCache { } return id; } + } @@ -192,7 +212,9 @@ public class BlockTypesCache { Registries registries = platform.getRegistries(); BlockRegistry blockReg = registries.getBlockRegistry(); Collection blocks = blockReg.values(); - Map blockMap = blocks.stream().collect(Collectors.toMap(item -> item.charAt(item.length() - 1) == ']' ? item.substring(0, item.indexOf('[')) : item, item -> item)); + Map blockMap = blocks.stream().collect(Collectors.toMap(item -> item.charAt(item.length() - 1) == ']' + ? item.substring(0, item.indexOf('[')) + : item, item -> item)); int size = blockMap.size() + 1; Field[] idFields = BlockID.class.getDeclaredFields(); @@ -230,7 +252,6 @@ public class BlockTypesCache { String defaultState = entry.getValue(); // Skip already registered ids for (; values[internalId] != null; internalId++) { - ; } BlockType type = register(defaultState, internalId, stateList, tickList); values[internalId] = type; @@ -265,4 +286,5 @@ public class BlockTypesCache { $NAMESPACES.add(nameSpace); return existing; } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/block/FuzzyBlockState.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/block/FuzzyBlockState.java index 6cb3a6595..c5e73147d 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/block/FuzzyBlockState.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/block/FuzzyBlockState.java @@ -19,9 +19,9 @@ package com.sk89q.worldedit.world.block; +import com.fastasyncworldedit.core.registry.state.PropertyKey; import com.sk89q.jnbt.CompoundTag; import com.sk89q.worldedit.registry.state.Property; -import com.fastasyncworldedit.core.registry.state.PropertyKey; import java.util.Collections; import java.util.HashMap; @@ -101,7 +101,8 @@ public class FuzzyBlockState extends BlockState { return true; } - @Override public BaseBlock toBaseBlock() { + @Override + public BaseBlock toBaseBlock() { if (props == null || props.isEmpty()) { return super.toBaseBlock(); } @@ -144,6 +145,7 @@ public class FuzzyBlockState extends BlockState { * Builder for FuzzyBlockState */ public static class Builder { + private BlockType type; private final Map, Object> values = new HashMap<>(); @@ -175,8 +177,8 @@ public class FuzzyBlockState extends BlockState { * Adds a property to the fuzzy BlockState * * @param property The property - * @param value The value - * @param The property type + * @param value The value + * @param The property type * @return The builder, for chaining */ public Builder withProperty(Property property, V value) { @@ -211,5 +213,7 @@ public class FuzzyBlockState extends BlockState { this.values.clear(); return this; } + } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/chunk/AnvilChunk.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/chunk/AnvilChunk.java index d0af54b97..efb92fe10 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/chunk/AnvilChunk.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/chunk/AnvilChunk.java @@ -19,6 +19,7 @@ package com.sk89q.worldedit.world.chunk; +import com.fastasyncworldedit.core.util.NbtUtils; import com.sk89q.jnbt.CompoundTag; import com.sk89q.worldedit.WorldEdit; import com.sk89q.worldedit.math.BlockVector3; @@ -27,7 +28,6 @@ import com.sk89q.worldedit.util.nbt.BinaryTagTypes; import com.sk89q.worldedit.util.nbt.CompoundBinaryTag; import com.sk89q.worldedit.util.nbt.IntBinaryTag; import com.sk89q.worldedit.util.nbt.ListBinaryTag; -import com.fastasyncworldedit.core.util.NbtUtils; import com.sk89q.worldedit.world.DataException; import com.sk89q.worldedit.world.block.BaseBlock; import com.sk89q.worldedit.world.block.BlockState; @@ -35,9 +35,9 @@ import com.sk89q.worldedit.world.block.BlockTypes; import com.sk89q.worldedit.world.registry.LegacyMapper; import com.sk89q.worldedit.world.storage.InvalidFormatException; +import javax.annotation.Nullable; import java.util.HashMap; import java.util.Map; -import javax.annotation.Nullable; public class AnvilChunk implements Chunk { @@ -54,6 +54,7 @@ public class AnvilChunk implements Chunk { //FAWE start + /** * Construct the chunk with a compound tag. * @@ -102,14 +103,17 @@ public class AnvilChunk implements Chunk { } blocks[y] = NbtUtils.getChildTag(sectionTag, - "Blocks", BinaryTagTypes.BYTE_ARRAY).value(); + "Blocks", BinaryTagTypes.BYTE_ARRAY + ).value(); data[y] = NbtUtils.getChildTag(sectionTag, "Data", - BinaryTagTypes.BYTE_ARRAY).value(); + BinaryTagTypes.BYTE_ARRAY + ).value(); // 4096 ID block support if (sectionTag.get("Add") != null) { blocksAdd[y] = NbtUtils.getChildTag(sectionTag, - "Add", BinaryTagTypes.BYTE_ARRAY).value(); + "Add", BinaryTagTypes.BYTE_ARRAY + ).value(); } } @@ -263,9 +267,6 @@ public class AnvilChunk implements Chunk { } CompoundBinaryTag values = tileEntities.get(position); - if (values == null) { - return null; - } return values; } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/chunk/AnvilChunk13.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/chunk/AnvilChunk13.java index db9eb2daf..eb9f11669 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/chunk/AnvilChunk13.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/chunk/AnvilChunk13.java @@ -19,6 +19,7 @@ package com.sk89q.worldedit.world.chunk; +import com.fastasyncworldedit.core.util.NbtUtils; import com.sk89q.jnbt.CompoundTag; import com.sk89q.worldedit.math.BlockVector3; import com.sk89q.worldedit.registry.state.Property; @@ -27,7 +28,6 @@ import com.sk89q.worldedit.util.nbt.BinaryTagTypes; import com.sk89q.worldedit.util.nbt.CompoundBinaryTag; import com.sk89q.worldedit.util.nbt.IntBinaryTag; import com.sk89q.worldedit.util.nbt.ListBinaryTag; -import com.fastasyncworldedit.core.util.NbtUtils; import com.sk89q.worldedit.world.DataException; import com.sk89q.worldedit.world.block.BaseBlock; import com.sk89q.worldedit.world.block.BlockState; @@ -35,9 +35,9 @@ import com.sk89q.worldedit.world.block.BlockType; import com.sk89q.worldedit.world.block.BlockTypes; import com.sk89q.worldedit.world.storage.InvalidFormatException; +import javax.annotation.Nullable; import java.util.HashMap; import java.util.Map; -import javax.annotation.Nullable; /** * The chunk format for Minecraft 1.13 to 1.15 @@ -55,6 +55,7 @@ public class AnvilChunk13 implements Chunk { //FAWE start + /** * Construct the chunk with a compound tag. * @@ -122,7 +123,9 @@ public class AnvilChunk13 implements Chunk { try { blockState = getBlockStateWith(blockState, property, value); } catch (IllegalArgumentException e) { - throw new InvalidFormatException("Invalid block state for " + blockState.getBlockType().getId() + ", " + property.getName() + ": " + value); + throw new InvalidFormatException("Invalid block state for " + blockState + .getBlockType() + .getId() + ", " + property.getName() + ": " + value); } } } @@ -141,7 +144,8 @@ public class AnvilChunk13 implements Chunk { } } - protected void readBlockStates(BlockState[] palette, long[] blockStatesSerialized, BlockState[] chunkSectionBlocks) throws InvalidFormatException { + protected void readBlockStates(BlockState[] palette, long[] blockStatesSerialized, BlockState[] chunkSectionBlocks) throws + InvalidFormatException { int paletteBits = 4; while ((1 << paletteBits) < palette.length) { ++paletteBits; @@ -224,9 +228,6 @@ public class AnvilChunk13 implements Chunk { } CompoundBinaryTag values = tileEntities.get(position); - if (values == null) { - return null; - } return values; } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/chunk/AnvilChunk16.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/chunk/AnvilChunk16.java index 342b4f307..e66ca164f 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/chunk/AnvilChunk16.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/chunk/AnvilChunk16.java @@ -31,6 +31,7 @@ import com.sk89q.worldedit.world.storage.InvalidFormatException; public class AnvilChunk16 extends AnvilChunk13 { //FAWE start + /** * Construct the chunk with a compound tag. * @@ -55,7 +56,8 @@ public class AnvilChunk16 extends AnvilChunk13 { //FAWE end @Override - protected void readBlockStates(BlockState[] palette, long[] blockStatesSerialized, BlockState[] chunkSectionBlocks) throws InvalidFormatException { + protected void readBlockStates(BlockState[] palette, long[] blockStatesSerialized, BlockState[] chunkSectionBlocks) throws + InvalidFormatException { PackedIntArrayReader reader = new PackedIntArrayReader(blockStatesSerialized); for (int blockPos = 0; blockPos < chunkSectionBlocks.length; blockPos++) { int index = reader.get(blockPos); @@ -65,4 +67,5 @@ public class AnvilChunk16 extends AnvilChunk13 { chunkSectionBlocks[blockPos] = palette[index]; } } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/chunk/OldChunk.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/chunk/OldChunk.java index 45dfd2f56..404e64a49 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/chunk/OldChunk.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/chunk/OldChunk.java @@ -19,6 +19,7 @@ package com.sk89q.worldedit.world.chunk; +import com.fastasyncworldedit.core.util.NbtUtils; import com.sk89q.jnbt.CompoundTag; import com.sk89q.worldedit.WorldEdit; import com.sk89q.worldedit.math.BlockVector3; @@ -27,7 +28,6 @@ import com.sk89q.worldedit.util.nbt.BinaryTagTypes; import com.sk89q.worldedit.util.nbt.CompoundBinaryTag; import com.sk89q.worldedit.util.nbt.IntBinaryTag; import com.sk89q.worldedit.util.nbt.ListBinaryTag; -import com.fastasyncworldedit.core.util.NbtUtils; import com.sk89q.worldedit.world.DataException; import com.sk89q.worldedit.world.block.BaseBlock; import com.sk89q.worldedit.world.block.BlockState; @@ -54,6 +54,7 @@ public class OldChunk implements Chunk { private Map tileEntities; //FAWE start + /** * Construct the chunk with a compound tag. * @@ -162,9 +163,6 @@ public class OldChunk implements Chunk { } CompoundBinaryTag values = tileEntities.get(position); - if (values == null) { - return null; - } return values; } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/chunk/PackedIntArrayReader.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/chunk/PackedIntArrayReader.java index a58d1f34e..72de4d890 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/chunk/PackedIntArrayReader.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/chunk/PackedIntArrayReader.java @@ -22,6 +22,7 @@ package com.sk89q.worldedit.world.chunk; import static com.google.common.base.Preconditions.checkElementIndex; public class PackedIntArrayReader { + private static final int[] FACTORS = new int[64]; static { diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/entity/EntityType.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/entity/EntityType.java index 58d84e18d..98a70b7e5 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/entity/EntityType.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/entity/EntityType.java @@ -19,9 +19,9 @@ package com.sk89q.worldedit.world.entity; +import com.fastasyncworldedit.core.registry.RegistryItem; import com.sk89q.worldedit.registry.Keyed; import com.sk89q.worldedit.registry.NamespacedRegistry; -import com.fastasyncworldedit.core.registry.RegistryItem; //FAWE start - implements RegistryItem public class EntityType implements RegistryItem, Keyed { diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/entity/EntityTypes.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/entity/EntityTypes.java index 606032039..a4091f37b 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/entity/EntityTypes.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/entity/EntityTypes.java @@ -19,8 +19,8 @@ package com.sk89q.worldedit.world.entity; -import java.util.Locale; import javax.annotation.Nullable; +import java.util.Locale; /** * Stores a list of common {@link EntityType EntityTypes}. @@ -29,120 +29,236 @@ import javax.annotation.Nullable; */ @SuppressWarnings("unused") public final class EntityTypes { - @Nullable public static final EntityType AREA_EFFECT_CLOUD = get("minecraft:area_effect_cloud"); - @Nullable public static final EntityType ARMOR_STAND = get("minecraft:armor_stand"); - @Nullable public static final EntityType ARROW = get("minecraft:arrow"); - @Nullable public static final EntityType AXOLOTL = get("minecraft:axolotl"); - @Nullable public static final EntityType BAT = get("minecraft:bat"); - @Nullable public static final EntityType BEE = get("minecraft:bee"); - @Nullable public static final EntityType BLAZE = get("minecraft:blaze"); - @Nullable public static final EntityType BOAT = get("minecraft:boat"); - @Nullable public static final EntityType CAT = get("minecraft:cat"); - @Nullable public static final EntityType CAVE_SPIDER = get("minecraft:cave_spider"); - @Nullable public static final EntityType CHEST_MINECART = get("minecraft:chest_minecart"); - @Nullable public static final EntityType CHICKEN = get("minecraft:chicken"); - @Nullable public static final EntityType COD = get("minecraft:cod"); - @Nullable public static final EntityType COMMAND_BLOCK_MINECART = get("minecraft:command_block_minecart"); - @Nullable public static final EntityType COW = get("minecraft:cow"); - @Nullable public static final EntityType CREEPER = get("minecraft:creeper"); - @Nullable public static final EntityType DOLPHIN = get("minecraft:dolphin"); - @Nullable public static final EntityType DONKEY = get("minecraft:donkey"); - @Nullable public static final EntityType DRAGON_FIREBALL = get("minecraft:dragon_fireball"); - @Nullable public static final EntityType DROWNED = get("minecraft:drowned"); - @Nullable public static final EntityType EGG = get("minecraft:egg"); - @Nullable public static final EntityType ELDER_GUARDIAN = get("minecraft:elder_guardian"); - @Nullable public static final EntityType END_CRYSTAL = get("minecraft:end_crystal"); - @Nullable public static final EntityType ENDER_DRAGON = get("minecraft:ender_dragon"); - @Nullable public static final EntityType ENDER_PEARL = get("minecraft:ender_pearl"); - @Nullable public static final EntityType ENDERMAN = get("minecraft:enderman"); - @Nullable public static final EntityType ENDERMITE = get("minecraft:endermite"); - @Nullable public static final EntityType EVOKER = get("minecraft:evoker"); - @Nullable public static final EntityType EVOKER_FANGS = get("minecraft:evoker_fangs"); - @Nullable public static final EntityType EXPERIENCE_BOTTLE = get("minecraft:experience_bottle"); - @Nullable public static final EntityType EXPERIENCE_ORB = get("minecraft:experience_orb"); - @Nullable public static final EntityType EYE_OF_ENDER = get("minecraft:eye_of_ender"); - @Nullable public static final EntityType FALLING_BLOCK = get("minecraft:falling_block"); - @Nullable public static final EntityType FIREBALL = get("minecraft:fireball"); - @Nullable public static final EntityType FIREWORK_ROCKET = get("minecraft:firework_rocket"); - @Nullable public static final EntityType FISHING_BOBBER = get("minecraft:fishing_bobber"); - @Nullable public static final EntityType FOX = get("minecraft:fox"); - @Nullable public static final EntityType FURNACE_MINECART = get("minecraft:furnace_minecart"); - @Nullable public static final EntityType GHAST = get("minecraft:ghast"); - @Nullable public static final EntityType GIANT = get("minecraft:giant"); - @Nullable public static final EntityType GLOW_ITEM_FRAME = get("minecraft:glow_item_frame"); - @Nullable public static final EntityType GLOW_SQUID = get("minecraft:glow_squid"); - @Nullable public static final EntityType GOAT = get("minecraft:goat"); - @Nullable public static final EntityType GUARDIAN = get("minecraft:guardian"); - @Nullable public static final EntityType HOGLIN = get("minecraft:hoglin"); - @Nullable public static final EntityType HOPPER_MINECART = get("minecraft:hopper_minecart"); - @Nullable public static final EntityType HORSE = get("minecraft:horse"); - @Nullable public static final EntityType HUSK = get("minecraft:husk"); - @Nullable public static final EntityType ILLUSIONER = get("minecraft:illusioner"); - @Nullable public static final EntityType IRON_GOLEM = get("minecraft:iron_golem"); - @Nullable public static final EntityType ITEM = get("minecraft:item"); - @Nullable public static final EntityType ITEM_FRAME = get("minecraft:item_frame"); - @Nullable public static final EntityType LEASH_KNOT = get("minecraft:leash_knot"); - @Nullable public static final EntityType LIGHTNING_BOLT = get("minecraft:lightning_bolt"); - @Nullable public static final EntityType LLAMA = get("minecraft:llama"); - @Nullable public static final EntityType LLAMA_SPIT = get("minecraft:llama_spit"); - @Nullable public static final EntityType MAGMA_CUBE = get("minecraft:magma_cube"); - @Nullable public static final EntityType MARKER = get("minecraft:marker"); - @Nullable public static final EntityType MINECART = get("minecraft:minecart"); - @Nullable public static final EntityType MOOSHROOM = get("minecraft:mooshroom"); - @Nullable public static final EntityType MULE = get("minecraft:mule"); - @Nullable public static final EntityType OCELOT = get("minecraft:ocelot"); - @Nullable public static final EntityType PAINTING = get("minecraft:painting"); - @Nullable public static final EntityType PANDA = get("minecraft:panda"); - @Nullable public static final EntityType PARROT = get("minecraft:parrot"); - @Nullable public static final EntityType PHANTOM = get("minecraft:phantom"); - @Nullable public static final EntityType PIG = get("minecraft:pig"); - @Nullable public static final EntityType PIGLIN = get("minecraft:piglin"); - @Nullable public static final EntityType PIGLIN_BRUTE = get("minecraft:piglin_brute"); - @Nullable public static final EntityType PILLAGER = get("minecraft:pillager"); - @Nullable public static final EntityType PLAYER = get("minecraft:player"); - @Nullable public static final EntityType POLAR_BEAR = get("minecraft:polar_bear"); - @Nullable public static final EntityType POTION = get("minecraft:potion"); - @Nullable public static final EntityType PUFFERFISH = get("minecraft:pufferfish"); - @Nullable public static final EntityType RABBIT = get("minecraft:rabbit"); - @Nullable public static final EntityType RAVAGER = get("minecraft:ravager"); - @Nullable public static final EntityType SALMON = get("minecraft:salmon"); - @Nullable public static final EntityType SHEEP = get("minecraft:sheep"); - @Nullable public static final EntityType SHULKER = get("minecraft:shulker"); - @Nullable public static final EntityType SHULKER_BULLET = get("minecraft:shulker_bullet"); - @Nullable public static final EntityType SILVERFISH = get("minecraft:silverfish"); - @Nullable public static final EntityType SKELETON = get("minecraft:skeleton"); - @Nullable public static final EntityType SKELETON_HORSE = get("minecraft:skeleton_horse"); - @Nullable public static final EntityType SLIME = get("minecraft:slime"); - @Nullable public static final EntityType SMALL_FIREBALL = get("minecraft:small_fireball"); - @Nullable public static final EntityType SNOW_GOLEM = get("minecraft:snow_golem"); - @Nullable public static final EntityType SNOWBALL = get("minecraft:snowball"); - @Nullable public static final EntityType SPAWNER_MINECART = get("minecraft:spawner_minecart"); - @Nullable public static final EntityType SPECTRAL_ARROW = get("minecraft:spectral_arrow"); - @Nullable public static final EntityType SPIDER = get("minecraft:spider"); - @Nullable public static final EntityType SQUID = get("minecraft:squid"); - @Nullable public static final EntityType STRAY = get("minecraft:stray"); - @Nullable public static final EntityType STRIDER = get("minecraft:strider"); - @Nullable public static final EntityType TNT = get("minecraft:tnt"); - @Nullable public static final EntityType TNT_MINECART = get("minecraft:tnt_minecart"); - @Nullable public static final EntityType TRADER_LLAMA = get("minecraft:trader_llama"); - @Nullable public static final EntityType TRIDENT = get("minecraft:trident"); - @Nullable public static final EntityType TROPICAL_FISH = get("minecraft:tropical_fish"); - @Nullable public static final EntityType TURTLE = get("minecraft:turtle"); - @Nullable public static final EntityType VEX = get("minecraft:vex"); - @Nullable public static final EntityType VILLAGER = get("minecraft:villager"); - @Nullable public static final EntityType VINDICATOR = get("minecraft:vindicator"); - @Nullable public static final EntityType WANDERING_TRADER = get("minecraft:wandering_trader"); - @Nullable public static final EntityType WITCH = get("minecraft:witch"); - @Nullable public static final EntityType WITHER = get("minecraft:wither"); - @Nullable public static final EntityType WITHER_SKELETON = get("minecraft:wither_skeleton"); - @Nullable public static final EntityType WITHER_SKULL = get("minecraft:wither_skull"); - @Nullable public static final EntityType WOLF = get("minecraft:wolf"); - @Nullable public static final EntityType ZOGLIN = get("minecraft:zoglin"); - @Nullable public static final EntityType ZOMBIE = get("minecraft:zombie"); - @Nullable public static final EntityType ZOMBIE_HORSE = get("minecraft:zombie_horse"); - @Deprecated @Nullable public static final EntityType ZOMBIE_PIGMAN = get("minecraft:zombie_pigman"); - @Nullable public static final EntityType ZOMBIE_VILLAGER = get("minecraft:zombie_villager"); - @Nullable public static final EntityType ZOMBIFIED_PIGLIN = get("minecraft:zombified_piglin"); + + @Nullable + public static final EntityType AREA_EFFECT_CLOUD = get("minecraft:area_effect_cloud"); + @Nullable + public static final EntityType ARMOR_STAND = get("minecraft:armor_stand"); + @Nullable + public static final EntityType ARROW = get("minecraft:arrow"); + @Nullable + public static final EntityType AXOLOTL = get("minecraft:axolotl"); + @Nullable + public static final EntityType BAT = get("minecraft:bat"); + @Nullable + public static final EntityType BEE = get("minecraft:bee"); + @Nullable + public static final EntityType BLAZE = get("minecraft:blaze"); + @Nullable + public static final EntityType BOAT = get("minecraft:boat"); + @Nullable + public static final EntityType CAT = get("minecraft:cat"); + @Nullable + public static final EntityType CAVE_SPIDER = get("minecraft:cave_spider"); + @Nullable + public static final EntityType CHEST_MINECART = get("minecraft:chest_minecart"); + @Nullable + public static final EntityType CHICKEN = get("minecraft:chicken"); + @Nullable + public static final EntityType COD = get("minecraft:cod"); + @Nullable + public static final EntityType COMMAND_BLOCK_MINECART = get("minecraft:command_block_minecart"); + @Nullable + public static final EntityType COW = get("minecraft:cow"); + @Nullable + public static final EntityType CREEPER = get("minecraft:creeper"); + @Nullable + public static final EntityType DOLPHIN = get("minecraft:dolphin"); + @Nullable + public static final EntityType DONKEY = get("minecraft:donkey"); + @Nullable + public static final EntityType DRAGON_FIREBALL = get("minecraft:dragon_fireball"); + @Nullable + public static final EntityType DROWNED = get("minecraft:drowned"); + @Nullable + public static final EntityType EGG = get("minecraft:egg"); + @Nullable + public static final EntityType ELDER_GUARDIAN = get("minecraft:elder_guardian"); + @Nullable + public static final EntityType END_CRYSTAL = get("minecraft:end_crystal"); + @Nullable + public static final EntityType ENDER_DRAGON = get("minecraft:ender_dragon"); + @Nullable + public static final EntityType ENDER_PEARL = get("minecraft:ender_pearl"); + @Nullable + public static final EntityType ENDERMAN = get("minecraft:enderman"); + @Nullable + public static final EntityType ENDERMITE = get("minecraft:endermite"); + @Nullable + public static final EntityType EVOKER = get("minecraft:evoker"); + @Nullable + public static final EntityType EVOKER_FANGS = get("minecraft:evoker_fangs"); + @Nullable + public static final EntityType EXPERIENCE_BOTTLE = get("minecraft:experience_bottle"); + @Nullable + public static final EntityType EXPERIENCE_ORB = get("minecraft:experience_orb"); + @Nullable + public static final EntityType EYE_OF_ENDER = get("minecraft:eye_of_ender"); + @Nullable + public static final EntityType FALLING_BLOCK = get("minecraft:falling_block"); + @Nullable + public static final EntityType FIREBALL = get("minecraft:fireball"); + @Nullable + public static final EntityType FIREWORK_ROCKET = get("minecraft:firework_rocket"); + @Nullable + public static final EntityType FISHING_BOBBER = get("minecraft:fishing_bobber"); + @Nullable + public static final EntityType FOX = get("minecraft:fox"); + @Nullable + public static final EntityType FURNACE_MINECART = get("minecraft:furnace_minecart"); + @Nullable + public static final EntityType GHAST = get("minecraft:ghast"); + @Nullable + public static final EntityType GIANT = get("minecraft:giant"); + @Nullable + public static final EntityType GLOW_ITEM_FRAME = get("minecraft:glow_item_frame"); + @Nullable + public static final EntityType GLOW_SQUID = get("minecraft:glow_squid"); + @Nullable + public static final EntityType GOAT = get("minecraft:goat"); + @Nullable + public static final EntityType GUARDIAN = get("minecraft:guardian"); + @Nullable + public static final EntityType HOGLIN = get("minecraft:hoglin"); + @Nullable + public static final EntityType HOPPER_MINECART = get("minecraft:hopper_minecart"); + @Nullable + public static final EntityType HORSE = get("minecraft:horse"); + @Nullable + public static final EntityType HUSK = get("minecraft:husk"); + @Nullable + public static final EntityType ILLUSIONER = get("minecraft:illusioner"); + @Nullable + public static final EntityType IRON_GOLEM = get("minecraft:iron_golem"); + @Nullable + public static final EntityType ITEM = get("minecraft:item"); + @Nullable + public static final EntityType ITEM_FRAME = get("minecraft:item_frame"); + @Nullable + public static final EntityType LEASH_KNOT = get("minecraft:leash_knot"); + @Nullable + public static final EntityType LIGHTNING_BOLT = get("minecraft:lightning_bolt"); + @Nullable + public static final EntityType LLAMA = get("minecraft:llama"); + @Nullable + public static final EntityType LLAMA_SPIT = get("minecraft:llama_spit"); + @Nullable + public static final EntityType MAGMA_CUBE = get("minecraft:magma_cube"); + @Nullable + public static final EntityType MARKER = get("minecraft:marker"); + @Nullable + public static final EntityType MINECART = get("minecraft:minecart"); + @Nullable + public static final EntityType MOOSHROOM = get("minecraft:mooshroom"); + @Nullable + public static final EntityType MULE = get("minecraft:mule"); + @Nullable + public static final EntityType OCELOT = get("minecraft:ocelot"); + @Nullable + public static final EntityType PAINTING = get("minecraft:painting"); + @Nullable + public static final EntityType PANDA = get("minecraft:panda"); + @Nullable + public static final EntityType PARROT = get("minecraft:parrot"); + @Nullable + public static final EntityType PHANTOM = get("minecraft:phantom"); + @Nullable + public static final EntityType PIG = get("minecraft:pig"); + @Nullable + public static final EntityType PIGLIN = get("minecraft:piglin"); + @Nullable + public static final EntityType PIGLIN_BRUTE = get("minecraft:piglin_brute"); + @Nullable + public static final EntityType PILLAGER = get("minecraft:pillager"); + @Nullable + public static final EntityType PLAYER = get("minecraft:player"); + @Nullable + public static final EntityType POLAR_BEAR = get("minecraft:polar_bear"); + @Nullable + public static final EntityType POTION = get("minecraft:potion"); + @Nullable + public static final EntityType PUFFERFISH = get("minecraft:pufferfish"); + @Nullable + public static final EntityType RABBIT = get("minecraft:rabbit"); + @Nullable + public static final EntityType RAVAGER = get("minecraft:ravager"); + @Nullable + public static final EntityType SALMON = get("minecraft:salmon"); + @Nullable + public static final EntityType SHEEP = get("minecraft:sheep"); + @Nullable + public static final EntityType SHULKER = get("minecraft:shulker"); + @Nullable + public static final EntityType SHULKER_BULLET = get("minecraft:shulker_bullet"); + @Nullable + public static final EntityType SILVERFISH = get("minecraft:silverfish"); + @Nullable + public static final EntityType SKELETON = get("minecraft:skeleton"); + @Nullable + public static final EntityType SKELETON_HORSE = get("minecraft:skeleton_horse"); + @Nullable + public static final EntityType SLIME = get("minecraft:slime"); + @Nullable + public static final EntityType SMALL_FIREBALL = get("minecraft:small_fireball"); + @Nullable + public static final EntityType SNOW_GOLEM = get("minecraft:snow_golem"); + @Nullable + public static final EntityType SNOWBALL = get("minecraft:snowball"); + @Nullable + public static final EntityType SPAWNER_MINECART = get("minecraft:spawner_minecart"); + @Nullable + public static final EntityType SPECTRAL_ARROW = get("minecraft:spectral_arrow"); + @Nullable + public static final EntityType SPIDER = get("minecraft:spider"); + @Nullable + public static final EntityType SQUID = get("minecraft:squid"); + @Nullable + public static final EntityType STRAY = get("minecraft:stray"); + @Nullable + public static final EntityType STRIDER = get("minecraft:strider"); + @Nullable + public static final EntityType TNT = get("minecraft:tnt"); + @Nullable + public static final EntityType TNT_MINECART = get("minecraft:tnt_minecart"); + @Nullable + public static final EntityType TRADER_LLAMA = get("minecraft:trader_llama"); + @Nullable + public static final EntityType TRIDENT = get("minecraft:trident"); + @Nullable + public static final EntityType TROPICAL_FISH = get("minecraft:tropical_fish"); + @Nullable + public static final EntityType TURTLE = get("minecraft:turtle"); + @Nullable + public static final EntityType VEX = get("minecraft:vex"); + @Nullable + public static final EntityType VILLAGER = get("minecraft:villager"); + @Nullable + public static final EntityType VINDICATOR = get("minecraft:vindicator"); + @Nullable + public static final EntityType WANDERING_TRADER = get("minecraft:wandering_trader"); + @Nullable + public static final EntityType WITCH = get("minecraft:witch"); + @Nullable + public static final EntityType WITHER = get("minecraft:wither"); + @Nullable + public static final EntityType WITHER_SKELETON = get("minecraft:wither_skeleton"); + @Nullable + public static final EntityType WITHER_SKULL = get("minecraft:wither_skull"); + @Nullable + public static final EntityType WOLF = get("minecraft:wolf"); + @Nullable + public static final EntityType ZOGLIN = get("minecraft:zoglin"); + @Nullable + public static final EntityType ZOMBIE = get("minecraft:zombie"); + @Nullable + public static final EntityType ZOMBIE_HORSE = get("minecraft:zombie_horse"); + @Deprecated + @Nullable + public static final EntityType ZOMBIE_PIGMAN = get("minecraft:zombie_pigman"); + @Nullable + public static final EntityType ZOMBIE_VILLAGER = get("minecraft:zombie_villager"); + @Nullable + public static final EntityType ZOMBIFIED_PIGLIN = get("minecraft:zombified_piglin"); private EntityTypes() { } @@ -161,76 +277,146 @@ public final class EntityTypes { id = id.substring(10); } switch (id) { - case "AreaEffectCloud": return "area_effect_cloud"; - case "ArmorStand": return "armor_stand"; - case "CaveSpider": return "cave_spider"; - case "MinecartChest": return "chest_minecart"; - case "DragonFireball": return "dragon_fireball"; - case "ThrownEgg": return "egg"; - case "EnderDragon": return "ender_dragon"; - case "ThrownEnderpearl": return "ender_pearl"; - case "FallingSand": return "falling_block"; - case "FireworksRocketEntity": return "fireworks_rocket"; - case "MinecartFurnace": return "furnace_minecart"; - case "MinecartHopper": return "hopper_minecart"; - case "EntityHorse": return "horse"; - case "ItemFrame": return "item_frame"; - case "LeashKnot": return "leash_knot"; - case "LightningBolt": return "lightning_bolt"; - case "LavaSlime": return "magma_cube"; - case "MinecartRideable": return "minecart"; - case "MushroomCow": return "mooshroom"; - case "Ozelot": return "ocelot"; - case "PolarBear": return "polar_bear"; - case "ThrownPotion": return "potion"; - case "ShulkerBullet": return "shulker_bullet"; - case "SmallFireball": return "small_fireball"; - case "MinecartSpawner": return "spawner_minecart"; - case "SpectralArrow": return "spectral_arrow"; - case "PrimedTnt": return "tnt"; - case "MinecartTNT": return "tnt_minecart"; - case "VillagerGolem": return "villager_golem"; - case "WitherBoss": return "wither"; - case "WitherSkull": return "wither_skull"; - case "PigZombie": return "zombie_pigman"; - case "XPOrb": return "experience_orb"; - case "ThrownExpBottle": return "experience_bottle"; - case "EyeOfEnderSignal": return "eye_of_ender"; - case "EnderCrystal": return "end_crystal"; - case "MinecartCommandBlock": return "command_block_minecart"; - case "SnowMan": return "snow_golem"; - case "areaeffectcloud": return "area_effect_cloud"; - case "armorstand": return "armor_stand"; - case "cavespider": return "cave_spider"; - case "minecartchest": return "chest_minecart"; - case "dragonfireball": return "dragon_fireball"; - case "thrownegg": return "egg"; - case "enderdragon": return "ender_dragon"; - case "thrownenderpearl": return "ender_pearl"; - case "fallingsand": return "falling_block"; - case "fireworksrocketentity": return "fireworks_rocket"; - case "minecartfurnace": return "furnace_minecart"; - case "minecarthopper": return "hopper_minecart"; - case "entityhorse": return "horse"; - case "itemframe": return "item_frame"; - case "leashknot": return "leash_knot"; - case "lightningbolt": return "lightning_bolt"; - case "lavaslime": return "magma_cube"; - case "minecartrideable": return "minecart"; - case "mushroomcow": return "mooshroom"; - case "ozelot": return "ocelot"; - case "polarbear": return "polar_bear"; - case "thrownpotion": return "potion"; - case "shulkerbullet": return "shulker_bullet"; - case "smallfireball": return "small_fireball"; - case "minecartspawner": return "spawner_minecart"; - case "spectralarrow": return "spectral_arrow"; - case "primedtnt": return "tnt"; - case "minecarttnt": return "tnt_minecart"; - case "villagergolem": return "villager_golem"; - case "witherboss": return "wither"; - case "witherskull": return "wither_skull"; - case "pigzombie": return "zombie_pigman"; + case "AreaEffectCloud": + return "area_effect_cloud"; + case "ArmorStand": + return "armor_stand"; + case "CaveSpider": + return "cave_spider"; + case "MinecartChest": + return "chest_minecart"; + case "DragonFireball": + return "dragon_fireball"; + case "ThrownEgg": + return "egg"; + case "EnderDragon": + return "ender_dragon"; + case "ThrownEnderpearl": + return "ender_pearl"; + case "FallingSand": + return "falling_block"; + case "FireworksRocketEntity": + return "fireworks_rocket"; + case "MinecartFurnace": + return "furnace_minecart"; + case "MinecartHopper": + return "hopper_minecart"; + case "EntityHorse": + return "horse"; + case "ItemFrame": + return "item_frame"; + case "LeashKnot": + return "leash_knot"; + case "LightningBolt": + return "lightning_bolt"; + case "LavaSlime": + return "magma_cube"; + case "MinecartRideable": + return "minecart"; + case "MushroomCow": + return "mooshroom"; + case "Ozelot": + return "ocelot"; + case "PolarBear": + return "polar_bear"; + case "ThrownPotion": + return "potion"; + case "ShulkerBullet": + return "shulker_bullet"; + case "SmallFireball": + return "small_fireball"; + case "MinecartSpawner": + return "spawner_minecart"; + case "SpectralArrow": + return "spectral_arrow"; + case "PrimedTnt": + return "tnt"; + case "MinecartTNT": + return "tnt_minecart"; + case "VillagerGolem": + return "villager_golem"; + case "WitherBoss": + return "wither"; + case "WitherSkull": + return "wither_skull"; + case "PigZombie": + return "zombie_pigman"; + case "XPOrb": + return "experience_orb"; + case "ThrownExpBottle": + return "experience_bottle"; + case "EyeOfEnderSignal": + return "eye_of_ender"; + case "EnderCrystal": + return "end_crystal"; + case "MinecartCommandBlock": + return "command_block_minecart"; + case "SnowMan": + return "snow_golem"; + case "areaeffectcloud": + return "area_effect_cloud"; + case "armorstand": + return "armor_stand"; + case "cavespider": + return "cave_spider"; + case "minecartchest": + return "chest_minecart"; + case "dragonfireball": + return "dragon_fireball"; + case "thrownegg": + return "egg"; + case "enderdragon": + return "ender_dragon"; + case "thrownenderpearl": + return "ender_pearl"; + case "fallingsand": + return "falling_block"; + case "fireworksrocketentity": + return "fireworks_rocket"; + case "minecartfurnace": + return "furnace_minecart"; + case "minecarthopper": + return "hopper_minecart"; + case "entityhorse": + return "horse"; + case "itemframe": + return "item_frame"; + case "leashknot": + return "leash_knot"; + case "lightningbolt": + return "lightning_bolt"; + case "lavaslime": + return "magma_cube"; + case "minecartrideable": + return "minecart"; + case "mushroomcow": + return "mooshroom"; + case "ozelot": + return "ocelot"; + case "polarbear": + return "polar_bear"; + case "thrownpotion": + return "potion"; + case "shulkerbullet": + return "shulker_bullet"; + case "smallfireball": + return "small_fireball"; + case "minecartspawner": + return "spawner_minecart"; + case "spectralarrow": + return "spectral_arrow"; + case "primedtnt": + return "tnt"; + case "minecarttnt": + return "tnt_minecart"; + case "villagergolem": + return "villager_golem"; + case "witherboss": + return "wither"; + case "witherskull": + return "wither_skull"; + case "pigzombie": + return "zombie_pigman"; case "xporb": case "xp_orb": return "experience_orb"; @@ -243,17 +429,23 @@ public final class EntityTypes { case "endercrystal": case "ender_crystal": return "end_crystal"; - case "fireworks_rocket": return "firework_rocket"; + case "fireworks_rocket": + return "firework_rocket"; case "minecartcommandblock": case "commandblock_minecart": return "command_block_minecart"; case "snowman": return "snow_golem"; - case "villager_golem": return "iron_golem"; - case "evocation_fangs": return "evoker_fangs"; - case "evocation_illager": return "evoker"; - case "vindication_illager": return "vindicator"; - case "illusion_illager": return "illusioner"; + case "villager_golem": + return "iron_golem"; + case "evocation_fangs": + return "evoker_fangs"; + case "evocation_illager": + return "evoker"; + case "vindication_illager": + return "vindicator"; + case "illusion_illager": + return "illusioner"; default: { if (Character.isUpperCase(id.charAt(0))) { return convertEntityId(id.toLowerCase(Locale.ROOT)); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/fluid/FluidCategories.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/fluid/FluidCategories.java index b236a3914..2788fdebe 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/fluid/FluidCategories.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/fluid/FluidCategories.java @@ -44,4 +44,5 @@ public final class FluidCategories { public static FluidCategory get(final String id) { return FluidCategory.REGISTRY.get(id); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/fluid/FluidCategory.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/fluid/FluidCategory.java index 5e629af83..775ec58a6 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/fluid/FluidCategory.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/fluid/FluidCategory.java @@ -45,4 +45,5 @@ public class FluidCategory extends Category implements Keyed { // .queryCapability(Capability.GAME_HOOKS).getRegistries() // .getBlockCategoryRegistry().getCategorisedByName(this.id); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/fluid/FluidType.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/fluid/FluidType.java index ab3ec1989..d62d13b51 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/fluid/FluidType.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/fluid/FluidType.java @@ -19,9 +19,9 @@ package com.sk89q.worldedit.world.fluid; +import com.fastasyncworldedit.core.registry.RegistryItem; import com.sk89q.worldedit.registry.Keyed; import com.sk89q.worldedit.registry.NamespacedRegistry; -import com.fastasyncworldedit.core.registry.RegistryItem; /** * Minecraft now has a 'fluid' system. This is a @@ -79,4 +79,5 @@ public class FluidType implements RegistryItem, Keyed { public boolean equals(Object obj) { return obj instanceof FluidType && this.id.equals(((FluidType) obj).id); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/fluid/FluidTypes.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/fluid/FluidTypes.java index 13851f5e1..18c43d8c8 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/fluid/FluidTypes.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/fluid/FluidTypes.java @@ -47,4 +47,5 @@ public final class FluidTypes { public static FluidType get(final String id) { return FluidType.REGISTRY.get(id); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/item/ItemCategories.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/item/ItemCategories.java index 3265bbdb2..79f30f2ae 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/item/ItemCategories.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/item/ItemCategories.java @@ -26,6 +26,7 @@ package com.sk89q.worldedit.world.item; */ @SuppressWarnings("unused") public final class ItemCategories { + public static final ItemCategory ACACIA_LOGS = get("minecraft:acacia_logs"); public static final ItemCategory ANVIL = get("minecraft:anvil"); public static final ItemCategory ARROWS = get("minecraft:arrows"); @@ -53,7 +54,8 @@ public final class ItemCategories { public static final ItemCategory FLOWERS = get("minecraft:flowers"); public static final ItemCategory FOX_FOOD = get("minecraft:fox_food"); public static final ItemCategory FREEZE_IMMUNE_WEARABLES = get("minecraft:freeze_immune_wearables"); - @Deprecated public static final ItemCategory FURNACE_MATERIALS = get("minecraft:furnace_materials"); + @Deprecated + public static final ItemCategory FURNACE_MATERIALS = get("minecraft:furnace_materials"); public static final ItemCategory GOLD_ORES = get("minecraft:gold_ores"); public static final ItemCategory IGNORED_BY_PIGLIN_BABIES = get("minecraft:ignored_by_piglin_babies"); public static final ItemCategory IRON_ORES = get("minecraft:iron_ores"); @@ -110,4 +112,5 @@ public final class ItemCategories { } return entry; } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/item/ItemCategory.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/item/ItemCategory.java index 4850b1cde..28811bc0f 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/item/ItemCategory.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/item/ItemCategory.java @@ -57,4 +57,5 @@ public class ItemCategory extends Category implements Keyed { public boolean contains(BaseItem baseItem) { return this.getAll().contains(baseItem.getType()); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/item/ItemType.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/item/ItemType.java index ef8bea2e8..97549320d 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/item/ItemType.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/item/ItemType.java @@ -19,13 +19,13 @@ package com.sk89q.worldedit.world.item; +import com.fastasyncworldedit.core.registry.RegistryItem; import com.sk89q.worldedit.WorldEdit; import com.sk89q.worldedit.blocks.BaseItem; import com.sk89q.worldedit.blocks.BaseItemStack; import com.sk89q.worldedit.extension.platform.Capability; import com.sk89q.worldedit.registry.Keyed; import com.sk89q.worldedit.registry.NamespacedRegistry; -import com.fastasyncworldedit.core.registry.RegistryItem; import com.sk89q.worldedit.util.GuavaUtil; import com.sk89q.worldedit.util.concurrency.LazyReference; import com.sk89q.worldedit.util.formatting.text.Component; @@ -45,19 +45,19 @@ public class ItemType implements RegistryItem, Keyed { @SuppressWarnings("deprecation") private final LazyReference name = LazyReference.from(() -> { String name = GuavaUtil.firstNonNull( - WorldEdit.getInstance().getPlatformManager().queryCapability(Capability.GAME_HOOKS) - .getRegistries().getItemRegistry().getName(this), - "" + WorldEdit.getInstance().getPlatformManager().queryCapability(Capability.GAME_HOOKS) + .getRegistries().getItemRegistry().getName(this), + "" ); return name.isEmpty() ? getId() : name; }); private final LazyReference richName = LazyReference.from(() -> - WorldEdit.getInstance().getPlatformManager().queryCapability(Capability.GAME_HOOKS) - .getRegistries().getItemRegistry().getRichName(this) + WorldEdit.getInstance().getPlatformManager().queryCapability(Capability.GAME_HOOKS) + .getRegistries().getItemRegistry().getRichName(this) ); private final LazyReference itemMaterial = LazyReference.from(() -> - WorldEdit.getInstance().getPlatformManager().queryCapability(Capability.GAME_HOOKS) - .getRegistries().getItemRegistry().getMaterial(this) + WorldEdit.getInstance().getPlatformManager().queryCapability(Capability.GAME_HOOKS) + .getRegistries().getItemRegistry().getMaterial(this) ); //FAWE start private BlockType blockType; @@ -163,4 +163,5 @@ public class ItemType implements RegistryItem, Keyed { public boolean equals(Object obj) { return obj instanceof ItemType && this.id.equals(((ItemType) obj).id); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/item/ItemTypes.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/item/ItemTypes.java index 1afe9a6e3..c99c80edb 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/item/ItemTypes.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/item/ItemTypes.java @@ -23,10 +23,10 @@ import com.fastasyncworldedit.core.util.JoinedCharSequence; import com.fastasyncworldedit.core.world.block.ItemTypesCache; import com.sk89q.worldedit.world.registry.LegacyMapper; +import javax.annotation.Nullable; import java.lang.reflect.Field; import java.util.Collection; import java.util.Locale; -import javax.annotation.Nullable; /** * Stores a list of common {@link ItemType ItemTypes}. @@ -35,1111 +35,2222 @@ import javax.annotation.Nullable; */ @SuppressWarnings("unused") public final class ItemTypes { + //FAWE start - init - @Nullable public static final ItemType ACACIA_BOAT = init(); - @Nullable public static final ItemType ACACIA_BUTTON = init(); - @Nullable public static final ItemType ACACIA_DOOR = init(); - @Nullable public static final ItemType ACACIA_FENCE = init(); - @Nullable public static final ItemType ACACIA_FENCE_GATE = init(); - @Nullable public static final ItemType ACACIA_LEAVES = init(); - @Nullable public static final ItemType ACACIA_LOG = init(); - @Nullable public static final ItemType ACACIA_PLANKS = init(); - @Nullable public static final ItemType ACACIA_PRESSURE_PLATE = init(); - @Nullable public static final ItemType ACACIA_SAPLING = init(); - @Nullable public static final ItemType ACACIA_SIGN = init(); - @Nullable public static final ItemType ACACIA_SLAB = init(); - @Nullable public static final ItemType ACACIA_STAIRS = init(); - @Nullable public static final ItemType ACACIA_TRAPDOOR = init(); - @Nullable public static final ItemType ACACIA_WOOD = init(); - @Nullable public static final ItemType ACTIVATOR_RAIL = init(); - @Nullable public static final ItemType AIR = init(); - @Nullable public static final ItemType ALLIUM = init(); - @Nullable public static final ItemType AMETHYST_BLOCK = init(); - @Nullable public static final ItemType AMETHYST_CLUSTER = init(); - @Nullable public static final ItemType AMETHYST_SHARD = init(); - @Nullable public static final ItemType ANCIENT_DEBRIS = init(); - @Nullable public static final ItemType ANDESITE = init(); - @Nullable public static final ItemType ANDESITE_SLAB = init(); - @Nullable public static final ItemType ANDESITE_STAIRS = init(); - @Nullable public static final ItemType ANDESITE_WALL = init(); - @Nullable public static final ItemType ANVIL = init(); - @Nullable public static final ItemType APPLE = init(); - @Nullable public static final ItemType ARMOR_STAND = init(); - @Nullable public static final ItemType ARROW = init(); - @Nullable public static final ItemType AXOLOTL_BUCKET = init(); - @Nullable public static final ItemType AXOLOTL_SPAWN_EGG = init(); - @Nullable public static final ItemType AZALEA = init(); - @Nullable public static final ItemType AZALEA_LEAVES = init(); - @Nullable public static final ItemType AZURE_BLUET = init(); - @Nullable public static final ItemType BAKED_POTATO = init(); - @Nullable public static final ItemType BAMBOO = init(); - @Nullable public static final ItemType BARREL = init(); - @Nullable public static final ItemType BARRIER = init(); - @Nullable public static final ItemType BASALT = init(); - @Nullable public static final ItemType BAT_SPAWN_EGG = init(); - @Nullable public static final ItemType BEACON = init(); - @Nullable public static final ItemType BEDROCK = init(); - @Nullable public static final ItemType BEE_NEST = init(); - @Nullable public static final ItemType BEE_SPAWN_EGG = init(); - @Nullable public static final ItemType BEEF = init(); - @Nullable public static final ItemType BEEHIVE = init(); - @Nullable public static final ItemType BEETROOT = init(); - @Nullable public static final ItemType BEETROOT_SEEDS = init(); - @Nullable public static final ItemType BEETROOT_SOUP = init(); - @Nullable public static final ItemType BELL = init(); - @Nullable public static final ItemType BIG_DRIPLEAF = init(); - @Nullable public static final ItemType BIRCH_BOAT = init(); - @Nullable public static final ItemType BIRCH_BUTTON = init(); - @Nullable public static final ItemType BIRCH_DOOR = init(); - @Nullable public static final ItemType BIRCH_FENCE = init(); - @Nullable public static final ItemType BIRCH_FENCE_GATE = init(); - @Nullable public static final ItemType BIRCH_LEAVES = init(); - @Nullable public static final ItemType BIRCH_LOG = init(); - @Nullable public static final ItemType BIRCH_PLANKS = init(); - @Nullable public static final ItemType BIRCH_PRESSURE_PLATE = init(); - @Nullable public static final ItemType BIRCH_SAPLING = init(); - @Nullable public static final ItemType BIRCH_SIGN = init(); - @Nullable public static final ItemType BIRCH_SLAB = init(); - @Nullable public static final ItemType BIRCH_STAIRS = init(); - @Nullable public static final ItemType BIRCH_TRAPDOOR = init(); - @Nullable public static final ItemType BIRCH_WOOD = init(); - @Nullable public static final ItemType BLACK_BANNER = init(); - @Nullable public static final ItemType BLACK_BED = init(); - @Nullable public static final ItemType BLACK_CANDLE = init(); - @Nullable public static final ItemType BLACK_CARPET = init(); - @Nullable public static final ItemType BLACK_CONCRETE = init(); - @Nullable public static final ItemType BLACK_CONCRETE_POWDER = init(); - @Nullable public static final ItemType BLACK_DYE = init(); - @Nullable public static final ItemType BLACK_GLAZED_TERRACOTTA = init(); - @Nullable public static final ItemType BLACK_SHULKER_BOX = init(); - @Nullable public static final ItemType BLACK_STAINED_GLASS = init(); - @Nullable public static final ItemType BLACK_STAINED_GLASS_PANE = init(); - @Nullable public static final ItemType BLACK_TERRACOTTA = init(); - @Nullable public static final ItemType BLACK_WOOL = init(); - @Nullable public static final ItemType BLACKSTONE = init(); - @Nullable public static final ItemType BLACKSTONE_SLAB = init(); - @Nullable public static final ItemType BLACKSTONE_STAIRS = init(); - @Nullable public static final ItemType BLACKSTONE_WALL = init(); - @Nullable public static final ItemType BLAST_FURNACE = init(); - @Nullable public static final ItemType BLAZE_POWDER = init(); - @Nullable public static final ItemType BLAZE_ROD = init(); - @Nullable public static final ItemType BLAZE_SPAWN_EGG = init(); - @Nullable public static final ItemType BLUE_BANNER = init(); - @Nullable public static final ItemType BLUE_BED = init(); - @Nullable public static final ItemType BLUE_CANDLE = init(); - @Nullable public static final ItemType BROWN_CANDLE = init(); - @Nullable public static final ItemType BLUE_CARPET = init(); - @Nullable public static final ItemType BLUE_CONCRETE = init(); - @Nullable public static final ItemType BLUE_CONCRETE_POWDER = init(); - @Nullable public static final ItemType BLUE_DYE = init(); - @Nullable public static final ItemType BLUE_GLAZED_TERRACOTTA = init(); - @Nullable public static final ItemType BLUE_ICE = init(); - @Nullable public static final ItemType BLUE_ORCHID = init(); - @Nullable public static final ItemType BLUE_SHULKER_BOX = init(); - @Nullable public static final ItemType BLUE_STAINED_GLASS = init(); - @Nullable public static final ItemType BLUE_STAINED_GLASS_PANE = init(); - @Nullable public static final ItemType BLUE_TERRACOTTA = init(); - @Nullable public static final ItemType BLUE_WOOL = init(); - @Nullable public static final ItemType BONE = init(); - @Nullable public static final ItemType BONE_BLOCK = init(); - @Nullable public static final ItemType BONE_MEAL = init(); - @Nullable public static final ItemType BOOK = init(); - @Nullable public static final ItemType BOOKSHELF = init(); - @Nullable public static final ItemType BOW = init(); - @Nullable public static final ItemType BOWL = init(); - @Nullable public static final ItemType BRAIN_CORAL = init(); - @Nullable public static final ItemType BRAIN_CORAL_BLOCK = init(); - @Nullable public static final ItemType BRAIN_CORAL_FAN = init(); - @Nullable public static final ItemType BREAD = init(); - @Nullable public static final ItemType BREWING_STAND = init(); - @Nullable public static final ItemType BRICK = init(); - @Nullable public static final ItemType BRICK_SLAB = init(); - @Nullable public static final ItemType BRICK_STAIRS = init(); - @Nullable public static final ItemType BRICK_WALL = init(); - @Nullable public static final ItemType BRICKS = init(); - @Nullable public static final ItemType BROWN_BANNER = init(); - @Nullable public static final ItemType BROWN_BED = init(); - @Nullable public static final ItemType BROWN_CARPET = init(); - @Nullable public static final ItemType BROWN_CONCRETE = init(); - @Nullable public static final ItemType BROWN_CONCRETE_POWDER = init(); - @Nullable public static final ItemType BROWN_DYE = init(); - @Nullable public static final ItemType BROWN_GLAZED_TERRACOTTA = init(); - @Nullable public static final ItemType BROWN_MUSHROOM = init(); - @Nullable public static final ItemType BROWN_MUSHROOM_BLOCK = init(); - @Nullable public static final ItemType BROWN_SHULKER_BOX = init(); - @Nullable public static final ItemType BROWN_STAINED_GLASS = init(); - @Nullable public static final ItemType BROWN_STAINED_GLASS_PANE = init(); - @Nullable public static final ItemType BROWN_TERRACOTTA = init(); - @Nullable public static final ItemType BROWN_WOOL = init(); - @Nullable public static final ItemType BUBBLE_CORAL = init(); - @Nullable public static final ItemType BUBBLE_CORAL_BLOCK = init(); - @Nullable public static final ItemType BUBBLE_CORAL_FAN = init(); - @Nullable public static final ItemType BUCKET = init(); - @Nullable public static final ItemType BUDDING_AMETHYST = init(); - @Nullable public static final ItemType BUNDLE = init(); - @Nullable public static final ItemType CACTUS = init(); - @Deprecated @Nullable public static final ItemType CACTUS_GREEN = init(); - @Nullable public static final ItemType CAKE = init(); - @Nullable public static final ItemType CALCITE = init(); - @Nullable public static final ItemType CAMPFIRE = init(); - @Nullable public static final ItemType CANDLE = init(); - @Nullable public static final ItemType CARROT = init(); - @Nullable public static final ItemType CARROT_ON_A_STICK = init(); - @Nullable public static final ItemType CARTOGRAPHY_TABLE = init(); - @Nullable public static final ItemType CARVED_PUMPKIN = init(); - @Nullable public static final ItemType CAT_SPAWN_EGG = init(); - @Nullable public static final ItemType CAULDRON = init(); - @Nullable public static final ItemType CAVE_SPIDER_SPAWN_EGG = init(); - @Nullable public static final ItemType CHAIN = init(); - @Nullable public static final ItemType CHAIN_COMMAND_BLOCK = init(); - @Nullable public static final ItemType CHAINMAIL_BOOTS = init(); - @Nullable public static final ItemType CHAINMAIL_CHESTPLATE = init(); - @Nullable public static final ItemType CHAINMAIL_HELMET = init(); - @Nullable public static final ItemType CHAINMAIL_LEGGINGS = init(); - @Nullable public static final ItemType CHARCOAL = init(); - @Nullable public static final ItemType CHEST = init(); - @Nullable public static final ItemType CHEST_MINECART = init(); - @Nullable public static final ItemType CHICKEN = init(); - @Nullable public static final ItemType CHICKEN_SPAWN_EGG = init(); - @Nullable public static final ItemType CHIPPED_ANVIL = init(); - @Nullable public static final ItemType CHISELED_DEEPSLATE = init(); - @Nullable public static final ItemType CHISELED_NETHER_BRICKS = init(); - @Nullable public static final ItemType CHISELED_POLISHED_BLACKSTONE = init(); - @Nullable public static final ItemType CHISELED_QUARTZ_BLOCK = init(); - @Nullable public static final ItemType CHISELED_RED_SANDSTONE = init(); - @Nullable public static final ItemType CHISELED_SANDSTONE = init(); - @Nullable public static final ItemType CHISELED_STONE_BRICKS = init(); - @Nullable public static final ItemType CHORUS_FLOWER = init(); - @Nullable public static final ItemType CHORUS_FRUIT = init(); - @Nullable public static final ItemType CHORUS_PLANT = init(); - @Nullable public static final ItemType CLAY = init(); - @Nullable public static final ItemType CLAY_BALL = init(); - @Nullable public static final ItemType CLOCK = init(); - @Nullable public static final ItemType COAL = init(); - @Nullable public static final ItemType COAL_BLOCK = init(); - @Nullable public static final ItemType COAL_ORE = init(); - @Nullable public static final ItemType COARSE_DIRT = init(); - @Nullable public static final ItemType COBBLED_DEEPSLATE = init(); - @Nullable public static final ItemType COBBLED_DEEPSLATE_SLAB = init(); - @Nullable public static final ItemType COBBLED_DEEPSLATE_STAIRS = init(); - @Nullable public static final ItemType COBBLED_DEEPSLATE_WALL = init(); - @Nullable public static final ItemType COBBLESTONE = init(); - @Nullable public static final ItemType COBBLESTONE_SLAB = init(); - @Nullable public static final ItemType COBBLESTONE_STAIRS = init(); - @Nullable public static final ItemType COBBLESTONE_WALL = init(); - @Nullable public static final ItemType COBWEB = init(); - @Nullable public static final ItemType COCOA_BEANS = init(); - @Nullable public static final ItemType COD = init(); - @Nullable public static final ItemType COD_BUCKET = init(); - @Nullable public static final ItemType COD_SPAWN_EGG = init(); - @Nullable public static final ItemType COMMAND_BLOCK = init(); - @Nullable public static final ItemType COMMAND_BLOCK_MINECART = init(); - @Nullable public static final ItemType COMPARATOR = init(); - @Nullable public static final ItemType COMPASS = init(); - @Nullable public static final ItemType COMPOSTER = init(); - @Nullable public static final ItemType CONDUIT = init(); - @Nullable public static final ItemType COOKED_BEEF = init(); - @Nullable public static final ItemType COOKED_CHICKEN = init(); - @Nullable public static final ItemType COOKED_COD = init(); - @Nullable public static final ItemType COOKED_MUTTON = init(); - @Nullable public static final ItemType COOKED_PORKCHOP = init(); - @Nullable public static final ItemType COOKED_RABBIT = init(); - @Nullable public static final ItemType COOKED_SALMON = init(); - @Nullable public static final ItemType COOKIE = init(); - @Nullable public static final ItemType COPPER_BLOCK = init(); - @Nullable public static final ItemType COPPER_INGOT = init(); - @Nullable public static final ItemType COPPER_ORE = init(); - @Nullable public static final ItemType CORNFLOWER = init(); - @Nullable public static final ItemType COW_SPAWN_EGG = init(); - @Nullable public static final ItemType CRACKED_DEEPSLATE_BRICKS = init(); - @Nullable public static final ItemType CRACKED_DEEPSLATE_TILES = init(); - @Nullable public static final ItemType CRACKED_NETHER_BRICKS = init(); - @Nullable public static final ItemType CRACKED_POLISHED_BLACKSTONE_BRICKS = init(); - @Nullable public static final ItemType CRACKED_STONE_BRICKS = init(); - @Nullable public static final ItemType CRAFTING_TABLE = init(); - @Nullable public static final ItemType CREEPER_BANNER_PATTERN = init(); - @Nullable public static final ItemType CREEPER_HEAD = init(); - @Nullable public static final ItemType CREEPER_SPAWN_EGG = init(); - @Nullable public static final ItemType CRIMSON_BUTTON = init(); - @Nullable public static final ItemType CRIMSON_DOOR = init(); - @Nullable public static final ItemType CRIMSON_FENCE = init(); - @Nullable public static final ItemType CRIMSON_FENCE_GATE = init(); - @Nullable public static final ItemType CRIMSON_FUNGUS = init(); - @Nullable public static final ItemType CRIMSON_HYPHAE = init(); - @Nullable public static final ItemType CRIMSON_NYLIUM = init(); - @Nullable public static final ItemType CRIMSON_PLANKS = init(); - @Nullable public static final ItemType CRIMSON_PRESSURE_PLATE = init(); - @Nullable public static final ItemType CRIMSON_ROOTS = init(); - @Nullable public static final ItemType CRIMSON_SIGN = init(); - @Nullable public static final ItemType CRIMSON_SLAB = init(); - @Nullable public static final ItemType CRIMSON_STAIRS = init(); - @Nullable public static final ItemType CRIMSON_STEM = init(); - @Nullable public static final ItemType CRIMSON_TRAPDOOR = init(); - @Nullable public static final ItemType CROSSBOW = init(); - @Nullable public static final ItemType CRYING_OBSIDIAN = init(); - @Nullable public static final ItemType CUT_COPPER = init(); - @Nullable public static final ItemType CUT_COPPER_SLAB = init(); - @Nullable public static final ItemType CUT_COPPER_STAIRS = init(); - @Nullable public static final ItemType CUT_RED_SANDSTONE = init(); - @Nullable public static final ItemType CUT_RED_SANDSTONE_SLAB = init(); - @Nullable public static final ItemType CUT_SANDSTONE = init(); - @Nullable public static final ItemType CUT_SANDSTONE_SLAB = init(); - @Nullable public static final ItemType CYAN_BANNER = init(); - @Nullable public static final ItemType CYAN_BED = init(); - @Nullable public static final ItemType CYAN_CANDLE = init(); - @Nullable public static final ItemType CYAN_CARPET = init(); - @Nullable public static final ItemType CYAN_CONCRETE = init(); - @Nullable public static final ItemType CYAN_CONCRETE_POWDER = init(); - @Nullable public static final ItemType CYAN_DYE = init(); - @Nullable public static final ItemType CYAN_GLAZED_TERRACOTTA = init(); - @Nullable public static final ItemType CYAN_SHULKER_BOX = init(); - @Nullable public static final ItemType CYAN_STAINED_GLASS = init(); - @Nullable public static final ItemType CYAN_STAINED_GLASS_PANE = init(); - @Nullable public static final ItemType CYAN_TERRACOTTA = init(); - @Nullable public static final ItemType CYAN_WOOL = init(); - @Nullable public static final ItemType DAMAGED_ANVIL = init(); - @Nullable public static final ItemType DANDELION = init(); - @Deprecated @Nullable public static final ItemType DANDELION_YELLOW = init(); - @Nullable public static final ItemType DARK_OAK_BOAT = init(); - @Nullable public static final ItemType DARK_OAK_BUTTON = init(); - @Nullable public static final ItemType DARK_OAK_DOOR = init(); - @Nullable public static final ItemType DARK_OAK_FENCE = init(); - @Nullable public static final ItemType DARK_OAK_FENCE_GATE = init(); - @Nullable public static final ItemType DARK_OAK_LEAVES = init(); - @Nullable public static final ItemType DARK_OAK_LOG = init(); - @Nullable public static final ItemType DARK_OAK_PLANKS = init(); - @Nullable public static final ItemType DARK_OAK_PRESSURE_PLATE = init(); - @Nullable public static final ItemType DARK_OAK_SAPLING = init(); - @Nullable public static final ItemType DARK_OAK_SIGN = init(); - @Nullable public static final ItemType DARK_OAK_SLAB = init(); - @Nullable public static final ItemType DARK_OAK_STAIRS = init(); - @Nullable public static final ItemType DARK_OAK_TRAPDOOR = init(); - @Nullable public static final ItemType DARK_OAK_WOOD = init(); - @Nullable public static final ItemType DARK_PRISMARINE = init(); - @Nullable public static final ItemType DARK_PRISMARINE_SLAB = init(); - @Nullable public static final ItemType DARK_PRISMARINE_STAIRS = init(); - @Nullable public static final ItemType DAYLIGHT_DETECTOR = init(); - @Nullable public static final ItemType DEAD_BRAIN_CORAL = init(); - @Nullable public static final ItemType DEAD_BRAIN_CORAL_BLOCK = init(); - @Nullable public static final ItemType DEAD_BRAIN_CORAL_FAN = init(); - @Nullable public static final ItemType DEAD_BUBBLE_CORAL = init(); - @Nullable public static final ItemType DEAD_BUBBLE_CORAL_BLOCK = init(); - @Nullable public static final ItemType DEAD_BUBBLE_CORAL_FAN = init(); - @Nullable public static final ItemType DEAD_BUSH = init(); - @Nullable public static final ItemType DEAD_FIRE_CORAL = init(); - @Nullable public static final ItemType DEAD_FIRE_CORAL_BLOCK = init(); - @Nullable public static final ItemType DEAD_FIRE_CORAL_FAN = init(); - @Nullable public static final ItemType DEAD_HORN_CORAL = init(); - @Nullable public static final ItemType DEAD_HORN_CORAL_BLOCK = init(); - @Nullable public static final ItemType DEAD_HORN_CORAL_FAN = init(); - @Nullable public static final ItemType DEAD_TUBE_CORAL = init(); - @Nullable public static final ItemType DEAD_TUBE_CORAL_BLOCK = init(); - @Nullable public static final ItemType DEAD_TUBE_CORAL_FAN = init(); - @Nullable public static final ItemType DEBUG_STICK = init(); - @Nullable public static final ItemType DEEPSLATE = init(); - @Nullable public static final ItemType DEEPSLATE_BRICK_SLAB = init(); - @Nullable public static final ItemType DEEPSLATE_BRICK_STAIRS = init(); - @Nullable public static final ItemType DEEPSLATE_BRICK_WALL = init(); - @Nullable public static final ItemType DEEPSLATE_BRICKS = init(); - @Nullable public static final ItemType DEEPSLATE_COAL_ORE = init(); - @Nullable public static final ItemType DEEPSLATE_COPPER_ORE = init(); - @Nullable public static final ItemType DEEPSLATE_DIAMOND_ORE = init(); - @Nullable public static final ItemType DEEPSLATE_EMERALD_ORE = init(); - @Nullable public static final ItemType DEEPSLATE_GOLD_ORE = init(); - @Nullable public static final ItemType DEEPSLATE_IRON_ORE = init(); - @Nullable public static final ItemType DEEPSLATE_LAPIS_ORE = init(); - @Nullable public static final ItemType DEEPSLATE_REDSTONE_ORE = init(); - @Nullable public static final ItemType DEEPSLATE_TILE_SLAB = init(); - @Nullable public static final ItemType DEEPSLATE_TILE_STAIRS = init(); - @Nullable public static final ItemType DEEPSLATE_TILE_WALL = init(); - @Nullable public static final ItemType DEEPSLATE_TILES = init(); - @Nullable public static final ItemType DETECTOR_RAIL = init(); - @Nullable public static final ItemType DIAMOND = init(); - @Nullable public static final ItemType DIAMOND_AXE = init(); - @Nullable public static final ItemType DIAMOND_BLOCK = init(); - @Nullable public static final ItemType DIAMOND_BOOTS = init(); - @Nullable public static final ItemType DIAMOND_CHESTPLATE = init(); - @Nullable public static final ItemType DIAMOND_HELMET = init(); - @Nullable public static final ItemType DIAMOND_HOE = init(); - @Nullable public static final ItemType DIAMOND_HORSE_ARMOR = init(); - @Nullable public static final ItemType DIAMOND_LEGGINGS = init(); - @Nullable public static final ItemType DIAMOND_ORE = init(); - @Nullable public static final ItemType DIAMOND_PICKAXE = init(); - @Nullable public static final ItemType DIAMOND_SHOVEL = init(); - @Nullable public static final ItemType DIAMOND_SWORD = init(); - @Nullable public static final ItemType DIORITE = init(); - @Nullable public static final ItemType DIORITE_SLAB = init(); - @Nullable public static final ItemType DIORITE_STAIRS = init(); - @Nullable public static final ItemType DIORITE_WALL = init(); - @Nullable public static final ItemType DIRT = init(); - @Nullable public static final ItemType DIRT_PATH = init(); - @Nullable public static final ItemType DISPENSER = init(); - @Nullable public static final ItemType DOLPHIN_SPAWN_EGG = init(); - @Nullable public static final ItemType DONKEY_SPAWN_EGG = init(); - @Nullable public static final ItemType DRAGON_BREATH = init(); - @Nullable public static final ItemType DRAGON_EGG = init(); - @Nullable public static final ItemType DRAGON_HEAD = init(); - @Nullable public static final ItemType DRIED_KELP = init(); - @Nullable public static final ItemType DRIED_KELP_BLOCK = init(); - @Nullable public static final ItemType DRIPSTONE_BLOCK = init(); - @Nullable public static final ItemType DROPPER = init(); - @Nullable public static final ItemType DROWNED_SPAWN_EGG = init(); - @Nullable public static final ItemType EGG = init(); - @Nullable public static final ItemType ELDER_GUARDIAN_SPAWN_EGG = init(); - @Nullable public static final ItemType ELYTRA = init(); - @Nullable public static final ItemType EMERALD = init(); - @Nullable public static final ItemType EMERALD_BLOCK = init(); - @Nullable public static final ItemType EMERALD_ORE = init(); - @Nullable public static final ItemType ENCHANTED_BOOK = init(); - @Nullable public static final ItemType ENCHANTED_GOLDEN_APPLE = init(); - @Nullable public static final ItemType ENCHANTING_TABLE = init(); - @Nullable public static final ItemType END_CRYSTAL = init(); - @Nullable public static final ItemType END_PORTAL_FRAME = init(); - @Nullable public static final ItemType END_ROD = init(); - @Nullable public static final ItemType END_STONE = init(); - @Nullable public static final ItemType END_STONE_BRICK_SLAB = init(); - @Nullable public static final ItemType END_STONE_BRICK_STAIRS = init(); - @Nullable public static final ItemType END_STONE_BRICK_WALL = init(); - @Nullable public static final ItemType END_STONE_BRICKS = init(); - @Nullable public static final ItemType ENDER_CHEST = init(); - @Nullable public static final ItemType ENDER_EYE = init(); - @Nullable public static final ItemType ENDER_PEARL = init(); - @Nullable public static final ItemType ENDERMAN_SPAWN_EGG = init(); - @Nullable public static final ItemType ENDERMITE_SPAWN_EGG = init(); - @Nullable public static final ItemType EVOKER_SPAWN_EGG = init(); - @Nullable public static final ItemType EXPERIENCE_BOTTLE = init(); - @Nullable public static final ItemType EXPOSED_COPPER = init(); - @Nullable public static final ItemType EXPOSED_CUT_COPPER = init(); - @Nullable public static final ItemType EXPOSED_CUT_COPPER_SLAB = init(); - @Nullable public static final ItemType EXPOSED_CUT_COPPER_STAIRS = init(); - @Nullable public static final ItemType FARMLAND = init(); - @Nullable public static final ItemType FEATHER = init(); - @Nullable public static final ItemType FERMENTED_SPIDER_EYE = init(); - @Nullable public static final ItemType FERN = init(); - @Nullable public static final ItemType FILLED_MAP = init(); - @Nullable public static final ItemType FIRE_CHARGE = init(); - @Nullable public static final ItemType FIRE_CORAL = init(); - @Nullable public static final ItemType FIRE_CORAL_BLOCK = init(); - @Nullable public static final ItemType FIRE_CORAL_FAN = init(); - @Nullable public static final ItemType FIREWORK_ROCKET = init(); - @Nullable public static final ItemType FIREWORK_STAR = init(); - @Nullable public static final ItemType FISHING_ROD = init(); - @Nullable public static final ItemType FLETCHING_TABLE = init(); - @Nullable public static final ItemType FLINT = init(); - @Nullable public static final ItemType FLINT_AND_STEEL = init(); - @Nullable public static final ItemType FLOWER_BANNER_PATTERN = init(); - @Nullable public static final ItemType FLOWER_POT = init(); - @Nullable public static final ItemType FLOWERING_AZALEA = init(); - @Nullable public static final ItemType FLOWERING_AZALEA_LEAVES = init(); - @Nullable public static final ItemType FOX_SPAWN_EGG = init(); - @Nullable public static final ItemType FURNACE = init(); - @Nullable public static final ItemType FURNACE_MINECART = init(); - @Nullable public static final ItemType GHAST_SPAWN_EGG = init(); - @Nullable public static final ItemType GHAST_TEAR = init(); - @Nullable public static final ItemType GILDED_BLACKSTONE = init(); - @Nullable public static final ItemType GLASS = init(); - @Nullable public static final ItemType GLASS_BOTTLE = init(); - @Nullable public static final ItemType GLASS_PANE = init(); - @Nullable public static final ItemType GLISTERING_MELON_SLICE = init(); - @Nullable public static final ItemType GLOBE_BANNER_PATTERN = init(); - @Nullable public static final ItemType GLOW_BERRIES = init(); - @Nullable public static final ItemType GLOW_INK_SAC = init(); - @Nullable public static final ItemType GLOW_ITEM_FRAME = init(); - @Nullable public static final ItemType GLOW_LICHEN = init(); - @Nullable public static final ItemType GLOW_SQUID_SPAWN_EGG = init(); - @Nullable public static final ItemType GLOWSTONE = init(); - @Nullable public static final ItemType GLOWSTONE_DUST = init(); - @Nullable public static final ItemType GOAT_SPAWN_EGG = init(); - @Nullable public static final ItemType GOLD_BLOCK = init(); - @Nullable public static final ItemType GOLD_INGOT = init(); - @Nullable public static final ItemType GOLD_NUGGET = init(); - @Nullable public static final ItemType GOLD_ORE = init(); - @Nullable public static final ItemType GOLDEN_APPLE = init(); - @Nullable public static final ItemType GOLDEN_AXE = init(); - @Nullable public static final ItemType GOLDEN_BOOTS = init(); - @Nullable public static final ItemType GOLDEN_CARROT = init(); - @Nullable public static final ItemType GOLDEN_CHESTPLATE = init(); - @Nullable public static final ItemType GOLDEN_HELMET = init(); - @Nullable public static final ItemType GOLDEN_HOE = init(); - @Nullable public static final ItemType GOLDEN_HORSE_ARMOR = init(); - @Nullable public static final ItemType GOLDEN_LEGGINGS = init(); - @Nullable public static final ItemType GOLDEN_PICKAXE = init(); - @Nullable public static final ItemType GOLDEN_SHOVEL = init(); - @Nullable public static final ItemType GOLDEN_SWORD = init(); - @Nullable public static final ItemType GRANITE = init(); - @Nullable public static final ItemType GRANITE_SLAB = init(); - @Nullable public static final ItemType GRANITE_STAIRS = init(); - @Nullable public static final ItemType GRANITE_WALL = init(); - @Nullable public static final ItemType GRASS = init(); - @Nullable public static final ItemType GRASS_BLOCK = init(); - @Deprecated @Nullable public static final ItemType GRASS_PATH = init(); - @Nullable public static final ItemType GRAVEL = init(); - @Nullable public static final ItemType GRAY_BANNER = init(); - @Nullable public static final ItemType GRAY_BED = init(); - @Nullable public static final ItemType GREEN_CANDLE = init(); - @Nullable public static final ItemType GRAY_CARPET = init(); - @Nullable public static final ItemType GRAY_CONCRETE = init(); - @Nullable public static final ItemType GRAY_CONCRETE_POWDER = init(); - @Nullable public static final ItemType GRAY_DYE = init(); - @Nullable public static final ItemType GRAY_GLAZED_TERRACOTTA = init(); - @Nullable public static final ItemType GRAY_SHULKER_BOX = init(); - @Nullable public static final ItemType GRAY_STAINED_GLASS = init(); - @Nullable public static final ItemType GRAY_STAINED_GLASS_PANE = init(); - @Nullable public static final ItemType GRAY_TERRACOTTA = init(); - @Nullable public static final ItemType GRAY_WOOL = init(); - @Nullable public static final ItemType GREEN_BANNER = init(); - @Nullable public static final ItemType GREEN_BED = init(); - @Nullable public static final ItemType GREEN_CARPET = init(); - @Nullable public static final ItemType GREEN_CONCRETE = init(); - @Nullable public static final ItemType GREEN_CONCRETE_POWDER = init(); - @Nullable public static final ItemType GREEN_DYE = init(); - @Nullable public static final ItemType GREEN_GLAZED_TERRACOTTA = init(); - @Nullable public static final ItemType GREEN_SHULKER_BOX = init(); - @Nullable public static final ItemType GREEN_STAINED_GLASS = init(); - @Nullable public static final ItemType GREEN_STAINED_GLASS_PANE = init(); - @Nullable public static final ItemType GREEN_TERRACOTTA = init(); - @Nullable public static final ItemType GREEN_WOOL = init(); - @Nullable public static final ItemType GRINDSTONE = init(); - @Nullable public static final ItemType GUARDIAN_SPAWN_EGG = init(); - @Nullable public static final ItemType GUNPOWDER = init(); - @Nullable public static final ItemType HANGING_ROOTS = init(); - @Nullable public static final ItemType HAY_BLOCK = init(); - @Nullable public static final ItemType HEART_OF_THE_SEA = init(); - @Nullable public static final ItemType HEAVY_WEIGHTED_PRESSURE_PLATE = init(); - @Nullable public static final ItemType HOGLIN_SPAWN_EGG = init(); - @Nullable public static final ItemType HONEY_BLOCK = init(); - @Nullable public static final ItemType HONEY_BOTTLE = init(); - @Nullable public static final ItemType HONEYCOMB = init(); - @Nullable public static final ItemType HONEYCOMB_BLOCK = init(); - @Nullable public static final ItemType HOPPER = init(); - @Nullable public static final ItemType HOPPER_MINECART = init(); - @Nullable public static final ItemType HORN_CORAL = init(); - @Nullable public static final ItemType HORN_CORAL_BLOCK = init(); - @Nullable public static final ItemType HORN_CORAL_FAN = init(); - @Nullable public static final ItemType HORSE_SPAWN_EGG = init(); - @Nullable public static final ItemType HUSK_SPAWN_EGG = init(); - @Nullable public static final ItemType ICE = init(); - @Nullable public static final ItemType INFESTED_CHISELED_STONE_BRICKS = init(); - @Nullable public static final ItemType INFESTED_COBBLESTONE = init(); - @Nullable public static final ItemType INFESTED_CRACKED_STONE_BRICKS = init(); - @Nullable public static final ItemType INFESTED_DEEPSLATE = init(); - @Nullable public static final ItemType INFESTED_MOSSY_STONE_BRICKS = init(); - @Nullable public static final ItemType INFESTED_STONE = init(); - @Nullable public static final ItemType INFESTED_STONE_BRICKS = init(); - @Nullable public static final ItemType INK_SAC = init(); - @Nullable public static final ItemType IRON_AXE = init(); - @Nullable public static final ItemType IRON_BARS = init(); - @Nullable public static final ItemType IRON_BLOCK = init(); - @Nullable public static final ItemType IRON_BOOTS = init(); - @Nullable public static final ItemType IRON_CHESTPLATE = init(); - @Nullable public static final ItemType IRON_DOOR = init(); - @Nullable public static final ItemType IRON_HELMET = init(); - @Nullable public static final ItemType IRON_HOE = init(); - @Nullable public static final ItemType IRON_HORSE_ARMOR = init(); - @Nullable public static final ItemType IRON_INGOT = init(); - @Nullable public static final ItemType IRON_LEGGINGS = init(); - @Nullable public static final ItemType IRON_NUGGET = init(); - @Nullable public static final ItemType IRON_ORE = init(); - @Nullable public static final ItemType IRON_PICKAXE = init(); - @Nullable public static final ItemType IRON_SHOVEL = init(); - @Nullable public static final ItemType IRON_SWORD = init(); - @Nullable public static final ItemType IRON_TRAPDOOR = init(); - @Nullable public static final ItemType ITEM_FRAME = init(); - @Nullable public static final ItemType JACK_O_LANTERN = init(); - @Nullable public static final ItemType JIGSAW = init(); - @Nullable public static final ItemType JUKEBOX = init(); - @Nullable public static final ItemType JUNGLE_BOAT = init(); - @Nullable public static final ItemType JUNGLE_BUTTON = init(); - @Nullable public static final ItemType JUNGLE_DOOR = init(); - @Nullable public static final ItemType JUNGLE_FENCE = init(); - @Nullable public static final ItemType JUNGLE_FENCE_GATE = init(); - @Nullable public static final ItemType JUNGLE_LEAVES = init(); - @Nullable public static final ItemType JUNGLE_LOG = init(); - @Nullable public static final ItemType JUNGLE_PLANKS = init(); - @Nullable public static final ItemType JUNGLE_PRESSURE_PLATE = init(); - @Nullable public static final ItemType JUNGLE_SAPLING = init(); - @Nullable public static final ItemType JUNGLE_SIGN = init(); - @Nullable public static final ItemType JUNGLE_SLAB = init(); - @Nullable public static final ItemType JUNGLE_STAIRS = init(); - @Nullable public static final ItemType JUNGLE_TRAPDOOR = init(); - @Nullable public static final ItemType JUNGLE_WOOD = init(); - @Nullable public static final ItemType KELP = init(); - @Nullable public static final ItemType KNOWLEDGE_BOOK = init(); - @Nullable public static final ItemType LADDER = init(); - @Nullable public static final ItemType LANTERN = init(); - @Nullable public static final ItemType LAPIS_BLOCK = init(); - @Nullable public static final ItemType LAPIS_LAZULI = init(); - @Nullable public static final ItemType LAPIS_ORE = init(); - @Nullable public static final ItemType LARGE_AMETHYST_BUD = init(); - @Nullable public static final ItemType LARGE_FERN = init(); - @Nullable public static final ItemType LAVA_BUCKET = init(); - @Nullable public static final ItemType LEAD = init(); - @Nullable public static final ItemType LEATHER = init(); - @Nullable public static final ItemType LEATHER_BOOTS = init(); - @Nullable public static final ItemType LEATHER_CHESTPLATE = init(); - @Nullable public static final ItemType LEATHER_HELMET = init(); - @Nullable public static final ItemType LEATHER_HORSE_ARMOR = init(); - @Nullable public static final ItemType LEATHER_LEGGINGS = init(); - @Nullable public static final ItemType LECTERN = init(); - @Nullable public static final ItemType LEVER = init(); - @Nullable public static final ItemType LIGHT = init(); - @Nullable public static final ItemType LIGHT_BLUE_BANNER = init(); - @Nullable public static final ItemType LIGHT_BLUE_BED = init(); - @Nullable public static final ItemType LIGHT_BLUE_CANDLE = init(); - @Nullable public static final ItemType LIGHT_BLUE_CARPET = init(); - @Nullable public static final ItemType LIGHT_BLUE_CONCRETE = init(); - @Nullable public static final ItemType LIGHT_BLUE_CONCRETE_POWDER = init(); - @Nullable public static final ItemType LIGHT_BLUE_DYE = init(); - @Nullable public static final ItemType LIGHT_BLUE_GLAZED_TERRACOTTA = init(); - @Nullable public static final ItemType LIGHT_BLUE_SHULKER_BOX = init(); - @Nullable public static final ItemType LIGHT_BLUE_STAINED_GLASS = init(); - @Nullable public static final ItemType LIGHT_BLUE_STAINED_GLASS_PANE = init(); - @Nullable public static final ItemType LIGHT_BLUE_TERRACOTTA = init(); - @Nullable public static final ItemType LIGHT_BLUE_WOOL = init(); - @Nullable public static final ItemType LIGHT_GRAY_BANNER = init(); - @Nullable public static final ItemType LIGHT_GRAY_BED = init(); - @Nullable public static final ItemType LIGHT_GRAY_CANDLE = init(); - @Nullable public static final ItemType LIGHT_GRAY_CARPET = init(); - @Nullable public static final ItemType LIGHT_GRAY_CONCRETE = init(); - @Nullable public static final ItemType LIGHT_GRAY_CONCRETE_POWDER = init(); - @Nullable public static final ItemType LIGHT_GRAY_DYE = init(); - @Nullable public static final ItemType LIGHT_GRAY_GLAZED_TERRACOTTA = init(); - @Nullable public static final ItemType LIGHT_GRAY_SHULKER_BOX = init(); - @Nullable public static final ItemType LIGHT_GRAY_STAINED_GLASS = init(); - @Nullable public static final ItemType LIGHT_GRAY_STAINED_GLASS_PANE = init(); - @Nullable public static final ItemType LIGHT_GRAY_TERRACOTTA = init(); - @Nullable public static final ItemType LIGHT_GRAY_WOOL = init(); - @Nullable public static final ItemType LIGHT_WEIGHTED_PRESSURE_PLATE = init(); - @Nullable public static final ItemType LIGHTNING_ROD = init(); - @Nullable public static final ItemType LILAC = init(); - @Nullable public static final ItemType LILY_OF_THE_VALLEY = init(); - @Nullable public static final ItemType LILY_PAD = init(); - @Nullable public static final ItemType LIME_BANNER = init(); - @Nullable public static final ItemType LIME_BED = init(); - @Nullable public static final ItemType LIME_CANDLE = init(); - @Nullable public static final ItemType LIME_CARPET = init(); - @Nullable public static final ItemType LIME_CONCRETE = init(); - @Nullable public static final ItemType LIME_CONCRETE_POWDER = init(); - @Nullable public static final ItemType LIME_DYE = init(); - @Nullable public static final ItemType LIME_GLAZED_TERRACOTTA = init(); - @Nullable public static final ItemType LIME_SHULKER_BOX = init(); - @Nullable public static final ItemType LIME_STAINED_GLASS = init(); - @Nullable public static final ItemType LIME_STAINED_GLASS_PANE = init(); - @Nullable public static final ItemType LIME_TERRACOTTA = init(); - @Nullable public static final ItemType LIME_WOOL = init(); - @Nullable public static final ItemType LINGERING_POTION = init(); - @Nullable public static final ItemType LLAMA_SPAWN_EGG = init(); - @Nullable public static final ItemType LODESTONE = init(); - @Nullable public static final ItemType LOOM = init(); - @Nullable public static final ItemType MAGENTA_BANNER = init(); - @Nullable public static final ItemType MAGENTA_BED = init(); - @Nullable public static final ItemType MAGENTA_CANDLE = init(); - @Nullable public static final ItemType MAGENTA_CARPET = init(); - @Nullable public static final ItemType MAGENTA_CONCRETE = init(); - @Nullable public static final ItemType MAGENTA_CONCRETE_POWDER = init(); - @Nullable public static final ItemType MAGENTA_DYE = init(); - @Nullable public static final ItemType MAGENTA_GLAZED_TERRACOTTA = init(); - @Nullable public static final ItemType MAGENTA_SHULKER_BOX = init(); - @Nullable public static final ItemType MAGENTA_STAINED_GLASS = init(); - @Nullable public static final ItemType MAGENTA_STAINED_GLASS_PANE = init(); - @Nullable public static final ItemType MAGENTA_TERRACOTTA = init(); - @Nullable public static final ItemType MAGENTA_WOOL = init(); - @Nullable public static final ItemType MAGMA_BLOCK = init(); - @Nullable public static final ItemType MAGMA_CREAM = init(); - @Nullable public static final ItemType MAGMA_CUBE_SPAWN_EGG = init(); - @Nullable public static final ItemType MAP = init(); - @Nullable public static final ItemType MEDIUM_AMETHYST_BUD = init(); - @Nullable public static final ItemType MELON = init(); - @Nullable public static final ItemType MELON_SEEDS = init(); - @Nullable public static final ItemType MELON_SLICE = init(); - @Nullable public static final ItemType MILK_BUCKET = init(); - @Nullable public static final ItemType MINECART = init(); - @Nullable public static final ItemType MOJANG_BANNER_PATTERN = init(); - @Nullable public static final ItemType MOOSHROOM_SPAWN_EGG = init(); - @Nullable public static final ItemType MOSS_BLOCK = init(); - @Nullable public static final ItemType MOSS_CARPET = init(); - @Nullable public static final ItemType MOSSY_COBBLESTONE = init(); - @Nullable public static final ItemType MOSSY_COBBLESTONE_SLAB = init(); - @Nullable public static final ItemType MOSSY_COBBLESTONE_STAIRS = init(); - @Nullable public static final ItemType MOSSY_COBBLESTONE_WALL = init(); - @Nullable public static final ItemType MOSSY_STONE_BRICK_SLAB = init(); - @Nullable public static final ItemType MOSSY_STONE_BRICK_STAIRS = init(); - @Nullable public static final ItemType MOSSY_STONE_BRICK_WALL = init(); - @Nullable public static final ItemType MOSSY_STONE_BRICKS = init(); - @Nullable public static final ItemType MULE_SPAWN_EGG = init(); - @Nullable public static final ItemType MUSHROOM_STEM = init(); - @Nullable public static final ItemType MUSHROOM_STEW = init(); - @Nullable public static final ItemType MUSIC_DISC_11 = init(); - @Nullable public static final ItemType MUSIC_DISC_13 = init(); - @Nullable public static final ItemType MUSIC_DISC_BLOCKS = init(); - @Nullable public static final ItemType MUSIC_DISC_CAT = init(); - @Nullable public static final ItemType MUSIC_DISC_CHIRP = init(); - @Nullable public static final ItemType MUSIC_DISC_FAR = init(); - @Nullable public static final ItemType MUSIC_DISC_MALL = init(); - @Nullable public static final ItemType MUSIC_DISC_MELLOHI = init(); - @Nullable public static final ItemType MUSIC_DISC_PIGSTEP = init(); - @Nullable public static final ItemType MUSIC_DISC_STAL = init(); - @Nullable public static final ItemType MUSIC_DISC_STRAD = init(); - @Nullable public static final ItemType MUSIC_DISC_WAIT = init(); - @Nullable public static final ItemType MUSIC_DISC_WARD = init(); - @Nullable public static final ItemType MUTTON = init(); - @Nullable public static final ItemType MYCELIUM = init(); - @Nullable public static final ItemType NAME_TAG = init(); - @Nullable public static final ItemType NAUTILUS_SHELL = init(); - @Nullable public static final ItemType NETHER_BRICK = init(); - @Nullable public static final ItemType NETHER_BRICK_FENCE = init(); - @Nullable public static final ItemType NETHER_BRICK_SLAB = init(); - @Nullable public static final ItemType NETHER_BRICK_STAIRS = init(); - @Nullable public static final ItemType NETHER_BRICK_WALL = init(); - @Nullable public static final ItemType NETHER_BRICKS = init(); - @Nullable public static final ItemType NETHER_GOLD_ORE = init(); - @Nullable public static final ItemType NETHER_QUARTZ_ORE = init(); - @Nullable public static final ItemType NETHER_SPROUTS = init(); - @Nullable public static final ItemType NETHER_STAR = init(); - @Nullable public static final ItemType NETHER_WART = init(); - @Nullable public static final ItemType NETHER_WART_BLOCK = init(); - @Nullable public static final ItemType NETHERITE_AXE = init(); - @Nullable public static final ItemType NETHERITE_BLOCK = init(); - @Nullable public static final ItemType NETHERITE_BOOTS = init(); - @Nullable public static final ItemType NETHERITE_CHESTPLATE = init(); - @Nullable public static final ItemType NETHERITE_HELMET = init(); - @Nullable public static final ItemType NETHERITE_HOE = init(); - @Nullable public static final ItemType NETHERITE_INGOT = init(); - @Nullable public static final ItemType NETHERITE_LEGGINGS = init(); - @Nullable public static final ItemType NETHERITE_PICKAXE = init(); - @Nullable public static final ItemType NETHERITE_SCRAP = init(); - @Nullable public static final ItemType NETHERITE_SHOVEL = init(); - @Nullable public static final ItemType NETHERITE_SWORD = init(); - @Nullable public static final ItemType NETHERRACK = init(); - @Nullable public static final ItemType NOTE_BLOCK = init(); - @Nullable public static final ItemType OAK_BOAT = init(); - @Nullable public static final ItemType OAK_BUTTON = init(); - @Nullable public static final ItemType OAK_DOOR = init(); - @Nullable public static final ItemType OAK_FENCE = init(); - @Nullable public static final ItemType OAK_FENCE_GATE = init(); - @Nullable public static final ItemType OAK_LEAVES = init(); - @Nullable public static final ItemType OAK_LOG = init(); - @Nullable public static final ItemType OAK_PLANKS = init(); - @Nullable public static final ItemType OAK_PRESSURE_PLATE = init(); - @Nullable public static final ItemType OAK_SAPLING = init(); - @Nullable public static final ItemType OAK_SIGN = init(); - @Nullable public static final ItemType OAK_SLAB = init(); - @Nullable public static final ItemType OAK_STAIRS = init(); - @Nullable public static final ItemType OAK_TRAPDOOR = init(); - @Nullable public static final ItemType OAK_WOOD = init(); - @Nullable public static final ItemType OBSERVER = init(); - @Nullable public static final ItemType OBSIDIAN = init(); - @Nullable public static final ItemType OCELOT_SPAWN_EGG = init(); - @Nullable public static final ItemType ORANGE_BANNER = init(); - @Nullable public static final ItemType ORANGE_BED = init(); - @Nullable public static final ItemType ORANGE_CANDLE = init(); - @Nullable public static final ItemType ORANGE_CARPET = init(); - @Nullable public static final ItemType ORANGE_CONCRETE = init(); - @Nullable public static final ItemType ORANGE_CONCRETE_POWDER = init(); - @Nullable public static final ItemType ORANGE_DYE = init(); - @Nullable public static final ItemType ORANGE_GLAZED_TERRACOTTA = init(); - @Nullable public static final ItemType ORANGE_SHULKER_BOX = init(); - @Nullable public static final ItemType ORANGE_STAINED_GLASS = init(); - @Nullable public static final ItemType ORANGE_STAINED_GLASS_PANE = init(); - @Nullable public static final ItemType ORANGE_TERRACOTTA = init(); - @Nullable public static final ItemType ORANGE_TULIP = init(); - @Nullable public static final ItemType ORANGE_WOOL = init(); - @Nullable public static final ItemType OXEYE_DAISY = init(); - @Nullable public static final ItemType OXIDIZED_COPPER = init(); - @Nullable public static final ItemType OXIDIZED_CUT_COPPER = init(); - @Nullable public static final ItemType OXIDIZED_CUT_COPPER_SLAB = init(); - @Nullable public static final ItemType OXIDIZED_CUT_COPPER_STAIRS = init(); - @Nullable public static final ItemType PACKED_ICE = init(); - @Nullable public static final ItemType PAINTING = init(); - @Nullable public static final ItemType PANDA_SPAWN_EGG = init(); - @Nullable public static final ItemType PAPER = init(); - @Nullable public static final ItemType PARROT_SPAWN_EGG = init(); - @Nullable public static final ItemType PEONY = init(); - @Nullable public static final ItemType PETRIFIED_OAK_SLAB = init(); - @Nullable public static final ItemType PHANTOM_MEMBRANE = init(); - @Nullable public static final ItemType PHANTOM_SPAWN_EGG = init(); - @Nullable public static final ItemType PIG_SPAWN_EGG = init(); - @Nullable public static final ItemType PIGLIN_BANNER_PATTERN = init(); - @Nullable public static final ItemType PIGLIN_SPAWN_EGG = init(); - @Nullable public static final ItemType PILLAGER_SPAWN_EGG = init(); - @Nullable public static final ItemType PINK_BANNER = init(); - @Nullable public static final ItemType PINK_BED = init(); - @Nullable public static final ItemType PINK_CANDLE = init(); - @Nullable public static final ItemType PINK_CARPET = init(); - @Nullable public static final ItemType PINK_CONCRETE = init(); - @Nullable public static final ItemType PINK_CONCRETE_POWDER = init(); - @Nullable public static final ItemType PINK_DYE = init(); - @Nullable public static final ItemType PINK_GLAZED_TERRACOTTA = init(); - @Nullable public static final ItemType PINK_SHULKER_BOX = init(); - @Nullable public static final ItemType PINK_STAINED_GLASS = init(); - @Nullable public static final ItemType PINK_STAINED_GLASS_PANE = init(); - @Nullable public static final ItemType PINK_TERRACOTTA = init(); - @Nullable public static final ItemType PINK_TULIP = init(); - @Nullable public static final ItemType PINK_WOOL = init(); - @Nullable public static final ItemType PISTON = init(); - @Nullable public static final ItemType PLAYER_HEAD = init(); - @Nullable public static final ItemType PODZOL = init(); - @Nullable public static final ItemType POINTED_DRIPSTONE = init(); - @Nullable public static final ItemType POISONOUS_POTATO = init(); - @Nullable public static final ItemType POLAR_BEAR_SPAWN_EGG = init(); - @Nullable public static final ItemType POLISHED_ANDESITE = init(); - @Nullable public static final ItemType POLISHED_ANDESITE_SLAB = init(); - @Nullable public static final ItemType POLISHED_ANDESITE_STAIRS = init(); - @Nullable public static final ItemType POLISHED_BASALT = init(); - @Nullable public static final ItemType POLISHED_BLACKSTONE = init(); - @Nullable public static final ItemType POLISHED_BLACKSTONE_BRICK_SLAB = init(); - @Nullable public static final ItemType POLISHED_BLACKSTONE_BRICK_STAIRS = init(); - @Nullable public static final ItemType POLISHED_BLACKSTONE_BRICK_WALL = init(); - @Nullable public static final ItemType POLISHED_BLACKSTONE_BRICKS = init(); - @Nullable public static final ItemType POLISHED_BLACKSTONE_BUTTON = init(); - @Nullable public static final ItemType POLISHED_BLACKSTONE_PRESSURE_PLATE = init(); - @Nullable public static final ItemType POLISHED_BLACKSTONE_SLAB = init(); - @Nullable public static final ItemType POLISHED_BLACKSTONE_STAIRS = init(); - @Nullable public static final ItemType POLISHED_BLACKSTONE_WALL = init(); - @Nullable public static final ItemType POLISHED_DEEPSLATE = init(); - @Nullable public static final ItemType POLISHED_DEEPSLATE_SLAB = init(); - @Nullable public static final ItemType POLISHED_DEEPSLATE_STAIRS = init(); - @Nullable public static final ItemType POLISHED_DEEPSLATE_WALL = init(); - @Nullable public static final ItemType POLISHED_DIORITE = init(); - @Nullable public static final ItemType POLISHED_DIORITE_SLAB = init(); - @Nullable public static final ItemType POLISHED_DIORITE_STAIRS = init(); - @Nullable public static final ItemType POLISHED_GRANITE = init(); - @Nullable public static final ItemType POLISHED_GRANITE_SLAB = init(); - @Nullable public static final ItemType POLISHED_GRANITE_STAIRS = init(); - @Nullable public static final ItemType POPPED_CHORUS_FRUIT = init(); - @Nullable public static final ItemType POPPY = init(); - @Nullable public static final ItemType PORKCHOP = init(); - @Nullable public static final ItemType POTATO = init(); - @Nullable public static final ItemType POTION = init(); - @Nullable public static final ItemType POWDER_SNOW_BUCKET = init(); - @Nullable public static final ItemType POWERED_RAIL = init(); - @Nullable public static final ItemType PRISMARINE = init(); - @Nullable public static final ItemType PRISMARINE_BRICK_SLAB = init(); - @Nullable public static final ItemType PRISMARINE_BRICK_STAIRS = init(); - @Nullable public static final ItemType PRISMARINE_BRICKS = init(); - @Nullable public static final ItemType PRISMARINE_CRYSTALS = init(); - @Nullable public static final ItemType PRISMARINE_SHARD = init(); - @Nullable public static final ItemType PRISMARINE_SLAB = init(); - @Nullable public static final ItemType PRISMARINE_STAIRS = init(); - @Nullable public static final ItemType PRISMARINE_WALL = init(); - @Nullable public static final ItemType PUFFERFISH = init(); - @Nullable public static final ItemType PUFFERFISH_BUCKET = init(); - @Nullable public static final ItemType PUFFERFISH_SPAWN_EGG = init(); - @Nullable public static final ItemType PUMPKIN = init(); - @Nullable public static final ItemType PUMPKIN_PIE = init(); - @Nullable public static final ItemType PUMPKIN_SEEDS = init(); - @Nullable public static final ItemType PURPLE_BANNER = init(); - @Nullable public static final ItemType PURPLE_BED = init(); - @Nullable public static final ItemType PURPLE_CANDLE = init(); - @Nullable public static final ItemType PURPLE_CARPET = init(); - @Nullable public static final ItemType PURPLE_CONCRETE = init(); - @Nullable public static final ItemType PURPLE_CONCRETE_POWDER = init(); - @Nullable public static final ItemType PURPLE_DYE = init(); - @Nullable public static final ItemType PURPLE_GLAZED_TERRACOTTA = init(); - @Nullable public static final ItemType PURPLE_SHULKER_BOX = init(); - @Nullable public static final ItemType PURPLE_STAINED_GLASS = init(); - @Nullable public static final ItemType PURPLE_STAINED_GLASS_PANE = init(); - @Nullable public static final ItemType PURPLE_TERRACOTTA = init(); - @Nullable public static final ItemType PURPLE_WOOL = init(); - @Nullable public static final ItemType PURPUR_BLOCK = init(); - @Nullable public static final ItemType PURPUR_PILLAR = init(); - @Nullable public static final ItemType PURPUR_SLAB = init(); - @Nullable public static final ItemType PURPUR_STAIRS = init(); - @Nullable public static final ItemType QUARTZ = init(); - @Nullable public static final ItemType QUARTZ_BLOCK = init(); - @Nullable public static final ItemType QUARTZ_BRICKS = init(); - @Nullable public static final ItemType QUARTZ_PILLAR = init(); - @Nullable public static final ItemType QUARTZ_SLAB = init(); - @Nullable public static final ItemType QUARTZ_STAIRS = init(); - @Nullable public static final ItemType RABBIT = init(); - @Nullable public static final ItemType RABBIT_FOOT = init(); - @Nullable public static final ItemType RABBIT_HIDE = init(); - @Nullable public static final ItemType RABBIT_SPAWN_EGG = init(); - @Nullable public static final ItemType RABBIT_STEW = init(); - @Nullable public static final ItemType RAIL = init(); - @Nullable public static final ItemType RAVAGER_SPAWN_EGG = init(); - @Nullable public static final ItemType RAW_COPPER = init(); - @Nullable public static final ItemType RAW_COPPER_BLOCK = init(); - @Nullable public static final ItemType RAW_GOLD = init(); - @Nullable public static final ItemType RAW_GOLD_BLOCK = init(); - @Nullable public static final ItemType RAW_IRON = init(); - @Nullable public static final ItemType RAW_IRON_BLOCK = init(); - @Nullable public static final ItemType RED_BANNER = init(); - @Nullable public static final ItemType RED_BED = init(); - @Nullable public static final ItemType RED_CANDLE = init(); - @Nullable public static final ItemType RED_CARPET = init(); - @Nullable public static final ItemType RED_CONCRETE = init(); - @Nullable public static final ItemType RED_CONCRETE_POWDER = init(); - @Nullable public static final ItemType RED_DYE = init(); - @Nullable public static final ItemType RED_GLAZED_TERRACOTTA = init(); - @Nullable public static final ItemType RED_MUSHROOM = init(); - @Nullable public static final ItemType RED_MUSHROOM_BLOCK = init(); - @Nullable public static final ItemType RED_NETHER_BRICK_SLAB = init(); - @Nullable public static final ItemType RED_NETHER_BRICK_STAIRS = init(); - @Nullable public static final ItemType RED_NETHER_BRICK_WALL = init(); - @Nullable public static final ItemType RED_NETHER_BRICKS = init(); - @Nullable public static final ItemType RED_SAND = init(); - @Nullable public static final ItemType RED_SANDSTONE = init(); - @Nullable public static final ItemType RED_SANDSTONE_SLAB = init(); - @Nullable public static final ItemType RED_SANDSTONE_STAIRS = init(); - @Nullable public static final ItemType RED_SANDSTONE_WALL = init(); - @Nullable public static final ItemType RED_SHULKER_BOX = init(); - @Nullable public static final ItemType RED_STAINED_GLASS = init(); - @Nullable public static final ItemType RED_STAINED_GLASS_PANE = init(); - @Nullable public static final ItemType RED_TERRACOTTA = init(); - @Nullable public static final ItemType RED_TULIP = init(); - @Nullable public static final ItemType RED_WOOL = init(); - @Nullable public static final ItemType REDSTONE = init(); - @Nullable public static final ItemType REDSTONE_BLOCK = init(); - @Nullable public static final ItemType REDSTONE_LAMP = init(); - @Nullable public static final ItemType REDSTONE_ORE = init(); - @Nullable public static final ItemType REDSTONE_TORCH = init(); - @Nullable public static final ItemType REPEATER = init(); - @Nullable public static final ItemType REPEATING_COMMAND_BLOCK = init(); - @Nullable public static final ItemType RESPAWN_ANCHOR = init(); - @Nullable public static final ItemType ROOTED_DIRT = init(); - @Nullable public static final ItemType ROSE_BUSH = init(); - @Deprecated @Nullable public static final ItemType ROSE_RED = init(); - @Nullable public static final ItemType ROTTEN_FLESH = init(); - @Nullable public static final ItemType SADDLE = init(); - @Nullable public static final ItemType SALMON = init(); - @Nullable public static final ItemType SALMON_BUCKET = init(); - @Nullable public static final ItemType SALMON_SPAWN_EGG = init(); - @Nullable public static final ItemType SAND = init(); - @Nullable public static final ItemType SANDSTONE = init(); - @Nullable public static final ItemType SANDSTONE_SLAB = init(); - @Nullable public static final ItemType SANDSTONE_STAIRS = init(); - @Nullable public static final ItemType SANDSTONE_WALL = init(); - @Nullable public static final ItemType SCAFFOLDING = init(); - @Nullable public static final ItemType SCULK_SENSOR = init(); - @Nullable public static final ItemType SCUTE = init(); - @Nullable public static final ItemType SEA_LANTERN = init(); - @Nullable public static final ItemType SEA_PICKLE = init(); - @Nullable public static final ItemType SEAGRASS = init(); - @Nullable public static final ItemType SHEARS = init(); - @Nullable public static final ItemType SHEEP_SPAWN_EGG = init(); - @Nullable public static final ItemType SHIELD = init(); - @Nullable public static final ItemType SHROOMLIGHT = init(); - @Nullable public static final ItemType SHULKER_BOX = init(); - @Nullable public static final ItemType SHULKER_SHELL = init(); - @Nullable public static final ItemType SHULKER_SPAWN_EGG = init(); - @Deprecated @Nullable public static final ItemType SIGN = init(); - @Nullable public static final ItemType SILVERFISH_SPAWN_EGG = init(); - @Nullable public static final ItemType SKELETON_HORSE_SPAWN_EGG = init(); - @Nullable public static final ItemType SKELETON_SKULL = init(); - @Nullable public static final ItemType SKELETON_SPAWN_EGG = init(); - @Nullable public static final ItemType SKULL_BANNER_PATTERN = init(); - @Nullable public static final ItemType SLIME_BALL = init(); - @Nullable public static final ItemType SLIME_BLOCK = init(); - @Nullable public static final ItemType SLIME_SPAWN_EGG = init(); - @Nullable public static final ItemType SMALL_AMETHYST_BUD = init(); - @Nullable public static final ItemType SMALL_DRIPLEAF = init(); - @Nullable public static final ItemType SMITHING_TABLE = init(); - @Nullable public static final ItemType SMOKER = init(); - @Nullable public static final ItemType SMOOTH_BASALT = init(); - @Nullable public static final ItemType SMOOTH_QUARTZ = init(); - @Nullable public static final ItemType SMOOTH_QUARTZ_SLAB = init(); - @Nullable public static final ItemType SMOOTH_QUARTZ_STAIRS = init(); - @Nullable public static final ItemType SMOOTH_RED_SANDSTONE = init(); - @Nullable public static final ItemType SMOOTH_RED_SANDSTONE_SLAB = init(); - @Nullable public static final ItemType SMOOTH_RED_SANDSTONE_STAIRS = init(); - @Nullable public static final ItemType SMOOTH_SANDSTONE = init(); - @Nullable public static final ItemType SMOOTH_SANDSTONE_SLAB = init(); - @Nullable public static final ItemType SMOOTH_SANDSTONE_STAIRS = init(); - @Nullable public static final ItemType SMOOTH_STONE = init(); - @Nullable public static final ItemType SMOOTH_STONE_SLAB = init(); - @Nullable public static final ItemType SNOW = init(); - @Nullable public static final ItemType SNOW_BLOCK = init(); - @Nullable public static final ItemType SNOWBALL = init(); - @Nullable public static final ItemType SOUL_CAMPFIRE = init(); - @Nullable public static final ItemType SOUL_LANTERN = init(); - @Nullable public static final ItemType SOUL_SAND = init(); - @Nullable public static final ItemType SOUL_SOIL = init(); - @Nullable public static final ItemType SOUL_TORCH = init(); - @Nullable public static final ItemType SPAWNER = init(); - @Nullable public static final ItemType SPECTRAL_ARROW = init(); - @Nullable public static final ItemType SPIDER_EYE = init(); - @Nullable public static final ItemType SPIDER_SPAWN_EGG = init(); - @Nullable public static final ItemType SPLASH_POTION = init(); - @Nullable public static final ItemType SPONGE = init(); - @Nullable public static final ItemType SPORE_BLOSSOM = init(); - @Nullable public static final ItemType SPRUCE_BOAT = init(); - @Nullable public static final ItemType SPRUCE_BUTTON = init(); - @Nullable public static final ItemType SPRUCE_DOOR = init(); - @Nullable public static final ItemType SPRUCE_FENCE = init(); - @Nullable public static final ItemType SPRUCE_FENCE_GATE = init(); - @Nullable public static final ItemType SPRUCE_LEAVES = init(); - @Nullable public static final ItemType SPRUCE_LOG = init(); - @Nullable public static final ItemType SPRUCE_PLANKS = init(); - @Nullable public static final ItemType SPRUCE_PRESSURE_PLATE = init(); - @Nullable public static final ItemType SPRUCE_SAPLING = init(); - @Nullable public static final ItemType SPRUCE_SIGN = init(); - @Nullable public static final ItemType SPRUCE_SLAB = init(); - @Nullable public static final ItemType SPRUCE_STAIRS = init(); - @Nullable public static final ItemType SPRUCE_TRAPDOOR = init(); - @Nullable public static final ItemType SPRUCE_WOOD = init(); - @Nullable public static final ItemType SPYGLASS = init(); - @Nullable public static final ItemType SQUID_SPAWN_EGG = init(); - @Nullable public static final ItemType STICK = init(); - @Nullable public static final ItemType STICKY_PISTON = init(); - @Nullable public static final ItemType STONE = init(); - @Nullable public static final ItemType STONE_AXE = init(); - @Nullable public static final ItemType STONE_BRICK_SLAB = init(); - @Nullable public static final ItemType STONE_BRICK_STAIRS = init(); - @Nullable public static final ItemType STONE_BRICK_WALL = init(); - @Nullable public static final ItemType STONE_BRICKS = init(); - @Nullable public static final ItemType STONE_BUTTON = init(); - @Nullable public static final ItemType STONE_HOE = init(); - @Nullable public static final ItemType STONE_PICKAXE = init(); - @Nullable public static final ItemType STONE_PRESSURE_PLATE = init(); - @Nullable public static final ItemType STONE_SHOVEL = init(); - @Nullable public static final ItemType STONE_SLAB = init(); - @Nullable public static final ItemType STONE_STAIRS = init(); - @Nullable public static final ItemType STONE_SWORD = init(); - @Nullable public static final ItemType STONECUTTER = init(); - @Nullable public static final ItemType STRAY_SPAWN_EGG = init(); - @Nullable public static final ItemType STRIDER_SPAWN_EGG = init(); - @Nullable public static final ItemType STRING = init(); - @Nullable public static final ItemType STRIPPED_ACACIA_LOG = init(); - @Nullable public static final ItemType STRIPPED_ACACIA_WOOD = init(); - @Nullable public static final ItemType STRIPPED_BIRCH_LOG = init(); - @Nullable public static final ItemType STRIPPED_BIRCH_WOOD = init(); - @Nullable public static final ItemType STRIPPED_CRIMSON_HYPHAE = init(); - @Nullable public static final ItemType STRIPPED_CRIMSON_STEM = init(); - @Nullable public static final ItemType STRIPPED_DARK_OAK_LOG = init(); - @Nullable public static final ItemType STRIPPED_DARK_OAK_WOOD = init(); - @Nullable public static final ItemType STRIPPED_JUNGLE_LOG = init(); - @Nullable public static final ItemType STRIPPED_JUNGLE_WOOD = init(); - @Nullable public static final ItemType STRIPPED_OAK_LOG = init(); - @Nullable public static final ItemType STRIPPED_OAK_WOOD = init(); - @Nullable public static final ItemType STRIPPED_SPRUCE_LOG = init(); - @Nullable public static final ItemType STRIPPED_SPRUCE_WOOD = init(); - @Nullable public static final ItemType STRIPPED_WARPED_HYPHAE = init(); - @Nullable public static final ItemType STRIPPED_WARPED_STEM = init(); - @Nullable public static final ItemType STRUCTURE_BLOCK = init(); - @Nullable public static final ItemType STRUCTURE_VOID = init(); - @Nullable public static final ItemType SUGAR = init(); - @Nullable public static final ItemType SUGAR_CANE = init(); - @Nullable public static final ItemType SUNFLOWER = init(); - @Nullable public static final ItemType SUSPICIOUS_STEW = init(); - @Nullable public static final ItemType SWEET_BERRIES = init(); - @Nullable public static final ItemType TALL_GRASS = init(); - @Nullable public static final ItemType TARGET = init(); - @Nullable public static final ItemType TERRACOTTA = init(); - @Nullable public static final ItemType TINTED_GLASS = init(); - @Nullable public static final ItemType TIPPED_ARROW = init(); - @Nullable public static final ItemType TNT = init(); - @Nullable public static final ItemType TNT_MINECART = init(); - @Nullable public static final ItemType TORCH = init(); - @Nullable public static final ItemType TOTEM_OF_UNDYING = init(); - @Nullable public static final ItemType TRADER_LLAMA_SPAWN_EGG = init(); - @Nullable public static final ItemType TRAPPED_CHEST = init(); - @Nullable public static final ItemType TRIDENT = init(); - @Nullable public static final ItemType TRIPWIRE_HOOK = init(); - @Nullable public static final ItemType TROPICAL_FISH = init(); - @Nullable public static final ItemType TROPICAL_FISH_BUCKET = init(); - @Nullable public static final ItemType TROPICAL_FISH_SPAWN_EGG = init(); - @Nullable public static final ItemType TUBE_CORAL = init(); - @Nullable public static final ItemType TUBE_CORAL_BLOCK = init(); - @Nullable public static final ItemType TUBE_CORAL_FAN = init(); - @Nullable public static final ItemType TUFF = init(); - @Nullable public static final ItemType TURTLE_EGG = init(); - @Nullable public static final ItemType TURTLE_HELMET = init(); - @Nullable public static final ItemType TURTLE_SPAWN_EGG = init(); - @Nullable public static final ItemType TWISTING_VINES = init(); - @Nullable public static final ItemType VEX_SPAWN_EGG = init(); - @Nullable public static final ItemType VILLAGER_SPAWN_EGG = init(); - @Nullable public static final ItemType VINDICATOR_SPAWN_EGG = init(); - @Nullable public static final ItemType VINE = init(); - @Nullable public static final ItemType WANDERING_TRADER_SPAWN_EGG = init(); - @Nullable public static final ItemType WARPED_BUTTON = init(); - @Nullable public static final ItemType WARPED_DOOR = init(); - @Nullable public static final ItemType WARPED_FENCE = init(); - @Nullable public static final ItemType WARPED_FENCE_GATE = init(); - @Nullable public static final ItemType WARPED_FUNGUS = init(); - @Nullable public static final ItemType WARPED_FUNGUS_ON_A_STICK = init(); - @Nullable public static final ItemType WARPED_HYPHAE = init(); - @Nullable public static final ItemType WARPED_NYLIUM = init(); - @Nullable public static final ItemType WARPED_PLANKS = init(); - @Nullable public static final ItemType WARPED_PRESSURE_PLATE = init(); - @Nullable public static final ItemType WARPED_ROOTS = init(); - @Nullable public static final ItemType WARPED_SIGN = init(); - @Nullable public static final ItemType WARPED_SLAB = init(); - @Nullable public static final ItemType WARPED_STAIRS = init(); - @Nullable public static final ItemType WARPED_STEM = init(); - @Nullable public static final ItemType WARPED_TRAPDOOR = init(); - @Nullable public static final ItemType WARPED_WART_BLOCK = init(); - @Nullable public static final ItemType WATER_BUCKET = init(); - @Nullable public static final ItemType WAXED_COPPER_BLOCK = init(); - @Nullable public static final ItemType WAXED_CUT_COPPER = init(); - @Nullable public static final ItemType WAXED_CUT_COPPER_SLAB = init(); - @Nullable public static final ItemType WAXED_CUT_COPPER_STAIRS = init(); - @Nullable public static final ItemType WAXED_EXPOSED_COPPER = init(); - @Nullable public static final ItemType WAXED_EXPOSED_CUT_COPPER = init(); - @Nullable public static final ItemType WAXED_EXPOSED_CUT_COPPER_SLAB = init(); - @Nullable public static final ItemType WAXED_EXPOSED_CUT_COPPER_STAIRS = init(); - @Nullable public static final ItemType WAXED_OXIDIZED_COPPER = init(); - @Nullable public static final ItemType WAXED_OXIDIZED_CUT_COPPER = init(); - @Nullable public static final ItemType WAXED_OXIDIZED_CUT_COPPER_SLAB = init(); - @Nullable public static final ItemType WAXED_OXIDIZED_CUT_COPPER_STAIRS = init(); - @Nullable public static final ItemType WAXED_WEATHERED_COPPER = init(); - @Nullable public static final ItemType WAXED_WEATHERED_CUT_COPPER = init(); - @Nullable public static final ItemType WAXED_WEATHERED_CUT_COPPER_SLAB = init(); - @Nullable public static final ItemType WAXED_WEATHERED_CUT_COPPER_STAIRS = init(); - @Nullable public static final ItemType WEATHERED_COPPER = init(); - @Nullable public static final ItemType WEATHERED_CUT_COPPER = init(); - @Nullable public static final ItemType WEATHERED_CUT_COPPER_SLAB = init(); - @Nullable public static final ItemType WEATHERED_CUT_COPPER_STAIRS = init(); - @Nullable public static final ItemType WEEPING_VINES = init(); - @Nullable public static final ItemType WET_SPONGE = init(); - @Nullable public static final ItemType WHEAT = init(); - @Nullable public static final ItemType WHEAT_SEEDS = init(); - @Nullable public static final ItemType WHITE_BANNER = init(); - @Nullable public static final ItemType WHITE_BED = init(); - @Nullable public static final ItemType WHITE_CANDLE = init(); - @Nullable public static final ItemType WHITE_CARPET = init(); - @Nullable public static final ItemType WHITE_CONCRETE = init(); - @Nullable public static final ItemType WHITE_CONCRETE_POWDER = init(); - @Nullable public static final ItemType WHITE_DYE = init(); - @Nullable public static final ItemType WHITE_GLAZED_TERRACOTTA = init(); - @Nullable public static final ItemType WHITE_SHULKER_BOX = init(); - @Nullable public static final ItemType WHITE_STAINED_GLASS = init(); - @Nullable public static final ItemType WHITE_STAINED_GLASS_PANE = init(); - @Nullable public static final ItemType WHITE_TERRACOTTA = init(); - @Nullable public static final ItemType WHITE_TULIP = init(); - @Nullable public static final ItemType WHITE_WOOL = init(); - @Nullable public static final ItemType WITCH_SPAWN_EGG = init(); - @Nullable public static final ItemType WITHER_ROSE = init(); - @Nullable public static final ItemType WITHER_SKELETON_SKULL = init(); - @Nullable public static final ItemType WITHER_SKELETON_SPAWN_EGG = init(); - @Nullable public static final ItemType WOLF_SPAWN_EGG = init(); - @Nullable public static final ItemType WOODEN_AXE = init(); - @Nullable public static final ItemType WOODEN_HOE = init(); - @Nullable public static final ItemType WOODEN_PICKAXE = init(); - @Nullable public static final ItemType WOODEN_SHOVEL = init(); - @Nullable public static final ItemType WOODEN_SWORD = init(); - @Nullable public static final ItemType WRITABLE_BOOK = init(); - @Nullable public static final ItemType WRITTEN_BOOK = init(); - @Nullable public static final ItemType YELLOW_BANNER = init(); - @Nullable public static final ItemType YELLOW_BED = init(); - @Nullable public static final ItemType YELLOW_CANDLE = init(); - @Nullable public static final ItemType YELLOW_CARPET = init(); - @Nullable public static final ItemType YELLOW_CONCRETE = init(); - @Nullable public static final ItemType YELLOW_CONCRETE_POWDER = init(); - @Nullable public static final ItemType YELLOW_DYE = init(); - @Nullable public static final ItemType YELLOW_GLAZED_TERRACOTTA = init(); - @Nullable public static final ItemType YELLOW_SHULKER_BOX = init(); - @Nullable public static final ItemType YELLOW_STAINED_GLASS = init(); - @Nullable public static final ItemType YELLOW_STAINED_GLASS_PANE = init(); - @Nullable public static final ItemType YELLOW_TERRACOTTA = init(); - @Nullable public static final ItemType YELLOW_WOOL = init(); - @Nullable public static final ItemType ZOGLIN_SPAWN_EGG = init(); - @Nullable public static final ItemType ZOMBIE_HEAD = init(); - @Nullable public static final ItemType ZOMBIE_HORSE_SPAWN_EGG = init(); - @Deprecated @Nullable public static final ItemType ZOMBIE_PIGMAN_SPAWN_EGG = init(); - @Nullable public static final ItemType ZOMBIE_SPAWN_EGG = init(); - @Nullable public static final ItemType ZOMBIE_VILLAGER_SPAWN_EGG = init(); - @Nullable public static final ItemType ZOMBIFIED_PIGLIN_SPAWN_EGG = init(); + @Nullable + public static final ItemType ACACIA_BOAT = init(); + @Nullable + public static final ItemType ACACIA_BUTTON = init(); + @Nullable + public static final ItemType ACACIA_DOOR = init(); + @Nullable + public static final ItemType ACACIA_FENCE = init(); + @Nullable + public static final ItemType ACACIA_FENCE_GATE = init(); + @Nullable + public static final ItemType ACACIA_LEAVES = init(); + @Nullable + public static final ItemType ACACIA_LOG = init(); + @Nullable + public static final ItemType ACACIA_PLANKS = init(); + @Nullable + public static final ItemType ACACIA_PRESSURE_PLATE = init(); + @Nullable + public static final ItemType ACACIA_SAPLING = init(); + @Nullable + public static final ItemType ACACIA_SIGN = init(); + @Nullable + public static final ItemType ACACIA_SLAB = init(); + @Nullable + public static final ItemType ACACIA_STAIRS = init(); + @Nullable + public static final ItemType ACACIA_TRAPDOOR = init(); + @Nullable + public static final ItemType ACACIA_WOOD = init(); + @Nullable + public static final ItemType ACTIVATOR_RAIL = init(); + @Nullable + public static final ItemType AIR = init(); + @Nullable + public static final ItemType ALLIUM = init(); + @Nullable + public static final ItemType AMETHYST_BLOCK = init(); + @Nullable + public static final ItemType AMETHYST_CLUSTER = init(); + @Nullable + public static final ItemType AMETHYST_SHARD = init(); + @Nullable + public static final ItemType ANCIENT_DEBRIS = init(); + @Nullable + public static final ItemType ANDESITE = init(); + @Nullable + public static final ItemType ANDESITE_SLAB = init(); + @Nullable + public static final ItemType ANDESITE_STAIRS = init(); + @Nullable + public static final ItemType ANDESITE_WALL = init(); + @Nullable + public static final ItemType ANVIL = init(); + @Nullable + public static final ItemType APPLE = init(); + @Nullable + public static final ItemType ARMOR_STAND = init(); + @Nullable + public static final ItemType ARROW = init(); + @Nullable + public static final ItemType AXOLOTL_BUCKET = init(); + @Nullable + public static final ItemType AXOLOTL_SPAWN_EGG = init(); + @Nullable + public static final ItemType AZALEA = init(); + @Nullable + public static final ItemType AZALEA_LEAVES = init(); + @Nullable + public static final ItemType AZURE_BLUET = init(); + @Nullable + public static final ItemType BAKED_POTATO = init(); + @Nullable + public static final ItemType BAMBOO = init(); + @Nullable + public static final ItemType BARREL = init(); + @Nullable + public static final ItemType BARRIER = init(); + @Nullable + public static final ItemType BASALT = init(); + @Nullable + public static final ItemType BAT_SPAWN_EGG = init(); + @Nullable + public static final ItemType BEACON = init(); + @Nullable + public static final ItemType BEDROCK = init(); + @Nullable + public static final ItemType BEE_NEST = init(); + @Nullable + public static final ItemType BEE_SPAWN_EGG = init(); + @Nullable + public static final ItemType BEEF = init(); + @Nullable + public static final ItemType BEEHIVE = init(); + @Nullable + public static final ItemType BEETROOT = init(); + @Nullable + public static final ItemType BEETROOT_SEEDS = init(); + @Nullable + public static final ItemType BEETROOT_SOUP = init(); + @Nullable + public static final ItemType BELL = init(); + @Nullable + public static final ItemType BIG_DRIPLEAF = init(); + @Nullable + public static final ItemType BIRCH_BOAT = init(); + @Nullable + public static final ItemType BIRCH_BUTTON = init(); + @Nullable + public static final ItemType BIRCH_DOOR = init(); + @Nullable + public static final ItemType BIRCH_FENCE = init(); + @Nullable + public static final ItemType BIRCH_FENCE_GATE = init(); + @Nullable + public static final ItemType BIRCH_LEAVES = init(); + @Nullable + public static final ItemType BIRCH_LOG = init(); + @Nullable + public static final ItemType BIRCH_PLANKS = init(); + @Nullable + public static final ItemType BIRCH_PRESSURE_PLATE = init(); + @Nullable + public static final ItemType BIRCH_SAPLING = init(); + @Nullable + public static final ItemType BIRCH_SIGN = init(); + @Nullable + public static final ItemType BIRCH_SLAB = init(); + @Nullable + public static final ItemType BIRCH_STAIRS = init(); + @Nullable + public static final ItemType BIRCH_TRAPDOOR = init(); + @Nullable + public static final ItemType BIRCH_WOOD = init(); + @Nullable + public static final ItemType BLACK_BANNER = init(); + @Nullable + public static final ItemType BLACK_BED = init(); + @Nullable + public static final ItemType BLACK_CANDLE = init(); + @Nullable + public static final ItemType BLACK_CARPET = init(); + @Nullable + public static final ItemType BLACK_CONCRETE = init(); + @Nullable + public static final ItemType BLACK_CONCRETE_POWDER = init(); + @Nullable + public static final ItemType BLACK_DYE = init(); + @Nullable + public static final ItemType BLACK_GLAZED_TERRACOTTA = init(); + @Nullable + public static final ItemType BLACK_SHULKER_BOX = init(); + @Nullable + public static final ItemType BLACK_STAINED_GLASS = init(); + @Nullable + public static final ItemType BLACK_STAINED_GLASS_PANE = init(); + @Nullable + public static final ItemType BLACK_TERRACOTTA = init(); + @Nullable + public static final ItemType BLACK_WOOL = init(); + @Nullable + public static final ItemType BLACKSTONE = init(); + @Nullable + public static final ItemType BLACKSTONE_SLAB = init(); + @Nullable + public static final ItemType BLACKSTONE_STAIRS = init(); + @Nullable + public static final ItemType BLACKSTONE_WALL = init(); + @Nullable + public static final ItemType BLAST_FURNACE = init(); + @Nullable + public static final ItemType BLAZE_POWDER = init(); + @Nullable + public static final ItemType BLAZE_ROD = init(); + @Nullable + public static final ItemType BLAZE_SPAWN_EGG = init(); + @Nullable + public static final ItemType BLUE_BANNER = init(); + @Nullable + public static final ItemType BLUE_BED = init(); + @Nullable + public static final ItemType BLUE_CANDLE = init(); + @Nullable + public static final ItemType BROWN_CANDLE = init(); + @Nullable + public static final ItemType BLUE_CARPET = init(); + @Nullable + public static final ItemType BLUE_CONCRETE = init(); + @Nullable + public static final ItemType BLUE_CONCRETE_POWDER = init(); + @Nullable + public static final ItemType BLUE_DYE = init(); + @Nullable + public static final ItemType BLUE_GLAZED_TERRACOTTA = init(); + @Nullable + public static final ItemType BLUE_ICE = init(); + @Nullable + public static final ItemType BLUE_ORCHID = init(); + @Nullable + public static final ItemType BLUE_SHULKER_BOX = init(); + @Nullable + public static final ItemType BLUE_STAINED_GLASS = init(); + @Nullable + public static final ItemType BLUE_STAINED_GLASS_PANE = init(); + @Nullable + public static final ItemType BLUE_TERRACOTTA = init(); + @Nullable + public static final ItemType BLUE_WOOL = init(); + @Nullable + public static final ItemType BONE = init(); + @Nullable + public static final ItemType BONE_BLOCK = init(); + @Nullable + public static final ItemType BONE_MEAL = init(); + @Nullable + public static final ItemType BOOK = init(); + @Nullable + public static final ItemType BOOKSHELF = init(); + @Nullable + public static final ItemType BOW = init(); + @Nullable + public static final ItemType BOWL = init(); + @Nullable + public static final ItemType BRAIN_CORAL = init(); + @Nullable + public static final ItemType BRAIN_CORAL_BLOCK = init(); + @Nullable + public static final ItemType BRAIN_CORAL_FAN = init(); + @Nullable + public static final ItemType BREAD = init(); + @Nullable + public static final ItemType BREWING_STAND = init(); + @Nullable + public static final ItemType BRICK = init(); + @Nullable + public static final ItemType BRICK_SLAB = init(); + @Nullable + public static final ItemType BRICK_STAIRS = init(); + @Nullable + public static final ItemType BRICK_WALL = init(); + @Nullable + public static final ItemType BRICKS = init(); + @Nullable + public static final ItemType BROWN_BANNER = init(); + @Nullable + public static final ItemType BROWN_BED = init(); + @Nullable + public static final ItemType BROWN_CARPET = init(); + @Nullable + public static final ItemType BROWN_CONCRETE = init(); + @Nullable + public static final ItemType BROWN_CONCRETE_POWDER = init(); + @Nullable + public static final ItemType BROWN_DYE = init(); + @Nullable + public static final ItemType BROWN_GLAZED_TERRACOTTA = init(); + @Nullable + public static final ItemType BROWN_MUSHROOM = init(); + @Nullable + public static final ItemType BROWN_MUSHROOM_BLOCK = init(); + @Nullable + public static final ItemType BROWN_SHULKER_BOX = init(); + @Nullable + public static final ItemType BROWN_STAINED_GLASS = init(); + @Nullable + public static final ItemType BROWN_STAINED_GLASS_PANE = init(); + @Nullable + public static final ItemType BROWN_TERRACOTTA = init(); + @Nullable + public static final ItemType BROWN_WOOL = init(); + @Nullable + public static final ItemType BUBBLE_CORAL = init(); + @Nullable + public static final ItemType BUBBLE_CORAL_BLOCK = init(); + @Nullable + public static final ItemType BUBBLE_CORAL_FAN = init(); + @Nullable + public static final ItemType BUCKET = init(); + @Nullable + public static final ItemType BUDDING_AMETHYST = init(); + @Nullable + public static final ItemType BUNDLE = init(); + @Nullable + public static final ItemType CACTUS = init(); + @Deprecated + @Nullable + public static final ItemType CACTUS_GREEN = init(); + @Nullable + public static final ItemType CAKE = init(); + @Nullable + public static final ItemType CALCITE = init(); + @Nullable + public static final ItemType CAMPFIRE = init(); + @Nullable + public static final ItemType CANDLE = init(); + @Nullable + public static final ItemType CARROT = init(); + @Nullable + public static final ItemType CARROT_ON_A_STICK = init(); + @Nullable + public static final ItemType CARTOGRAPHY_TABLE = init(); + @Nullable + public static final ItemType CARVED_PUMPKIN = init(); + @Nullable + public static final ItemType CAT_SPAWN_EGG = init(); + @Nullable + public static final ItemType CAULDRON = init(); + @Nullable + public static final ItemType CAVE_SPIDER_SPAWN_EGG = init(); + @Nullable + public static final ItemType CHAIN = init(); + @Nullable + public static final ItemType CHAIN_COMMAND_BLOCK = init(); + @Nullable + public static final ItemType CHAINMAIL_BOOTS = init(); + @Nullable + public static final ItemType CHAINMAIL_CHESTPLATE = init(); + @Nullable + public static final ItemType CHAINMAIL_HELMET = init(); + @Nullable + public static final ItemType CHAINMAIL_LEGGINGS = init(); + @Nullable + public static final ItemType CHARCOAL = init(); + @Nullable + public static final ItemType CHEST = init(); + @Nullable + public static final ItemType CHEST_MINECART = init(); + @Nullable + public static final ItemType CHICKEN = init(); + @Nullable + public static final ItemType CHICKEN_SPAWN_EGG = init(); + @Nullable + public static final ItemType CHIPPED_ANVIL = init(); + @Nullable + public static final ItemType CHISELED_DEEPSLATE = init(); + @Nullable + public static final ItemType CHISELED_NETHER_BRICKS = init(); + @Nullable + public static final ItemType CHISELED_POLISHED_BLACKSTONE = init(); + @Nullable + public static final ItemType CHISELED_QUARTZ_BLOCK = init(); + @Nullable + public static final ItemType CHISELED_RED_SANDSTONE = init(); + @Nullable + public static final ItemType CHISELED_SANDSTONE = init(); + @Nullable + public static final ItemType CHISELED_STONE_BRICKS = init(); + @Nullable + public static final ItemType CHORUS_FLOWER = init(); + @Nullable + public static final ItemType CHORUS_FRUIT = init(); + @Nullable + public static final ItemType CHORUS_PLANT = init(); + @Nullable + public static final ItemType CLAY = init(); + @Nullable + public static final ItemType CLAY_BALL = init(); + @Nullable + public static final ItemType CLOCK = init(); + @Nullable + public static final ItemType COAL = init(); + @Nullable + public static final ItemType COAL_BLOCK = init(); + @Nullable + public static final ItemType COAL_ORE = init(); + @Nullable + public static final ItemType COARSE_DIRT = init(); + @Nullable + public static final ItemType COBBLED_DEEPSLATE = init(); + @Nullable + public static final ItemType COBBLED_DEEPSLATE_SLAB = init(); + @Nullable + public static final ItemType COBBLED_DEEPSLATE_STAIRS = init(); + @Nullable + public static final ItemType COBBLED_DEEPSLATE_WALL = init(); + @Nullable + public static final ItemType COBBLESTONE = init(); + @Nullable + public static final ItemType COBBLESTONE_SLAB = init(); + @Nullable + public static final ItemType COBBLESTONE_STAIRS = init(); + @Nullable + public static final ItemType COBBLESTONE_WALL = init(); + @Nullable + public static final ItemType COBWEB = init(); + @Nullable + public static final ItemType COCOA_BEANS = init(); + @Nullable + public static final ItemType COD = init(); + @Nullable + public static final ItemType COD_BUCKET = init(); + @Nullable + public static final ItemType COD_SPAWN_EGG = init(); + @Nullable + public static final ItemType COMMAND_BLOCK = init(); + @Nullable + public static final ItemType COMMAND_BLOCK_MINECART = init(); + @Nullable + public static final ItemType COMPARATOR = init(); + @Nullable + public static final ItemType COMPASS = init(); + @Nullable + public static final ItemType COMPOSTER = init(); + @Nullable + public static final ItemType CONDUIT = init(); + @Nullable + public static final ItemType COOKED_BEEF = init(); + @Nullable + public static final ItemType COOKED_CHICKEN = init(); + @Nullable + public static final ItemType COOKED_COD = init(); + @Nullable + public static final ItemType COOKED_MUTTON = init(); + @Nullable + public static final ItemType COOKED_PORKCHOP = init(); + @Nullable + public static final ItemType COOKED_RABBIT = init(); + @Nullable + public static final ItemType COOKED_SALMON = init(); + @Nullable + public static final ItemType COOKIE = init(); + @Nullable + public static final ItemType COPPER_BLOCK = init(); + @Nullable + public static final ItemType COPPER_INGOT = init(); + @Nullable + public static final ItemType COPPER_ORE = init(); + @Nullable + public static final ItemType CORNFLOWER = init(); + @Nullable + public static final ItemType COW_SPAWN_EGG = init(); + @Nullable + public static final ItemType CRACKED_DEEPSLATE_BRICKS = init(); + @Nullable + public static final ItemType CRACKED_DEEPSLATE_TILES = init(); + @Nullable + public static final ItemType CRACKED_NETHER_BRICKS = init(); + @Nullable + public static final ItemType CRACKED_POLISHED_BLACKSTONE_BRICKS = init(); + @Nullable + public static final ItemType CRACKED_STONE_BRICKS = init(); + @Nullable + public static final ItemType CRAFTING_TABLE = init(); + @Nullable + public static final ItemType CREEPER_BANNER_PATTERN = init(); + @Nullable + public static final ItemType CREEPER_HEAD = init(); + @Nullable + public static final ItemType CREEPER_SPAWN_EGG = init(); + @Nullable + public static final ItemType CRIMSON_BUTTON = init(); + @Nullable + public static final ItemType CRIMSON_DOOR = init(); + @Nullable + public static final ItemType CRIMSON_FENCE = init(); + @Nullable + public static final ItemType CRIMSON_FENCE_GATE = init(); + @Nullable + public static final ItemType CRIMSON_FUNGUS = init(); + @Nullable + public static final ItemType CRIMSON_HYPHAE = init(); + @Nullable + public static final ItemType CRIMSON_NYLIUM = init(); + @Nullable + public static final ItemType CRIMSON_PLANKS = init(); + @Nullable + public static final ItemType CRIMSON_PRESSURE_PLATE = init(); + @Nullable + public static final ItemType CRIMSON_ROOTS = init(); + @Nullable + public static final ItemType CRIMSON_SIGN = init(); + @Nullable + public static final ItemType CRIMSON_SLAB = init(); + @Nullable + public static final ItemType CRIMSON_STAIRS = init(); + @Nullable + public static final ItemType CRIMSON_STEM = init(); + @Nullable + public static final ItemType CRIMSON_TRAPDOOR = init(); + @Nullable + public static final ItemType CROSSBOW = init(); + @Nullable + public static final ItemType CRYING_OBSIDIAN = init(); + @Nullable + public static final ItemType CUT_COPPER = init(); + @Nullable + public static final ItemType CUT_COPPER_SLAB = init(); + @Nullable + public static final ItemType CUT_COPPER_STAIRS = init(); + @Nullable + public static final ItemType CUT_RED_SANDSTONE = init(); + @Nullable + public static final ItemType CUT_RED_SANDSTONE_SLAB = init(); + @Nullable + public static final ItemType CUT_SANDSTONE = init(); + @Nullable + public static final ItemType CUT_SANDSTONE_SLAB = init(); + @Nullable + public static final ItemType CYAN_BANNER = init(); + @Nullable + public static final ItemType CYAN_BED = init(); + @Nullable + public static final ItemType CYAN_CANDLE = init(); + @Nullable + public static final ItemType CYAN_CARPET = init(); + @Nullable + public static final ItemType CYAN_CONCRETE = init(); + @Nullable + public static final ItemType CYAN_CONCRETE_POWDER = init(); + @Nullable + public static final ItemType CYAN_DYE = init(); + @Nullable + public static final ItemType CYAN_GLAZED_TERRACOTTA = init(); + @Nullable + public static final ItemType CYAN_SHULKER_BOX = init(); + @Nullable + public static final ItemType CYAN_STAINED_GLASS = init(); + @Nullable + public static final ItemType CYAN_STAINED_GLASS_PANE = init(); + @Nullable + public static final ItemType CYAN_TERRACOTTA = init(); + @Nullable + public static final ItemType CYAN_WOOL = init(); + @Nullable + public static final ItemType DAMAGED_ANVIL = init(); + @Nullable + public static final ItemType DANDELION = init(); + @Deprecated + @Nullable + public static final ItemType DANDELION_YELLOW = init(); + @Nullable + public static final ItemType DARK_OAK_BOAT = init(); + @Nullable + public static final ItemType DARK_OAK_BUTTON = init(); + @Nullable + public static final ItemType DARK_OAK_DOOR = init(); + @Nullable + public static final ItemType DARK_OAK_FENCE = init(); + @Nullable + public static final ItemType DARK_OAK_FENCE_GATE = init(); + @Nullable + public static final ItemType DARK_OAK_LEAVES = init(); + @Nullable + public static final ItemType DARK_OAK_LOG = init(); + @Nullable + public static final ItemType DARK_OAK_PLANKS = init(); + @Nullable + public static final ItemType DARK_OAK_PRESSURE_PLATE = init(); + @Nullable + public static final ItemType DARK_OAK_SAPLING = init(); + @Nullable + public static final ItemType DARK_OAK_SIGN = init(); + @Nullable + public static final ItemType DARK_OAK_SLAB = init(); + @Nullable + public static final ItemType DARK_OAK_STAIRS = init(); + @Nullable + public static final ItemType DARK_OAK_TRAPDOOR = init(); + @Nullable + public static final ItemType DARK_OAK_WOOD = init(); + @Nullable + public static final ItemType DARK_PRISMARINE = init(); + @Nullable + public static final ItemType DARK_PRISMARINE_SLAB = init(); + @Nullable + public static final ItemType DARK_PRISMARINE_STAIRS = init(); + @Nullable + public static final ItemType DAYLIGHT_DETECTOR = init(); + @Nullable + public static final ItemType DEAD_BRAIN_CORAL = init(); + @Nullable + public static final ItemType DEAD_BRAIN_CORAL_BLOCK = init(); + @Nullable + public static final ItemType DEAD_BRAIN_CORAL_FAN = init(); + @Nullable + public static final ItemType DEAD_BUBBLE_CORAL = init(); + @Nullable + public static final ItemType DEAD_BUBBLE_CORAL_BLOCK = init(); + @Nullable + public static final ItemType DEAD_BUBBLE_CORAL_FAN = init(); + @Nullable + public static final ItemType DEAD_BUSH = init(); + @Nullable + public static final ItemType DEAD_FIRE_CORAL = init(); + @Nullable + public static final ItemType DEAD_FIRE_CORAL_BLOCK = init(); + @Nullable + public static final ItemType DEAD_FIRE_CORAL_FAN = init(); + @Nullable + public static final ItemType DEAD_HORN_CORAL = init(); + @Nullable + public static final ItemType DEAD_HORN_CORAL_BLOCK = init(); + @Nullable + public static final ItemType DEAD_HORN_CORAL_FAN = init(); + @Nullable + public static final ItemType DEAD_TUBE_CORAL = init(); + @Nullable + public static final ItemType DEAD_TUBE_CORAL_BLOCK = init(); + @Nullable + public static final ItemType DEAD_TUBE_CORAL_FAN = init(); + @Nullable + public static final ItemType DEBUG_STICK = init(); + @Nullable + public static final ItemType DEEPSLATE = init(); + @Nullable + public static final ItemType DEEPSLATE_BRICK_SLAB = init(); + @Nullable + public static final ItemType DEEPSLATE_BRICK_STAIRS = init(); + @Nullable + public static final ItemType DEEPSLATE_BRICK_WALL = init(); + @Nullable + public static final ItemType DEEPSLATE_BRICKS = init(); + @Nullable + public static final ItemType DEEPSLATE_COAL_ORE = init(); + @Nullable + public static final ItemType DEEPSLATE_COPPER_ORE = init(); + @Nullable + public static final ItemType DEEPSLATE_DIAMOND_ORE = init(); + @Nullable + public static final ItemType DEEPSLATE_EMERALD_ORE = init(); + @Nullable + public static final ItemType DEEPSLATE_GOLD_ORE = init(); + @Nullable + public static final ItemType DEEPSLATE_IRON_ORE = init(); + @Nullable + public static final ItemType DEEPSLATE_LAPIS_ORE = init(); + @Nullable + public static final ItemType DEEPSLATE_REDSTONE_ORE = init(); + @Nullable + public static final ItemType DEEPSLATE_TILE_SLAB = init(); + @Nullable + public static final ItemType DEEPSLATE_TILE_STAIRS = init(); + @Nullable + public static final ItemType DEEPSLATE_TILE_WALL = init(); + @Nullable + public static final ItemType DEEPSLATE_TILES = init(); + @Nullable + public static final ItemType DETECTOR_RAIL = init(); + @Nullable + public static final ItemType DIAMOND = init(); + @Nullable + public static final ItemType DIAMOND_AXE = init(); + @Nullable + public static final ItemType DIAMOND_BLOCK = init(); + @Nullable + public static final ItemType DIAMOND_BOOTS = init(); + @Nullable + public static final ItemType DIAMOND_CHESTPLATE = init(); + @Nullable + public static final ItemType DIAMOND_HELMET = init(); + @Nullable + public static final ItemType DIAMOND_HOE = init(); + @Nullable + public static final ItemType DIAMOND_HORSE_ARMOR = init(); + @Nullable + public static final ItemType DIAMOND_LEGGINGS = init(); + @Nullable + public static final ItemType DIAMOND_ORE = init(); + @Nullable + public static final ItemType DIAMOND_PICKAXE = init(); + @Nullable + public static final ItemType DIAMOND_SHOVEL = init(); + @Nullable + public static final ItemType DIAMOND_SWORD = init(); + @Nullable + public static final ItemType DIORITE = init(); + @Nullable + public static final ItemType DIORITE_SLAB = init(); + @Nullable + public static final ItemType DIORITE_STAIRS = init(); + @Nullable + public static final ItemType DIORITE_WALL = init(); + @Nullable + public static final ItemType DIRT = init(); + @Nullable + public static final ItemType DIRT_PATH = init(); + @Nullable + public static final ItemType DISPENSER = init(); + @Nullable + public static final ItemType DOLPHIN_SPAWN_EGG = init(); + @Nullable + public static final ItemType DONKEY_SPAWN_EGG = init(); + @Nullable + public static final ItemType DRAGON_BREATH = init(); + @Nullable + public static final ItemType DRAGON_EGG = init(); + @Nullable + public static final ItemType DRAGON_HEAD = init(); + @Nullable + public static final ItemType DRIED_KELP = init(); + @Nullable + public static final ItemType DRIED_KELP_BLOCK = init(); + @Nullable + public static final ItemType DRIPSTONE_BLOCK = init(); + @Nullable + public static final ItemType DROPPER = init(); + @Nullable + public static final ItemType DROWNED_SPAWN_EGG = init(); + @Nullable + public static final ItemType EGG = init(); + @Nullable + public static final ItemType ELDER_GUARDIAN_SPAWN_EGG = init(); + @Nullable + public static final ItemType ELYTRA = init(); + @Nullable + public static final ItemType EMERALD = init(); + @Nullable + public static final ItemType EMERALD_BLOCK = init(); + @Nullable + public static final ItemType EMERALD_ORE = init(); + @Nullable + public static final ItemType ENCHANTED_BOOK = init(); + @Nullable + public static final ItemType ENCHANTED_GOLDEN_APPLE = init(); + @Nullable + public static final ItemType ENCHANTING_TABLE = init(); + @Nullable + public static final ItemType END_CRYSTAL = init(); + @Nullable + public static final ItemType END_PORTAL_FRAME = init(); + @Nullable + public static final ItemType END_ROD = init(); + @Nullable + public static final ItemType END_STONE = init(); + @Nullable + public static final ItemType END_STONE_BRICK_SLAB = init(); + @Nullable + public static final ItemType END_STONE_BRICK_STAIRS = init(); + @Nullable + public static final ItemType END_STONE_BRICK_WALL = init(); + @Nullable + public static final ItemType END_STONE_BRICKS = init(); + @Nullable + public static final ItemType ENDER_CHEST = init(); + @Nullable + public static final ItemType ENDER_EYE = init(); + @Nullable + public static final ItemType ENDER_PEARL = init(); + @Nullable + public static final ItemType ENDERMAN_SPAWN_EGG = init(); + @Nullable + public static final ItemType ENDERMITE_SPAWN_EGG = init(); + @Nullable + public static final ItemType EVOKER_SPAWN_EGG = init(); + @Nullable + public static final ItemType EXPERIENCE_BOTTLE = init(); + @Nullable + public static final ItemType EXPOSED_COPPER = init(); + @Nullable + public static final ItemType EXPOSED_CUT_COPPER = init(); + @Nullable + public static final ItemType EXPOSED_CUT_COPPER_SLAB = init(); + @Nullable + public static final ItemType EXPOSED_CUT_COPPER_STAIRS = init(); + @Nullable + public static final ItemType FARMLAND = init(); + @Nullable + public static final ItemType FEATHER = init(); + @Nullable + public static final ItemType FERMENTED_SPIDER_EYE = init(); + @Nullable + public static final ItemType FERN = init(); + @Nullable + public static final ItemType FILLED_MAP = init(); + @Nullable + public static final ItemType FIRE_CHARGE = init(); + @Nullable + public static final ItemType FIRE_CORAL = init(); + @Nullable + public static final ItemType FIRE_CORAL_BLOCK = init(); + @Nullable + public static final ItemType FIRE_CORAL_FAN = init(); + @Nullable + public static final ItemType FIREWORK_ROCKET = init(); + @Nullable + public static final ItemType FIREWORK_STAR = init(); + @Nullable + public static final ItemType FISHING_ROD = init(); + @Nullable + public static final ItemType FLETCHING_TABLE = init(); + @Nullable + public static final ItemType FLINT = init(); + @Nullable + public static final ItemType FLINT_AND_STEEL = init(); + @Nullable + public static final ItemType FLOWER_BANNER_PATTERN = init(); + @Nullable + public static final ItemType FLOWER_POT = init(); + @Nullable + public static final ItemType FLOWERING_AZALEA = init(); + @Nullable + public static final ItemType FLOWERING_AZALEA_LEAVES = init(); + @Nullable + public static final ItemType FOX_SPAWN_EGG = init(); + @Nullable + public static final ItemType FURNACE = init(); + @Nullable + public static final ItemType FURNACE_MINECART = init(); + @Nullable + public static final ItemType GHAST_SPAWN_EGG = init(); + @Nullable + public static final ItemType GHAST_TEAR = init(); + @Nullable + public static final ItemType GILDED_BLACKSTONE = init(); + @Nullable + public static final ItemType GLASS = init(); + @Nullable + public static final ItemType GLASS_BOTTLE = init(); + @Nullable + public static final ItemType GLASS_PANE = init(); + @Nullable + public static final ItemType GLISTERING_MELON_SLICE = init(); + @Nullable + public static final ItemType GLOBE_BANNER_PATTERN = init(); + @Nullable + public static final ItemType GLOW_BERRIES = init(); + @Nullable + public static final ItemType GLOW_INK_SAC = init(); + @Nullable + public static final ItemType GLOW_ITEM_FRAME = init(); + @Nullable + public static final ItemType GLOW_LICHEN = init(); + @Nullable + public static final ItemType GLOW_SQUID_SPAWN_EGG = init(); + @Nullable + public static final ItemType GLOWSTONE = init(); + @Nullable + public static final ItemType GLOWSTONE_DUST = init(); + @Nullable + public static final ItemType GOAT_SPAWN_EGG = init(); + @Nullable + public static final ItemType GOLD_BLOCK = init(); + @Nullable + public static final ItemType GOLD_INGOT = init(); + @Nullable + public static final ItemType GOLD_NUGGET = init(); + @Nullable + public static final ItemType GOLD_ORE = init(); + @Nullable + public static final ItemType GOLDEN_APPLE = init(); + @Nullable + public static final ItemType GOLDEN_AXE = init(); + @Nullable + public static final ItemType GOLDEN_BOOTS = init(); + @Nullable + public static final ItemType GOLDEN_CARROT = init(); + @Nullable + public static final ItemType GOLDEN_CHESTPLATE = init(); + @Nullable + public static final ItemType GOLDEN_HELMET = init(); + @Nullable + public static final ItemType GOLDEN_HOE = init(); + @Nullable + public static final ItemType GOLDEN_HORSE_ARMOR = init(); + @Nullable + public static final ItemType GOLDEN_LEGGINGS = init(); + @Nullable + public static final ItemType GOLDEN_PICKAXE = init(); + @Nullable + public static final ItemType GOLDEN_SHOVEL = init(); + @Nullable + public static final ItemType GOLDEN_SWORD = init(); + @Nullable + public static final ItemType GRANITE = init(); + @Nullable + public static final ItemType GRANITE_SLAB = init(); + @Nullable + public static final ItemType GRANITE_STAIRS = init(); + @Nullable + public static final ItemType GRANITE_WALL = init(); + @Nullable + public static final ItemType GRASS = init(); + @Nullable + public static final ItemType GRASS_BLOCK = init(); + @Deprecated + @Nullable + public static final ItemType GRASS_PATH = init(); + @Nullable + public static final ItemType GRAVEL = init(); + @Nullable + public static final ItemType GRAY_BANNER = init(); + @Nullable + public static final ItemType GRAY_BED = init(); + @Nullable + public static final ItemType GREEN_CANDLE = init(); + @Nullable + public static final ItemType GRAY_CARPET = init(); + @Nullable + public static final ItemType GRAY_CONCRETE = init(); + @Nullable + public static final ItemType GRAY_CONCRETE_POWDER = init(); + @Nullable + public static final ItemType GRAY_DYE = init(); + @Nullable + public static final ItemType GRAY_GLAZED_TERRACOTTA = init(); + @Nullable + public static final ItemType GRAY_SHULKER_BOX = init(); + @Nullable + public static final ItemType GRAY_STAINED_GLASS = init(); + @Nullable + public static final ItemType GRAY_STAINED_GLASS_PANE = init(); + @Nullable + public static final ItemType GRAY_TERRACOTTA = init(); + @Nullable + public static final ItemType GRAY_WOOL = init(); + @Nullable + public static final ItemType GREEN_BANNER = init(); + @Nullable + public static final ItemType GREEN_BED = init(); + @Nullable + public static final ItemType GREEN_CARPET = init(); + @Nullable + public static final ItemType GREEN_CONCRETE = init(); + @Nullable + public static final ItemType GREEN_CONCRETE_POWDER = init(); + @Nullable + public static final ItemType GREEN_DYE = init(); + @Nullable + public static final ItemType GREEN_GLAZED_TERRACOTTA = init(); + @Nullable + public static final ItemType GREEN_SHULKER_BOX = init(); + @Nullable + public static final ItemType GREEN_STAINED_GLASS = init(); + @Nullable + public static final ItemType GREEN_STAINED_GLASS_PANE = init(); + @Nullable + public static final ItemType GREEN_TERRACOTTA = init(); + @Nullable + public static final ItemType GREEN_WOOL = init(); + @Nullable + public static final ItemType GRINDSTONE = init(); + @Nullable + public static final ItemType GUARDIAN_SPAWN_EGG = init(); + @Nullable + public static final ItemType GUNPOWDER = init(); + @Nullable + public static final ItemType HANGING_ROOTS = init(); + @Nullable + public static final ItemType HAY_BLOCK = init(); + @Nullable + public static final ItemType HEART_OF_THE_SEA = init(); + @Nullable + public static final ItemType HEAVY_WEIGHTED_PRESSURE_PLATE = init(); + @Nullable + public static final ItemType HOGLIN_SPAWN_EGG = init(); + @Nullable + public static final ItemType HONEY_BLOCK = init(); + @Nullable + public static final ItemType HONEY_BOTTLE = init(); + @Nullable + public static final ItemType HONEYCOMB = init(); + @Nullable + public static final ItemType HONEYCOMB_BLOCK = init(); + @Nullable + public static final ItemType HOPPER = init(); + @Nullable + public static final ItemType HOPPER_MINECART = init(); + @Nullable + public static final ItemType HORN_CORAL = init(); + @Nullable + public static final ItemType HORN_CORAL_BLOCK = init(); + @Nullable + public static final ItemType HORN_CORAL_FAN = init(); + @Nullable + public static final ItemType HORSE_SPAWN_EGG = init(); + @Nullable + public static final ItemType HUSK_SPAWN_EGG = init(); + @Nullable + public static final ItemType ICE = init(); + @Nullable + public static final ItemType INFESTED_CHISELED_STONE_BRICKS = init(); + @Nullable + public static final ItemType INFESTED_COBBLESTONE = init(); + @Nullable + public static final ItemType INFESTED_CRACKED_STONE_BRICKS = init(); + @Nullable + public static final ItemType INFESTED_DEEPSLATE = init(); + @Nullable + public static final ItemType INFESTED_MOSSY_STONE_BRICKS = init(); + @Nullable + public static final ItemType INFESTED_STONE = init(); + @Nullable + public static final ItemType INFESTED_STONE_BRICKS = init(); + @Nullable + public static final ItemType INK_SAC = init(); + @Nullable + public static final ItemType IRON_AXE = init(); + @Nullable + public static final ItemType IRON_BARS = init(); + @Nullable + public static final ItemType IRON_BLOCK = init(); + @Nullable + public static final ItemType IRON_BOOTS = init(); + @Nullable + public static final ItemType IRON_CHESTPLATE = init(); + @Nullable + public static final ItemType IRON_DOOR = init(); + @Nullable + public static final ItemType IRON_HELMET = init(); + @Nullable + public static final ItemType IRON_HOE = init(); + @Nullable + public static final ItemType IRON_HORSE_ARMOR = init(); + @Nullable + public static final ItemType IRON_INGOT = init(); + @Nullable + public static final ItemType IRON_LEGGINGS = init(); + @Nullable + public static final ItemType IRON_NUGGET = init(); + @Nullable + public static final ItemType IRON_ORE = init(); + @Nullable + public static final ItemType IRON_PICKAXE = init(); + @Nullable + public static final ItemType IRON_SHOVEL = init(); + @Nullable + public static final ItemType IRON_SWORD = init(); + @Nullable + public static final ItemType IRON_TRAPDOOR = init(); + @Nullable + public static final ItemType ITEM_FRAME = init(); + @Nullable + public static final ItemType JACK_O_LANTERN = init(); + @Nullable + public static final ItemType JIGSAW = init(); + @Nullable + public static final ItemType JUKEBOX = init(); + @Nullable + public static final ItemType JUNGLE_BOAT = init(); + @Nullable + public static final ItemType JUNGLE_BUTTON = init(); + @Nullable + public static final ItemType JUNGLE_DOOR = init(); + @Nullable + public static final ItemType JUNGLE_FENCE = init(); + @Nullable + public static final ItemType JUNGLE_FENCE_GATE = init(); + @Nullable + public static final ItemType JUNGLE_LEAVES = init(); + @Nullable + public static final ItemType JUNGLE_LOG = init(); + @Nullable + public static final ItemType JUNGLE_PLANKS = init(); + @Nullable + public static final ItemType JUNGLE_PRESSURE_PLATE = init(); + @Nullable + public static final ItemType JUNGLE_SAPLING = init(); + @Nullable + public static final ItemType JUNGLE_SIGN = init(); + @Nullable + public static final ItemType JUNGLE_SLAB = init(); + @Nullable + public static final ItemType JUNGLE_STAIRS = init(); + @Nullable + public static final ItemType JUNGLE_TRAPDOOR = init(); + @Nullable + public static final ItemType JUNGLE_WOOD = init(); + @Nullable + public static final ItemType KELP = init(); + @Nullable + public static final ItemType KNOWLEDGE_BOOK = init(); + @Nullable + public static final ItemType LADDER = init(); + @Nullable + public static final ItemType LANTERN = init(); + @Nullable + public static final ItemType LAPIS_BLOCK = init(); + @Nullable + public static final ItemType LAPIS_LAZULI = init(); + @Nullable + public static final ItemType LAPIS_ORE = init(); + @Nullable + public static final ItemType LARGE_AMETHYST_BUD = init(); + @Nullable + public static final ItemType LARGE_FERN = init(); + @Nullable + public static final ItemType LAVA_BUCKET = init(); + @Nullable + public static final ItemType LEAD = init(); + @Nullable + public static final ItemType LEATHER = init(); + @Nullable + public static final ItemType LEATHER_BOOTS = init(); + @Nullable + public static final ItemType LEATHER_CHESTPLATE = init(); + @Nullable + public static final ItemType LEATHER_HELMET = init(); + @Nullable + public static final ItemType LEATHER_HORSE_ARMOR = init(); + @Nullable + public static final ItemType LEATHER_LEGGINGS = init(); + @Nullable + public static final ItemType LECTERN = init(); + @Nullable + public static final ItemType LEVER = init(); + @Nullable + public static final ItemType LIGHT = init(); + @Nullable + public static final ItemType LIGHT_BLUE_BANNER = init(); + @Nullable + public static final ItemType LIGHT_BLUE_BED = init(); + @Nullable + public static final ItemType LIGHT_BLUE_CANDLE = init(); + @Nullable + public static final ItemType LIGHT_BLUE_CARPET = init(); + @Nullable + public static final ItemType LIGHT_BLUE_CONCRETE = init(); + @Nullable + public static final ItemType LIGHT_BLUE_CONCRETE_POWDER = init(); + @Nullable + public static final ItemType LIGHT_BLUE_DYE = init(); + @Nullable + public static final ItemType LIGHT_BLUE_GLAZED_TERRACOTTA = init(); + @Nullable + public static final ItemType LIGHT_BLUE_SHULKER_BOX = init(); + @Nullable + public static final ItemType LIGHT_BLUE_STAINED_GLASS = init(); + @Nullable + public static final ItemType LIGHT_BLUE_STAINED_GLASS_PANE = init(); + @Nullable + public static final ItemType LIGHT_BLUE_TERRACOTTA = init(); + @Nullable + public static final ItemType LIGHT_BLUE_WOOL = init(); + @Nullable + public static final ItemType LIGHT_GRAY_BANNER = init(); + @Nullable + public static final ItemType LIGHT_GRAY_BED = init(); + @Nullable + public static final ItemType LIGHT_GRAY_CANDLE = init(); + @Nullable + public static final ItemType LIGHT_GRAY_CARPET = init(); + @Nullable + public static final ItemType LIGHT_GRAY_CONCRETE = init(); + @Nullable + public static final ItemType LIGHT_GRAY_CONCRETE_POWDER = init(); + @Nullable + public static final ItemType LIGHT_GRAY_DYE = init(); + @Nullable + public static final ItemType LIGHT_GRAY_GLAZED_TERRACOTTA = init(); + @Nullable + public static final ItemType LIGHT_GRAY_SHULKER_BOX = init(); + @Nullable + public static final ItemType LIGHT_GRAY_STAINED_GLASS = init(); + @Nullable + public static final ItemType LIGHT_GRAY_STAINED_GLASS_PANE = init(); + @Nullable + public static final ItemType LIGHT_GRAY_TERRACOTTA = init(); + @Nullable + public static final ItemType LIGHT_GRAY_WOOL = init(); + @Nullable + public static final ItemType LIGHT_WEIGHTED_PRESSURE_PLATE = init(); + @Nullable + public static final ItemType LIGHTNING_ROD = init(); + @Nullable + public static final ItemType LILAC = init(); + @Nullable + public static final ItemType LILY_OF_THE_VALLEY = init(); + @Nullable + public static final ItemType LILY_PAD = init(); + @Nullable + public static final ItemType LIME_BANNER = init(); + @Nullable + public static final ItemType LIME_BED = init(); + @Nullable + public static final ItemType LIME_CANDLE = init(); + @Nullable + public static final ItemType LIME_CARPET = init(); + @Nullable + public static final ItemType LIME_CONCRETE = init(); + @Nullable + public static final ItemType LIME_CONCRETE_POWDER = init(); + @Nullable + public static final ItemType LIME_DYE = init(); + @Nullable + public static final ItemType LIME_GLAZED_TERRACOTTA = init(); + @Nullable + public static final ItemType LIME_SHULKER_BOX = init(); + @Nullable + public static final ItemType LIME_STAINED_GLASS = init(); + @Nullable + public static final ItemType LIME_STAINED_GLASS_PANE = init(); + @Nullable + public static final ItemType LIME_TERRACOTTA = init(); + @Nullable + public static final ItemType LIME_WOOL = init(); + @Nullable + public static final ItemType LINGERING_POTION = init(); + @Nullable + public static final ItemType LLAMA_SPAWN_EGG = init(); + @Nullable + public static final ItemType LODESTONE = init(); + @Nullable + public static final ItemType LOOM = init(); + @Nullable + public static final ItemType MAGENTA_BANNER = init(); + @Nullable + public static final ItemType MAGENTA_BED = init(); + @Nullable + public static final ItemType MAGENTA_CANDLE = init(); + @Nullable + public static final ItemType MAGENTA_CARPET = init(); + @Nullable + public static final ItemType MAGENTA_CONCRETE = init(); + @Nullable + public static final ItemType MAGENTA_CONCRETE_POWDER = init(); + @Nullable + public static final ItemType MAGENTA_DYE = init(); + @Nullable + public static final ItemType MAGENTA_GLAZED_TERRACOTTA = init(); + @Nullable + public static final ItemType MAGENTA_SHULKER_BOX = init(); + @Nullable + public static final ItemType MAGENTA_STAINED_GLASS = init(); + @Nullable + public static final ItemType MAGENTA_STAINED_GLASS_PANE = init(); + @Nullable + public static final ItemType MAGENTA_TERRACOTTA = init(); + @Nullable + public static final ItemType MAGENTA_WOOL = init(); + @Nullable + public static final ItemType MAGMA_BLOCK = init(); + @Nullable + public static final ItemType MAGMA_CREAM = init(); + @Nullable + public static final ItemType MAGMA_CUBE_SPAWN_EGG = init(); + @Nullable + public static final ItemType MAP = init(); + @Nullable + public static final ItemType MEDIUM_AMETHYST_BUD = init(); + @Nullable + public static final ItemType MELON = init(); + @Nullable + public static final ItemType MELON_SEEDS = init(); + @Nullable + public static final ItemType MELON_SLICE = init(); + @Nullable + public static final ItemType MILK_BUCKET = init(); + @Nullable + public static final ItemType MINECART = init(); + @Nullable + public static final ItemType MOJANG_BANNER_PATTERN = init(); + @Nullable + public static final ItemType MOOSHROOM_SPAWN_EGG = init(); + @Nullable + public static final ItemType MOSS_BLOCK = init(); + @Nullable + public static final ItemType MOSS_CARPET = init(); + @Nullable + public static final ItemType MOSSY_COBBLESTONE = init(); + @Nullable + public static final ItemType MOSSY_COBBLESTONE_SLAB = init(); + @Nullable + public static final ItemType MOSSY_COBBLESTONE_STAIRS = init(); + @Nullable + public static final ItemType MOSSY_COBBLESTONE_WALL = init(); + @Nullable + public static final ItemType MOSSY_STONE_BRICK_SLAB = init(); + @Nullable + public static final ItemType MOSSY_STONE_BRICK_STAIRS = init(); + @Nullable + public static final ItemType MOSSY_STONE_BRICK_WALL = init(); + @Nullable + public static final ItemType MOSSY_STONE_BRICKS = init(); + @Nullable + public static final ItemType MULE_SPAWN_EGG = init(); + @Nullable + public static final ItemType MUSHROOM_STEM = init(); + @Nullable + public static final ItemType MUSHROOM_STEW = init(); + @Nullable + public static final ItemType MUSIC_DISC_11 = init(); + @Nullable + public static final ItemType MUSIC_DISC_13 = init(); + @Nullable + public static final ItemType MUSIC_DISC_BLOCKS = init(); + @Nullable + public static final ItemType MUSIC_DISC_CAT = init(); + @Nullable + public static final ItemType MUSIC_DISC_CHIRP = init(); + @Nullable + public static final ItemType MUSIC_DISC_FAR = init(); + @Nullable + public static final ItemType MUSIC_DISC_MALL = init(); + @Nullable + public static final ItemType MUSIC_DISC_MELLOHI = init(); + @Nullable + public static final ItemType MUSIC_DISC_PIGSTEP = init(); + @Nullable + public static final ItemType MUSIC_DISC_STAL = init(); + @Nullable + public static final ItemType MUSIC_DISC_STRAD = init(); + @Nullable + public static final ItemType MUSIC_DISC_WAIT = init(); + @Nullable + public static final ItemType MUSIC_DISC_WARD = init(); + @Nullable + public static final ItemType MUTTON = init(); + @Nullable + public static final ItemType MYCELIUM = init(); + @Nullable + public static final ItemType NAME_TAG = init(); + @Nullable + public static final ItemType NAUTILUS_SHELL = init(); + @Nullable + public static final ItemType NETHER_BRICK = init(); + @Nullable + public static final ItemType NETHER_BRICK_FENCE = init(); + @Nullable + public static final ItemType NETHER_BRICK_SLAB = init(); + @Nullable + public static final ItemType NETHER_BRICK_STAIRS = init(); + @Nullable + public static final ItemType NETHER_BRICK_WALL = init(); + @Nullable + public static final ItemType NETHER_BRICKS = init(); + @Nullable + public static final ItemType NETHER_GOLD_ORE = init(); + @Nullable + public static final ItemType NETHER_QUARTZ_ORE = init(); + @Nullable + public static final ItemType NETHER_SPROUTS = init(); + @Nullable + public static final ItemType NETHER_STAR = init(); + @Nullable + public static final ItemType NETHER_WART = init(); + @Nullable + public static final ItemType NETHER_WART_BLOCK = init(); + @Nullable + public static final ItemType NETHERITE_AXE = init(); + @Nullable + public static final ItemType NETHERITE_BLOCK = init(); + @Nullable + public static final ItemType NETHERITE_BOOTS = init(); + @Nullable + public static final ItemType NETHERITE_CHESTPLATE = init(); + @Nullable + public static final ItemType NETHERITE_HELMET = init(); + @Nullable + public static final ItemType NETHERITE_HOE = init(); + @Nullable + public static final ItemType NETHERITE_INGOT = init(); + @Nullable + public static final ItemType NETHERITE_LEGGINGS = init(); + @Nullable + public static final ItemType NETHERITE_PICKAXE = init(); + @Nullable + public static final ItemType NETHERITE_SCRAP = init(); + @Nullable + public static final ItemType NETHERITE_SHOVEL = init(); + @Nullable + public static final ItemType NETHERITE_SWORD = init(); + @Nullable + public static final ItemType NETHERRACK = init(); + @Nullable + public static final ItemType NOTE_BLOCK = init(); + @Nullable + public static final ItemType OAK_BOAT = init(); + @Nullable + public static final ItemType OAK_BUTTON = init(); + @Nullable + public static final ItemType OAK_DOOR = init(); + @Nullable + public static final ItemType OAK_FENCE = init(); + @Nullable + public static final ItemType OAK_FENCE_GATE = init(); + @Nullable + public static final ItemType OAK_LEAVES = init(); + @Nullable + public static final ItemType OAK_LOG = init(); + @Nullable + public static final ItemType OAK_PLANKS = init(); + @Nullable + public static final ItemType OAK_PRESSURE_PLATE = init(); + @Nullable + public static final ItemType OAK_SAPLING = init(); + @Nullable + public static final ItemType OAK_SIGN = init(); + @Nullable + public static final ItemType OAK_SLAB = init(); + @Nullable + public static final ItemType OAK_STAIRS = init(); + @Nullable + public static final ItemType OAK_TRAPDOOR = init(); + @Nullable + public static final ItemType OAK_WOOD = init(); + @Nullable + public static final ItemType OBSERVER = init(); + @Nullable + public static final ItemType OBSIDIAN = init(); + @Nullable + public static final ItemType OCELOT_SPAWN_EGG = init(); + @Nullable + public static final ItemType ORANGE_BANNER = init(); + @Nullable + public static final ItemType ORANGE_BED = init(); + @Nullable + public static final ItemType ORANGE_CANDLE = init(); + @Nullable + public static final ItemType ORANGE_CARPET = init(); + @Nullable + public static final ItemType ORANGE_CONCRETE = init(); + @Nullable + public static final ItemType ORANGE_CONCRETE_POWDER = init(); + @Nullable + public static final ItemType ORANGE_DYE = init(); + @Nullable + public static final ItemType ORANGE_GLAZED_TERRACOTTA = init(); + @Nullable + public static final ItemType ORANGE_SHULKER_BOX = init(); + @Nullable + public static final ItemType ORANGE_STAINED_GLASS = init(); + @Nullable + public static final ItemType ORANGE_STAINED_GLASS_PANE = init(); + @Nullable + public static final ItemType ORANGE_TERRACOTTA = init(); + @Nullable + public static final ItemType ORANGE_TULIP = init(); + @Nullable + public static final ItemType ORANGE_WOOL = init(); + @Nullable + public static final ItemType OXEYE_DAISY = init(); + @Nullable + public static final ItemType OXIDIZED_COPPER = init(); + @Nullable + public static final ItemType OXIDIZED_CUT_COPPER = init(); + @Nullable + public static final ItemType OXIDIZED_CUT_COPPER_SLAB = init(); + @Nullable + public static final ItemType OXIDIZED_CUT_COPPER_STAIRS = init(); + @Nullable + public static final ItemType PACKED_ICE = init(); + @Nullable + public static final ItemType PAINTING = init(); + @Nullable + public static final ItemType PANDA_SPAWN_EGG = init(); + @Nullable + public static final ItemType PAPER = init(); + @Nullable + public static final ItemType PARROT_SPAWN_EGG = init(); + @Nullable + public static final ItemType PEONY = init(); + @Nullable + public static final ItemType PETRIFIED_OAK_SLAB = init(); + @Nullable + public static final ItemType PHANTOM_MEMBRANE = init(); + @Nullable + public static final ItemType PHANTOM_SPAWN_EGG = init(); + @Nullable + public static final ItemType PIG_SPAWN_EGG = init(); + @Nullable + public static final ItemType PIGLIN_BANNER_PATTERN = init(); + @Nullable + public static final ItemType PIGLIN_SPAWN_EGG = init(); + @Nullable + public static final ItemType PILLAGER_SPAWN_EGG = init(); + @Nullable + public static final ItemType PINK_BANNER = init(); + @Nullable + public static final ItemType PINK_BED = init(); + @Nullable + public static final ItemType PINK_CANDLE = init(); + @Nullable + public static final ItemType PINK_CARPET = init(); + @Nullable + public static final ItemType PINK_CONCRETE = init(); + @Nullable + public static final ItemType PINK_CONCRETE_POWDER = init(); + @Nullable + public static final ItemType PINK_DYE = init(); + @Nullable + public static final ItemType PINK_GLAZED_TERRACOTTA = init(); + @Nullable + public static final ItemType PINK_SHULKER_BOX = init(); + @Nullable + public static final ItemType PINK_STAINED_GLASS = init(); + @Nullable + public static final ItemType PINK_STAINED_GLASS_PANE = init(); + @Nullable + public static final ItemType PINK_TERRACOTTA = init(); + @Nullable + public static final ItemType PINK_TULIP = init(); + @Nullable + public static final ItemType PINK_WOOL = init(); + @Nullable + public static final ItemType PISTON = init(); + @Nullable + public static final ItemType PLAYER_HEAD = init(); + @Nullable + public static final ItemType PODZOL = init(); + @Nullable + public static final ItemType POINTED_DRIPSTONE = init(); + @Nullable + public static final ItemType POISONOUS_POTATO = init(); + @Nullable + public static final ItemType POLAR_BEAR_SPAWN_EGG = init(); + @Nullable + public static final ItemType POLISHED_ANDESITE = init(); + @Nullable + public static final ItemType POLISHED_ANDESITE_SLAB = init(); + @Nullable + public static final ItemType POLISHED_ANDESITE_STAIRS = init(); + @Nullable + public static final ItemType POLISHED_BASALT = init(); + @Nullable + public static final ItemType POLISHED_BLACKSTONE = init(); + @Nullable + public static final ItemType POLISHED_BLACKSTONE_BRICK_SLAB = init(); + @Nullable + public static final ItemType POLISHED_BLACKSTONE_BRICK_STAIRS = init(); + @Nullable + public static final ItemType POLISHED_BLACKSTONE_BRICK_WALL = init(); + @Nullable + public static final ItemType POLISHED_BLACKSTONE_BRICKS = init(); + @Nullable + public static final ItemType POLISHED_BLACKSTONE_BUTTON = init(); + @Nullable + public static final ItemType POLISHED_BLACKSTONE_PRESSURE_PLATE = init(); + @Nullable + public static final ItemType POLISHED_BLACKSTONE_SLAB = init(); + @Nullable + public static final ItemType POLISHED_BLACKSTONE_STAIRS = init(); + @Nullable + public static final ItemType POLISHED_BLACKSTONE_WALL = init(); + @Nullable + public static final ItemType POLISHED_DEEPSLATE = init(); + @Nullable + public static final ItemType POLISHED_DEEPSLATE_SLAB = init(); + @Nullable + public static final ItemType POLISHED_DEEPSLATE_STAIRS = init(); + @Nullable + public static final ItemType POLISHED_DEEPSLATE_WALL = init(); + @Nullable + public static final ItemType POLISHED_DIORITE = init(); + @Nullable + public static final ItemType POLISHED_DIORITE_SLAB = init(); + @Nullable + public static final ItemType POLISHED_DIORITE_STAIRS = init(); + @Nullable + public static final ItemType POLISHED_GRANITE = init(); + @Nullable + public static final ItemType POLISHED_GRANITE_SLAB = init(); + @Nullable + public static final ItemType POLISHED_GRANITE_STAIRS = init(); + @Nullable + public static final ItemType POPPED_CHORUS_FRUIT = init(); + @Nullable + public static final ItemType POPPY = init(); + @Nullable + public static final ItemType PORKCHOP = init(); + @Nullable + public static final ItemType POTATO = init(); + @Nullable + public static final ItemType POTION = init(); + @Nullable + public static final ItemType POWDER_SNOW_BUCKET = init(); + @Nullable + public static final ItemType POWERED_RAIL = init(); + @Nullable + public static final ItemType PRISMARINE = init(); + @Nullable + public static final ItemType PRISMARINE_BRICK_SLAB = init(); + @Nullable + public static final ItemType PRISMARINE_BRICK_STAIRS = init(); + @Nullable + public static final ItemType PRISMARINE_BRICKS = init(); + @Nullable + public static final ItemType PRISMARINE_CRYSTALS = init(); + @Nullable + public static final ItemType PRISMARINE_SHARD = init(); + @Nullable + public static final ItemType PRISMARINE_SLAB = init(); + @Nullable + public static final ItemType PRISMARINE_STAIRS = init(); + @Nullable + public static final ItemType PRISMARINE_WALL = init(); + @Nullable + public static final ItemType PUFFERFISH = init(); + @Nullable + public static final ItemType PUFFERFISH_BUCKET = init(); + @Nullable + public static final ItemType PUFFERFISH_SPAWN_EGG = init(); + @Nullable + public static final ItemType PUMPKIN = init(); + @Nullable + public static final ItemType PUMPKIN_PIE = init(); + @Nullable + public static final ItemType PUMPKIN_SEEDS = init(); + @Nullable + public static final ItemType PURPLE_BANNER = init(); + @Nullable + public static final ItemType PURPLE_BED = init(); + @Nullable + public static final ItemType PURPLE_CANDLE = init(); + @Nullable + public static final ItemType PURPLE_CARPET = init(); + @Nullable + public static final ItemType PURPLE_CONCRETE = init(); + @Nullable + public static final ItemType PURPLE_CONCRETE_POWDER = init(); + @Nullable + public static final ItemType PURPLE_DYE = init(); + @Nullable + public static final ItemType PURPLE_GLAZED_TERRACOTTA = init(); + @Nullable + public static final ItemType PURPLE_SHULKER_BOX = init(); + @Nullable + public static final ItemType PURPLE_STAINED_GLASS = init(); + @Nullable + public static final ItemType PURPLE_STAINED_GLASS_PANE = init(); + @Nullable + public static final ItemType PURPLE_TERRACOTTA = init(); + @Nullable + public static final ItemType PURPLE_WOOL = init(); + @Nullable + public static final ItemType PURPUR_BLOCK = init(); + @Nullable + public static final ItemType PURPUR_PILLAR = init(); + @Nullable + public static final ItemType PURPUR_SLAB = init(); + @Nullable + public static final ItemType PURPUR_STAIRS = init(); + @Nullable + public static final ItemType QUARTZ = init(); + @Nullable + public static final ItemType QUARTZ_BLOCK = init(); + @Nullable + public static final ItemType QUARTZ_BRICKS = init(); + @Nullable + public static final ItemType QUARTZ_PILLAR = init(); + @Nullable + public static final ItemType QUARTZ_SLAB = init(); + @Nullable + public static final ItemType QUARTZ_STAIRS = init(); + @Nullable + public static final ItemType RABBIT = init(); + @Nullable + public static final ItemType RABBIT_FOOT = init(); + @Nullable + public static final ItemType RABBIT_HIDE = init(); + @Nullable + public static final ItemType RABBIT_SPAWN_EGG = init(); + @Nullable + public static final ItemType RABBIT_STEW = init(); + @Nullable + public static final ItemType RAIL = init(); + @Nullable + public static final ItemType RAVAGER_SPAWN_EGG = init(); + @Nullable + public static final ItemType RAW_COPPER = init(); + @Nullable + public static final ItemType RAW_COPPER_BLOCK = init(); + @Nullable + public static final ItemType RAW_GOLD = init(); + @Nullable + public static final ItemType RAW_GOLD_BLOCK = init(); + @Nullable + public static final ItemType RAW_IRON = init(); + @Nullable + public static final ItemType RAW_IRON_BLOCK = init(); + @Nullable + public static final ItemType RED_BANNER = init(); + @Nullable + public static final ItemType RED_BED = init(); + @Nullable + public static final ItemType RED_CANDLE = init(); + @Nullable + public static final ItemType RED_CARPET = init(); + @Nullable + public static final ItemType RED_CONCRETE = init(); + @Nullable + public static final ItemType RED_CONCRETE_POWDER = init(); + @Nullable + public static final ItemType RED_DYE = init(); + @Nullable + public static final ItemType RED_GLAZED_TERRACOTTA = init(); + @Nullable + public static final ItemType RED_MUSHROOM = init(); + @Nullable + public static final ItemType RED_MUSHROOM_BLOCK = init(); + @Nullable + public static final ItemType RED_NETHER_BRICK_SLAB = init(); + @Nullable + public static final ItemType RED_NETHER_BRICK_STAIRS = init(); + @Nullable + public static final ItemType RED_NETHER_BRICK_WALL = init(); + @Nullable + public static final ItemType RED_NETHER_BRICKS = init(); + @Nullable + public static final ItemType RED_SAND = init(); + @Nullable + public static final ItemType RED_SANDSTONE = init(); + @Nullable + public static final ItemType RED_SANDSTONE_SLAB = init(); + @Nullable + public static final ItemType RED_SANDSTONE_STAIRS = init(); + @Nullable + public static final ItemType RED_SANDSTONE_WALL = init(); + @Nullable + public static final ItemType RED_SHULKER_BOX = init(); + @Nullable + public static final ItemType RED_STAINED_GLASS = init(); + @Nullable + public static final ItemType RED_STAINED_GLASS_PANE = init(); + @Nullable + public static final ItemType RED_TERRACOTTA = init(); + @Nullable + public static final ItemType RED_TULIP = init(); + @Nullable + public static final ItemType RED_WOOL = init(); + @Nullable + public static final ItemType REDSTONE = init(); + @Nullable + public static final ItemType REDSTONE_BLOCK = init(); + @Nullable + public static final ItemType REDSTONE_LAMP = init(); + @Nullable + public static final ItemType REDSTONE_ORE = init(); + @Nullable + public static final ItemType REDSTONE_TORCH = init(); + @Nullable + public static final ItemType REPEATER = init(); + @Nullable + public static final ItemType REPEATING_COMMAND_BLOCK = init(); + @Nullable + public static final ItemType RESPAWN_ANCHOR = init(); + @Nullable + public static final ItemType ROOTED_DIRT = init(); + @Nullable + public static final ItemType ROSE_BUSH = init(); + @Deprecated + @Nullable + public static final ItemType ROSE_RED = init(); + @Nullable + public static final ItemType ROTTEN_FLESH = init(); + @Nullable + public static final ItemType SADDLE = init(); + @Nullable + public static final ItemType SALMON = init(); + @Nullable + public static final ItemType SALMON_BUCKET = init(); + @Nullable + public static final ItemType SALMON_SPAWN_EGG = init(); + @Nullable + public static final ItemType SAND = init(); + @Nullable + public static final ItemType SANDSTONE = init(); + @Nullable + public static final ItemType SANDSTONE_SLAB = init(); + @Nullable + public static final ItemType SANDSTONE_STAIRS = init(); + @Nullable + public static final ItemType SANDSTONE_WALL = init(); + @Nullable + public static final ItemType SCAFFOLDING = init(); + @Nullable + public static final ItemType SCULK_SENSOR = init(); + @Nullable + public static final ItemType SCUTE = init(); + @Nullable + public static final ItemType SEA_LANTERN = init(); + @Nullable + public static final ItemType SEA_PICKLE = init(); + @Nullable + public static final ItemType SEAGRASS = init(); + @Nullable + public static final ItemType SHEARS = init(); + @Nullable + public static final ItemType SHEEP_SPAWN_EGG = init(); + @Nullable + public static final ItemType SHIELD = init(); + @Nullable + public static final ItemType SHROOMLIGHT = init(); + @Nullable + public static final ItemType SHULKER_BOX = init(); + @Nullable + public static final ItemType SHULKER_SHELL = init(); + @Nullable + public static final ItemType SHULKER_SPAWN_EGG = init(); + @Deprecated + @Nullable + public static final ItemType SIGN = init(); + @Nullable + public static final ItemType SILVERFISH_SPAWN_EGG = init(); + @Nullable + public static final ItemType SKELETON_HORSE_SPAWN_EGG = init(); + @Nullable + public static final ItemType SKELETON_SKULL = init(); + @Nullable + public static final ItemType SKELETON_SPAWN_EGG = init(); + @Nullable + public static final ItemType SKULL_BANNER_PATTERN = init(); + @Nullable + public static final ItemType SLIME_BALL = init(); + @Nullable + public static final ItemType SLIME_BLOCK = init(); + @Nullable + public static final ItemType SLIME_SPAWN_EGG = init(); + @Nullable + public static final ItemType SMALL_AMETHYST_BUD = init(); + @Nullable + public static final ItemType SMALL_DRIPLEAF = init(); + @Nullable + public static final ItemType SMITHING_TABLE = init(); + @Nullable + public static final ItemType SMOKER = init(); + @Nullable + public static final ItemType SMOOTH_BASALT = init(); + @Nullable + public static final ItemType SMOOTH_QUARTZ = init(); + @Nullable + public static final ItemType SMOOTH_QUARTZ_SLAB = init(); + @Nullable + public static final ItemType SMOOTH_QUARTZ_STAIRS = init(); + @Nullable + public static final ItemType SMOOTH_RED_SANDSTONE = init(); + @Nullable + public static final ItemType SMOOTH_RED_SANDSTONE_SLAB = init(); + @Nullable + public static final ItemType SMOOTH_RED_SANDSTONE_STAIRS = init(); + @Nullable + public static final ItemType SMOOTH_SANDSTONE = init(); + @Nullable + public static final ItemType SMOOTH_SANDSTONE_SLAB = init(); + @Nullable + public static final ItemType SMOOTH_SANDSTONE_STAIRS = init(); + @Nullable + public static final ItemType SMOOTH_STONE = init(); + @Nullable + public static final ItemType SMOOTH_STONE_SLAB = init(); + @Nullable + public static final ItemType SNOW = init(); + @Nullable + public static final ItemType SNOW_BLOCK = init(); + @Nullable + public static final ItemType SNOWBALL = init(); + @Nullable + public static final ItemType SOUL_CAMPFIRE = init(); + @Nullable + public static final ItemType SOUL_LANTERN = init(); + @Nullable + public static final ItemType SOUL_SAND = init(); + @Nullable + public static final ItemType SOUL_SOIL = init(); + @Nullable + public static final ItemType SOUL_TORCH = init(); + @Nullable + public static final ItemType SPAWNER = init(); + @Nullable + public static final ItemType SPECTRAL_ARROW = init(); + @Nullable + public static final ItemType SPIDER_EYE = init(); + @Nullable + public static final ItemType SPIDER_SPAWN_EGG = init(); + @Nullable + public static final ItemType SPLASH_POTION = init(); + @Nullable + public static final ItemType SPONGE = init(); + @Nullable + public static final ItemType SPORE_BLOSSOM = init(); + @Nullable + public static final ItemType SPRUCE_BOAT = init(); + @Nullable + public static final ItemType SPRUCE_BUTTON = init(); + @Nullable + public static final ItemType SPRUCE_DOOR = init(); + @Nullable + public static final ItemType SPRUCE_FENCE = init(); + @Nullable + public static final ItemType SPRUCE_FENCE_GATE = init(); + @Nullable + public static final ItemType SPRUCE_LEAVES = init(); + @Nullable + public static final ItemType SPRUCE_LOG = init(); + @Nullable + public static final ItemType SPRUCE_PLANKS = init(); + @Nullable + public static final ItemType SPRUCE_PRESSURE_PLATE = init(); + @Nullable + public static final ItemType SPRUCE_SAPLING = init(); + @Nullable + public static final ItemType SPRUCE_SIGN = init(); + @Nullable + public static final ItemType SPRUCE_SLAB = init(); + @Nullable + public static final ItemType SPRUCE_STAIRS = init(); + @Nullable + public static final ItemType SPRUCE_TRAPDOOR = init(); + @Nullable + public static final ItemType SPRUCE_WOOD = init(); + @Nullable + public static final ItemType SPYGLASS = init(); + @Nullable + public static final ItemType SQUID_SPAWN_EGG = init(); + @Nullable + public static final ItemType STICK = init(); + @Nullable + public static final ItemType STICKY_PISTON = init(); + @Nullable + public static final ItemType STONE = init(); + @Nullable + public static final ItemType STONE_AXE = init(); + @Nullable + public static final ItemType STONE_BRICK_SLAB = init(); + @Nullable + public static final ItemType STONE_BRICK_STAIRS = init(); + @Nullable + public static final ItemType STONE_BRICK_WALL = init(); + @Nullable + public static final ItemType STONE_BRICKS = init(); + @Nullable + public static final ItemType STONE_BUTTON = init(); + @Nullable + public static final ItemType STONE_HOE = init(); + @Nullable + public static final ItemType STONE_PICKAXE = init(); + @Nullable + public static final ItemType STONE_PRESSURE_PLATE = init(); + @Nullable + public static final ItemType STONE_SHOVEL = init(); + @Nullable + public static final ItemType STONE_SLAB = init(); + @Nullable + public static final ItemType STONE_STAIRS = init(); + @Nullable + public static final ItemType STONE_SWORD = init(); + @Nullable + public static final ItemType STONECUTTER = init(); + @Nullable + public static final ItemType STRAY_SPAWN_EGG = init(); + @Nullable + public static final ItemType STRIDER_SPAWN_EGG = init(); + @Nullable + public static final ItemType STRING = init(); + @Nullable + public static final ItemType STRIPPED_ACACIA_LOG = init(); + @Nullable + public static final ItemType STRIPPED_ACACIA_WOOD = init(); + @Nullable + public static final ItemType STRIPPED_BIRCH_LOG = init(); + @Nullable + public static final ItemType STRIPPED_BIRCH_WOOD = init(); + @Nullable + public static final ItemType STRIPPED_CRIMSON_HYPHAE = init(); + @Nullable + public static final ItemType STRIPPED_CRIMSON_STEM = init(); + @Nullable + public static final ItemType STRIPPED_DARK_OAK_LOG = init(); + @Nullable + public static final ItemType STRIPPED_DARK_OAK_WOOD = init(); + @Nullable + public static final ItemType STRIPPED_JUNGLE_LOG = init(); + @Nullable + public static final ItemType STRIPPED_JUNGLE_WOOD = init(); + @Nullable + public static final ItemType STRIPPED_OAK_LOG = init(); + @Nullable + public static final ItemType STRIPPED_OAK_WOOD = init(); + @Nullable + public static final ItemType STRIPPED_SPRUCE_LOG = init(); + @Nullable + public static final ItemType STRIPPED_SPRUCE_WOOD = init(); + @Nullable + public static final ItemType STRIPPED_WARPED_HYPHAE = init(); + @Nullable + public static final ItemType STRIPPED_WARPED_STEM = init(); + @Nullable + public static final ItemType STRUCTURE_BLOCK = init(); + @Nullable + public static final ItemType STRUCTURE_VOID = init(); + @Nullable + public static final ItemType SUGAR = init(); + @Nullable + public static final ItemType SUGAR_CANE = init(); + @Nullable + public static final ItemType SUNFLOWER = init(); + @Nullable + public static final ItemType SUSPICIOUS_STEW = init(); + @Nullable + public static final ItemType SWEET_BERRIES = init(); + @Nullable + public static final ItemType TALL_GRASS = init(); + @Nullable + public static final ItemType TARGET = init(); + @Nullable + public static final ItemType TERRACOTTA = init(); + @Nullable + public static final ItemType TINTED_GLASS = init(); + @Nullable + public static final ItemType TIPPED_ARROW = init(); + @Nullable + public static final ItemType TNT = init(); + @Nullable + public static final ItemType TNT_MINECART = init(); + @Nullable + public static final ItemType TORCH = init(); + @Nullable + public static final ItemType TOTEM_OF_UNDYING = init(); + @Nullable + public static final ItemType TRADER_LLAMA_SPAWN_EGG = init(); + @Nullable + public static final ItemType TRAPPED_CHEST = init(); + @Nullable + public static final ItemType TRIDENT = init(); + @Nullable + public static final ItemType TRIPWIRE_HOOK = init(); + @Nullable + public static final ItemType TROPICAL_FISH = init(); + @Nullable + public static final ItemType TROPICAL_FISH_BUCKET = init(); + @Nullable + public static final ItemType TROPICAL_FISH_SPAWN_EGG = init(); + @Nullable + public static final ItemType TUBE_CORAL = init(); + @Nullable + public static final ItemType TUBE_CORAL_BLOCK = init(); + @Nullable + public static final ItemType TUBE_CORAL_FAN = init(); + @Nullable + public static final ItemType TUFF = init(); + @Nullable + public static final ItemType TURTLE_EGG = init(); + @Nullable + public static final ItemType TURTLE_HELMET = init(); + @Nullable + public static final ItemType TURTLE_SPAWN_EGG = init(); + @Nullable + public static final ItemType TWISTING_VINES = init(); + @Nullable + public static final ItemType VEX_SPAWN_EGG = init(); + @Nullable + public static final ItemType VILLAGER_SPAWN_EGG = init(); + @Nullable + public static final ItemType VINDICATOR_SPAWN_EGG = init(); + @Nullable + public static final ItemType VINE = init(); + @Nullable + public static final ItemType WANDERING_TRADER_SPAWN_EGG = init(); + @Nullable + public static final ItemType WARPED_BUTTON = init(); + @Nullable + public static final ItemType WARPED_DOOR = init(); + @Nullable + public static final ItemType WARPED_FENCE = init(); + @Nullable + public static final ItemType WARPED_FENCE_GATE = init(); + @Nullable + public static final ItemType WARPED_FUNGUS = init(); + @Nullable + public static final ItemType WARPED_FUNGUS_ON_A_STICK = init(); + @Nullable + public static final ItemType WARPED_HYPHAE = init(); + @Nullable + public static final ItemType WARPED_NYLIUM = init(); + @Nullable + public static final ItemType WARPED_PLANKS = init(); + @Nullable + public static final ItemType WARPED_PRESSURE_PLATE = init(); + @Nullable + public static final ItemType WARPED_ROOTS = init(); + @Nullable + public static final ItemType WARPED_SIGN = init(); + @Nullable + public static final ItemType WARPED_SLAB = init(); + @Nullable + public static final ItemType WARPED_STAIRS = init(); + @Nullable + public static final ItemType WARPED_STEM = init(); + @Nullable + public static final ItemType WARPED_TRAPDOOR = init(); + @Nullable + public static final ItemType WARPED_WART_BLOCK = init(); + @Nullable + public static final ItemType WATER_BUCKET = init(); + @Nullable + public static final ItemType WAXED_COPPER_BLOCK = init(); + @Nullable + public static final ItemType WAXED_CUT_COPPER = init(); + @Nullable + public static final ItemType WAXED_CUT_COPPER_SLAB = init(); + @Nullable + public static final ItemType WAXED_CUT_COPPER_STAIRS = init(); + @Nullable + public static final ItemType WAXED_EXPOSED_COPPER = init(); + @Nullable + public static final ItemType WAXED_EXPOSED_CUT_COPPER = init(); + @Nullable + public static final ItemType WAXED_EXPOSED_CUT_COPPER_SLAB = init(); + @Nullable + public static final ItemType WAXED_EXPOSED_CUT_COPPER_STAIRS = init(); + @Nullable + public static final ItemType WAXED_OXIDIZED_COPPER = init(); + @Nullable + public static final ItemType WAXED_OXIDIZED_CUT_COPPER = init(); + @Nullable + public static final ItemType WAXED_OXIDIZED_CUT_COPPER_SLAB = init(); + @Nullable + public static final ItemType WAXED_OXIDIZED_CUT_COPPER_STAIRS = init(); + @Nullable + public static final ItemType WAXED_WEATHERED_COPPER = init(); + @Nullable + public static final ItemType WAXED_WEATHERED_CUT_COPPER = init(); + @Nullable + public static final ItemType WAXED_WEATHERED_CUT_COPPER_SLAB = init(); + @Nullable + public static final ItemType WAXED_WEATHERED_CUT_COPPER_STAIRS = init(); + @Nullable + public static final ItemType WEATHERED_COPPER = init(); + @Nullable + public static final ItemType WEATHERED_CUT_COPPER = init(); + @Nullable + public static final ItemType WEATHERED_CUT_COPPER_SLAB = init(); + @Nullable + public static final ItemType WEATHERED_CUT_COPPER_STAIRS = init(); + @Nullable + public static final ItemType WEEPING_VINES = init(); + @Nullable + public static final ItemType WET_SPONGE = init(); + @Nullable + public static final ItemType WHEAT = init(); + @Nullable + public static final ItemType WHEAT_SEEDS = init(); + @Nullable + public static final ItemType WHITE_BANNER = init(); + @Nullable + public static final ItemType WHITE_BED = init(); + @Nullable + public static final ItemType WHITE_CANDLE = init(); + @Nullable + public static final ItemType WHITE_CARPET = init(); + @Nullable + public static final ItemType WHITE_CONCRETE = init(); + @Nullable + public static final ItemType WHITE_CONCRETE_POWDER = init(); + @Nullable + public static final ItemType WHITE_DYE = init(); + @Nullable + public static final ItemType WHITE_GLAZED_TERRACOTTA = init(); + @Nullable + public static final ItemType WHITE_SHULKER_BOX = init(); + @Nullable + public static final ItemType WHITE_STAINED_GLASS = init(); + @Nullable + public static final ItemType WHITE_STAINED_GLASS_PANE = init(); + @Nullable + public static final ItemType WHITE_TERRACOTTA = init(); + @Nullable + public static final ItemType WHITE_TULIP = init(); + @Nullable + public static final ItemType WHITE_WOOL = init(); + @Nullable + public static final ItemType WITCH_SPAWN_EGG = init(); + @Nullable + public static final ItemType WITHER_ROSE = init(); + @Nullable + public static final ItemType WITHER_SKELETON_SKULL = init(); + @Nullable + public static final ItemType WITHER_SKELETON_SPAWN_EGG = init(); + @Nullable + public static final ItemType WOLF_SPAWN_EGG = init(); + @Nullable + public static final ItemType WOODEN_AXE = init(); + @Nullable + public static final ItemType WOODEN_HOE = init(); + @Nullable + public static final ItemType WOODEN_PICKAXE = init(); + @Nullable + public static final ItemType WOODEN_SHOVEL = init(); + @Nullable + public static final ItemType WOODEN_SWORD = init(); + @Nullable + public static final ItemType WRITABLE_BOOK = init(); + @Nullable + public static final ItemType WRITTEN_BOOK = init(); + @Nullable + public static final ItemType YELLOW_BANNER = init(); + @Nullable + public static final ItemType YELLOW_BED = init(); + @Nullable + public static final ItemType YELLOW_CANDLE = init(); + @Nullable + public static final ItemType YELLOW_CARPET = init(); + @Nullable + public static final ItemType YELLOW_CONCRETE = init(); + @Nullable + public static final ItemType YELLOW_CONCRETE_POWDER = init(); + @Nullable + public static final ItemType YELLOW_DYE = init(); + @Nullable + public static final ItemType YELLOW_GLAZED_TERRACOTTA = init(); + @Nullable + public static final ItemType YELLOW_SHULKER_BOX = init(); + @Nullable + public static final ItemType YELLOW_STAINED_GLASS = init(); + @Nullable + public static final ItemType YELLOW_STAINED_GLASS_PANE = init(); + @Nullable + public static final ItemType YELLOW_TERRACOTTA = init(); + @Nullable + public static final ItemType YELLOW_WOOL = init(); + @Nullable + public static final ItemType ZOGLIN_SPAWN_EGG = init(); + @Nullable + public static final ItemType ZOMBIE_HEAD = init(); + @Nullable + public static final ItemType ZOMBIE_HORSE_SPAWN_EGG = init(); + @Deprecated + @Nullable + public static final ItemType ZOMBIE_PIGMAN_SPAWN_EGG = init(); + @Nullable + public static final ItemType ZOMBIE_SPAWN_EGG = init(); + @Nullable + public static final ItemType ZOMBIE_VILLAGER_SPAWN_EGG = init(); + @Nullable + public static final ItemType ZOMBIFIED_PIGLIN_SPAWN_EGG = init(); private ItemTypes() { } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/BiomeRegistry.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/BiomeRegistry.java index 3e18c4777..ed43f9a35 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/BiomeRegistry.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/BiomeRegistry.java @@ -44,7 +44,7 @@ public interface BiomeRegistry { * @param biome the biome * @return a data object or null if information is not known * @deprecated This method no longer returns any useful information. - * Use {@link #getRichName(BiomeType)} for the name of the biome. + * Use {@link #getRichName(BiomeType)} for the name of the biome. */ @Deprecated @Nullable diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/BlockMaterial.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/BlockMaterial.java index ab817b98f..c8baea757 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/BlockMaterial.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/BlockMaterial.java @@ -20,6 +20,7 @@ package com.sk89q.worldedit.world.registry; import com.sk89q.jnbt.CompoundTag; + import javax.annotation.Nullable; /** @@ -163,8 +164,10 @@ public interface BlockMaterial { boolean hasContainer(); //FAWE start + /** * Get the opacity of the block. + * * @return opacity */ int getLightOpacity(); @@ -186,6 +189,7 @@ public interface BlockMaterial { /** * Get the map color. + * * @return or 0 */ int getMapColor(); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/BlockRegistry.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/BlockRegistry.java index 26ebf619d..e5a53c5a6 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/BlockRegistry.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/BlockRegistry.java @@ -89,6 +89,7 @@ public interface BlockRegistry { OptionalInt getInternalBlockStateId(BlockState state); //FAWE start + /** * Register all blocks. */ diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/BundledBlockData.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/BundledBlockData.java index 3bf4633b1..0aafc8a2f 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/BundledBlockData.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/BundledBlockData.java @@ -34,13 +34,13 @@ import com.sk89q.worldedit.util.gson.VectorAdapter; import com.sk89q.worldedit.util.io.ResourceLoader; import org.apache.logging.log4j.Logger; +import javax.annotation.Nullable; import java.io.IOException; import java.net.URL; import java.nio.charset.Charset; import java.util.HashMap; import java.util.List; import java.util.Map; -import javax.annotation.Nullable; /** * Provides block data based on the built-in block database that is bundled @@ -65,7 +65,11 @@ public final class BundledBlockData { * Create a new instance. */ private BundledBlockData() { - this.resourceLoader = WorldEdit.getInstance().getPlatformManager().queryCapability(Capability.CONFIGURATION).getResourceLoader(); + this.resourceLoader = WorldEdit + .getInstance() + .getPlatformManager() + .queryCapability(Capability.CONFIGURATION) + .getResourceLoader(); try { loadFromResource(); @@ -97,7 +101,11 @@ public final class BundledBlockData { //FAWE end Gson gson = gsonBuilder.create(); URL url = null; - final int dataVersion = WorldEdit.getInstance().getPlatformManager().queryCapability(Capability.WORLD_EDITING).getDataVersion(); + final int dataVersion = WorldEdit + .getInstance() + .getPlatformManager() + .queryCapability(Capability.WORLD_EDITING) + .getDataVersion(); if (dataVersion >= Constants.DATA_VERSION_MC_1_17) { url = resourceLoader.getResource(BundledBlockData.class, "blocks.117.json"); } else if (dataVersion >= Constants.DATA_VERSION_MC_1_16) { @@ -113,7 +121,8 @@ public final class BundledBlockData { } LOGGER.debug("Using {} for bundled block data.", url); String data = Resources.toString(url, Charset.defaultCharset()); - List entries = gson.fromJson(data, new TypeToken>() {}.getType()); + List entries = gson.fromJson(data, new TypeToken>() { + }.getType()); for (BlockEntry entry : entries) { idMap.put(entry.id, entry); @@ -164,6 +173,7 @@ public final class BundledBlockData { } public static class BlockEntry { + //FAWE start - made public public String id; public String localizedName; diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/BundledBlockRegistry.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/BundledBlockRegistry.java index 2e497c765..a5cc22750 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/BundledBlockRegistry.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/BundledBlockRegistry.java @@ -49,7 +49,7 @@ public class BundledBlockRegistry implements BlockRegistry { return TextComponent.of(blockEntry.localizedName); } return Caption.of( - TranslationManager.makeTranslationKey("block", blockType.getId()) + TranslationManager.makeTranslationKey("block", blockType.getId()) ); } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/BundledItemData.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/BundledItemData.java index 5d169570b..5dd16d74a 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/BundledItemData.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/BundledItemData.java @@ -32,13 +32,13 @@ import com.sk89q.worldedit.util.gson.VectorAdapter; import com.sk89q.worldedit.util.io.ResourceLoader; import org.apache.logging.log4j.Logger; +import javax.annotation.Nullable; import java.io.IOException; import java.net.URL; import java.nio.charset.Charset; import java.util.HashMap; import java.util.List; import java.util.Map; -import javax.annotation.Nullable; /** * Provides item data based on the built-in item database that is bundled @@ -63,7 +63,11 @@ public final class BundledItemData { * Create a new instance. */ private BundledItemData() { - this.resourceLoader = WorldEdit.getInstance().getPlatformManager().queryCapability(Capability.CONFIGURATION).getResourceLoader(); + this.resourceLoader = WorldEdit + .getInstance() + .getPlatformManager() + .queryCapability(Capability.CONFIGURATION) + .getResourceLoader(); try { loadFromResource(); @@ -82,7 +86,11 @@ public final class BundledItemData { gsonBuilder.registerTypeAdapter(Vector3.class, new VectorAdapter()); Gson gson = gsonBuilder.create(); URL url = null; - final int dataVersion = WorldEdit.getInstance().getPlatformManager().queryCapability(Capability.WORLD_EDITING).getDataVersion(); + final int dataVersion = WorldEdit + .getInstance() + .getPlatformManager() + .queryCapability(Capability.WORLD_EDITING) + .getDataVersion(); if (dataVersion >= Constants.DATA_VERSION_MC_1_17) { url = resourceLoader.getResource(BundledBlockData.class, "items.117.json"); } else if (dataVersion >= Constants.DATA_VERSION_MC_1_16) { @@ -98,7 +106,8 @@ public final class BundledItemData { } LOGGER.debug("Using {} for bundled item data.", url); String data = Resources.toString(url, Charset.defaultCharset()); - List entries = gson.fromJson(data, new TypeToken>() {}.getType()); + List entries = gson.fromJson(data, new TypeToken>() { + }.getType()); for (ItemEntry entry : entries) { idMap.put(entry.id, entry); @@ -150,11 +159,13 @@ public final class BundledItemData { } public static class ItemEntry { + private String id; private String unlocalizedName; public String localizedName; private int maxDamage; private int maxStackSize; + } } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/BundledItemRegistry.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/BundledItemRegistry.java index 11eef7a70..2e1d42121 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/BundledItemRegistry.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/BundledItemRegistry.java @@ -48,7 +48,7 @@ public class BundledItemRegistry implements ItemRegistry { return TextComponent.of(itemEntry.localizedName); } return Caption.of( - TranslationManager.makeTranslationKey("item", itemType.getId()) + TranslationManager.makeTranslationKey("item", itemType.getId()) ); } @@ -76,4 +76,5 @@ public class BundledItemRegistry implements ItemRegistry { public ItemMaterial getMaterial(ItemType itemType) { return new PassthroughItemMaterial(BundledItemData.getInstance().getMaterialById(itemType.getId())); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/CategoryRegistry.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/CategoryRegistry.java index 99ddb106a..c52c507b9 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/CategoryRegistry.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/CategoryRegistry.java @@ -40,4 +40,5 @@ public interface CategoryRegistry { default Set getAll(final Category category) { return getCategorisedByName(category.getId()); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/EntityRegistry.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/EntityRegistry.java index 205a9df7c..51e40f935 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/EntityRegistry.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/EntityRegistry.java @@ -20,11 +20,7 @@ package com.sk89q.worldedit.world.registry; import com.sk89q.worldedit.entity.BaseEntity; -import com.sk89q.worldedit.world.entity.EntityType; -import com.sk89q.worldedit.world.entity.EntityTypes; -import java.util.Collection; -import java.util.Collections; import javax.annotation.Nullable; /** diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/ItemMaterial.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/ItemMaterial.java index f806c91e9..19fe653fc 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/ItemMaterial.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/ItemMaterial.java @@ -20,6 +20,7 @@ package com.sk89q.worldedit.world.registry; public interface ItemMaterial { + /** * Gets the the maximum quantity of this item that can be in a single stack. * @@ -33,4 +34,5 @@ public interface ItemMaterial { * @return the maximum damage, or 0 if not applicable */ int getMaxDamage(); + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/ItemRegistry.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/ItemRegistry.java index 483166f9c..1fbc28152 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/ItemRegistry.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/ItemRegistry.java @@ -70,6 +70,7 @@ public interface ItemRegistry { ItemMaterial getMaterial(ItemType itemType); //FAWE start + /** * Register all items. */ diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/LegacyMapper.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/LegacyMapper.java index ca25ba29e..711d0d090 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/LegacyMapper.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/LegacyMapper.java @@ -19,6 +19,7 @@ package com.sk89q.worldedit.world.registry; +import com.fastasyncworldedit.core.registry.state.PropertyKey; import com.google.common.collect.BiMap; import com.google.common.collect.HashBiMap; import com.google.common.collect.HashMultimap; @@ -35,7 +36,6 @@ import com.sk89q.worldedit.extension.platform.Capability; import com.sk89q.worldedit.internal.Constants; import com.sk89q.worldedit.internal.util.LogManagerCompat; import com.sk89q.worldedit.math.Vector3; -import com.fastasyncworldedit.core.registry.state.PropertyKey; import com.sk89q.worldedit.util.gson.VectorAdapter; import com.sk89q.worldedit.util.io.ResourceLoader; import com.sk89q.worldedit.world.DataFixer; @@ -47,12 +47,12 @@ import com.sk89q.worldedit.world.item.ItemTypes; import it.unimi.dsi.fastutil.ints.Int2ObjectArrayMap; import org.apache.logging.log4j.Logger; +import javax.annotation.Nullable; import java.io.IOException; import java.net.URL; import java.nio.charset.Charset; import java.util.HashMap; import java.util.Map; -import javax.annotation.Nullable; public final class LegacyMapper { @@ -74,7 +74,11 @@ public final class LegacyMapper { * Create a new instance. */ private LegacyMapper() { - this.resourceLoader = WorldEdit.getInstance().getPlatformManager().queryCapability(Capability.CONFIGURATION).getResourceLoader(); + this.resourceLoader = WorldEdit + .getInstance() + .getPlatformManager() + .queryCapability(Capability.CONFIGURATION) + .getResourceLoader(); try { loadFromResource(); @@ -97,7 +101,8 @@ public final class LegacyMapper { throw new IOException("Could not find legacy.json"); } String data = Resources.toString(url, Charset.defaultCharset()); - LegacyDataFile dataFile = gson.fromJson(data, new TypeToken() {}.getType()); + LegacyDataFile dataFile = gson.fromJson(data, new TypeToken() { + }.getType()); DataFixer fixer = WorldEdit.getInstance().getPlatformManager().queryCapability(Capability.WORLD_EDITING).getDataFixer(); ParserContext parserContext = new ParserContext(); @@ -123,7 +128,7 @@ public final class LegacyMapper { } } catch (InputParseException f) { BlockFactory blockFactory = WorldEdit.getInstance().getBlockFactory(); - //FAWE end + //FAWE end // if fixer is available, try using that first, as some old blocks that were renamed share names with new blocks if (fixer != null) { @@ -154,7 +159,7 @@ public final class LegacyMapper { //FAWE start if (state != null) { blockArr[combinedId] = state.getInternalId(); - blockStateToLegacyId4Data.put(state.getInternalId(), (Integer) combinedId); + blockStateToLegacyId4Data.put(state.getInternalId(), combinedId); blockStateToLegacyId4Data.putIfAbsent(state.getInternalBlockTypeId(), combinedId); } } @@ -313,7 +318,7 @@ public final class LegacyMapper { @Deprecated public int[] getLegacyFromBlock(BlockState blockState) { Integer combinedId = getLegacyCombined(blockState); - return combinedId == null ? null : new int[] { combinedId >> 4, combinedId & 0xF }; + return combinedId == null ? null : new int[]{combinedId >> 4, combinedId & 0xF}; } public static LegacyMapper getInstance() { @@ -325,7 +330,10 @@ public final class LegacyMapper { @SuppressWarnings({"MismatchedQueryAndUpdateOfCollection"}) private static class LegacyDataFile { + private Map blocks; private Map items; + } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/NullBiomeRegistry.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/NullBiomeRegistry.java index 4e575a444..346c94477 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/NullBiomeRegistry.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/NullBiomeRegistry.java @@ -41,7 +41,7 @@ public class NullBiomeRegistry implements BiomeRegistry { @Override public Component getRichName(BiomeType biomeType) { return Caption.of( - TranslationManager.makeTranslationKey("biome", biomeType.getId()) + TranslationManager.makeTranslationKey("biome", biomeType.getId()) ); } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/NullBlockCategoryRegistry.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/NullBlockCategoryRegistry.java index 578bef701..0ac1b54b2 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/NullBlockCategoryRegistry.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/NullBlockCategoryRegistry.java @@ -30,4 +30,5 @@ public class NullBlockCategoryRegistry implements BlockCategoryRegistry { public Set getCategorisedByName(String category) { return Collections.emptySet(); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/NullItemCategoryRegistry.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/NullItemCategoryRegistry.java index b226b3d6b..449bef733 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/NullItemCategoryRegistry.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/NullItemCategoryRegistry.java @@ -30,4 +30,5 @@ public class NullItemCategoryRegistry implements ItemCategoryRegistry { public Set getCategorisedByName(String category) { return Collections.emptySet(); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/PassthroughItemMaterial.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/PassthroughItemMaterial.java index 3d220aa8f..681add8cc 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/PassthroughItemMaterial.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/PassthroughItemMaterial.java @@ -42,4 +42,5 @@ public class PassthroughItemMaterial implements ItemMaterial { public int getMaxDamage() { return itemMaterial.getMaxDamage(); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/SimpleBlockMaterial.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/SimpleBlockMaterial.java index bf1e7f6b1..763ac81bc 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/SimpleBlockMaterial.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/SimpleBlockMaterial.java @@ -259,4 +259,5 @@ class SimpleBlockMaterial implements BlockMaterial { public void setHasContainer(boolean hasContainer) { this.hasContainer = hasContainer; } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/SimpleItemMaterial.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/SimpleItemMaterial.java index fc7c36cb9..40ed03515 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/SimpleItemMaterial.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/SimpleItemMaterial.java @@ -38,4 +38,5 @@ public class SimpleItemMaterial implements ItemMaterial { public int getMaxDamage() { return maxDamage; } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/snapshot/Snapshot.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/snapshot/Snapshot.java index a157197b5..6e0027655 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/snapshot/Snapshot.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/snapshot/Snapshot.java @@ -52,7 +52,7 @@ public class Snapshot implements Comparable { /** * Construct a snapshot restoration operation. * - * @param repo a repository + * @param repo a repository * @param snapshot a snapshot name */ public Snapshot(SnapshotRepository repo, String snapshot) { @@ -64,8 +64,8 @@ public class Snapshot implements Comparable { * Get a chunk store. * * @return a chunk store - * @throws IOException if there is an error loading the chunk store - * @throws DataException if there is an error loading the chunk store + * @throws IOException if there is an error loading the chunk store + * @throws DataException if there is an error loading the chunk store */ public ChunkStore getChunkStore() throws IOException, DataException { ChunkStore chunkStore = internalGetChunkStore(); @@ -80,7 +80,7 @@ public class Snapshot implements Comparable { * Get a chunk store. * * @return a chunk store - * @throws IOException if there is an error loading the chunk store + * @throws IOException if there is an error loading the chunk store * @throws DataException if there is an error loading the chunk store */ private ChunkStore internalGetChunkStore() throws IOException, DataException { @@ -208,7 +208,7 @@ public class Snapshot implements Comparable { int ourIndex = name.indexOf('/'); int theirIndex = o.name.indexOf('/'); return name.substring(Math.min(ourIndex, 0)) - .compareTo(o.name.substring(Math.min(theirIndex, 0))); + .compareTo(o.name.substring(Math.min(theirIndex, 0))); } else { return date.compareTo(o.date); } @@ -223,4 +223,5 @@ public class Snapshot implements Comparable { public int hashCode() { return file.hashCode(); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/snapshot/SnapshotDateParser.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/snapshot/SnapshotDateParser.java index 06ce0cc39..22f67f77b 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/snapshot/SnapshotDateParser.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/snapshot/SnapshotDateParser.java @@ -19,9 +19,9 @@ package com.sk89q.worldedit.world.snapshot; +import javax.annotation.Nullable; import java.io.File; import java.util.Calendar; -import javax.annotation.Nullable; /** * A name parser attempts to make sense of a filename for a snapshot. diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/snapshot/SnapshotRepository.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/snapshot/SnapshotRepository.java index 762db63da..b6c2710d4 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/snapshot/SnapshotRepository.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/snapshot/SnapshotRepository.java @@ -23,6 +23,7 @@ package com.sk89q.worldedit.world.snapshot; import com.sk89q.worldedit.world.storage.MissingWorldException; +import javax.annotation.Nullable; import java.io.File; import java.io.FilenameFilter; import java.time.ZoneOffset; @@ -32,7 +33,6 @@ import java.util.Calendar; import java.util.Collections; import java.util.List; import java.util.Locale; -import javax.annotation.Nullable; /** * A repository contains zero or more snapshots. @@ -215,9 +215,9 @@ public class SnapshotRepository { if (file.isFile()) { String lowerCaseFileName = file.getName().toLowerCase(Locale.ROOT); return lowerCaseFileName.endsWith(".zip") - || lowerCaseFileName.endsWith(".tar.bz2") - || lowerCaseFileName.endsWith(".tar.gz") - || lowerCaseFileName.endsWith(".tar"); + || lowerCaseFileName.endsWith(".tar.bz2") + || lowerCaseFileName.endsWith(".tar.gz") + || lowerCaseFileName.endsWith(".tar"); } return false; } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/snapshot/SnapshotRestore.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/snapshot/SnapshotRestore.java index 52d3b6fd8..5a5f847e3 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/snapshot/SnapshotRestore.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/snapshot/SnapshotRestore.java @@ -55,9 +55,9 @@ public class SnapshotRestore { /** * Construct the snapshot restore operation. * - * @param chunkStore The {@link ChunkStore} to restore from + * @param chunkStore The {@link ChunkStore} to restore from * @param editSession The {@link EditSession} to restore to - * @param region The {@link Region} to restore to + * @param region The {@link Region} to restore to */ public SnapshotRestore(ChunkStore chunkStore, EditSession editSession, Region region) { this.chunkStore = chunkStore; diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/snapshot/experimental/Snapshot.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/snapshot/experimental/Snapshot.java index 624c31f25..adbf8af2c 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/snapshot/experimental/Snapshot.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/snapshot/experimental/Snapshot.java @@ -59,4 +59,5 @@ public interface Snapshot extends Closeable { */ @Override void close() throws IOException; + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/snapshot/experimental/SnapshotComparator.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/snapshot/experimental/SnapshotComparator.java index d2d76ee8d..1296652cc 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/snapshot/experimental/SnapshotComparator.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/snapshot/experimental/SnapshotComparator.java @@ -24,7 +24,7 @@ import java.util.Comparator; public class SnapshotComparator { private static final Comparator COMPARATOR = - Comparator.comparing(Snapshot::getInfo); + Comparator.comparing(Snapshot::getInfo); public static Comparator getInstance() { return COMPARATOR; @@ -32,4 +32,5 @@ public class SnapshotComparator { private SnapshotComparator() { } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/snapshot/experimental/SnapshotDatabase.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/snapshot/experimental/SnapshotDatabase.java index d12f416a5..6102694a5 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/snapshot/experimental/SnapshotDatabase.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/snapshot/experimental/SnapshotDatabase.java @@ -64,17 +64,17 @@ public interface SnapshotDatabase { default Stream getSnapshotsBefore(String worldName, ZonedDateTime date) throws IOException { return takeWhile( - // sorted from oldest -> newest, so all `before` are at the front - getSnapshotsOldestFirst(worldName), - snap -> snap.getInfo().getDateTime().isBefore(date) + // sorted from oldest -> newest, so all `before` are at the front + getSnapshotsOldestFirst(worldName), + snap -> snap.getInfo().getDateTime().isBefore(date) ); } default Stream getSnapshotsAfter(String worldName, ZonedDateTime date) throws IOException { return takeWhile( - // sorted from newest -> oldest, so all `after` are at the front - getSnapshotsNewestFirst(worldName), - snap -> snap.getInfo().getDateTime().isAfter(date) + // sorted from newest -> oldest, so all `after` are at the front + getSnapshotsNewestFirst(worldName), + snap -> snap.getInfo().getDateTime().isAfter(date) ); } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/snapshot/experimental/SnapshotInfo.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/snapshot/experimental/SnapshotInfo.java index 5a8b969d1..45148f55b 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/snapshot/experimental/SnapshotInfo.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/snapshot/experimental/SnapshotInfo.java @@ -68,7 +68,7 @@ public final class SnapshotInfo implements Comparable { } SnapshotInfo that = (SnapshotInfo) o; return Objects.equals(name, that.name) - && Objects.equals(dateTime, that.dateTime); + && Objects.equals(dateTime, that.dateTime); } @Override @@ -79,16 +79,17 @@ public final class SnapshotInfo implements Comparable { @Override public String toString() { return "SnapshotInfo{" - + "name='" + name + '\'' - + ",date=" + dateTime - + '}'; + + "name='" + name + '\'' + + ",date=" + dateTime + + '}'; } @Override public int compareTo(SnapshotInfo o) { return ComparisonChain.start() - .compare(dateTime, o.dateTime) - .compare(name, o.name) - .result(); + .compare(dateTime, o.dateTime) + .compare(name, o.name) + .result(); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/snapshot/experimental/SnapshotRestore.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/snapshot/experimental/SnapshotRestore.java index 9d1f15256..eccec5200 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/snapshot/experimental/SnapshotRestore.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/snapshot/experimental/SnapshotRestore.java @@ -51,9 +51,9 @@ public class SnapshotRestore { /** * Construct the snapshot restore operation. * - * @param snapshot The {@link Snapshot} to restore from + * @param snapshot The {@link Snapshot} to restore from * @param editSession The {@link EditSession} to restore to - * @param region The {@link Region} to restore to + * @param region The {@link Region} to restore to */ public SnapshotRestore(Snapshot snapshot, EditSession editSession, Region region) { this.snapshot = snapshot; diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/snapshot/experimental/fs/FileSystemSnapshotDatabase.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/snapshot/experimental/fs/FileSystemSnapshotDatabase.java index e91f3e505..450190139 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/snapshot/experimental/fs/FileSystemSnapshotDatabase.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/snapshot/experimental/fs/FileSystemSnapshotDatabase.java @@ -35,6 +35,7 @@ import com.sk89q.worldedit.world.snapshot.experimental.Snapshot; import com.sk89q.worldedit.world.snapshot.experimental.SnapshotDatabase; import com.sk89q.worldedit.world.snapshot.experimental.SnapshotInfo; +import javax.annotation.Nullable; import java.io.IOException; import java.net.URI; import java.nio.file.Files; @@ -46,7 +47,6 @@ import java.util.Objects; import java.util.Optional; import java.util.ServiceLoader; import java.util.stream.Stream; -import javax.annotation.Nullable; import static com.google.common.base.Preconditions.checkArgument; @@ -58,22 +58,22 @@ public class FileSystemSnapshotDatabase implements SnapshotDatabase { private static final String SCHEME = "snapfs"; private static final List DATE_TIME_PARSERS = - new ImmutableList.Builder() - .add(FileNameDateTimeParser.getInstance()) - .addAll(ServiceLoader.load(SnapshotDateTimeParser.class)) - .add(ModificationDateTimeParser.getInstance()) - .build(); + new ImmutableList.Builder() + .add(FileNameDateTimeParser.getInstance()) + .addAll(ServiceLoader.load(SnapshotDateTimeParser.class)) + .add(ModificationDateTimeParser.getInstance()) + .build(); public static ZonedDateTime tryParseDate(Path path) { return tryParseDateInternal(path) - .orElseThrow(() -> new IllegalStateException("Could not detect date of " + path)); + .orElseThrow(() -> new IllegalStateException("Could not detect date of " + path)); } private static Optional tryParseDateInternal(Path path) { return DATE_TIME_PARSERS.stream() - .map(parser -> parser.detectDateTime(path)) - .filter(Objects::nonNull) - .findFirst(); + .map(parser -> parser.detectDateTime(path)) + .filter(Objects::nonNull) + .findFirst(); } public static URI createUri(String name) { @@ -81,8 +81,8 @@ public class FileSystemSnapshotDatabase implements SnapshotDatabase { } public static FileSystemSnapshotDatabase maybeCreate( - Path root, - ArchiveNioSupport archiveNioSupport + Path root, + ArchiveNioSupport archiveNioSupport ) throws IOException { Files.createDirectories(root); return new FileSystemSnapshotDatabase(root, archiveNioSupport); @@ -118,7 +118,7 @@ public class FileSystemSnapshotDatabase implements SnapshotDatabase { private Snapshot createSnapshot(Path idPath, Path ioPath, @Nullable Closer closeCallback) { return new FolderSnapshot( - createSnapshotInfo(idPath, ioPath), ioPath, closeCallback + createSnapshotInfo(idPath, ioPath), ioPath, closeCallback ); } @@ -217,32 +217,32 @@ public class FileSystemSnapshotDatabase implements SnapshotDatabase { with some files, e.g. world.qux.zip/world.qux is invalid, but world.qux.zip/world isn't. */ return SafeFiles.noLeakFileList(root) - .flatMap(IOFunction.unchecked(entry -> { - String worldEntry = getWorldEntry(worldName, entry); - if (worldEntry != null) { - return Stream.of(worldEntry); - } - String fileName = SafeFiles.canonicalFileName(entry); - if (fileName.equals(worldName) - && Files.isDirectory(entry) - && !Files.exists(entry.resolve("level.dat"))) { - // world dir with timestamp entries - return listTimestampedEntries(worldName, entry) - .map(id -> worldName + "/" + id); - } - return getTimestampedEntries(worldName, entry); - })) - .map(IOFunction.unchecked(id -> - getSnapshot(id) - .orElseThrow(() -> - new AssertionError("Could not find discovered snapshot: " + id) - ) - )); + .flatMap(IOFunction.unchecked(entry -> { + String worldEntry = getWorldEntry(worldName, entry); + if (worldEntry != null) { + return Stream.of(worldEntry); + } + String fileName = SafeFiles.canonicalFileName(entry); + if (fileName.equals(worldName) + && Files.isDirectory(entry) + && !Files.exists(entry.resolve("level.dat"))) { + // world dir with timestamp entries + return listTimestampedEntries(worldName, entry) + .map(id -> worldName + "/" + id); + } + return getTimestampedEntries(worldName, entry); + })) + .map(IOFunction.unchecked(id -> + getSnapshot(id) + .orElseThrow(() -> + new AssertionError("Could not find discovered snapshot: " + id) + ) + )); } private Stream listTimestampedEntries(String worldName, Path directory) throws IOException { return SafeFiles.noLeakFileList(directory) - .flatMap(IOFunction.unchecked(entry -> getTimestampedEntries(worldName, entry))); + .flatMap(IOFunction.unchecked(entry -> getTimestampedEntries(worldName, entry))); } private Stream getTimestampedEntries(String worldName, Path entry) throws IOException { @@ -255,7 +255,7 @@ public class FileSystemSnapshotDatabase implements SnapshotDatabase { if (Files.isDirectory(entry)) { // timestamped directory, find worlds inside return listWorldEntries(worldName, entry) - .map(id -> fileName + "/" + id); + .map(id -> fileName + "/" + id); } if (!Files.isRegularFile(entry)) { // not an archive either? @@ -266,16 +266,16 @@ public class FileSystemSnapshotDatabase implements SnapshotDatabase { // timestamped archive ArchiveDir dir = asArchive.get(); return listWorldEntries(worldName, dir.getPath()) - .map(id -> fileName + "/" + id) - .onClose(IORunnable.unchecked(dir::close)); + .map(id -> fileName + "/" + id) + .onClose(IORunnable.unchecked(dir::close)); } return Stream.of(); } private Stream listWorldEntries(String worldName, Path directory) throws IOException { return SafeFiles.noLeakFileList(directory) - .map(IOFunction.unchecked(entry -> getWorldEntry(worldName, entry))) - .filter(Objects::nonNull); + .map(IOFunction.unchecked(entry -> getWorldEntry(worldName, entry))) + .filter(Objects::nonNull); } private String getWorldEntry(String worldName, Path entry) throws IOException { diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/snapshot/experimental/fs/FolderSnapshot.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/snapshot/experimental/fs/FolderSnapshot.java index b646a945d..6f482023a 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/snapshot/experimental/fs/FolderSnapshot.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/snapshot/experimental/fs/FolderSnapshot.java @@ -32,6 +32,7 @@ import com.sk89q.worldedit.world.storage.McRegionChunkStore; import com.sk89q.worldedit.world.storage.McRegionReader; import com.sk89q.worldedit.world.storage.MissingChunkException; +import javax.annotation.Nullable; import java.io.IOException; import java.io.InputStream; import java.nio.file.Files; @@ -40,7 +41,6 @@ import java.util.Optional; import java.util.concurrent.atomic.AtomicReference; import java.util.stream.Stream; import java.util.zip.GZIPInputStream; -import javax.annotation.Nullable; import static com.google.common.base.Preconditions.checkState; @@ -68,11 +68,11 @@ public class FolderSnapshot implements Snapshot { // Might be in a DIM* folder try (Stream paths = Files.list(folder)) { Optional path = paths - .filter(Files::isDirectory) - .filter(p -> p.getFileName().toString().startsWith("DIM")) - .map(p -> p.resolve("region")) - .filter(Files::isDirectory) - .findFirst(); + .filter(Files::isDirectory) + .filter(p -> p.getFileName().toString().startsWith("DIM")) + .map(p -> p.resolve("region")) + .filter(Files::isDirectory) + .findFirst(); if (path.isPresent()) { return path.get(); } @@ -80,12 +80,12 @@ public class FolderSnapshot implements Snapshot { // Might be its own region folder, check if the appropriate files exist try (Stream paths = Files.list(folder)) { if (paths - .filter(Files::isRegularFile) - .anyMatch(p -> { - String fileName = p.getFileName().toString(); - return fileName.startsWith("r") && - (fileName.endsWith(".mca") || fileName.endsWith(".mcr")); - })) { + .filter(Files::isRegularFile) + .anyMatch(p -> { + String fileName = p.getFileName().toString(); + return fileName.startsWith("r") && + (fileName.endsWith(".mca") || fileName.endsWith(".mcr")); + })) { return folder; } } @@ -139,14 +139,14 @@ public class FolderSnapshot implements Snapshot { throw new MissingChunkException(); } return ChunkStoreHelper.readCompoundTag(() -> - new GZIPInputStream(Files.newInputStream(chunkFile)) + new GZIPInputStream(Files.newInputStream(chunkFile)) ); } Path regionFile = regFolder.get().resolve(McRegionChunkStore.getFilename(pos)); if (!Files.exists(regionFile)) { // Try mcr as well regionFile = regionFile.resolveSibling( - regionFile.getFileName().toString().replace(".mca", ".mcr") + regionFile.getFileName().toString().replace(".mca", ".mcr") ); if (!Files.exists(regionFile)) { throw new MissingChunkException(); @@ -164,4 +164,5 @@ public class FolderSnapshot implements Snapshot { closeCallback.close(); } } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/storage/ChunkStore.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/storage/ChunkStore.java index 7123dce30..fedbb21a9 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/storage/ChunkStore.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/storage/ChunkStore.java @@ -80,7 +80,7 @@ public abstract class ChunkStore implements Closeable { * @param position the position of the chunk * @return tag * @throws DataException thrown on data error - * @throws IOException thrown on I/O error + * @throws IOException thrown on I/O error */ public abstract CompoundTag getChunkTag(BlockVector2 position, World world) throws DataException, IOException; @@ -90,8 +90,8 @@ public abstract class ChunkStore implements Closeable { * @param position the position of the chunk * @return a chunk * @throws ChunkStoreException thrown if there is an error from the chunk store - * @throws DataException thrown on data error - * @throws IOException thrown on I/O error + * @throws DataException thrown on data error + * @throws IOException thrown on I/O error */ public Chunk getChunk(BlockVector2 position, World world) throws DataException, IOException { CompoundTag rootTag = getChunkTag(position, world); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/storage/ChunkStoreHelper.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/storage/ChunkStoreHelper.java index 4b1a2f927..eb9f5f519 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/storage/ChunkStoreHelper.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/storage/ChunkStoreHelper.java @@ -54,7 +54,7 @@ public class ChunkStoreHelper { Tag tag = nbt.readNamedTag().getTag(); if (!(tag instanceof CompoundTag)) { throw new ChunkStoreException("CompoundTag expected for chunk; got " - + tag.getClass().getName()); + + tag.getClass().getName()); } return (CompoundTag) tag; @@ -79,7 +79,10 @@ public class ChunkStoreHelper { tag = (CompoundTag) entry.getValue(); break; } else { - throw new ChunkStoreException("CompoundTag expected for 'Level'; got " + entry.getValue().getClass().getName()); + throw new ChunkStoreException("CompoundTag expected for 'Level'; got " + entry + .getValue() + .getClass() + .getName()); } } } @@ -94,11 +97,17 @@ public class ChunkStoreHelper { } final Platform platform = WorldEdit.getInstance().getPlatformManager().queryCapability(Capability.WORLD_EDITING); final int currentDataVersion = platform.getDataVersion(); - if (tag.getValue().containsKey("Sections") && dataVersion < currentDataVersion) { // only fix up MCA format, DFU doesn't support MCR chunks + if (tag + .getValue() + .containsKey("Sections") && dataVersion < currentDataVersion) { // only fix up MCA format, DFU doesn't support MCR chunks final DataFixer dataFixer = platform.getDataFixer(); if (dataFixer != null) { //FAWE start - use Adventure - tag = (CompoundTag) ((CompoundTag) AdventureNBTConverter.fromAdventure(dataFixer.fixUp(DataFixer.FixTypes.CHUNK, rootTag.asBinaryTag(), dataVersion))).getValue().get("Level"); + tag = (CompoundTag) ((CompoundTag) AdventureNBTConverter.fromAdventure(dataFixer.fixUp( + DataFixer.FixTypes.CHUNK, + rootTag.asBinaryTag(), + dataVersion + ))).getValue().get("Level"); //FAWE end dataVersion = currentDataVersion; } @@ -120,4 +129,5 @@ public class ChunkStoreHelper { private ChunkStoreHelper() { } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/storage/FileLegacyChunkStore.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/storage/FileLegacyChunkStore.java index 3037d29f2..45e22e0eb 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/storage/FileLegacyChunkStore.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/storage/FileLegacyChunkStore.java @@ -46,8 +46,8 @@ public class FileLegacyChunkStore extends LegacyChunkStore { /** * Get the input stream for a chunk file. * - * @param f1 the first part of the pathname - * @param f2 the second part of the pathname + * @param f1 the first part of the pathname + * @param f2 the second part of the pathname * @param name the name of the file * @return an input stream * @throws DataException if there is an error getting data for this chunk diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/storage/FileMcRegionChunkStore.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/storage/FileMcRegionChunkStore.java index 2eb1f4c19..cb4b24710 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/storage/FileMcRegionChunkStore.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/storage/FileMcRegionChunkStore.java @@ -74,7 +74,7 @@ public class FileMcRegionChunkStore extends McRegionChunkStore { @Override public boolean isValid() { return new File(path, "region").isDirectory() - || new File(path, "DIM-1" + File.separator + "region").isDirectory(); + || new File(path, "DIM-1" + File.separator + "region").isDirectory(); } } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/storage/LegacyChunkStore.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/storage/LegacyChunkStore.java index 69a531f3f..5e534765a 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/storage/LegacyChunkStore.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/storage/LegacyChunkStore.java @@ -39,7 +39,7 @@ public abstract class LegacyChunkStore extends ChunkStore { /** * Get the filename of a chunk. * - * @param position chunk position + * @param position chunk position * @param separator folder separator character * @return pathname */ @@ -77,7 +77,7 @@ public abstract class LegacyChunkStore extends ChunkStore { + "." + Integer.toString(z, 36) + ".dat"; return ChunkStoreHelper.readCompoundTag(() -> - new GZIPInputStream(getInputStream(folder1, folder2, filename)) + new GZIPInputStream(getInputStream(folder1, folder2, filename)) ); } @@ -88,8 +88,8 @@ public abstract class LegacyChunkStore extends ChunkStore { /** * Get the input stream for a chunk file. * - * @param f1 the first part of the path - * @param f2 the second part of the path + * @param f1 the first part of the path + * @param f2 the second part of the path * @param name the name * @return an input stream * @throws IOException if there is an error getting the chunk data diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/storage/McRegionChunkStore.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/storage/McRegionChunkStore.java index 4e284623d..68ace360e 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/storage/McRegionChunkStore.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/storage/McRegionChunkStore.java @@ -75,7 +75,7 @@ public abstract class McRegionChunkStore extends ChunkStore { /** * Get the input stream for a chunk file. * - * @param name the name of the chunk file + * @param name the name of the chunk file * @param worldName the world name * @return an input stream * @throws IOException if there is an error getting the chunk data diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/storage/McRegionReader.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/storage/McRegionReader.java index 6131be919..fee7a3d9e 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/storage/McRegionReader.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/storage/McRegionReader.java @@ -115,7 +115,7 @@ public class McRegionReader { * * @param position chunk position * @return an input stream - * @throws IOException if there is an error getting the chunk data + * @throws IOException if there is an error getting the chunk data * @throws DataException if there is an error getting the chunk data */ public synchronized InputStream getChunkInputStream(BlockVector2 position) throws IOException, DataException { @@ -190,4 +190,5 @@ public class McRegionReader { public void close() throws IOException { stream.close(); } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/storage/MissingWorldException.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/storage/MissingWorldException.java index 047c9670f..24b84a824 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/storage/MissingWorldException.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/storage/MissingWorldException.java @@ -51,4 +51,5 @@ public class MissingWorldException extends ChunkStoreException { public String getWorldName() { return worldName; } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/storage/NBTConversions.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/storage/NBTConversions.java index b84feff24..8d82026ff 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/storage/NBTConversions.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/storage/NBTConversions.java @@ -40,8 +40,8 @@ public final class NBTConversions { * *

    For values that are unavailable, their values will be 0.

    * - * @param extent the extent - * @param positionTag the position tag + * @param extent the extent + * @param positionTag the position tag * @param directionTag the direction tag * @return a location */ @@ -52,7 +52,8 @@ public final class NBTConversions { return new Location( extent, positionTag.asDouble(0), positionTag.asDouble(1), positionTag.asDouble(2), - directionTag.getFloat(0), directionTag.getFloat(1)); + directionTag.getFloat(0), directionTag.getFloat(1) + ); } } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/storage/TrueZipLegacyChunkStore.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/storage/TrueZipLegacyChunkStore.java index fd083fa48..100b49975 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/storage/TrueZipLegacyChunkStore.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/storage/TrueZipLegacyChunkStore.java @@ -46,8 +46,8 @@ public class TrueZipLegacyChunkStore extends LegacyChunkStore { * the folder to not look into a subdirectory. * * @param zipFile the ZIP file to open - * @param folder the folder to look into in the ZIP - * @throws IOException if there is an error opening the zip + * @param folder the folder to look into in the ZIP + * @throws IOException if there is an error opening the zip * @throws ZipException if there is an error opening the zip */ public TrueZipLegacyChunkStore(File zipFile, String folder) throws IOException, ZipException { @@ -62,7 +62,7 @@ public class TrueZipLegacyChunkStore extends LegacyChunkStore { * be detected. * * @param zipFile the ZIP file to open - * @throws IOException if there is an error opening the zip + * @throws IOException if there is an error opening the zip * @throws ZipException if there is an error opening the zip */ public TrueZipLegacyChunkStore(File zipFile) throws IOException, ZipException { @@ -74,11 +74,11 @@ public class TrueZipLegacyChunkStore extends LegacyChunkStore { /** * Get the input stream for a chunk file. * - * @param f1 the first part of the filename - * @param f2 the second part of the filename + * @param f1 the first part of the filename + * @param f2 the second part of the filename * @param name the name of the file * @return an input stream - * @throws IOException if there is an error getting the chunk data + * @throws IOException if there is an error getting the chunk data * @throws DataException if there is an error getting the chunk data */ @Override diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/storage/TrueZipMcRegionChunkStore.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/storage/TrueZipMcRegionChunkStore.java index 679d7257c..d6cecfd73 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/storage/TrueZipMcRegionChunkStore.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/storage/TrueZipMcRegionChunkStore.java @@ -48,8 +48,8 @@ public class TrueZipMcRegionChunkStore extends McRegionChunkStore { * the folder to not look into a subdirectory. * * @param zipFile the ZIP file - * @param folder the folder to look into - * @throws IOException if there is an error opening the zip + * @param folder the folder to look into + * @throws IOException if there is an error opening the zip * @throws ZipException if there is an error opening the zip */ public TrueZipMcRegionChunkStore(File zipFile, String folder) throws IOException, ZipException { @@ -64,7 +64,7 @@ public class TrueZipMcRegionChunkStore extends McRegionChunkStore { * be detected. * * @param zipFile the ZIP file - * @throws IOException if there is an error opening the zip + * @throws IOException if there is an error opening the zip * @throws ZipException if there is an error opening the zip */ public TrueZipMcRegionChunkStore(File zipFile) throws IOException, ZipException { @@ -76,10 +76,10 @@ public class TrueZipMcRegionChunkStore extends McRegionChunkStore { /** * Get the input stream for a chunk file. * - * @param name the name + * @param name the name * @param worldName the world name * @return an input stream - * @throws IOException if there is an error getting the chunk data + * @throws IOException if there is an error getting the chunk data * @throws DataException if there is an error getting the chunk data */ @Override diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/storage/ZippedLegacyChunkStore.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/storage/ZippedLegacyChunkStore.java index 20a7ddb8f..f06615483 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/storage/ZippedLegacyChunkStore.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/storage/ZippedLegacyChunkStore.java @@ -44,8 +44,8 @@ public class ZippedLegacyChunkStore extends LegacyChunkStore { * the folder to not look into a subdirectory. * * @param zipFile the zip file - * @param folder the folder - * @throws IOException if there is an error opening the zip + * @param folder the folder + * @throws IOException if there is an error opening the zip * @throws ZipException if there is an error opening the zip */ public ZippedLegacyChunkStore(File zipFile, String folder) throws IOException, ZipException { @@ -59,7 +59,7 @@ public class ZippedLegacyChunkStore extends LegacyChunkStore { * be detected. * * @param zipFile the zip file - * @throws IOException if there is an error opening the zip + * @throws IOException if there is an error opening the zip * @throws ZipException if there is an error opening the zip */ public ZippedLegacyChunkStore(File zipFile) throws IOException, ZipException { @@ -69,11 +69,11 @@ public class ZippedLegacyChunkStore extends LegacyChunkStore { /** * Get the input stream for a chunk file. * - * @param f1 the first part of the path - * @param f2 the second part of the path + * @param f1 the first part of the path + * @param f2 the second part of the path * @param name the name of the file * @return an input stream - * @throws IOException if there is an error getting the chunk data + * @throws IOException if there is an error getting the chunk data * @throws DataException if there is an error getting the chunk data */ @Override diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/storage/ZippedMcRegionChunkStore.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/storage/ZippedMcRegionChunkStore.java index 030004ee3..e92d1641f 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/storage/ZippedMcRegionChunkStore.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/storage/ZippedMcRegionChunkStore.java @@ -47,8 +47,8 @@ public class ZippedMcRegionChunkStore extends McRegionChunkStore { * the folder to not look into a subdirectory. * * @param zipFile the ZIP file - * @param folder the folder - * @throws IOException if there is an error opening the zip + * @param folder the folder + * @throws IOException if there is an error opening the zip * @throws ZipException if there is an error opening the zip */ public ZippedMcRegionChunkStore(File zipFile, String folder) throws IOException, ZipException { @@ -63,7 +63,7 @@ public class ZippedMcRegionChunkStore extends McRegionChunkStore { * be detected. * * @param zipFile the ZIP file - * @throws IOException if there is an error opening the zip + * @throws IOException if there is an error opening the zip * @throws ZipException if there is an error opening the zip */ public ZippedMcRegionChunkStore(File zipFile) throws IOException, ZipException { @@ -159,4 +159,5 @@ public class ZippedMcRegionChunkStore extends McRegionChunkStore { return false; } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/weather/WeatherType.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/weather/WeatherType.java index 65a586796..ea78ee112 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/weather/WeatherType.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/weather/WeatherType.java @@ -26,7 +26,7 @@ public class WeatherType implements Keyed { public static final Registry REGISTRY = new Registry<>("weather type"); - private String id; + private final String id; public WeatherType(String id) { this.id = id; diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/weather/WeatherTypes.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/weather/WeatherTypes.java index ee2a81910..404e8d6da 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/weather/WeatherTypes.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/weather/WeatherTypes.java @@ -42,4 +42,5 @@ public final class WeatherTypes { public static WeatherType get(final String id) { return WeatherType.REGISTRY.get(id); } + }