diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs
index 5abefeed63aa9112b6166c8893a4c5afc7bde12a..7befde4b80eb359dad24402bf5014b0197e8eec5 100644
--- a/.settings/org.eclipse.jdt.core.prefs
+++ b/.settings/org.eclipse.jdt.core.prefs
@@ -6,3 +6,379 @@ org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
 org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=ignore
 org.eclipse.jdt.core.compiler.release=disabled
 org.eclipse.jdt.core.compiler.source=11
+org.eclipse.jdt.core.formatter.align_assignment_statements_on_columns=false
+org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647
+org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
+org.eclipse.jdt.core.formatter.align_variable_declarations_on_columns=false
+org.eclipse.jdt.core.formatter.align_with_spaces=false
+org.eclipse.jdt.core.formatter.alignment_for_additive_operator=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=0
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=48
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=0
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=0
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=0
+org.eclipse.jdt.core.formatter.alignment_for_assignment=4
+org.eclipse.jdt.core.formatter.alignment_for_bitwise_operator=16
+org.eclipse.jdt.core.formatter.alignment_for_compact_if=0
+org.eclipse.jdt.core.formatter.alignment_for_compact_loops=16
+org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=0
+org.eclipse.jdt.core.formatter.alignment_for_conditional_expression_chain=0
+org.eclipse.jdt.core.formatter.alignment_for_enum_constants=49
+org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=49
+org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0
+org.eclipse.jdt.core.formatter.alignment_for_logical_operator=16
+org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
+org.eclipse.jdt.core.formatter.alignment_for_module_statements=16
+org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_multiplicative_operator=16
+org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=0
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=0
+org.eclipse.jdt.core.formatter.alignment_for_record_components=0
+org.eclipse.jdt.core.formatter.alignment_for_relational_operator=0
+org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=85
+org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=0
+org.eclipse.jdt.core.formatter.alignment_for_shift_operator=0
+org.eclipse.jdt.core.formatter.alignment_for_string_concatenation=16
+org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=0
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=48
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_record_declaration=0
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=0
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=0
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=0
+org.eclipse.jdt.core.formatter.alignment_for_type_arguments=0
+org.eclipse.jdt.core.formatter.alignment_for_type_parameters=0
+org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
+org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_after_last_class_body_declaration=0
+org.eclipse.jdt.core.formatter.blank_lines_after_package=1
+org.eclipse.jdt.core.formatter.blank_lines_before_abstract_method=1
+org.eclipse.jdt.core.formatter.blank_lines_before_field=0
+org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
+org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
+org.eclipse.jdt.core.formatter.blank_lines_before_method=1
+org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
+org.eclipse.jdt.core.formatter.blank_lines_before_package=0
+org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
+org.eclipse.jdt.core.formatter.blank_lines_between_statement_group_in_switch=0
+org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
+org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_record_constructor=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_record_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.comment.align_tags_descriptions_grouped=false
+org.eclipse.jdt.core.formatter.comment.align_tags_names_descriptions=false
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=true
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=true
+org.eclipse.jdt.core.formatter.comment.count_line_length_from_starting_position=false
+org.eclipse.jdt.core.formatter.comment.format_block_comments=true
+org.eclipse.jdt.core.formatter.comment.format_header=false
+org.eclipse.jdt.core.formatter.comment.format_html=true
+org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
+org.eclipse.jdt.core.formatter.comment.format_line_comments=true
+org.eclipse.jdt.core.formatter.comment.format_source_code=true
+org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
+org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
+org.eclipse.jdt.core.formatter.comment.indent_tag_description=false
+org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=do not insert
+org.eclipse.jdt.core.formatter.comment.insert_new_line_between_different_tags=do not insert
+org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
+org.eclipse.jdt.core.formatter.comment.line_length=300
+org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
+org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
+org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
+org.eclipse.jdt.core.formatter.compact_else_if=true
+org.eclipse.jdt.core.formatter.continuation_indentation=1
+org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=1
+org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
+org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
+org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
+org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_record_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
+org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_empty_lines=true
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
+org.eclipse.jdt.core.formatter.indentation.size=4
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_label=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=insert
+org.eclipse.jdt.core.formatter.insert_space_after_additive_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_after_arrow_in_switch_case=insert
+org.eclipse.jdt.core.formatter.insert_space_after_arrow_in_switch_default=insert
+org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_bitwise_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_record_components=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_switch_case_expressions=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
+org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_after_logical_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_multiplicative_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_not_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_record_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_relational_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
+org.eclipse.jdt.core.formatter.insert_space_after_shift_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_string_concatenation=insert
+org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_additive_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_before_arrow_in_switch_case=insert
+org.eclipse.jdt.core.formatter.insert_space_before_arrow_in_switch_default=insert
+org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_bitwise_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_record_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_record_components=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_switch_case_expressions=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_before_logical_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_multiplicative_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_record_constructor=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_record_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_record_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
+org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_relational_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_shift_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_string_concatenation=insert
+org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.join_lines_in_comments=true
+org.eclipse.jdt.core.formatter.join_wrapped_lines=true
+org.eclipse.jdt.core.formatter.keep_annotation_declaration_on_one_line=one_line_never
+org.eclipse.jdt.core.formatter.keep_anonymous_type_declaration_on_one_line=one_line_never
+org.eclipse.jdt.core.formatter.keep_code_block_on_one_line=one_line_never
+org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=true
+org.eclipse.jdt.core.formatter.keep_enum_constant_declaration_on_one_line=one_line_never
+org.eclipse.jdt.core.formatter.keep_enum_declaration_on_one_line=one_line_never
+org.eclipse.jdt.core.formatter.keep_if_then_body_block_on_one_line=one_line_never
+org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_lambda_body_block_on_one_line=one_line_never
+org.eclipse.jdt.core.formatter.keep_loop_body_block_on_one_line=one_line_never
+org.eclipse.jdt.core.formatter.keep_method_body_on_one_line=one_line_never
+org.eclipse.jdt.core.formatter.keep_record_constructor_on_one_line=one_line_never
+org.eclipse.jdt.core.formatter.keep_record_declaration_on_one_line=one_line_never
+org.eclipse.jdt.core.formatter.keep_simple_do_while_body_on_same_line=false
+org.eclipse.jdt.core.formatter.keep_simple_for_body_on_same_line=false
+org.eclipse.jdt.core.formatter.keep_simple_getter_setter_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_simple_while_body_on_same_line=false
+org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.keep_type_declaration_on_one_line=one_line_never
+org.eclipse.jdt.core.formatter.lineSplit=300
+org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.number_of_blank_lines_after_code_block=0
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_code_block=0
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_end_of_code_block=0
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_end_of_method_body=0
+org.eclipse.jdt.core.formatter.number_of_blank_lines_before_code_block=0
+org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
+org.eclipse.jdt.core.formatter.parentheses_positions_in_annotation=common_lines
+org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause=common_lines
+org.eclipse.jdt.core.formatter.parentheses_positions_in_enum_constant_declaration=common_lines
+org.eclipse.jdt.core.formatter.parentheses_positions_in_for_statment=common_lines
+org.eclipse.jdt.core.formatter.parentheses_positions_in_if_while_statement=common_lines
+org.eclipse.jdt.core.formatter.parentheses_positions_in_lambda_declaration=common_lines
+org.eclipse.jdt.core.formatter.parentheses_positions_in_method_delcaration=common_lines
+org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation=common_lines
+org.eclipse.jdt.core.formatter.parentheses_positions_in_record_declaration=common_lines
+org.eclipse.jdt.core.formatter.parentheses_positions_in_switch_statement=common_lines
+org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause=common_lines
+org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=false
+org.eclipse.jdt.core.formatter.tabulation.char=tab
+org.eclipse.jdt.core.formatter.tabulation.size=4
+org.eclipse.jdt.core.formatter.text_block_indentation=0
+org.eclipse.jdt.core.formatter.use_on_off_tags=true
+org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_additive_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false
+org.eclipse.jdt.core.formatter.wrap_before_bitwise_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_logical_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_multiplicative_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
+org.eclipse.jdt.core.formatter.wrap_before_relational_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_shift_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_string_concatenation=true
+org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
+org.eclipse.jdt.core.javaFormatter=org.eclipse.jdt.core.defaultJavaFormatter
diff --git a/.settings/org.eclipse.jdt.ui.prefs b/.settings/org.eclipse.jdt.ui.prefs
new file mode 100644
index 0000000000000000000000000000000000000000..8d1daf6da217e9316533ff22495bf7ec750dc492
--- /dev/null
+++ b/.settings/org.eclipse.jdt.ui.prefs
@@ -0,0 +1,70 @@
+cleanup.add_default_serial_version_id=false
+cleanup.add_generated_serial_version_id=true
+cleanup.add_missing_annotations=true
+cleanup.add_missing_deprecated_annotations=true
+cleanup.add_missing_methods=true
+cleanup.add_missing_nls_tags=false
+cleanup.add_missing_override_annotations=true
+cleanup.add_missing_override_annotations_interface_methods=true
+cleanup.add_serial_version_id=true
+cleanup.always_use_blocks=true
+cleanup.always_use_parentheses_in_expressions=true
+cleanup.always_use_this_for_non_static_field_access=false
+cleanup.always_use_this_for_non_static_method_access=false
+cleanup.convert_functional_interfaces=true
+cleanup.convert_to_enhanced_for_loop=true
+cleanup.correct_indentation=false
+cleanup.format_source_code=true
+cleanup.format_source_code_changes_only=false
+cleanup.insert_inferred_type_arguments=false
+cleanup.make_local_variable_final=false
+cleanup.make_parameters_final=false
+cleanup.make_private_fields_final=true
+cleanup.make_type_abstract_if_missing_method=false
+cleanup.make_variable_declarations_final=true
+cleanup.never_use_blocks=false
+cleanup.never_use_parentheses_in_expressions=false
+cleanup.number_suffix=false
+cleanup.organize_imports=true
+cleanup.push_down_negation=false
+cleanup.qualify_static_field_accesses_with_declaring_class=false
+cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
+cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
+cleanup.qualify_static_member_accesses_with_declaring_class=true
+cleanup.qualify_static_method_accesses_with_declaring_class=false
+cleanup.remove_private_constructors=true
+cleanup.remove_redundant_modifiers=true
+cleanup.remove_redundant_semicolons=true
+cleanup.remove_redundant_type_arguments=true
+cleanup.remove_trailing_whitespaces=false
+cleanup.remove_trailing_whitespaces_all=true
+cleanup.remove_trailing_whitespaces_ignore_empty=true
+cleanup.remove_unnecessary_array_creation=false
+cleanup.remove_unnecessary_casts=true
+cleanup.remove_unnecessary_nls_tags=true
+cleanup.remove_unused_imports=true
+cleanup.remove_unused_local_variables=true
+cleanup.remove_unused_private_fields=true
+cleanup.remove_unused_private_members=true
+cleanup.remove_unused_private_methods=true
+cleanup.remove_unused_private_types=true
+cleanup.simplify_lambda_expression_and_method_ref=false
+cleanup.sort_members=false
+cleanup.sort_members_all=false
+cleanup.use_anonymous_class_creation=false
+cleanup.use_autoboxing=false
+cleanup.use_blocks=true
+cleanup.use_blocks_only_for_return_and_throw=false
+cleanup.use_directly_map_method=false
+cleanup.use_lambda=true
+cleanup.use_parentheses_in_expressions=true
+cleanup.use_this_for_non_static_field_access=true
+cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+cleanup.use_this_for_non_static_method_access=true
+cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+cleanup.use_unboxing=false
+cleanup_profile=_L2J Clean Up v0.4
+cleanup_settings_version=2
+eclipse.preferences.version=1
+formatter_profile=_L2J Formatter v0.8
+formatter_settings_version=19
diff --git a/.settings/org.eclipse.m2e.core.prefs b/.settings/org.eclipse.m2e.core.prefs
new file mode 100644
index 0000000000000000000000000000000000000000..14b697b7bbb0d85e8d8ee19141a2a92d9ce211be
--- /dev/null
+++ b/.settings/org.eclipse.m2e.core.prefs
@@ -0,0 +1,4 @@
+activeProfiles=
+eclipse.preferences.version=1
+resolveWorkspaceProjects=true
+version=1
diff --git a/src/main/java/com/l2jserver/datapack/ai/group_template/RandomSpawn.java b/src/main/java/com/l2jserver/datapack/ai/group_template/RandomSpawn.java
index 9396f24de8e2b0be3dab82d17c43a942966e4b4f..796bb7e41f86d3623a8ef7bcdca5c8aa120fcc76 100644
--- a/src/main/java/com/l2jserver/datapack/ai/group_template/RandomSpawn.java
+++ b/src/main/java/com/l2jserver/datapack/ai/group_template/RandomSpawn.java
@@ -78,7 +78,7 @@ public final class RandomSpawn extends AbstractNpcAI {
 	}
 	
 	@Override
