diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 00000000..a0e8e549 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,352 @@ +[*] +charset = utf-8 +end_of_line = lf +indent_size = 4 +indent_style = space +insert_final_newline = true +max_line_length = 150 +tab_width = 4 +trim_trailing_whitespace = true +ij_continuation_indent_size = 4 +ij_formatter_off_tag = @formatter:off +ij_formatter_on_tag = @formatter:on +ij_formatter_tags_enabled = false +ij_smart_tabs = false +ij_visual_guides = none +ij_wrap_on_typing = false + +[*.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_deconstruction_list_components = true +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 = false +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_align_types_in_multi_catch = true +ij_java_annotation_new_line_in_record_component = 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 = 0 +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_field_with_annotations = 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 = 0 +ij_java_blank_lines_before_imports = 1 +ij_java_blank_lines_before_method_body = 0 +ij_java_blank_lines_before_package = 0 +ij_java_blank_lines_between_record_components = 0 +ij_java_block_brace_style = end_of_line +ij_java_block_comment_add_space = false +ij_java_block_comment_at_first_column = true +ij_java_builder_methods = +ij_java_call_parameters_new_line_after_left_paren = false +ij_java_call_parameters_right_paren_on_new_line = false +ij_java_call_parameters_wrap = off +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 = 99 +ij_java_class_names_in_javadoc = 3 +ij_java_deconstruction_list_wrap = normal +ij_java_delete_unused_module_imports = false +ij_java_do_not_indent_top_level_class_members = false +ij_java_do_not_wrap_after_single_annotation = false +ij_java_do_not_wrap_after_single_annotation_in_parameter = false +ij_java_do_while_brace_force = never +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 = false +ij_java_doc_align_param_comments = false +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 = true +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 = off +ij_java_enum_field_annotation_wrap = off +ij_java_extends_keyword_wrap = off +ij_java_extends_list_wrap = off +ij_java_field_annotation_wrap = split_into_lines +ij_java_field_name_prefix = +ij_java_field_name_suffix = +ij_java_finally_on_new_line = false +ij_java_for_brace_force = never +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 = false +ij_java_generate_final_parameters = false +ij_java_generate_use_type_annotation_before_type = true +ij_java_if_brace_force = never +ij_java_imports_layout = *, |, javax.**, java.**, |, $* +ij_java_indent_case_from_switch = true +ij_java_insert_inner_class_imports = true +ij_java_insert_override_annotation = true +ij_java_keep_blank_lines_before_right_brace = 1 +ij_java_keep_blank_lines_between_package_declaration_and_header = 1 +ij_java_keep_blank_lines_in_code = 1 +ij_java_keep_blank_lines_in_declarations = 1 +ij_java_keep_builder_methods_indents = false +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_on_demand_import_from_same_package_first = true +ij_java_layout_static_imports_separately = true +ij_java_line_comment_add_space = false +ij_java_line_comment_add_space_on_reformat = false +ij_java_line_comment_at_first_column = true +ij_java_local_variable_name_prefix = +ij_java_local_variable_name_suffix = +ij_java_method_annotation_wrap = split_into_lines +ij_java_method_brace_style = end_of_line +ij_java_method_call_chain_wrap = off +ij_java_method_parameters_new_line_after_left_paren = false +ij_java_method_parameters_right_paren_on_new_line = false +ij_java_method_parameters_wrap = off +ij_java_modifier_list_wrap = false +ij_java_multi_catch_types_wrap = normal +ij_java_names_count_to_use_import_on_demand = 99 +ij_java_new_line_after_lparen_in_annotation = false +ij_java_new_line_after_lparen_in_deconstruction_pattern = true +ij_java_new_line_after_lparen_in_record_header = false +ij_java_new_line_when_body_is_presented = false +ij_java_packages_to_use_import_on_demand = $com.fren_gor.ultimateAdvancementAPI.commands.CommandAPIManager.**, $org.junit.jupiter.api.Assertions.** +ij_java_parameter_annotation_wrap = off +ij_java_parameter_name_prefix = +ij_java_parameter_name_suffix = +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 = true +ij_java_prefer_parameters_wrap = false +ij_java_preserve_module_imports = true +ij_java_record_components_wrap = off +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_annotation = false +ij_java_rparen_on_new_line_in_deconstruction_pattern = true +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_deconstruction_list = 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_annotation_eq = 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_inside_block_braces_when_body_is_present = 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_deconstruction_list = 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_record_header = 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_static_field_name_prefix = +ij_java_static_field_name_suffix = +ij_java_subclass_name_prefix = +ij_java_subclass_name_suffix = Impl +ij_java_switch_expressions_wrap = normal +ij_java_ternary_operation_signs_on_next_line = false +ij_java_ternary_operation_wrap = off +ij_java_test_name_prefix = +ij_java_test_name_suffix = Test +ij_java_throws_keyword_wrap = off +ij_java_throws_list_wrap = off +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 = never +ij_java_while_on_new_line = false +ij_java_wrap_comments = false +ij_java_wrap_first_method_in_call_chain = false +ij_java_wrap_long_lines = false +ij_java_wrap_semicolon_after_call_chain = false + +[.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 + +[*.xml] +ij_xml_align_attributes = true +ij_xml_align_text = false +ij_xml_attribute_wrap = off +ij_xml_block_comment_add_space = false +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 = off + +[{*.markdown,*.md}] +trim_trailing_whitespace = false +ij_markdown_force_one_space_after_blockquote_symbol = true +ij_markdown_force_one_space_after_header_symbol = true +ij_markdown_force_one_space_after_list_bullet = true +ij_markdown_force_one_space_between_words = true +ij_markdown_format_tables = true +ij_markdown_insert_quote_arrows_on_wrap = true +ij_markdown_keep_indents_on_empty_lines = false +ij_markdown_keep_line_breaks_inside_text_blocks = true +ij_markdown_max_lines_around_block_elements = 1 +ij_markdown_max_lines_around_header = 1 +ij_markdown_max_lines_between_paragraphs = 1 +ij_markdown_min_lines_around_block_elements = 0 +ij_markdown_min_lines_around_header = 0 +ij_markdown_min_lines_between_paragraphs = 0 +ij_markdown_wrap_text_if_long = true +ij_markdown_wrap_text_inside_blockquotes = true + +[{*.yaml,*.yml}] +indent_size = 2 +ij_continuation_indent_size = 2 +ij_yaml_align_values_properties = do_not_align +ij_yaml_autoinsert_sequence_marker = true +ij_yaml_block_mapping_on_new_line = false +ij_yaml_indent_sequence_value = true +ij_yaml_keep_indents_on_empty_lines = false +ij_yaml_keep_line_breaks = true +ij_yaml_line_comment_add_space = false +ij_yaml_line_comment_add_space_on_reformat = false +ij_yaml_line_comment_at_first_column = true +ij_yaml_sequence_on_new_line = false +ij_yaml_space_before_colon = false +ij_yaml_spaces_within_braces = true +ij_yaml_spaces_within_brackets = true + +[*.bat] +end_of_line = crlf diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 00000000..e5bf01a1 --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1,3 @@ +github: frengor +custom: ["https://paypal.me/frengor"] + diff --git a/.gitignore b/.gitignore index a505a2bd..82152fc1 100644 --- a/.gitignore +++ b/.gitignore @@ -28,8 +28,7 @@ .idea/* *.iml *.iws -!.idea/fileTemplates/ -!.idea/codeStyles/ +!.idea/icon.png # Maven # target/ diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml deleted file mode 100644 index f9b65556..00000000 --- a/.idea/codeStyles/Project.xml +++ /dev/null @@ -1,58 +0,0 @@ - - - - \ No newline at end of file diff --git a/.idea/codeStyles/codeStyleConfig.xml b/.idea/codeStyles/codeStyleConfig.xml deleted file mode 100644 index 79ee123c..00000000 --- a/.idea/codeStyles/codeStyleConfig.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - \ No newline at end of file diff --git a/.idea/fileTemplates/BukkitEvent.java b/.idea/fileTemplates/BukkitEvent.java deleted file mode 100644 index 7cfc9d84..00000000 --- a/.idea/fileTemplates/BukkitEvent.java +++ /dev/null @@ -1,19 +0,0 @@ -#if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end - -import org.bukkit.event.Event; -import org.bukkit.event.HandlerList; -import org.jetbrains.annotations.NotNull; - -public class ${NAME} extends Event { - private static final HandlerList handlers = new HandlerList(); - - public static HandlerList getHandlerList() { - return handlers; - } - - @Override - @NotNull - public HandlerList getHandlers() { - return handlers; - } -} \ No newline at end of file diff --git a/.idea/fileTemplates/internal/AnnotationType.java b/.idea/fileTemplates/internal/AnnotationType.java deleted file mode 100644 index 8c5371fc..00000000 --- a/.idea/fileTemplates/internal/AnnotationType.java +++ /dev/null @@ -1,4 +0,0 @@ -#if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end - -public @interface ${NAME} { -} diff --git a/.idea/fileTemplates/internal/Class.java b/.idea/fileTemplates/internal/Class.java deleted file mode 100644 index 7e1fd19a..00000000 --- a/.idea/fileTemplates/internal/Class.java +++ /dev/null @@ -1,4 +0,0 @@ -#if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end - -public class ${NAME} { -} diff --git a/.idea/fileTemplates/internal/Enum.java b/.idea/fileTemplates/internal/Enum.java deleted file mode 100644 index 596474cc..00000000 --- a/.idea/fileTemplates/internal/Enum.java +++ /dev/null @@ -1,4 +0,0 @@ -#if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end - -public enum ${NAME} { -} diff --git a/.idea/fileTemplates/internal/Interface.java b/.idea/fileTemplates/internal/Interface.java deleted file mode 100644 index 6fd02f0e..00000000 --- a/.idea/fileTemplates/internal/Interface.java +++ /dev/null @@ -1,4 +0,0 @@ -#if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end - -public interface ${NAME} { -} diff --git a/.idea/fileTemplates/internal/Record.java b/.idea/fileTemplates/internal/Record.java deleted file mode 100644 index eacc54db..00000000 --- a/.idea/fileTemplates/internal/Record.java +++ /dev/null @@ -1,4 +0,0 @@ -#if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end - -public record ${NAME}() { -} diff --git a/.idea/fileTemplates/internal/module-info.java b/.idea/fileTemplates/internal/module-info.java deleted file mode 100644 index 4033c09b..00000000 --- a/.idea/fileTemplates/internal/module-info.java +++ /dev/null @@ -1,2 +0,0 @@ -module #[[$MODULE_NAME$]]# { -} \ No newline at end of file diff --git a/.idea/fileTemplates/internal/package-info.java b/.idea/fileTemplates/internal/package-info.java deleted file mode 100644 index b388085c..00000000 --- a/.idea/fileTemplates/internal/package-info.java +++ /dev/null @@ -1 +0,0 @@ -#if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end \ No newline at end of file diff --git a/.idea/icon.png b/.idea/icon.png new file mode 100644 index 00000000..71ad9587 Binary files /dev/null and b/.idea/icon.png differ diff --git a/Commands/CommandAPI-10.1.2/src/main/java/com/fren_gor/ultimateAdvancementAPI/commands/commandAPI_v10_1_2/AdvancementArgument.java b/Commands/CommandAPI-10.1.2/src/main/java/com/fren_gor/ultimateAdvancementAPI/commands/commandAPI_v10_1_2/AdvancementArgument.java deleted file mode 100644 index f74c5395..00000000 --- a/Commands/CommandAPI-10.1.2/src/main/java/com/fren_gor/ultimateAdvancementAPI/commands/commandAPI_v10_1_2/AdvancementArgument.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.fren_gor.ultimateAdvancementAPI.commands.commandAPI_v10_1_2; - -import com.fren_gor.ultimateAdvancementAPI.AdvancementMain; -import com.fren_gor.ultimateAdvancementAPI.advancement.Advancement; -import dev.jorel.commandapi.arguments.Argument; -import dev.jorel.commandapi.arguments.ArgumentSuggestions; -import dev.jorel.commandapi.arguments.CustomArgument; -import dev.jorel.commandapi.arguments.CustomArgument.CustomArgumentException; -import dev.jorel.commandapi.arguments.CustomArgument.MessageBuilder; -import dev.jorel.commandapi.arguments.NamespacedKeyArgument; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -public class AdvancementArgument { - - @NotNull - public static Argument getAdvancementArgument(AdvancementMain main, String nodeName) { - return new CustomArgument<>(new NamespacedKeyArgument(nodeName), input -> { - try { - @Nullable Advancement adv = main.getAdvancement(input.input()); - if (adv == null) { - throw CustomArgumentException.fromMessageBuilder(new MessageBuilder("Unknown advancement: ").appendArgInput().appendHere()); - } else if (!adv.isValid()) { - throw CustomArgumentException.fromMessageBuilder(new MessageBuilder("Invalid advancement: ").appendArgInput().appendHere()); - } else { - return adv; - } - } catch (IllegalArgumentException e) { - throw CustomArgumentException.fromMessageBuilder(new MessageBuilder("Illegal advancement: ").appendArgInput().appendHere()); - } - }).replaceSuggestions(ArgumentSuggestions.strings(sender -> main.filterNamespaces(null).toArray(new String[0]))); - } -} diff --git a/Commands/CommandAPI-10.1.2/src/main/java/com/fren_gor/ultimateAdvancementAPI/commands/commandAPI_v10_1_2/AdvancementTabArgument.java b/Commands/CommandAPI-10.1.2/src/main/java/com/fren_gor/ultimateAdvancementAPI/commands/commandAPI_v10_1_2/AdvancementTabArgument.java deleted file mode 100644 index 6c7793c3..00000000 --- a/Commands/CommandAPI-10.1.2/src/main/java/com/fren_gor/ultimateAdvancementAPI/commands/commandAPI_v10_1_2/AdvancementTabArgument.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.fren_gor.ultimateAdvancementAPI.commands.commandAPI_v10_1_2; - -import com.fren_gor.ultimateAdvancementAPI.AdvancementMain; -import com.fren_gor.ultimateAdvancementAPI.AdvancementTab; -import dev.jorel.commandapi.arguments.Argument; -import dev.jorel.commandapi.arguments.ArgumentSuggestions; -import dev.jorel.commandapi.arguments.CustomArgument; -import dev.jorel.commandapi.arguments.CustomArgument.CustomArgumentException; -import dev.jorel.commandapi.arguments.CustomArgument.MessageBuilder; -import dev.jorel.commandapi.arguments.TextArgument; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -public class AdvancementTabArgument { - - @NotNull - public static Argument getAdvancementTabArgument(AdvancementMain main, String nodeName) { - return new CustomArgument<>(new TextArgument(nodeName), input -> { - @Nullable AdvancementTab adv = main.getAdvancementTab(input.input()); - if (adv == null) { - throw CustomArgumentException.fromMessageBuilder(new MessageBuilder("Unknown advancement tab: ").appendArgInput().appendHere()); - } else if (!adv.isActive()) { - throw CustomArgumentException.fromMessageBuilder(new MessageBuilder("Invalid advancement tab: ").appendArgInput().appendHere()); - } else { - return adv; - } - }).replaceSuggestions(ArgumentSuggestions.strings(sender -> main.getAdvancementTabNamespaces().toArray(new String[0]))); - } -} diff --git a/Commands/CommandAPI-10.1.2/src/main/java/com/fren_gor/ultimateAdvancementAPI/commands/commandAPI_v10_1_2/CommandAPIManager.java b/Commands/CommandAPI-10.1.2/src/main/java/com/fren_gor/ultimateAdvancementAPI/commands/commandAPI_v10_1_2/CommandAPIManager.java deleted file mode 100644 index b61a8708..00000000 --- a/Commands/CommandAPI-10.1.2/src/main/java/com/fren_gor/ultimateAdvancementAPI/commands/commandAPI_v10_1_2/CommandAPIManager.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.fren_gor.ultimateAdvancementAPI.commands.commandAPI_v10_1_2; - -import com.fren_gor.ultimateAdvancementAPI.AdvancementMain; -import com.fren_gor.ultimateAdvancementAPI.commands.CommandAPIManager.*; -import dev.jorel.commandapi.CommandAPI; -import dev.jorel.commandapi.CommandAPIBukkitConfig; -import org.bukkit.plugin.java.JavaPlugin; -import org.jetbrains.annotations.NotNull; - -import java.util.Locale; - -public class CommandAPIManager implements ILoadable { - - public CommandAPIManager() { - } - - @Override - public void onLoad(@NotNull AdvancementMain main, @NotNull JavaPlugin plugin) { - CommandAPI.onLoad( - new CommandAPIBukkitConfig(plugin) - .verboseOutput(false) - .silentLogs(true) - .setNamespace(plugin.getName().toLowerCase(Locale.ENGLISH)) // Plugin names contain only latin characters present in english - ); - - new UltimateAdvancementAPICommand(main).register(); - } - - @Override - public void onEnable() { - CommandAPI.onEnable(); - } - - @Override - public void onDisable() { - for (var command : CommandAPI.getRegisteredCommands()) { - CommandAPI.unregister(command.commandName()); - for (var alias : command.aliases()) - CommandAPI.unregister(alias); - } - CommandAPI.onDisable(); - } -} diff --git a/Commands/CommandAPI-10.1.2/src/main/java/com/fren_gor/ultimateAdvancementAPI/commands/commandAPI_v10_1_2/UltimateAdvancementAPICommand.java b/Commands/CommandAPI-10.1.2/src/main/java/com/fren_gor/ultimateAdvancementAPI/commands/commandAPI_v10_1_2/UltimateAdvancementAPICommand.java deleted file mode 100644 index 2ec3c6b9..00000000 --- a/Commands/CommandAPI-10.1.2/src/main/java/com/fren_gor/ultimateAdvancementAPI/commands/commandAPI_v10_1_2/UltimateAdvancementAPICommand.java +++ /dev/null @@ -1,126 +0,0 @@ -package com.fren_gor.ultimateAdvancementAPI.commands.commandAPI_v10_1_2; - -import com.fren_gor.ultimateAdvancementAPI.AdvancementMain; -import com.fren_gor.ultimateAdvancementAPI.AdvancementTab; -import com.fren_gor.ultimateAdvancementAPI.advancement.Advancement; -import com.fren_gor.ultimateAdvancementAPI.commands.CommandsCommon; -import dev.jorel.commandapi.CommandAPI; -import dev.jorel.commandapi.CommandAPICommand; -import dev.jorel.commandapi.arguments.BooleanArgument; -import dev.jorel.commandapi.arguments.EntitySelectorArgument; -import dev.jorel.commandapi.arguments.IntegerArgument; -import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException; -import dev.jorel.commandapi.executors.CommandArguments; -import org.bukkit.ChatColor; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; -import org.jetbrains.annotations.NotNull; - -import java.util.Collection; -import java.util.Objects; - -import static com.fren_gor.ultimateAdvancementAPI.commands.CommandAPIManager.*; -import static com.fren_gor.ultimateAdvancementAPI.commands.commandAPI_v10_1_2.AdvancementArgument.getAdvancementArgument; -import static com.fren_gor.ultimateAdvancementAPI.commands.commandAPI_v10_1_2.AdvancementTabArgument.getAdvancementTabArgument; - -public class UltimateAdvancementAPICommand { - - private final AdvancementMain main; - private final CommandsCommon commandsCommon; - - protected UltimateAdvancementAPICommand(@NotNull AdvancementMain main) { - this.main = Objects.requireNonNull(main, "AdvancementMain is null."); - this.commandsCommon = new CommandsCommon<>(main, CommandAPI::failWithString); - } - - @SuppressWarnings("unchecked") - public void register() { - CommandAPICommand mainCommand = new CommandAPICommand("ultimateadvancementapi").withPermission(PERMISSION_MAIN_COMMAND).withAliases("uladvapi", "uladv", "uaapi").executes((sender, args) -> { - sender.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi ..."); - }); - - CommandAPICommand grant = new CommandAPICommand("grant").withPermission(PERMISSION_GRANT).executes((sender, args) -> { - sender.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi grant ..."); - }).withSubcommands( - new CommandAPICommand("all").withPermission(PERMISSION_GRANT_ALL).executesPlayer((Player player, CommandArguments args) -> commandsCommon.grantAll(player, player, true)).executes((sender, args) -> { - sender.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi grant all [giveRewards]"); - }), - new CommandAPICommand("all").withPermission(PERMISSION_GRANT_ALL).withArguments(new EntitySelectorArgument.ManyPlayers("player")).executes((CommandSender sender, CommandArguments args) -> commandsCommon.grantAll(sender, (Collection) args.get("player"), true)), - new CommandAPICommand("all").withPermission(PERMISSION_GRANT_ALL).withArguments(new EntitySelectorArgument.ManyPlayers("player"), new BooleanArgument("giveRewards")).executes((CommandSender sender, CommandArguments args) -> commandsCommon.grantAll(sender, (Collection) args.get("player"), (boolean) args.get("giveRewards"))), - - new CommandAPICommand("tab").withPermission(PERMISSION_GRANT_TAB).executesPlayer((player, args) -> { - player.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi grant tab [player] [giveRewards]"); - }).executes((sender, args) -> { - sender.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi grant tab [giveRewards]"); - }), - new CommandAPICommand("tab").withPermission(PERMISSION_GRANT_TAB).withArguments(getAdvancementTabArgument(main, "advancementTab")).executesPlayer((Player player, CommandArguments args) -> commandsCommon.grantTab(player, (AdvancementTab) args.get("advancementTab"), player, true)), - new CommandAPICommand("tab").withPermission(PERMISSION_GRANT_TAB).withArguments(getAdvancementTabArgument(main, "advancementTab"), new EntitySelectorArgument.ManyPlayers("player")).executes((CommandSender sender, CommandArguments args) -> commandsCommon.grantTab(sender, (AdvancementTab) args.get("advancementTab"), (Collection) args.get("player"), true)), - new CommandAPICommand("tab").withPermission(PERMISSION_GRANT_TAB).withArguments(getAdvancementTabArgument(main, "advancementTab"), new EntitySelectorArgument.ManyPlayers("player"), new BooleanArgument("giveRewards")).executes((CommandSender sender, CommandArguments args) -> commandsCommon.grantTab(sender, (AdvancementTab) args.get("advancementTab"), (Collection) args.get("player"), (boolean) args.get("giveRewards"))), - - new CommandAPICommand("one").withPermission(PERMISSION_GRANT_ONE).executesPlayer((player, args) -> { - player.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi grant one [player] [giveRewards]"); - }).executes((sender, args) -> { - sender.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi grant one [giveRewards]"); - }), - new CommandAPICommand("one").withPermission(PERMISSION_GRANT_ONE).withArguments(getAdvancementArgument(main, "advancement")).executesPlayer((Player player, CommandArguments args) -> commandsCommon.grantOne(player, (Advancement) args.get("advancement"), player, true)), - new CommandAPICommand("one").withPermission(PERMISSION_GRANT_ONE).withArguments(getAdvancementArgument(main, "advancement"), new EntitySelectorArgument.ManyPlayers("player")).executes((CommandSender sender, CommandArguments args) -> commandsCommon.grantOne(sender, (Advancement) args.get("advancement"), (Collection) args.get("player"), true)), - new CommandAPICommand("one").withPermission(PERMISSION_GRANT_ONE).withArguments(getAdvancementArgument(main, "advancement"), new EntitySelectorArgument.ManyPlayers("player"), new BooleanArgument("giveRewards")).executes((CommandSender sender, CommandArguments args) -> commandsCommon.grantOne(sender, (Advancement) args.get("advancement"), (Collection) args.get("player"), (boolean) args.get("giveRewards"))) - ); - - CommandAPICommand revoke = new CommandAPICommand("revoke").withPermission(PERMISSION_REVOKE).executes((sender, args) -> { - sender.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi revoke ..."); - }).withSubcommands( - new CommandAPICommand("all").withPermission(PERMISSION_REVOKE_ALL).executesPlayer((Player player, CommandArguments args) -> commandsCommon.revokeAll(player, player, false)).executes((sender, args) -> { - sender.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi revoke all [hideTab]"); - }), - new CommandAPICommand("all").withPermission(PERMISSION_REVOKE_ALL).withArguments(new EntitySelectorArgument.ManyPlayers("player")).executes((CommandSender sender, CommandArguments args) -> commandsCommon.revokeAll(sender, (Collection) args.get("player"), false)), - new CommandAPICommand("all").withPermission(PERMISSION_REVOKE_ALL).withArguments(new EntitySelectorArgument.ManyPlayers("player"), new BooleanArgument("hideTabs")).executes((CommandSender sender, CommandArguments args) -> commandsCommon.revokeAll(sender, (Collection) args.get("player"), (boolean) args.get("hideTabs"))), - - new CommandAPICommand("tab").withPermission(PERMISSION_REVOKE_TAB).executesPlayer((player, args) -> { - player.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi revoke tab [player] [hideTab]"); - }).executes((sender, args) -> { - sender.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi revoke tab [hideTab]"); - }), - new CommandAPICommand("tab").withPermission(PERMISSION_REVOKE_TAB).withArguments(getAdvancementTabArgument(main, "advancementTab")).executesPlayer((Player player, CommandArguments args) -> commandsCommon.revokeTab(player, (AdvancementTab) args.get("advancementTab"), player, false)), - new CommandAPICommand("tab").withPermission(PERMISSION_REVOKE_TAB).withArguments(getAdvancementTabArgument(main, "advancementTab"), new EntitySelectorArgument.ManyPlayers("player")).executes((CommandSender sender, CommandArguments args) -> commandsCommon.revokeTab(sender, (AdvancementTab) args.get("advancementTab"), (Collection) args.get("player"), false)), - new CommandAPICommand("tab").withPermission(PERMISSION_REVOKE_TAB).withArguments(getAdvancementTabArgument(main, "advancementTab"), new EntitySelectorArgument.ManyPlayers("player"), new BooleanArgument("hideTab")).executes((CommandSender sender, CommandArguments args) -> commandsCommon.revokeTab(sender, (AdvancementTab) args.get("advancementTab"), (Collection) args.get("player"), (boolean) args.get("hideTabs"))), - - new CommandAPICommand("one").withPermission(PERMISSION_REVOKE_ONE).executesPlayer((player, args) -> { - player.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi revoke one [player]"); - }).executes((sender, args) -> { - sender.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi revoke one "); - }), - new CommandAPICommand("one").withPermission(PERMISSION_REVOKE_ONE).withArguments(getAdvancementArgument(main, "advancement")).executesPlayer((Player player, CommandArguments args) -> commandsCommon.revokeOne(player, (Advancement) args.get("advancement"), player)), - new CommandAPICommand("one").withPermission(PERMISSION_REVOKE_ONE).withArguments(getAdvancementArgument(main, "advancement"), new EntitySelectorArgument.ManyPlayers("player")).executes((CommandSender sender, CommandArguments args) -> commandsCommon.revokeOne(sender, (Advancement) args.get("advancement"), (Collection) args.get("player"))) - ); - - CommandAPICommand progression = new CommandAPICommand("progression").withPermission(PERMISSION_PROGRESSION).executes((sender, args) -> { - sender.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi progression ..."); - }).withSubcommands(new CommandAPICommand("get").withPermission(PERMISSION_PROGRESSION_GET).executesPlayer((player, args) -> { - player.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi progression get [player]"); - }).executes((sender, args) -> { - sender.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi progression get "); - }), - new CommandAPICommand("get").withPermission(PERMISSION_PROGRESSION_GET).withArguments(getAdvancementArgument(main, "advancement")).executesPlayer((Player player, CommandArguments args) -> commandsCommon.getProgression(player, (Advancement) args.get("advancement"), player)), - new CommandAPICommand("get").withPermission(PERMISSION_PROGRESSION_GET).withArguments(getAdvancementArgument(main, "advancement"), new EntitySelectorArgument.ManyPlayers("player")).executes((CommandSender sender, CommandArguments args) -> commandsCommon.getProgression(sender, (Advancement) args.get("advancement"), (Collection) args.get("player"))), - - new CommandAPICommand("set").withPermission(PERMISSION_PROGRESSION_SET).executesPlayer((player, args) -> { - player.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi progression set [player] [giveRewards]"); - }).executes((sender, args) -> { - sender.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi progression set [giveRewards]"); - }), - new CommandAPICommand("set").withPermission(PERMISSION_PROGRESSION_SET).withArguments(getAdvancementArgument(main, "advancement"), new IntegerArgument("progression", 0)).executesPlayer((Player player, CommandArguments args) -> commandsCommon.setProgression(player, (Advancement) args.get("advancement"), (int) args.get("progression"), player, true)), - new CommandAPICommand("set").withPermission(PERMISSION_PROGRESSION_SET).withArguments(getAdvancementArgument(main, "advancement"), new IntegerArgument("progression", 0), new EntitySelectorArgument.ManyPlayers("player")).executes((CommandSender sender, CommandArguments args) -> commandsCommon.setProgression(sender, (Advancement) args.get("advancement"), (int) args.get("progression"), (Collection) args.get("player"), true)), - new CommandAPICommand("set").withPermission(PERMISSION_PROGRESSION_SET).withArguments(getAdvancementArgument(main, "advancement"), new IntegerArgument("progression", 0), new EntitySelectorArgument.ManyPlayers("player"), new BooleanArgument("giveRewards")).executes((CommandSender sender, CommandArguments args) -> commandsCommon.setProgression(sender, (Advancement) args.get("advancement"), (int) args.get("progression"), (Collection) args.get("player"), (boolean) args.get("giveRewards"))) - ); - - mainCommand.withSubcommands( - progression, - grant, - revoke - ); - - mainCommand.withHelp("Command to handle advancements.", "Command to grant/revoke/update player's advancements."); - mainCommand.register(); - } -} diff --git a/Commands/CommandAPI-11.2.0/src/main/java/com/fren_gor/ultimateAdvancementAPI/commands/commandAPI_v11_2_0/UltimateAdvancementAPICommand.java b/Commands/CommandAPI-11.2.0/src/main/java/com/fren_gor/ultimateAdvancementAPI/commands/commandAPI_v11_2_0/UltimateAdvancementAPICommand.java deleted file mode 100644 index 1efd6604..00000000 --- a/Commands/CommandAPI-11.2.0/src/main/java/com/fren_gor/ultimateAdvancementAPI/commands/commandAPI_v11_2_0/UltimateAdvancementAPICommand.java +++ /dev/null @@ -1,126 +0,0 @@ -package com.fren_gor.ultimateAdvancementAPI.commands.commandAPI_v11_2_0; - -import com.fren_gor.ultimateAdvancementAPI.AdvancementMain; -import com.fren_gor.ultimateAdvancementAPI.AdvancementTab; -import com.fren_gor.ultimateAdvancementAPI.advancement.Advancement; -import com.fren_gor.ultimateAdvancementAPI.commands.CommandsCommon; -import dev.jorel.commandapi.CommandAPI; -import dev.jorel.commandapi.CommandAPICommand; -import dev.jorel.commandapi.arguments.BooleanArgument; -import dev.jorel.commandapi.arguments.EntitySelectorArgument; -import dev.jorel.commandapi.arguments.IntegerArgument; -import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException; -import dev.jorel.commandapi.executors.CommandArguments; -import org.bukkit.ChatColor; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; -import org.jetbrains.annotations.NotNull; - -import java.util.Collection; -import java.util.Objects; - -import static com.fren_gor.ultimateAdvancementAPI.commands.CommandAPIManager.*; -import static com.fren_gor.ultimateAdvancementAPI.commands.commandAPI_v11_2_0.AdvancementArgument.getAdvancementArgument; -import static com.fren_gor.ultimateAdvancementAPI.commands.commandAPI_v11_2_0.AdvancementTabArgument.getAdvancementTabArgument; - -public class UltimateAdvancementAPICommand { - - private final AdvancementMain main; - private final CommandsCommon commandsCommon; - - protected UltimateAdvancementAPICommand(@NotNull AdvancementMain main) { - this.main = Objects.requireNonNull(main, "AdvancementMain is null."); - this.commandsCommon = new CommandsCommon<>(main, CommandAPI::failWithString); - } - - @SuppressWarnings("unchecked") - public void register() { - CommandAPICommand mainCommand = new CommandAPICommand("ultimateadvancementapi").withPermission(PERMISSION_MAIN_COMMAND).withAliases("uladvapi", "uladv", "uaapi").executes((sender, args) -> { - sender.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi ..."); - }); - - CommandAPICommand grant = new CommandAPICommand("grant").withPermission(PERMISSION_GRANT).executes((sender, args) -> { - sender.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi grant ..."); - }).withSubcommands( - new CommandAPICommand("all").withPermission(PERMISSION_GRANT_ALL).executesPlayer((Player player, CommandArguments args) -> commandsCommon.grantAll(player, player, true)).executes((sender, args) -> { - sender.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi grant all [giveRewards]"); - }), - new CommandAPICommand("all").withPermission(PERMISSION_GRANT_ALL).withArguments(new EntitySelectorArgument.ManyPlayers("player")).executes((CommandSender sender, CommandArguments args) -> commandsCommon.grantAll(sender, (Collection) args.get("player"), true)), - new CommandAPICommand("all").withPermission(PERMISSION_GRANT_ALL).withArguments(new EntitySelectorArgument.ManyPlayers("player"), new BooleanArgument("giveRewards")).executes((CommandSender sender, CommandArguments args) -> commandsCommon.grantAll(sender, (Collection) args.get("player"), (boolean) args.get("giveRewards"))), - - new CommandAPICommand("tab").withPermission(PERMISSION_GRANT_TAB).executesPlayer((player, args) -> { - player.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi grant tab [player] [giveRewards]"); - }).executes((sender, args) -> { - sender.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi grant tab [giveRewards]"); - }), - new CommandAPICommand("tab").withPermission(PERMISSION_GRANT_TAB).withArguments(getAdvancementTabArgument(main, "advancementTab")).executesPlayer((Player player, CommandArguments args) -> commandsCommon.grantTab(player, (AdvancementTab) args.get("advancementTab"), player, true)), - new CommandAPICommand("tab").withPermission(PERMISSION_GRANT_TAB).withArguments(getAdvancementTabArgument(main, "advancementTab"), new EntitySelectorArgument.ManyPlayers("player")).executes((CommandSender sender, CommandArguments args) -> commandsCommon.grantTab(sender, (AdvancementTab) args.get("advancementTab"), (Collection) args.get("player"), true)), - new CommandAPICommand("tab").withPermission(PERMISSION_GRANT_TAB).withArguments(getAdvancementTabArgument(main, "advancementTab"), new EntitySelectorArgument.ManyPlayers("player"), new BooleanArgument("giveRewards")).executes((CommandSender sender, CommandArguments args) -> commandsCommon.grantTab(sender, (AdvancementTab) args.get("advancementTab"), (Collection) args.get("player"), (boolean) args.get("giveRewards"))), - - new CommandAPICommand("one").withPermission(PERMISSION_GRANT_ONE).executesPlayer((player, args) -> { - player.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi grant one [player] [giveRewards]"); - }).executes((sender, args) -> { - sender.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi grant one [giveRewards]"); - }), - new CommandAPICommand("one").withPermission(PERMISSION_GRANT_ONE).withArguments(getAdvancementArgument(main, "advancement")).executesPlayer((Player player, CommandArguments args) -> commandsCommon.grantOne(player, (Advancement) args.get("advancement"), player, true)), - new CommandAPICommand("one").withPermission(PERMISSION_GRANT_ONE).withArguments(getAdvancementArgument(main, "advancement"), new EntitySelectorArgument.ManyPlayers("player")).executes((CommandSender sender, CommandArguments args) -> commandsCommon.grantOne(sender, (Advancement) args.get("advancement"), (Collection) args.get("player"), true)), - new CommandAPICommand("one").withPermission(PERMISSION_GRANT_ONE).withArguments(getAdvancementArgument(main, "advancement"), new EntitySelectorArgument.ManyPlayers("player"), new BooleanArgument("giveRewards")).executes((CommandSender sender, CommandArguments args) -> commandsCommon.grantOne(sender, (Advancement) args.get("advancement"), (Collection) args.get("player"), (boolean) args.get("giveRewards"))) - ); - - CommandAPICommand revoke = new CommandAPICommand("revoke").withPermission(PERMISSION_REVOKE).executes((sender, args) -> { - sender.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi revoke ..."); - }).withSubcommands( - new CommandAPICommand("all").withPermission(PERMISSION_REVOKE_ALL).executesPlayer((Player player, CommandArguments args) -> commandsCommon.revokeAll(player, player, false)).executes((sender, args) -> { - sender.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi revoke all [hideTab]"); - }), - new CommandAPICommand("all").withPermission(PERMISSION_REVOKE_ALL).withArguments(new EntitySelectorArgument.ManyPlayers("player")).executes((CommandSender sender, CommandArguments args) -> commandsCommon.revokeAll(sender, (Collection) args.get("player"), false)), - new CommandAPICommand("all").withPermission(PERMISSION_REVOKE_ALL).withArguments(new EntitySelectorArgument.ManyPlayers("player"), new BooleanArgument("hideTabs")).executes((CommandSender sender, CommandArguments args) -> commandsCommon.revokeAll(sender, (Collection) args.get("player"), (boolean) args.get("hideTabs"))), - - new CommandAPICommand("tab").withPermission(PERMISSION_REVOKE_TAB).executesPlayer((player, args) -> { - player.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi revoke tab [player] [hideTab]"); - }).executes((sender, args) -> { - sender.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi revoke tab [hideTab]"); - }), - new CommandAPICommand("tab").withPermission(PERMISSION_REVOKE_TAB).withArguments(getAdvancementTabArgument(main, "advancementTab")).executesPlayer((Player player, CommandArguments args) -> commandsCommon.revokeTab(player, (AdvancementTab) args.get("advancementTab"), player, false)), - new CommandAPICommand("tab").withPermission(PERMISSION_REVOKE_TAB).withArguments(getAdvancementTabArgument(main, "advancementTab"), new EntitySelectorArgument.ManyPlayers("player")).executes((CommandSender sender, CommandArguments args) -> commandsCommon.revokeTab(sender, (AdvancementTab) args.get("advancementTab"), (Collection) args.get("player"), false)), - new CommandAPICommand("tab").withPermission(PERMISSION_REVOKE_TAB).withArguments(getAdvancementTabArgument(main, "advancementTab"), new EntitySelectorArgument.ManyPlayers("player"), new BooleanArgument("hideTab")).executes((CommandSender sender, CommandArguments args) -> commandsCommon.revokeTab(sender, (AdvancementTab) args.get("advancementTab"), (Collection) args.get("player"), (boolean) args.get("hideTabs"))), - - new CommandAPICommand("one").withPermission(PERMISSION_REVOKE_ONE).executesPlayer((player, args) -> { - player.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi revoke one [player]"); - }).executes((sender, args) -> { - sender.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi revoke one "); - }), - new CommandAPICommand("one").withPermission(PERMISSION_REVOKE_ONE).withArguments(getAdvancementArgument(main, "advancement")).executesPlayer((Player player, CommandArguments args) -> commandsCommon.revokeOne(player, (Advancement) args.get("advancement"), player)), - new CommandAPICommand("one").withPermission(PERMISSION_REVOKE_ONE).withArguments(getAdvancementArgument(main, "advancement"), new EntitySelectorArgument.ManyPlayers("player")).executes((CommandSender sender, CommandArguments args) -> commandsCommon.revokeOne(sender, (Advancement) args.get("advancement"), (Collection) args.get("player"))) - ); - - CommandAPICommand progression = new CommandAPICommand("progression").withPermission(PERMISSION_PROGRESSION).executes((sender, args) -> { - sender.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi progression ..."); - }).withSubcommands(new CommandAPICommand("get").withPermission(PERMISSION_PROGRESSION_GET).executesPlayer((player, args) -> { - player.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi progression get [player]"); - }).executes((sender, args) -> { - sender.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi progression get "); - }), - new CommandAPICommand("get").withPermission(PERMISSION_PROGRESSION_GET).withArguments(getAdvancementArgument(main, "advancement")).executesPlayer((Player player, CommandArguments args) -> commandsCommon.getProgression(player, (Advancement) args.get("advancement"), player)), - new CommandAPICommand("get").withPermission(PERMISSION_PROGRESSION_GET).withArguments(getAdvancementArgument(main, "advancement"), new EntitySelectorArgument.ManyPlayers("player")).executes((CommandSender sender, CommandArguments args) -> commandsCommon.getProgression(sender, (Advancement) args.get("advancement"), (Collection) args.get("player"))), - - new CommandAPICommand("set").withPermission(PERMISSION_PROGRESSION_SET).executesPlayer((player, args) -> { - player.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi progression set [player] [giveRewards]"); - }).executes((sender, args) -> { - sender.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi progression set [giveRewards]"); - }), - new CommandAPICommand("set").withPermission(PERMISSION_PROGRESSION_SET).withArguments(getAdvancementArgument(main, "advancement"), new IntegerArgument("progression", 0)).executesPlayer((Player player, CommandArguments args) -> commandsCommon.setProgression(player, (Advancement) args.get("advancement"), (int) args.get("progression"), player, true)), - new CommandAPICommand("set").withPermission(PERMISSION_PROGRESSION_SET).withArguments(getAdvancementArgument(main, "advancement"), new IntegerArgument("progression", 0), new EntitySelectorArgument.ManyPlayers("player")).executes((CommandSender sender, CommandArguments args) -> commandsCommon.setProgression(sender, (Advancement) args.get("advancement"), (int) args.get("progression"), (Collection) args.get("player"), true)), - new CommandAPICommand("set").withPermission(PERMISSION_PROGRESSION_SET).withArguments(getAdvancementArgument(main, "advancement"), new IntegerArgument("progression", 0), new EntitySelectorArgument.ManyPlayers("player"), new BooleanArgument("giveRewards")).executes((CommandSender sender, CommandArguments args) -> commandsCommon.setProgression(sender, (Advancement) args.get("advancement"), (int) args.get("progression"), (Collection) args.get("player"), (boolean) args.get("giveRewards"))) - ); - - mainCommand.withSubcommands( - progression, - grant, - revoke - ); - - mainCommand.withHelp("Command to handle advancements.", "Command to grant/revoke/update player's advancements."); - mainCommand.register(); - } -} diff --git a/Commands/CommandAPI-11.2.0/pom.xml b/Commands/CommandAPI-12.0.0/pom.xml similarity index 88% rename from Commands/CommandAPI-11.2.0/pom.xml rename to Commands/CommandAPI-12.0.0/pom.xml index 4ca35224..e0f439ce 100644 --- a/Commands/CommandAPI-11.2.0/pom.xml +++ b/Commands/CommandAPI-12.0.0/pom.xml @@ -7,11 +7,11 @@ com.frengor ultimateadvancementapi-commands-parent - 2.8.0 + 2.8.1 - ultimateadvancementapi-commands-commandapi-11.2.0 - UltimateAdvancementAPI-Commands-CommandAPI-11.2.0 + ultimateadvancementapi-commands-commandapi-12.0.0 + UltimateAdvancementAPI-Commands-CommandAPI-12.0.0 ${parent.url} jar @@ -28,7 +28,7 @@ dev.jorel commandapi-spigot-core - 11.2.0 + 12.0.0 provided @@ -52,4 +52,4 @@ - \ No newline at end of file + diff --git a/Commands/CommandAPI-11.2.0/src/main/java/com/fren_gor/ultimateAdvancementAPI/commands/commandAPI_v11_2_0/AdvancementArgument.java b/Commands/CommandAPI-12.0.0/src/main/java/com/fren_gor/ultimateAdvancementAPI/commands/commandAPI_v12_0_0/AdvancementArgument.java similarity index 99% rename from Commands/CommandAPI-11.2.0/src/main/java/com/fren_gor/ultimateAdvancementAPI/commands/commandAPI_v11_2_0/AdvancementArgument.java rename to Commands/CommandAPI-12.0.0/src/main/java/com/fren_gor/ultimateAdvancementAPI/commands/commandAPI_v12_0_0/AdvancementArgument.java index 6c1199f9..1858b3d1 100644 --- a/Commands/CommandAPI-11.2.0/src/main/java/com/fren_gor/ultimateAdvancementAPI/commands/commandAPI_v11_2_0/AdvancementArgument.java +++ b/Commands/CommandAPI-12.0.0/src/main/java/com/fren_gor/ultimateAdvancementAPI/commands/commandAPI_v12_0_0/AdvancementArgument.java @@ -1,4 +1,4 @@ -package com.fren_gor.ultimateAdvancementAPI.commands.commandAPI_v11_2_0; +package com.fren_gor.ultimateAdvancementAPI.commands.commandAPI_v12_0_0; import com.fren_gor.ultimateAdvancementAPI.AdvancementMain; import com.fren_gor.ultimateAdvancementAPI.advancement.Advancement; diff --git a/Commands/CommandAPI-11.2.0/src/main/java/com/fren_gor/ultimateAdvancementAPI/commands/commandAPI_v11_2_0/AdvancementTabArgument.java b/Commands/CommandAPI-12.0.0/src/main/java/com/fren_gor/ultimateAdvancementAPI/commands/commandAPI_v12_0_0/AdvancementTabArgument.java similarity index 99% rename from Commands/CommandAPI-11.2.0/src/main/java/com/fren_gor/ultimateAdvancementAPI/commands/commandAPI_v11_2_0/AdvancementTabArgument.java rename to Commands/CommandAPI-12.0.0/src/main/java/com/fren_gor/ultimateAdvancementAPI/commands/commandAPI_v12_0_0/AdvancementTabArgument.java index b1bef113..d8f6b8cb 100644 --- a/Commands/CommandAPI-11.2.0/src/main/java/com/fren_gor/ultimateAdvancementAPI/commands/commandAPI_v11_2_0/AdvancementTabArgument.java +++ b/Commands/CommandAPI-12.0.0/src/main/java/com/fren_gor/ultimateAdvancementAPI/commands/commandAPI_v12_0_0/AdvancementTabArgument.java @@ -1,4 +1,4 @@ -package com.fren_gor.ultimateAdvancementAPI.commands.commandAPI_v11_2_0; +package com.fren_gor.ultimateAdvancementAPI.commands.commandAPI_v12_0_0; import com.fren_gor.ultimateAdvancementAPI.AdvancementMain; import com.fren_gor.ultimateAdvancementAPI.AdvancementTab; diff --git a/Commands/CommandAPI-11.2.0/src/main/java/com/fren_gor/ultimateAdvancementAPI/commands/commandAPI_v11_2_0/CommandAPIManager.java b/Commands/CommandAPI-12.0.0/src/main/java/com/fren_gor/ultimateAdvancementAPI/commands/commandAPI_v12_0_0/CommandAPIManager.java similarity index 82% rename from Commands/CommandAPI-11.2.0/src/main/java/com/fren_gor/ultimateAdvancementAPI/commands/commandAPI_v11_2_0/CommandAPIManager.java rename to Commands/CommandAPI-12.0.0/src/main/java/com/fren_gor/ultimateAdvancementAPI/commands/commandAPI_v12_0_0/CommandAPIManager.java index b6e046fc..ab0e2d65 100644 --- a/Commands/CommandAPI-11.2.0/src/main/java/com/fren_gor/ultimateAdvancementAPI/commands/commandAPI_v11_2_0/CommandAPIManager.java +++ b/Commands/CommandAPI-12.0.0/src/main/java/com/fren_gor/ultimateAdvancementAPI/commands/commandAPI_v12_0_0/CommandAPIManager.java @@ -1,4 +1,4 @@ -package com.fren_gor.ultimateAdvancementAPI.commands.commandAPI_v11_2_0; +package com.fren_gor.ultimateAdvancementAPI.commands.commandAPI_v12_0_0; import com.fren_gor.ultimateAdvancementAPI.AdvancementMain; import com.fren_gor.ultimateAdvancementAPI.commands.CommandAPIManager.*; @@ -37,10 +37,10 @@ public void onLoad(@NotNull AdvancementMain main, @NotNull JavaPlugin plugin) { } CommandAPI.onLoad(config - .verboseOutput(false) - .silentLogs(true) - .enableNetworking(false) - .setNamespace(plugin.getName().toLowerCase(Locale.ENGLISH)) // Plugin names contain only latin characters present in english + .verboseOutput(false) + .silentLogs(true) + .enableNetworking(false) + .setNamespace(plugin.getName().toLowerCase(Locale.ENGLISH)) // Plugin names contain only latin characters present in english ); new UltimateAdvancementAPICommand(main).register(); @@ -55,8 +55,8 @@ public void onEnable() { public void onDisable() { if (!MojangMappingsHandler.isMojangMapped()) { // Don't run command unregistration on Paper Stream.concat( - CommandAPI.getRegisteredCommands().stream().map(RegisteredCommand::commandName), - CommandAPI.getRegisteredCommands().stream().flatMap(cmd -> Arrays.stream(cmd.aliases())) + CommandAPI.getRegisteredCommands().stream().map(RegisteredCommand::commandName), + CommandAPI.getRegisteredCommands().stream().flatMap(cmd -> Arrays.stream(cmd.aliases())) ).distinct().forEach(command -> { CommandAPI.unregister(command, true); }); diff --git a/Commands/CommandAPI-12.0.0/src/main/java/com/fren_gor/ultimateAdvancementAPI/commands/commandAPI_v12_0_0/UltimateAdvancementAPICommand.java b/Commands/CommandAPI-12.0.0/src/main/java/com/fren_gor/ultimateAdvancementAPI/commands/commandAPI_v12_0_0/UltimateAdvancementAPICommand.java new file mode 100644 index 00000000..4d6db9a1 --- /dev/null +++ b/Commands/CommandAPI-12.0.0/src/main/java/com/fren_gor/ultimateAdvancementAPI/commands/commandAPI_v12_0_0/UltimateAdvancementAPICommand.java @@ -0,0 +1,126 @@ +package com.fren_gor.ultimateAdvancementAPI.commands.commandAPI_v12_0_0; + +import com.fren_gor.ultimateAdvancementAPI.AdvancementMain; +import com.fren_gor.ultimateAdvancementAPI.AdvancementTab; +import com.fren_gor.ultimateAdvancementAPI.advancement.Advancement; +import com.fren_gor.ultimateAdvancementAPI.commands.CommandsCommon; +import dev.jorel.commandapi.CommandAPI; +import dev.jorel.commandapi.CommandAPICommand; +import dev.jorel.commandapi.arguments.BooleanArgument; +import dev.jorel.commandapi.arguments.EntitySelectorArgument; +import dev.jorel.commandapi.arguments.IntegerArgument; +import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException; +import dev.jorel.commandapi.executors.CommandArguments; +import org.bukkit.ChatColor; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; +import org.jetbrains.annotations.NotNull; + +import java.util.Collection; +import java.util.Objects; + +import static com.fren_gor.ultimateAdvancementAPI.commands.CommandAPIManager.*; +import static com.fren_gor.ultimateAdvancementAPI.commands.commandAPI_v12_0_0.AdvancementArgument.getAdvancementArgument; +import static com.fren_gor.ultimateAdvancementAPI.commands.commandAPI_v12_0_0.AdvancementTabArgument.getAdvancementTabArgument; + +public class UltimateAdvancementAPICommand { + + private final AdvancementMain main; + private final CommandsCommon commandsCommon; + + protected UltimateAdvancementAPICommand(@NotNull AdvancementMain main) { + this.main = Objects.requireNonNull(main, "AdvancementMain is null."); + this.commandsCommon = new CommandsCommon<>(main, CommandAPI::failWithString); + } + + @SuppressWarnings("unchecked") + public void register() { + CommandAPICommand mainCommand = new CommandAPICommand("ultimateadvancementapi").withPermission(PERMISSION_MAIN_COMMAND).withAliases("uladvapi", "uladv", "uaapi").executes((sender, args) -> { + sender.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi ..."); + }); + + CommandAPICommand grant = new CommandAPICommand("grant").withPermission(PERMISSION_GRANT).executes((sender, args) -> { + sender.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi grant ..."); + }).withSubcommands( + new CommandAPICommand("all").withPermission(PERMISSION_GRANT_ALL).executesPlayer((Player player, CommandArguments args) -> commandsCommon.grantAll(player, player, true)).executes((sender, args) -> { + sender.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi grant all [giveRewards]"); + }), + new CommandAPICommand("all").withPermission(PERMISSION_GRANT_ALL).withArguments(new EntitySelectorArgument.ManyPlayers("player")).executes((CommandSender sender, CommandArguments args) -> commandsCommon.grantAll(sender, (Collection) args.get("player"), true)), + new CommandAPICommand("all").withPermission(PERMISSION_GRANT_ALL).withArguments(new EntitySelectorArgument.ManyPlayers("player"), new BooleanArgument("giveRewards")).executes((CommandSender sender, CommandArguments args) -> commandsCommon.grantAll(sender, (Collection) args.get("player"), (boolean) args.get("giveRewards"))), + + new CommandAPICommand("tab").withPermission(PERMISSION_GRANT_TAB).executesPlayer((player, args) -> { + player.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi grant tab [player] [giveRewards]"); + }).executes((sender, args) -> { + sender.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi grant tab [giveRewards]"); + }), + new CommandAPICommand("tab").withPermission(PERMISSION_GRANT_TAB).withArguments(getAdvancementTabArgument(main, "advancementTab")).executesPlayer((Player player, CommandArguments args) -> commandsCommon.grantTab(player, (AdvancementTab) args.get("advancementTab"), player, true)), + new CommandAPICommand("tab").withPermission(PERMISSION_GRANT_TAB).withArguments(getAdvancementTabArgument(main, "advancementTab"), new EntitySelectorArgument.ManyPlayers("player")).executes((CommandSender sender, CommandArguments args) -> commandsCommon.grantTab(sender, (AdvancementTab) args.get("advancementTab"), (Collection) args.get("player"), true)), + new CommandAPICommand("tab").withPermission(PERMISSION_GRANT_TAB).withArguments(getAdvancementTabArgument(main, "advancementTab"), new EntitySelectorArgument.ManyPlayers("player"), new BooleanArgument("giveRewards")).executes((CommandSender sender, CommandArguments args) -> commandsCommon.grantTab(sender, (AdvancementTab) args.get("advancementTab"), (Collection) args.get("player"), (boolean) args.get("giveRewards"))), + + new CommandAPICommand("one").withPermission(PERMISSION_GRANT_ONE).executesPlayer((player, args) -> { + player.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi grant one [player] [giveRewards]"); + }).executes((sender, args) -> { + sender.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi grant one [giveRewards]"); + }), + new CommandAPICommand("one").withPermission(PERMISSION_GRANT_ONE).withArguments(getAdvancementArgument(main, "advancement")).executesPlayer((Player player, CommandArguments args) -> commandsCommon.grantOne(player, (Advancement) args.get("advancement"), player, true)), + new CommandAPICommand("one").withPermission(PERMISSION_GRANT_ONE).withArguments(getAdvancementArgument(main, "advancement"), new EntitySelectorArgument.ManyPlayers("player")).executes((CommandSender sender, CommandArguments args) -> commandsCommon.grantOne(sender, (Advancement) args.get("advancement"), (Collection) args.get("player"), true)), + new CommandAPICommand("one").withPermission(PERMISSION_GRANT_ONE).withArguments(getAdvancementArgument(main, "advancement"), new EntitySelectorArgument.ManyPlayers("player"), new BooleanArgument("giveRewards")).executes((CommandSender sender, CommandArguments args) -> commandsCommon.grantOne(sender, (Advancement) args.get("advancement"), (Collection) args.get("player"), (boolean) args.get("giveRewards"))) + ); + + CommandAPICommand revoke = new CommandAPICommand("revoke").withPermission(PERMISSION_REVOKE).executes((sender, args) -> { + sender.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi revoke ..."); + }).withSubcommands( + new CommandAPICommand("all").withPermission(PERMISSION_REVOKE_ALL).executesPlayer((Player player, CommandArguments args) -> commandsCommon.revokeAll(player, player, false)).executes((sender, args) -> { + sender.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi revoke all [hideTab]"); + }), + new CommandAPICommand("all").withPermission(PERMISSION_REVOKE_ALL).withArguments(new EntitySelectorArgument.ManyPlayers("player")).executes((CommandSender sender, CommandArguments args) -> commandsCommon.revokeAll(sender, (Collection) args.get("player"), false)), + new CommandAPICommand("all").withPermission(PERMISSION_REVOKE_ALL).withArguments(new EntitySelectorArgument.ManyPlayers("player"), new BooleanArgument("hideTabs")).executes((CommandSender sender, CommandArguments args) -> commandsCommon.revokeAll(sender, (Collection) args.get("player"), (boolean) args.get("hideTabs"))), + + new CommandAPICommand("tab").withPermission(PERMISSION_REVOKE_TAB).executesPlayer((player, args) -> { + player.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi revoke tab [player] [hideTab]"); + }).executes((sender, args) -> { + sender.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi revoke tab [hideTab]"); + }), + new CommandAPICommand("tab").withPermission(PERMISSION_REVOKE_TAB).withArguments(getAdvancementTabArgument(main, "advancementTab")).executesPlayer((Player player, CommandArguments args) -> commandsCommon.revokeTab(player, (AdvancementTab) args.get("advancementTab"), player, false)), + new CommandAPICommand("tab").withPermission(PERMISSION_REVOKE_TAB).withArguments(getAdvancementTabArgument(main, "advancementTab"), new EntitySelectorArgument.ManyPlayers("player")).executes((CommandSender sender, CommandArguments args) -> commandsCommon.revokeTab(sender, (AdvancementTab) args.get("advancementTab"), (Collection) args.get("player"), false)), + new CommandAPICommand("tab").withPermission(PERMISSION_REVOKE_TAB).withArguments(getAdvancementTabArgument(main, "advancementTab"), new EntitySelectorArgument.ManyPlayers("player"), new BooleanArgument("hideTab")).executes((CommandSender sender, CommandArguments args) -> commandsCommon.revokeTab(sender, (AdvancementTab) args.get("advancementTab"), (Collection) args.get("player"), (boolean) args.get("hideTabs"))), + + new CommandAPICommand("one").withPermission(PERMISSION_REVOKE_ONE).executesPlayer((player, args) -> { + player.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi revoke one [player]"); + }).executes((sender, args) -> { + sender.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi revoke one "); + }), + new CommandAPICommand("one").withPermission(PERMISSION_REVOKE_ONE).withArguments(getAdvancementArgument(main, "advancement")).executesPlayer((Player player, CommandArguments args) -> commandsCommon.revokeOne(player, (Advancement) args.get("advancement"), player)), + new CommandAPICommand("one").withPermission(PERMISSION_REVOKE_ONE).withArguments(getAdvancementArgument(main, "advancement"), new EntitySelectorArgument.ManyPlayers("player")).executes((CommandSender sender, CommandArguments args) -> commandsCommon.revokeOne(sender, (Advancement) args.get("advancement"), (Collection) args.get("player"))) + ); + + CommandAPICommand progression = new CommandAPICommand("progression").withPermission(PERMISSION_PROGRESSION).executes((sender, args) -> { + sender.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi progression ..."); + }).withSubcommands(new CommandAPICommand("get").withPermission(PERMISSION_PROGRESSION_GET).executesPlayer((player, args) -> { + player.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi progression get [player]"); + }).executes((sender, args) -> { + sender.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi progression get "); + }), + new CommandAPICommand("get").withPermission(PERMISSION_PROGRESSION_GET).withArguments(getAdvancementArgument(main, "advancement")).executesPlayer((Player player, CommandArguments args) -> commandsCommon.getProgression(player, (Advancement) args.get("advancement"), player)), + new CommandAPICommand("get").withPermission(PERMISSION_PROGRESSION_GET).withArguments(getAdvancementArgument(main, "advancement"), new EntitySelectorArgument.ManyPlayers("player")).executes((CommandSender sender, CommandArguments args) -> commandsCommon.getProgression(sender, (Advancement) args.get("advancement"), (Collection) args.get("player"))), + + new CommandAPICommand("set").withPermission(PERMISSION_PROGRESSION_SET).executesPlayer((player, args) -> { + player.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi progression set [player] [giveRewards]"); + }).executes((sender, args) -> { + sender.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi progression set [giveRewards]"); + }), + new CommandAPICommand("set").withPermission(PERMISSION_PROGRESSION_SET).withArguments(getAdvancementArgument(main, "advancement"), new IntegerArgument("progression", 0)).executesPlayer((Player player, CommandArguments args) -> commandsCommon.setProgression(player, (Advancement) args.get("advancement"), (int) args.get("progression"), player, true)), + new CommandAPICommand("set").withPermission(PERMISSION_PROGRESSION_SET).withArguments(getAdvancementArgument(main, "advancement"), new IntegerArgument("progression", 0), new EntitySelectorArgument.ManyPlayers("player")).executes((CommandSender sender, CommandArguments args) -> commandsCommon.setProgression(sender, (Advancement) args.get("advancement"), (int) args.get("progression"), (Collection) args.get("player"), true)), + new CommandAPICommand("set").withPermission(PERMISSION_PROGRESSION_SET).withArguments(getAdvancementArgument(main, "advancement"), new IntegerArgument("progression", 0), new EntitySelectorArgument.ManyPlayers("player"), new BooleanArgument("giveRewards")).executes((CommandSender sender, CommandArguments args) -> commandsCommon.setProgression(sender, (Advancement) args.get("advancement"), (int) args.get("progression"), (Collection) args.get("player"), (boolean) args.get("giveRewards"))) + ); + + mainCommand.withSubcommands( + progression, + grant, + revoke + ); + + mainCommand.withHelp("Command to handle advancements.", "Command to grant/revoke/update player's advancements."); + mainCommand.register(); + } +} diff --git a/Commands/CommandAPI-9.3.0/pom.xml b/Commands/CommandAPI-9.3.0/pom.xml index f5d01265..5901e24e 100644 --- a/Commands/CommandAPI-9.3.0/pom.xml +++ b/Commands/CommandAPI-9.3.0/pom.xml @@ -7,7 +7,7 @@ com.frengor ultimateadvancementapi-commands-parent - 2.8.0 + 2.8.1 ultimateadvancementapi-commands-commandapi-9.3.0 diff --git a/Commands/CommandAPI-9.3.0/src/main/java/com/fren_gor/ultimateAdvancementAPI/commands/commandAPI_v9_3_0/UltimateAdvancementAPICommand.java b/Commands/CommandAPI-9.3.0/src/main/java/com/fren_gor/ultimateAdvancementAPI/commands/commandAPI_v9_3_0/UltimateAdvancementAPICommand.java index 03dcdbb3..dcc792ed 100644 --- a/Commands/CommandAPI-9.3.0/src/main/java/com/fren_gor/ultimateAdvancementAPI/commands/commandAPI_v9_3_0/UltimateAdvancementAPICommand.java +++ b/Commands/CommandAPI-9.3.0/src/main/java/com/fren_gor/ultimateAdvancementAPI/commands/commandAPI_v9_3_0/UltimateAdvancementAPICommand.java @@ -42,82 +42,82 @@ public void register() { CommandAPICommand grant = new CommandAPICommand("grant").withPermission(PERMISSION_GRANT).executes((sender, args) -> { sender.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi grant ..."); }).withSubcommands( - new CommandAPICommand("all").withPermission(PERMISSION_GRANT_ALL).executesPlayer((Player player, CommandArguments args) -> commandsCommon.grantAll(player, player, true)).executes((sender, args) -> { - sender.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi grant all [giveRewards]"); - }), - new CommandAPICommand("all").withPermission(PERMISSION_GRANT_ALL).withArguments(new EntitySelectorArgument.ManyPlayers("player")).executes((CommandSender sender, CommandArguments args) -> commandsCommon.grantAll(sender, (Collection) args.get("player"), true)), - new CommandAPICommand("all").withPermission(PERMISSION_GRANT_ALL).withArguments(new EntitySelectorArgument.ManyPlayers("player"), new BooleanArgument("giveRewards")).executes((CommandSender sender, CommandArguments args) -> commandsCommon.grantAll(sender, (Collection) args.get("player"), (boolean) args.get("giveRewards"))), - - new CommandAPICommand("tab").withPermission(PERMISSION_GRANT_TAB).executesPlayer((player, args) -> { - player.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi grant tab [player] [giveRewards]"); - }).executes((sender, args) -> { - sender.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi grant tab [giveRewards]"); - }), - new CommandAPICommand("tab").withPermission(PERMISSION_GRANT_TAB).withArguments(getAdvancementTabArgument(main, "advancementTab")).executesPlayer((Player player, CommandArguments args) -> commandsCommon.grantTab(player, (AdvancementTab) args.get("advancementTab"), player, true)), - new CommandAPICommand("tab").withPermission(PERMISSION_GRANT_TAB).withArguments(getAdvancementTabArgument(main, "advancementTab"), new EntitySelectorArgument.ManyPlayers("player")).executes((CommandSender sender, CommandArguments args) -> commandsCommon.grantTab(sender, (AdvancementTab) args.get("advancementTab"), (Collection) args.get("player"), true)), - new CommandAPICommand("tab").withPermission(PERMISSION_GRANT_TAB).withArguments(getAdvancementTabArgument(main, "advancementTab"), new EntitySelectorArgument.ManyPlayers("player"), new BooleanArgument("giveRewards")).executes((CommandSender sender, CommandArguments args) -> commandsCommon.grantTab(sender, (AdvancementTab) args.get("advancementTab"), (Collection) args.get("player"), (boolean) args.get("giveRewards"))), - - new CommandAPICommand("one").withPermission(PERMISSION_GRANT_ONE).executesPlayer((player, args) -> { - player.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi grant one [player] [giveRewards]"); - }).executes((sender, args) -> { - sender.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi grant one [giveRewards]"); - }), - new CommandAPICommand("one").withPermission(PERMISSION_GRANT_ONE).withArguments(getAdvancementArgument(main, "advancement")).executesPlayer((Player player, CommandArguments args) -> commandsCommon.grantOne(player, (Advancement) args.get("advancement"), player, true)), - new CommandAPICommand("one").withPermission(PERMISSION_GRANT_ONE).withArguments(getAdvancementArgument(main, "advancement"), new EntitySelectorArgument.ManyPlayers("player")).executes((CommandSender sender, CommandArguments args) -> commandsCommon.grantOne(sender, (Advancement) args.get("advancement"), (Collection) args.get("player"), true)), - new CommandAPICommand("one").withPermission(PERMISSION_GRANT_ONE).withArguments(getAdvancementArgument(main, "advancement"), new EntitySelectorArgument.ManyPlayers("player"), new BooleanArgument("giveRewards")).executes((CommandSender sender, CommandArguments args) -> commandsCommon.grantOne(sender, (Advancement) args.get("advancement"), (Collection) args.get("player"), (boolean) args.get("giveRewards"))) + new CommandAPICommand("all").withPermission(PERMISSION_GRANT_ALL).executesPlayer((Player player, CommandArguments args) -> commandsCommon.grantAll(player, player, true)).executes((sender, args) -> { + sender.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi grant all [giveRewards]"); + }), + new CommandAPICommand("all").withPermission(PERMISSION_GRANT_ALL).withArguments(new EntitySelectorArgument.ManyPlayers("player")).executes((CommandSender sender, CommandArguments args) -> commandsCommon.grantAll(sender, (Collection) args.get("player"), true)), + new CommandAPICommand("all").withPermission(PERMISSION_GRANT_ALL).withArguments(new EntitySelectorArgument.ManyPlayers("player"), new BooleanArgument("giveRewards")).executes((CommandSender sender, CommandArguments args) -> commandsCommon.grantAll(sender, (Collection) args.get("player"), (boolean) args.get("giveRewards"))), + + new CommandAPICommand("tab").withPermission(PERMISSION_GRANT_TAB).executesPlayer((player, args) -> { + player.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi grant tab [player] [giveRewards]"); + }).executes((sender, args) -> { + sender.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi grant tab [giveRewards]"); + }), + new CommandAPICommand("tab").withPermission(PERMISSION_GRANT_TAB).withArguments(getAdvancementTabArgument(main, "advancementTab")).executesPlayer((Player player, CommandArguments args) -> commandsCommon.grantTab(player, (AdvancementTab) args.get("advancementTab"), player, true)), + new CommandAPICommand("tab").withPermission(PERMISSION_GRANT_TAB).withArguments(getAdvancementTabArgument(main, "advancementTab"), new EntitySelectorArgument.ManyPlayers("player")).executes((CommandSender sender, CommandArguments args) -> commandsCommon.grantTab(sender, (AdvancementTab) args.get("advancementTab"), (Collection) args.get("player"), true)), + new CommandAPICommand("tab").withPermission(PERMISSION_GRANT_TAB).withArguments(getAdvancementTabArgument(main, "advancementTab"), new EntitySelectorArgument.ManyPlayers("player"), new BooleanArgument("giveRewards")).executes((CommandSender sender, CommandArguments args) -> commandsCommon.grantTab(sender, (AdvancementTab) args.get("advancementTab"), (Collection) args.get("player"), (boolean) args.get("giveRewards"))), + + new CommandAPICommand("one").withPermission(PERMISSION_GRANT_ONE).executesPlayer((player, args) -> { + player.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi grant one [player] [giveRewards]"); + }).executes((sender, args) -> { + sender.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi grant one [giveRewards]"); + }), + new CommandAPICommand("one").withPermission(PERMISSION_GRANT_ONE).withArguments(getAdvancementArgument(main, "advancement")).executesPlayer((Player player, CommandArguments args) -> commandsCommon.grantOne(player, (Advancement) args.get("advancement"), player, true)), + new CommandAPICommand("one").withPermission(PERMISSION_GRANT_ONE).withArguments(getAdvancementArgument(main, "advancement"), new EntitySelectorArgument.ManyPlayers("player")).executes((CommandSender sender, CommandArguments args) -> commandsCommon.grantOne(sender, (Advancement) args.get("advancement"), (Collection) args.get("player"), true)), + new CommandAPICommand("one").withPermission(PERMISSION_GRANT_ONE).withArguments(getAdvancementArgument(main, "advancement"), new EntitySelectorArgument.ManyPlayers("player"), new BooleanArgument("giveRewards")).executes((CommandSender sender, CommandArguments args) -> commandsCommon.grantOne(sender, (Advancement) args.get("advancement"), (Collection) args.get("player"), (boolean) args.get("giveRewards"))) ); CommandAPICommand revoke = new CommandAPICommand("revoke").withPermission(PERMISSION_REVOKE).executes((sender, args) -> { sender.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi revoke ..."); }).withSubcommands( - new CommandAPICommand("all").withPermission(PERMISSION_REVOKE_ALL).executesPlayer((Player player, CommandArguments args) -> commandsCommon.revokeAll(player, player, false)).executes((sender, args) -> { - sender.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi revoke all [hideTab]"); - }), - new CommandAPICommand("all").withPermission(PERMISSION_REVOKE_ALL).withArguments(new EntitySelectorArgument.ManyPlayers("player")).executes((CommandSender sender, CommandArguments args) -> commandsCommon.revokeAll(sender, (Collection) args.get("player"), false)), - new CommandAPICommand("all").withPermission(PERMISSION_REVOKE_ALL).withArguments(new EntitySelectorArgument.ManyPlayers("player"), new BooleanArgument("hideTabs")).executes((CommandSender sender, CommandArguments args) -> commandsCommon.revokeAll(sender, (Collection) args.get("player"), (boolean) args.get("hideTabs"))), - - new CommandAPICommand("tab").withPermission(PERMISSION_REVOKE_TAB).executesPlayer((player, args) -> { - player.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi revoke tab [player] [hideTab]"); - }).executes((sender, args) -> { - sender.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi revoke tab [hideTab]"); - }), - new CommandAPICommand("tab").withPermission(PERMISSION_REVOKE_TAB).withArguments(getAdvancementTabArgument(main, "advancementTab")).executesPlayer((Player player, CommandArguments args) -> commandsCommon.revokeTab(player, (AdvancementTab) args.get("advancementTab"), player, false)), - new CommandAPICommand("tab").withPermission(PERMISSION_REVOKE_TAB).withArguments(getAdvancementTabArgument(main, "advancementTab"), new EntitySelectorArgument.ManyPlayers("player")).executes((CommandSender sender, CommandArguments args) -> commandsCommon.revokeTab(sender, (AdvancementTab) args.get("advancementTab"), (Collection) args.get("player"), false)), - new CommandAPICommand("tab").withPermission(PERMISSION_REVOKE_TAB).withArguments(getAdvancementTabArgument(main, "advancementTab"), new EntitySelectorArgument.ManyPlayers("player"), new BooleanArgument("hideTab")).executes((CommandSender sender, CommandArguments args) -> commandsCommon.revokeTab(sender, (AdvancementTab) args.get("advancementTab"), (Collection) args.get("player"), (boolean) args.get("hideTabs"))), - - new CommandAPICommand("one").withPermission(PERMISSION_REVOKE_ONE).executesPlayer((player, args) -> { - player.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi revoke one [player]"); - }).executes((sender, args) -> { - sender.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi revoke one "); - }), - new CommandAPICommand("one").withPermission(PERMISSION_REVOKE_ONE).withArguments(getAdvancementArgument(main, "advancement")).executesPlayer((Player player, CommandArguments args) -> commandsCommon.revokeOne(player, (Advancement) args.get("advancement"), player)), - new CommandAPICommand("one").withPermission(PERMISSION_REVOKE_ONE).withArguments(getAdvancementArgument(main, "advancement"), new EntitySelectorArgument.ManyPlayers("player")).executes((CommandSender sender, CommandArguments args) -> commandsCommon.revokeOne(sender, (Advancement) args.get("advancement"), (Collection) args.get("player"))) + new CommandAPICommand("all").withPermission(PERMISSION_REVOKE_ALL).executesPlayer((Player player, CommandArguments args) -> commandsCommon.revokeAll(player, player, false)).executes((sender, args) -> { + sender.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi revoke all [hideTab]"); + }), + new CommandAPICommand("all").withPermission(PERMISSION_REVOKE_ALL).withArguments(new EntitySelectorArgument.ManyPlayers("player")).executes((CommandSender sender, CommandArguments args) -> commandsCommon.revokeAll(sender, (Collection) args.get("player"), false)), + new CommandAPICommand("all").withPermission(PERMISSION_REVOKE_ALL).withArguments(new EntitySelectorArgument.ManyPlayers("player"), new BooleanArgument("hideTabs")).executes((CommandSender sender, CommandArguments args) -> commandsCommon.revokeAll(sender, (Collection) args.get("player"), (boolean) args.get("hideTabs"))), + + new CommandAPICommand("tab").withPermission(PERMISSION_REVOKE_TAB).executesPlayer((player, args) -> { + player.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi revoke tab [player] [hideTab]"); + }).executes((sender, args) -> { + sender.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi revoke tab [hideTab]"); + }), + new CommandAPICommand("tab").withPermission(PERMISSION_REVOKE_TAB).withArguments(getAdvancementTabArgument(main, "advancementTab")).executesPlayer((Player player, CommandArguments args) -> commandsCommon.revokeTab(player, (AdvancementTab) args.get("advancementTab"), player, false)), + new CommandAPICommand("tab").withPermission(PERMISSION_REVOKE_TAB).withArguments(getAdvancementTabArgument(main, "advancementTab"), new EntitySelectorArgument.ManyPlayers("player")).executes((CommandSender sender, CommandArguments args) -> commandsCommon.revokeTab(sender, (AdvancementTab) args.get("advancementTab"), (Collection) args.get("player"), false)), + new CommandAPICommand("tab").withPermission(PERMISSION_REVOKE_TAB).withArguments(getAdvancementTabArgument(main, "advancementTab"), new EntitySelectorArgument.ManyPlayers("player"), new BooleanArgument("hideTab")).executes((CommandSender sender, CommandArguments args) -> commandsCommon.revokeTab(sender, (AdvancementTab) args.get("advancementTab"), (Collection) args.get("player"), (boolean) args.get("hideTabs"))), + + new CommandAPICommand("one").withPermission(PERMISSION_REVOKE_ONE).executesPlayer((player, args) -> { + player.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi revoke one [player]"); + }).executes((sender, args) -> { + sender.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi revoke one "); + }), + new CommandAPICommand("one").withPermission(PERMISSION_REVOKE_ONE).withArguments(getAdvancementArgument(main, "advancement")).executesPlayer((Player player, CommandArguments args) -> commandsCommon.revokeOne(player, (Advancement) args.get("advancement"), player)), + new CommandAPICommand("one").withPermission(PERMISSION_REVOKE_ONE).withArguments(getAdvancementArgument(main, "advancement"), new EntitySelectorArgument.ManyPlayers("player")).executes((CommandSender sender, CommandArguments args) -> commandsCommon.revokeOne(sender, (Advancement) args.get("advancement"), (Collection) args.get("player"))) ); CommandAPICommand progression = new CommandAPICommand("progression").withPermission(PERMISSION_PROGRESSION).executes((sender, args) -> { sender.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi progression ..."); }).withSubcommands(new CommandAPICommand("get").withPermission(PERMISSION_PROGRESSION_GET).executesPlayer((player, args) -> { - player.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi progression get [player]"); - }).executes((sender, args) -> { - sender.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi progression get "); - }), - new CommandAPICommand("get").withPermission(PERMISSION_PROGRESSION_GET).withArguments(getAdvancementArgument(main, "advancement")).executesPlayer((Player player, CommandArguments args) -> commandsCommon.getProgression(player, (Advancement) args.get("advancement"), player)), - new CommandAPICommand("get").withPermission(PERMISSION_PROGRESSION_GET).withArguments(getAdvancementArgument(main, "advancement"), new EntitySelectorArgument.ManyPlayers("player")).executes((CommandSender sender, CommandArguments args) -> commandsCommon.getProgression(sender, (Advancement) args.get("advancement"), (Collection) args.get("player"))), - - new CommandAPICommand("set").withPermission(PERMISSION_PROGRESSION_SET).executesPlayer((player, args) -> { - player.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi progression set [player] [giveRewards]"); - }).executes((sender, args) -> { - sender.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi progression set [giveRewards]"); - }), - new CommandAPICommand("set").withPermission(PERMISSION_PROGRESSION_SET).withArguments(getAdvancementArgument(main, "advancement"), new IntegerArgument("progression", 0)).executesPlayer((Player player, CommandArguments args) -> commandsCommon.setProgression(player, (Advancement) args.get("advancement"), (int) args.get("progression"), player, true)), - new CommandAPICommand("set").withPermission(PERMISSION_PROGRESSION_SET).withArguments(getAdvancementArgument(main, "advancement"), new IntegerArgument("progression", 0), new EntitySelectorArgument.ManyPlayers("player")).executes((CommandSender sender, CommandArguments args) -> commandsCommon.setProgression(sender, (Advancement) args.get("advancement"), (int) args.get("progression"), (Collection) args.get("player"), true)), - new CommandAPICommand("set").withPermission(PERMISSION_PROGRESSION_SET).withArguments(getAdvancementArgument(main, "advancement"), new IntegerArgument("progression", 0), new EntitySelectorArgument.ManyPlayers("player"), new BooleanArgument("giveRewards")).executes((CommandSender sender, CommandArguments args) -> commandsCommon.setProgression(sender, (Advancement) args.get("advancement"), (int) args.get("progression"), (Collection) args.get("player"), (boolean) args.get("giveRewards"))) + player.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi progression get [player]"); + }).executes((sender, args) -> { + sender.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi progression get "); + }), + new CommandAPICommand("get").withPermission(PERMISSION_PROGRESSION_GET).withArguments(getAdvancementArgument(main, "advancement")).executesPlayer((Player player, CommandArguments args) -> commandsCommon.getProgression(player, (Advancement) args.get("advancement"), player)), + new CommandAPICommand("get").withPermission(PERMISSION_PROGRESSION_GET).withArguments(getAdvancementArgument(main, "advancement"), new EntitySelectorArgument.ManyPlayers("player")).executes((CommandSender sender, CommandArguments args) -> commandsCommon.getProgression(sender, (Advancement) args.get("advancement"), (Collection) args.get("player"))), + + new CommandAPICommand("set").withPermission(PERMISSION_PROGRESSION_SET).executesPlayer((player, args) -> { + player.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi progression set [player] [giveRewards]"); + }).executes((sender, args) -> { + sender.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi progression set [giveRewards]"); + }), + new CommandAPICommand("set").withPermission(PERMISSION_PROGRESSION_SET).withArguments(getAdvancementArgument(main, "advancement"), new IntegerArgument("progression", 0)).executesPlayer((Player player, CommandArguments args) -> commandsCommon.setProgression(player, (Advancement) args.get("advancement"), (int) args.get("progression"), player, true)), + new CommandAPICommand("set").withPermission(PERMISSION_PROGRESSION_SET).withArguments(getAdvancementArgument(main, "advancement"), new IntegerArgument("progression", 0), new EntitySelectorArgument.ManyPlayers("player")).executes((CommandSender sender, CommandArguments args) -> commandsCommon.setProgression(sender, (Advancement) args.get("advancement"), (int) args.get("progression"), (Collection) args.get("player"), true)), + new CommandAPICommand("set").withPermission(PERMISSION_PROGRESSION_SET).withArguments(getAdvancementArgument(main, "advancement"), new IntegerArgument("progression", 0), new EntitySelectorArgument.ManyPlayers("player"), new BooleanArgument("giveRewards")).executes((CommandSender sender, CommandArguments args) -> commandsCommon.setProgression(sender, (Advancement) args.get("advancement"), (int) args.get("progression"), (Collection) args.get("player"), (boolean) args.get("giveRewards"))) ); mainCommand.withSubcommands( - progression, - grant, - revoke + progression, + grant, + revoke ); mainCommand.withHelp("Command to handle advancements.", "Command to grant/revoke/update player's advancements."); diff --git a/Commands/CommandAPI-9.7.0/pom.xml b/Commands/CommandAPI-9.7.0/pom.xml index 4ad36d12..5e073207 100644 --- a/Commands/CommandAPI-9.7.0/pom.xml +++ b/Commands/CommandAPI-9.7.0/pom.xml @@ -7,7 +7,7 @@ com.frengor ultimateadvancementapi-commands-parent - 2.8.0 + 2.8.1 ultimateadvancementapi-commands-commandapi-9.7.0 diff --git a/Commands/CommandAPI-9.7.0/src/main/java/com/fren_gor/ultimateAdvancementAPI/commands/commandAPI_v9_7_0/CommandAPIManager.java b/Commands/CommandAPI-9.7.0/src/main/java/com/fren_gor/ultimateAdvancementAPI/commands/commandAPI_v9_7_0/CommandAPIManager.java index 20fcc05f..6598c130 100644 --- a/Commands/CommandAPI-9.7.0/src/main/java/com/fren_gor/ultimateAdvancementAPI/commands/commandAPI_v9_7_0/CommandAPIManager.java +++ b/Commands/CommandAPI-9.7.0/src/main/java/com/fren_gor/ultimateAdvancementAPI/commands/commandAPI_v9_7_0/CommandAPIManager.java @@ -17,10 +17,10 @@ public CommandAPIManager() { @Override public void onLoad(@NotNull AdvancementMain main, @NotNull JavaPlugin plugin) { CommandAPI.onLoad( - new CommandAPIBukkitConfig(plugin) - .verboseOutput(false) - .silentLogs(true) - .setNamespace(plugin.getName().toLowerCase(Locale.ENGLISH)) // Plugin names contain only latin characters present in english + new CommandAPIBukkitConfig(plugin) + .verboseOutput(false) + .silentLogs(true) + .setNamespace(plugin.getName().toLowerCase(Locale.ENGLISH)) // Plugin names contain only latin characters present in english ); new UltimateAdvancementAPICommand(main).register(); diff --git a/Commands/CommandAPI-9.7.0/src/main/java/com/fren_gor/ultimateAdvancementAPI/commands/commandAPI_v9_7_0/UltimateAdvancementAPICommand.java b/Commands/CommandAPI-9.7.0/src/main/java/com/fren_gor/ultimateAdvancementAPI/commands/commandAPI_v9_7_0/UltimateAdvancementAPICommand.java index 0b74211a..6168ebe3 100644 --- a/Commands/CommandAPI-9.7.0/src/main/java/com/fren_gor/ultimateAdvancementAPI/commands/commandAPI_v9_7_0/UltimateAdvancementAPICommand.java +++ b/Commands/CommandAPI-9.7.0/src/main/java/com/fren_gor/ultimateAdvancementAPI/commands/commandAPI_v9_7_0/UltimateAdvancementAPICommand.java @@ -42,82 +42,82 @@ public void register() { CommandAPICommand grant = new CommandAPICommand("grant").withPermission(PERMISSION_GRANT).executes((sender, args) -> { sender.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi grant ..."); }).withSubcommands( - new CommandAPICommand("all").withPermission(PERMISSION_GRANT_ALL).executesPlayer((Player player, CommandArguments args) -> commandsCommon.grantAll(player, player, true)).executes((sender, args) -> { - sender.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi grant all [giveRewards]"); - }), - new CommandAPICommand("all").withPermission(PERMISSION_GRANT_ALL).withArguments(new EntitySelectorArgument.ManyPlayers("player")).executes((CommandSender sender, CommandArguments args) -> commandsCommon.grantAll(sender, (Collection) args.get("player"), true)), - new CommandAPICommand("all").withPermission(PERMISSION_GRANT_ALL).withArguments(new EntitySelectorArgument.ManyPlayers("player"), new BooleanArgument("giveRewards")).executes((CommandSender sender, CommandArguments args) -> commandsCommon.grantAll(sender, (Collection) args.get("player"), (boolean) args.get("giveRewards"))), - - new CommandAPICommand("tab").withPermission(PERMISSION_GRANT_TAB).executesPlayer((player, args) -> { - player.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi grant tab [player] [giveRewards]"); - }).executes((sender, args) -> { - sender.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi grant tab [giveRewards]"); - }), - new CommandAPICommand("tab").withPermission(PERMISSION_GRANT_TAB).withArguments(getAdvancementTabArgument(main, "advancementTab")).executesPlayer((Player player, CommandArguments args) -> commandsCommon.grantTab(player, (AdvancementTab) args.get("advancementTab"), player, true)), - new CommandAPICommand("tab").withPermission(PERMISSION_GRANT_TAB).withArguments(getAdvancementTabArgument(main, "advancementTab"), new EntitySelectorArgument.ManyPlayers("player")).executes((CommandSender sender, CommandArguments args) -> commandsCommon.grantTab(sender, (AdvancementTab) args.get("advancementTab"), (Collection) args.get("player"), true)), - new CommandAPICommand("tab").withPermission(PERMISSION_GRANT_TAB).withArguments(getAdvancementTabArgument(main, "advancementTab"), new EntitySelectorArgument.ManyPlayers("player"), new BooleanArgument("giveRewards")).executes((CommandSender sender, CommandArguments args) -> commandsCommon.grantTab(sender, (AdvancementTab) args.get("advancementTab"), (Collection) args.get("player"), (boolean) args.get("giveRewards"))), - - new CommandAPICommand("one").withPermission(PERMISSION_GRANT_ONE).executesPlayer((player, args) -> { - player.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi grant one [player] [giveRewards]"); - }).executes((sender, args) -> { - sender.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi grant one [giveRewards]"); - }), - new CommandAPICommand("one").withPermission(PERMISSION_GRANT_ONE).withArguments(getAdvancementArgument(main, "advancement")).executesPlayer((Player player, CommandArguments args) -> commandsCommon.grantOne(player, (Advancement) args.get("advancement"), player, true)), - new CommandAPICommand("one").withPermission(PERMISSION_GRANT_ONE).withArguments(getAdvancementArgument(main, "advancement"), new EntitySelectorArgument.ManyPlayers("player")).executes((CommandSender sender, CommandArguments args) -> commandsCommon.grantOne(sender, (Advancement) args.get("advancement"), (Collection) args.get("player"), true)), - new CommandAPICommand("one").withPermission(PERMISSION_GRANT_ONE).withArguments(getAdvancementArgument(main, "advancement"), new EntitySelectorArgument.ManyPlayers("player"), new BooleanArgument("giveRewards")).executes((CommandSender sender, CommandArguments args) -> commandsCommon.grantOne(sender, (Advancement) args.get("advancement"), (Collection) args.get("player"), (boolean) args.get("giveRewards"))) + new CommandAPICommand("all").withPermission(PERMISSION_GRANT_ALL).executesPlayer((Player player, CommandArguments args) -> commandsCommon.grantAll(player, player, true)).executes((sender, args) -> { + sender.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi grant all [giveRewards]"); + }), + new CommandAPICommand("all").withPermission(PERMISSION_GRANT_ALL).withArguments(new EntitySelectorArgument.ManyPlayers("player")).executes((CommandSender sender, CommandArguments args) -> commandsCommon.grantAll(sender, (Collection) args.get("player"), true)), + new CommandAPICommand("all").withPermission(PERMISSION_GRANT_ALL).withArguments(new EntitySelectorArgument.ManyPlayers("player"), new BooleanArgument("giveRewards")).executes((CommandSender sender, CommandArguments args) -> commandsCommon.grantAll(sender, (Collection) args.get("player"), (boolean) args.get("giveRewards"))), + + new CommandAPICommand("tab").withPermission(PERMISSION_GRANT_TAB).executesPlayer((player, args) -> { + player.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi grant tab [player] [giveRewards]"); + }).executes((sender, args) -> { + sender.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi grant tab [giveRewards]"); + }), + new CommandAPICommand("tab").withPermission(PERMISSION_GRANT_TAB).withArguments(getAdvancementTabArgument(main, "advancementTab")).executesPlayer((Player player, CommandArguments args) -> commandsCommon.grantTab(player, (AdvancementTab) args.get("advancementTab"), player, true)), + new CommandAPICommand("tab").withPermission(PERMISSION_GRANT_TAB).withArguments(getAdvancementTabArgument(main, "advancementTab"), new EntitySelectorArgument.ManyPlayers("player")).executes((CommandSender sender, CommandArguments args) -> commandsCommon.grantTab(sender, (AdvancementTab) args.get("advancementTab"), (Collection) args.get("player"), true)), + new CommandAPICommand("tab").withPermission(PERMISSION_GRANT_TAB).withArguments(getAdvancementTabArgument(main, "advancementTab"), new EntitySelectorArgument.ManyPlayers("player"), new BooleanArgument("giveRewards")).executes((CommandSender sender, CommandArguments args) -> commandsCommon.grantTab(sender, (AdvancementTab) args.get("advancementTab"), (Collection) args.get("player"), (boolean) args.get("giveRewards"))), + + new CommandAPICommand("one").withPermission(PERMISSION_GRANT_ONE).executesPlayer((player, args) -> { + player.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi grant one [player] [giveRewards]"); + }).executes((sender, args) -> { + sender.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi grant one [giveRewards]"); + }), + new CommandAPICommand("one").withPermission(PERMISSION_GRANT_ONE).withArguments(getAdvancementArgument(main, "advancement")).executesPlayer((Player player, CommandArguments args) -> commandsCommon.grantOne(player, (Advancement) args.get("advancement"), player, true)), + new CommandAPICommand("one").withPermission(PERMISSION_GRANT_ONE).withArguments(getAdvancementArgument(main, "advancement"), new EntitySelectorArgument.ManyPlayers("player")).executes((CommandSender sender, CommandArguments args) -> commandsCommon.grantOne(sender, (Advancement) args.get("advancement"), (Collection) args.get("player"), true)), + new CommandAPICommand("one").withPermission(PERMISSION_GRANT_ONE).withArguments(getAdvancementArgument(main, "advancement"), new EntitySelectorArgument.ManyPlayers("player"), new BooleanArgument("giveRewards")).executes((CommandSender sender, CommandArguments args) -> commandsCommon.grantOne(sender, (Advancement) args.get("advancement"), (Collection) args.get("player"), (boolean) args.get("giveRewards"))) ); CommandAPICommand revoke = new CommandAPICommand("revoke").withPermission(PERMISSION_REVOKE).executes((sender, args) -> { sender.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi revoke ..."); }).withSubcommands( - new CommandAPICommand("all").withPermission(PERMISSION_REVOKE_ALL).executesPlayer((Player player, CommandArguments args) -> commandsCommon.revokeAll(player, player, false)).executes((sender, args) -> { - sender.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi revoke all [hideTab]"); - }), - new CommandAPICommand("all").withPermission(PERMISSION_REVOKE_ALL).withArguments(new EntitySelectorArgument.ManyPlayers("player")).executes((CommandSender sender, CommandArguments args) -> commandsCommon.revokeAll(sender, (Collection) args.get("player"), false)), - new CommandAPICommand("all").withPermission(PERMISSION_REVOKE_ALL).withArguments(new EntitySelectorArgument.ManyPlayers("player"), new BooleanArgument("hideTabs")).executes((CommandSender sender, CommandArguments args) -> commandsCommon.revokeAll(sender, (Collection) args.get("player"), (boolean) args.get("hideTabs"))), - - new CommandAPICommand("tab").withPermission(PERMISSION_REVOKE_TAB).executesPlayer((player, args) -> { - player.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi revoke tab [player] [hideTab]"); - }).executes((sender, args) -> { - sender.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi revoke tab [hideTab]"); - }), - new CommandAPICommand("tab").withPermission(PERMISSION_REVOKE_TAB).withArguments(getAdvancementTabArgument(main, "advancementTab")).executesPlayer((Player player, CommandArguments args) -> commandsCommon.revokeTab(player, (AdvancementTab) args.get("advancementTab"), player, false)), - new CommandAPICommand("tab").withPermission(PERMISSION_REVOKE_TAB).withArguments(getAdvancementTabArgument(main, "advancementTab"), new EntitySelectorArgument.ManyPlayers("player")).executes((CommandSender sender, CommandArguments args) -> commandsCommon.revokeTab(sender, (AdvancementTab) args.get("advancementTab"), (Collection) args.get("player"), false)), - new CommandAPICommand("tab").withPermission(PERMISSION_REVOKE_TAB).withArguments(getAdvancementTabArgument(main, "advancementTab"), new EntitySelectorArgument.ManyPlayers("player"), new BooleanArgument("hideTab")).executes((CommandSender sender, CommandArguments args) -> commandsCommon.revokeTab(sender, (AdvancementTab) args.get("advancementTab"), (Collection) args.get("player"), (boolean) args.get("hideTabs"))), - - new CommandAPICommand("one").withPermission(PERMISSION_REVOKE_ONE).executesPlayer((player, args) -> { - player.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi revoke one [player]"); - }).executes((sender, args) -> { - sender.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi revoke one "); - }), - new CommandAPICommand("one").withPermission(PERMISSION_REVOKE_ONE).withArguments(getAdvancementArgument(main, "advancement")).executesPlayer((Player player, CommandArguments args) -> commandsCommon.revokeOne(player, (Advancement) args.get("advancement"), player)), - new CommandAPICommand("one").withPermission(PERMISSION_REVOKE_ONE).withArguments(getAdvancementArgument(main, "advancement"), new EntitySelectorArgument.ManyPlayers("player")).executes((CommandSender sender, CommandArguments args) -> commandsCommon.revokeOne(sender, (Advancement) args.get("advancement"), (Collection) args.get("player"))) + new CommandAPICommand("all").withPermission(PERMISSION_REVOKE_ALL).executesPlayer((Player player, CommandArguments args) -> commandsCommon.revokeAll(player, player, false)).executes((sender, args) -> { + sender.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi revoke all [hideTab]"); + }), + new CommandAPICommand("all").withPermission(PERMISSION_REVOKE_ALL).withArguments(new EntitySelectorArgument.ManyPlayers("player")).executes((CommandSender sender, CommandArguments args) -> commandsCommon.revokeAll(sender, (Collection) args.get("player"), false)), + new CommandAPICommand("all").withPermission(PERMISSION_REVOKE_ALL).withArguments(new EntitySelectorArgument.ManyPlayers("player"), new BooleanArgument("hideTabs")).executes((CommandSender sender, CommandArguments args) -> commandsCommon.revokeAll(sender, (Collection) args.get("player"), (boolean) args.get("hideTabs"))), + + new CommandAPICommand("tab").withPermission(PERMISSION_REVOKE_TAB).executesPlayer((player, args) -> { + player.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi revoke tab [player] [hideTab]"); + }).executes((sender, args) -> { + sender.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi revoke tab [hideTab]"); + }), + new CommandAPICommand("tab").withPermission(PERMISSION_REVOKE_TAB).withArguments(getAdvancementTabArgument(main, "advancementTab")).executesPlayer((Player player, CommandArguments args) -> commandsCommon.revokeTab(player, (AdvancementTab) args.get("advancementTab"), player, false)), + new CommandAPICommand("tab").withPermission(PERMISSION_REVOKE_TAB).withArguments(getAdvancementTabArgument(main, "advancementTab"), new EntitySelectorArgument.ManyPlayers("player")).executes((CommandSender sender, CommandArguments args) -> commandsCommon.revokeTab(sender, (AdvancementTab) args.get("advancementTab"), (Collection) args.get("player"), false)), + new CommandAPICommand("tab").withPermission(PERMISSION_REVOKE_TAB).withArguments(getAdvancementTabArgument(main, "advancementTab"), new EntitySelectorArgument.ManyPlayers("player"), new BooleanArgument("hideTab")).executes((CommandSender sender, CommandArguments args) -> commandsCommon.revokeTab(sender, (AdvancementTab) args.get("advancementTab"), (Collection) args.get("player"), (boolean) args.get("hideTabs"))), + + new CommandAPICommand("one").withPermission(PERMISSION_REVOKE_ONE).executesPlayer((player, args) -> { + player.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi revoke one [player]"); + }).executes((sender, args) -> { + sender.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi revoke one "); + }), + new CommandAPICommand("one").withPermission(PERMISSION_REVOKE_ONE).withArguments(getAdvancementArgument(main, "advancement")).executesPlayer((Player player, CommandArguments args) -> commandsCommon.revokeOne(player, (Advancement) args.get("advancement"), player)), + new CommandAPICommand("one").withPermission(PERMISSION_REVOKE_ONE).withArguments(getAdvancementArgument(main, "advancement"), new EntitySelectorArgument.ManyPlayers("player")).executes((CommandSender sender, CommandArguments args) -> commandsCommon.revokeOne(sender, (Advancement) args.get("advancement"), (Collection) args.get("player"))) ); CommandAPICommand progression = new CommandAPICommand("progression").withPermission(PERMISSION_PROGRESSION).executes((sender, args) -> { sender.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi progression ..."); }).withSubcommands(new CommandAPICommand("get").withPermission(PERMISSION_PROGRESSION_GET).executesPlayer((player, args) -> { - player.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi progression get [player]"); - }).executes((sender, args) -> { - sender.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi progression get "); - }), - new CommandAPICommand("get").withPermission(PERMISSION_PROGRESSION_GET).withArguments(getAdvancementArgument(main, "advancement")).executesPlayer((Player player, CommandArguments args) -> commandsCommon.getProgression(player, (Advancement) args.get("advancement"), player)), - new CommandAPICommand("get").withPermission(PERMISSION_PROGRESSION_GET).withArguments(getAdvancementArgument(main, "advancement"), new EntitySelectorArgument.ManyPlayers("player")).executes((CommandSender sender, CommandArguments args) -> commandsCommon.getProgression(sender, (Advancement) args.get("advancement"), (Collection) args.get("player"))), - - new CommandAPICommand("set").withPermission(PERMISSION_PROGRESSION_SET).executesPlayer((player, args) -> { - player.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi progression set [player] [giveRewards]"); - }).executes((sender, args) -> { - sender.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi progression set [giveRewards]"); - }), - new CommandAPICommand("set").withPermission(PERMISSION_PROGRESSION_SET).withArguments(getAdvancementArgument(main, "advancement"), new IntegerArgument("progression", 0)).executesPlayer((Player player, CommandArguments args) -> commandsCommon.setProgression(player, (Advancement) args.get("advancement"), (int) args.get("progression"), player, true)), - new CommandAPICommand("set").withPermission(PERMISSION_PROGRESSION_SET).withArguments(getAdvancementArgument(main, "advancement"), new IntegerArgument("progression", 0), new EntitySelectorArgument.ManyPlayers("player")).executes((CommandSender sender, CommandArguments args) -> commandsCommon.setProgression(sender, (Advancement) args.get("advancement"), (int) args.get("progression"), (Collection) args.get("player"), true)), - new CommandAPICommand("set").withPermission(PERMISSION_PROGRESSION_SET).withArguments(getAdvancementArgument(main, "advancement"), new IntegerArgument("progression", 0), new EntitySelectorArgument.ManyPlayers("player"), new BooleanArgument("giveRewards")).executes((CommandSender sender, CommandArguments args) -> commandsCommon.setProgression(sender, (Advancement) args.get("advancement"), (int) args.get("progression"), (Collection) args.get("player"), (boolean) args.get("giveRewards"))) + player.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi progression get [player]"); + }).executes((sender, args) -> { + sender.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi progression get "); + }), + new CommandAPICommand("get").withPermission(PERMISSION_PROGRESSION_GET).withArguments(getAdvancementArgument(main, "advancement")).executesPlayer((Player player, CommandArguments args) -> commandsCommon.getProgression(player, (Advancement) args.get("advancement"), player)), + new CommandAPICommand("get").withPermission(PERMISSION_PROGRESSION_GET).withArguments(getAdvancementArgument(main, "advancement"), new EntitySelectorArgument.ManyPlayers("player")).executes((CommandSender sender, CommandArguments args) -> commandsCommon.getProgression(sender, (Advancement) args.get("advancement"), (Collection) args.get("player"))), + + new CommandAPICommand("set").withPermission(PERMISSION_PROGRESSION_SET).executesPlayer((player, args) -> { + player.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi progression set [player] [giveRewards]"); + }).executes((sender, args) -> { + sender.sendMessage(ChatColor.RED + "Usage: /ultimateadvancementapi progression set [giveRewards]"); + }), + new CommandAPICommand("set").withPermission(PERMISSION_PROGRESSION_SET).withArguments(getAdvancementArgument(main, "advancement"), new IntegerArgument("progression", 0)).executesPlayer((Player player, CommandArguments args) -> commandsCommon.setProgression(player, (Advancement) args.get("advancement"), (int) args.get("progression"), player, true)), + new CommandAPICommand("set").withPermission(PERMISSION_PROGRESSION_SET).withArguments(getAdvancementArgument(main, "advancement"), new IntegerArgument("progression", 0), new EntitySelectorArgument.ManyPlayers("player")).executes((CommandSender sender, CommandArguments args) -> commandsCommon.setProgression(sender, (Advancement) args.get("advancement"), (int) args.get("progression"), (Collection) args.get("player"), true)), + new CommandAPICommand("set").withPermission(PERMISSION_PROGRESSION_SET).withArguments(getAdvancementArgument(main, "advancement"), new IntegerArgument("progression", 0), new EntitySelectorArgument.ManyPlayers("player"), new BooleanArgument("giveRewards")).executes((CommandSender sender, CommandArguments args) -> commandsCommon.setProgression(sender, (Advancement) args.get("advancement"), (int) args.get("progression"), (Collection) args.get("player"), (boolean) args.get("giveRewards"))) ); mainCommand.withSubcommands( - progression, - grant, - revoke + progression, + grant, + revoke ); mainCommand.withHelp("Command to handle advancements.", "Command to grant/revoke/update player's advancements."); diff --git a/Commands/Common/pom.xml b/Commands/Common/pom.xml index 332cf226..c797a5df 100644 --- a/Commands/Common/pom.xml +++ b/Commands/Common/pom.xml @@ -7,7 +7,7 @@ com.frengor ultimateadvancementapi-commands-parent - 2.8.0 + 2.8.1 ultimateadvancementapi-commands-common diff --git a/Commands/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/commands/CommandAPIManager.java b/Commands/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/commands/CommandAPIManager.java index 3f250c70..0a038e61 100644 --- a/Commands/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/commands/CommandAPIManager.java +++ b/Commands/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/commands/CommandAPIManager.java @@ -53,12 +53,12 @@ public static ILoadable loadManager(@NotNull LibraryManager libbyManager) { // Download correct version of CommandAPI libbyManager.addMavenCentral(); Library commandAPILibrary = Library.builder() - .groupId("dev{}jorel") - .artifactId(ver.getArtifactId()) - .version(ver.getVersion()) - .checksum(ver.getChecksum()) - .relocate("dev{}jorel{}commandapi", "dev.jorel.commandapi") // Should be changed by shading - .build(); + .groupId("dev{}jorel") + .artifactId(ver.getArtifactId()) + .version(ver.getVersion()) + .checksum(ver.getChecksum()) + .relocate("dev{}jorel{}commandapi", "dev.jorel.commandapi") // Should be changed by shading + .build(); try { libbyManager.loadLibrary(commandAPILibrary); } catch (Exception e) { diff --git a/Commands/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/commands/CommandAPIVersion.java b/Commands/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/commands/CommandAPIVersion.java index 9f37935b..e8cc3d82 100644 --- a/Commands/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/commands/CommandAPIVersion.java +++ b/Commands/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/commands/CommandAPIVersion.java @@ -14,63 +14,55 @@ */ public enum CommandAPIVersion { v9_3_0("9.3.0", - "commandapi-bukkit-shade", - null, - "K9cYHoWiGLP8z+cyYb5NIarVE9fzMeJRqHu1UJ+Li/U=", - null, - "9_3_0", - List.of( - // Versions without a mojang-mapped jar - "v1_15_R1", - "v1_16_R1", - "v1_16_R2", - "v1_16_R3" - ) + "commandapi-bukkit-shade", + null, + "K9cYHoWiGLP8z+cyYb5NIarVE9fzMeJRqHu1UJ+Li/U=", + null, + "9_3_0", + List.of( + // Versions without a mojang-mapped jar + "v1_15_R1", + "v1_16_R1", + "v1_16_R2", + "v1_16_R3" + ) ), v9_7_0("9.7.0", - "commandapi-bukkit-shade", - "commandapi-bukkit-shade-mojang-mapped", - "q1XHz7oYfdoeous1MOQoP7zopfjdnxMh9Za1ToN0x2s=", - "TFSpIzREfb8ChAkZ/sl1Nmk/ACUpuNk5c4PARCFlj80=", - "9_7_0", - List.of( - "v1_17_R1", - "v1_18_R1", - "v1_18_R2", - "v1_19_R1", - "v1_19_R2", - "v1_19_R3" - ) + "commandapi-bukkit-shade", + "commandapi-bukkit-shade-mojang-mapped", + "q1XHz7oYfdoeous1MOQoP7zopfjdnxMh9Za1ToN0x2s=", + "TFSpIzREfb8ChAkZ/sl1Nmk/ACUpuNk5c4PARCFlj80=", + "9_7_0", + List.of( + "v1_17_R1", + "v1_18_R1", + "v1_18_R2", + "v1_19_R1", + "v1_19_R2", + "v1_19_R3" + ) ), - v10_1_2("10.1.2", - "commandapi-bukkit-shade", - "commandapi-bukkit-shade-mojang-mapped", - "vwfO0UPX+wKoOgbv0SLS6YmzBjf0Inkuh6e00LKcekg=", - "K1BBUo+b2ZReI2qsuSlWAGmpG0WAyEfDcZOnZS7u6z4=", - "10_1_2", - List.of( - "v1_20_R1", - "v1_20_R2", - "v1_20_R3", - "v1_20_R4", - "v1_21_R1", - "v1_21_R2", - "v1_21_R3", - "v1_21_R4" - ) - ), - LATEST("11.2.0", - "commandapi-spigot-shade", - "commandapi-paper-shade", - "Kx6c7DPWPyFkrmlEYq1hj6VeQm4BbBBMbthKI1pHLes=", - "F6KljlYn01+rt6JIKJPOKmWI++d46LgeOd8e6dw6gIM=", - "11_2_0", - List.of( - "v1_21_R5", - "v1_21_R6", - "v1_21_R7", - "v26_1_R2" - ) + LATEST("12.0.0", + "commandapi-spigot-shade", + "commandapi-paper-shade", + "WYJSdZPnABtIb7Jn27wwE58LTjhXh757I+ZIbGPp1q0=", + "rQLFFwTKL1NbLKw93E4y83Qsg3FMUDIYHLD1BN/NZ20=", + "12_0_0", + List.of( + "v1_20_R1", + "v1_20_R2", + "v1_20_R3", + "v1_20_R4", + "v1_21_R1", + "v1_21_R2", + "v1_21_R3", + "v1_21_R4", + "v1_21_R5", + "v1_21_R6", + "v1_21_R7", + "v26_1_R2", + "v26_2_R1" + ) ); private final String version, suffix; @@ -153,7 +145,7 @@ public List getSupportedVersions() { * * @param nms The NMS version, like "v1_17_R1". * @return The correct version of CommandAPI, - * or {@code null} if the NMS version is not supported. + * or {@code null} if the NMS version is not supported. */ @Nullable public static CommandAPIVersion getVersionToLoad(String nms) { diff --git a/Commands/Common/src/test/java/com/fren_gor/ultimateAdvancementAPI/commands/CommandAPIVersionTest.java b/Commands/Common/src/test/java/com/fren_gor/ultimateAdvancementAPI/commands/CommandAPIVersionTest.java index 5a9fee74..ed1621a3 100644 --- a/Commands/Common/src/test/java/com/fren_gor/ultimateAdvancementAPI/commands/CommandAPIVersionTest.java +++ b/Commands/Common/src/test/java/com/fren_gor/ultimateAdvancementAPI/commands/CommandAPIVersionTest.java @@ -43,11 +43,11 @@ private boolean downloadCommandAPI(LibraryManager manager, Logger logger, Comman manager.addMavenCentral(); Library commandAPI = Library.builder() - .groupId("dev{}jorel") - .artifactId(version.artifactId) - .version(version.getVersion()) - .checksum(version.checksum) - .build(); + .groupId("dev{}jorel") + .artifactId(version.artifactId) + .version(version.getVersion()) + .checksum(version.checksum) + .build(); try { assertTrue(Files.exists(manager.downloadLibrary(commandAPI))); @@ -61,11 +61,11 @@ private boolean downloadCommandAPI(LibraryManager manager, Logger logger, Comman Preconditions.checkNotNull(version.mojangMappedChecksum, "mojangMappedChecksum is null"); Library commandAPIMojangMapped = Library.builder() - .groupId("dev{}jorel") - .artifactId(version.mojangMappedArtifactId) - .version(version.getVersion()) - .checksum(version.mojangMappedChecksum) - .build(); + .groupId("dev{}jorel") + .artifactId(version.mojangMappedArtifactId) + .version(version.getVersion()) + .checksum(version.mojangMappedChecksum) + .build(); try { assertTrue(Files.exists(manager.downloadLibrary(commandAPIMojangMapped))); diff --git a/Commands/Distribution/pom.xml b/Commands/Distribution/pom.xml index 4248c4a7..2e479d3f 100644 --- a/Commands/Distribution/pom.xml +++ b/Commands/Distribution/pom.xml @@ -7,7 +7,7 @@ com.frengor ultimateadvancementapi-commands-parent - 2.8.0 + 2.8.1 ultimateadvancementapi-commands-distribution @@ -33,14 +33,7 @@ com.frengor - ultimateadvancementapi-commands-commandapi-10.1.2 - ${project.version} - compile - - - - com.frengor - ultimateadvancementapi-commands-commandapi-11.2.0 + ultimateadvancementapi-commands-commandapi-12.0.0 ${project.version} compile diff --git a/Commands/DistributionMojangMapped/pom.xml b/Commands/DistributionMojangMapped/pom.xml index e0be345f..6a596279 100644 --- a/Commands/DistributionMojangMapped/pom.xml +++ b/Commands/DistributionMojangMapped/pom.xml @@ -7,7 +7,7 @@ com.frengor ultimateadvancementapi-commands-parent - 2.8.0 + 2.8.1 ultimateadvancementapi-commands-distribution-mojang-mapped @@ -33,14 +33,7 @@ com.frengor - ultimateadvancementapi-commands-commandapi-10.1.2 - ${project.version} - compile - - - - com.frengor - ultimateadvancementapi-commands-commandapi-11.2.0 + ultimateadvancementapi-commands-commandapi-12.0.0 ${project.version} compile diff --git a/Commands/pom.xml b/Commands/pom.xml index 775ece85..1698818c 100644 --- a/Commands/pom.xml +++ b/Commands/pom.xml @@ -7,7 +7,7 @@ ultimateadvancementapi-parent com.frengor - 2.8.0 + 2.8.1 ultimateadvancementapi-commands-parent @@ -24,8 +24,7 @@ Common CommandAPI-9.3.0 CommandAPI-9.7.0 - CommandAPI-10.1.2 - CommandAPI-11.2.0 + CommandAPI-12.0.0 Distribution DistributionMojangMapped diff --git a/Common/pom.xml b/Common/pom.xml index 4ed87d96..6fe7f8dc 100644 --- a/Common/pom.xml +++ b/Common/pom.xml @@ -7,7 +7,7 @@ com.frengor ultimateadvancementapi-parent - 2.8.0 + 2.8.1 ultimateadvancementapi-common diff --git a/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/AdvancementMain.java b/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/AdvancementMain.java index 85d91fb6..4a2b54f7 100644 --- a/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/AdvancementMain.java +++ b/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/AdvancementMain.java @@ -84,7 +84,7 @@ public AdvancementMain(@NotNull Plugin owningPlugin) { * * @param owningPlugin The plugin instantiating the API. * @param libFolder The name of the folder when additional libraries will be stored into. - * The folder is created into the plugin directory. + * The folder is created into the plugin directory. */ public AdvancementMain(@NotNull Plugin owningPlugin, String libFolder) { // Don't use AdvancementUtils here until having checked that the current mc version is supported diff --git a/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/AdvancementTab.java b/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/AdvancementTab.java index 4b3cba71..76d3c6f0 100644 --- a/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/AdvancementTab.java +++ b/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/AdvancementTab.java @@ -157,7 +157,7 @@ public RootAdvancement getRootAdvancement() { * * @param filterClass The filter class. * @return An unmodifiable {@link Collection} of all the tab's advancements - * that are an instance of the provided class or any of its subclasses. + * that are an instance of the provided class or any of its subclasses. * @throws IllegalStateException If the tab is not initialised. * @throws DisposedException If the tab is disposed. */ diff --git a/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/UltimateAdvancementAPI.java b/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/UltimateAdvancementAPI.java index de1e698f..83cb92e7 100644 --- a/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/UltimateAdvancementAPI.java +++ b/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/UltimateAdvancementAPI.java @@ -286,7 +286,7 @@ public void disableVanillaRecipeAdvancements() throws RuntimeException { * @param player The player. * @return The {@link TeamProgression} of the player's team. * @throws UserNotLoadedException If the player was not loaded into the caching system. - * For more information about the caching system see {@link DatabaseManager}. + * For more information about the caching system see {@link DatabaseManager}. */ @NotNull public TeamProgression getTeamProgression(@NotNull Player player) throws UserNotLoadedException { @@ -299,7 +299,7 @@ public TeamProgression getTeamProgression(@NotNull Player player) throws UserNot * @param uuid The {@link UUID} of the player. * @return The {@link TeamProgression} of the player's team. * @throws UserNotLoadedException If the player was not loaded into the caching system. - * For more information about the caching system see {@link DatabaseManager}. + * For more information about the caching system see {@link DatabaseManager}. */ @NotNull public TeamProgression getTeamProgression(@NotNull UUID uuid) throws UserNotLoadedException { @@ -322,7 +322,7 @@ public void updatePlayerTeam(@NotNull Player playerToMove, @NotNull Player aDest * @param playerToMove The player to move. * @param aDestTeamPlayer A player of the destination team. * @param action A {@link Consumer} that is called synchronously after the operation with a {@link Result}. - * If no code should be called, it can be put to {@code null}. + * If no code should be called, it can be put to {@code null}. */ public void updatePlayerTeam(@NotNull Player playerToMove, @NotNull Player aDestTeamPlayer, @Nullable Consumer action) { Preconditions.checkNotNull(playerToMove, "Player to move is null."); @@ -346,7 +346,7 @@ public void updatePlayerTeam(@NotNull UUID playerToMove, @NotNull UUID aDestTeam * @param playerToMove The {@link UUID} of the player to move. * @param aDestTeamPlayer The {@link UUID} of a player of the destination team. * @param action A {@link Consumer} that is called synchronously after the operation with a {@link Result}. - * If no code should be called, it can be put to {@code null}. + * If no code should be called, it can be put to {@code null}. */ public void updatePlayerTeam(@NotNull UUID playerToMove, @NotNull UUID aDestTeamPlayer, @Nullable Consumer action) { Preconditions.checkNotNull(playerToMove, "Player to move is null."); @@ -368,8 +368,8 @@ public void movePlayerInNewTeam(@NotNull Player playerToMove) { * * @param playerToMove The player to be moved. * @param action A {@link Consumer} that is called synchronously after the operation with an {@link ObjectResult}, - * which provides the {@link TeamProgression} of the player's new team (when the operation is successful). - * If no code should be called, it can be put to {@code null}. + * which provides the {@link TeamProgression} of the player's new team (when the operation is successful). + * If no code should be called, it can be put to {@code null}. */ public void movePlayerInNewTeam(@NotNull Player playerToMove, @Nullable Consumer> action) { callAfterLoad(playerToMove, ds -> ds.movePlayerInNewTeam(playerToMove), action); @@ -389,8 +389,8 @@ public void movePlayerInNewTeam(@NotNull UUID playerToMove) { * * @param playerToMove The {@link UUID} of the player to be moved. * @param action A {@link Consumer} that is called synchronously after the operation with an {@link ObjectResult}, - * which provides the {@link TeamProgression} of the player's new team (when the operation is successful). - * If no code should be called, it can be put to {@code null}. + * which provides the {@link TeamProgression} of the player's new team (when the operation is successful). + * If no code should be called, it can be put to {@code null}. */ public void movePlayerInNewTeam(@NotNull UUID playerToMove, @Nullable Consumer> action) { callAfterLoad(playerToMove, ds -> ds.movePlayerInNewTeam(playerToMove), action); @@ -415,7 +415,7 @@ public void unregisterOfflinePlayer(@NotNull OfflinePlayer player) throws Illega * * @param player The offline player to unregister. * @param action A {@link Consumer} that is called synchronously after the operation with a {@link Result}. - * If no code should be called, it can be put to {@code null}. + * If no code should be called, it can be put to {@code null}. * @throws IllegalStateException If the player is online or loaded into the caching system. */ public void unregisterOfflinePlayer(@NotNull OfflinePlayer player, @Nullable Consumer action) throws IllegalStateException { @@ -441,7 +441,7 @@ public void unregisterOfflinePlayer(@NotNull UUID uuid) throws IllegalStateExcep * * @param uuid The {@link UUID} of the player to unregister. * @param action A {@link Consumer} that is called synchronously after the operation with a {@link Result}. - * If no code should be called, it can be put to {@code null}. + * If no code should be called, it can be put to {@code null}. * @throws IllegalStateException If the player is online or loaded into the caching system. */ public void unregisterOfflinePlayer(@NotNull UUID uuid, @Nullable Consumer action) throws IllegalStateException { @@ -462,7 +462,7 @@ public void updatePlayerName(@NotNull Player player) { * * @param player The player to update. * @param action A {@link Consumer} that is called synchronously after the operation with a {@link Result}. - * If no code should be called, it can be put to {@code null}. + * If no code should be called, it can be put to {@code null}. */ public void updatePlayerName(@NotNull Player player, @Nullable Consumer action) { callSyncIfNotNull(getMain().getDatabaseManager().updatePlayerName(player), action); @@ -474,7 +474,7 @@ public void updatePlayerName(@NotNull Player player, @Nullable Consumer * @param advancement The advancement. * @param player The player. * @param action A {@link Consumer} that is called synchronously after the operation with an {@link ObjectResult}, - * which provides the {@link Boolean} result. + * which provides the {@link Boolean} result. */ public void isUnredeemed(@NotNull Advancement advancement, @NotNull Player player, @NotNull Consumer> action) { isUnredeemed(advancement, uuidFromPlayer(player), action); @@ -486,7 +486,7 @@ public void isUnredeemed(@NotNull Advancement advancement, @NotNull Player playe * @param advancement The advancement. * @param uuid The {@link UUID} of the player. * @param action A {@link Consumer} that is called synchronously after the operation with an {@link ObjectResult}, - * which provides the {@link Boolean} result. + * which provides the {@link Boolean} result. */ public void isUnredeemed(@NotNull Advancement advancement, @NotNull UUID uuid, @NotNull Consumer> action) { Preconditions.checkNotNull(advancement, "Advancement is null."); @@ -519,7 +519,7 @@ public void setUnredeemed(@NotNull Advancement advancement, @NotNull Player play * @param advancement The advancement. * @param player The player. * @param action A {@link Consumer} that is called synchronously after the operation with a {@link Result}. - * If no code should be called, it can be put to {@code null}. + * If no code should be called, it can be put to {@code null}. * @throws NotGrantedException If the advancement is not granted for the specified player. */ public void setUnredeemed(@NotNull Advancement advancement, @NotNull Player player, @Nullable Consumer action) throws NotGrantedException { @@ -545,7 +545,7 @@ public void setUnredeemed(@NotNull Advancement advancement, @NotNull Player play * @param player The player. * @param giveRewards Whether to give rewards on redeem. * @param action A {@link Consumer} that is called synchronously after the operation with a {@link Result}. - * If no code should be called, it can be put to {@code null}. + * If no code should be called, it can be put to {@code null}. * @throws NotGrantedException If the advancement is not granted for the specified player. */ public void setUnredeemed(@NotNull Advancement advancement, @NotNull Player player, boolean giveRewards, @Nullable Consumer action) throws NotGrantedException { @@ -571,7 +571,7 @@ public void setUnredeemed(@NotNull Advancement advancement, @NotNull UUID uuid) * @param advancement The advancement. * @param uuid The {@link UUID} of the player. * @param action A {@link Consumer} that is called synchronously after the operation with a {@link Result}. - * If no code should be called, it can be put to {@code null}. + * If no code should be called, it can be put to {@code null}. * @throws NotGrantedException If the advancement is not granted for the specified player. */ public void setUnredeemed(@NotNull Advancement advancement, @NotNull UUID uuid, @Nullable Consumer action) throws NotGrantedException { @@ -597,7 +597,7 @@ public void setUnredeemed(@NotNull Advancement advancement, @NotNull UUID uuid, * @param uuid The {@link UUID} of the player. * @param giveRewards Whether to give rewards on redeem. * @param action A {@link Consumer} that is called synchronously after the operation with a {@link Result}. - * If no code should be called, it can be put to {@code null}. + * If no code should be called, it can be put to {@code null}. * @throws NotGrantedException If the advancement is not granted for the specified player. */ public void setUnredeemed(@NotNull Advancement advancement, @NotNull UUID uuid, boolean giveRewards, @Nullable Consumer action) throws NotGrantedException { @@ -627,7 +627,7 @@ public void unsetUnredeemed(@NotNull Advancement advancement, @NotNull Player pl * @param advancement The advancement. * @param player The player. * @param action A {@link Consumer} that is called synchronously after the operation with a {@link Result}. - * If no code should be called, it can be put to {@code null}. + * If no code should be called, it can be put to {@code null}. */ public void unsetUnredeemed(@NotNull Advancement advancement, @NotNull Player player, @Nullable Consumer action) { unsetUnredeemed(advancement, uuidFromPlayer(player), action); @@ -649,7 +649,7 @@ public void unsetUnredeemed(@NotNull Advancement advancement, @NotNull UUID uuid * @param advancement The advancement. * @param uuid The {@link UUID} of the player. * @param action A {@link Consumer} that is called synchronously after the operation with a {@link Result}. - * If no code should be called, it can be put to {@code null}. + * If no code should be called, it can be put to {@code null}. */ public void unsetUnredeemed(@NotNull Advancement advancement, @NotNull UUID uuid, @Nullable Consumer action) { Preconditions.checkNotNull(advancement, "Advancement is null."); @@ -721,7 +721,7 @@ public void loadOfflinePlayer(@NotNull UUID uuid) { * * @param player The offline player to load. * @param action A {@link Consumer} that is called synchronously after the operation with an {@link ObjectResult}, - * which provides the loaded {@link TeamProgression}. + * which provides the loaded {@link TeamProgression}. */ public void loadOfflinePlayer(@NotNull OfflinePlayer player, @Nullable Consumer> action) { loadOfflinePlayer(uuidFromPlayer(player), action); @@ -734,7 +734,7 @@ public void loadOfflinePlayer(@NotNull OfflinePlayer player, @Nullable Consumer< * * @param uuid The {@link UUID} of the player to load. * @param action A {@link Consumer} that is called synchronously after the operation with an {@link ObjectResult}, - * which provides the loaded {@link TeamProgression}. + * which provides the loaded {@link TeamProgression}. */ public void loadOfflinePlayer(@NotNull UUID uuid, @Nullable Consumer> action) { loadOfflinePlayer(uuid, CacheFreeingOption.DONT_CACHE(), action); @@ -748,7 +748,7 @@ public void loadOfflinePlayer(@NotNull UUID uuid, @Nullable Consumer> action) { loadOfflinePlayer(uuidFromPlayer(player), option, action); @@ -762,7 +762,7 @@ public void loadOfflinePlayer(@NotNull OfflinePlayer player, @NotNull CacheFreei * @param uuid The {@link UUID} of the player to load. * @param option The chosen {@link CacheFreeingOption}. * @param action A {@link Consumer} that is called synchronously after the operation with an {@link ObjectResult}, - * which provides the loaded {@link TeamProgression}. + * which provides the loaded {@link TeamProgression}. */ public void loadOfflinePlayer(@NotNull UUID uuid, @NotNull CacheFreeingOption option, @Nullable Consumer> action) { callSyncIfNotNull(getMain().getDatabaseManager().loadOfflinePlayer(uuid, option), action); @@ -852,7 +852,7 @@ public void unloadOfflinePlayer(@NotNull UUID uuid) { * * @param player The player. * @param action A {@link Consumer} that is called synchronously after the operation with an {@link ObjectResult}, - * which provides the in-database stored name of the player. + * which provides the in-database stored name of the player. */ public void getStoredPlayerName(@NotNull OfflinePlayer player, @NotNull Consumer> action) { getStoredPlayerName(uuidFromPlayer(player), action); @@ -863,7 +863,7 @@ public void getStoredPlayerName(@NotNull OfflinePlayer player, @NotNull Consumer * * @param uuid The {@link UUID} of the player. * @param action A {@link Consumer} that is called synchronously after the operation with an {@link ObjectResult}, - * which provides the in-database stored name of the player. + * which provides the in-database stored name of the player. */ public void getStoredPlayerName(@NotNull UUID uuid, @NotNull Consumer> action) { Preconditions.checkNotNull(action, "Consumer is null."); diff --git a/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/advancement/Advancement.java b/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/advancement/Advancement.java index 84fa0918..d99acb0b 100644 --- a/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/advancement/Advancement.java +++ b/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/advancement/Advancement.java @@ -22,7 +22,6 @@ import net.md_5.bungee.api.chat.HoverEvent; import net.md_5.bungee.api.chat.HoverEvent.Action; import org.bukkit.Bukkit; -import org.bukkit.GameRule; import org.bukkit.entity.Player; import org.bukkit.event.Event; import org.bukkit.event.EventPriority; @@ -235,18 +234,18 @@ public BaseComponent[] getAnnounceMessage(@NotNull Player player) { Preconditions.checkNotNull(player, "Player is null."); ChatColor color = display.getFrame().getColor(); return new ComponentBuilder(player.getName() + ' ' + display.getFrame().getChatText() + ' ') - .color(ChatColor.WHITE) - .append(new ComponentBuilder("[") - .color(color) - .event(new HoverEvent(Action.SHOW_TEXT, display.getChatDescription())) - .create() - , FormatRetention.NONE) - .append(display.getChatTitle(), FormatRetention.EVENTS) - .append(new ComponentBuilder("]") - .color(color) - .create() - , FormatRetention.EVENTS) - .create(); + .color(ChatColor.WHITE) + .append(new ComponentBuilder("[") + .color(color) + .event(new HoverEvent(Action.SHOW_TEXT, display.getChatDescription())) + .create() + , FormatRetention.NONE) + .append(display.getChatTitle(), FormatRetention.EVENTS) + .append(new ComponentBuilder("]") + .color(color) + .create() + , FormatRetention.EVENTS) + .create(); } /** @@ -304,7 +303,7 @@ public int incrementProgression(@NotNull Player player, @Range(from = 1, to = In *

If the advancement gets completed, advancement rewards will be given. * * @param uuid The {@link UUID} of the player responsible for the increment. If the player is not online, rewards will be given to a pseudorandom - * online member of the same team if there are any, or it will be set unredeemed. + * online member of the same team if there are any, or it will be set unredeemed. * @return The new progression. It is always less or equal to {@link #maxProgression}. */ @Range(from = 0, to = Integer.MAX_VALUE) @@ -316,7 +315,7 @@ public int incrementProgression(@NotNull UUID uuid) { * Increases the progression of the provided player's team by one. * * @param uuid The {@link UUID} of the player responsible for the increment. If the player is not online, rewards will be given to a pseudorandom - * online member of the same team if there are any, or it will be set unredeemed. + * online member of the same team if there are any, or it will be set unredeemed. * @param giveReward Whether to give rewards if the advancement gets completed. * @return The new progression. It is always less or equal to {@link #maxProgression}. */ @@ -330,7 +329,7 @@ public int incrementProgression(@NotNull UUID uuid, boolean giveReward) { *

If the advancement gets completed, advancement rewards will be given. * * @param uuid The {@link UUID} of the player responsible for the increment. If the player is not online, rewards will be given to a pseudorandom - * online member of the same team if there are any, or it will be set unredeemed. + * online member of the same team if there are any, or it will be set unredeemed. * @param increment The progression increment. Must be greater than {@code 0}. * @return The new progression. It is always less or equal to {@link #maxProgression}. */ @@ -343,7 +342,7 @@ public int incrementProgression(@NotNull UUID uuid, @Range(from = 1, to = Intege * Increases the progression of the provided player's team. * * @param uuid The {@link UUID} of the player responsible for the increment. If the player is not online, rewards will be given to a pseudorandom - * online member of the same team if there are any, or it will be set unredeemed. + * online member of the same team if there are any, or it will be set unredeemed. * @param increment The progression increment. Must be greater than {@code 0}. * @param giveReward Whether to give rewards if the advancement gets completed. * @return The new progression. It is always less or equal to {@link #maxProgression}. @@ -409,7 +408,7 @@ public void setProgression(@NotNull Player player, @Range(from = 0, to = Integer *

If the advancement gets completed, advancement rewards will be given. * * @param uuid The {@link UUID} of the player responsible for the update. If the player is not online, rewards will be given to a pseudorandom - * online member of the same team if there are any, or it will be set unredeemed. + * online member of the same team if there are any, or it will be set unredeemed. * @param progression The new non-negative progression to set. */ public void setProgression(@NotNull UUID uuid, @Range(from = 0, to = Integer.MAX_VALUE) int progression) { @@ -420,7 +419,7 @@ public void setProgression(@NotNull UUID uuid, @Range(from = 0, to = Integer.MAX * Sets a progression for the provided player's team. * * @param uuid The {@link UUID} of the player responsible for the update. If the player is not online, rewards will be given to a pseudorandom - * online member of the same team if there are any, or it will be set unredeemed. + * online member of the same team if there are any, or it will be set unredeemed. * @param progression The new non-negative progression to set. * @param giveReward Whether to give rewards if the advancement gets completed. */ @@ -468,7 +467,7 @@ protected void setProgression(@NotNull TeamProgression pro, @Nullable Player pla * @param oldProgression The previous progression of the team. * @param giveRewards Whether to give rewards if the advancement gets completed. * @param afterHandle The action to perform after the reward process, or {@code null} to don't do any action. - * The default action updates the tab's advancement to the team (see {@link AfterHandle#UPDATE_ADVANCEMENTS_TO_TEAM}). + * The default action updates the tab's advancement to the team (see {@link AfterHandle#UPDATE_ADVANCEMENTS_TO_TEAM}). */ protected void handlePlayer(@NotNull TeamProgression pro, @Nullable Player player, int newProgression, int oldProgression, boolean giveRewards, @Nullable AfterHandle afterHandle) { validateTeamProgression(pro); @@ -536,9 +535,9 @@ public boolean isVisible(@NotNull UUID uuid) { * @param progression The{@link TeamProgression} of the team. * @return Whether the advancement is visible to the provided team. * @implSpec This method is the core method of the Advancement Visibility System (AVS). - * The return value is {@code true} if no suitable interfaces for the AVS are implemented, or - * the result of {@link IVisibility#isVisible(Advancement, TeamProgression)} otherwise. - * When overridden, this method (called via {@code super}) enables the AVS features for that method. + * The return value is {@code true} if no suitable interfaces for the AVS are implemented, or + * the result of {@link IVisibility#isVisible(Advancement, TeamProgression)} otherwise. + * When overridden, this method (called via {@code super}) enables the AVS features for that method. */ public boolean isVisible(@NotNull TeamProgression progression) { validateTeamProgression(progression); @@ -620,7 +619,7 @@ public void revoke(@NotNull Player player) { * * @param teamProgression The {@link TeamProgression} of the team of the player(s). * @param addedAdvancements The {@link Map} in which the advancements to be sent are added as keys. - * The values are the current progressions of the team. + * The values are the current progressions of the team. */ public void onUpdate(@NotNull TeamProgression teamProgression, @NotNull Map addedAdvancements) { if (isVisible(teamProgression)) { diff --git a/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/advancement/tasks/AbstractMultiTasksAdvancement.java b/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/advancement/tasks/AbstractMultiTasksAdvancement.java index d155b465..e1843c40 100644 --- a/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/advancement/tasks/AbstractMultiTasksAdvancement.java +++ b/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/advancement/tasks/AbstractMultiTasksAdvancement.java @@ -97,7 +97,7 @@ public void reloadTasks(@NotNull UUID uuid, boolean giveRewards) { * * @param progression The {@link TeamProgression} of the team. * @param player The player responsible for the task's progression update, or {@code null} if there's not. - * In this case, the implementation can choose a random online member. + * In this case, the implementation can choose a random online member. */ protected abstract void reloadTasks(@NotNull TeamProgression progression, @Nullable Player player, boolean giveRewards); } diff --git a/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/database/DatabaseManager.java b/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/database/DatabaseManager.java index cb967297..475f8fb9 100644 --- a/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/database/DatabaseManager.java +++ b/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/database/DatabaseManager.java @@ -98,7 +98,9 @@ public final class DatabaseManager { private final IDatabase database; private final Map> waitingForJoinEvent = Collections.synchronizedMap(new HashMap<>()); - private static final Consumer LOGIN_SENTINEL = p -> {}, JOIN_SENTINEL = p -> {}; + private static final Consumer LOGIN_SENTINEL = p -> { + }, JOIN_SENTINEL = p -> { + }; private void registerForJoinEvent(@NotNull UUID uuid, @NotNull Consumer action) { Preconditions.checkNotNull(uuid, "UUID is null."); @@ -382,7 +384,7 @@ private void loadPlayerMainFunction(final @NotNull UUID uuid, final @NotNull Str * @param uuid The {@link UUID} of player to load. * @param name The name of player to load. * @return A pair containing the loaded {@link TeamProgression} and a {@code boolean}, - * which is {@code true} if and only if the player was not found in the database. + * which is {@code true} if and only if the player was not found in the database. * @throws SQLException If anything goes wrong. */ @NotNull @@ -975,7 +977,7 @@ public synchronized int getLoadingRequestsAmount(@NotNull Plugin plugin, @NotNul * @param key The advancement key. * @param uuid The {@link UUID} of the player. * @return A {@link CompletableFuture}<{@link ObjectResult}> which provides a boolean value that is {@code true} if the - * provided advancement is unredeemed for the specified player, false otherwise. + * provided advancement is unredeemed for the specified player, false otherwise. * @throws UserNotLoadedException If the player was not loaded into the cache. * @see UltimateAdvancementAPI#isUnredeemed(Advancement, UUID, Consumer) */ @@ -990,7 +992,7 @@ public synchronized int getLoadingRequestsAmount(@NotNull Plugin plugin, @NotNul * @param key The advancement key. * @param pro The {@link TeamProgression} of the team. * @return A {@link CompletableFuture}<{@link ObjectResult}> which provides a boolean value that is {@code true} if the - * provided advancement is unredeemed for the specified player, false otherwise. + * provided advancement is unredeemed for the specified player, false otherwise. */ @NotNull public CompletableFuture> isUnredeemed(@NotNull AdvancementKey key, @NotNull TeamProgression pro) { @@ -1326,9 +1328,9 @@ private int removeManual(int i) { @Override public String toString() { return "TempUserMetadata{" + - "pluginRequests=" + pluginRequests + - ", isOnline=" + isOnline + - '}'; + "pluginRequests=" + pluginRequests + + ", isOnline=" + isOnline + + '}'; } } } diff --git a/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/database/IDatabase.java b/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/database/IDatabase.java index 9d60a344..bab66c94 100644 --- a/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/database/IDatabase.java +++ b/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/database/IDatabase.java @@ -97,7 +97,7 @@ default int getTeamId(@NotNull Player player) throws SQLException, UserNotRegist * @param uuid The player {@link UUID}. * @param name The player name. * @return A pair containing a (always new) {@link TeamProgression} with the player team information and - * whether the player has been registered (so it was not found in the database). + * whether the player has been registered (so it was not found in the database). * @throws SQLException If an SQL exception occurs. */ Entry loadOrRegisterPlayer(@NotNull UUID uuid, @NotNull String name) throws SQLException; @@ -129,7 +129,7 @@ default int getTeamId(@NotNull Player player) throws SQLException, UserNotRegist * * @param teamId The team id. * @return A list of pairs containing the key of the unredeemed advancement and whether to give rewards for it - * (see {@link #setUnredeemed(AdvancementKey, boolean, int)}). + * (see {@link #setUnredeemed(AdvancementKey, boolean, int)}). * @throws SQLException If an SQL exception occurs. */ List> getUnredeemed(int teamId) throws SQLException; diff --git a/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/database/TeamProgression.java b/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/database/TeamProgression.java index 4eb8ca99..22fe27d0 100644 --- a/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/database/TeamProgression.java +++ b/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/database/TeamProgression.java @@ -305,8 +305,8 @@ public Player getAnOnlineMember(@NotNull DatabaseManager manager) { @Override public String toString() { return "TeamProgression{" + - "teamId=" + teamId + - '}'; + "teamId=" + teamId + + '}'; } @Override diff --git a/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/database/impl/SQLite.java b/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/database/impl/SQLite.java index e239a9a1..05894c8c 100644 --- a/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/database/impl/SQLite.java +++ b/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/database/impl/SQLite.java @@ -104,6 +104,7 @@ public void setUp() throws SQLException { statement.addBatch("CREATE TABLE IF NOT EXISTS `Players` (`UUID` TEXT NOT NULL PRIMARY KEY, `Name` TEXT NOT NULL, `TeamID` INTEGER NOT NULL, FOREIGN KEY(`TeamID`) REFERENCES `Teams`(`ID`) ON DELETE CASCADE ON UPDATE CASCADE);"); statement.addBatch("CREATE TABLE IF NOT EXISTS `Advancements` (`Namespace` TEXT NOT NULL, `Key` TEXT NOT NULL, `TeamID` INTEGER NOT NULL, `Progression` INTEGER NOT NULL DEFAULT 0, PRIMARY KEY(`Namespace`,`Key`,`TeamID`), FOREIGN KEY(`TeamID`) REFERENCES `Teams`(`ID`) ON DELETE CASCADE ON UPDATE CASCADE);"); statement.addBatch("CREATE TABLE IF NOT EXISTS `Unredeemed` (`Namespace` TEXT NOT NULL, `Key` TEXT NOT NULL, `TeamID` INTEGER NOT NULL, `GiveRewards` INTEGER NOT NULL DEFAULT 0, PRIMARY KEY(`Namespace`,`Key`,`TeamID`), FOREIGN KEY(`Namespace`, `Key`,`TeamID`) REFERENCES `Advancements`(`Namespace`, `Key`,`TeamID`) ON DELETE CASCADE ON UPDATE CASCADE);"); + statement.addBatch("VACUUM;"); // Vacuum the db periodically at startup statement.executeBatch(); } } diff --git a/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/events/PlayerLoadingCompletedEvent.java b/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/events/PlayerLoadingCompletedEvent.java index e608dee5..b7aecd43 100644 --- a/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/events/PlayerLoadingCompletedEvent.java +++ b/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/events/PlayerLoadingCompletedEvent.java @@ -66,9 +66,9 @@ public HandlerList getHandlers() { @Override public String toString() { return "PlayerLoadingCompletedEvent{" + - "player=" + player + - ", progression=" + progression + - '}'; + "player=" + player + + ", progression=" + progression + + '}'; } @Override @@ -88,4 +88,4 @@ public int hashCode() { result = 31 * result + progression.hashCode(); return result; } -} \ No newline at end of file +} diff --git a/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/events/advancement/AdvancementDisposeEvent.java b/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/events/advancement/AdvancementDisposeEvent.java index cc281b51..4152cf41 100644 --- a/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/events/advancement/AdvancementDisposeEvent.java +++ b/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/events/advancement/AdvancementDisposeEvent.java @@ -49,8 +49,8 @@ public HandlerList getHandlers() { @Override public String toString() { return "AdvancementDisposeEvent{" + - "advancement=" + advancement + - '}'; + "advancement=" + advancement + + '}'; } @Override @@ -67,4 +67,4 @@ public boolean equals(Object o) { public int hashCode() { return advancement.hashCode(); } -} \ No newline at end of file +} diff --git a/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/events/advancement/AdvancementDisposedEvent.java b/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/events/advancement/AdvancementDisposedEvent.java index ab357b09..a1019b5c 100644 --- a/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/events/advancement/AdvancementDisposedEvent.java +++ b/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/events/advancement/AdvancementDisposedEvent.java @@ -49,8 +49,8 @@ public HandlerList getHandlers() { @Override public String toString() { return "AdvancementDisposedEvent{" + - "advancementKey=" + advancementKey + - '}'; + "advancementKey=" + advancementKey + + '}'; } @Override @@ -67,4 +67,4 @@ public boolean equals(Object o) { public int hashCode() { return advancementKey.hashCode(); } -} \ No newline at end of file +} diff --git a/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/events/advancement/AdvancementProgressionUpdateEvent.java b/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/events/advancement/AdvancementProgressionUpdateEvent.java index c85eb057..67b2de8b 100644 --- a/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/events/advancement/AdvancementProgressionUpdateEvent.java +++ b/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/events/advancement/AdvancementProgressionUpdateEvent.java @@ -94,11 +94,11 @@ public HandlerList getHandlers() { @Override public String toString() { return "AdvancementProgressionUpdateEvent{" + - "team=" + team + - ", oldProgression=" + oldProgression + - ", newProgression=" + newProgression + - ", advancement=" + advancement + - '}'; + "team=" + team + + ", oldProgression=" + oldProgression + + ", newProgression=" + newProgression + + ", advancement=" + advancement + + '}'; } @Override @@ -122,4 +122,4 @@ public int hashCode() { result = 31 * result + advancement.hashCode(); return result; } -} \ No newline at end of file +} diff --git a/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/events/advancement/AdvancementRegistrationEvent.java b/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/events/advancement/AdvancementRegistrationEvent.java index f6b23a87..d9d834f8 100644 --- a/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/events/advancement/AdvancementRegistrationEvent.java +++ b/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/events/advancement/AdvancementRegistrationEvent.java @@ -53,8 +53,8 @@ public HandlerList getHandlers() { @Override public String toString() { return "AdvancementRegistrationEvent{" + - "advancement=" + advancement + - '}'; + "advancement=" + advancement + + '}'; } @Override @@ -71,4 +71,4 @@ public boolean equals(Object o) { public int hashCode() { return advancement.hashCode(); } -} \ No newline at end of file +} diff --git a/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/events/advancement/ProgressionUpdateEvent.java b/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/events/advancement/ProgressionUpdateEvent.java index add5e78e..c81149ff 100644 --- a/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/events/advancement/ProgressionUpdateEvent.java +++ b/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/events/advancement/ProgressionUpdateEvent.java @@ -95,11 +95,11 @@ public HandlerList getHandlers() { @Override public String toString() { return "ProgressionUpdateEvent{" + - "team=" + team + - ", oldProgression=" + oldProgression + - ", newProgression=" + newProgression + - ", advancementKey=" + advancementKey + - '}'; + "team=" + team + + ", oldProgression=" + oldProgression + + ", newProgression=" + newProgression + + ", advancementKey=" + advancementKey + + '}'; } @Override @@ -123,4 +123,4 @@ public int hashCode() { result = 31 * result + advancementKey.hashCode(); return result; } -} \ No newline at end of file +} diff --git a/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/events/team/AsyncPlayerUnregisteredEvent.java b/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/events/team/AsyncPlayerUnregisteredEvent.java index 5d0ae03e..6e43e32b 100644 --- a/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/events/team/AsyncPlayerUnregisteredEvent.java +++ b/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/events/team/AsyncPlayerUnregisteredEvent.java @@ -55,8 +55,8 @@ public HandlerList getHandlers() { @Override public String toString() { return "AsyncPlayerUnregisteredEvent{" + - "uuid=" + uuid + - '}'; + "uuid=" + uuid + + '}'; } @Override @@ -73,4 +73,4 @@ public boolean equals(Object o) { public int hashCode() { return uuid.hashCode(); } -} \ No newline at end of file +} diff --git a/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/events/team/AsyncTeamLoadEvent.java b/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/events/team/AsyncTeamLoadEvent.java index 0a1bf362..6b1fbdeb 100644 --- a/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/events/team/AsyncTeamLoadEvent.java +++ b/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/events/team/AsyncTeamLoadEvent.java @@ -56,8 +56,8 @@ public HandlerList getHandlers() { @Override public String toString() { return "AsyncTeamLoadEvent{" + - "team=" + team + - '}'; + "team=" + team + + '}'; } @Override @@ -74,4 +74,4 @@ public boolean equals(Object o) { public int hashCode() { return team.hashCode(); } -} \ No newline at end of file +} diff --git a/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/events/team/AsyncTeamUnloadEvent.java b/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/events/team/AsyncTeamUnloadEvent.java index 65261a2c..b1a7341e 100644 --- a/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/events/team/AsyncTeamUnloadEvent.java +++ b/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/events/team/AsyncTeamUnloadEvent.java @@ -59,8 +59,8 @@ public HandlerList getHandlers() { @Override public String toString() { return "AsyncTeamUnloadEvent{" + - "team=" + team + - '}'; + "team=" + team + + '}'; } @Override @@ -77,4 +77,4 @@ public boolean equals(Object o) { public int hashCode() { return team.hashCode(); } -} \ No newline at end of file +} diff --git a/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/events/team/AsyncTeamUpdateEvent.java b/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/events/team/AsyncTeamUpdateEvent.java index c2705cf1..1e0a0e1d 100644 --- a/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/events/team/AsyncTeamUpdateEvent.java +++ b/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/events/team/AsyncTeamUpdateEvent.java @@ -90,10 +90,10 @@ public HandlerList getHandlers() { @Override public String toString() { return "AsyncTeamUpdateEvent{" + - "team=" + team + - ", playerUUID=" + playerUUID + - ", action=" + action + - '}'; + "team=" + team + + ", playerUUID=" + playerUUID + + ", action=" + action + + '}'; } @Override @@ -115,4 +115,4 @@ public int hashCode() { result = 31 * result + action.hashCode(); return result; } -} \ No newline at end of file +} diff --git a/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/events/team/TeamLoadEvent.java b/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/events/team/TeamLoadEvent.java index 1b5d541d..9187c1bb 100644 --- a/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/events/team/TeamLoadEvent.java +++ b/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/events/team/TeamLoadEvent.java @@ -53,8 +53,8 @@ public HandlerList getHandlers() { @Override public String toString() { return "TeamLoadEvent{" + - "team=" + team + - '}'; + "team=" + team + + '}'; } @Override @@ -71,4 +71,4 @@ public boolean equals(Object o) { public int hashCode() { return team.hashCode(); } -} \ No newline at end of file +} diff --git a/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/events/team/TeamUnloadEvent.java b/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/events/team/TeamUnloadEvent.java index 9c53f7b3..6642b22f 100644 --- a/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/events/team/TeamUnloadEvent.java +++ b/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/events/team/TeamUnloadEvent.java @@ -57,8 +57,8 @@ public HandlerList getHandlers() { @Override public String toString() { return "TeamUnloadEvent{" + - "team=" + team + - '}'; + "team=" + team + + '}'; } @Override @@ -75,4 +75,4 @@ public boolean equals(Object o) { public int hashCode() { return team.hashCode(); } -} \ No newline at end of file +} diff --git a/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/events/team/TeamUpdateEvent.java b/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/events/team/TeamUpdateEvent.java index 73d353e1..966cd89f 100644 --- a/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/events/team/TeamUpdateEvent.java +++ b/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/events/team/TeamUpdateEvent.java @@ -8,8 +8,6 @@ import java.util.Objects; import java.util.UUID; -import static com.fren_gor.ultimateAdvancementAPI.util.AdvancementUtils.validateTeamProgression; - /** * Called when a team member joins or leaves a team. * @@ -88,10 +86,10 @@ public HandlerList getHandlers() { @Override public String toString() { return "TeamUpdateEvent{" + - "team=" + team + - ", playerUUID=" + playerUUID + - ", action=" + action + - '}'; + "team=" + team + + ", playerUUID=" + playerUUID + + ", action=" + action + + '}'; } @Override @@ -113,4 +111,4 @@ public int hashCode() { result = 31 * result + action.hashCode(); return result; } -} \ No newline at end of file +} diff --git a/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/util/AdvancementUtils.java b/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/util/AdvancementUtils.java index 510de548..f060d7d8 100644 --- a/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/util/AdvancementUtils.java +++ b/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/util/AdvancementUtils.java @@ -78,8 +78,8 @@ public static void displayToast(@NotNull Player player, @NotNull ItemStack icon, AdvancementDisplayWrapper display = AdvancementDisplayWrapper.craft(icon, title, ADV_DESCRIPTION, frame.getNMSWrapper(), 1, 0, true, false, false); AdvancementWrapper notification = AdvancementWrapper.craftBaseAdvancement(NOTIFICATION_KEY, ROOT, display, 1); PacketPlayOutAdvancementsWrapper.craftSendPacket(Map.of( - ROOT, 1, - notification, 1 + ROOT, 1, + notification, 1 )).sendTo(player); PacketPlayOutAdvancementsWrapper.craftRemovePacket(Set.of(ROOT_KEY, NOTIFICATION_KEY)).sendTo(player); } catch (ReflectiveOperationException e) { @@ -143,7 +143,7 @@ private static AdvancementKey getUniqueKey(@NotNull AdvancementTab tab) { /** * Disables vanilla advancements. - * + * * @throws Exception If disabling fails. * @see UltimateAdvancementAPI#disableVanillaAdvancements() */ diff --git a/Common/src/test/java/com/fren_gor/ultimateAdvancementAPI/tests/CoordAdapterTest.java b/Common/src/test/java/com/fren_gor/ultimateAdvancementAPI/tests/CoordAdapterTest.java index e37b7261..e8f78362 100644 --- a/Common/src/test/java/com/fren_gor/ultimateAdvancementAPI/tests/CoordAdapterTest.java +++ b/Common/src/test/java/com/fren_gor/ultimateAdvancementAPI/tests/CoordAdapterTest.java @@ -149,10 +149,10 @@ public void docCodeTest() { // Create the CoordAdapter instance CoordAdapter adapter = CoordAdapter.builder() - .add(advKey1, 0, 0) // Will become (0, 1) - .add(advKey2, 1, -1) // Will become (1, 0) - .add(advKey3, 1, 1) // Will become (1, 2) - .build(); + .add(advKey1, 0, 0) // Will become (0, 1) + .add(advKey2, 1, -1) // Will become (1, 0) + .add(advKey3, 1, 1) // Will become (1, 2) + .build(); // Create the AdvancementDisplays var advDisplay1 = new AdvancementDisplay.Builder(Material.GRASS_BLOCK, "Title1").coords(adapter, advKey1).build(); diff --git a/Common/src/test/java/com/fren_gor/ultimateAdvancementAPI/tests/InterfaceImplementer.java b/Common/src/test/java/com/fren_gor/ultimateAdvancementAPI/tests/InterfaceImplementer.java index 97b1fdcd..40728195 100644 --- a/Common/src/test/java/com/fren_gor/ultimateAdvancementAPI/tests/InterfaceImplementer.java +++ b/Common/src/test/java/com/fren_gor/ultimateAdvancementAPI/tests/InterfaceImplementer.java @@ -58,19 +58,19 @@ public static Player newFakePlayer(@NotNull UUID uuid, @NotNull String name) { Preconditions.checkNotNull(uuid, "UUID not null."); Preconditions.checkNotNull(name, "Name not null."); return InterfaceImplementer.implement(Player.class, - new ImplementedMethod("getUniqueId", (o, args) -> uuid), - new ImplementedMethod("getName", (o, args) -> name), - new ImplementedMethod("getDisplayName", (o, args) -> name), - new ImplementedMethod("getType", (o, args) -> EntityType.PLAYER), - new ImplementedMethod("equals", (o, args) -> { - Object other = args[0]; - if (o == other) return true; - if (!(other instanceof Player that)) return false; - - return Objects.equals(uuid, that.getUniqueId()); - }), - new ImplementedMethod("hashCode", (o, args) -> uuid.hashCode()), - new ImplementedMethod("toString", (o, args) -> "Player{uuid=" + uuid + '}') + new ImplementedMethod("getUniqueId", (o, args) -> uuid), + new ImplementedMethod("getName", (o, args) -> name), + new ImplementedMethod("getDisplayName", (o, args) -> name), + new ImplementedMethod("getType", (o, args) -> EntityType.PLAYER), + new ImplementedMethod("equals", (o, args) -> { + Object other = args[0]; + if (o == other) return true; + if (!(other instanceof Player that)) return false; + + return Objects.equals(uuid, that.getUniqueId()); + }), + new ImplementedMethod("hashCode", (o, args) -> uuid.hashCode()), + new ImplementedMethod("toString", (o, args) -> "Player{uuid=" + uuid + '}') ); } @@ -79,29 +79,29 @@ public static Plugin newFakePlugin(@NotNull String name) { Preconditions.checkNotNull(name, "Name is null."); Logger logger = Logger.getLogger(name); return InterfaceImplementer.implement(Plugin.class, - new ImplementedMethod("getLogger", (o, args) -> logger), - new ImplementedMethod("getName", (o, args) -> name), - new ImplementedMethod("isEnabled", (o, args) -> true), - new ImplementedMethod("equals", (o, args) -> { - Object other = args[0]; - if (o == other) return true; - if (!(other instanceof Plugin that)) return false; - - // Fake plugin is always enabled - return that.isEnabled() && name.equals(that.getName()); - }), - new ImplementedMethod("hashCode", (o, args) -> name.hashCode()), - new ImplementedMethod("toString", (o, args) -> "Plugin{name=" + name + '}') + new ImplementedMethod("getLogger", (o, args) -> logger), + new ImplementedMethod("getName", (o, args) -> name), + new ImplementedMethod("isEnabled", (o, args) -> true), + new ImplementedMethod("equals", (o, args) -> { + Object other = args[0]; + if (o == other) return true; + if (!(other instanceof Plugin that)) return false; + + // Fake plugin is always enabled + return that.isEnabled() && name.equals(that.getName()); + }), + new ImplementedMethod("hashCode", (o, args) -> name.hashCode()), + new ImplementedMethod("toString", (o, args) -> "Plugin{name=" + name + '}') ); } public static Server newFakeServer() { var fakeServer = new ByteBuddy() - .subclass(Object.class) - .implement(Server.class) - .name("org.bukkit.craftbukkit.serverVersion1_17_R1.FakeServer") - .method(isDeclaredBy(Server.class)).intercept(ExceptionMethod.throwing(UnsupportedOperationException.class)) - .make().load(InterfaceImplementer.class.getClassLoader()); + .subclass(Object.class) + .implement(Server.class) + .name("org.bukkit.craftbukkit.serverVersion1_17_R1.FakeServer") + .method(isDeclaredBy(Server.class)).intercept(ExceptionMethod.throwing(UnsupportedOperationException.class)) + .make().load(InterfaceImplementer.class.getClassLoader()); try { return (Server) fakeServer.getLoaded().getDeclaredConstructor().newInstance(); } catch (ReflectiveOperationException e) { diff --git a/Distribution/API/pom.xml b/Distribution/API/pom.xml index ff1d3ea5..75445865 100644 --- a/Distribution/API/pom.xml +++ b/Distribution/API/pom.xml @@ -7,7 +7,7 @@ com.frengor ultimateadvancementapi-distribution - 2.8.0 + 2.8.1 ultimateadvancementapi diff --git a/Distribution/Commands/pom.xml b/Distribution/Commands/pom.xml index 7969cdd4..ad77794d 100644 --- a/Distribution/Commands/pom.xml +++ b/Distribution/Commands/pom.xml @@ -7,7 +7,7 @@ com.frengor ultimateadvancementapi-distribution - 2.8.0 + 2.8.1 ultimateadvancementapi-commands diff --git a/Distribution/Shadeable/pom.xml b/Distribution/Shadeable/pom.xml index 72c9139b..29e2332c 100644 --- a/Distribution/Shadeable/pom.xml +++ b/Distribution/Shadeable/pom.xml @@ -7,7 +7,7 @@ com.frengor ultimateadvancementapi-distribution - 2.8.0 + 2.8.1 ultimateadvancementapi-shadeable diff --git a/Distribution/pom.xml b/Distribution/pom.xml index 7042e238..a8a2a23e 100644 --- a/Distribution/pom.xml +++ b/Distribution/pom.xml @@ -7,7 +7,7 @@ com.frengor ultimateadvancementapi-parent - 2.8.0 + 2.8.1 ultimateadvancementapi-distribution diff --git a/NMS/1_15_R1/pom.xml b/NMS/1_15_R1/pom.xml index a88a767e..dfd169f0 100644 --- a/NMS/1_15_R1/pom.xml +++ b/NMS/1_15_R1/pom.xml @@ -7,7 +7,7 @@ com.frengor ultimateadvancementapi-nms-parent - 2.8.0 + 2.8.1 ultimateadvancementapi-nms-1_15_R1 diff --git a/NMS/1_16_R1/pom.xml b/NMS/1_16_R1/pom.xml index c389e6ab..7cf1c5e9 100644 --- a/NMS/1_16_R1/pom.xml +++ b/NMS/1_16_R1/pom.xml @@ -7,7 +7,7 @@ com.frengor ultimateadvancementapi-nms-parent - 2.8.0 + 2.8.1 ultimateadvancementapi-nms-1_16_R1 diff --git a/NMS/1_16_R2/pom.xml b/NMS/1_16_R2/pom.xml index 562eec0e..1c83dbd0 100644 --- a/NMS/1_16_R2/pom.xml +++ b/NMS/1_16_R2/pom.xml @@ -7,7 +7,7 @@ com.frengor ultimateadvancementapi-nms-parent - 2.8.0 + 2.8.1 ultimateadvancementapi-nms-1_16_R2 diff --git a/NMS/1_16_R3/pom.xml b/NMS/1_16_R3/pom.xml index b85e924a..a0f9f6be 100644 --- a/NMS/1_16_R3/pom.xml +++ b/NMS/1_16_R3/pom.xml @@ -7,7 +7,7 @@ com.frengor ultimateadvancementapi-nms-parent - 2.8.0 + 2.8.1 ultimateadvancementapi-nms-1_16_R3 diff --git a/NMS/1_17_R1/pom.xml b/NMS/1_17_R1/pom.xml index c447e98b..f9f1ad1d 100644 --- a/NMS/1_17_R1/pom.xml +++ b/NMS/1_17_R1/pom.xml @@ -7,7 +7,7 @@ com.frengor ultimateadvancementapi-nms-parent - 2.8.0 + 2.8.1 ultimateadvancementapi-nms-1_17_R1 diff --git a/NMS/1_18_R1/pom.xml b/NMS/1_18_R1/pom.xml index 0dabba40..47412257 100644 --- a/NMS/1_18_R1/pom.xml +++ b/NMS/1_18_R1/pom.xml @@ -7,7 +7,7 @@ com.frengor ultimateadvancementapi-nms-parent - 2.8.0 + 2.8.1 ultimateadvancementapi-nms-1_18_R1 diff --git a/NMS/1_18_R2/pom.xml b/NMS/1_18_R2/pom.xml index 469cfaee..b6e43a03 100644 --- a/NMS/1_18_R2/pom.xml +++ b/NMS/1_18_R2/pom.xml @@ -7,7 +7,7 @@ com.frengor ultimateadvancementapi-nms-parent - 2.8.0 + 2.8.1 ultimateadvancementapi-nms-1_18_R2 diff --git a/NMS/1_19_R1/pom.xml b/NMS/1_19_R1/pom.xml index 843d4f87..33973ec2 100644 --- a/NMS/1_19_R1/pom.xml +++ b/NMS/1_19_R1/pom.xml @@ -7,7 +7,7 @@ com.frengor ultimateadvancementapi-nms-parent - 2.8.0 + 2.8.1 ultimateadvancementapi-nms-1_19_R1 diff --git a/NMS/1_19_R1/src/main/java/com/fren_gor/ultimateAdvancementAPI/nms/v1_19_R1/Util.java b/NMS/1_19_R1/src/main/java/com/fren_gor/ultimateAdvancementAPI/nms/v1_19_R1/Util.java index 784c4091..73d7b21f 100644 --- a/NMS/1_19_R1/src/main/java/com/fren_gor/ultimateAdvancementAPI/nms/v1_19_R1/Util.java +++ b/NMS/1_19_R1/src/main/java/com/fren_gor/ultimateAdvancementAPI/nms/v1_19_R1/Util.java @@ -82,7 +82,6 @@ public static Component fromComponent(@NotNull BaseComponent component) { return base == null ? CommonComponents.EMPTY : base; } - public static void sendTo(@NotNull Player player, @NotNull Packet packet) { Preconditions.checkNotNull(player, "Player is null."); Preconditions.checkNotNull(packet, "Packet is null."); diff --git a/NMS/1_19_R2/pom.xml b/NMS/1_19_R2/pom.xml index 849737dd..5cdee89c 100644 --- a/NMS/1_19_R2/pom.xml +++ b/NMS/1_19_R2/pom.xml @@ -7,7 +7,7 @@ com.frengor ultimateadvancementapi-nms-parent - 2.8.0 + 2.8.1 ultimateadvancementapi-nms-1_19_R2 diff --git a/NMS/1_19_R3/pom.xml b/NMS/1_19_R3/pom.xml index 34568710..ea6b902a 100644 --- a/NMS/1_19_R3/pom.xml +++ b/NMS/1_19_R3/pom.xml @@ -7,7 +7,7 @@ com.frengor ultimateadvancementapi-nms-parent - 2.8.0 + 2.8.1 ultimateadvancementapi-nms-1_19_R3 diff --git a/NMS/1_20_R1/pom.xml b/NMS/1_20_R1/pom.xml index 9f4b4102..6a4c6b3e 100644 --- a/NMS/1_20_R1/pom.xml +++ b/NMS/1_20_R1/pom.xml @@ -7,7 +7,7 @@ com.frengor ultimateadvancementapi-nms-parent - 2.8.0 + 2.8.1 ultimateadvancementapi-nms-1_20_R1 diff --git a/NMS/1_20_R2/pom.xml b/NMS/1_20_R2/pom.xml index e5257645..9f916e19 100644 --- a/NMS/1_20_R2/pom.xml +++ b/NMS/1_20_R2/pom.xml @@ -7,7 +7,7 @@ com.frengor ultimateadvancementapi-nms-parent - 2.8.0 + 2.8.1 ultimateadvancementapi-nms-1_20_R2 diff --git a/NMS/1_20_R3/pom.xml b/NMS/1_20_R3/pom.xml index 7738cd11..34a410c2 100644 --- a/NMS/1_20_R3/pom.xml +++ b/NMS/1_20_R3/pom.xml @@ -7,7 +7,7 @@ com.frengor ultimateadvancementapi-nms-parent - 2.8.0 + 2.8.1 ultimateadvancementapi-nms-1_20_R3 diff --git a/NMS/1_20_R4/pom.xml b/NMS/1_20_R4/pom.xml index 8ea5e543..d4751aa4 100644 --- a/NMS/1_20_R4/pom.xml +++ b/NMS/1_20_R4/pom.xml @@ -7,7 +7,7 @@ com.frengor ultimateadvancementapi-nms-parent - 2.8.0 + 2.8.1 ultimateadvancementapi-nms-1_20_R4 diff --git a/NMS/1_21_R1/pom.xml b/NMS/1_21_R1/pom.xml index d62f0fe8..db0b60bb 100644 --- a/NMS/1_21_R1/pom.xml +++ b/NMS/1_21_R1/pom.xml @@ -7,7 +7,7 @@ com.frengor ultimateadvancementapi-nms-parent - 2.8.0 + 2.8.1 ultimateadvancementapi-nms-1_21_R1 diff --git a/NMS/1_21_R2/pom.xml b/NMS/1_21_R2/pom.xml index 0a2e0a44..e18e4011 100644 --- a/NMS/1_21_R2/pom.xml +++ b/NMS/1_21_R2/pom.xml @@ -7,7 +7,7 @@ com.frengor ultimateadvancementapi-nms-parent - 2.8.0 + 2.8.1 ultimateadvancementapi-nms-1_21_R2 diff --git a/NMS/1_21_R3/pom.xml b/NMS/1_21_R3/pom.xml index ef09bdfc..9e02f5b8 100644 --- a/NMS/1_21_R3/pom.xml +++ b/NMS/1_21_R3/pom.xml @@ -7,7 +7,7 @@ com.frengor ultimateadvancementapi-nms-parent - 2.8.0 + 2.8.1 ultimateadvancementapi-nms-1_21_R3 diff --git a/NMS/1_21_R4/pom.xml b/NMS/1_21_R4/pom.xml index cc6ccd8d..4eef93e9 100644 --- a/NMS/1_21_R4/pom.xml +++ b/NMS/1_21_R4/pom.xml @@ -7,7 +7,7 @@ com.frengor ultimateadvancementapi-nms-parent - 2.8.0 + 2.8.1 ultimateadvancementapi-nms-1_21_R4 diff --git a/NMS/1_21_R5/pom.xml b/NMS/1_21_R5/pom.xml index b83fc4e8..b2ccb648 100644 --- a/NMS/1_21_R5/pom.xml +++ b/NMS/1_21_R5/pom.xml @@ -7,7 +7,7 @@ com.frengor ultimateadvancementapi-nms-parent - 2.8.0 + 2.8.1 ultimateadvancementapi-nms-1_21_R5 diff --git a/NMS/1_21_R6/pom.xml b/NMS/1_21_R6/pom.xml index ec21a860..5d32fe5c 100644 --- a/NMS/1_21_R6/pom.xml +++ b/NMS/1_21_R6/pom.xml @@ -7,7 +7,7 @@ com.frengor ultimateadvancementapi-nms-parent - 2.8.0 + 2.8.1 ultimateadvancementapi-nms-1_21_R6 diff --git a/NMS/1_21_R7/pom.xml b/NMS/1_21_R7/pom.xml index b67c0462..6c4290cb 100644 --- a/NMS/1_21_R7/pom.xml +++ b/NMS/1_21_R7/pom.xml @@ -7,7 +7,7 @@ com.frengor ultimateadvancementapi-nms-parent - 2.8.0 + 2.8.1 ultimateadvancementapi-nms-1_21_R7 diff --git a/NMS/26_1_R2/pom.xml b/NMS/26_1_R2/pom.xml index c23492dc..672d71b9 100644 --- a/NMS/26_1_R2/pom.xml +++ b/NMS/26_1_R2/pom.xml @@ -7,7 +7,7 @@ com.frengor ultimateadvancementapi-nms-parent - 2.8.0 + 2.8.1 ultimateadvancementapi-nms-26_1_R2 diff --git a/Commands/CommandAPI-10.1.2/pom.xml b/NMS/26_2_R1/pom.xml similarity index 61% rename from Commands/CommandAPI-10.1.2/pom.xml rename to NMS/26_2_R1/pom.xml index e5ff59ac..1498bd0e 100644 --- a/Commands/CommandAPI-10.1.2/pom.xml +++ b/NMS/26_2_R1/pom.xml @@ -6,29 +6,41 @@ com.frengor - ultimateadvancementapi-commands-parent - 2.8.0 + ultimateadvancementapi-nms-parent + 2.8.1 - ultimateadvancementapi-commands-commandapi-10.1.2 - UltimateAdvancementAPI-Commands-CommandAPI-10.1.2 + ultimateadvancementapi-nms-26_2_R1 + UltimateAdvancementAPI-NMS-26_2_R1 ${parent.url} jar + + 26.2-R0.1-SNAPSHOT + + - + - com.frengor - ultimateadvancementapi-commands-common - ${project.version} + org.spigotmc + spigot-api + ${mc-version} + provided + + + + + org.spigotmc + spigot + ${mc-version} provided - + - dev.jorel - commandapi-bukkit-shade - 10.1.2 + com.frengor + ultimateadvancementapi-nms-common + ${project.version} provided @@ -52,4 +64,5 @@ - \ No newline at end of file + + diff --git a/NMS/26_2_R1/src/main/java/com/fren_gor/ultimateAdvancementAPI/nms/v26_2_R1/MinecraftKeyWrapper_v26_2_R1.java b/NMS/26_2_R1/src/main/java/com/fren_gor/ultimateAdvancementAPI/nms/v26_2_R1/MinecraftKeyWrapper_v26_2_R1.java new file mode 100644 index 00000000..fa83d54d --- /dev/null +++ b/NMS/26_2_R1/src/main/java/com/fren_gor/ultimateAdvancementAPI/nms/v26_2_R1/MinecraftKeyWrapper_v26_2_R1.java @@ -0,0 +1,46 @@ +package com.fren_gor.ultimateAdvancementAPI.nms.v26_2_R1; + +import com.fren_gor.ultimateAdvancementAPI.nms.wrappers.MinecraftKeyWrapper; +import net.minecraft.IdentifierException; +import net.minecraft.resources.Identifier; +import org.jetbrains.annotations.NotNull; + +public class MinecraftKeyWrapper_v26_2_R1 extends MinecraftKeyWrapper { + + private final Identifier key; + + public MinecraftKeyWrapper_v26_2_R1(@NotNull Object key) { + this.key = (Identifier) key; + } + + public MinecraftKeyWrapper_v26_2_R1(@NotNull String namespace, @NotNull String key) { + try { + this.key = Identifier.fromNamespaceAndPath(namespace, key); + } catch (IdentifierException e) { + throw new IllegalArgumentException(e.getMessage()); + } + } + + @Override + @NotNull + public String getNamespace() { + return key.getNamespace(); + } + + @Override + @NotNull + public String getKey() { + return key.getPath(); + } + + @Override + public int compareTo(@NotNull MinecraftKeyWrapper obj) { + return key.compareTo((Identifier) obj.toNMS()); + } + + @Override + @NotNull + public Identifier toNMS() { + return key; + } +} diff --git a/NMS/26_2_R1/src/main/java/com/fren_gor/ultimateAdvancementAPI/nms/v26_2_R1/Util.java b/NMS/26_2_R1/src/main/java/com/fren_gor/ultimateAdvancementAPI/nms/v26_2_R1/Util.java new file mode 100644 index 00000000..19d3cdcd --- /dev/null +++ b/NMS/26_2_R1/src/main/java/com/fren_gor/ultimateAdvancementAPI/nms/v26_2_R1/Util.java @@ -0,0 +1,121 @@ +package com.fren_gor.ultimateAdvancementAPI.nms.v26_2_R1; + +import com.google.common.base.Preconditions; +import com.google.common.collect.Maps; +import net.md_5.bungee.api.chat.BaseComponent; +import net.md_5.bungee.chat.ComponentSerializer; +import net.minecraft.advancements.AdvancementHolder; +import net.minecraft.advancements.AdvancementProgress; +import net.minecraft.advancements.AdvancementRequirements; +import net.minecraft.advancements.CriterionProgress; +import net.minecraft.advancements.triggers.Criterion; +import net.minecraft.advancements.triggers.ImpossibleTrigger; +import net.minecraft.advancements.triggers.ImpossibleTrigger.TriggerInstance; +import net.minecraft.core.ClientAsset; +import net.minecraft.network.chat.CommonComponents; +import net.minecraft.network.chat.Component; +import net.minecraft.network.protocol.Packet; +import net.minecraft.resources.Identifier; +import org.bukkit.craftbukkit.entity.CraftPlayer; +import org.bukkit.craftbukkit.util.CraftChatMessage; +import org.bukkit.entity.Player; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import org.jetbrains.annotations.Range; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.logging.Logger; + +public class Util { + + public static final Logger ERROR = Logger.getLogger("UltimateAdvancementAPI-NMS"); + + @NotNull + public static Map> getAdvancementCriteria(@Range(from = 1, to = Integer.MAX_VALUE) int maxProgression) { + Preconditions.checkArgument(maxProgression >= 1, "Max progression must be >= 1."); + + Map> advCriteria = Maps.newHashMapWithExpectedSize(maxProgression); + for (int i = 0; i < maxProgression; i++) { + advCriteria.put(String.valueOf(i), new Criterion<>(new ImpossibleTrigger(), new TriggerInstance())); + } + + return advCriteria; + } + + @NotNull + public static AdvancementRequirements getAdvancementRequirements(@NotNull Map> advCriteria) { + Preconditions.checkNotNull(advCriteria, "Advancement criteria map is null."); + + List> list = new ArrayList<>(advCriteria.size()); + for (String name : advCriteria.keySet()) { + list.add(List.of(name)); + } + + return new AdvancementRequirements(list); + } + + @NotNull + public static AdvancementProgress getAdvancementProgress(@NotNull AdvancementHolder mcAdv, @Range(from = 0, to = Integer.MAX_VALUE) int progression) { + Preconditions.checkNotNull(mcAdv, "NMS Advancement is null."); + Preconditions.checkArgument(progression >= 0, "Progression must be >= 0."); + + AdvancementProgress advPrg = new AdvancementProgress(); + advPrg.update(mcAdv.value().requirements()); + + for (int i = 0; i < progression; i++) { + CriterionProgress criteriaPrg = advPrg.getCriterion(String.valueOf(i)); + if (criteriaPrg != null) { + criteriaPrg.grant(); + } + } + + return advPrg; + } + + @NotNull + public static Component fromString(@NotNull String string) { + if (string == null || string.isEmpty()) { + return CommonComponents.EMPTY; + } + return CraftChatMessage.fromStringOrNull(string, true); + } + + @NotNull + public static Component fromComponent(@NotNull BaseComponent component) { + if (component == null) { + return CommonComponents.EMPTY; + } + Component base = CraftChatMessage.fromJSONOrNull(ComponentSerializer.toString(component)); + return base == null ? CommonComponents.EMPTY : base; + } + + @Nullable + public static ClientAsset.ResourceTexture parseBackgroundTexture(@Nullable String backgroundTexture) { + if (backgroundTexture == null) { + return null; + } + + Identifier texturePath = Identifier.parse(backgroundTexture); + if (!texturePath.getPath().startsWith("textures/") || !texturePath.getPath().endsWith(".png")) { + ERROR.severe("Invalid background texture \"" + backgroundTexture + "\" (the path should be in the form \"textures/**.png\")"); + return null; + } + + Identifier id = texturePath.withPath(path -> { + return path.substring("textures/".length(), path.length() - ".png".length()); + }); + return new ClientAsset.ResourceTexture(id, texturePath); + } + + public static void sendTo(@NotNull Player player, @NotNull Packet packet) { + Preconditions.checkNotNull(player, "Player is null."); + Preconditions.checkNotNull(packet, "Packet is null."); + ((CraftPlayer) player).getHandle().connection.send(packet); + } + + private Util() { + throw new UnsupportedOperationException("Utility class."); + } +} diff --git a/NMS/26_2_R1/src/main/java/com/fren_gor/ultimateAdvancementAPI/nms/v26_2_R1/VanillaAdvancementDisablerWrapper_v26_2_R1.java b/NMS/26_2_R1/src/main/java/com/fren_gor/ultimateAdvancementAPI/nms/v26_2_R1/VanillaAdvancementDisablerWrapper_v26_2_R1.java new file mode 100644 index 00000000..01ea51f6 --- /dev/null +++ b/NMS/26_2_R1/src/main/java/com/fren_gor/ultimateAdvancementAPI/nms/v26_2_R1/VanillaAdvancementDisablerWrapper_v26_2_R1.java @@ -0,0 +1,184 @@ +package com.fren_gor.ultimateAdvancementAPI.nms.v26_2_R1; + +import com.fren_gor.ultimateAdvancementAPI.nms.wrappers.VanillaAdvancementDisablerWrapper; +import com.google.common.collect.ImmutableMap; +import com.google.common.collect.Sets; +import net.minecraft.advancements.AdvancementHolder; +import net.minecraft.advancements.AdvancementNode; +import net.minecraft.advancements.AdvancementTree; +import net.minecraft.advancements.AdvancementTree.Listener; +import net.minecraft.network.protocol.game.ClientboundUpdateAdvancementsPacket; +import net.minecraft.resources.Identifier; +import net.minecraft.server.PlayerAdvancements; +import net.minecraft.server.ServerAdvancementManager; +import org.apache.logging.log4j.Level; +import org.apache.logging.log4j.Logger; +import org.apache.logging.log4j.simple.SimpleLogger; +import org.bukkit.Bukkit; +import org.bukkit.craftbukkit.CraftServer; +import org.bukkit.craftbukkit.entity.CraftPlayer; +import org.bukkit.entity.Player; + +import java.lang.reflect.Field; +import java.lang.reflect.Modifier; +import java.util.Arrays; +import java.util.Collections; +import java.util.HashSet; +import java.util.Objects; +import java.util.Set; + +public class VanillaAdvancementDisablerWrapper_v26_2_R1 extends VanillaAdvancementDisablerWrapper { + + private static Logger LOGGER = null; + private static Field listener, firstPacket; + + static { + try { + listener = Arrays.stream(AdvancementTree.class.getDeclaredFields()).filter(f -> f.getType() == AdvancementTree.Listener.class).findFirst().orElseThrow(); + listener.setAccessible(true); + } catch (Exception e) { + e.printStackTrace(); + } + try { + firstPacket = Arrays.stream(PlayerAdvancements.class.getDeclaredFields()).filter(f -> f.getType() == boolean.class).findFirst().orElseThrow(); + firstPacket.setAccessible(true); + } catch (Exception e) { + e.printStackTrace(); + } + try { + Field logger = Arrays.stream(AdvancementTree.class.getDeclaredFields()).filter(f -> f.getType() == org.slf4j.Logger.class).findFirst().orElseThrow(); + logger.setAccessible(true); + org.slf4j.Logger slf4jLogger = (org.slf4j.Logger) logger.get(null); + LOGGER = Arrays.stream(slf4jLogger.getClass().getDeclaredFields()).filter(f -> !Modifier.isStatic(f.getModifiers())).map(f -> { + try { + f.setAccessible(true); + if (f.get(slf4jLogger) instanceof Logger log) { + return log; + } + } catch (ReflectiveOperationException e) { + e.printStackTrace(); + } + return null; + }).filter(Objects::nonNull).findFirst().orElseThrow(); + } catch (Exception e) { + e.printStackTrace(); + } + } + + public static void disableVanillaAdvancements(boolean vanillaAdvancements, boolean vanillaRecipeAdvancements) throws Exception { + ServerAdvancementManager serverAdvancements = ((CraftServer) Bukkit.getServer()).getServer().getAdvancements(); + AdvancementTree tree = serverAdvancements.tree(); + + if (serverAdvancements.advancements.isEmpty()) { + return; + } + + final Set removed = Sets.newHashSetWithExpectedSize(serverAdvancements.advancements.size()); + + // Inject AdvancementTree listener + final Listener old = (Listener) listener.get(tree); + try { + listener.set(tree, new Listener() { + @Override + public void onAddAdvancementRoot(AdvancementNode advancement) { + if (old != null) + old.onAddAdvancementRoot(advancement); + } + + @Override + public void onRemoveAdvancementRoot(AdvancementNode advancement) { + removed.add(advancement.holder().id()); + if (old != null) + old.onRemoveAdvancementRoot(advancement); + } + + @Override + public void onAddAdvancementTask(AdvancementNode advancement) { + if (old != null) + old.onAddAdvancementTask(advancement); + } + + @Override + public void onRemoveAdvancementTask(AdvancementNode advancement) { + removed.add(advancement.holder().id()); + if (old != null) + old.onRemoveAdvancementTask(advancement); + } + + @Override + public void onAdvancementsCleared() { + if (old != null) + old.onAdvancementsCleared(); + } + }); + + Set locations = new HashSet<>(); + ImmutableMap.Builder builder = ImmutableMap.builder(); + for (var entry : serverAdvancements.advancements.entrySet()) { + Identifier key = entry.getKey(); + boolean isRecipe = key.getPath().startsWith("recipes/"); + if (key.getNamespace().equals("minecraft") && ((vanillaAdvancements && !isRecipe) || (vanillaRecipeAdvancements && isRecipe))) { + locations.add(key); + } else { + builder.put(key, entry.getValue()); + } + } + + serverAdvancements.advancements = builder.buildOrThrow(); + + final Level oldLevel = disableLogger(); + try { + tree.remove(locations); + } finally { + // Always restore old logger + enableLogger(oldLevel); + } + } finally { + // Always uninject advancement listener + listener.set(tree, old); + } + + final var removePacket = new ClientboundUpdateAdvancementsPacket(false, Collections.emptyList(), removed, Collections.emptyMap(), false); + + // Remove advancements from players + for (Player player : Bukkit.getOnlinePlayers()) { + var mcPlayer = ((CraftPlayer) player).getHandle(); + var advs = mcPlayer.getAdvancements(); + advs.reload(serverAdvancements); + firstPacket.setBoolean(advs, false); // Don't clear every client advancement + mcPlayer.connection.send(removePacket); + } + } + + private static Level disableLogger() { + if (LOGGER == null) // Fail-safe if LOGGER could not be found by reflections + return null; + + Level old = LOGGER.getLevel(); + + // Method setLevel is not present in Logger interface + if (LOGGER instanceof org.apache.logging.log4j.core.Logger coreLogger) { + coreLogger.setLevel(Level.OFF); + } else if (LOGGER instanceof SimpleLogger simple) { + simple.setLevel(Level.OFF); + } + + return old; + } + + private static void enableLogger(Level toSet) { + if (LOGGER == null || toSet == null) // Fail-safe if LOGGER could not be found by reflections + return; + + // Method setLevel is not present in Logger interface + if (LOGGER instanceof org.apache.logging.log4j.core.Logger coreLogger) { + coreLogger.setLevel(toSet); + } else if (LOGGER instanceof SimpleLogger simple) { + simple.setLevel(toSet); + } + } + + private VanillaAdvancementDisablerWrapper_v26_2_R1() { + throw new UnsupportedOperationException("Utility class."); + } +} diff --git a/NMS/26_2_R1/src/main/java/com/fren_gor/ultimateAdvancementAPI/nms/v26_2_R1/advancement/AdvancementDisplayWrapper_v26_2_R1.java b/NMS/26_2_R1/src/main/java/com/fren_gor/ultimateAdvancementAPI/nms/v26_2_R1/advancement/AdvancementDisplayWrapper_v26_2_R1.java new file mode 100644 index 00000000..245d0fd5 --- /dev/null +++ b/NMS/26_2_R1/src/main/java/com/fren_gor/ultimateAdvancementAPI/nms/v26_2_R1/advancement/AdvancementDisplayWrapper_v26_2_R1.java @@ -0,0 +1,99 @@ +package com.fren_gor.ultimateAdvancementAPI.nms.v26_2_R1.advancement; + +import com.fren_gor.ultimateAdvancementAPI.nms.v26_2_R1.Util; +import com.fren_gor.ultimateAdvancementAPI.nms.wrappers.advancement.AdvancementDisplayWrapper; +import com.fren_gor.ultimateAdvancementAPI.nms.wrappers.advancement.AdvancementFrameTypeWrapper; +import net.md_5.bungee.api.chat.BaseComponent; +import net.minecraft.advancements.AdvancementType; +import net.minecraft.advancements.DisplayInfo; +import net.minecraft.core.ClientAsset; +import net.minecraft.world.item.ItemStackTemplate; +import org.bukkit.craftbukkit.inventory.CraftItemStack; +import org.bukkit.craftbukkit.util.CraftChatMessage; +import org.bukkit.inventory.ItemStack; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.util.Optional; + +public class AdvancementDisplayWrapper_v26_2_R1 extends AdvancementDisplayWrapper { + + private final DisplayInfo display; + private final AdvancementFrameTypeWrapper frameType; + + public AdvancementDisplayWrapper_v26_2_R1(@NotNull ItemStack icon, @NotNull String title, @NotNull String description, @NotNull AdvancementFrameTypeWrapper frameType, float x, float y, boolean showToast, boolean announceChat, boolean hidden, @Nullable String backgroundTexture) { + ClientAsset.ResourceTexture clientAsset = Util.parseBackgroundTexture(backgroundTexture); + this.display = new DisplayInfo(ItemStackTemplate.fromNonEmptyStack(CraftItemStack.asNMSCopy(icon)), Util.fromString(title), Util.fromString(description), Optional.ofNullable(clientAsset), (AdvancementType) frameType.toNMS(), showToast, announceChat, hidden); + this.display.setLocation(x, y); + this.frameType = frameType; + } + + public AdvancementDisplayWrapper_v26_2_R1(@NotNull ItemStack icon, @NotNull BaseComponent title, @NotNull BaseComponent description, @NotNull AdvancementFrameTypeWrapper frameType, float x, float y, boolean showToast, boolean announceChat, boolean hidden, @Nullable String backgroundTexture) { + ClientAsset.ResourceTexture clientAsset = Util.parseBackgroundTexture(backgroundTexture); + this.display = new DisplayInfo(ItemStackTemplate.fromNonEmptyStack(CraftItemStack.asNMSCopy(icon)), Util.fromComponent(title), Util.fromComponent(description), Optional.ofNullable(clientAsset), (AdvancementType) frameType.toNMS(), showToast, announceChat, hidden); + this.display.setLocation(x, y); + this.frameType = frameType; + } + + @Override + @NotNull + public ItemStack getIcon() { + return CraftItemStack.asCraftMirror(display.getIcon().create()); + } + + @Override + @NotNull + public String getTitle() { + return CraftChatMessage.fromComponent(display.getTitle()); + } + + @Override + @NotNull + public String getDescription() { + return CraftChatMessage.fromComponent(display.getDescription()); + } + + @Override + @NotNull + public AdvancementFrameTypeWrapper getAdvancementFrameType() { + return frameType; + } + + @Override + public float getX() { + return display.getX(); + } + + @Override + public float getY() { + return display.getY(); + } + + @Override + public boolean doesShowToast() { + return display.shouldShowToast(); + } + + @Override + public boolean doesAnnounceToChat() { + return display.shouldAnnounceChat(); + } + + @Override + public boolean isHidden() { + return display.isHidden(); + } + + @Override + @Nullable + public String getBackgroundTexture() { + Optional r = display.getBackground(); + return r.isEmpty() ? null : r.toString(); + } + + @Override + @NotNull + public DisplayInfo toNMS() { + return display; + } +} diff --git a/NMS/26_2_R1/src/main/java/com/fren_gor/ultimateAdvancementAPI/nms/v26_2_R1/advancement/AdvancementFrameTypeWrapper_v26_2_R1.java b/NMS/26_2_R1/src/main/java/com/fren_gor/ultimateAdvancementAPI/nms/v26_2_R1/advancement/AdvancementFrameTypeWrapper_v26_2_R1.java new file mode 100644 index 00000000..d8e53d7d --- /dev/null +++ b/NMS/26_2_R1/src/main/java/com/fren_gor/ultimateAdvancementAPI/nms/v26_2_R1/advancement/AdvancementFrameTypeWrapper_v26_2_R1.java @@ -0,0 +1,32 @@ +package com.fren_gor.ultimateAdvancementAPI.nms.v26_2_R1.advancement; + +import com.fren_gor.ultimateAdvancementAPI.nms.wrappers.advancement.AdvancementFrameTypeWrapper; +import org.jetbrains.annotations.NotNull; + +public class AdvancementFrameTypeWrapper_v26_2_R1 extends AdvancementFrameTypeWrapper { + + private final net.minecraft.advancements.AdvancementType mcFrameType; + + private final FrameType frameType; + + public AdvancementFrameTypeWrapper_v26_2_R1(@NotNull FrameType frameType) { + this.frameType = frameType; + this.mcFrameType = switch (frameType) { + case TASK -> net.minecraft.advancements.AdvancementType.TASK; + case GOAL -> net.minecraft.advancements.AdvancementType.GOAL; + case CHALLENGE -> net.minecraft.advancements.AdvancementType.CHALLENGE; + }; + } + + @Override + @NotNull + public FrameType getFrameType() { + return frameType; + } + + @Override + @NotNull + public net.minecraft.advancements.AdvancementType toNMS() { + return mcFrameType; + } +} diff --git a/NMS/26_2_R1/src/main/java/com/fren_gor/ultimateAdvancementAPI/nms/v26_2_R1/advancement/AdvancementWrapper_v26_2_R1.java b/NMS/26_2_R1/src/main/java/com/fren_gor/ultimateAdvancementAPI/nms/v26_2_R1/advancement/AdvancementWrapper_v26_2_R1.java new file mode 100644 index 00000000..4f6dc989 --- /dev/null +++ b/NMS/26_2_R1/src/main/java/com/fren_gor/ultimateAdvancementAPI/nms/v26_2_R1/advancement/AdvancementWrapper_v26_2_R1.java @@ -0,0 +1,88 @@ +package com.fren_gor.ultimateAdvancementAPI.nms.v26_2_R1.advancement; + +import com.fren_gor.ultimateAdvancementAPI.nms.v26_2_R1.Util; +import com.fren_gor.ultimateAdvancementAPI.nms.wrappers.MinecraftKeyWrapper; +import com.fren_gor.ultimateAdvancementAPI.nms.wrappers.advancement.AdvancementDisplayWrapper; +import com.fren_gor.ultimateAdvancementAPI.nms.wrappers.advancement.AdvancementWrapper; +import net.minecraft.advancements.Advancement; +import net.minecraft.advancements.AdvancementHolder; +import net.minecraft.advancements.AdvancementRequirements; +import net.minecraft.advancements.AdvancementRewards; +import net.minecraft.advancements.DisplayInfo; +import net.minecraft.advancements.triggers.Criterion; +import net.minecraft.resources.Identifier; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import org.jetbrains.annotations.Range; + +import java.util.Map; +import java.util.Optional; + +public class AdvancementWrapper_v26_2_R1 extends AdvancementWrapper { + + private final AdvancementHolder advancementHolder; + private final MinecraftKeyWrapper key; + private final AdvancementWrapper parent; + private final AdvancementDisplayWrapper display; + + public AdvancementWrapper_v26_2_R1(@NotNull MinecraftKeyWrapper key, @NotNull AdvancementDisplayWrapper display, @Range(from = 1, to = Integer.MAX_VALUE) int maxProgression) { + Map> advCriteria = Util.getAdvancementCriteria(maxProgression); + Advancement advancement = new Advancement(Optional.empty(), Optional.of((DisplayInfo) display.toNMS()), AdvancementRewards.EMPTY, advCriteria, Util.getAdvancementRequirements(advCriteria), false, Optional.empty()); + this.advancementHolder = new AdvancementHolder((Identifier) key.toNMS(), advancement); + this.key = key; + this.parent = null; + this.display = display; + } + + public AdvancementWrapper_v26_2_R1(@NotNull MinecraftKeyWrapper key, @NotNull AdvancementWrapper parent, @NotNull AdvancementDisplayWrapper display, @Range(from = 1, to = Integer.MAX_VALUE) int maxProgression) { + Map> advCriteria = Util.getAdvancementCriteria(maxProgression); + Advancement advancement = new Advancement(Optional.of((Identifier) parent.getKey().toNMS()), Optional.of((DisplayInfo) display.toNMS()), AdvancementRewards.EMPTY, advCriteria, Util.getAdvancementRequirements(advCriteria), false, Optional.empty()); + this.advancementHolder = new AdvancementHolder((Identifier) key.toNMS(), advancement); + this.key = key; + this.parent = parent; + this.display = display; + } + + protected AdvancementWrapper_v26_2_R1(@NotNull MinecraftKeyWrapper key, @NotNull AdvancementDisplayWrapper display, @NotNull Map> advCriteria, @NotNull AdvancementRequirements advRequirements) { + Advancement advancement = new Advancement(Optional.empty(), Optional.of((DisplayInfo) display.toNMS()), AdvancementRewards.EMPTY, advCriteria, advRequirements, false, Optional.empty()); + this.advancementHolder = new AdvancementHolder((Identifier) key.toNMS(), advancement); + this.key = key; + this.parent = null; + this.display = display; + } + + protected AdvancementWrapper_v26_2_R1(@NotNull MinecraftKeyWrapper key, @NotNull AdvancementWrapper parent, @NotNull AdvancementDisplayWrapper display, @NotNull Map> advCriteria, @NotNull AdvancementRequirements advRequirements) { + Advancement advancement = new Advancement(Optional.of((Identifier) parent.getKey().toNMS()), Optional.of((DisplayInfo) display.toNMS()), AdvancementRewards.EMPTY, advCriteria, advRequirements, false, Optional.empty()); + this.advancementHolder = new AdvancementHolder((Identifier) key.toNMS(), advancement); + this.key = key; + this.parent = parent; + this.display = display; + } + + @NotNull + public MinecraftKeyWrapper getKey() { + return key; + } + + @Nullable + public AdvancementWrapper getParent() { + return parent; + } + + @NotNull + public AdvancementDisplayWrapper getDisplay() { + return display; + } + + @Override + @Range(from = 1, to = Integer.MAX_VALUE) + public int getMaxProgression() { + return this.advancementHolder.value().requirements().size(); + } + + @Override + @NotNull + public AdvancementHolder toNMS() { + return advancementHolder; + } +} diff --git a/NMS/26_2_R1/src/main/java/com/fren_gor/ultimateAdvancementAPI/nms/v26_2_R1/advancement/PreparedAdvancementWrapper_v26_2_R1.java b/NMS/26_2_R1/src/main/java/com/fren_gor/ultimateAdvancementAPI/nms/v26_2_R1/advancement/PreparedAdvancementWrapper_v26_2_R1.java new file mode 100644 index 00000000..8dcfd538 --- /dev/null +++ b/NMS/26_2_R1/src/main/java/com/fren_gor/ultimateAdvancementAPI/nms/v26_2_R1/advancement/PreparedAdvancementWrapper_v26_2_R1.java @@ -0,0 +1,56 @@ +package com.fren_gor.ultimateAdvancementAPI.nms.v26_2_R1.advancement; + +import com.fren_gor.ultimateAdvancementAPI.nms.v26_2_R1.Util; +import com.fren_gor.ultimateAdvancementAPI.nms.wrappers.MinecraftKeyWrapper; +import com.fren_gor.ultimateAdvancementAPI.nms.wrappers.advancement.AdvancementDisplayWrapper; +import com.fren_gor.ultimateAdvancementAPI.nms.wrappers.advancement.AdvancementWrapper; +import com.fren_gor.ultimateAdvancementAPI.nms.wrappers.advancement.PreparedAdvancementWrapper; +import net.minecraft.advancements.AdvancementRequirements; +import net.minecraft.advancements.triggers.Criterion; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Range; + +import java.util.Map; + +public class PreparedAdvancementWrapper_v26_2_R1 extends PreparedAdvancementWrapper { + + private final MinecraftKeyWrapper key; + private final AdvancementDisplayWrapper display; + private final Map> advCriteria; + private final AdvancementRequirements advRequirements; + + public PreparedAdvancementWrapper_v26_2_R1(@NotNull MinecraftKeyWrapper key, @NotNull AdvancementDisplayWrapper display, @Range(from = 1, to = Integer.MAX_VALUE) int maxProgression) { + this.key = key; + this.display = display; + this.advCriteria = Util.getAdvancementCriteria(maxProgression); + this.advRequirements = Util.getAdvancementRequirements(advCriteria); + } + + @NotNull + public MinecraftKeyWrapper getKey() { + return key; + } + + @NotNull + public AdvancementDisplayWrapper getDisplay() { + return display; + } + + @Override + @Range(from = 1, to = Integer.MAX_VALUE) + public int getMaxProgression() { + return advRequirements.size(); + } + + @Override + @NotNull + public AdvancementWrapper toRootAdvancementWrapper() { + return new AdvancementWrapper_v26_2_R1(key, display, advCriteria, advRequirements); + } + + @Override + @NotNull + public AdvancementWrapper toBaseAdvancementWrapper(@NotNull AdvancementWrapper parent) { + return new AdvancementWrapper_v26_2_R1(key, parent, display, advCriteria, advRequirements); + } +} diff --git a/NMS/26_2_R1/src/main/java/com/fren_gor/ultimateAdvancementAPI/nms/v26_2_R1/packets/PacketPlayOutAdvancementsWrapper_v26_2_R1.java b/NMS/26_2_R1/src/main/java/com/fren_gor/ultimateAdvancementAPI/nms/v26_2_R1/packets/PacketPlayOutAdvancementsWrapper_v26_2_R1.java new file mode 100644 index 00000000..0e47371d --- /dev/null +++ b/NMS/26_2_R1/src/main/java/com/fren_gor/ultimateAdvancementAPI/nms/v26_2_R1/packets/PacketPlayOutAdvancementsWrapper_v26_2_R1.java @@ -0,0 +1,49 @@ +package com.fren_gor.ultimateAdvancementAPI.nms.v26_2_R1.packets; + +import com.fren_gor.ultimateAdvancementAPI.nms.util.ListSet; +import com.fren_gor.ultimateAdvancementAPI.nms.v26_2_R1.Util; +import com.fren_gor.ultimateAdvancementAPI.nms.wrappers.MinecraftKeyWrapper; +import com.fren_gor.ultimateAdvancementAPI.nms.wrappers.advancement.AdvancementWrapper; +import com.fren_gor.ultimateAdvancementAPI.nms.wrappers.packets.PacketPlayOutAdvancementsWrapper; +import com.google.common.collect.Maps; +import net.minecraft.advancements.AdvancementHolder; +import net.minecraft.advancements.AdvancementProgress; +import net.minecraft.network.protocol.game.ClientboundUpdateAdvancementsPacket; +import net.minecraft.resources.Identifier; +import org.bukkit.entity.Player; +import org.jetbrains.annotations.NotNull; + +import java.util.Collection; +import java.util.Collections; +import java.util.Map; +import java.util.Map.Entry; +import java.util.Set; + +public class PacketPlayOutAdvancementsWrapper_v26_2_R1 extends PacketPlayOutAdvancementsWrapper { + + private final ClientboundUpdateAdvancementsPacket packet; + + public PacketPlayOutAdvancementsWrapper_v26_2_R1() { + this.packet = new ClientboundUpdateAdvancementsPacket(true, Collections.emptyList(), Collections.emptySet(), Collections.emptyMap(), true); + } + + @SuppressWarnings("unchecked") + public PacketPlayOutAdvancementsWrapper_v26_2_R1(@NotNull Map toSend) { + Map map = Maps.newHashMapWithExpectedSize(toSend.size()); + for (Entry e : toSend.entrySet()) { + AdvancementWrapper adv = e.getKey(); + map.put((Identifier) adv.getKey().toNMS(), Util.getAdvancementProgress((AdvancementHolder) adv.toNMS(), e.getValue())); + } + this.packet = new ClientboundUpdateAdvancementsPacket(false, (Collection) ListSet.fromWrapperSet(toSend.keySet()), Collections.emptySet(), map, true); + } + + @SuppressWarnings("unchecked") + public PacketPlayOutAdvancementsWrapper_v26_2_R1(@NotNull Set toRemove) { + this.packet = new ClientboundUpdateAdvancementsPacket(false, Collections.emptyList(), (Set) ListSet.fromWrapperSet(toRemove), Collections.emptyMap(), true); + } + + @Override + public void sendTo(@NotNull Player player) { + Util.sendTo(player, packet); + } +} diff --git a/NMS/26_2_R1/src/main/java/com/fren_gor/ultimateAdvancementAPI/nms/v26_2_R1/packets/PacketPlayOutSelectAdvancementTabWrapper_v26_2_R1.java b/NMS/26_2_R1/src/main/java/com/fren_gor/ultimateAdvancementAPI/nms/v26_2_R1/packets/PacketPlayOutSelectAdvancementTabWrapper_v26_2_R1.java new file mode 100644 index 00000000..596903c2 --- /dev/null +++ b/NMS/26_2_R1/src/main/java/com/fren_gor/ultimateAdvancementAPI/nms/v26_2_R1/packets/PacketPlayOutSelectAdvancementTabWrapper_v26_2_R1.java @@ -0,0 +1,27 @@ +package com.fren_gor.ultimateAdvancementAPI.nms.v26_2_R1.packets; + +import com.fren_gor.ultimateAdvancementAPI.nms.v26_2_R1.Util; +import com.fren_gor.ultimateAdvancementAPI.nms.wrappers.MinecraftKeyWrapper; +import com.fren_gor.ultimateAdvancementAPI.nms.wrappers.packets.PacketPlayOutSelectAdvancementTabWrapper; +import net.minecraft.network.protocol.game.ClientboundSelectAdvancementsTabPacket; +import net.minecraft.resources.Identifier; +import org.bukkit.entity.Player; +import org.jetbrains.annotations.NotNull; + +public class PacketPlayOutSelectAdvancementTabWrapper_v26_2_R1 extends PacketPlayOutSelectAdvancementTabWrapper { + + private final ClientboundSelectAdvancementsTabPacket packet; + + public PacketPlayOutSelectAdvancementTabWrapper_v26_2_R1() { + packet = new ClientboundSelectAdvancementsTabPacket((Identifier) null); + } + + public PacketPlayOutSelectAdvancementTabWrapper_v26_2_R1(@NotNull MinecraftKeyWrapper key) { + packet = new ClientboundSelectAdvancementsTabPacket((Identifier) key.toNMS()); + } + + @Override + public void sendTo(@NotNull Player player) { + Util.sendTo(player, packet); + } +} diff --git a/NMS/Common/pom.xml b/NMS/Common/pom.xml index 2c813184..ff4a6205 100644 --- a/NMS/Common/pom.xml +++ b/NMS/Common/pom.xml @@ -7,7 +7,7 @@ com.frengor ultimateadvancementapi-nms-parent - 2.8.0 + 2.8.1 ultimateadvancementapi-nms-common diff --git a/NMS/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/util/Versions.java b/NMS/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/util/Versions.java index 80f2cd17..be229bbd 100644 --- a/NMS/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/util/Versions.java +++ b/NMS/Common/src/main/java/com/fren_gor/ultimateAdvancementAPI/util/Versions.java @@ -16,86 +16,89 @@ */ public class Versions { - private static final String API_VERSION = "2.8.0"; + private static final String API_VERSION = "2.8.1"; private static final List SUPPORTED_NMS_VERSIONS = List.of( - "v1_15_R1", - "v1_16_R1", - "v1_16_R2", - "v1_16_R3", - "v1_17_R1", - "v1_18_R1", - "v1_18_R2", - "v1_19_R1", - "v1_19_R2", - "v1_19_R3", - "v1_20_R1", - "v1_20_R2", - "v1_20_R3", - "v1_20_R4", - "v1_21_R1", - "v1_21_R2", - "v1_21_R3", - "v1_21_R4", - "v1_21_R5", - "v1_21_R6", - "v1_21_R7", - "v26_1_R2" + "v1_15_R1", + "v1_16_R1", + "v1_16_R2", + "v1_16_R3", + "v1_17_R1", + "v1_18_R1", + "v1_18_R2", + "v1_19_R1", + "v1_19_R2", + "v1_19_R3", + "v1_20_R1", + "v1_20_R2", + "v1_20_R3", + "v1_20_R4", + "v1_21_R1", + "v1_21_R2", + "v1_21_R3", + "v1_21_R4", + "v1_21_R5", + "v1_21_R6", + "v1_21_R7", + "v26_1_R2", + "v26_2_R1" ); private static final Map> NMS_TO_VERSIONS = Map.ofEntries( - Map.entry("v1_15_R1", List.of("1.15", "1.15.1", "1.15.2")), - Map.entry("v1_16_R1", List.of("1.16", "1.16.1", "1.16.2")), - Map.entry("v1_16_R2", List.of("1.16.3", "1.16.4")), - Map.entry("v1_16_R3", List.of("1.16.5")), - Map.entry("v1_17_R1", List.of("1.17", "1.17.1")), - Map.entry("v1_18_R1", List.of("1.18", "1.18.1")), - Map.entry("v1_18_R2", List.of("1.18.2")), - Map.entry("v1_19_R1", List.of("1.19", "1.19.2")), - Map.entry("v1_19_R2", List.of("1.19.3")), - Map.entry("v1_19_R3", List.of("1.19.4")), - Map.entry("v1_20_R1", List.of("1.20", "1.20.1")), - Map.entry("v1_20_R2", List.of("1.20.2")), - Map.entry("v1_20_R3", List.of("1.20.3", "1.20.4")), - Map.entry("v1_20_R4", List.of("1.20.5", "1.20.6")), - Map.entry("v1_21_R1", List.of("1.21", "1.21.1")), - Map.entry("v1_21_R2", List.of("1.21.2", "1.21.3")), - Map.entry("v1_21_R3", List.of("1.21.4")), - Map.entry("v1_21_R4", List.of("1.21.5")), - Map.entry("v1_21_R5", List.of("1.21.6", "1.21.7", "1.21.8")), - Map.entry("v1_21_R6", List.of("1.21.9", "1.21.10")), - Map.entry("v1_21_R7", List.of("1.21.11")), - Map.entry("v26_1_R2", List.of("26.1", "26.1.1", "26.1.2")) + Map.entry("v1_15_R1", List.of("1.15", "1.15.1", "1.15.2")), + Map.entry("v1_16_R1", List.of("1.16", "1.16.1", "1.16.2")), + Map.entry("v1_16_R2", List.of("1.16.3", "1.16.4")), + Map.entry("v1_16_R3", List.of("1.16.5")), + Map.entry("v1_17_R1", List.of("1.17", "1.17.1")), + Map.entry("v1_18_R1", List.of("1.18", "1.18.1")), + Map.entry("v1_18_R2", List.of("1.18.2")), + Map.entry("v1_19_R1", List.of("1.19", "1.19.2")), + Map.entry("v1_19_R2", List.of("1.19.3")), + Map.entry("v1_19_R3", List.of("1.19.4")), + Map.entry("v1_20_R1", List.of("1.20", "1.20.1")), + Map.entry("v1_20_R2", List.of("1.20.2")), + Map.entry("v1_20_R3", List.of("1.20.3", "1.20.4")), + Map.entry("v1_20_R4", List.of("1.20.5", "1.20.6")), + Map.entry("v1_21_R1", List.of("1.21", "1.21.1")), + Map.entry("v1_21_R2", List.of("1.21.2", "1.21.3")), + Map.entry("v1_21_R3", List.of("1.21.4")), + Map.entry("v1_21_R4", List.of("1.21.5")), + Map.entry("v1_21_R5", List.of("1.21.6", "1.21.7", "1.21.8")), + Map.entry("v1_21_R6", List.of("1.21.9", "1.21.10")), + Map.entry("v1_21_R7", List.of("1.21.11")), + Map.entry("v26_1_R2", List.of("26.1", "26.1.1", "26.1.2")), + Map.entry("v26_2_R1", List.of("26.2")) ); private static final Map NMS_TO_FANCY = Map.ofEntries( - Map.entry("v1_15_R1", "1.15-1.15.2"), - Map.entry("v1_16_R1", "1.16-1.16.2"), - Map.entry("v1_16_R2", "1.16.3-1.16.4"), - Map.entry("v1_16_R3", "1.16.5"), - Map.entry("v1_17_R1", "1.17-1.17.1"), - Map.entry("v1_18_R1", "1.18-1.18.1"), - Map.entry("v1_18_R2", "1.18.2"), - Map.entry("v1_19_R1", "1.19-1.19.2"), - Map.entry("v1_19_R2", "1.19.3"), - Map.entry("v1_19_R3", "1.19.4"), - Map.entry("v1_20_R1", "1.20-1.20.1"), - Map.entry("v1_20_R2", "1.20.2"), - Map.entry("v1_20_R3", "1.20.3-1.20.4"), - Map.entry("v1_20_R4", "1.20.5-1.20.6"), - Map.entry("v1_21_R1", "1.21-1.21.1"), - Map.entry("v1_21_R2", "1.21.2-1.21.3"), - Map.entry("v1_21_R3", "1.21.4"), - Map.entry("v1_21_R4", "1.21.5"), - Map.entry("v1_21_R5", "1.21.6-1.21.8"), - Map.entry("v1_21_R6", "1.21.9-1.21.10"), - Map.entry("v1_21_R7", "1.21.11"), - Map.entry("v26_1_R2", "26.1-26.1.2") + Map.entry("v1_15_R1", "1.15-1.15.2"), + Map.entry("v1_16_R1", "1.16-1.16.2"), + Map.entry("v1_16_R2", "1.16.3-1.16.4"), + Map.entry("v1_16_R3", "1.16.5"), + Map.entry("v1_17_R1", "1.17-1.17.1"), + Map.entry("v1_18_R1", "1.18-1.18.1"), + Map.entry("v1_18_R2", "1.18.2"), + Map.entry("v1_19_R1", "1.19-1.19.2"), + Map.entry("v1_19_R2", "1.19.3"), + Map.entry("v1_19_R3", "1.19.4"), + Map.entry("v1_20_R1", "1.20-1.20.1"), + Map.entry("v1_20_R2", "1.20.2"), + Map.entry("v1_20_R3", "1.20.3-1.20.4"), + Map.entry("v1_20_R4", "1.20.5-1.20.6"), + Map.entry("v1_21_R1", "1.21-1.21.1"), + Map.entry("v1_21_R2", "1.21.2-1.21.3"), + Map.entry("v1_21_R3", "1.21.4"), + Map.entry("v1_21_R4", "1.21.5"), + Map.entry("v1_21_R5", "1.21.6-1.21.8"), + Map.entry("v1_21_R6", "1.21.9-1.21.10"), + Map.entry("v1_21_R7", "1.21.11"), + Map.entry("v26_1_R2", "26.1-26.1.2"), + Map.entry("v26_2_R1", "26.2") ); private static final List SUPPORTED_VERSIONS = SUPPORTED_NMS_VERSIONS.stream() - .flatMap(s -> NMS_TO_VERSIONS.get(s).stream()) - .toList(); + .flatMap(s -> NMS_TO_VERSIONS.get(s).stream()) + .toList(); @Nullable private static Optional COMPLETE_VERSION; @@ -114,10 +117,10 @@ public static Optional getNMSVersion() { } String version = NMS_TO_VERSIONS.entrySet().stream() - .filter(e -> e.getValue().contains(ReflectionUtil.MINECRAFT_VERSION)) - .map(Entry::getKey) - .findFirst() - .orElse(null); + .filter(e -> e.getValue().contains(ReflectionUtil.MINECRAFT_VERSION)) + .map(Entry::getKey) + .findFirst() + .orElse(null); return COMPLETE_VERSION = (version != null ? Optional.of(version) : Optional.empty()); } @@ -160,7 +163,7 @@ public static String getApiVersion() { *

For example, for {@code "v1_15_R1"} this method returns {@code "1.15-1.15.2"}. * * @return The minecraft versions supported by this server NMS version, - * or {@code null} if the server version is not supported (see {@link #getSupportedNMSVersions()}). + * or {@code null} if the server version is not supported (see {@link #getSupportedNMSVersions()}). */ @Nullable public static String getNMSVersionsRange() { @@ -173,7 +176,7 @@ public static String getNMSVersionsRange() { * * @param version The NMS version. * @return The minecraft versions supported by the provided NMS version, - * or {@code null} if the provided version is not supported (see {@link #getSupportedNMSVersions()}). + * or {@code null} if the provided version is not supported (see {@link #getSupportedNMSVersions()}). */ @Nullable @Contract("null -> null") @@ -187,7 +190,7 @@ public static String getNMSVersionsRange(String version) { * {@code "1.15"}, {@code "1.15.1"}, and {@code "1.15.2"}. * * @return An unmodifiable list of the minecraft versions supported by this server NMS version, - * or {@code null} if the server version is not supported (see {@link #getSupportedNMSVersions()}). + * or {@code null} if the server version is not supported (see {@link #getSupportedNMSVersions()}). */ @UnmodifiableView @Nullable @@ -202,7 +205,7 @@ public static String getNMSVersionsRange(String version) { * * @param version The NMS version. * @return An unmodifiable list of the minecraft versions supported by the provided NMS version, - * or {@code null} if the provided version is not supported (see {@link #getSupportedNMSVersions()}). + * or {@code null} if the provided version is not supported (see {@link #getSupportedNMSVersions()}). */ @UnmodifiableView @Nullable @@ -225,7 +228,7 @@ public static String getNMSVersionsRange(String version) { * * @param string The input string * @return {@code null} if the string is {@code null}, the string itself if the first character isn't {@code 'v'}, - * otherwise the string without the first character. + * otherwise the string without the first character. */ @Contract("null -> null; !null -> !null") public static String removeInitialV(String string) { diff --git a/NMS/Distribution/pom.xml b/NMS/Distribution/pom.xml index 5bbdcd8f..bc334969 100644 --- a/NMS/Distribution/pom.xml +++ b/NMS/Distribution/pom.xml @@ -7,7 +7,7 @@ com.frengor ultimateadvancementapi-nms-parent - 2.8.0 + 2.8.1 ultimateadvancementapi-nms-distribution @@ -148,6 +148,12 @@ ultimateadvancementapi-nms-26_1_R2 ${project.version} + + + com.frengor + ultimateadvancementapi-nms-26_2_R1 + ${project.version} + diff --git a/NMS/DistributionMojangMapped/pom.xml b/NMS/DistributionMojangMapped/pom.xml index ad3d244c..b9de5dcb 100644 --- a/NMS/DistributionMojangMapped/pom.xml +++ b/NMS/DistributionMojangMapped/pom.xml @@ -7,7 +7,7 @@ com.frengor ultimateadvancementapi-nms-parent - 2.8.0 + 2.8.1 ultimateadvancementapi-nms-distribution-mojang-mapped @@ -164,6 +164,12 @@ ultimateadvancementapi-nms-26_1_R2 ${project.version} + + + com.frengor + ultimateadvancementapi-nms-26_2_R1 + ${project.version} + diff --git a/NMS/pom.xml b/NMS/pom.xml index 44a00c34..aac35c94 100644 --- a/NMS/pom.xml +++ b/NMS/pom.xml @@ -7,7 +7,7 @@ com.frengor ultimateadvancementapi-parent - 2.8.0 + 2.8.1 ultimateadvancementapi-nms-parent @@ -46,6 +46,7 @@ 1_21_R6 1_21_R7 26_1_R2 + 26_2_R1 Distribution DistributionMojangMapped diff --git a/Plugin/pom.xml b/Plugin/pom.xml index 30a96d2a..cdfb195f 100644 --- a/Plugin/pom.xml +++ b/Plugin/pom.xml @@ -7,7 +7,7 @@ com.frengor ultimateadvancementapi-parent - 2.8.0 + 2.8.1 ultimateadvancementapi-plugin diff --git a/Plugin/src/main/java/com/fren_gor/ultimateAdvancementAPI/ConfigManager.java b/Plugin/src/main/java/com/fren_gor/ultimateAdvancementAPI/ConfigManager.java index 8ab81c91..faafc585 100644 --- a/Plugin/src/main/java/com/fren_gor/ultimateAdvancementAPI/ConfigManager.java +++ b/Plugin/src/main/java/com/fren_gor/ultimateAdvancementAPI/ConfigManager.java @@ -5,7 +5,6 @@ import com.fren_gor.ultimateAdvancementAPI.database.impl.SQLite; import com.google.common.base.Preconditions; import net.byteflux.libby.Library; -import net.byteflux.libby.Repositories; import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.plugin.Plugin; import org.jetbrains.annotations.NotNull; @@ -23,11 +22,11 @@ public class ConfigManager { public static final int CONFIG_VERSION = 2; public static final Library CONFIG_UPDATER = Library.builder() - .groupId("com.tchristofferson") - .artifactId("ConfigUpdater") - .version("2.2") - .checksum("3LHINAggl0kkNC3nROgEWBXVu0aiFlofmFjq5aNAi3A=") - .build(); + .groupId("com.tchristofferson") + .artifactId("ConfigUpdater") + .version("2.2") + .checksum("3LHINAggl0kkNC3nROgEWBXVu0aiFlofmFjq5aNAi3A=") + .build(); private final File configFile; private final AdvancementPlugin plugin; @@ -204,4 +203,4 @@ private void updateConfig() throws Exception { updateMethod.invoke(null, plugin, "config.yml", configFile, List.of()); } } -} \ No newline at end of file +} diff --git a/Plugin/src/main/resources/config.yml b/Plugin/src/main/resources/config.yml index 0d06d1c9..ece52166 100644 --- a/Plugin/src/main/resources/config.yml +++ b/Plugin/src/main/resources/config.yml @@ -20,7 +20,7 @@ storage-type: SQLite # SQLite database file # Used when storage-type is "SQLite" sqlite: - file: "database.db" + file: "database.db" # MySQL settings # Used when storage-type is "MySQL" @@ -36,4 +36,4 @@ mysql: connectionTimeout: 6000 # Do not touch!!! -config-version: 2 \ No newline at end of file +config-version: 2 diff --git a/Plugin/src/main/resources/plugin.yml b/Plugin/src/main/resources/plugin.yml index e24cb699..5584bc6d 100644 --- a/Plugin/src/main/resources/plugin.yml +++ b/Plugin/src/main/resources/plugin.yml @@ -2,7 +2,7 @@ main: com.fren_gor.ultimateAdvancementAPI.AdvancementPlugin name: UltimateAdvancementAPI version: ${project.version} description: ${project.description} -authors: [fren_gor, EscanorTargaryen] +authors: [ fren_gor, EscanorTargaryen ] website: ${project.url} load: STARTUP -api-version: 1.15 \ No newline at end of file +api-version: 1.15 diff --git a/README.md b/README.md index 728f3f71..aee14cdf 100644 --- a/README.md +++ b/README.md @@ -1,31 +1,34 @@ # UltimateAdvancementAPI + [![Build Status main Branch](https://jenkins.frengor.com/job/UltimateAdvancementAPI/job/main/badge/icon?subject=main&style=flat)](https://jenkins.frengor.com/job/UltimateAdvancementAPI/job/main/) [![Build Status dev Branch](https://jenkins.frengor.com/job/UltimateAdvancementAPI/job/dev/badge/icon?subject=dev&style=flat)](https://jenkins.frengor.com/job/UltimateAdvancementAPI/job/dev/) [![License](https://img.shields.io/badge/license-LGPL--3.0-orange?style=flat)](https://github.com/frengor/UltimateAdvancementAPI/blob/main/LGPL) -[![Version](https://img.shields.io/badge/version-2.8.0-blue?style=flat&color=007ec6)](https://jenkins.frengor.com/job/UltimateAdvancementAPI/) +[![Version](https://img.shields.io/github/v/tag/frengor/UltimateAdvancementAPI?sort=date&filter=!*beta*&style=flat&label=version&color=blue)](https://github.com/frengor/UltimateAdvancementAPI/tags) [![Issues](https://img.shields.io/github/issues/frengor/UltimateAdvancementAPI?style=flat)](https://github.com/frengor/UltimateAdvancementAPI/issues) [![Stars](https://img.shields.io/github/stars/frengor/UltimateAdvancementAPI?style=flat)](https://github.com/frengor/UltimateAdvancementAPI/stargazers) [![Forks](https://img.shields.io/github/forks/frengor/UltimateAdvancementAPI?style=flat)](https://github.com/frengor/UltimateAdvancementAPI/network) [![Contributors](https://img.shields.io/github/contributors/frengor/UltimateAdvancementAPI?style=flat)](https://github.com/frengor/UltimateAdvancementAPI/graphs/contributors) -A powerful API to create custom advancements for your minecraft server. +A powerful API to create custom advancements for your Minecraft server. ![Advancement Tab Image](https://github.com/frengor/UltimateAdvancementAPI/wiki/images/spigot-photo.png) > [!IMPORTANT] -> **3.0.0 Beta** is available on the [`main-3.0.0` branch](https://github.com/frengor/UltimateAdvancementAPI/tree/main-3.0.0). Download the beta from Modrinth on Hangar (links below). -> The Javadoc for the beta is published [here](https://frengor.com/javadocs/UltimateAdvancementAPI/3.0.0-beta-1/). +> **3.0.0 Beta** is available on the [`main-3.0.0` branch](https://github.com/frengor/UltimateAdvancementAPI/tree/main-3.0.0). Download the beta from +> Modrinth on Hangar (links below). +> The Javadoc for the beta is published [here](https://frengor.com/javadocs/UltimateAdvancementAPI/3.0.0-beta-3/). **Modrinth Page:** **Spigot Page:** **Hangar Page:** -**UltimateAdvancementGenerator:** +**UltimateAdvancementGenerator:** **Discord:** **Official Wiki:** **Javadoc:** **Jenkins:** **Get it with maven:** + ```xml @@ -34,11 +37,12 @@ A powerful API to create custom advancements for your minecraft server. ``` + ```xml com.frengor ultimateadvancementapi - 2.8.0 + 2.8.1 provided ``` @@ -58,7 +62,9 @@ The plugin used for tests can be found [here](https://github.com/frengor/Ultimat Feel free to open issues or pull requests. Feature requests can be done opening an issue, the `enhancement` tag will be applied by maintainers. For pull requests, open them towards the `dev` branch, as the `main` branch is only for releases. Make sure to allow edits by maintainers. -Also, please use the formatting style settings present under `.idea/codeStyles` folder. +Also, if possible please use the formatting style settings present in the `.editorconfig` file. If you are using an IDE like IntelliJ, they should be +picked up automatically. +Otherwise, try to manually keep the style as consistent as possible in regard to the surrounding code. ## Required Java version @@ -76,9 +82,12 @@ This project is licensed under the [GNU Lesser General Public License v3.0 or la UltimateAdvancementAPI has been made by [fren_gor](https://github.com/frengor) and [EscanorTargaryen](https://github.com/EscanorTargaryen). The API uses the following libraries: - * [EventManagerAPI](https://github.com/frengor/EventManagerAPI) (released under Apache-2.0 license) to handle events - * [Libby](https://github.com/AlessioDP/libby) (released under MIT license) to handle dependencies at runtime - * [CommandAPI](https://github.com/CommandAPI/CommandAPI) (released under MIT license) to add commands to the plugin version of the API - * [HikariCP](https://github.com/brettwooldridge/HikariCP) (released under Apache-2.0 license) to connect to MySQL databases - * [Config-Updater](https://github.com/tchristofferson/Config-Updater) (released under MIT license) to update the configuration in the plugin version of the API - * [bStats](https://bstats.org/) (the Java library is released under MIT license) to collect usage data (which can be found [here](https://bstats.org/plugin/bukkit/UltimateAdvancementAPI/12593)) about the plugin version of the API + +* [EventManagerAPI](https://github.com/frengor/EventManagerAPI) (released under Apache-2.0 license) to handle events +* [Libby](https://github.com/AlessioDP/libby) (released under MIT license) to handle dependencies at runtime +* [CommandAPI](https://github.com/CommandAPI/CommandAPI) (released under MIT license) to add commands to the plugin version of the API +* [HikariCP](https://github.com/brettwooldridge/HikariCP) (released under Apache-2.0 license) to connect to MySQL databases +* [Config-Updater](https://github.com/tchristofferson/Config-Updater) (released under MIT license) to update the configuration in the plugin version + of the API +* [bStats](https://bstats.org/) (the Java library is released under MIT license) to collect usage data (which can be + found [here](https://bstats.org/plugin/bukkit/UltimateAdvancementAPI/12593)) about the plugin version of the API diff --git a/pom.xml b/pom.xml index dd0f4dfc..4acef930 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ com.frengor ultimateadvancementapi-parent - 2.8.0 + 2.8.1 pom UltimateAdvancementAPI-Parent @@ -43,7 +43,7 @@ - 1.3.0 + 1.3.2 false UTF-8 UTF-8 @@ -293,6 +293,39 @@ + + org.apache.maven.plugins + maven-checkstyle-plugin + 3.3.1 + + + unused-imports-check + validate + + check + + + + + + + + + + + + false + false + + + + + true + true + true + false + +