diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..c49cdb2 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,281 @@ +root = true + +[*] +ij_continuation_indent_size = 8 +ij_formatter_off_tag = @formatter:off +ij_formatter_on_tag = @formatter:on +ij_formatter_tags_enabled = true +ij_smart_tabs = false +ij_visual_guides = +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 = true +ij_java_align_multiline_resources = true +ij_java_align_multiline_ternary_operation = false +ij_java_align_multiline_text_blocks = false +ij_java_align_multiline_throws_list = false +ij_java_align_subsequent_simple_methods = false +ij_java_align_throws_keyword = false +ij_java_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 = 999999999 +ij_java_class_names_in_javadoc = 1 +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 = true +ij_java_doc_align_param_comments = true +ij_java_doc_do_not_wrap_if_one_line = false +ij_java_doc_enable_formatting = true +ij_java_doc_enable_leading_asterisks = true +ij_java_doc_indent_on_continuation = false +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 = *, |, net.**, |, org.**, |, javax.**, java.**, |, $* +ij_java_indent_case_from_switch = true +ij_java_insert_inner_class_imports = false +ij_java_insert_override_annotation = true +ij_java_keep_blank_lines_before_right_brace = 2 +ij_java_keep_blank_lines_between_package_declaration_and_header = 2 +ij_java_keep_blank_lines_in_code = 2 +ij_java_keep_blank_lines_in_declarations = 2 +ij_java_keep_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 = 999999999 +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 = java.awt.*, javax.swing.* +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 = normal +ij_java_repeat_annotations = +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 diff --git a/pom.xml b/pom.xml index 7e9e652..3a8b685 100644 --- a/pom.xml +++ b/pom.xml @@ -1,6 +1,6 @@ - 4.0.0 diff --git a/src/main/java/net/hypixel/data/rank/MonthlyPackageRank.java b/src/main/java/net/hypixel/data/rank/MonthlyPackageRank.java index d63cda9..6132f99 100644 --- a/src/main/java/net/hypixel/data/rank/MonthlyPackageRank.java +++ b/src/main/java/net/hypixel/data/rank/MonthlyPackageRank.java @@ -1,32 +1,29 @@ package net.hypixel.data.rank; -import java.util.Arrays; import java.util.Collection; -import java.util.Map; +import java.util.EnumSet; import java.util.Optional; -import java.util.function.Function; -import java.util.stream.Collectors; public enum MonthlyPackageRank { NONE(1), SUPERSTAR(2), ; - private static final Collection VALUES = Arrays.asList(values()); - private static final Map BY_ID = VALUES.stream().collect(Collectors.toMap(MonthlyPackageRank::getId, Function.identity())); + private static final EnumSet VALUES = EnumSet.allOf(MonthlyPackageRank.class); + private final int id; + + MonthlyPackageRank(int id) { + this.id = id; + } public static Collection getValues() { return VALUES; } public static Optional getById(int id) { - return Optional.ofNullable(BY_ID.get(id)); - } - - private final int id; - - MonthlyPackageRank(int id) { - this.id = id; + return getValues().stream() + .filter((mpr) -> mpr.getId() == id) + .findFirst(); } public int getId() { diff --git a/src/main/java/net/hypixel/data/rank/PackageRank.java b/src/main/java/net/hypixel/data/rank/PackageRank.java index d6d9438..90de577 100644 --- a/src/main/java/net/hypixel/data/rank/PackageRank.java +++ b/src/main/java/net/hypixel/data/rank/PackageRank.java @@ -1,11 +1,8 @@ package net.hypixel.data.rank; -import java.util.Arrays; import java.util.Collection; -import java.util.Map; +import java.util.EnumSet; import java.util.Optional; -import java.util.function.Function; -import java.util.stream.Collectors; public enum PackageRank { NONE(1), @@ -15,21 +12,21 @@ public enum PackageRank { MVP_PLUS(5), ; - private static final Collection VALUES = Arrays.asList(values()); - private static final Map BY_ID = VALUES.stream().collect(Collectors.toMap(PackageRank::getId, Function.identity())); + private static final EnumSet VALUES = EnumSet.allOf(PackageRank.class); + private final int id; + + PackageRank(int id) { + this.id = id; + } public static Collection getValues() { return VALUES; } public static Optional getById(int id) { - return Optional.ofNullable(BY_ID.get(id)); - } - - private final int id; - - PackageRank(int id) { - this.id = id; + return getValues().stream() + .filter((pr) -> pr.getId() == id) + .findFirst(); } public int getId() { diff --git a/src/main/java/net/hypixel/data/rank/PlayerRank.java b/src/main/java/net/hypixel/data/rank/PlayerRank.java index 7deb46c..bd04581 100644 --- a/src/main/java/net/hypixel/data/rank/PlayerRank.java +++ b/src/main/java/net/hypixel/data/rank/PlayerRank.java @@ -1,11 +1,8 @@ package net.hypixel.data.rank; -import java.util.Arrays; import java.util.Collection; -import java.util.Map; +import java.util.EnumSet; import java.util.Optional; -import java.util.function.Function; -import java.util.stream.Collectors; public enum PlayerRank { NORMAL(1), @@ -18,21 +15,21 @@ public enum PlayerRank { ADMIN(4), ; - private static final Collection VALUES = Arrays.asList(values()); - private static final Map BY_ID = VALUES.stream().collect(Collectors.toMap(PlayerRank::getId, Function.identity())); + private static final EnumSet VALUES = EnumSet.allOf(PlayerRank.class); + private final int id; + + PlayerRank(int id) { + this.id = id; + } public static Collection getValues() { return VALUES; } public static Optional getById(int id) { - return Optional.ofNullable(BY_ID.get(id)); - } - - private final int id; - - PlayerRank(int id) { - this.id = id; + return getValues().stream() + .filter((pr) -> pr.getId() == id) + .findFirst(); } public int getId() { diff --git a/src/main/java/net/hypixel/data/region/Environment.java b/src/main/java/net/hypixel/data/region/Environment.java index 36a3d5a..3371e3b 100644 --- a/src/main/java/net/hypixel/data/region/Environment.java +++ b/src/main/java/net/hypixel/data/region/Environment.java @@ -1,11 +1,8 @@ package net.hypixel.data.region; -import java.util.Arrays; import java.util.Collection; -import java.util.Map; +import java.util.EnumSet; import java.util.Optional; -import java.util.function.Function; -import java.util.stream.Collectors; public enum Environment { PRODUCTION(0), // The Production Hypixel Network - "mc.hypixel.net" @@ -13,21 +10,21 @@ public enum Environment { TEST(2), // The Test Hypixel Network - For Hypixel Developers ; - private static final Collection VALUES = Arrays.asList(values()); - private static final Map BY_ID = VALUES.stream().collect(Collectors.toMap(Environment::getId, Function.identity())); + private static final EnumSet VALUES = EnumSet.allOf(Environment.class); + private final int id; + + Environment(int id) { + this.id = id; + } public static Collection getValues() { return VALUES; } public static Optional getById(int id) { - return Optional.ofNullable(BY_ID.get(id)); - } - - private final int id; - - Environment(int id) { - this.id = id; + return getValues().stream() + .filter((env) -> env.getId() == id) + .findFirst(); } public int getId() { diff --git a/src/main/java/net/hypixel/data/type/GameType.java b/src/main/java/net/hypixel/data/type/GameType.java index e47d4f2..1f9a9ec 100644 --- a/src/main/java/net/hypixel/data/type/GameType.java +++ b/src/main/java/net/hypixel/data/type/GameType.java @@ -1,11 +1,8 @@ package net.hypixel.data.type; -import java.util.Arrays; import java.util.Collection; -import java.util.Map; +import java.util.EnumSet; import java.util.Optional; -import java.util.function.Function; -import java.util.stream.Collectors; public enum GameType implements ServerType { QUAKECRAFT("Quakecraft", "Quake", 2), @@ -40,9 +37,15 @@ public enum GameType implements ServerType { WOOL_GAMES("Wool Games", "WoolGames", 68), ; - private static final Collection VALUES = Arrays.asList(values()); - private static final Map BY_ID = VALUES.stream().collect(Collectors.toMap(GameType::getId, Function.identity())); - private static final Map BY_DATABASE_NAME = VALUES.stream().collect(Collectors.toMap(GameType::getDatabaseName, Function.identity())); + private static final EnumSet VALUES = EnumSet.allOf(GameType.class); + private final String name, databaseName; + private final int id; + + GameType(String name, String databaseName, int id) { + this.name = name; + this.databaseName = databaseName; + this.id = id; + } public static Collection getValues() { return VALUES; @@ -53,7 +56,9 @@ public static Collection getValues() { * @return An optional containing the GameType associated with that id, or empty if there isn't one. */ public static Optional getById(int id) { - return Optional.ofNullable(BY_ID.get(id)); + return getValues().stream() + .filter((gt) -> gt.getId() == id) + .findFirst(); } /** @@ -61,16 +66,9 @@ public static Optional getById(int id) { * @return An optional containing the GameType associated with that key, or empty if there isn't one. */ public static Optional getByDatabaseName(String databaseName) { - return Optional.ofNullable(BY_DATABASE_NAME.get(databaseName)); - } - - private final String name, databaseName; - private final int id; - - GameType(String name, String databaseName, int id) { - this.name = name; - this.databaseName = databaseName; - this.id = id; + return getValues().stream() + .filter((gt) -> gt.getDatabaseName().equals(databaseName)) + .findFirst(); } /** diff --git a/src/main/java/net/hypixel/data/type/LobbyType.java b/src/main/java/net/hypixel/data/type/LobbyType.java index cf80949..aefe2bd 100755 --- a/src/main/java/net/hypixel/data/type/LobbyType.java +++ b/src/main/java/net/hypixel/data/type/LobbyType.java @@ -1,7 +1,7 @@ package net.hypixel.data.type; -import java.util.Arrays; import java.util.Collection; +import java.util.EnumSet; /** * A LobbyType is used for lobbies which do not have a gametype linked. @@ -11,18 +11,17 @@ public enum LobbyType implements ServerType { TOURNAMENT("Tournament Hall"), ; - private static final Collection VALUES = Arrays.asList(values()); - - public static Collection getValues() { - return VALUES; - } - + private static final EnumSet VALUES = EnumSet.allOf(LobbyType.class); private final String name; LobbyType(String name) { this.name = name; } + public static Collection getValues() { + return VALUES; + } + @Override public String getName() { return name; diff --git a/src/main/java/net/hypixel/data/type/ServerType.java b/src/main/java/net/hypixel/data/type/ServerType.java index 3cbebbc..0d38186 100755 --- a/src/main/java/net/hypixel/data/type/ServerType.java +++ b/src/main/java/net/hypixel/data/type/ServerType.java @@ -4,10 +4,6 @@ public interface ServerType { - String name(); - - String getName(); - static Optional valueOf(String value) { try { return Optional.of(GameType.valueOf(value)); @@ -24,4 +20,8 @@ static Optional valueOf(String value) { return Optional.empty(); } + String name(); + + String getName(); + }