-	public final String onSpawn(L2Npc npc) {
+	public String onSpawn(L2Npc npc) {
 		final Location[] spawnlist = SPAWN_POINTS.get(npc.getId());
 		final Location loc = spawnlist[getRandom(spawnlist.length)];
 		if (!npc.isInsideRadius(loc, 200, false, false)) {
diff --git a/src/main/java/com/l2jserver/datapack/ai/group_template/Remnants.java b/src/main/java/com/l2jserver/datapack/ai/group_template/Remnants.java
index b81f392d5d04466c6b9f1a2fc7abacb5fcd98d4c..2d50ae7f055bf013d6cd570ab452f2b0d2a7e610 100644
--- a/src/main/java/com/l2jserver/datapack/ai/group_template/Remnants.java
+++ b/src/main/java/com/l2jserver/datapack/ai/group_template/Remnants.java
@@ -47,13 +47,13 @@ public final class Remnants extends AbstractNpcAI {
 	}
 	
 	@Override
-	public final String onSpawn(L2Npc npc) {
+	public String onSpawn(L2Npc npc) {
 		npc.setIsMortal(false);
 		return super.onSpawn(npc);
 	}
 	
 	@Override
-	public final String onSkillSee(L2Npc npc, L2PcInstance caster, Skill skill, L2Object[] targets, boolean isSummon) {
+	public String onSkillSee(L2Npc npc, L2PcInstance caster, Skill skill, L2Object[] targets, boolean isSummon) {
 		if (skill.getId() == SKILL_HOLY_WATER) {
 			if (!npc.isDead()) {
 				if ((targets.length > 0) && (targets[0] == npc)) {
diff --git a/src/main/java/com/l2jserver/datapack/ai/group_template/SelMahumDrill.java b/src/main/java/com/l2jserver/datapack/ai/group_template/SelMahumDrill.java
index de5c524a32304f21c267c6d3f0642504639dc771..19c381c5335f68d40bd774a7488a6d98a3e3bc68 100644
--- a/src/main/java/com/l2jserver/datapack/ai/group_template/SelMahumDrill.java
+++ b/src/main/java/com/l2jserver/datapack/ai/group_template/SelMahumDrill.java
@@ -77,7 +77,7 @@ public final class SelMahumDrill extends AbstractNpcAI {
 	// Chiefs event broadcast range
 	private static final int TRAINING_RANGE = 1000;
 	
-	private static enum Actions {
+	private enum Actions {
 		SCE_TRAINING_ACTION_A(4, -1, 2, 2333),
 		SCE_TRAINING_ACTION_B(1, -1, 2, 4333),
 		SCE_TRAINING_ACTION_C(6, 5, 4, 1000),
diff --git a/src/main/java/com/l2jserver/datapack/ai/group_template/StakatoNest.java b/src/main/java/com/l2jserver/datapack/ai/group_template/StakatoNest.java
index 857241b001918f814095911b7b01c81fe85257d3..66a0cca800a3194a024090854bef5f305c37e8a3 100644
--- a/src/main/java/com/l2jserver/datapack/ai/group_template/StakatoNest.java
+++ b/src/main/java/com/l2jserver/datapack/ai/group_template/StakatoNest.java
@@ -172,7 +172,7 @@ public final class StakatoNest extends AbstractNpcAI {
 	}
 	
 	@Override
-	public final String onAdvEvent(String event, L2Npc npc, L2PcInstance player) {
+	public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) {
 		if ((npc == null) || (player == null) || npc.isDead()) {
 			return null;
 		}
diff --git a/src/main/java/com/l2jserver/datapack/ai/individual/Antharas/Antharas.java b/src/main/java/com/l2jserver/datapack/ai/individual/Antharas/Antharas.java
index 7adab0f5b73dfa0ef96b806c491e17147cca9662..6f5e0978301be904585b566889d720f94e74eaff 100644
--- a/src/main/java/com/l2jserver/datapack/ai/individual/Antharas/Antharas.java
+++ b/src/main/java/com/l2jserver/datapack/ai/individual/Antharas/Antharas.java
@@ -609,7 +609,7 @@ public final class Antharas extends AbstractNpcAI {
 		GrandBossManager.getInstance().getStatsSet(ANTHARAS).set("respawn_time", (System.currentTimeMillis() + respawnTime));
 	}
 	
-	private final void refreshAiParams(L2PcInstance attacker, int damage) {
+	private void refreshAiParams(L2PcInstance attacker, int damage) {
 		if ((attacker_1 != null) && (attacker == attacker_1)) {
 			if (attacker_1_hate < (damage + 1000)) {
 				attacker_1_hate = damage + getRandom(3000);
diff --git a/src/main/java/com/l2jserver/datapack/ai/individual/Baium/Baium.java b/src/main/java/com/l2jserver/datapack/ai/individual/Baium/Baium.java
index 05c82ecdc5d3569a0a0e0459621495af488f8b6c..0b626f212bf6580b5cfc064c0f1d0079436ce2d9 100644
--- a/src/main/java/com/l2jserver/datapack/ai/individual/Baium/Baium.java
+++ b/src/main/java/com/l2jserver/datapack/ai/individual/Baium/Baium.java
@@ -489,11 +489,11 @@ public final class Baium extends AbstractNpcAI {
 		return super.unload(removeFromList);
 	}
 	
-	private final void refreshAiParams(L2Character attacker, L2Npc npc, int damage) {
+	private void refreshAiParams(L2Character attacker, L2Npc npc, int damage) {
 		refreshAiParams(attacker, npc, damage, damage);
 	}
 	
-	private final void refreshAiParams(L2Character attacker, L2Npc npc, int damage, int aggro) {
+	private void refreshAiParams(L2Character attacker, L2Npc npc, int damage, int aggro) {
 		final int newAggroVal = damage + getRandom(3000);
 		final int aggroVal = aggro + 1000;
 		final NpcVariables vars = npc.getVariables();
diff --git a/src/main/java/com/l2jserver/datapack/ai/individual/BloodyBerserker.java b/src/main/java/com/l2jserver/datapack/ai/individual/BloodyBerserker.java
index 4773bfc5a002cc9a69700baf8814438cfcc9ab48..55697a49a9088a76afcf11a263d10a0177e7df3e 100644
--- a/src/main/java/com/l2jserver/datapack/ai/individual/BloodyBerserker.java
+++ b/src/main/java/com/l2jserver/datapack/ai/individual/BloodyBerserker.java
@@ -32,20 +32,17 @@ import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
  * @author Maneco2
  * @version 2.6.2.0
  */
-public class BloodyBerserker extends AbstractNpcAI
-{
+public class BloodyBerserker extends AbstractNpcAI {
 	// NPCs
 	private static final int BLOODY_BERSERKER = 22855;
 	
-	private static final int[] BLOODY_FAMILY =
-	{
+	private static final int[] BLOODY_FAMILY = {
 		22854, // Bloody Karik
 		22855, // Bloody Berserker
 		22856, // Bloody Karinness
 	};
 	
-	public BloodyBerserker()
-	{
+	public BloodyBerserker() {
 		super(BloodyBerserker.class.getSimpleName(), "ai/individual");
 		addKillId(BLOODY_BERSERKER);
 		addAttackId(BLOODY_BERSERKER);
@@ -54,24 +51,18 @@ public class BloodyBerserker extends AbstractNpcAI
 	}
 	
 	@Override
-	public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
-	{
-		switch (event)
-		{
-			case "CORE_AI":
-			{
-				if (npc != null)
-				{
+	public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) {
+		switch (event) {
+			case "CORE_AI": {
+				if (npc != null) {
 					((L2Attackable) npc).clearAggroList();
 					npc.disableCoreAI(false);
 					startQuestTimer("RETURN_SPAWN", 300000, npc, null);
 				}
 				break;
 			}
-			case "RETURN_SPAWN":
-			{
-				if (npc != null)
-				{
+			case "RETURN_SPAWN": {
+				if (npc != null) {
 					((L2Attackable) npc).setCanReturnToSpawnPoint(true);
 				}
 				break;
@@ -81,33 +72,21 @@ public class BloodyBerserker extends AbstractNpcAI
 	}
 	
 	@Override
-	public String onAttack(L2Npc npc, L2PcInstance attacker, int damage, boolean isSummon)
-	{
-		switch (npc.getId())
-		{
-			case BLOODY_BERSERKER:
-			{
+	public String onAttack(L2Npc npc, L2PcInstance attacker, int damage, boolean isSummon) {
+		switch (npc.getId()) {
+			case BLOODY_BERSERKER: {
 				final double DistSpawn = npc.calculateDistance(npc.getSpawn().getLocation(), false, false);
-				if (DistSpawn > 3000)
-				{
+				if (DistSpawn > 3000) {
 					npc.disableCoreAI(true);
 					npc.teleToLocation(npc.getSpawn().getLocation());
-				}
-				else
-				{
-					if ((DistSpawn > 500) && (getRandom(100) < 1) && (npc.isInCombat()) && (!npc.isCastingNow()))
-					{
-						for (int object : BLOODY_FAMILY)
-						{
-							for (L2Spawn spawn : SpawnTable.getInstance().getSpawns(object))
-							{
+				} else {
+					if ((DistSpawn > 500) && (getRandom(100) < 1) && (npc.isInCombat()) && (!npc.isCastingNow())) {
+						for (int object : BLOODY_FAMILY) {
+							for (L2Spawn spawn : SpawnTable.getInstance().getSpawns(object)) {
 								final L2Npc obj = spawn.getLastSpawn();
-								if ((obj != null) && !obj.isDead() && (Math.abs(npc.getZ() - obj.getZ()) < 150))
-								{
-									if (npc.calculateDistance(obj, false, false) > obj.getTemplate().getClanHelpRange())
-									{
-										if ((npc.calculateDistance(obj, false, false) < 3000) && GeoData.getInstance().canSeeTarget(npc, obj))
-										{
+								if ((obj != null) && !obj.isDead() && (Math.abs(npc.getZ() - obj.getZ()) < 150)) {
+									if (npc.calculateDistance(obj, false, false) > obj.getTemplate().getClanHelpRange()) {
+										if ((npc.calculateDistance(obj, false, false) < 3000) && GeoData.getInstance().canSeeTarget(npc, obj)) {
 											npc.disableCoreAI(true);
 											((L2Attackable) npc).setCanReturnToSpawnPoint(false);
 											addMoveToDesire(npc, new Location(obj.getX() + getRandom(-100, 100), obj.getY() + getRandom(-100, 100), obj.getZ() + 20, 0), 0);
@@ -125,14 +104,10 @@ public class BloodyBerserker extends AbstractNpcAI
 	}
 	
 	@Override
-	public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
-	{
-		switch (npc.getId())
-		{
-			case BLOODY_BERSERKER:
-			{
-				if (getRandom(100) < 5)
-				{
+	public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon) {
+		switch (npc.getId()) {
+			case BLOODY_BERSERKER: {
+				if (getRandom(100) < 5) {
 					final int newZ = npc.getZ() + 20;
 					addAttackDesire(addSpawn(npc.getId(), npc.getX(), npc.getY(), newZ, npc.getHeading(), false, 0), killer);
 					addAttackDesire(addSpawn(npc.getId(), npc.getX(), npc.getY() - 10, newZ, npc.getHeading(), false, 0), killer);
@@ -147,19 +122,16 @@ public class BloodyBerserker extends AbstractNpcAI
 	}
 	
 	@Override
-	protected void onTeleport(L2Npc npc)
-	{
+	protected void onTeleport(L2Npc npc) {
 		startQuestTimer("CORE_AI", 100, npc, null);
 	}
 	
 	@Override
-	public void onMoveFinished(L2Npc npc)
-	{
+	public void onMoveFinished(L2Npc npc) {
 		startQuestTimer("CORE_AI", 100, npc, null);
 	}
 	
-	public static void main(String[] args)
-	{
+	public static void main(String[] args) {
 		new BloodyBerserker();
 	}
 }
\ No newline at end of file
diff --git a/src/main/java/com/l2jserver/datapack/ai/individual/BloodyKarinness.java b/src/main/java/com/l2jserver/datapack/ai/individual/BloodyKarinness.java
index 21c9c4cdf0e367949b1b4ee5013f4d1befbdc6eb..d55dbc5f22c9f81b03d6af223d330ab7bcb09ffc 100644
--- a/src/main/java/com/l2jserver/datapack/ai/individual/BloodyKarinness.java
+++ b/src/main/java/com/l2jserver/datapack/ai/individual/BloodyKarinness.java
@@ -32,20 +32,17 @@ import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
  * @author Maneco2
  * @version 2.6.2.0
  */
-public class BloodyKarinness extends AbstractNpcAI
-{
+public class BloodyKarinness extends AbstractNpcAI {
 	// NPCs
 	private static final int BLOODY_KARINNESS = 22856;
 	
-	private static final int[] BLOODY_FAMILY =
-	{
+	private static final int[] BLOODY_FAMILY = {
 		22854, // Bloody Karik
 		22855, // Bloody Berserker
 		22856, // Bloody Karinness
 	};
 	
-	public BloodyKarinness()
-	{
+	public BloodyKarinness() {
 		super(BloodyKarinness.class.getSimpleName(), "ai/individual");
 		addKillId(BLOODY_KARINNESS);
 		addAttackId(BLOODY_KARINNESS);
@@ -54,24 +51,18 @@ public class BloodyKarinness extends AbstractNpcAI
 	}
 	
 	@Override
-	public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
-	{
-		switch (event)
-		{
-			case "CORE_AI":
-			{
-				if (npc != null)
-				{
+	public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) {
+		switch (event) {
+			case "CORE_AI": {
+				if (npc != null) {
 					((L2Attackable) npc).clearAggroList();
 					npc.disableCoreAI(false);
 					startQuestTimer("RETURN_SPAWN", 300000, npc, null);
 				}
 				break;
 			}
-			case "RETURN_SPAWN":
-			{
-				if (npc != null)
-				{
+			case "RETURN_SPAWN": {
+				if (npc != null) {
 					((L2Attackable) npc).setCanReturnToSpawnPoint(true);
 				}
 				break;
@@ -81,33 +72,21 @@ public class BloodyKarinness extends AbstractNpcAI
 	}
 	
 	@Override
-	public String onAttack(L2Npc npc, L2PcInstance attacker, int damage, boolean isSummon)
-	{
-		switch (npc.getId())
-		{
-			case BLOODY_KARINNESS:
-			{
+	public String onAttack(L2Npc npc, L2PcInstance attacker, int damage, boolean isSummon) {
+		switch (npc.getId()) {
+			case BLOODY_KARINNESS: {
 				final double DistSpawn = npc.calculateDistance(npc.getSpawn().getLocation(), false, false);
-				if (DistSpawn > 3000)
-				{
+				if (DistSpawn > 3000) {
 					npc.disableCoreAI(true);
 					npc.teleToLocation(npc.getSpawn().getLocation());
-				}
-				else
-				{
-					if ((DistSpawn > 500) && (getRandom(100) < 1) && (npc.isInCombat()) && (!npc.isCastingNow()))
-					{
-						for (int object : BLOODY_FAMILY)
-						{
-							for (L2Spawn spawn : SpawnTable.getInstance().getSpawns(object))
-							{
+				} else {
+					if ((DistSpawn > 500) && (getRandom(100) < 1) && (npc.isInCombat()) && (!npc.isCastingNow())) {
+						for (int object : BLOODY_FAMILY) {
+							for (L2Spawn spawn : SpawnTable.getInstance().getSpawns(object)) {
 								final L2Npc obj = spawn.getLastSpawn();
-								if ((obj != null) && !obj.isDead() && (Math.abs(npc.getZ() - obj.getZ()) < 150))
-								{
-									if (npc.calculateDistance(obj, false, false) > obj.getTemplate().getClanHelpRange())
-									{
-										if ((npc.calculateDistance(obj, false, false) < 3000) && GeoData.getInstance().canSeeTarget(npc, obj))
-										{
+								if ((obj != null) && !obj.isDead() && (Math.abs(npc.getZ() - obj.getZ()) < 150)) {
+									if (npc.calculateDistance(obj, false, false) > obj.getTemplate().getClanHelpRange()) {
+										if ((npc.calculateDistance(obj, false, false) < 3000) && GeoData.getInstance().canSeeTarget(npc, obj)) {
 											npc.disableCoreAI(true);
 											((L2Attackable) npc).setCanReturnToSpawnPoint(false);
 											addMoveToDesire(npc, new Location(obj.getX() + getRandom(-100, 100), obj.getY() + getRandom(-100, 100), obj.getZ() + 20, 0), 0);
@@ -125,14 +104,10 @@ public class BloodyKarinness extends AbstractNpcAI
 	}
 	
 	@Override
-	public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
-	{
-		switch (npc.getId())
-		{
-			case BLOODY_KARINNESS:
-			{
-				if (getRandom(100) < 5)
-				{
+	public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon) {
+		switch (npc.getId()) {
+			case BLOODY_KARINNESS: {
+				if (getRandom(100) < 5) {
 					final int newZ = npc.getZ() + 20;
 					addAttackDesire(addSpawn(npc.getId(), npc.getX(), npc.getY(), newZ, npc.getHeading(), false, 0), killer);
 					addAttackDesire(addSpawn(npc.getId(), npc.getX(), npc.getY() - 10, newZ, npc.getHeading(), false, 0), killer);
@@ -147,19 +122,16 @@ public class BloodyKarinness extends AbstractNpcAI
 	}
 	
 	@Override
-	protected void onTeleport(L2Npc npc)
-	{
+	protected void onTeleport(L2Npc npc) {
 		startQuestTimer("CORE_AI", 100, npc, null);
 	}
 	
 	@Override
-	public void onMoveFinished(L2Npc npc)
-	{
+	public void onMoveFinished(L2Npc npc) {
 		startQuestTimer("CORE_AI", 100, npc, null);
 	}
 	
-	public static void main(String[] args)
-	{
+	public static void main(String[] args) {
 		new BloodyKarinness();
 	}
 }
\ No newline at end of file
diff --git a/src/main/java/com/l2jserver/datapack/ai/individual/CrimsonHatuOtis.java b/src/main/java/com/l2jserver/datapack/ai/individual/CrimsonHatuOtis.java
index 474575080fb12d7ea7d4001b35a07d33e57bae79..0e478a7d6fc0dd4275e803c693177eaafe6ef9f3 100644
--- a/src/main/java/com/l2jserver/datapack/ai/individual/CrimsonHatuOtis.java
+++ b/src/main/java/com/l2jserver/datapack/ai/individual/CrimsonHatuOtis.java
@@ -43,7 +43,7 @@ public final class CrimsonHatuOtis extends AbstractNpcAI {
 	}
 	
 	@Override
-	public final String onAdvEvent(String event, L2Npc npc, L2PcInstance player) {
+	public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) {
 		switch (event) {
 			case "SKILL": {
 				if (npc.isDead()) {
diff --git a/src/main/java/com/l2jserver/datapack/ai/individual/Epidos.java b/src/main/java/com/l2jserver/datapack/ai/individual/Epidos.java
index 59080c02c3cf4b8a1d6cf3a97e3812d950dd8184..6eee8906883dabb2cbf7e37bd2eb0fcd8822d3f2 100644
--- a/src/main/java/com/l2jserver/datapack/ai/individual/Epidos.java
+++ b/src/main/java/com/l2jserver/datapack/ai/individual/Epidos.java
@@ -63,7 +63,7 @@ public final class Epidos extends AbstractNpcAI {
 	}
 	
 	@Override
-	public final String onAdvEvent(String event, L2Npc npc, L2PcInstance player) {
+	public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) {
 		if (event.equalsIgnoreCase("check_minions")) {
 			if ((getRandom(1000) > 250) && _lastHp.containsKey(npc.getObjectId())) {
 				int hpDecreasePercent = (int) (((_lastHp.get(npc.getObjectId()) - npc.getCurrentHp()) * 100) / npc.getMaxHp());
@@ -107,7 +107,7 @@ public final class Epidos extends AbstractNpcAI {
 	}
 	
 	@Override
-	public final String onSpawn(L2Npc npc) {
+	public String onSpawn(L2Npc npc) {
 		startQuestTimer("check_minions", 10000, npc, null);
 		startQuestTimer("check_idle", 600000, npc, null);
 		_lastHp.put(npc.getObjectId(), (double) npc.getMaxHp());
diff --git a/src/main/java/com/l2jserver/datapack/ai/individual/Knoriks.java b/src/main/java/com/l2jserver/datapack/ai/individual/Knoriks.java
index 295a7dad2a8260a95b9309382009978ac71f62be..16cab4f35fe4b37261b338667c42ba863d0f1be5 100644
--- a/src/main/java/com/l2jserver/datapack/ai/individual/Knoriks.java
+++ b/src/main/java/com/l2jserver/datapack/ai/individual/Knoriks.java
@@ -36,8 +36,7 @@ import com.l2jserver.gameserver.network.clientpackets.Say2;
  * @author Maneco2
  * @version 2.6.2.0
  */
-public class Knoriks extends AbstractNpcAI
-{
+public class Knoriks extends AbstractNpcAI {
 	// NPC
 	private static final int KNORIKS = 22857;
 	// Skills
@@ -49,8 +48,7 @@ public class Knoriks extends AbstractNpcAI
 	private static final int MAX_CHASE_DIST = 3000;
 	private static int SpawnCount = 0;
 	
-	public Knoriks()
-	{
+	public Knoriks() {
 		super(Knoriks.class.getSimpleName(), "ai/individual");
 		addAggroRangeEnterId(KNORIKS);
 		addSkillSeeId(KNORIKS);
@@ -61,28 +59,21 @@ public class Knoriks extends AbstractNpcAI
 	}
 	
 	@Override
-	public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
-	{
-		switch (event)
-		{
-			case "CORE_AI":
-			{
-				if (npc != null)
-				{
+	public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) {
+		switch (event) {
+			case "CORE_AI": {
+				if (npc != null) {
 					((L2Attackable) npc).clearAggroList();
 					npc.disableCoreAI(false);
 				}
 				break;
 			}
-			case "CHECK_ROUTE":
-			{
+			case "CHECK_ROUTE": {
 				WalkingManager.getInstance().onSpawn(npc);
 				break;
 			}
-			case "KNORIKS_SPAWN":
-			{
-				if (SpawnCount < 3)
-				{
+			case "KNORIKS_SPAWN": {
+				if (SpawnCount < 3) {
 					SpawnCount++;
 					addSpawn(KNORIKS, 140641, 114525, -3755, 0, false, 0);
 					addSpawn(KNORIKS, 143789, 110205, -3968, 0, false, 0);
@@ -97,30 +88,23 @@ public class Knoriks extends AbstractNpcAI
 	}
 	
 	@Override
-	public String onAttack(L2Npc npc, L2PcInstance attacker, int damage, boolean isSummon)
-	{
+	public String onAttack(L2Npc npc, L2PcInstance attacker, int damage, boolean isSummon) {
 		final L2Character mostHated = ((L2Attackable) npc).getMostHated();
-		if ((mostHated != null) && (npc.isInsideRadius(attacker, 250, false, false)))
-		{
-			if ((getRandom(100) < 10) && (!npc.isCastingNow()))
-			{
+		if ((mostHated != null) && (npc.isInsideRadius(attacker, 250, false, false))) {
+			if ((getRandom(100) < 10) && (!npc.isCastingNow())) {
 				npc.doCast(getRandomBoolean() ? DARK_STORM : DARK_BLADE);
 			}
 			
-			for (L2Character obj : npc.getKnownList().getKnownCharactersInRadius(200))
-			{
-				if ((obj != null) && (obj.isMonster()))
-				{
-					if ((getRandom(100) < 10) && (obj.isInCombat()) && (!obj.isCastingNow()))
-					{
+			for (L2Character obj : npc.getKnownList().getKnownCharactersInRadius(200)) {
+				if ((obj != null) && (obj.isMonster())) {
+					if ((getRandom(100) < 10) && (obj.isInCombat()) && (!obj.isCastingNow())) {
 						obj.doCast(getRandomBoolean() ? DARK_STORM : DARK_BLADE);
 					}
 				}
 			}
 		}
 		
-		if ((npc.calculateDistance(npc.getSpawn().getLocation(), false, false) > MAX_CHASE_DIST) || (Math.abs(npc.getZ() - npc.getSpawn().getZ()) > 450))
-		{
+		if ((npc.calculateDistance(npc.getSpawn().getLocation(), false, false) > MAX_CHASE_DIST) || (Math.abs(npc.getZ() - npc.getSpawn().getZ()) > 450)) {
 			npc.disableCoreAI(true);
 			npc.teleToLocation(npc.getSpawn().getLocation());
 		}
@@ -128,18 +112,15 @@ public class Knoriks extends AbstractNpcAI
 	}
 	
 	@Override
-	public String onSkillSee(L2Npc npc, L2PcInstance player, Skill skill, L2Object[] targets, boolean isSummon)
-	{
-		if ((getRandom(100) < 10) && (!npc.isCastingNow()) && (!npc.isInsideRadius(player, 250, false, false)))
-		{
+	public String onSkillSee(L2Npc npc, L2PcInstance player, Skill skill, L2Object[] targets, boolean isSummon) {
+		if ((getRandom(100) < 10) && (!npc.isCastingNow()) && (!npc.isInsideRadius(player, 250, false, false))) {
 			addSkillCastDesire(npc, player, DARK_WIND, 1000000L);
 		}
 		return super.onSkillSee(npc, player, skill, targets, isSummon);
 	}
 	
 	@Override
-	public String onSpawn(L2Npc npc)
-	{
+	public String onSpawn(L2Npc npc) {
 		final L2Spawn spawn = npc.getSpawn();
 		spawn.setAmount(1);
 		spawn.setRespawnDelay(1800);
@@ -148,10 +129,8 @@ public class Knoriks extends AbstractNpcAI
 	}
 	
 	@Override
-	public String onAggroRangeEnter(L2Npc npc, L2PcInstance player, boolean isSummon)
-	{
-		if ((getRandom(100) < 50) && (!npc.getVariables().getBoolean(SHOUT_FLAG, false)))
-		{
+	public String onAggroRangeEnter(L2Npc npc, L2PcInstance player, boolean isSummon) {
+		if ((getRandom(100) < 50) && (!npc.getVariables().getBoolean(SHOUT_FLAG, false))) {
 			npc.getVariables().set(SHOUT_FLAG, true);
 			broadcastNpcSay(npc, Say2.NPC_SHOUT, NpcStringId.WHOS_THERE_IF_YOU_DISTURB_THE_TEMPER_OF_THE_GREAT_LAND_DRAGON_ANTHARAS_I_WILL_NEVER_FORGIVE_YOU);
 		}
@@ -159,15 +138,13 @@ public class Knoriks extends AbstractNpcAI
 	}
 	
 	@Override
-	protected void onTeleport(L2Npc npc)
-	{
+	protected void onTeleport(L2Npc npc) {
 		WalkingManager.getInstance().cancelMoving(npc);
 		startQuestTimer("CORE_AI", 100, npc, null);
 		notifyEvent("CHECK_ROUTE", npc, null);
 	}
 	
-	public static void main(String[] args)
-	{
+	public static void main(String[] args) {
 		new Knoriks();
 	}
 }
diff --git a/src/main/java/com/l2jserver/datapack/ai/individual/Orfen.java b/src/main/java/com/l2jserver/datapack/ai/individual/Orfen.java
index 47bc1bb9756002202d9e4074b6b1c2b0f1fbda7b..17c2abce21a0f26f14aabdb21dd330b0fad32aa6 100644
--- a/src/main/java/com/l2jserver/datapack/ai/individual/Orfen.java
+++ b/src/main/java/com/l2jserver/datapack/ai/individual/Orfen.java
@@ -181,8 +181,7 @@ public final class Orfen extends AbstractNpcAI {
 				setSpawnPoint(npc, 0);
 			}
 		} else if (event.equalsIgnoreCase("check_minion_loc")) {
-			for (int i = 0; i < MINIONS.size(); i++) {
-				L2Attackable mob = MINIONS.get(i);
+			for (L2Attackable mob : MINIONS) {
 				if (!npc.isInsideRadius(mob, 3000, false, false)) {
 					mob.teleToLocation(npc.getLocation());
 					((L2Attackable) npc).clearAggroList();
@@ -190,8 +189,7 @@ public final class Orfen extends AbstractNpcAI {
 				}
 			}
 		} else if (event.equalsIgnoreCase("despawn_minions")) {
-			for (int i = 0; i < MINIONS.size(); i++) {
-				L2Attackable mob = MINIONS.get(i);
+			for (L2Attackable mob : MINIONS) {
 				if (mob != null) {
 					mob.decayMe();
 				}
diff --git a/src/main/java/com/l2jserver/datapack/ai/individual/Sailren/Sailren.java b/src/main/java/com/l2jserver/datapack/ai/individual/Sailren/Sailren.java
index f97ee727768cff2f01041f79471b4c5d35e7da1f..23e8524894e9cf7b02681d2bfc3460308772cf2f 100644
--- a/src/main/java/com/l2jserver/datapack/ai/individual/Sailren/Sailren.java
+++ b/src/main/java/com/l2jserver/datapack/ai/individual/Sailren/Sailren.java
@@ -56,7 +56,7 @@ public final class Sailren extends AbstractNpcAI {
 	private static int _killCount = 0;
 	private static long _lastAttack = 0;
 	
-	private static enum Status {
+	private enum Status {
 		ALIVE,
 		IN_FIGHT,
 		DEAD
diff --git a/src/main/java/com/l2jserver/datapack/ai/individual/Venom/Venom.java b/src/main/java/com/l2jserver/datapack/ai/individual/Venom/Venom.java
index 8e68509b5601d3c68b8e5a487161736ef9588f88..d82612554f096887dff9b51695fdaf1e5fab078f 100644
--- a/src/main/java/com/l2jserver/datapack/ai/individual/Venom/Venom.java
+++ b/src/main/java/com/l2jserver/datapack/ai/individual/Venom/Venom.java
@@ -229,7 +229,7 @@ public final class Venom extends AbstractNpcAI {
 	}
 	
 	@Override
-	public final String onSpawn(L2Npc npc) {
+	public String onSpawn(L2Npc npc) {
 		switch (npc.getId()) {
 			case DUNGEON_KEEPER: {
 				_massymore = npc;
diff --git a/src/main/java/com/l2jserver/datapack/ai/npc/Alarm/Alarm.java b/src/main/java/com/l2jserver/datapack/ai/npc/Alarm/Alarm.java
index 8a0836377711883809ed8efdd36ca9f99db44866..1cc563a3cb429e6df131754f21ac893243eb245c 100644
--- a/src/main/java/com/l2jserver/datapack/ai/npc/Alarm/Alarm.java
+++ b/src/main/java/com/l2jserver/datapack/ai/npc/Alarm/Alarm.java
@@ -198,7 +198,7 @@ public final class Alarm extends AbstractNpcAI {
 	 * @param memoState the memo state, if memo state is less than zero, only quest state is checked
 	 * @return {@code true} if the player has the memo state, {@code false} otherwise
 	 */
-	private static final boolean verifyMemoState(L2PcInstance player, int questId, int memoState) {
+	private static boolean verifyMemoState(L2PcInstance player, int questId, int memoState) {
 		QuestState qs = null;
 		switch (questId) {
 			case ART_OF_PERSUASION_ID: {
@@ -219,7 +219,7 @@ public final class Alarm extends AbstractNpcAI {
 	 * @param questId the quest ID
 	 * @param memoState the memo state
 	 */
-	private static final void setMemoState(L2PcInstance player, int questId, int memoState) {
+	private static void setMemoState(L2PcInstance player, int questId, int memoState) {
 		QuestState qs = null;
 		switch (questId) {
 			case ART_OF_PERSUASION_ID: {
@@ -243,7 +243,7 @@ public final class Alarm extends AbstractNpcAI {
 	 * @param slot the slot
 	 * @return the memo state ex
 	 */
-	private static final int getMemoStateEx(L2PcInstance player, int questId, int slot) {
+	private static int getMemoStateEx(L2PcInstance player, int questId, int slot) {
 		QuestState qs = null;
 		switch (questId) {
 			case ART_OF_PERSUASION_ID: {
@@ -265,7 +265,7 @@ public final class Alarm extends AbstractNpcAI {
 	 * @param slot the slot
 	 * @param memoStateEx the memo state ex
 	 */
-	private static final void setMemoStateEx(L2PcInstance player, int questId, int slot, int memoStateEx) {
+	private static void setMemoStateEx(L2PcInstance player, int questId, int slot, int memoStateEx) {
 		QuestState qs = null;
 		switch (questId) {
 			case ART_OF_PERSUASION_ID: {
diff --git a/src/main/java/com/l2jserver/datapack/ai/npc/CastleChamberlain/CastleChamberlain.java b/src/main/java/com/l2jserver/datapack/ai/npc/CastleChamberlain/CastleChamberlain.java
index 356408cdba4e379b7c371b531b1dc9e833e972de..b1d360ac336e64a9ff5ac4e9f1723581254e80b2 100644
--- a/src/main/java/com/l2jserver/datapack/ai/npc/CastleChamberlain/CastleChamberlain.java
+++ b/src/main/java/com/l2jserver/datapack/ai/npc/CastleChamberlain/CastleChamberlain.java
@@ -146,7 +146,7 @@ public final class CastleChamberlain extends AbstractNpcAI {
 		return packet;
 	}
 	
-	private final String funcConfirmHtml(final L2PcInstance player, final L2Npc npc, final Castle castle, final int func, final int level) {
+	private String funcConfirmHtml(final L2PcInstance player, final L2Npc npc, final Castle castle, final int func, final int level) {
 		if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SET_FUNCTIONS)) {
 			final NpcHtmlMessage html;
 			final String fstring = (func == Castle.FUNC_TELEPORT) ? "9" : "10";
@@ -168,7 +168,7 @@ public final class CastleChamberlain extends AbstractNpcAI {
 		return "chamberlain-21.html";
 	}
 	
-	private final void funcReplace(final Castle castle, final NpcHtmlMessage html, final int func, final String str) {
+	private void funcReplace(final Castle castle, final NpcHtmlMessage html, final int func, final String str) {
 		final CastleFunction function = castle.getFunction(func);
 		if (function == null) {
 			html.replace("%" + str + "Depth%", "<fstring>4</fstring>");
@@ -186,7 +186,7 @@ public final class CastleChamberlain extends AbstractNpcAI {
 		}
 	}
 	
-	private final int getFunctionFee(final int func, final int level) {
+	private int getFunctionFee(final int func, final int level) {
 		int fee = 0;
 		switch (func) {
 			case Castle.FUNC_RESTORE_EXP:
@@ -208,7 +208,7 @@ public final class CastleChamberlain extends AbstractNpcAI {
 		return fee;
 	}
 	
-	private final long getFunctionRatio(final int func) {
+	private long getFunctionRatio(final int func) {
 		long ratio = 0;
 		switch (func) {
 			case Castle.FUNC_RESTORE_EXP:
@@ -230,7 +230,7 @@ public final class CastleChamberlain extends AbstractNpcAI {
 		return ratio;
 	}
 	
-	private final int getDoorUpgradePrice(final int type, final int level) {
+	private int getDoorUpgradePrice(final int type, final int level) {
 		int price = 0;
 		switch (type) {
 			case 1: // Outer Door
@@ -290,7 +290,7 @@ public final class CastleChamberlain extends AbstractNpcAI {
 		return price;
 	}
 	
-	private final String getSealOwner(final int seal) {
+	private String getSealOwner(final int seal) {
 		String npcString;
 		switch (SevenSigns.getInstance().getSealOwner(seal)) {
 			case SevenSigns.CABAL_DAWN:
@@ -306,7 +306,7 @@ public final class CastleChamberlain extends AbstractNpcAI {
 		return npcString;
 	}
 	
-	private final int getTaxLimit() {
+	private int getTaxLimit() {
 		final int taxLimit;
 		switch (SevenSigns.getInstance().getSealOwner(SevenSigns.SEAL_STRIFE)) {
 			case SevenSigns.CABAL_DAWN:
@@ -322,7 +322,7 @@ public final class CastleChamberlain extends AbstractNpcAI {
 		return taxLimit;
 	}
 	
-	private final int getTrapUpgradePrice(final int level) {
+	private int getTrapUpgradePrice(final int level) {
 		int price = 0;
 		switch (level) {
 			case 1:
@@ -350,7 +350,7 @@ public final class CastleChamberlain extends AbstractNpcAI {
 		return price;
 	}
 	
-	private final boolean isDomainFortressInContractStatus(final int castleId) {
+	private boolean isDomainFortressInContractStatus(final int castleId) {
 		final int numFort = ((castleId == 1) || (castleId == 5)) ? 2 : 1;
 		final List<Integer> fortList = FORTRESS.get(castleId);
 		for (int i = 0; i < numFort; i++) {
@@ -362,7 +362,7 @@ public final class CastleChamberlain extends AbstractNpcAI {
 		return false;
 	}
 	
-	private final boolean isOwner(final L2PcInstance player, final L2Npc npc) {
+	private boolean isOwner(final L2PcInstance player, final L2Npc npc) {
 		return player.canOverrideCond(PcCondOverride.CASTLE_CONDITIONS) || ((player.getClan() != null) && (player.getClanId() == npc.getCastle().getOwnerId()));
 	}
 	
@@ -1019,7 +1019,7 @@ public final class CastleChamberlain extends AbstractNpcAI {
 	@RegisterType(ListenerRegisterType.NPC)
 	@Id({35100, 35142, 35184, 35226, 35274,	35316, 35363, 35509, 35555})
 	// @formatter:on
-	public final void onNpcManorBypass(OnNpcManorBypass evt) {
+	public void onNpcManorBypass(OnNpcManorBypass evt) {
 		final L2PcInstance player = evt.getActiveChar();
 		final L2Npc npc = evt.getTarget();
 		if (isOwner(player, npc)) {
diff --git a/src/main/java/com/l2jserver/datapack/ai/npc/ForgeOfTheGods/ForgeOfTheGods.java b/src/main/java/com/l2jserver/datapack/ai/npc/ForgeOfTheGods/ForgeOfTheGods.java
index b33212d85a1666e08763b777fd42ba1527cd0ef3..906bbac5bbd7061bd592489ce1c7ec2f3ba80a14 100644
--- a/src/main/java/com/l2jserver/datapack/ai/npc/ForgeOfTheGods/ForgeOfTheGods.java
+++ b/src/main/java/com/l2jserver/datapack/ai/npc/ForgeOfTheGods/ForgeOfTheGods.java
@@ -143,7 +143,7 @@ public final class ForgeOfTheGods extends AbstractNpcAI {
 	}
 	
 	@Override
-	public final String onSpawn(L2Npc npc) {
+	public String onSpawn(L2Npc npc) {
 		startQuestTimer("suicide", 60000, npc, null);
 		return super.onSpawn(npc);
 	}
diff --git a/src/main/java/com/l2jserver/datapack/ai/npc/ForgeOfTheGods/TarBeetleSpawn.java b/src/main/java/com/l2jserver/datapack/ai/npc/ForgeOfTheGods/TarBeetleSpawn.java
index fecb34f8bd237cd0588b6d7b675544773664fbfa..6ed31a677b690c651c5f9b1205d8c0ac25f5f15d 100644
--- a/src/main/java/com/l2jserver/datapack/ai/npc/ForgeOfTheGods/TarBeetleSpawn.java
+++ b/src/main/java/com/l2jserver/datapack/ai/npc/ForgeOfTheGods/TarBeetleSpawn.java
@@ -137,14 +137,14 @@ public class TarBeetleSpawn implements IXmlReader {
 			return location;
 		}
 		
-		public final void addBannedZone(Zone bZone) {
+		public void addBannedZone(Zone bZone) {
 			if (_bannedZones == null) {
 				_bannedZones = new ArrayList<>();
 			}
 			_bannedZones.add(bZone);
 		}
 		
-		private final boolean isInsideBannedZone(Location location) {
+		private boolean isInsideBannedZone(Location location) {
 			if (_bannedZones != null) {
 				for (Zone z : _bannedZones) {
 					if (z.isInside(location.getX(), location.getY())) {
@@ -167,21 +167,21 @@ public class TarBeetleSpawn implements IXmlReader {
 			_index = index;
 		}
 		
-		public final void addZone(Zone zone) {
+		public void addZone(Zone zone) {
 			_zones.add(zone);
 		}
 		
-		public final void removeSpawn(L2Npc obj) {
+		public void removeSpawn(L2Npc obj) {
 			_spawn.remove(obj);
 		}
 		
-		public final void unload() {
+		public void unload() {
 			_spawn.forEach(L2Npc::deleteMe);
 			_spawn.clear();
 			_zones.clear();
 		}
 		
-		public final void refreshSpawn() {
+		public void refreshSpawn() {
 			try {
 				while (_spawn.size() < _maxNpcCount) {
 					final Location location = _zones.get(Rnd.get(_zones.size())).getRandomPoint();
@@ -207,7 +207,7 @@ public class TarBeetleSpawn implements IXmlReader {
 			}
 		}
 		
-		public final void refreshShots() {
+		public void refreshShots() {
 			if (_spawn.size() > 0) {
 				for (L2Npc npc : _spawn) {
 					final int val = npc.getScriptValue();
diff --git a/src/main/java/com/l2jserver/datapack/ai/npc/ManorManager/ManorManager.java b/src/main/java/com/l2jserver/datapack/ai/npc/ManorManager/ManorManager.java
index c5dee4d4365ca0d381d85f3999546d6eaabdf8a1..5fc21d9759a68733de565cd691a3364aaa70ef57 100644
--- a/src/main/java/com/l2jserver/datapack/ai/npc/ManorManager/ManorManager.java
+++ b/src/main/java/com/l2jserver/datapack/ai/npc/ManorManager/ManorManager.java
@@ -100,7 +100,7 @@ public final class ManorManager extends AbstractNpcAI {
 	@RegisterType(ListenerRegisterType.NPC)
 	@Id({35644, 35645, 35319, 35366, 36456, 35512, 35558, 35229, 35230, 35231, 35277, 35103, 35145, 35187})
 	// @formatter:on
-	public final void onNpcManorBypass(OnNpcManorBypass evt) {
+	public void onNpcManorBypass(OnNpcManorBypass evt) {
 		final L2PcInstance player = evt.getActiveChar();
 		if (CastleManorManager.getInstance().isUnderMaintenance()) {
 			player.sendPacket(SystemMessageId.THE_MANOR_SYSTEM_IS_CURRENTLY_UNDER_MAINTENANCE);
diff --git a/src/main/java/com/l2jserver/datapack/conquerablehalls/FortressOfResistance/FortressOfResistance.java b/src/main/java/com/l2jserver/datapack/conquerablehalls/FortressOfResistance/FortressOfResistance.java
index 0b2a27168e965b8fc5a5c29977e797b5427dd4ef..59b2c04c99b1918b9e968d061134b02816ec61c7 100644
--- a/src/main/java/com/l2jserver/datapack/conquerablehalls/FortressOfResistance/FortressOfResistance.java
+++ b/src/main/java/com/l2jserver/datapack/conquerablehalls/FortressOfResistance/FortressOfResistance.java
@@ -84,7 +84,7 @@ public final class FortressOfResistance extends ClanHallSiegeEngine {
 		}
 	}
 	
-	private final void buildMessengerMessage() {
+	private void buildMessengerMessage() {
 		String html = HtmCache.getInstance().getHtm(null, "com/l2jserver/datapack/conquerablehalls/FortressOfResistance/partisan_ordery_brakel001.htm");
 		if (html != null) {
 			// FIXME: We don't have an object id to put in here :(
diff --git a/src/main/java/com/l2jserver/datapack/custom/events/Elpies/Elpies.java b/src/main/java/com/l2jserver/datapack/custom/events/Elpies/Elpies.java
index cee57d606fcc7b138f3b86982e667acacd070eae..a254612e066a3663cd88a4fea37f7556aa74e679 100644
--- a/src/main/java/com/l2jserver/datapack/custom/events/Elpies/Elpies.java
+++ b/src/main/java/com/l2jserver/datapack/custom/events/Elpies/Elpies.java
@@ -161,7 +161,7 @@ public final class Elpies extends Event {
 		return super.onSpawn(npc);
 	}
 	
-	private static enum EventLocation {
+	private enum EventLocation {
 		ADEN("Aden", 146558, 148341, 26622, 28560, -2200),
 		DION("Dion", 18564, 19200, 144377, 145782, -3081),
 		GLUDIN("Gludin", -84040, -81420, 150257, 151175, -3125),
@@ -201,7 +201,7 @@ public final class Elpies extends Event {
 		}
 	}
 	
-	private static final void dropItem(L2Npc mob, L2PcInstance player, int[][] droplist) {
+	private static void dropItem(L2Npc mob, L2PcInstance player, int[][] droplist) {
 		final int chance = getRandom(100);
 		
 		for (int[] drop : droplist) {
diff --git a/src/main/java/com/l2jserver/datapack/gracia/vehicles/AirShipGludioGracia/AirShipGludioGracia.java b/src/main/java/com/l2jserver/datapack/gracia/vehicles/AirShipGludioGracia/AirShipGludioGracia.java
index 8ee192b99c2843cc7f5672ee6ce5df67d5e31760..ab45943223c873b0c32d42e0f4d4a7fa86481444 100644
--- a/src/main/java/com/l2jserver/datapack/gracia/vehicles/AirShipGludioGracia/AirShipGludioGracia.java
+++ b/src/main/java/com/l2jserver/datapack/gracia/vehicles/AirShipGludioGracia/AirShipGludioGracia.java
@@ -115,7 +115,7 @@ public final class AirShipGludioGracia extends Quest implements Runnable {
 		_ship.runEngine(60000);
 	}
 	
-	private final void broadcastInGludio(NpcStringId npcString) {
+	private void broadcastInGludio(NpcStringId npcString) {
 		if (!_foundAtcGludio) {
 			_foundAtcGludio = true;
 			_atcGludio = findController();
@@ -125,7 +125,7 @@ public final class AirShipGludioGracia extends Quest implements Runnable {
 		}
 	}
 	
-	private final void broadcastInGracia(NpcStringId npcStringId) {
+	private void broadcastInGracia(NpcStringId npcStringId) {
 		if (!_foundAtcGracia) {
 			_foundAtcGracia = true;
 			_atcGracia = findController();
@@ -135,7 +135,7 @@ public final class AirShipGludioGracia extends Quest implements Runnable {
 		}
 	}
 	
-	private final L2Npc findController() {
+	private L2Npc findController() {
 		// check objects around the ship
 		for (L2Object obj : L2World.getInstance().getVisibleObjects(_ship, 600)) {
 			if (obj.isNpc()) {
@@ -150,7 +150,7 @@ public final class AirShipGludioGracia extends Quest implements Runnable {
 	}
 	
 	@Override
-	public final String onAdvEvent(String event, L2Npc npc, L2PcInstance player) {
+	public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) {
 		if (player.isTransformed()) {
 			player.sendPacket(SystemMessageId.YOU_CANNOT_BOARD_AN_AIRSHIP_WHILE_TRANSFORMED);
 			return null;
@@ -192,7 +192,7 @@ public final class AirShipGludioGracia extends Quest implements Runnable {
 	}
 	
 	@Override
-	public final String onFirstTalk(L2Npc npc, L2PcInstance player) {
+	public String onFirstTalk(L2Npc npc, L2PcInstance player) {
 		return npc.getId() + ".htm";
 	}
 	
diff --git a/src/main/java/com/l2jserver/datapack/hellbound/AI/Amaskari.java b/src/main/java/com/l2jserver/datapack/hellbound/AI/Amaskari.java
index 81723b631b40767014dfc4e9574446926828f299..95c3453ad81a1767608a248390a5f9b7049d1e82 100644
--- a/src/main/java/com/l2jserver/datapack/hellbound/AI/Amaskari.java
+++ b/src/main/java/com/l2jserver/datapack/hellbound/AI/Amaskari.java
@@ -68,7 +68,7 @@ public final class Amaskari extends AbstractNpcAI {
 	}
 	
 	@Override
-	public final String onAdvEvent(String event, L2Npc npc, L2PcInstance player) {
+	public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) {
 		if (event.equalsIgnoreCase("stop_toggle")) {
 			broadcastNpcSay(npc, Say2.NPC_ALL, AMASKARI_NPCSTRING_ID[2]);
 			((L2MonsterInstance) npc).clearAggroList();
@@ -139,7 +139,7 @@ public final class Amaskari extends AbstractNpcAI {
 	}
 	
 	@Override
-	public final String onSpawn(L2Npc npc) {
+	public String onSpawn(L2Npc npc) {
 		startQuestTimer("onspawn_msg", (getRandom(3) + 1) * 30000, npc, null);
 		return super.onSpawn(npc);
 	}
diff --git a/src/main/java/com/l2jserver/datapack/hellbound/AI/Chimeras.java b/src/main/java/com/l2jserver/datapack/hellbound/AI/Chimeras.java
index bf8ac08ab5cbe74b5d6ad92130abbacc6d4616ff..23aceb058572372032933640c543f62c32b23b90 100644
--- a/src/main/java/com/l2jserver/datapack/hellbound/AI/Chimeras.java
+++ b/src/main/java/com/l2jserver/datapack/hellbound/AI/Chimeras.java
@@ -62,7 +62,7 @@ public final class Chimeras extends AbstractNpcAI {
 	}
 	
 	@Override
-	public final String onSpawn(L2Npc npc) {
+	public String onSpawn(L2Npc npc) {
 		if (HellboundEngine.getInstance().getLevel() == 7) // Have random spawn points only in 7 lvl
 		{
 			final Location loc = LOCATIONS[getRandom(LOCATIONS.length)];
@@ -75,7 +75,7 @@ public final class Chimeras extends AbstractNpcAI {
 	}
 	
 	@Override
-	public final String onSkillSee(L2Npc npc, L2PcInstance caster, Skill skill, L2Object[] targets, boolean isSummon) {
+	public String onSkillSee(L2Npc npc, L2PcInstance caster, Skill skill, L2Object[] targets, boolean isSummon) {
 		if ((skill.getId() == BOTTLE) && !npc.isDead()) {
 			if ((targets.length > 0) && (targets[0] == npc)) {
 				if (npc.getCurrentHp() < (npc.getMaxHp() * 0.1)) {
diff --git a/src/main/java/com/l2jserver/datapack/hellbound/AI/DemonPrince.java b/src/main/java/com/l2jserver/datapack/hellbound/AI/DemonPrince.java
index 21f463df6f1f8490950bcbe11551dd1f83741a1a..7ece34fd14670aae0d15095adc7f8f1734a1cfc9 100644
--- a/src/main/java/com/l2jserver/datapack/hellbound/AI/DemonPrince.java
+++ b/src/main/java/com/l2jserver/datapack/hellbound/AI/DemonPrince.java
@@ -87,7 +87,7 @@ public final class DemonPrince extends AbstractNpcAI {
 	}
 	
 	@Override
-	public final String onSpawn(L2Npc npc) {
+	public String onSpawn(L2Npc npc) {
 		if (npc.getId() == FIEND) {
 			startQuestTimer("cast", 15000, npc, null);
 		}
diff --git a/src/main/java/com/l2jserver/datapack/hellbound/AI/HellboundCore.java b/src/main/java/com/l2jserver/datapack/hellbound/AI/HellboundCore.java
index d3000e0672e1f95d059b4bedbb20d58ddb42e3d7..b7fe87062c28f0761d5f7aa1c4601d87a565f0f0 100644
--- a/src/main/java/com/l2jserver/datapack/hellbound/AI/HellboundCore.java
+++ b/src/main/java/com/l2jserver/datapack/hellbound/AI/HellboundCore.java
@@ -56,7 +56,7 @@ public final class HellboundCore extends AbstractNpcAI {
 	}
 	
 	@Override
-	public final String onSpawn(L2Npc npc) {
+	public String onSpawn(L2Npc npc) {
 		if (npc.getId() == NAIA) {
 			npc.setIsNoRndWalk(true);
 		} else {
diff --git a/src/main/java/com/l2jserver/datapack/hellbound/AI/Keltas.java b/src/main/java/com/l2jserver/datapack/hellbound/AI/Keltas.java
index 633bef93e40ef680f11f3ab7f04b215ea6cb0345..04dccf3152ec7147402fbad94c2f068126d65198 100644
--- a/src/main/java/com/l2jserver/datapack/hellbound/AI/Keltas.java
+++ b/src/main/java/com/l2jserver/datapack/hellbound/AI/Keltas.java
@@ -163,7 +163,7 @@ public final class Keltas extends AbstractNpcAI {
 	}
 	
 	@Override
-	public final String onSpawn(L2Npc npc) {
+	public String onSpawn(L2Npc npc) {
 		_spawnedKeltas = (L2MonsterInstance) npc;
 		broadcastNpcSay(_spawnedKeltas, Say2.NPC_SHOUT, NpcStringId.GUYS_SHOW_THEM_OUR_POWER);
 		spawnMinions();
diff --git a/src/main/java/com/l2jserver/datapack/hellbound/AI/NPC/Bernarde/Bernarde.java b/src/main/java/com/l2jserver/datapack/hellbound/AI/NPC/Bernarde/Bernarde.java
index fd67b3618f8b788ad13a54623450a04d78c2c96a..43e520d64b196b855d24be6c29d1796c151d00ef 100644
--- a/src/main/java/com/l2jserver/datapack/hellbound/AI/NPC/Bernarde/Bernarde.java
+++ b/src/main/java/com/l2jserver/datapack/hellbound/AI/NPC/Bernarde/Bernarde.java
@@ -45,7 +45,7 @@ public final class Bernarde extends AbstractNpcAI {
 	}
 	
 	@Override
-	public final String onAdvEvent(String event, L2Npc npc, L2PcInstance player) {
+	public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) {
 		switch (event) {
 			case "HolyWater": {
 				if (HellboundEngine.getInstance().getLevel() == 2) {
@@ -76,7 +76,7 @@ public final class Bernarde extends AbstractNpcAI {
 	}
 	
 	@Override
-	public final String onFirstTalk(L2Npc npc, L2PcInstance player) {
+	public String onFirstTalk(L2Npc npc, L2PcInstance player) {
 		switch (HellboundEngine.getInstance().getLevel()) {
 			case 0:
 			case 1:
@@ -92,7 +92,7 @@ public final class Bernarde extends AbstractNpcAI {
 		}
 	}
 	
-	private static final boolean isTransformed(L2PcInstance player) {
+	private static boolean isTransformed(L2PcInstance player) {
 		return player.isTransformed() && (player.getTransformation().getId() == NATIVE_TRANSFORM);
 	}
 }
\ No newline at end of file
diff --git a/src/main/java/com/l2jserver/datapack/hellbound/AI/NPC/Budenka/Budenka.java b/src/main/java/com/l2jserver/datapack/hellbound/AI/NPC/Budenka/Budenka.java
index d16ccc046873d245df4696bca47276a76240dca8..ec3f5d350ed4d6924e20095cb9b924cb89b86c04 100644
--- a/src/main/java/com/l2jserver/datapack/hellbound/AI/NPC/Budenka/Budenka.java
+++ b/src/main/java/com/l2jserver/datapack/hellbound/AI/NPC/Budenka/Budenka.java
@@ -41,7 +41,7 @@ public final class Budenka extends AbstractNpcAI {
 	}
 	
 	@Override
-	public final String onAdvEvent(String event, L2Npc npc, L2PcInstance player) {
+	public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) {
 		String htmltext = null;
 		switch (event) {
 			case "Budenka-02.html":
@@ -56,7 +56,7 @@ public final class Budenka extends AbstractNpcAI {
 	}
 	
 	@Override
-	public final String onFirstTalk(L2Npc npc, L2PcInstance player) {
+	public String onFirstTalk(L2Npc npc, L2PcInstance player) {
 		String htmltext = null;
 		if (hasQuestItems(player, STANDART_CERT, PREMIUM_CERT)) {
 			htmltext = "Budenka-07.html";
diff --git a/src/main/java/com/l2jserver/datapack/hellbound/AI/NPC/Buron/Buron.java b/src/main/java/com/l2jserver/datapack/hellbound/AI/NPC/Buron/Buron.java
index cf940d821adce3835426367a4f28c6c7604b20de..f5f423c14729cd333cc04782f331c56c3cf12593 100644
--- a/src/main/java/com/l2jserver/datapack/hellbound/AI/NPC/Buron/Buron.java
+++ b/src/main/java/com/l2jserver/datapack/hellbound/AI/NPC/Buron/Buron.java
@@ -42,7 +42,7 @@ public final class Buron extends AbstractNpcAI {
 	}
 	
 	@Override
-	public final String onAdvEvent(String event, L2Npc npc, L2PcInstance player) {
+	public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) {
 		String htmltext = event;
 		if ("Rumor".equalsIgnoreCase(event)) {
 			htmltext = "32345-" + HellboundEngine.getInstance().getLevel() + "r.htm";
@@ -69,7 +69,7 @@ public final class Buron extends AbstractNpcAI {
 	}
 	
 	@Override
-	public final String onFirstTalk(L2Npc npc, L2PcInstance player) {
+	public String onFirstTalk(L2Npc npc, L2PcInstance player) {
 		getQuestState(player, true);
 		switch (HellboundEngine.getInstance().getLevel()) {
 			case 1:
diff --git a/src/main/java/com/l2jserver/datapack/hellbound/AI/NPC/Deltuva/Deltuva.java b/src/main/java/com/l2jserver/datapack/hellbound/AI/NPC/Deltuva/Deltuva.java
index 3ff12e5ce352d504dcfbe560c0ac2727e4622f95..03ae30c1cd31cceabf75b69d36fe13db27e09587 100644
--- a/src/main/java/com/l2jserver/datapack/hellbound/AI/NPC/Deltuva/Deltuva.java
+++ b/src/main/java/com/l2jserver/datapack/hellbound/AI/NPC/Deltuva/Deltuva.java
@@ -42,7 +42,7 @@ public final class Deltuva extends AbstractNpcAI {
 	}
 	
 	@Override
-	public final String onAdvEvent(String event, L2Npc npc, L2PcInstance player) {
+	public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) {
 		if (event.equalsIgnoreCase("teleport")) {
 			final QuestState hostQuest = player.getQuestState(Q00132_MatrasCuriosity.class.getSimpleName());
 			if ((hostQuest == null) || !hostQuest.isCompleted()) {
diff --git a/src/main/java/com/l2jserver/datapack/hellbound/AI/NPC/Falk/Falk.java b/src/main/java/com/l2jserver/datapack/hellbound/AI/NPC/Falk/Falk.java
index 5aaf9eb4d35ef676b49ee03a9f63881e07246629..4b11529a3c2447819b2bf6e32e45f7c4083c78db 100644
--- a/src/main/java/com/l2jserver/datapack/hellbound/AI/NPC/Falk/Falk.java
+++ b/src/main/java/com/l2jserver/datapack/hellbound/AI/NPC/Falk/Falk.java
@@ -43,7 +43,7 @@ public final class Falk extends AbstractNpcAI {
 	}
 	
 	@Override
-	public final String onFirstTalk(L2Npc npc, L2PcInstance player) {
+	public String onFirstTalk(L2Npc npc, L2PcInstance player) {
 		if (hasAtLeastOneQuestItem(player, BASIC_CERT, STANDART_CERT, PREMIUM_CERT)) {
 			return "32297-01a.htm";
 		}
@@ -51,7 +51,7 @@ public final class Falk extends AbstractNpcAI {
 	}
 	
 	@Override
-	public final String onTalk(L2Npc npc, L2PcInstance player) {
+	public String onTalk(L2Npc npc, L2PcInstance player) {
 		if (hasAtLeastOneQuestItem(player, BASIC_CERT, STANDART_CERT, PREMIUM_CERT)) {
 			return "32297-01a.htm";
 		}
@@ -59,7 +59,7 @@ public final class Falk extends AbstractNpcAI {
 	}
 	
 	@Override
-	public final String onAdvEvent(String event, L2Npc npc, L2PcInstance player) {
+	public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) {
 		if (event.equalsIgnoreCase("badges")) {
 			if (!hasAtLeastOneQuestItem(player, BASIC_CERT, STANDART_CERT, PREMIUM_CERT)) {
 				if (getQuestItemsCount(player, DARION_BADGE) >= 20) {
diff --git a/src/main/java/com/l2jserver/datapack/hellbound/AI/NPC/Hude/Hude.java b/src/main/java/com/l2jserver/datapack/hellbound/AI/NPC/Hude/Hude.java
index 728adc061195c661b4f604c77b78ebc5135368fd..d7d9070f85bb5f4ba6842ff84a2a4d410bdf5803 100644
--- a/src/main/java/com/l2jserver/datapack/hellbound/AI/NPC/Hude/Hude.java
+++ b/src/main/java/com/l2jserver/datapack/hellbound/AI/NPC/Hude/Hude.java
@@ -49,7 +49,7 @@ public final class Hude extends AbstractNpcAI {
 	}
 	
 	@Override
-	public final String onAdvEvent(String event, L2Npc npc, L2PcInstance player) {
+	public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) {
 		switch (event) {
 			case "scertif": {
 				if (HellboundEngine.getInstance().getLevel() > 3) {
@@ -93,7 +93,7 @@ public final class Hude extends AbstractNpcAI {
 	}
 	
 	@Override
-	public final String onFirstTalk(L2Npc npc, L2PcInstance player) {
+	public String onFirstTalk(L2Npc npc, L2PcInstance player) {
 		String htmltext = null;
 		if (!hasAtLeastOneQuestItem(player, BASIC_CERT, STANDART_CERT, PREMIUM_CERT)) {
 			htmltext = "32298-01.htm";
diff --git a/src/main/java/com/l2jserver/datapack/hellbound/AI/NPC/Jude/Jude.java b/src/main/java/com/l2jserver/datapack/hellbound/AI/NPC/Jude/Jude.java
index cedd44ab60f545040dba694c61581a6b1c75c8e4..4a52455a3fd40df9cb702c8c1218b677b2424bcb 100644
--- a/src/main/java/com/l2jserver/datapack/hellbound/AI/NPC/Jude/Jude.java
+++ b/src/main/java/com/l2jserver/datapack/hellbound/AI/NPC/Jude/Jude.java
@@ -41,7 +41,7 @@ public final class Jude extends AbstractNpcAI {
 	}
 	
 	@Override
-	public final String onAdvEvent(String event, L2Npc npc, L2PcInstance player) {
+	public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) {
 		if ("TreasureSacks".equalsIgnoreCase(event)) {
 			if (HellboundEngine.getInstance().getLevel() == 3) {
 				if (getQuestItemsCount(player, NATIVE_TREASURE) >= 40) {
@@ -56,7 +56,7 @@ public final class Jude extends AbstractNpcAI {
 	}
 	
 	@Override
-	public final String onFirstTalk(L2Npc npc, L2PcInstance player) {
+	public String onFirstTalk(L2Npc npc, L2PcInstance player) {
 		switch (HellboundEngine.getInstance().getLevel()) {
 			case 0:
 			case 1:
diff --git a/src/main/java/com/l2jserver/datapack/hellbound/AI/NPC/Kanaf/Kanaf.java b/src/main/java/com/l2jserver/datapack/hellbound/AI/NPC/Kanaf/Kanaf.java
index 9f7799e40f39245c4b4101fcbbbdf86b4f2e617f..390aec6a1202229987e7f8062e685a1ff0a33583 100644
--- a/src/main/java/com/l2jserver/datapack/hellbound/AI/NPC/Kanaf/Kanaf.java
+++ b/src/main/java/com/l2jserver/datapack/hellbound/AI/NPC/Kanaf/Kanaf.java
@@ -38,7 +38,7 @@ public final class Kanaf extends AbstractNpcAI {
 	}
 	
 	@Override
-	public final String onAdvEvent(String event, L2Npc npc, L2PcInstance player) {
+	public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) {
 		if (event.equals("info")) {
 			return "32346-0" + getRandom(1, 3) + ".htm";
 		}
diff --git a/src/main/java/com/l2jserver/datapack/hellbound/AI/NPC/Kief/Kief.java b/src/main/java/com/l2jserver/datapack/hellbound/AI/NPC/Kief/Kief.java
index b98d1b933f9e8c78f8a473f8e0775a6525639677..d66eeca37ecf5aae126c9c10a249fa784ed552ea 100644
--- a/src/main/java/com/l2jserver/datapack/hellbound/AI/NPC/Kief/Kief.java
+++ b/src/main/java/com/l2jserver/datapack/hellbound/AI/NPC/Kief/Kief.java
@@ -46,7 +46,7 @@ public final class Kief extends AbstractNpcAI {
 	}
 	
 	@Override
-	public final String onAdvEvent(String event, L2Npc npc, L2PcInstance player) {
+	public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) {
 		String htmltext = null;
 		switch (event) {
 			case "Badges": {
@@ -120,7 +120,7 @@ public final class Kief extends AbstractNpcAI {
 	}
 	
 	@Override
-	public final String onFirstTalk(L2Npc npc, L2PcInstance player) {
+	public String onFirstTalk(L2Npc npc, L2PcInstance player) {
 		switch (HellboundEngine.getInstance().getLevel()) {
 			case 1:
 				return "32354-01.htm";
diff --git a/src/main/java/com/l2jserver/datapack/hellbound/AI/NPC/Natives/Natives.java b/src/main/java/com/l2jserver/datapack/hellbound/AI/NPC/Natives/Natives.java
index eacdc26ea9b9d195e157d6268afa92189e646486..c802a6451fa39614aa4c28784e85604f24d4ce73 100644
--- a/src/main/java/com/l2jserver/datapack/hellbound/AI/NPC/Natives/Natives.java
+++ b/src/main/java/com/l2jserver/datapack/hellbound/AI/NPC/Natives/Natives.java
@@ -59,7 +59,7 @@ public final class Natives extends AbstractNpcAI {
 	}
 	
 	@Override
-	public final String onFirstTalk(L2Npc npc, L2PcInstance player) {
+	public String onFirstTalk(L2Npc npc, L2PcInstance player) {
 		String htmltext = null;
 		final int hellboundLevel = HellboundEngine.getInstance().getLevel();
 		switch (npc.getId()) {
@@ -86,7 +86,7 @@ public final class Natives extends AbstractNpcAI {
 	}
 	
 	@Override
-	public final String onAdvEvent(String event, L2Npc npc, L2PcInstance player) {
+	public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) {
 		String htmltext = null;
 		if (npc.getId() == TRAITOR) {
 			if (event.equalsIgnoreCase("open_door")) {
@@ -141,7 +141,7 @@ public final class Natives extends AbstractNpcAI {
 	}
 	
 	@Override
-	public final String onSpawn(L2Npc npc) {
+	public String onSpawn(L2Npc npc) {
 		if ((npc.getId() == NATIVE) && (HellboundEngine.getInstance().getLevel() < 6)) {
 			startQuestTimer("hungry_death", 600000, npc, null);
 		}
diff --git a/src/main/java/com/l2jserver/datapack/hellbound/AI/NPC/Quarry/Quarry.java b/src/main/java/com/l2jserver/datapack/hellbound/AI/NPC/Quarry/Quarry.java
index a640c2f78c2966d5dab991643a454b57edb4dfcb..f2dae9e0b6a9b729853fe34ee0298203a333844a 100644
--- a/src/main/java/com/l2jserver/datapack/hellbound/AI/NPC/Quarry/Quarry.java
+++ b/src/main/java/com/l2jserver/datapack/hellbound/AI/NPC/Quarry/Quarry.java
@@ -66,7 +66,7 @@ public final class Quarry extends AbstractNpcAI {
 	}
 	
 	@Override
-	public final String onAdvEvent(String event, L2Npc npc, L2PcInstance player) {
+	public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) {
 		String htmltext = null;
 		switch (event) {
 			case "FollowMe": {
@@ -119,7 +119,7 @@ public final class Quarry extends AbstractNpcAI {
 	}
 	
 	@Override
-	public final String onSpawn(L2Npc npc) {
+	public String onSpawn(L2Npc npc) {
 		npc.setAutoAttackable(false);
 		if (npc instanceof L2QuestGuardInstance) {
 			((L2QuestGuardInstance) npc).setPassive(true);
@@ -128,7 +128,7 @@ public final class Quarry extends AbstractNpcAI {
 	}
 	
 	@Override
-	public final String onFirstTalk(L2Npc npc, L2PcInstance player) {
+	public String onFirstTalk(L2Npc npc, L2PcInstance player) {
 		if (HellboundEngine.getInstance().getLevel() != 5) {
 			return "32299.htm";
 		}
@@ -136,13 +136,13 @@ public final class Quarry extends AbstractNpcAI {
 	}
 	
 	@Override
-	public final String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon) {
+	public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon) {
 		npc.setAutoAttackable(false);
 		return super.onKill(npc, killer, isSummon);
 	}
 	
 	@Override
-	public final String onEnterZone(L2Character character, L2ZoneType zone) {
+	public String onEnterZone(L2Character character, L2ZoneType zone) {
 		if (character.isAttackable()) {
 			final L2Attackable npc = (L2Attackable) character;
 			if (npc.getId() == SLAVE) {
diff --git a/src/main/java/com/l2jserver/datapack/hellbound/AI/NPC/Shadai/Shadai.java b/src/main/java/com/l2jserver/datapack/hellbound/AI/NPC/Shadai/Shadai.java
index d2b6ea5125fbcadb3799e5bc21815242d9a83b4c..ea51aedd9e427d5df80def83e4d1b71c5bfbd466 100644
--- a/src/main/java/com/l2jserver/datapack/hellbound/AI/NPC/Shadai/Shadai.java
+++ b/src/main/java/com/l2jserver/datapack/hellbound/AI/NPC/Shadai/Shadai.java
@@ -41,7 +41,7 @@ public final class Shadai extends AbstractNpcAI {
 	}
 	
 	@Override
-	public final String onAdvEvent(String event, L2Npc npc, L2PcInstance player) {
+	public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) {
 		if (event.equals("VALIDATE_POS") && (npc != null)) {
 			Location coords = DAY_COORDS;
 			boolean mustRevalidate = false;
@@ -61,7 +61,7 @@ public final class Shadai extends AbstractNpcAI {
 	}
 	
 	@Override
-	public final String onSpawn(L2Npc npc) {
+	public String onSpawn(L2Npc npc) {
 		startQuestTimer("VALIDATE_POS", 60000, npc, null, true);
 		return super.onSpawn(npc);
 	}
diff --git a/src/main/java/com/l2jserver/datapack/hellbound/AI/NPC/Solomon/Solomon.java b/src/main/java/com/l2jserver/datapack/hellbound/AI/NPC/Solomon/Solomon.java
index acbdefdf3017390fe1af012f4bcff264511fd606..e31cf57ebbe90017c46f71b9dc91741b12389ded 100644
--- a/src/main/java/com/l2jserver/datapack/hellbound/AI/NPC/Solomon/Solomon.java
+++ b/src/main/java/com/l2jserver/datapack/hellbound/AI/NPC/Solomon/Solomon.java
@@ -37,7 +37,7 @@ public final class Solomon extends AbstractNpcAI {
 	}
 	
 	@Override
-	public final String onFirstTalk(L2Npc npc, L2PcInstance player) {
+	public String onFirstTalk(L2Npc npc, L2PcInstance player) {
 		if (HellboundEngine.getInstance().getLevel() == 5) {
 			return "32355-01.htm";
 		} else if (HellboundEngine.getInstance().getLevel() > 5) {
diff --git a/src/main/java/com/l2jserver/datapack/hellbound/AI/NPC/Warpgate/Warpgate.java b/src/main/java/com/l2jserver/datapack/hellbound/AI/NPC/Warpgate/Warpgate.java
index 62551bb81481b3b1ebcc0bda4430ea0b48c41d63..4e6be9edf882a70bf4b43108fd3d6b7c298c810a 100644
--- a/src/main/java/com/l2jserver/datapack/hellbound/AI/NPC/Warpgate/Warpgate.java
+++ b/src/main/java/com/l2jserver/datapack/hellbound/AI/NPC/Warpgate/Warpgate.java
@@ -62,7 +62,7 @@ public final class Warpgate extends AbstractNpcAI {
 	}
 	
 	@Override
-	public final String onAdvEvent(String event, L2Npc npc, L2PcInstance player) {
+	public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) {
 		if (event.equals("enter")) {
 			if (canEnter(player)) {
 				player.teleToLocation(ENTER_LOC, true);
@@ -81,7 +81,7 @@ public final class Warpgate extends AbstractNpcAI {
 	}
 	
 	@Override
-	public final String onEnterZone(L2Character character, L2ZoneType zone) {
+	public String onEnterZone(L2Character character, L2ZoneType zone) {
 		if (character.isPlayer()) {
 			final L2PcInstance player = character.getActingPlayer();
 			
diff --git a/src/main/java/com/l2jserver/datapack/hellbound/AI/OutpostCaptain.java b/src/main/java/com/l2jserver/datapack/hellbound/AI/OutpostCaptain.java
index 987e9d0833b4c7695381e94f762a8839acb160ae..dc228d29e38fe89d80cdbc40238a5db151dc4bb8 100644
--- a/src/main/java/com/l2jserver/datapack/hellbound/AI/OutpostCaptain.java
+++ b/src/main/java/com/l2jserver/datapack/hellbound/AI/OutpostCaptain.java
@@ -55,7 +55,7 @@ public final class OutpostCaptain extends AbstractNpcAI {
 	}
 	
 	@Override
-	public final String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon) {
+	public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon) {
 		if (HellboundEngine.getInstance().getLevel() == 8) {
 			addSpawn(DOORKEEPER, npc.getSpawn().getLocation(), false, 0, false);
 		}
@@ -63,7 +63,7 @@ public final class OutpostCaptain extends AbstractNpcAI {
 	}
 	
 	@Override
-	public final String onSpawn(L2Npc npc) {
+	public String onSpawn(L2Npc npc) {
 		npc.setIsNoRndWalk(true);
 		
 		if (npc.getId() == CAPTAIN) {
diff --git a/src/main/java/com/l2jserver/datapack/hellbound/AI/Ranku.java b/src/main/java/com/l2jserver/datapack/hellbound/AI/Ranku.java
index d122e8ae69f6a456c299c1281fda4239ae8715a7..948224d206e4c2635fc0dd1d9ee8011a5245c4af 100644
--- a/src/main/java/com/l2jserver/datapack/hellbound/AI/Ranku.java
+++ b/src/main/java/com/l2jserver/datapack/hellbound/AI/Ranku.java
@@ -49,7 +49,7 @@ public final class Ranku extends AbstractNpcAI {
 	}
 	
 	@Override
-	public final String onAdvEvent(String event, L2Npc npc, L2PcInstance player) {
+	public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) {
 		if (event.equalsIgnoreCase("checkup") && (npc.getId() == RANKU) && !npc.isDead()) {
 			for (L2MonsterInstance minion : ((L2MonsterInstance) npc).getMinionList().getSpawnedMinions()) {
 				if ((minion != null) && !minion.isDead() && MY_TRACKING_SET.contains(minion.getObjectId())) {
diff --git a/src/main/java/com/l2jserver/datapack/hellbound/AI/Slaves.java b/src/main/java/com/l2jserver/datapack/hellbound/AI/Slaves.java
index f10d0c9c1c91c699a8ebcfa28936977b62d3a9cc..b6c33aec1c0f94be9eb6819d0ee319d2deee7fbd 100644
--- a/src/main/java/com/l2jserver/datapack/hellbound/AI/Slaves.java
+++ b/src/main/java/com/l2jserver/datapack/hellbound/AI/Slaves.java
@@ -53,14 +53,14 @@ public final class Slaves extends AbstractNpcAI {
 	}
 	
 	@Override
-	public final String onSpawn(L2Npc npc) {
+	public String onSpawn(L2Npc npc) {
 		((L2MonsterInstance) npc).enableMinions(HellboundEngine.getInstance().getLevel() < 5);
 		((L2MonsterInstance) npc).setOnKillDelay(1000);
 		return super.onSpawn(npc);
 	}
 	
 	@Override
-	public final String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon) {
+	public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon) {
 		if (((L2MonsterInstance) npc).getMinionList() != null) {
 			final List<L2MonsterInstance> slaves = ((L2MonsterInstance) npc).getMinionList().getSpawnedMinions();
 			if ((slaves != null) && !slaves.isEmpty()) {
diff --git a/src/main/java/com/l2jserver/datapack/hellbound/AI/Typhoon.java b/src/main/java/com/l2jserver/datapack/hellbound/AI/Typhoon.java
index dfebdb3c091bf0410fd3f54d0042cbb7b61ddfa1..a3f1fbebcd9c4512c26d4676122f33b7280f62be 100644
--- a/src/main/java/com/l2jserver/datapack/hellbound/AI/Typhoon.java
+++ b/src/main/java/com/l2jserver/datapack/hellbound/AI/Typhoon.java
@@ -47,7 +47,7 @@ public final class Typhoon extends AbstractNpcAI {
 	}
 	
 	@Override
-	public final String onAdvEvent(String event, L2Npc npc, L2PcInstance player) {
+	public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) {
 		if (event.equalsIgnoreCase("CAST") && (npc != null) && !npc.isDead()) {
 			npc.doSimultaneousCast(STORM);
 			startQuestTimer("CAST", 5000, npc, null);
@@ -62,7 +62,7 @@ public final class Typhoon extends AbstractNpcAI {
 	}
 	
 	@Override
-	public final String onSpawn(L2Npc npc) {
+	public String onSpawn(L2Npc npc) {
 		startQuestTimer("CAST", 5000, npc, null);
 		return super.onSpawn(npc);
 	}
diff --git a/src/main/java/com/l2jserver/datapack/hellbound/AI/Zones/AnomicFoundry/AnomicFoundry.java b/src/main/java/com/l2jserver/datapack/hellbound/AI/Zones/AnomicFoundry/AnomicFoundry.java
index b07525cb2f4279d5a2dbe8b7a736ddf3b6970cf5..affd7559d1532e94c20fcabb74e4f66d7eda0b74 100644
--- a/src/main/java/com/l2jserver/datapack/hellbound/AI/Zones/AnomicFoundry/AnomicFoundry.java
+++ b/src/main/java/com/l2jserver/datapack/hellbound/AI/Zones/AnomicFoundry/AnomicFoundry.java
@@ -82,7 +82,7 @@ public final class AnomicFoundry extends AbstractNpcAI {
 	}
 	
 	@Override
-	public final String onAdvEvent(String event, L2Npc npc, L2PcInstance player) {
+	public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) {
 		if (event.equalsIgnoreCase("make_spawn_1")) {
 			if (HellboundEngine.getInstance().getLevel() >= 10) {
 				int idx = getRandom(3);
@@ -166,7 +166,7 @@ public final class AnomicFoundry extends AbstractNpcAI {
 	}
 	
 	@Override
-	public final String onSpawn(L2Npc npc) {
+	public String onSpawn(L2Npc npc) {
 		SpawnTable.getInstance().addNewSpawn(npc.getSpawn(), false);
 		if (getSpawnGroup(npc) >= 0) {
 			_spawned[getSpawnGroup(npc)]++;
diff --git a/src/main/java/com/l2jserver/datapack/hellbound/AI/Zones/BaseTower/BaseTower.java b/src/main/java/com/l2jserver/datapack/hellbound/AI/Zones/BaseTower/BaseTower.java
index c9dc84cfabe10dc899447296776f09d54803561c..ae44c2aa541b51419e5d71ffba677c07a56d273d 100644
--- a/src/main/java/com/l2jserver/datapack/hellbound/AI/Zones/BaseTower/BaseTower.java
+++ b/src/main/java/com/l2jserver/datapack/hellbound/AI/Zones/BaseTower/BaseTower.java
@@ -51,7 +51,7 @@ public final class BaseTower extends AbstractNpcAI {
 	}
 	
 	@Override
-	public final String onFirstTalk(L2Npc npc, L2PcInstance player) {
+	public String onFirstTalk(L2Npc npc, L2PcInstance player) {
 		final ClassId classId = player.getClassId();
 		if (classId.equalsOrChildOf(ClassId.hellKnight) || classId.equalsOrChildOf(ClassId.soultaker)) {
 			return "32301-02.htm";
diff --git a/src/main/java/com/l2jserver/datapack/hellbound/AI/Zones/TowerOfInfinitum/TowerOfInfinitum.java b/src/main/java/com/l2jserver/datapack/hellbound/AI/Zones/TowerOfInfinitum/TowerOfInfinitum.java
index e43c6eb216da50a902445dade85abc6c63437c7d..c7c3915e94af4dd62bcb4f080a248f7665877b4d 100644
--- a/src/main/java/com/l2jserver/datapack/hellbound/AI/Zones/TowerOfInfinitum/TowerOfInfinitum.java
+++ b/src/main/java/com/l2jserver/datapack/hellbound/AI/Zones/TowerOfInfinitum/TowerOfInfinitum.java
@@ -91,7 +91,7 @@ public final class TowerOfInfinitum extends AbstractNpcAI {
 	private static final Location ENTER_LOCATION = new Location(-22204, 277056, -15023);
 	
 	@Override
-	public final String onAdvEvent(String event, L2Npc npc, L2PcInstance player) {
+	public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) {
 		String htmltext = event;
 		final int npcId = npc.getId();
 		
diff --git a/src/main/java/com/l2jserver/datapack/hellbound/AI/Zones/TowerOfNaia/TowerOfNaia.java b/src/main/java/com/l2jserver/datapack/hellbound/AI/Zones/TowerOfNaia/TowerOfNaia.java
index 22559abf96516f270b78874b11e44037a86f4052..15d329dfb1a7ac66eaf8cbfda5b6b3d69498c204 100644
--- a/src/main/java/com/l2jserver/datapack/hellbound/AI/Zones/TowerOfNaia/TowerOfNaia.java
+++ b/src/main/java/com/l2jserver/datapack/hellbound/AI/Zones/TowerOfNaia/TowerOfNaia.java
@@ -360,7 +360,7 @@ public final class TowerOfNaia extends AbstractNpcAI {
 	}
 	
 	@Override
-	public final String onFirstTalk(L2Npc npc, L2PcInstance player) {
+	public String onFirstTalk(L2Npc npc, L2PcInstance player) {
 		final int npcId = npc.getId();
 		
 		if (npcId == CONTROLLER) {
@@ -383,7 +383,7 @@ public final class TowerOfNaia extends AbstractNpcAI {
 	}
 	
 	@Override
-	public final String onAdvEvent(String event, L2Npc npc, L2PcInstance player) {
+	public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) {
 		String htmltext = event;
 		
 		// Timer. Spawns Naia Lock
@@ -629,7 +629,7 @@ public final class TowerOfNaia extends AbstractNpcAI {
 	}
 	
 	@Override
-	public final String onSpawn(L2Npc npc) {
+	public String onSpawn(L2Npc npc) {
 		final int npcId = npc.getId();
 		
 		if (npcId == MUTATED_ELPY) {
diff --git a/src/main/java/com/l2jserver/datapack/hellbound/AI/Zones/TullyWorkshop/TullyWorkshop.java b/src/main/java/com/l2jserver/datapack/hellbound/AI/Zones/TullyWorkshop/TullyWorkshop.java
index 4a29b15899570e658a6e9566ddcc6709c1c5fb78..929f3d234f293f38cd8bccfa4825955bb0fe6a03 100644
--- a/src/main/java/com/l2jserver/datapack/hellbound/AI/Zones/TullyWorkshop/TullyWorkshop.java
+++ b/src/main/java/com/l2jserver/datapack/hellbound/AI/Zones/TullyWorkshop/TullyWorkshop.java
@@ -529,7 +529,7 @@ public final class TullyWorkshop extends AbstractNpcAI {
 	}
 	
 	@Override
-	public final String onFirstTalk(L2Npc npc, L2PcInstance player) {
+	public String onFirstTalk(L2Npc npc, L2PcInstance player) {
 		final ClassId classId = player.getClassId();
 		final int npcId = npc.getId();
 		
@@ -642,7 +642,7 @@ public final class TullyWorkshop extends AbstractNpcAI {
 	}
 	
 	@Override
-	public final String onAdvEvent(String event, L2Npc npc, L2PcInstance player) {
+	public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) {
 		String htmltext = event;
 		
 		if (event.equalsIgnoreCase("disable_zone")) {
@@ -1149,7 +1149,7 @@ public final class TullyWorkshop extends AbstractNpcAI {
 	}
 	
 	@Override
-	public final String onSpawn(L2Npc npc) {
+	public String onSpawn(L2Npc npc) {
 		if ((npc.getId() == TULLY) && npc.isInsideRadius(-12557, 273901, -9000, 1000, true, false)) {
 			for (L2Npc spawnedNpc : postMortemSpawn) {
 				if (spawnedNpc != null) {
diff --git a/src/main/java/com/l2jserver/datapack/hellbound/Instances/UrbanArea/UrbanArea.java b/src/main/java/com/l2jserver/datapack/hellbound/Instances/UrbanArea/UrbanArea.java
index 5325e8b3ad313c220e5331cb3ff75f684ebe8b8b..9d5490fcdc7d27027df3ac9d49b0708dacc61790 100644
--- a/src/main/java/com/l2jserver/datapack/hellbound/Instances/UrbanArea/UrbanArea.java
+++ b/src/main/java/com/l2jserver/datapack/hellbound/Instances/UrbanArea/UrbanArea.java
@@ -96,7 +96,7 @@ public final class UrbanArea extends AbstractInstance {
 	}
 	
 	@Override
-	public final String onFirstTalk(L2Npc npc, L2PcInstance player) {
+	public String onFirstTalk(L2Npc npc, L2PcInstance player) {
 		if (!npc.isAffectedBySkill(STONE.getSkillId())) {
 			return "32358-02.htm";
 		}
@@ -156,7 +156,7 @@ public final class UrbanArea extends AbstractInstance {
 	}
 	
 	@Override
-	public final String onAdvEvent(String event, L2Npc npc, L2PcInstance player) {
+	public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) {
 		final InstanceWorld tmpworld = InstanceManager.getInstance().getWorld(npc.getInstanceId());
 		if ((tmpworld != null) && (tmpworld instanceof UrbanAreaWorld)) {
 			UrbanAreaWorld world = (UrbanAreaWorld) tmpworld;
@@ -194,7 +194,7 @@ public final class UrbanArea extends AbstractInstance {
 	}
 	
 	@Override
-	public final String onSpawn(L2Npc npc) {
+	public String onSpawn(L2Npc npc) {
 		if (npc.getId() == DOWNTOWN_NATIVE) {
 			((L2QuestGuardInstance) npc).setPassive(true);
 			((L2QuestGuardInstance) npc).setAutoAttackable(false);
diff --git a/src/main/java/com/l2jserver/datapack/instances/DisciplesNecropolisPast/DisciplesNecropolisPast.java b/src/main/java/com/l2jserver/datapack/instances/DisciplesNecropolisPast/DisciplesNecropolisPast.java
index 4998355677f634e23750cecb61bc98d72ac072ee..7b0162d2a51fd6a0de9d862eda4cc37ee08e00c4 100644
--- a/src/main/java/com/l2jserver/datapack/instances/DisciplesNecropolisPast/DisciplesNecropolisPast.java
+++ b/src/main/java/com/l2jserver/datapack/instances/DisciplesNecropolisPast/DisciplesNecropolisPast.java
@@ -343,7 +343,7 @@ public final class DisciplesNecropolisPast extends AbstractInstance {
 	}
 	
 	@Override
-	public final String onSpawn(L2Npc npc) {
+	public String onSpawn(L2Npc npc) {
 		npc.setIsMortal(false);
 		return super.onSpawn(npc);
 	}
diff --git a/src/main/java/com/l2jserver/datapack/instances/IceQueensCastle/IceQueensCastle.java b/src/main/java/com/l2jserver/datapack/instances/IceQueensCastle/IceQueensCastle.java
index f2dd12c148de3877a48ceb455c32811dad535d51..cae3df12724836a22bbe72f71fc5bcd8178b7e97 100644
--- a/src/main/java/com/l2jserver/datapack/instances/IceQueensCastle/IceQueensCastle.java
+++ b/src/main/java/com/l2jserver/datapack/instances/IceQueensCastle/IceQueensCastle.java
@@ -140,7 +140,7 @@ public final class IceQueensCastle extends AbstractInstance {
 	}
 	
 	@Override
-	public final String onSpawn(L2Npc npc) {
+	public String onSpawn(L2Npc npc) {
 		startQuestTimer("TIMER_MOVING", 60000, npc, null);
 		startQuestTimer("TIMER_BLIZZARD", 180000, npc, null);
 		return super.onSpawn(npc);
diff --git a/src/main/java/com/l2jserver/datapack/instances/Kamaloka/Kamaloka.java b/src/main/java/com/l2jserver/datapack/instances/Kamaloka/Kamaloka.java
index 45bfaec5400348246013a1fd75d25b7670c2c524..c1f5e1963567b50f6932d90ea7afd835a26866a6 100644
--- a/src/main/java/com/l2jserver/datapack/instances/Kamaloka/Kamaloka.java
+++ b/src/main/java/com/l2jserver/datapack/instances/Kamaloka/Kamaloka.java
@@ -1201,7 +1201,7 @@ public final class Kamaloka extends AbstractInstance {
 	 * @param index (0-18) index of the kamaloka in arrays
 	 * @return true if party allowed to enter
 	 */
-	private static final boolean checkPartyConditions(L2PcInstance player, int index) {
+	private static boolean checkPartyConditions(L2PcInstance player, int index) {
 		final L2Party party = player.getParty();
 		// player must be in party
 		if (party == null) {
@@ -1267,7 +1267,7 @@ public final class Kamaloka extends AbstractInstance {
 	 * Removing all buffs from player and pet except BUFFS_WHITELIST
 	 * @param ch player
 	 */
-	private static final void removeBuffs(L2Character ch) {
+	private static void removeBuffs(L2Character ch) {
 		final Function<BuffInfo, Boolean> removeBuffs = info -> {
 			if ((info != null) && !info.getSkill().isStayAfterDeath() && (Arrays.binarySearch(BUFFS_WHITELIST, info.getSkill().getId()) < 0)) {
 				info.getEffected().getEffectList().stopSkillEffects(true, info.getSkill());
@@ -1288,7 +1288,7 @@ public final class Kamaloka extends AbstractInstance {
 	 * @param player party leader
 	 * @param index (0-18) kamaloka index in arrays
 	 */
-	private final synchronized void enterInstance(L2PcInstance player, int index) {
+	private synchronized void enterInstance(L2PcInstance player, int index) {
 		int templateId;
 		try {
 			templateId = TEMPLATE_IDS[index];
@@ -1364,7 +1364,7 @@ public final class Kamaloka extends AbstractInstance {
 	 * @param world instanceWorld
 	 */
 	@Override
-	protected final void finishInstance(InstanceWorld world) {
+	protected void finishInstance(InstanceWorld world) {
 		if (world instanceof KamaWorld) {
 			Calendar reenter = Calendar.getInstance();
 			reenter.set(Calendar.MINUTE, RESET_MIN);
@@ -1398,7 +1398,7 @@ public final class Kamaloka extends AbstractInstance {
 	 * @param world instanceWorld
 	 */
 	@SuppressWarnings("all")
-	private final void spawnKama(KamaWorld world) {
+	private void spawnKama(KamaWorld world) {
 		int[] npcs;
 		int[][] spawns;
 		L2Npc npc;
@@ -1408,7 +1408,7 @@ public final class Kamaloka extends AbstractInstance {
 		npcs = FIRST_ROOM[index];
 		spawns = FIRST_ROOM_SPAWNS[index];
 		if (npcs != null) {
-			world.firstRoom = new ArrayList<L2Spawn>(spawns.length - 1);
+			world.firstRoom = new ArrayList<>(spawns.length - 1);
 			int shaman = getRandom(spawns.length); // random position for shaman
 			
 			for (int i = 0; i < spawns.length; i++) {
@@ -1432,7 +1432,7 @@ public final class Kamaloka extends AbstractInstance {
 		npcs = SECOND_ROOM[index];
 		spawns = SECOND_ROOM_SPAWNS[index];
 		if (npcs != null) {
-			world.secondRoom = new ArrayList<Integer>(spawns.length);
+			world.secondRoom = new ArrayList<>(spawns.length);
 			
 			for (int[] spawn : spawns) {
 				npc = addSpawn(npcs[0], spawn[0], spawn[1], spawn[2], 0, false, 0, false, world.getInstanceId());
@@ -1463,7 +1463,7 @@ public final class Kamaloka extends AbstractInstance {
 	 * Handles only player's enter, single parameter - integer kamaloka index
 	 */
 	@Override
-	public final String onAdvEvent(String event, L2Npc npc, L2PcInstance player) {
+	public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) {
 		if (npc == null) {
 			return "";
 		}
@@ -1480,7 +1480,7 @@ public final class Kamaloka extends AbstractInstance {
 	 * Talk with captains and using of the escape teleporter
 	 */
 	@Override
-	public final String onTalk(L2Npc npc, L2PcInstance player) {
+	public String onTalk(L2Npc npc, L2PcInstance player) {
 		final int npcId = npc.getId();
 		
 		if (npcId == TELEPORTER) {
@@ -1513,7 +1513,7 @@ public final class Kamaloka extends AbstractInstance {
 	 * Only escape teleporters first talk handled
 	 */
 	@Override
-	public final String onFirstTalk(L2Npc npc, L2PcInstance player) {
+	public String onFirstTalk(L2Npc npc, L2PcInstance player) {
 		if (npc.getId() == TELEPORTER) {
 			if (player.isInParty() && player.getParty().isLeader(player)) {
 				return "32496.htm";
@@ -1524,7 +1524,7 @@ public final class Kamaloka extends AbstractInstance {
 	}
 	
 	@Override
-	public final String onKill(L2Npc npc, L2PcInstance player, boolean isSummon) {
+	public String onKill(L2Npc npc, L2PcInstance player, boolean isSummon) {
 		final InstanceWorld tmpWorld = InstanceManager.getInstance().getWorld(npc.getInstanceId());
 		if (tmpWorld instanceof KamaWorld) {
 			final KamaWorld world = (KamaWorld) tmpWorld;
diff --git a/src/main/java/com/l2jserver/datapack/instances/NornilsGarden/NornilsGarden.java b/src/main/java/com/l2jserver/datapack/instances/NornilsGarden/NornilsGarden.java
index a5073a6f2dd20ac450321ff8cd636708bef2a9a3..1d7f555da4d1166fef988c76858aa827b872b2cb 100644
--- a/src/main/java/com/l2jserver/datapack/instances/NornilsGarden/NornilsGarden.java
+++ b/src/main/java/com/l2jserver/datapack/instances/NornilsGarden/NornilsGarden.java
@@ -162,7 +162,7 @@ public final class NornilsGarden extends AbstractInstance {
 	};
 	// @formatter:on
 	
-	private static final void dropHerb(L2Npc mob, L2PcInstance player, int[][] drop) {
+	private static void dropHerb(L2Npc mob, L2PcInstance player, int[][] drop) {
 		final int chance = getRandom(100);
 		for (int[] element : drop) {
 			if (chance < element[2]) {
@@ -171,7 +171,7 @@ public final class NornilsGarden extends AbstractInstance {
 		}
 	}
 	
-	private static final void giveBuffs(L2Character ch) {
+	private static void giveBuffs(L2Character ch) {
 		if (ADVENTURERS_WIND_WALK.getSkill() != null) {
 			ADVENTURERS_WIND_WALK.getSkill().applyEffects(ch, ch);
 		}
@@ -203,7 +203,7 @@ public final class NornilsGarden extends AbstractInstance {
 	}
 	
 	@Override
-	public final void teleportPlayer(L2PcInstance player, Location loc, int instanceId) {
+	public void teleportPlayer(L2PcInstance player, Location loc, int instanceId) {
 		giveBuffs(player);
 		if (player.hasSummon()) {
 			giveBuffs(player.getSummon());
@@ -220,7 +220,7 @@ public final class NornilsGarden extends AbstractInstance {
 		}
 	}
 	
-	private final synchronized String enterInstance(L2Npc npc, L2PcInstance player) {
+	private synchronized String enterInstance(L2Npc npc, L2PcInstance player) {
 		InstanceWorld world = InstanceManager.getInstance().getPlayerWorld(player);
 		if (world != null) {
 			if (!(world instanceof NornilsWorld) || (world.getTemplateId() != TEMPLATE_ID)) {
@@ -348,7 +348,7 @@ public final class NornilsGarden extends AbstractInstance {
 		}
 	}
 	
-	private static final String checkConditions(L2Npc npc, L2PcInstance player) {
+	private static String checkConditions(L2Npc npc, L2PcInstance player) {
 		final L2Party party = player.getParty();
 		// player must be in party
 		if (party == null) {
@@ -429,7 +429,7 @@ public final class NornilsGarden extends AbstractInstance {
 	}
 	
 	@Override
-	public final String onAdvEvent(String event, L2Npc npc, L2PcInstance player) {
+	public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) {
 		String htmltext = event;
 		QuestState st = getQuestState(player, false);
 		if (st == null) {
@@ -471,7 +471,7 @@ public final class NornilsGarden extends AbstractInstance {
 	}
 	
 	@Override
-	public final String onTalk(L2Npc npc, L2PcInstance player) {
+	public String onTalk(L2Npc npc, L2PcInstance player) {
 		if (Util.contains(_final_gates, npc.getId())) {
 			QuestState cst = player.getQuestState(Q00179_IntoTheLargeCavern.class.getSimpleName());
 			if ((cst != null) && (cst.getState() == State.STARTED)) {
@@ -484,13 +484,13 @@ public final class NornilsGarden extends AbstractInstance {
 	}
 	
 	@Override
-	public final String onFirstTalk(L2Npc npc, L2PcInstance player) {
+	public String onFirstTalk(L2Npc npc, L2PcInstance player) {
 		getQuestState(player, true);
 		return npc.getId() + ".html";
 	}
 	
 	@Override
-	public final String onAttack(L2Npc npc, L2PcInstance attacker, int damage, boolean isSummon) {
+	public String onAttack(L2Npc npc, L2PcInstance attacker, int damage, boolean isSummon) {
 		if ((npc.getId() == _herb_jar) && !npc.isDead()) {
 			dropHerb(npc, attacker, HP_HERBS_DROPLIST);
 			dropHerb(npc, attacker, MP_HERBS_DROPLIST);
@@ -502,7 +502,7 @@ public final class NornilsGarden extends AbstractInstance {
 	}
 	
 	@Override
-	public final String onKill(L2Npc npc, L2PcInstance player, boolean isSummon) {
+	public String onKill(L2Npc npc, L2PcInstance player, boolean isSummon) {
 		final QuestState st = getQuestState(player, false);
 		if (st == null) {
 			return null;
diff --git a/src/main/java/com/l2jserver/datapack/instances/PailakaDevilsLegacy/PailakaDevilsLegacy.java b/src/main/java/com/l2jserver/datapack/instances/PailakaDevilsLegacy/PailakaDevilsLegacy.java
index ea4e67892686c7f1b55e1c9a6b6d2993b7e84a74..a9b31b993fa35115531c3033112d92bd6f409521 100644
--- a/src/main/java/com/l2jserver/datapack/instances/PailakaDevilsLegacy/PailakaDevilsLegacy.java
+++ b/src/main/java/com/l2jserver/datapack/instances/PailakaDevilsLegacy/PailakaDevilsLegacy.java
@@ -94,7 +94,7 @@ public final class PailakaDevilsLegacy extends AbstractInstance {
 	}
 	
 	@Override
-	public final String onAdvEvent(String event, L2Npc npc, L2PcInstance player) {
+	public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) {
 		final InstanceWorld tmpworld = InstanceManager.getInstance().getWorld(npc.getInstanceId());
 		String htmltext = null;
 		
@@ -150,7 +150,7 @@ public final class PailakaDevilsLegacy extends AbstractInstance {
 	}
 	
 	@Override
-	public final String onAttack(L2Npc npc, L2PcInstance attacker, int damage, boolean isSummon) {
+	public String onAttack(L2Npc npc, L2PcInstance attacker, int damage, boolean isSummon) {
 		final InstanceWorld tmpworld = InstanceManager.getInstance().getWorld(npc.getInstanceId());
 		
 		if ((tmpworld != null) && (tmpworld instanceof DIWorld)) {
@@ -220,7 +220,7 @@ public final class PailakaDevilsLegacy extends AbstractInstance {
 	}
 	
 	@Override
-	public final String onKill(L2Npc npc, L2PcInstance player, boolean isSummon) {
+	public String onKill(L2Npc npc, L2PcInstance player, boolean isSummon) {
 		final InstanceWorld tmpworld = InstanceManager.getInstance().getWorld(npc.getInstanceId());
 		
 		if ((tmpworld != null) && (tmpworld instanceof DIWorld)) {
diff --git a/src/main/java/com/l2jserver/datapack/instances/PailakaSongOfIceAndFire/PailakaSongOfIceAndFire.java b/src/main/java/com/l2jserver/datapack/instances/PailakaSongOfIceAndFire/PailakaSongOfIceAndFire.java
index f35251dfe72b35a3569f6369c1e6ef299c88d12d..df272b91a1d0e035d72ddcfad5cd0d80268f8d16 100644
--- a/src/main/java/com/l2jserver/datapack/instances/PailakaSongOfIceAndFire/PailakaSongOfIceAndFire.java
+++ b/src/main/java/com/l2jserver/datapack/instances/PailakaSongOfIceAndFire/PailakaSongOfIceAndFire.java
@@ -75,7 +75,7 @@ public final class PailakaSongOfIceAndFire extends AbstractInstance {
 	}
 	
 	@Override
-	public final String onAdvEvent(String event, L2Npc npc, L2PcInstance player) {
+	public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) {
 		switch (event) {
 			case "enter": {
 				enterInstance(player, new PSoIWorld(), "PailakaSongOfIceAndFire.xml", TEMPLATE_ID);
@@ -109,7 +109,7 @@ public final class PailakaSongOfIceAndFire extends AbstractInstance {
 	}
 	
 	@Override
-	public final String onAttack(L2Npc npc, L2PcInstance player, int damage, boolean isSummon) {
+	public String onAttack(L2Npc npc, L2PcInstance player, int damage, boolean isSummon) {
 		if ((damage > 0) && npc.isScriptValue(0)) {
 			switch (getRandom(6)) {
 				case 0: {
@@ -142,7 +142,7 @@ public final class PailakaSongOfIceAndFire extends AbstractInstance {
 	}
 	
 	@Override
-	public final String onKill(L2Npc npc, L2PcInstance player, boolean isSummon) {
+	public String onKill(L2Npc npc, L2PcInstance player, boolean isSummon) {
 		npc.dropItem(player, getRandomBoolean() ? SHIELD_POTION : HEAL_POTION, getRandom(1, 7));
 		return super.onKill(npc, player, isSummon);
 	}
diff --git a/src/main/java/com/l2jserver/datapack/quests/Q00128_PailakaSongOfIceAndFire/Q00128_PailakaSongOfIceAndFire.java b/src/main/java/com/l2jserver/datapack/quests/Q00128_PailakaSongOfIceAndFire/Q00128_PailakaSongOfIceAndFire.java
index 92a9a3e9e45885690f129881f607f2b228bad6fa..da78256eaec0f9a11319e7f686f9e25f16384cec 100644
--- a/src/main/java/com/l2jserver/datapack/quests/Q00128_PailakaSongOfIceAndFire/Q00128_PailakaSongOfIceAndFire.java
+++ b/src/main/java/com/l2jserver/datapack/quests/Q00128_PailakaSongOfIceAndFire/Q00128_PailakaSongOfIceAndFire.java
@@ -81,7 +81,7 @@ public final class Q00128_PailakaSongOfIceAndFire extends Quest {
 	}
 	
 	@Override
-	public final String onAdvEvent(String event, L2Npc npc, L2PcInstance player) {
+	public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) {
 		String htmltext = null;
 		final QuestState st = getQuestState(player, false);
 		if (st == null) {
@@ -162,7 +162,7 @@ public final class Q00128_PailakaSongOfIceAndFire extends Quest {
 	}
 	
 	@Override
-	public final String onTalk(L2Npc npc, L2PcInstance player) {
+	public String onTalk(L2Npc npc, L2PcInstance player) {
 		String htmltext = getNoQuestMsg(player);
 		final QuestState st = getQuestState(player, true);
 		switch (npc.getId()) {
@@ -248,7 +248,7 @@ public final class Q00128_PailakaSongOfIceAndFire extends Quest {
 	}
 	
 	@Override
-	public final String onKill(L2Npc npc, L2PcInstance player, boolean isSummon) {
+	public String onKill(L2Npc npc, L2PcInstance player, boolean isSummon) {
 		final QuestState st = getQuestState(player, false);
 		if ((st != null) && st.isStarted()) {
 			switch (npc.getId()) {
diff --git a/src/main/java/com/l2jserver/datapack/quests/Q00129_PailakaDevilsLegacy/Q00129_PailakaDevilsLegacy.java b/src/main/java/com/l2jserver/datapack/quests/Q00129_PailakaDevilsLegacy/Q00129_PailakaDevilsLegacy.java
index 4b6922443e3bdc85dcb3ead4786170fdd3631226..74e883c2f15bc0cc5c406cd0566b53ff72c4f072 100644
--- a/src/main/java/com/l2jserver/datapack/quests/Q00129_PailakaDevilsLegacy/Q00129_PailakaDevilsLegacy.java
+++ b/src/main/java/com/l2jserver/datapack/quests/Q00129_PailakaDevilsLegacy/Q00129_PailakaDevilsLegacy.java
@@ -72,7 +72,7 @@ public final class Q00129_PailakaDevilsLegacy extends Quest {
 	}
 	
 	@Override
-	public final String onAdvEvent(String event, L2Npc npc, L2PcInstance player) {
+	public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) {
 		final QuestState qs = getQuestState(player, false);
 		String htmltext = null;
 		
@@ -112,7 +112,7 @@ public final class Q00129_PailakaDevilsLegacy extends Quest {
 	}
 	
 	@Override
-	public final String onFirstTalk(L2Npc npc, L2PcInstance player) {
+	public String onFirstTalk(L2Npc npc, L2PcInstance player) {
 		final QuestState qs = getQuestState(player, false);
 		if ((npc.getId() != ADVENTURER2) || (qs == null) || !qs.isCompleted()) {
 			return npc.getId() + ".htm";
@@ -121,7 +121,7 @@ public final class Q00129_PailakaDevilsLegacy extends Quest {
 	}
 	
 	@Override
-	public final String onTalk(L2Npc npc, L2PcInstance player) {
+	public String onTalk(L2Npc npc, L2PcInstance player) {
 		String htmltext = getNoQuestMsg(player);
 		final QuestState qs = getQuestState(player, true);
 		switch (npc.getId()) {
@@ -217,7 +217,7 @@ public final class Q00129_PailakaDevilsLegacy extends Quest {
 	}
 	
 	@Override
-	public final String onKill(L2Npc npc, L2PcInstance player, boolean isSummon) {
+	public String onKill(L2Npc npc, L2PcInstance player, boolean isSummon) {
 		final QuestState qs = getQuestState(player, false);
 		
 		if ((qs != null) && qs.isStarted()) {
diff --git a/src/main/java/com/l2jserver/datapack/quests/Q00132_MatrasCuriosity/Q00132_MatrasCuriosity.java b/src/main/java/com/l2jserver/datapack/quests/Q00132_MatrasCuriosity/Q00132_MatrasCuriosity.java
index 4daec0a2ca3e05682b4b19e4c4e3cf7a14a6ff48..65147ea670ea1e9f56e2197aa356c0d4dab726b8 100644
--- a/src/main/java/com/l2jserver/datapack/quests/Q00132_MatrasCuriosity/Q00132_MatrasCuriosity.java
+++ b/src/main/java/com/l2jserver/datapack/quests/Q00132_MatrasCuriosity/Q00132_MatrasCuriosity.java
@@ -83,7 +83,7 @@ public final class Q00132_MatrasCuriosity extends Quest {
 	}
 	
 	@Override
-	public final String onKill(L2Npc npc, L2PcInstance player, boolean isSummon) {
+	public String onKill(L2Npc npc, L2PcInstance player, boolean isSummon) {
 		L2PcInstance pl = null;
 		switch (npc.getId()) {
 			case DEMON_PRINCE:
@@ -119,7 +119,7 @@ public final class Q00132_MatrasCuriosity extends Quest {
 	}
 	
 	@Override
-	public final String onTalk(L2Npc npc, L2PcInstance player) {
+	public String onTalk(L2Npc npc, L2PcInstance player) {
 		String htmltext = getNoQuestMsg(player);
 		final QuestState st = getQuestState(player, true);
 		if (st.isCreated()) {
diff --git a/src/main/java/com/l2jserver/datapack/quests/Q00175_TheWayOfTheWarrior/Q00175_TheWayOfTheWarrior.java b/src/main/java/com/l2jserver/datapack/quests/Q00175_TheWayOfTheWarrior/Q00175_TheWayOfTheWarrior.java
index 7a90f5c916fb619828f2f6f63879879cef37f926..b4182c4a06281994517eed082e1e68e703410ec0 100644
--- a/src/main/java/com/l2jserver/datapack/quests/Q00175_TheWayOfTheWarrior/Q00175_TheWayOfTheWarrior.java
+++ b/src/main/java/com/l2jserver/datapack/quests/Q00175_TheWayOfTheWarrior/Q00175_TheWayOfTheWarrior.java
@@ -246,7 +246,7 @@ public final class Q00175_TheWayOfTheWarrior extends Quest {
 		return htmltext;
 	}
 	
-	public static final void giveNewbieReward(L2PcInstance player) {
+	public static void giveNewbieReward(L2PcInstance player) {
 		final PlayerVariables vars = player.getVariables();
 		if ((player.getLevel() < 25) && !vars.getBoolean("NEWBIE_SHOTS", false)) {
 			playSound(player, Voice.TUTORIAL_VOICE_026_1000);
diff --git a/src/main/java/com/l2jserver/datapack/quests/Q00279_TargetOfOpportunity/Q00279_TargetOfOpportunity.java b/src/main/java/com/l2jserver/datapack/quests/Q00279_TargetOfOpportunity/Q00279_TargetOfOpportunity.java
index 4dc908c1527678d202649d1a581781f332689be6..9a4b5f03027bb5c793faf66cebed361b9d7ad43a 100644
--- a/src/main/java/com/l2jserver/datapack/quests/Q00279_TargetOfOpportunity/Q00279_TargetOfOpportunity.java
+++ b/src/main/java/com/l2jserver/datapack/quests/Q00279_TargetOfOpportunity/Q00279_TargetOfOpportunity.java
@@ -82,7 +82,7 @@ public final class Q00279_TargetOfOpportunity extends Quest {
 	}
 	
 	@Override
-	public final String onKill(L2Npc npc, L2PcInstance player, boolean isSummon) {
+	public String onKill(L2Npc npc, L2PcInstance player, boolean isSummon) {
 		L2PcInstance pl = getRandomPartyMember(player, "progress", "1");
 		final int idx = Arrays.binarySearch(MONSTERS, npc.getId());
 		if ((pl == null) || (idx < 0)) {
@@ -104,7 +104,7 @@ public final class Q00279_TargetOfOpportunity extends Quest {
 	}
 	
 	@Override
-	public final String onTalk(L2Npc npc, L2PcInstance player) {
+	public String onTalk(L2Npc npc, L2PcInstance player) {
 		String htmltext = getNoQuestMsg(player);
 		final QuestState st = getQuestState(player, true);
 		if (st.getState() == State.CREATED) {
@@ -115,7 +115,7 @@ public final class Q00279_TargetOfOpportunity extends Quest {
 		return htmltext;
 	}
 	
-	private static final boolean haveAllExceptThis(QuestState st, int idx) {
+	private static boolean haveAllExceptThis(QuestState st, int idx) {
 		for (int i = 0; i < SEAL_COMPONENTS.length; i++) {
 			if (i == idx) {
 				continue;
diff --git a/src/main/java/com/l2jserver/datapack/quests/Q00281_HeadForTheHills/Q00281_HeadForTheHills.java b/src/main/java/com/l2jserver/datapack/quests/Q00281_HeadForTheHills/Q00281_HeadForTheHills.java
index e31c08098599f6d4b274b37b6e62c1ef68394d20..6750a7884bc6142c5e2d7ed717fecc8fa36ec28b 100644
--- a/src/main/java/com/l2jserver/datapack/quests/Q00281_HeadForTheHills/Q00281_HeadForTheHills.java
+++ b/src/main/java/com/l2jserver/datapack/quests/Q00281_HeadForTheHills/Q00281_HeadForTheHills.java
@@ -166,7 +166,7 @@ public final class Q00281_HeadForTheHills extends Quest {
 	 * Give basic newbie reward.
 	 * @param player the player to reward
 	 */
-	public static final void giveNewbieReward(L2PcInstance player) {
+	public static void giveNewbieReward(L2PcInstance player) {
 		final PlayerVariables vars = player.getVariables();
 		if ((player.getLevel() < 25) && !vars.getBoolean("NEWBIE_SHOTS", false)) {
 			if (player.isMageClass()) {
diff --git a/src/main/java/com/l2jserver/datapack/quests/Q00306_CrystalOfFireAndIce/Q00306_CrystalOfFireAndIce.java b/src/main/java/com/l2jserver/datapack/quests/Q00306_CrystalOfFireAndIce/Q00306_CrystalOfFireAndIce.java
index 9f384d2c31c9b39406615f192bd16c4abc94f34e..abdf643833bb4c13de902b60268864750a623689 100644
--- a/src/main/java/com/l2jserver/datapack/quests/Q00306_CrystalOfFireAndIce/Q00306_CrystalOfFireAndIce.java
+++ b/src/main/java/com/l2jserver/datapack/quests/Q00306_CrystalOfFireAndIce/Q00306_CrystalOfFireAndIce.java
@@ -132,7 +132,7 @@ public final class Q00306_CrystalOfFireAndIce extends Quest {
 		return htmltext;
 	}
 	
-	private static final void giveKillReward(L2PcInstance player, L2Npc npc) {
+	private static void giveKillReward(L2PcInstance player, L2Npc npc) {
 		if (Util.checkIfInRange(1500, npc, player, false)) {
 			final ItemHolder item = MONSTER_DROPS.get(npc.getId());
 			giveItemRandomly(player, npc, item.getId(), 1, 0, 1000.0 / item.getCount(), true);
diff --git a/src/main/java/com/l2jserver/datapack/quests/Q00350_EnhanceYourWeapon/Q00350_EnhanceYourWeapon.java b/src/main/java/com/l2jserver/datapack/quests/Q00350_EnhanceYourWeapon/Q00350_EnhanceYourWeapon.java
index 890655391813197ae50ed830366ebe82bec0f4e0..517149fe54266b98351fa91c8aa64510bd8c3cf4 100644
--- a/src/main/java/com/l2jserver/datapack/quests/Q00350_EnhanceYourWeapon/Q00350_EnhanceYourWeapon.java
+++ b/src/main/java/com/l2jserver/datapack/quests/Q00350_EnhanceYourWeapon/Q00350_EnhanceYourWeapon.java
@@ -58,7 +58,7 @@ public class Q00350_EnhanceYourWeapon extends Quest {
 	
 	private static final Logger LOG = LoggerFactory.getLogger(Q00350_EnhanceYourWeapon.class);
 	
-	private static enum AbsorbCrystalType {
+	private enum AbsorbCrystalType {
 		LAST_HIT,
 		FULL_PARTY,
 		PARTY_ONE_RANDOM,
@@ -76,15 +76,15 @@ public class Q00350_EnhanceYourWeapon extends Quest {
 			_chance = chance;
 		}
 		
-		public final AbsorbCrystalType getAbsorbCrystalType() {
+		public AbsorbCrystalType getAbsorbCrystalType() {
 			return _absorbCrystalType;
 		}
 		
-		public final int getChance() {
+		public int getChance() {
 			return _chance;
 		}
 		
-		public final boolean isSkillNeeded() {
+		public boolean isSkillNeeded() {
 			return _isSkillNeeded;
 		}
 	}
@@ -100,15 +100,15 @@ public class Q00350_EnhanceYourWeapon extends Quest {
 			_leveledItemId = leveledItemId;
 		}
 		
-		public final int getItemId() {
+		public int getItemId() {
 			return _itemId;
 		}
 		
-		public final int getLevel() {
+		public int getLevel() {
 			return _level;
 		}
 		
-		public final int getLeveledItemId() {
+		public int getLeveledItemId() {
 			return _leveledItemId;
 		}
 	}
diff --git a/src/main/java/com/l2jserver/datapack/quests/Q00370_AnElderSowsSeeds/Q00370_AnElderSowsSeeds.java b/src/main/java/com/l2jserver/datapack/quests/Q00370_AnElderSowsSeeds/Q00370_AnElderSowsSeeds.java
index e172087fe2a8a26c5bbcf27b73e0c5b95dac80b1..0fd91485f17913489d2730cd2c456d3b3972f74c 100644
--- a/src/main/java/com/l2jserver/datapack/quests/Q00370_AnElderSowsSeeds/Q00370_AnElderSowsSeeds.java
+++ b/src/main/java/com/l2jserver/datapack/quests/Q00370_AnElderSowsSeeds/Q00370_AnElderSowsSeeds.java
@@ -142,7 +142,7 @@ public final class Q00370_AnElderSowsSeeds extends Quest {
 		return htmltext;
 	}
 	
-	private final boolean exchangeChapters(L2PcInstance player, boolean takeAllItems) {
+	private boolean exchangeChapters(L2PcInstance player, boolean takeAllItems) {
 		final long waterChapters = getQuestItemsCount(player, CHAPTER_OF_WATER);
 		final long earthChapters = getQuestItemsCount(player, CHAPTER_OF_EARTH);
 		final long windChapters = getQuestItemsCount(player, CHAPTER_OF_WIND);
diff --git a/src/main/java/com/l2jserver/datapack/quests/Q00504_CompetitionForTheBanditStronghold/Q00504_CompetitionForTheBanditStronghold.java b/src/main/java/com/l2jserver/datapack/quests/Q00504_CompetitionForTheBanditStronghold/Q00504_CompetitionForTheBanditStronghold.java
index d4b1a5b893fed5ccc6472294d152fb5ae00427c0..12138108de4fc091beefe361a4d31f3c9b01468b 100644
--- a/src/main/java/com/l2jserver/datapack/quests/Q00504_CompetitionForTheBanditStronghold/Q00504_CompetitionForTheBanditStronghold.java
+++ b/src/main/java/com/l2jserver/datapack/quests/Q00504_CompetitionForTheBanditStronghold/Q00504_CompetitionForTheBanditStronghold.java
@@ -76,7 +76,7 @@ public final class Q00504_CompetitionForTheBanditStronghold extends Quest {
 	}
 	
 	@Override
-	public final String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon) {
+	public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon) {
 		final QuestState st = getQuestState(killer, false);
 		if ((st == null) || !st.hasQuestItems(CONTEST_CERTIFICATE) || !st.isStarted()) {
 			return null;
@@ -94,7 +94,7 @@ public final class Q00504_CompetitionForTheBanditStronghold extends Quest {
 	}
 	
 	@Override
-	public final String onTalk(L2Npc npc, L2PcInstance player) {
+	public String onTalk(L2Npc npc, L2PcInstance player) {
 		final QuestState st = getQuestState(player, true);
 		final L2Clan clan = player.getClan();
 		String htmltext = getNoQuestMsg(player);
diff --git a/src/main/java/com/l2jserver/datapack/quests/Q00636_TruthBeyond/Q00636_TruthBeyond.java b/src/main/java/com/l2jserver/datapack/quests/Q00636_TruthBeyond/Q00636_TruthBeyond.java
index 0ca508618ec0cffd7a9b09b4525960a25aa52494..5142370f1113f5ce730f43b02025357addf863a6 100644
--- a/src/main/java/com/l2jserver/datapack/quests/Q00636_TruthBeyond/Q00636_TruthBeyond.java
+++ b/src/main/java/com/l2jserver/datapack/quests/Q00636_TruthBeyond/Q00636_TruthBeyond.java
@@ -47,7 +47,7 @@ public final class Q00636_TruthBeyond extends Quest {
 	}
 	
 	@Override
-	public final String onAdvEvent(String event, L2Npc npc, L2PcInstance player) {
+	public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) {
 		final QuestState st = getQuestState(player, false);
 		if (st == null) {
 			return null;
@@ -63,7 +63,7 @@ public final class Q00636_TruthBeyond extends Quest {
 	}
 	
 	@Override
-	public final String onEnterZone(L2Character character, L2ZoneType zone) {
+	public String onEnterZone(L2Character character, L2ZoneType zone) {
 		// QuestState already null on enter because quest is finished
 		if (character.isPlayer()) {
 			if (character.getActingPlayer().destroyItemByItemId("Mark", VISITOR_MARK, 1, character, false)) {
@@ -74,7 +74,7 @@ public final class Q00636_TruthBeyond extends Quest {
 	}
 	
 	@Override
-	public final String onTalk(L2Npc npc, L2PcInstance player) {
+	public String onTalk(L2Npc npc, L2PcInstance player) {
 		final QuestState st = getQuestState(player, true);
 		if (st == null) {
 			return getNoQuestMsg(player);
diff --git a/src/main/java/com/l2jserver/datapack/quests/Q00637_ThroughOnceMore/Q00637_ThroughOnceMore.java b/src/main/java/com/l2jserver/datapack/quests/Q00637_ThroughOnceMore/Q00637_ThroughOnceMore.java
index a9c1b54177fcae7ab104e22b912cdc95567fcd74..5a4067511486fb2dd0bcfbbf0a5b397c92ea27e7 100644
--- a/src/main/java/com/l2jserver/datapack/quests/Q00637_ThroughOnceMore/Q00637_ThroughOnceMore.java
+++ b/src/main/java/com/l2jserver/datapack/quests/Q00637_ThroughOnceMore/Q00637_ThroughOnceMore.java
@@ -55,7 +55,7 @@ public final class Q00637_ThroughOnceMore extends Quest {
 	}
 	
 	@Override
-	public final String onAdvEvent(String event, L2Npc npc, L2PcInstance player) {
+	public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) {
 		final QuestState st = getQuestState(player, false);
 		if (st == null) {
 			return null;
@@ -70,7 +70,7 @@ public final class Q00637_ThroughOnceMore extends Quest {
 	}
 	
 	@Override
-	public final String onKill(L2Npc npc, L2PcInstance player, boolean isSummon) {
+	public String onKill(L2Npc npc, L2PcInstance player, boolean isSummon) {
 		final QuestState st = getQuestState(player, false);
 		if ((st != null) && (st.getState() == State.STARTED)) {
 			final long count = st.getQuestItemsCount(NECRO_HEART);
@@ -97,7 +97,7 @@ public final class Q00637_ThroughOnceMore extends Quest {
 	}
 	
 	@Override
-	public final String onTalk(L2Npc npc, L2PcInstance player) {
+	public String onTalk(L2Npc npc, L2PcInstance player) {
 		final QuestState st = getQuestState(player, true);
 		if (st == null) {
 			return getNoQuestMsg(player);
diff --git a/src/main/java/com/l2jserver/datapack/quests/Q00660_AidingTheFloranVillage/Q00660_AidingTheFloranVillage.java b/src/main/java/com/l2jserver/datapack/quests/Q00660_AidingTheFloranVillage/Q00660_AidingTheFloranVillage.java
index 605b596ea061535c7b011ed0f6df1fb9e6b6faf5..8cf659772b0f80a5cc87549e4cbd3cd06569cf50 100644
--- a/src/main/java/com/l2jserver/datapack/quests/Q00660_AidingTheFloranVillage/Q00660_AidingTheFloranVillage.java
+++ b/src/main/java/com/l2jserver/datapack/quests/Q00660_AidingTheFloranVillage/Q00660_AidingTheFloranVillage.java
@@ -276,7 +276,7 @@ public final class Q00660_AidingTheFloranVillage extends Quest {
 		return htmltext;
 	}
 	
-	private static final void tradeItems(L2PcInstance player, long required, long itemCount1, long itemCount2, long itemCount3) {
+	private static void tradeItems(L2PcInstance player, long required, long itemCount1, long itemCount2, long itemCount3) {
 		if (itemCount1 < required) {
 			takeItems(player, WATCHING_EYES, itemCount1);
 			required -= itemCount1;
diff --git a/src/main/java/com/l2jserver/datapack/quests/Q00691_MatrasSuspiciousRequest/Q00691_MatrasSuspiciousRequest.java b/src/main/java/com/l2jserver/datapack/quests/Q00691_MatrasSuspiciousRequest/Q00691_MatrasSuspiciousRequest.java
index 15321eb1b8eff6bdd046ff6e18866beae0c56029..d2b69c7b1be3df4da9ae93b0c35aa7f3da67d507 100644
--- a/src/main/java/com/l2jserver/datapack/quests/Q00691_MatrasSuspiciousRequest/Q00691_MatrasSuspiciousRequest.java
+++ b/src/main/java/com/l2jserver/datapack/quests/Q00691_MatrasSuspiciousRequest/Q00691_MatrasSuspiciousRequest.java
@@ -115,7 +115,7 @@ public final class Q00691_MatrasSuspiciousRequest extends Quest {
 	}
 	
 	@Override
-	public final String onKill(L2Npc npc, L2PcInstance player, boolean isSummon) {
+	public String onKill(L2Npc npc, L2PcInstance player, boolean isSummon) {
 		final L2PcInstance pl = getRandomPartyMember(player, 1);
 		if (pl == null) {
 			return super.onKill(npc, player, isSummon);
@@ -133,7 +133,7 @@ public final class Q00691_MatrasSuspiciousRequest extends Quest {
 	}
 	
 	@Override
-	public final String onTalk(L2Npc npc, L2PcInstance player) {
+	public String onTalk(L2Npc npc, L2PcInstance player) {
 		String htmltext = getNoQuestMsg(player);
 		final QuestState st = getQuestState(player, true);
 		switch (st.getState()) {
diff --git a/src/main/java/com/l2jserver/datapack/quests/Q00692_HowtoOpposeEvil/Q00692_HowtoOpposeEvil.java b/src/main/java/com/l2jserver/datapack/quests/Q00692_HowtoOpposeEvil/Q00692_HowtoOpposeEvil.java
index 355f5841c65ea78419fbac79230b11d6f1704925..003f362fb35c3970f678f11856e0a4a24e53cbc2 100644
--- a/src/main/java/com/l2jserver/datapack/quests/Q00692_HowtoOpposeEvil/Q00692_HowtoOpposeEvil.java
+++ b/src/main/java/com/l2jserver/datapack/quests/Q00692_HowtoOpposeEvil/Q00692_HowtoOpposeEvil.java
@@ -108,7 +108,7 @@ public final class Q00692_HowtoOpposeEvil extends Quest {
 	}
 	
 	@Override
-	public final String onAdvEvent(String event, L2Npc npc, L2PcInstance player) {
+	public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) {
 		QuestState st = getQuestState(player, false);
 		if (st == null) {
 			return getNoQuestMsg(player);
@@ -146,7 +146,7 @@ public final class Q00692_HowtoOpposeEvil extends Quest {
 	}
 	
 	@Override
-	public final String onKill(L2Npc npc, L2PcInstance player, boolean isSummon) {
+	public String onKill(L2Npc npc, L2PcInstance player, boolean isSummon) {
 		final L2PcInstance partyMember = getRandomPartyMember(player, 3);
 		if (partyMember == null) {
 			return null;
@@ -169,7 +169,7 @@ public final class Q00692_HowtoOpposeEvil extends Quest {
 	}
 	
 	@Override
-	public final String onTalk(L2Npc npc, L2PcInstance player) {
+	public String onTalk(L2Npc npc, L2PcInstance player) {
 		String htmltext = getNoQuestMsg(player);
 		final QuestState st = getQuestState(player, true);
 		if (st.isCreated()) {
@@ -199,7 +199,7 @@ public final class Q00692_HowtoOpposeEvil extends Quest {
 		return htmltext;
 	}
 	
-	private static final boolean giveReward(QuestState st, int itemId, int minCount, int rewardItemId, long rewardCount) {
+	private static boolean giveReward(QuestState st, int itemId, int minCount, int rewardItemId, long rewardCount) {
 		long count = st.getQuestItemsCount(itemId);
 		if (count < minCount) {
 			return false;