=UTF-8
diff --git a/others/JavaEngine/.settings/org.eclipse.core.runtime.prefs b/others/JavaEngine/.settings/org.eclipse.core.runtime.prefs
deleted file mode 100644
index f8a67de1d4..0000000000
--- a/others/JavaEngine/.settings/org.eclipse.core.runtime.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-line.separator=\r\n
diff --git a/others/JavaEngine/.settings/org.eclipse.jdt.core.prefs b/others/JavaEngine/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 9ce3dd979e..0000000000
--- a/others/JavaEngine/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,403 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.codeComplete.argumentPrefixes=
-org.eclipse.jdt.core.codeComplete.argumentSuffixes=
-org.eclipse.jdt.core.codeComplete.fieldPrefixes=
-org.eclipse.jdt.core.codeComplete.fieldSuffixes=
-org.eclipse.jdt.core.codeComplete.localPrefixes=
-org.eclipse.jdt.core.codeComplete.localSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes=
-org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
-org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
-org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
-org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
-org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.8
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
-org.eclipse.jdt.core.compiler.problem.deadCode=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=no_tag
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
-org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
-org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
-org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
-org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=warning
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=warning
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=disabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=disabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.8
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-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_binary_expression=0
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=0
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=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_method_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-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_resources_in_try=85
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=0
-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_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_union_type_in_multicatch=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=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_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=next_line
-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.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.insert_new_line_before_root_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_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_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=do not 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=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=insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=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_binary_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_superinterfaces=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_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_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_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_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=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_binary_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_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_superinterfaces=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_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_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_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_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_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_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_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-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_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-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.use_on_off_tags=true
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
-org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
diff --git a/others/JavaEngine/.settings/org.eclipse.jdt.ui.prefs b/others/JavaEngine/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 80e71e178b..0000000000
--- a/others/JavaEngine/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,72 +0,0 @@
-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.organize_imports=true
-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_type_arguments=true
-cleanup.remove_trailing_whitespaces=false
-cleanup.remove_trailing_whitespaces_all=true
-cleanup.remove_trailing_whitespaces_ignore_empty=true
-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.sort_members=false
-cleanup.sort_members_all=false
-cleanup.use_anonymous_class_creation=false
-cleanup.use_blocks=true
-cleanup.use_blocks_only_for_return_and_throw=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_type_arguments=false
-cleanup_profile=_L2J Clean Up v0.3
-cleanup_settings_version=2
-eclipse.preferences.version=1
-formatter_profile=_L2J Formatter v0.4
-formatter_settings_version=12
-org.eclipse.jdt.ui.exception.name=e
-org.eclipse.jdt.ui.gettersetter.use.is=true
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=java;javax;org;com;
-org.eclipse.jdt.ui.javadoc=true
-org.eclipse.jdt.ui.keywordthis=false
-org.eclipse.jdt.ui.ondemandthreshold=99
-org.eclipse.jdt.ui.overrideannotation=true
-org.eclipse.jdt.ui.staticondemandthreshold=99
-org.eclipse.jdt.ui.text.custom_code_templates=/**\r\n * @return the ${bare_field_name}\r\n *//**\r\n * @param ${param} the ${bare_field_name} to set\r\n *//**\r\n * ${tags}\r\n *//*\r\n * This program is free software\: you can redistribute it and/or modify it under\r\n * the terms of the GNU General Public License as published by the Free Software\r\n * Foundation, either version 3 of the License, or (at your option) any later\r\n * version.\r\n * \r\n * This program is distributed in the hope that it will be useful, but WITHOUT\r\n * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS\r\n * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more\r\n * details.\r\n * \r\n * You should have received a copy of the GNU General Public License along with\r\n * this program. If not, see <http\://www.gnu.org/licenses/>.\r\n *//**\r\n * @author ${user}\r\n *\r\n * ${tags}\r\n *//**\r\n * \r\n *//**\r\n * ${tags}\r\n *//* (non-Javadoc)\r\n * ${see_to_overridden}\r\n *//**\r\n * ${tags}\r\n * ${see_to_target}\r\n */${filecomment}\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}\r\n\r\n\r\n\r\n// ${todo} Auto-generated catch block\r\n${exception_var}.printStackTrace();// ${todo} Auto-generated method stub\r\n${body_statement}${body_statement}\r\n// ${todo} Auto-generated constructor stubreturn ${field};${field} \= ${param};
diff --git a/others/JavaEngine/.settings/org.eclipse.wst.sse.core.prefs b/others/JavaEngine/.settings/org.eclipse.wst.sse.core.prefs
deleted file mode 100644
index a640cfdb22..0000000000
--- a/others/JavaEngine/.settings/org.eclipse.wst.sse.core.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-eclipse.preferences.version=1
-task-tags/enabled=true
-task-tags/use-project-settings=true
diff --git a/others/JavaEngine/.settings/org.eclipse.wst.validation.prefs b/others/JavaEngine/.settings/org.eclipse.wst.validation.prefs
deleted file mode 100644
index 63a18689fb..0000000000
--- a/others/JavaEngine/.settings/org.eclipse.wst.validation.prefs
+++ /dev/null
@@ -1,12 +0,0 @@
-DELEGATES_PREFERENCE=delegateValidatorList
-USER_BUILD_PREFERENCE=enabledBuildValidatorList
-USER_MANUAL_PREFERENCE=enabledManualValidatorList
-USER_PREFERENCE=overrideGlobalPreferencestruedisableAllValidationfalseversion1.2.400.v201204260100
-eclipse.preferences.version=1
-override=true
-suspend=false
-vals/org.eclipse.wst.dtd.core.dtdDTDValidator/global=FF01
-vals/org.eclipse.wst.html.core.HTMLValidator/global=FF01
-vals/org.eclipse.wst.html.ui.HTMLValidator/global=TF01
-vals/org.eclipse.wst.xml.core.xml/groups=0107include05111contentType128org.eclipse.core.runtime.xmlT111contentType134org.eclipse.wst.xml.core.xmlsourceT111contentType134org.eclipse.wst.xml.core.xslsourceT111contentType134org.eclipse.jst.jsp.core.tldsourceT07fileext03xmlF0107exclude08113projectNature134org.eclipse.jst.j2ee.ejb.EJBNature113projectNature130org.eclipse.jst.j2ee.EARNature04file08.projectT0104file110.classpathT0104file110.settings/T0204file03binF0204file05buildF0204file09build.xmlF01
-vf.version=3
diff --git a/others/JavaEngine/build.xml b/others/JavaEngine/build.xml
deleted file mode 100644
index 8b9790fd87..0000000000
--- a/others/JavaEngine/build.xml
+++ /dev/null
@@ -1,114 +0,0 @@
-
-
-
- This script will build the Java Engine lib.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3, or (at your option)
- any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- 02111-1307, USA.
-
- http://www.gnu.org/copyleft/gpl.html
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ${l2j.changelog}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/others/JavaEngine/lib/ecj-4.4.jar b/others/JavaEngine/lib/ecj-4.4.jar
deleted file mode 100644
index 98f82dc592..0000000000
Binary files a/others/JavaEngine/lib/ecj-4.4.jar and /dev/null differ
diff --git a/others/JavaEngine/lib/ecj_LICENSE.html b/others/JavaEngine/lib/ecj_LICENSE.html
deleted file mode 100644
index e52bf6e208..0000000000
--- a/others/JavaEngine/lib/ecj_LICENSE.html
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
-About
-
-
-About This Content
-
-June 2, 2006
-License
-
-The Eclipse Foundation makes available all content in this plug-in ("Content"). Unless otherwise
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is available
-at http://www.eclipse.org/legal/epl-v10.html.
-For purposes of the EPL, "Program" will mean the Content.
-
-If you did not receive this Content directly from the Eclipse Foundation, the Content is
-being redistributed by another party ("Redistributor") and different terms and conditions may
-apply to your use of any object code in the Content. Check the Redistributor's license that was
-provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at http://www.eclipse.org.
-
-
-
\ No newline at end of file
diff --git a/others/JavaEngine/src/META-INF/services/javax.script.ScriptEngineFactory b/others/JavaEngine/src/META-INF/services/javax.script.ScriptEngineFactory
deleted file mode 100644
index 908479a673..0000000000
--- a/others/JavaEngine/src/META-INF/services/javax.script.ScriptEngineFactory
+++ /dev/null
@@ -1 +0,0 @@
-com.l2jserver.script.java.JavaScriptEngineFactory
\ No newline at end of file
diff --git a/others/JavaEngine/src/com/l2jserver/script/java/CompilationException.java b/others/JavaEngine/src/com/l2jserver/script/java/CompilationException.java
deleted file mode 100644
index 3c4a12adbd..0000000000
--- a/others/JavaEngine/src/com/l2jserver/script/java/CompilationException.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package com.l2jserver.script.java;
-
-public class CompilationException extends Exception
-{
- private static final long serialVersionUID = 1L;
-
- public CompilationException(String message)
- {
- super(message);
- }
-}
diff --git a/others/JavaEngine/src/com/l2jserver/script/java/JavaCompiler.java b/others/JavaEngine/src/com/l2jserver/script/java/JavaCompiler.java
deleted file mode 100644
index e2e9532525..0000000000
--- a/others/JavaEngine/src/com/l2jserver/script/java/JavaCompiler.java
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
- * Copyright (C) 2006 Sun Microsystems, Inc. All rights reserved.
- * Use is subject to license terms.
- *
- * Redistribution and use in source and binary forms, with or without modification, are
- * permitted provided that the following conditions are met: Redistributions of source code
- * must retain the above copyright notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright notice, this list of
- * conditions and the following disclaimer in the documentation and/or other materials
- * provided with the distribution. Neither the name of the Sun Microsystems nor the names of
- * is contributors may be used to endorse or promote products derived from this software
- * without specific prior written permission.
-
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
- * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
- * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
- * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-package com.l2jserver.script.java;
-
-import java.io.PrintWriter;
-import java.io.Writer;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-
-import javax.tools.Diagnostic;
-import javax.tools.DiagnosticCollector;
-import javax.tools.JavaCompiler.CompilationTask;
-import javax.tools.JavaFileObject;
-
-import org.eclipse.jdt.internal.compiler.tool.EclipseCompiler;
-
-/**
- * Simple interface to Java compiler using JSR 199 Compiler API.
- * @author A. Sundararajan
- */
-public class JavaCompiler
-{
- private final javax.tools.JavaCompiler tool;
-
- public JavaCompiler()
- {
- tool = new EclipseCompiler();
- }
-
- public Map compile(String source, String fileName)
- {
- PrintWriter err = new PrintWriter(System.err);
- return compile(source, fileName, err, null, null);
- }
-
- public Map compile(String fileName, String source, Writer err)
- {
- return compile(fileName, source, err, null, null);
- }
-
- public Map compile(String fileName, String source, Writer err, String sourcePath)
- {
- return compile(fileName, source, err, sourcePath, null);
- }
-
- /**
- * compile given String source and return bytecodes as a Map.
- * @param fileName source fileName to be used for error messages etc.
- * @param source Java source as String
- * @param err error writer where diagnostic messages are written
- * @param sourcePath location of additional .java source files
- * @param classPath location of additional .class files
- * @return
- */
- public Map compile(String fileName, String source, Writer err, String sourcePath, String classPath)
- {
- // to collect errors, warnings etc.
- DiagnosticCollector diagnostics = new DiagnosticCollector<>();
-
- // create a new memory JavaFileManager
- MemoryJavaFileManager manager = new MemoryJavaFileManager();
-
- // prepare the compilation unit
- List compUnits = new ArrayList<>(1);
- compUnits.add(MemoryJavaFileManager.makeStringSource(fileName, source));
-
- // javac options
- List options = new ArrayList<>();
- options.add("-warn:-enumSwitch");
- options.add("-g");
- options.add("-deprecation");
- options.add("-1.8");
- if (sourcePath != null)
- {
- options.add("-sourcepath");
- options.add(sourcePath);
- }
- if (classPath != null)
- {
- options.add("-classpath");
- options.add(classPath);
- }
-
- // create a compilation task
- CompilationTask task = tool.getTask(err, manager, diagnostics, options, null, compUnits);
-
- if (!task.call())
- {
- PrintWriter perr = new PrintWriter(err);
- for (Diagnostic> diagnostic : diagnostics.getDiagnostics())
- {
- perr.println(diagnostic.getMessage(Locale.getDefault()));
- }
- perr.flush();
- return null;
- }
-
- Map classBytes = manager.getClassBytes();
- manager.close();
- return classBytes;
- }
-}
diff --git a/others/JavaEngine/src/com/l2jserver/script/java/JavaScriptEngine.java b/others/JavaEngine/src/com/l2jserver/script/java/JavaScriptEngine.java
deleted file mode 100644
index 812615746b..0000000000
--- a/others/JavaEngine/src/com/l2jserver/script/java/JavaScriptEngine.java
+++ /dev/null
@@ -1,500 +0,0 @@
-/*
- * Copyright (C) 2006 Sun Microsystems, Inc. All rights reserved.
- * Use is subject to license terms.
- *
- * Redistribution and use in source and binary forms, with or without modification, are
- * permitted provided that the following conditions are met: Redistributions of source code
- * must retain the above copyright notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright notice, this list of
- * conditions and the following disclaimer in the documentation and/or other materials
- * provided with the distribution. Neither the name of the Sun Microsystems nor the names of
- * is contributors may be used to endorse or promote products derived from this software
- * without specific prior written permission.
-
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
- * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
- * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
- * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-package com.l2jserver.script.java;
-
-import java.io.IOException;
-import java.io.Reader;
-import java.io.Serializable;
-import java.io.StringWriter;
-import java.io.Writer;
-import java.lang.reflect.Method;
-import java.lang.reflect.Modifier;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-
-import javax.script.AbstractScriptEngine;
-import javax.script.Bindings;
-import javax.script.Compilable;
-import javax.script.CompiledScript;
-import javax.script.ScriptContext;
-import javax.script.ScriptEngine;
-import javax.script.ScriptEngineFactory;
-import javax.script.ScriptException;
-import javax.script.SimpleBindings;
-
-/**
- * This is script engine for Java programming language.
- * @author A. Sundararajan
- */
-public class JavaScriptEngine extends AbstractScriptEngine implements Compilable
-{
- // Java compiler
- private final JavaCompiler compiler;
-
- public JavaScriptEngine()
- {
- compiler = new JavaCompiler();
- }
-
- // my factory, may be null
- private ScriptEngineFactory factory;
-
- // my implementation for CompiledScript
- private static class JavaCompiledScript extends CompiledScript implements Serializable
- {
- private static final long serialVersionUID = 1L;
- private final transient JavaScriptEngine _engine;
- private transient Class> _class;
- private final Map _classBytes;
- private final String _classPath;
-
- JavaCompiledScript(JavaScriptEngine engine, Map classBytes, String classPath)
- {
- _engine = engine;
- _classBytes = classBytes;
- _classPath = classPath;
- }
-
- @Override
- public ScriptEngine getEngine()
- {
- return _engine;
- }
-
- @Override
- public Object eval(ScriptContext ctx) throws ScriptException
- {
- if (_class == null)
- {
- Map classBytesCopy = new HashMap<>();
- classBytesCopy.putAll(_classBytes);
- MemoryClassLoader loader = new MemoryClassLoader(classBytesCopy, _classPath, JavaScriptEngine.getParentLoader(ctx));
- _class = JavaScriptEngine.parseMain(loader, ctx);
- }
- return JavaScriptEngine.evalClass(_class, ctx);
- }
- }
-
- @Override
- public CompiledScript compile(String script) throws ScriptException
- {
- return compile(script, context);
- }
-
- @Override
- public CompiledScript compile(Reader reader) throws ScriptException
- {
- return compile(readFully(reader));
- }
-
- @Override
- public Object eval(String str, ScriptContext ctx) throws ScriptException
- {
- Class> clazz = parse(str, ctx);
- return evalClass(clazz, ctx);
- }
-
- @Override
- public Object eval(Reader reader, ScriptContext ctx) throws ScriptException
- {
- return eval(readFully(reader), ctx);
- }
-
- @Override
- public ScriptEngineFactory getFactory()
- {
- synchronized (this)
- {
- if (factory == null)
- {
- factory = new JavaScriptEngineFactory();
- }
- }
- return factory;
- }
-
- @Override
- public Bindings createBindings()
- {
- return new SimpleBindings();
- }
-
- void setFactory(ScriptEngineFactory factory)
- {
- this.factory = factory;
- }
-
- // Internals only below this point
-
- private Class> parse(String str, ScriptContext ctx) throws ScriptException
- {
- String fileName = getFileName(ctx);
- String sourcePath = getSourcePath(ctx);
- String classPath = getClassPath(ctx);
-
- Writer err = ctx.getErrorWriter();
- if (err == null)
- {
- err = new StringWriter();
- }
-
- Map classBytes = compiler.compile(fileName, str, err, sourcePath, classPath);
-
- if (classBytes == null)
- {
- if (err instanceof StringWriter)
- {
- throw new ScriptException(((StringWriter) err).toString());
- }
- throw new ScriptException("compilation failed");
- }
-
- // create a ClassLoader to load classes from MemoryJavaFileManager
- MemoryClassLoader loader = new MemoryClassLoader(classBytes, classPath, getParentLoader(ctx));
- return parseMain(loader, ctx);
- }
-
- protected static Class> parseMain(MemoryClassLoader loader, ScriptContext ctx) throws ScriptException
- {
- String mainClassName = getMainClassName(ctx);
- if (mainClassName != null)
- {
- try
- {
- Class> clazz = loader.load(mainClassName);
- Method mainMethod = findMainMethod(clazz);
- if (mainMethod == null)
- {
- throw new ScriptException("no main method in " + mainClassName);
- }
- return clazz;
- }
- catch (ClassNotFoundException cnfe)
- {
- cnfe.printStackTrace();
- throw new ScriptException(cnfe);
- }
- }
-
- // no main class configured - load all compiled classes
- Iterable> classes;
- try
- {
- classes = loader.loadAll();
- }
- catch (ClassNotFoundException exp)
- {
- throw new ScriptException(exp);
- }
-
- // search for class with main method
- Class> c = findMainClass(classes);
- if (c != null)
- {
- return c;
- }
-
- // if class with "main" method, then
- // return first class
- Iterator> itr = classes.iterator();
- if (itr.hasNext())
- {
- return itr.next();
- }
- return null;
- }
-
- private JavaCompiledScript compile(String str, ScriptContext ctx) throws ScriptException
- {
- String fileName = getFileName(ctx);
- String sourcePath = getSourcePath(ctx);
- String classPath = getClassPath(ctx);
-
- Writer err = ctx.getErrorWriter();
- if (err == null)
- {
- err = new StringWriter();
- }
-
- Map classBytes = compiler.compile(fileName, str, err, sourcePath, classPath);
- if (classBytes == null)
- {
- if (err instanceof StringWriter)
- {
- throw new ScriptException(((StringWriter) err).toString());
- }
- throw new ScriptException("compilation failed");
- }
-
- return new JavaCompiledScript(this, classBytes, classPath);
- }
-
- private static Class> findMainClass(Iterable> classes)
- {
- // find a public class with public static main method
- for (Class> clazz : classes)
- {
- int modifiers = clazz.getModifiers();
- if (Modifier.isPublic(modifiers))
- {
- Method mainMethod = findMainMethod(clazz);
- if (mainMethod != null)
- {
- return clazz;
- }
- }
- }
-
- // okay, try to find package private class that
- // has public static main method
- for (Class> clazz : classes)
- {
- Method mainMethod = findMainMethod(clazz);
- if (mainMethod != null)
- {
- return clazz;
- }
- }
-
- // no main class found!
- return null;
- }
-
- // find public static void main(String[]) method, if any
- private static Method findMainMethod(Class> clazz)
- {
- try
- {
- Method mainMethod = clazz.getMethod("main", new Class[]
- {
- String[].class
- });
- int modifiers = mainMethod.getModifiers();
- if (Modifier.isPublic(modifiers) && Modifier.isStatic(modifiers))
- {
- return mainMethod;
- }
- }
- catch (NoSuchMethodException nsme)
- {
- }
- return null;
- }
-
- // find public static void setScriptContext(ScriptContext) method, if any
- private static Method findSetScriptContextMethod(Class> clazz)
- {
- try
- {
- Method setCtxMethod = clazz.getMethod("setScriptContext", new Class[]
- {
- ScriptContext.class
- });
- int modifiers = setCtxMethod.getModifiers();
- if (Modifier.isPublic(modifiers) && Modifier.isStatic(modifiers))
- {
- return setCtxMethod;
- }
- }
- catch (NoSuchMethodException nsme)
- {
- }
- return null;
- }
-
- private static String getFileName(ScriptContext ctx)
- {
- int scope = ctx.getAttributesScope("javax.script.filename");
- if (scope != -1)
- {
- return ctx.getAttribute("javax.script.filename", scope).toString();
- }
- return "$unnamed.java";
- }
-
- // for certain variables, we look for System properties. This is
- // the prefix used for such System properties
- private static final String SYSPROP_PREFIX = "com.sun.script.java.";
-
- private static final String[] EMPTY_STRING_ARRAY = new String[0];
- private static final String ARGUMENTS = "arguments";
-
- private static String[] getArguments(ScriptContext ctx)
- {
- int scope = ctx.getAttributesScope(ARGUMENTS);
- if (scope != -1)
- {
- Object obj = ctx.getAttribute(ARGUMENTS, scope);
- if (obj instanceof String[])
- {
- return (String[]) obj;
- }
- }
- // return zero length array
- return EMPTY_STRING_ARRAY;
- }
-
- private static final String SOURCEPATH = "sourcepath";
-
- private static String getSourcePath(ScriptContext ctx)
- {
- int scope = ctx.getAttributesScope(SOURCEPATH);
- if (scope != -1)
- {
- return ctx.getAttribute(SOURCEPATH).toString();
- }
-
- // look for "com.sun.script.java.sourcepath"
- return System.getProperty(SYSPROP_PREFIX + SOURCEPATH);
- }
-
- private static final String CLASSPATH = "classpath";
-
- private static String getClassPath(ScriptContext ctx)
- {
- int scope = ctx.getAttributesScope(CLASSPATH);
- if (scope != -1)
- {
- return ctx.getAttribute(CLASSPATH).toString();
- }
-
- // look for "com.sun.script.java.classpath"
- String res = System.getProperty(SYSPROP_PREFIX + CLASSPATH);
- if (res == null)
- {
- res = System.getProperty("java.class.path");
- }
- return res;
- }
-
- private static final String MAINCLASS = "mainClass";
-
- private static String getMainClassName(ScriptContext ctx)
- {
- int scope = ctx.getAttributesScope(MAINCLASS);
- if (scope != -1)
- {
- return ctx.getAttribute(MAINCLASS).toString();
- }
-
- // look for "com.sun.script.java.mainClass"
- return System.getProperty("com.sun.script.java.mainClass");
- }
-
- private static final String PARENTLOADER = "parentLoader";
-
- protected static ClassLoader getParentLoader(ScriptContext ctx)
- {
- int scope = ctx.getAttributesScope(PARENTLOADER);
- if (scope != -1)
- {
- Object loader = ctx.getAttribute(PARENTLOADER);
- if (loader instanceof ClassLoader)
- {
- return (ClassLoader) loader;
- }
- }
- return ClassLoader.getSystemClassLoader();
- }
-
- protected static Object evalClass(Class> clazz, ScriptContext ctx) throws ScriptException
- {
- // JSR-223 requirement
- ctx.setAttribute("context", ctx, 100);
- if (clazz == null)
- {
- return null;
- }
- try
- {
- boolean isPublicClazz = Modifier.isPublic(clazz.getModifiers());
-
- // find the setScriptContext method
- Method setCtxMethod = findSetScriptContextMethod(clazz);
- // call setScriptContext and pass current ctx variable
- if (setCtxMethod != null)
- {
- if (!isPublicClazz)
- {
- // try to relax access
- setCtxMethod.setAccessible(true);
- }
- setCtxMethod.invoke(null, new Object[]
- {
- ctx
- });
- }
-
- // find the main method
- Method mainMethod = findMainMethod(clazz);
- if (mainMethod != null)
- {
- if (!isPublicClazz)
- {
- // try to relax access
- mainMethod.setAccessible(true);
- }
-
- // get "command line" args for the main method
- String args[] = getArguments(ctx);
-
- // call main method
- mainMethod.invoke(null, new Object[]
- {
- args
- });
- }
-
- // return main class as eval's result
- return clazz;
- }
- catch (Exception exp)
- {
- exp.printStackTrace();
- throw new ScriptException(exp);
- }
- }
-
- // read a Reader fully and return the content as string
- private String readFully(Reader reader) throws ScriptException
- {
- char[] arr = new char[8 * 1024]; // 8K at a time
- StringBuilder buf = new StringBuilder();
- int numChars;
- try
- {
- while ((numChars = reader.read(arr, 0, arr.length)) > 0)
- {
- buf.append(arr, 0, numChars);
- }
- }
- catch (IOException exp)
- {
- throw new ScriptException(exp);
- }
- return buf.toString();
- }
-
-}
diff --git a/others/JavaEngine/src/com/l2jserver/script/java/JavaScriptEngineFactory.java b/others/JavaEngine/src/com/l2jserver/script/java/JavaScriptEngineFactory.java
deleted file mode 100644
index 8d10ca0304..0000000000
--- a/others/JavaEngine/src/com/l2jserver/script/java/JavaScriptEngineFactory.java
+++ /dev/null
@@ -1,216 +0,0 @@
-/*
- * Copyright (C) 2006 Sun Microsystems, Inc. All rights reserved.
- * Use is subject to license terms.
- *
- * Redistribution and use in source and binary forms, with or without modification, are
- * permitted provided that the following conditions are met: Redistributions of source code
- * must retain the above copyright notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright notice, this list of
- * conditions and the following disclaimer in the documentation and/or other materials
- * provided with the distribution. Neither the name of the Sun Microsystems nor the names of
- * is contributors may be used to endorse or promote products derived from this software
- * without specific prior written permission.
-
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
- * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
- * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
- * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-package com.l2jserver.script.java;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-import javax.script.ScriptEngine;
-import javax.script.ScriptEngineFactory;
-
-/**
- * This is script engine factory for "Java" script engine.
- * @author A. Sundararajan
- */
-public class JavaScriptEngineFactory implements ScriptEngineFactory
-{
- @Override
- public String getEngineName()
- {
- return "java";
- }
-
- @Override
- public String getEngineVersion()
- {
- return "1.8";
- }
-
- @Override
- public List getExtensions()
- {
- return extensions;
- }
-
- @Override
- public String getLanguageName()
- {
- return "java";
- }
-
- @Override
- public String getLanguageVersion()
- {
- return "1.8";
- }
-
- @Override
- public String getMethodCallSyntax(String obj, String m, String... args)
- {
- StringBuilder buf = new StringBuilder();
- buf.append(obj);
- buf.append('.');
- buf.append(m);
- buf.append('(');
- if (args.length != 0)
- {
- int i = 0;
- for (; i < (args.length - 1); i++)
- {
- buf.append(args[i] + ", ");
- }
- buf.append(args[i]);
- }
- buf.append(')');
- return buf.toString();
- }
-
- @Override
- public List getMimeTypes()
- {
- return mimeTypes;
- }
-
- @Override
- public List getNames()
- {
- return names;
- }
-
- @Override
- public String getOutputStatement(String toDisplay)
- {
- StringBuilder buf = new StringBuilder();
- buf.append("System.out.print(\"");
- int len = toDisplay.length();
- for (int i = 0; i < len; i++)
- {
- char ch = toDisplay.charAt(i);
- switch (ch)
- {
- case 34: // '"'
- buf.append("\\\"");
- break;
- case 92: // '\\'
- buf.append("\\\\");
- break;
- default:
- buf.append(ch);
- break;
- }
- }
- buf.append("\");");
- return buf.toString();
- }
-
- @Override
- public String getParameter(String key)
- {
- if (key.equals("javax.script.engine"))
- {
- return getEngineName();
- }
- if (key.equals("javax.script.engine_version"))
- {
- return getEngineVersion();
- }
- if (key.equals("javax.script.name"))
- {
- return getEngineName();
- }
- if (key.equals("javax.script.language"))
- {
- return getLanguageName();
- }
- if (key.equals("javax.script.language_version"))
- {
- return getLanguageVersion();
- }
- if (key.equals("THREADING"))
- {
- return "MULTITHREADED";
- }
- return null;
- }
-
- @Override
- public String getProgram(String... statements)
- {
- // we generate a Main class with main method
- // that contains all the given statements
-
- StringBuilder buf = new StringBuilder();
- buf.append("class ");
- buf.append(getClassName());
- buf.append(" {\n");
- buf.append(" public static void main(String[] args) {\n");
- if (statements.length != 0)
- {
- for (String statement : statements)
- {
- buf.append(" ");
- buf.append(statement);
- buf.append(";\n");
- }
- }
- buf.append(" }\n");
- buf.append("}\n");
- return buf.toString();
- }
-
- @Override
- public ScriptEngine getScriptEngine()
- {
- JavaScriptEngine engine = new JavaScriptEngine();
- engine.setFactory(this);
- return engine;
- }
-
- // used to generate a unique class name in getProgram
- private String getClassName()
- {
- return "com_sun_script_java_Main$" + getNextClassNumber();
- }
-
- private static synchronized long getNextClassNumber()
- {
- return nextClassNum++;
- }
-
- private static long nextClassNum = 0L;
- private static List names;
- private static List extensions;
- private static List mimeTypes;
-
- static
- {
- names = new ArrayList<>(1);
- names.add("java");
- names = Collections.unmodifiableList(names);
- extensions = names;
- mimeTypes = new ArrayList<>(0);
- mimeTypes = Collections.unmodifiableList(mimeTypes);
- }
-}
diff --git a/others/JavaEngine/src/com/l2jserver/script/java/MemoryClassLoader.java b/others/JavaEngine/src/com/l2jserver/script/java/MemoryClassLoader.java
deleted file mode 100644
index c5036c2b55..0000000000
--- a/others/JavaEngine/src/com/l2jserver/script/java/MemoryClassLoader.java
+++ /dev/null
@@ -1,123 +0,0 @@
-/*
- * Copyright (C) 2006 Sun Microsystems, Inc. All rights reserved.
- * Use is subject to license terms.
- *
- * Redistribution and use in source and binary forms, with or without modification, are
- * permitted provided that the following conditions are met: Redistributions of source code
- * must retain the above copyright notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright notice, this list of
- * conditions and the following disclaimer in the documentation and/or other materials
- * provided with the distribution. Neither the name of the Sun Microsystems nor the names of
- * is contributors may be used to endorse or promote products derived from this software
- * without specific prior written permission.
-
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
- * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
- * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
- * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-package com.l2jserver.script.java;
-
-import java.io.File;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.net.URLClassLoader;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.StringTokenizer;
-
-/**
- * ClassLoader that loads .class bytes from memory.
- * @author A. Sundararajan
- */
-public final class MemoryClassLoader extends URLClassLoader
-{
- private final Map classBytes;
-
- public MemoryClassLoader(Map classBytes, String classPath, ClassLoader parent)
- {
- super(toURLs(classPath), parent);
- this.classBytes = classBytes;
- }
-
- public MemoryClassLoader(Map classBytes, String classPath)
- {
- this(classBytes, classPath, null);
- }
-
- public Class> load(String className) throws ClassNotFoundException
- {
- return loadClass(className);
- }
-
- public Iterable> loadAll() throws ClassNotFoundException
- {
- List> classes = new ArrayList<>(classBytes.size());
- for (String name : classBytes.keySet())
- {
- classes.add(loadClass(name));
- }
- return classes;
- }
-
- @Override
- protected Class> findClass(String className) throws ClassNotFoundException
- {
- byte buf[] = classBytes.get(className);
- if (buf != null)
- {
- // clear the bytes in map -- we don't need it anymore
- classBytes.put(className, null);
- return defineClass(className, buf, 0, buf.length);
- }
- return super.findClass(className);
- }
-
- private static URL[] toURLs(String classPath)
- {
- if (classPath == null)
- {
- return new URL[0];
- }
-
- List list = new ArrayList<>();
- StringTokenizer st = new StringTokenizer(classPath, File.pathSeparator);
- while (st.hasMoreTokens())
- {
- String token = st.nextToken();
- File file = new File(token);
- if (file.exists())
- {
- try
- {
- list.add(file.toURI().toURL());
- }
- catch (MalformedURLException mue)
- {
- //
- }
- }
- else
- {
- try
- {
- list.add(new URL(token));
- }
- catch (MalformedURLException mue)
- {
- //
- }
- }
- }
-
- URL res[] = new URL[list.size()];
- list.toArray(res);
- return res;
- }
-}
diff --git a/others/JavaEngine/src/com/l2jserver/script/java/MemoryJavaFileManager.java b/others/JavaEngine/src/com/l2jserver/script/java/MemoryJavaFileManager.java
deleted file mode 100644
index 5d74ab0024..0000000000
--- a/others/JavaEngine/src/com/l2jserver/script/java/MemoryJavaFileManager.java
+++ /dev/null
@@ -1,163 +0,0 @@
-/*
- * Copyright (C) 2006 Sun Microsystems, Inc. All rights reserved.
- * Use is subject to license terms.
- *
- * Redistribution and use in source and binary forms, with or without modification, are
- * permitted provided that the following conditions are met: Redistributions of source code
- * must retain the above copyright notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright notice, this list of
- * conditions and the following disclaimer in the documentation and/or other materials
- * provided with the distribution. Neither the name of the Sun Microsystems nor the names of
- * is contributors may be used to endorse or promote products derived from this software
- * without specific prior written permission.
-
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
- * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
- * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
- * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-package com.l2jserver.script.java;
-
-import java.io.ByteArrayOutputStream;
-import java.io.File;
-import java.io.FilterOutputStream;
-import java.io.IOException;
-import java.io.OutputStream;
-import java.net.URI;
-import java.nio.CharBuffer;
-import java.util.HashMap;
-import java.util.Map;
-
-import javax.tools.FileObject;
-import javax.tools.JavaFileManager;
-import javax.tools.JavaFileObject;
-import javax.tools.JavaFileObject.Kind;
-import javax.tools.SimpleJavaFileObject;
-
-import org.eclipse.jdt.internal.compiler.tool.EclipseFileManager;
-
-/**
- * JavaFileManager that keeps compiled .class bytes in memory.
- * @author A. Sundararajan
- */
-public final class MemoryJavaFileManager extends EclipseFileManager
-{
- private static final String EXT = ".java";
- protected Map classBytes;
-
- public MemoryJavaFileManager()
- {
- super(null, null);
- classBytes = new HashMap<>();
- }
-
- public Map getClassBytes()
- {
- return classBytes;
- }
-
- @Override
- public void close()
- {
- classBytes = new HashMap<>();
- }
-
- @Override
- public void flush()
- {
- }
-
- /**
- * A file object used to represent Java source coming from a string.
- */
- private static class StringInputBuffer extends SimpleJavaFileObject
- {
- final String code;
-
- StringInputBuffer(String name, String code)
- {
- super(toURI(name), Kind.SOURCE);
- this.code = code;
- }
-
- @Override
- public CharBuffer getCharContent(boolean ignoreEncodingErrors)
- {
- return CharBuffer.wrap(code);
- }
- }
-
- /**
- * A file object that stores Java bytecode into the classBytes map.
- */
- private class ClassOutputBuffer extends SimpleJavaFileObject
- {
- protected final String name;
-
- ClassOutputBuffer(String name)
- {
- super(toURI(name), Kind.CLASS);
- this.name = name;
- }
-
- @Override
- public OutputStream openOutputStream()
- {
- return new FilterOutputStream(new ByteArrayOutputStream())
- {
- @Override
- public void close() throws IOException
- {
- out.close();
- ByteArrayOutputStream bos = (ByteArrayOutputStream) out;
- classBytes.put(name, bos.toByteArray());
- }
- };
- }
- }
-
- @Override
- public JavaFileObject getJavaFileForOutput(JavaFileManager.Location location, String className, Kind kind, FileObject sibling) throws IOException
- {
- if (kind == Kind.CLASS)
- {
- return new ClassOutputBuffer(className.replace('/', '.'));
- }
- return super.getJavaFileForOutput(location, className, kind, sibling);
- }
-
- static JavaFileObject makeStringSource(String name, String code)
- {
- return new StringInputBuffer(name, code);
- }
-
- static URI toURI(String name)
- {
- File file = new File(name);
- if (file.exists())
- {
- return file.toURI();
- }
-
- try
- {
- final StringBuilder newUri = new StringBuilder();
- newUri.append("file:///");
- newUri.append(name.replace('.', '/'));
- if (name.endsWith(EXT))
- {
- newUri.replace(newUri.length() - EXT.length(), newUri.length(), EXT);
- }
- return URI.create(newUri.toString());
- }
- catch (Exception exp)
- {
- return URI.create("file:///com/sun/script/java/java_source");
- }
- }
-}
diff --git a/others/JavaEngine/src/com/l2jserver/script/java/tests/Tests.java b/others/JavaEngine/src/com/l2jserver/script/java/tests/Tests.java
deleted file mode 100644
index 84d97a4758..0000000000
--- a/others/JavaEngine/src/com/l2jserver/script/java/tests/Tests.java
+++ /dev/null
@@ -1,31 +0,0 @@
-package com.l2jserver.script.java.tests;
-
-import java.io.BufferedReader;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.InputStreamReader;
-
-import javax.script.ScriptEngine;
-import javax.script.ScriptEngineManager;
-import javax.script.ScriptException;
-
-public class Tests
-{
- public static void main(String args[]) throws ScriptException, IOException
- {
- ScriptEngineManager sem = new ScriptEngineManager();
- ScriptEngine se = sem.getEngineByExtension("java");
- se.getContext().setAttribute("classpath", "C:/TestCode", 100);
- se.getContext().setAttribute("mainClass", "Test", 100);
- se.getContext().setAttribute("javax.script.filename", "Test.java", 100);
-
- BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("TestCode/Test.java")));
- se.eval(br);
- System.err.flush();
- System.out.flush();
- System.err.println("PRESS ANY KEY AFTER EDITING FILE");
- System.in.read();
- br = new BufferedReader(new InputStreamReader(new FileInputStream("TestCode/Test.java")));
- se.eval(br);
- }
-}
diff --git a/others/L2J_GeoDriver/.classpath b/others/L2J_GeoDriver/.classpath
deleted file mode 100644
index 238369e145..0000000000
--- a/others/L2J_GeoDriver/.classpath
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
diff --git a/others/L2J_GeoDriver/.project b/others/L2J_GeoDriver/.project
deleted file mode 100644
index 9263863954..0000000000
--- a/others/L2J_GeoDriver/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
- L2J_GeoDriver
-
-
-
-
-
- org.eclipse.jdt.core.javabuilder
-
-
-
-
-
- org.eclipse.jdt.core.javanature
-
-
diff --git a/others/L2J_GeoDriver/.settings/org.eclipse.core.resources.prefs b/others/L2J_GeoDriver/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 4824b80263..0000000000
--- a/others/L2J_GeoDriver/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-encoding/=UTF-8
diff --git a/others/L2J_GeoDriver/.settings/org.eclipse.core.runtime.prefs b/others/L2J_GeoDriver/.settings/org.eclipse.core.runtime.prefs
deleted file mode 100644
index f8a67de1d4..0000000000
--- a/others/L2J_GeoDriver/.settings/org.eclipse.core.runtime.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-line.separator=\r\n
diff --git a/others/L2J_GeoDriver/.settings/org.eclipse.jdt.core.prefs b/others/L2J_GeoDriver/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index cb3adde926..0000000000
--- a/others/L2J_GeoDriver/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,404 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.codeComplete.argumentPrefixes=
-org.eclipse.jdt.core.codeComplete.argumentSuffixes=
-org.eclipse.jdt.core.codeComplete.fieldPrefixes=
-org.eclipse.jdt.core.codeComplete.fieldSuffixes=
-org.eclipse.jdt.core.codeComplete.localPrefixes=
-org.eclipse.jdt.core.codeComplete.localSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes=
-org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
-org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
-org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
-org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
-org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.8
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
-org.eclipse.jdt.core.compiler.problem.deadCode=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=no_tag
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
-org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
-org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
-org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
-org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=warning
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=warning
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=disabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=disabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.8
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-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_binary_expression=0
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=0
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=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_method_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-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_resources_in_try=85
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=0
-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_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_union_type_in_multicatch=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=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_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=next_line
-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.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.insert_new_line_before_root_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_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_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=do not 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=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=insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=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_binary_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_superinterfaces=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_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_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_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_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=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_binary_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_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_superinterfaces=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_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_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_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_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_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_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_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-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_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-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.use_on_off_tags=true
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
-org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
diff --git a/others/L2J_GeoDriver/.settings/org.eclipse.jdt.ui.prefs b/others/L2J_GeoDriver/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 031f483568..0000000000
--- a/others/L2J_GeoDriver/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,125 +0,0 @@
-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.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.organize_imports=true
-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_trailing_whitespaces=false
-cleanup.remove_trailing_whitespaces_all=true
-cleanup.remove_trailing_whitespaces_ignore_empty=true
-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.sort_members=false
-cleanup.sort_members_all=false
-cleanup.use_anonymous_class_creation=false
-cleanup.use_blocks=true
-cleanup.use_blocks_only_for_return_and_throw=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_profile=_L2J Clean Up v0.3
-cleanup_settings_version=2
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-formatter_profile=_L2J Formatter v0.4
-formatter_settings_version=12
-org.eclipse.jdt.ui.exception.name=e
-org.eclipse.jdt.ui.gettersetter.use.is=true
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=java;javax;org;com;gui.trove;
-org.eclipse.jdt.ui.javadoc=true
-org.eclipse.jdt.ui.keywordthis=false
-org.eclipse.jdt.ui.ondemandthreshold=99
-org.eclipse.jdt.ui.overrideannotation=true
-org.eclipse.jdt.ui.staticondemandthreshold=99
-org.eclipse.jdt.ui.text.custom_code_templates=/**\r\n * @return the ${bare_field_name}\r\n *//**\r\n * @param ${param} the ${bare_field_name} to set\r\n *//**\r\n * ${tags}\r\n *//*\r\n * Copyright (C) 2004-${year} L2J Server\r\n * \r\n * This file is part of L2J Server.\r\n * \r\n * L2J Server is free software\: you can redistribute it and/or modify\r\n * it under the terms of the GNU General Public License as published by\r\n * the Free Software Foundation, either version 3 of the License, or\r\n * (at your option) any later version.\r\n * \r\n * L2J Server is distributed in the hope that it will be useful,\r\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\r\n * General Public License for more details.\r\n * \r\n * You should have received a copy of the GNU General Public License\r\n * along with this program. If not, see <http\://www.gnu.org/licenses/>.\r\n *//**\r\n * @author ${user}\r\n *\r\n * ${tags}\r\n *//**\r\n * \r\n *//**\r\n * ${tags}\r\n *//* (non-Javadoc)\r\n * ${see_to_overridden}\r\n *//**\r\n * ${tags}\r\n * ${see_to_target}\r\n */${filecomment}\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}\r\n\r\n\r\n\r\n// ${todo} Auto-generated catch block\r\n${exception_var}.printStackTrace();// ${todo} Auto-generated method stub\r\n${body_statement}${body_statement}\r\n// ${todo} Auto-generated constructor stubreturn ${field};${field} \= ${param};
-sp_cleanup.add_default_serial_version_id=true
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=true
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_methods=false
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_missing_override_annotations_interface_methods=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=true
-sp_cleanup.always_use_parentheses_in_expressions=true
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_functional_interfaces=true
-sp_cleanup.convert_to_enhanced_for_loop=true
-sp_cleanup.correct_indentation=false
-sp_cleanup.format_source_code=true
-sp_cleanup.format_source_code_changes_only=false
-sp_cleanup.make_local_variable_final=false
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=true
-sp_cleanup.make_type_abstract_if_missing_method=false
-sp_cleanup.make_variable_declarations_final=true
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=false
-sp_cleanup.on_save_use_additional_actions=true
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=true
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=true
-sp_cleanup.remove_trailing_whitespaces=false
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=true
-sp_cleanup.remove_unnecessary_casts=true
-sp_cleanup.remove_unnecessary_nls_tags=true
-sp_cleanup.remove_unused_imports=true
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=true
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=true
-sp_cleanup.remove_unused_private_types=true
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.use_anonymous_class_creation=false
-sp_cleanup.use_blocks=true
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_lambda=true
-sp_cleanup.use_parentheses_in_expressions=true
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/others/L2J_GeoDriver/.settings/org.eclipse.wst.sse.core.prefs b/others/L2J_GeoDriver/.settings/org.eclipse.wst.sse.core.prefs
deleted file mode 100644
index a640cfdb22..0000000000
--- a/others/L2J_GeoDriver/.settings/org.eclipse.wst.sse.core.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-eclipse.preferences.version=1
-task-tags/enabled=true
-task-tags/use-project-settings=true
diff --git a/others/L2J_GeoDriver/.settings/org.eclipse.wst.validation.prefs b/others/L2J_GeoDriver/.settings/org.eclipse.wst.validation.prefs
deleted file mode 100644
index 63a18689fb..0000000000
--- a/others/L2J_GeoDriver/.settings/org.eclipse.wst.validation.prefs
+++ /dev/null
@@ -1,12 +0,0 @@
-DELEGATES_PREFERENCE=delegateValidatorList
-USER_BUILD_PREFERENCE=enabledBuildValidatorList
-USER_MANUAL_PREFERENCE=enabledManualValidatorList
-USER_PREFERENCE=overrideGlobalPreferencestruedisableAllValidationfalseversion1.2.400.v201204260100
-eclipse.preferences.version=1
-override=true
-suspend=false
-vals/org.eclipse.wst.dtd.core.dtdDTDValidator/global=FF01
-vals/org.eclipse.wst.html.core.HTMLValidator/global=FF01
-vals/org.eclipse.wst.html.ui.HTMLValidator/global=TF01
-vals/org.eclipse.wst.xml.core.xml/groups=0107include05111contentType128org.eclipse.core.runtime.xmlT111contentType134org.eclipse.wst.xml.core.xmlsourceT111contentType134org.eclipse.wst.xml.core.xslsourceT111contentType134org.eclipse.jst.jsp.core.tldsourceT07fileext03xmlF0107exclude08113projectNature134org.eclipse.jst.j2ee.ejb.EJBNature113projectNature130org.eclipse.jst.j2ee.EARNature04file08.projectT0104file110.classpathT0104file110.settings/T0204file03binF0204file05buildF0204file09build.xmlF01
-vf.version=3
diff --git a/others/L2J_GeoDriver/build.xml b/others/L2J_GeoDriver/build.xml
deleted file mode 100644
index 1796232a56..0000000000
--- a/others/L2J_GeoDriver/build.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/others/L2J_GeoDriver/src/com/l2jserver/geodriver/Cell.java b/others/L2J_GeoDriver/src/com/l2jserver/geodriver/Cell.java
deleted file mode 100644
index 1e67de2530..0000000000
--- a/others/L2J_GeoDriver/src/com/l2jserver/geodriver/Cell.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Copyright (C) 2004-2015 L2J Server
- *
- * This file is part of L2J Server.
- *
- * L2J Server is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * L2J Server is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package com.l2jserver.geodriver;
-
-/**
- * @author HorridoJoho
- */
-public final class Cell
-{
- /** East NSWE flag */
- public static final byte NSWE_EAST = 1 << 0;
- /** West NSWE flag */
- public static final byte NSWE_WEST = 1 << 1;
- /** South NSWE flag */
- public static final byte NSWE_SOUTH = 1 << 2;
- /** North NSWE flag */
- public static final byte NSWE_NORTH = 1 << 3;
-
- /** North-East NSWE flags */
- public static final byte NSWE_NORTH_EAST = NSWE_NORTH | NSWE_EAST;
- /** North-West NSWE flags */
- public static final byte NSWE_NORTH_WEST = NSWE_NORTH | NSWE_WEST;
- /** South-East NSWE flags */
- public static final byte NSWE_SOUTH_EAST = NSWE_SOUTH | NSWE_EAST;
- /** South-West NSWE flags */
- public static final byte NSWE_SOUTH_WEST = NSWE_SOUTH | NSWE_WEST;
-
- /** All directions NSWE flags */
- public static final byte NSWE_ALL = NSWE_EAST | NSWE_WEST | NSWE_SOUTH | NSWE_NORTH;
-
- private Cell()
- {
- }
-}
diff --git a/others/L2J_GeoDriver/src/com/l2jserver/geodriver/GeoDriver.java b/others/L2J_GeoDriver/src/com/l2jserver/geodriver/GeoDriver.java
deleted file mode 100644
index 00babff65b..0000000000
--- a/others/L2J_GeoDriver/src/com/l2jserver/geodriver/GeoDriver.java
+++ /dev/null
@@ -1,184 +0,0 @@
-/*
- * Copyright (C) 2004-2015 L2J Server
- *
- * This file is part of L2J Server.
- *
- * L2J Server is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * L2J Server is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package com.l2jserver.geodriver;
-
-import java.io.IOException;
-import java.io.RandomAccessFile;
-import java.nio.ByteOrder;
-import java.nio.channels.FileChannel.MapMode;
-import java.nio.file.Path;
-import java.util.concurrent.atomic.AtomicReferenceArray;
-
-import com.l2jserver.geodriver.regions.Region;
-import com.l2jserver.geodriver.regions.NullRegion;
-
-/**
- * @author HorridoJoho
- */
-public final class GeoDriver
-{
- // world dimensions: 1048576 * 1048576 = 1099511627776
- private static final int WORLD_MIN_X = -655360;
- private static final int WORLD_MAX_X = 393215;
- private static final int WORLD_MIN_Y = -589824;
- private static final int WORLD_MAX_Y = 458751;
-
- /** Regions in the world on the x axis */
- public static final int GEO_REGIONS_X = 32;
- /** Regions in the world on the y axis */
- public static final int GEO_REGIONS_Y = 32;
- /** Region in the world */
- public static final int GEO_REGIONS = GEO_REGIONS_X * GEO_REGIONS_Y;
-
- /** Blocks in the world on the x axis */
- public static final int GEO_BLOCKS_X = GEO_REGIONS_X * IRegion.REGION_BLOCKS_X;
- /** Blocks in the world on the y axis */
- public static final int GEO_BLOCKS_Y = GEO_REGIONS_Y * IRegion.REGION_BLOCKS_Y;
- /** Blocks in the world */
- public static final int GEO_BLOCKS = GEO_REGIONS * IRegion.REGION_BLOCKS;
-
- /** Cells in the world on the x axis */
- public static final int GEO_CELLS_X = GEO_BLOCKS_X * IBlock.BLOCK_CELLS_X;
- /** Cells in the world in the y axis */
- public static final int GEO_CELLS_Y = GEO_BLOCKS_Y * IBlock.BLOCK_CELLS_Y;
-
- /** The regions array */
- private final AtomicReferenceArray _regions = new AtomicReferenceArray<>(GEO_REGIONS);
-
- public GeoDriver()
- {
- for (int i = 0; i < _regions.length(); i++)
- {
- _regions.set(i, NullRegion.INSTANCE);
- }
- }
-
- private void checkGeoX(int geoX)
- {
- if ((geoX < 0) || (geoX >= GEO_CELLS_X))
- {
- throw new IllegalArgumentException();
- }
- }
-
- private void checkGeoY(int geoY)
- {
- if ((geoY < 0) || (geoY >= GEO_CELLS_Y))
- {
- throw new IllegalArgumentException();
- }
- }
-
- private IRegion getRegion(int geoX, int geoY)
- {
- checkGeoX(geoX);
- checkGeoY(geoY);
- return _regions.get(((geoX / IRegion.REGION_CELLS_X) * GEO_REGIONS_Y) + (geoY / IRegion.REGION_CELLS_Y));
- }
-
- public void loadRegion(Path filePath, int regionX, int regionY) throws IOException
- {
- final int regionOffset = (regionX * GEO_REGIONS_Y) + regionY;
-
- try (RandomAccessFile raf = new RandomAccessFile(filePath.toFile(), "r"))
- {
- _regions.set(regionOffset, new Region(raf.getChannel().map(MapMode.READ_ONLY, 0, raf.length()).order(ByteOrder.LITTLE_ENDIAN)));
- }
- }
-
- public void unloadRegion(int regionX, int regionY)
- {
- _regions.set((regionX * GEO_REGIONS_Y) + regionY, NullRegion.INSTANCE);
- }
-
- public boolean hasGeoPos(int geoX, int geoY)
- {
- return getRegion(geoX, geoY).hasGeo();
- }
-
- public boolean checkNearestNswe(int geoX, int geoY, int worldZ, int nswe)
- {
- return getRegion(geoX, geoY).checkNearestNswe(geoX, geoY, worldZ, nswe);
- }
-
- public boolean checkNearestNswe(int geoX, int geoY, int worldZ, int nswe, int zDeltaLimit)
- {
- return getRegion(geoX, geoY).checkNearestNswe(geoX, geoY, worldZ, nswe, zDeltaLimit);
- }
-
- public int getNearestZ(int geoX, int geoY, int worldZ)
- {
- return getRegion(geoX, geoY).getNearestZ(geoX, geoY, worldZ);
- }
-
- public int getNearestZ(int geoX, int geoY, int worldZ, int zDeltaLimit)
- {
- return getRegion(geoX, geoY).getNearestZ(geoX, geoY, worldZ, zDeltaLimit);
- }
-
- public int getNextLowerZ(int geoX, int geoY, int worldZ)
- {
- return getRegion(geoX, geoY).getNextLowerZ(geoX, geoY, worldZ);
- }
-
- public int getNextLowerZ(int geoX, int geoY, int worldZ, int zDeltaLimit)
- {
- return getRegion(geoX, geoY).getNextLowerZ(geoX, geoY, worldZ, zDeltaLimit);
- }
-
- public int getNextHigherZ(int geoX, int geoY, int worldZ)
- {
- return getRegion(geoX, geoY).getNextHigherZ(geoX, geoY, worldZ);
- }
-
- public int getNextHigherZ(int geoX, int geoY, int worldZ, int zDeltaLimit)
- {
- return getRegion(geoX, geoY).getNextHigherZ(geoX, geoY, worldZ, zDeltaLimit);
- }
-
- public int getGeoX(int worldX)
- {
- if ((worldX < WORLD_MIN_X) || (worldX > WORLD_MAX_X))
- {
- throw new IllegalArgumentException();
- }
- return (worldX - WORLD_MIN_X) / 16;
- }
-
- public int getGeoY(int worldY)
- {
- if ((worldY < WORLD_MIN_Y) || (worldY > WORLD_MAX_Y))
- {
- throw new IllegalArgumentException();
- }
- return (worldY - WORLD_MIN_Y) / 16;
- }
-
- public int getWorldX(int geoX)
- {
- checkGeoX(geoX);
- return (geoX * 16) + WORLD_MIN_X + 8;
- }
-
- public int getWorldY(int geoY)
- {
- checkGeoY(geoY);
- return (geoY * 16) + WORLD_MIN_Y + 8;
- }
-}
diff --git a/others/L2J_GeoDriver/src/com/l2jserver/geodriver/IBlock.java b/others/L2J_GeoDriver/src/com/l2jserver/geodriver/IBlock.java
deleted file mode 100644
index 6ce52da2db..0000000000
--- a/others/L2J_GeoDriver/src/com/l2jserver/geodriver/IBlock.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Copyright (C) 2004-2015 L2J Server
- *
- * This file is part of L2J Server.
- *
- * L2J Server is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * L2J Server is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package com.l2jserver.geodriver;
-
-/**
- * @author HorridoJoho
- */
-public interface IBlock
-{
- public static final int TYPE_FLAT = 0;
- public static final int TYPE_COMPLEX = 1;
- public static final int TYPE_MULTILAYER = 2;
-
- /** Cells in a block on the x axis */
- public static final int BLOCK_CELLS_X = 8;
- /** Cells in a block on the y axis */
- public static final int BLOCK_CELLS_Y = 8;
- /** Cells in a block */
- public static final int BLOCK_CELLS = BLOCK_CELLS_X * BLOCK_CELLS_Y;
-
- boolean checkNearestNswe(int geoX, int geoY, int worldZ, int nswe);
-
- boolean checkNearestNswe(int geoX, int geoY, int worldZ, int nswe, int zDeltaLimit);
-
- int getNearestZ(int geoX, int geoY, int worldZ);
-
- int getNearestZ(int geoX, int geoY, int worldZ, int zDeltaLimit);
-
- int getNextLowerZ(int geoX, int geoY, int worldZ);
-
- int getNextLowerZ(int geoX, int geoY, int worldZ, int zDeltaLimit);
-
- int getNextHigherZ(int geoX, int geoY, int worldZ);
-
- int getNextHigherZ(int geoX, int geoY, int worldZ, int zDeltaLimit);
-}
diff --git a/others/L2J_GeoDriver/src/com/l2jserver/geodriver/IRegion.java b/others/L2J_GeoDriver/src/com/l2jserver/geodriver/IRegion.java
deleted file mode 100644
index a226599dca..0000000000
--- a/others/L2J_GeoDriver/src/com/l2jserver/geodriver/IRegion.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Copyright (C) 2004-2015 L2J Server
- *
- * This file is part of L2J Server.
- *
- * L2J Server is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * L2J Server is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package com.l2jserver.geodriver;
-
-/**
- * @author HorridoJoho
- */
-public interface IRegion
-{
- /** Blocks in a region on the x axis */
- public static final int REGION_BLOCKS_X = 256;
- /** Blocks in a region on the y axis */
- public static final int REGION_BLOCKS_Y = 256;
- /** Blocks in a region */
- public static final int REGION_BLOCKS = REGION_BLOCKS_X * REGION_BLOCKS_Y;
-
- /** Cells in a region on the x axis */
- public static final int REGION_CELLS_X = REGION_BLOCKS_X * IBlock.BLOCK_CELLS_X;
- /** Cells in a regioin on the y axis */
- public static final int REGION_CELLS_Y = REGION_BLOCKS_Y * IBlock.BLOCK_CELLS_Y;
- /** Cells in a region */
- public static final int REGION_CELLS = REGION_CELLS_X * REGION_CELLS_Y;
-
- boolean checkNearestNswe(int geoX, int geoY, int worldZ, int nswe);
-
- boolean checkNearestNswe(int geoX, int geoY, int worldZ, int nswe, int zDeltaLimit);
-
- int getNearestZ(int geoX, int geoY, int worldZ);
-
- int getNearestZ(int geoX, int geoY, int worldZ, int zDeltaLimit);
-
- int getNextLowerZ(int geoX, int geoY, int worldZ);
-
- int getNextLowerZ(int geoX, int geoY, int worldZ, int zDeltaLimit);
-
- int getNextHigherZ(int geoX, int geoY, int worldZ);
-
- int getNextHigherZ(int geoX, int geoY, int worldZ, int zDeltaLimit);
-
- boolean hasGeo();
-}
diff --git a/others/L2J_GeoDriver/src/com/l2jserver/geodriver/blocks/AbstractBlock.java b/others/L2J_GeoDriver/src/com/l2jserver/geodriver/blocks/AbstractBlock.java
deleted file mode 100644
index 3f20e1082a..0000000000
--- a/others/L2J_GeoDriver/src/com/l2jserver/geodriver/blocks/AbstractBlock.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright (C) 2004-2015 L2J Server
- *
- * This file is part of L2J Server.
- *
- * L2J Server is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * L2J Server is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package com.l2jserver.geodriver.blocks;
-
-import com.l2jserver.geodriver.IBlock;
-
-/**
- * @author HorridoJoho
- */
-public abstract class AbstractBlock implements IBlock
-{
- private int limitZ(int z, int newZ, int deltaLimit)
- {
- if (Math.abs(z - newZ) > deltaLimit)
- {
- return z;
- }
- return newZ;
- }
-
- @Override
- public int getNearestZ(int geoX, int geoY, int worldZ, int zDeltaLimit)
- {
- return limitZ(worldZ, getNearestZ(geoX, geoY, worldZ), zDeltaLimit);
- }
-
- @Override
- public int getNextLowerZ(int geoX, int geoY, int worldZ, int zDeltaLimit)
- {
- return limitZ(worldZ, getNextLowerZ(geoX, geoY, worldZ), zDeltaLimit);
- }
-
- @Override
- public int getNextHigherZ(int geoX, int geoY, int worldZ, int zDeltaLimit)
- {
- return limitZ(worldZ, getNextHigherZ(geoX, geoY, worldZ), zDeltaLimit);
- }
-}
diff --git a/others/L2J_GeoDriver/src/com/l2jserver/geodriver/blocks/ComplexBlock.java b/others/L2J_GeoDriver/src/com/l2jserver/geodriver/blocks/ComplexBlock.java
deleted file mode 100644
index c9f055c6ea..0000000000
--- a/others/L2J_GeoDriver/src/com/l2jserver/geodriver/blocks/ComplexBlock.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * Copyright (C) 2004-2015 L2J Server
- *
- * This file is part of L2J Server.
- *
- * L2J Server is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * L2J Server is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package com.l2jserver.geodriver.blocks;
-
-import java.nio.ByteBuffer;
-
-import com.l2jserver.geodriver.IBlock;
-
-/**
- * @author HorridoJoho
- */
-public final class ComplexBlock extends AbstractBlock
-{
- private final short[] _data;
-
- public ComplexBlock(ByteBuffer bb)
- {
- _data = new short[IBlock.BLOCK_CELLS];
- for (int cellOffset = 0; cellOffset < IBlock.BLOCK_CELLS; cellOffset++)
- {
- _data[cellOffset] = bb.getShort();
- }
- }
-
- private short _getCellData(int geoX, int geoY)
- {
- return _data[((geoX % IBlock.BLOCK_CELLS_X) * IBlock.BLOCK_CELLS_Y) + (geoY % IBlock.BLOCK_CELLS_Y)];
- }
-
- private byte _getCellNSWE(int geoX, int geoY)
- {
- return (byte) (_getCellData(geoX, geoY) & 0x000F);
- }
-
- private int _getCellHeight(int geoX, int geoY)
- {
- short height = (short) (_getCellData(geoX, geoY) & 0x0FFF0);
- return height >> 1;
- }
-
- @Override
- public boolean checkNearestNswe(int geoX, int geoY, int worldZ, int nswe)
- {
- return (_getCellNSWE(geoX, geoY) & nswe) == nswe;
- }
-
- @Override
- public boolean checkNearestNswe(int geoX, int geoY, int worldZ, int nswe, int zDeltaLimit)
- {
- int height = _getCellHeight(geoX, geoY);
- return Math.abs(worldZ - height) > zDeltaLimit ? true : (_getCellNSWE(geoX, geoY) & nswe) == nswe;
- }
-
- @Override
- public int getNearestZ(int geoX, int geoY, int worldZ)
- {
- return _getCellHeight(geoX, geoY);
- }
-
- @Override
- public int getNextLowerZ(int geoX, int geoY, int worldZ)
- {
- int cellHeight = _getCellHeight(geoX, geoY);
- return cellHeight <= worldZ ? cellHeight : worldZ;
- }
-
- @Override
- public int getNextHigherZ(int geoX, int geoY, int worldZ)
- {
- int cellHeight = _getCellHeight(geoX, geoY);
- return cellHeight >= worldZ ? cellHeight : worldZ;
- }
-}
diff --git a/others/L2J_GeoDriver/src/com/l2jserver/geodriver/blocks/FlatBlock.java b/others/L2J_GeoDriver/src/com/l2jserver/geodriver/blocks/FlatBlock.java
deleted file mode 100644
index 08d357d65c..0000000000
--- a/others/L2J_GeoDriver/src/com/l2jserver/geodriver/blocks/FlatBlock.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Copyright (C) 2004-2015 L2J Server
- *
- * This file is part of L2J Server.
- *
- * L2J Server is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * L2J Server is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package com.l2jserver.geodriver.blocks;
-
-import java.nio.ByteBuffer;
-
-/**
- * @author HorridoJoho
- */
-public class FlatBlock extends AbstractBlock
-{
- private final short _height;
-
- public FlatBlock(ByteBuffer bb)
- {
- _height = bb.getShort();
- }
-
- @Override
- public boolean checkNearestNswe(int geoX, int geoY, int worldZ, int nswe)
- {
- return true;
- }
-
- @Override
- public boolean checkNearestNswe(int geoX, int geoY, int worldZ, int nswe, int zDeltaLimit)
- {
- return true;
- }
-
- @Override
- public int getNearestZ(int geoX, int geoY, int worldZ)
- {
- return _height;
- }
-
- @Override
- public int getNextLowerZ(int geoX, int geoY, int worldZ)
- {
- return _height <= worldZ ? _height : worldZ;
- }
-
- @Override
- public int getNextHigherZ(int geoX, int geoY, int worldZ)
- {
- return _height >= worldZ ? _height : worldZ;
- }
-}
diff --git a/others/L2J_GeoDriver/src/com/l2jserver/geodriver/blocks/MultilayerBlock.java b/others/L2J_GeoDriver/src/com/l2jserver/geodriver/blocks/MultilayerBlock.java
deleted file mode 100644
index d9ac69b760..0000000000
--- a/others/L2J_GeoDriver/src/com/l2jserver/geodriver/blocks/MultilayerBlock.java
+++ /dev/null
@@ -1,196 +0,0 @@
-/*
- * Copyright (C) 2004-2015 L2J Server
- *
- * This file is part of L2J Server.
- *
- * L2J Server is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * L2J Server is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package com.l2jserver.geodriver.blocks;
-
-import java.nio.ByteBuffer;
-
-import com.l2jserver.geodriver.IBlock;
-
-/**
- * @author FBIagent
- */
-public class MultilayerBlock extends AbstractBlock
-{
- private final byte[] _data;
-
- /**
- * Initializes a new instance of this block reading the specified buffer.
- * @param bb the buffer
- */
- public MultilayerBlock(ByteBuffer bb)
- {
- int start = bb.position();
-
- for (int blockCellOffset = 0; blockCellOffset < IBlock.BLOCK_CELLS; blockCellOffset++)
- {
- byte nLayers = bb.get();
- if ((nLayers <= 0) || (nLayers > 125))
- {
- throw new RuntimeException("L2JGeoDriver: Geo file corrupted! Invalid layers count!");
- }
-
- bb.position(bb.position() + (nLayers * 2));
- }
-
- _data = new byte[bb.position() - start];
- bb.position(start);
- bb.get(_data);
- }
-
- private short _getNearestLayer(int geoX, int geoY, int worldZ)
- {
- int startOffset = _getCellDataOffset(geoX, geoY);
- byte nLayers = _data[startOffset];
- int endOffset = startOffset + 1 + (nLayers * 2);
-
- // 1 layer at least was required on loading so this is set at least once on the loop below
- int nearestDZ = 0;
- short nearestData = 0;
- for (int offset = startOffset + 1; offset < endOffset; offset += 2)
- {
- short layerData = _extractLayerData(offset);
- int layerZ = _extractLayerHeight(layerData);
- if (layerZ == worldZ)
- {
- // exact z
- return layerData;
- }
-
- int layerDZ = Math.abs(layerZ - worldZ);
- if ((offset == (startOffset + 1)) || (layerDZ < nearestDZ))
- {
- nearestDZ = layerDZ;
- nearestData = layerData;
- }
- }
-
- return nearestData;
- }
-
- private int _getCellDataOffset(int geoX, int geoY)
- {
- int cellLocalOffset = ((geoX % IBlock.BLOCK_CELLS_X) * IBlock.BLOCK_CELLS_Y) + (geoY % IBlock.BLOCK_CELLS_Y);
- int cellDataOffset = 0;
- // move index to cell, we need to parse on each request, OR we parse on creation and save indexes
- for (int i = 0; i < cellLocalOffset; i++)
- {
- cellDataOffset += 1 + (_data[cellDataOffset] * 2);
- }
- // now the index points to the cell we need
-
- return cellDataOffset;
- }
-
- private short _extractLayerData(int dataOffset)
- {
- return (short) ((_data[dataOffset] & 0xFF) | (_data[dataOffset + 1] << 8));
- }
-
- private int _getNearestNSWE(int geoX, int geoY, int worldZ)
- {
- return _extractLayerNswe(_getNearestLayer(geoX, geoY, worldZ));
- }
-
- private int _extractLayerNswe(short layer)
- {
- return (byte) (layer & 0x000F);
- }
-
- private int _extractLayerHeight(short layer)
- {
- layer = (short) (layer & 0x0fff0);
- return layer >> 1;
- }
-
- @Override
- public boolean checkNearestNswe(int geoX, int geoY, int worldZ, int nswe)
- {
- return (_getNearestNSWE(geoX, geoY, worldZ) & nswe) == nswe;
- }
-
- @Override
- public boolean checkNearestNswe(int geoX, int geoY, int worldZ, int nswe, int zDeltaLimit)
- {
- short layer = _getNearestLayer(geoX, geoY, worldZ);
- int height = _extractLayerHeight(layer);
- return Math.abs(worldZ - height) > zDeltaLimit ? true : (_extractLayerNswe(layer) & nswe) == nswe;
- }
-
- @Override
- public int getNearestZ(int geoX, int geoY, int worldZ)
- {
- return _extractLayerHeight(_getNearestLayer(geoX, geoY, worldZ));
- }
-
- @Override
- public int getNextLowerZ(int geoX, int geoY, int worldZ)
- {
- int startOffset = _getCellDataOffset(geoX, geoY);
- byte nLayers = _data[startOffset];
- int endOffset = startOffset + 1 + (nLayers * 2);
-
- int lowerZ = Integer.MIN_VALUE;
- for (int offset = startOffset + 1; offset < endOffset; offset += 2)
- {
- short layerData = _extractLayerData(offset);
-
- int layerZ = _extractLayerHeight(layerData);
- if (layerZ == worldZ)
- {
- // exact z
- return layerZ;
- }
-
- if ((layerZ < worldZ) && (layerZ > lowerZ))
- {
- lowerZ = layerZ;
- }
- }
-
- return lowerZ == Integer.MIN_VALUE ? worldZ : lowerZ;
- }
-
- @Override
- public int getNextHigherZ(int geoX, int geoY, int worldZ)
- {
- int startOffset = _getCellDataOffset(geoX, geoY);
- byte nLayers = _data[startOffset];
- int endOffset = startOffset + 1 + (nLayers * 2);
-
- int higherZ = Integer.MAX_VALUE;
- for (int offset = startOffset + 1; offset < endOffset; offset += 2)
- {
- short layerData = _extractLayerData(offset);
-
- int layerZ = _extractLayerHeight(layerData);
- if (layerZ == worldZ)
- {
- // exact z
- return layerZ;
- }
-
- if ((layerZ > worldZ) && (layerZ < higherZ))
- {
- higherZ = layerZ;
- }
- }
-
- return higherZ == Integer.MAX_VALUE ? worldZ : higherZ;
- }
-}
diff --git a/others/L2J_GeoDriver/src/com/l2jserver/geodriver/regions/NullRegion.java b/others/L2J_GeoDriver/src/com/l2jserver/geodriver/regions/NullRegion.java
deleted file mode 100644
index 8446da0497..0000000000
--- a/others/L2J_GeoDriver/src/com/l2jserver/geodriver/regions/NullRegion.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Copyright (C) 2004-2015 L2J Server
- *
- * This file is part of L2J Server.
- *
- * L2J Server is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * L2J Server is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package com.l2jserver.geodriver.regions;
-
-import com.l2jserver.geodriver.IRegion;
-
-/**
- * @author HorridoJoho
- */
-public final class NullRegion implements IRegion
-{
- public static final NullRegion INSTANCE = new NullRegion();
-
- @Override
- public boolean checkNearestNswe(int geoX, int geoY, int worldZ, int nswe)
- {
- return true;
- }
-
- @Override
- public boolean checkNearestNswe(int geoX, int geoY, int worldZ, int nswe, int zDeltaLimit)
- {
- return true;
- }
-
- @Override
- public int getNearestZ(int geoX, int geoY, int worldZ)
- {
- return worldZ;
- }
-
- @Override
- public int getNearestZ(int geoX, int geoY, int worldZ, int zDeltaLimit)
- {
- return worldZ;
- }
-
- @Override
- public int getNextLowerZ(int geoX, int geoY, int worldZ)
- {
- return worldZ;
- }
-
- @Override
- public int getNextLowerZ(int geoX, int geoY, int worldZ, int zDeltaLimit)
- {
- return worldZ;
- }
-
- @Override
- public int getNextHigherZ(int geoX, int geoY, int worldZ)
- {
- return worldZ;
- }
-
- @Override
- public int getNextHigherZ(int geoX, int geoY, int worldZ, int zDeltaLimit)
- {
- return worldZ;
- }
-
- @Override
- public boolean hasGeo()
- {
- return false;
- }
-}
diff --git a/others/L2J_GeoDriver/src/com/l2jserver/geodriver/regions/Region.java b/others/L2J_GeoDriver/src/com/l2jserver/geodriver/regions/Region.java
deleted file mode 100644
index b45f5b7ee9..0000000000
--- a/others/L2J_GeoDriver/src/com/l2jserver/geodriver/regions/Region.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * Copyright (C) 2004-2015 L2J Server
- *
- * This file is part of L2J Server.
- *
- * L2J Server is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * L2J Server is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package com.l2jserver.geodriver.regions;
-
-import java.nio.ByteBuffer;
-
-import com.l2jserver.geodriver.IBlock;
-import com.l2jserver.geodriver.IRegion;
-import com.l2jserver.geodriver.blocks.ComplexBlock;
-import com.l2jserver.geodriver.blocks.FlatBlock;
-import com.l2jserver.geodriver.blocks.MultilayerBlock;
-
-/**
- * @author HorridoJoho
- */
-public final class Region implements IRegion
-{
- private final IBlock[] _blocks = new IBlock[IRegion.REGION_BLOCKS];
-
- public Region(ByteBuffer bb)
- {
- for (int blockOffset = 0; blockOffset < IRegion.REGION_BLOCKS; blockOffset++)
- {
- int blockType = bb.get();
- switch (blockType)
- {
- case IBlock.TYPE_FLAT:
- _blocks[blockOffset] = new FlatBlock(bb);
- break;
- case IBlock.TYPE_COMPLEX:
- _blocks[blockOffset] = new ComplexBlock(bb);
- break;
- case IBlock.TYPE_MULTILAYER:
- _blocks[blockOffset] = new MultilayerBlock(bb);
- break;
- default:
- throw new RuntimeException("Invalid block type " + blockType + "!");
- }
- }
- }
-
- private IBlock getBlock(int geoX, int geoY)
- {
- return _blocks[(((geoX / IBlock.BLOCK_CELLS_X) % IRegion.REGION_BLOCKS_X) * IRegion.REGION_BLOCKS_Y) + ((geoY / IBlock.BLOCK_CELLS_Y) % IRegion.REGION_BLOCKS_Y)];
- }
-
- @Override
- public boolean checkNearestNswe(int geoX, int geoY, int worldZ, int nswe)
- {
- return getBlock(geoX, geoY).checkNearestNswe(geoX, geoY, worldZ, nswe);
- }
-
- @Override
- public boolean checkNearestNswe(int geoX, int geoY, int worldZ, int nswe, int zDeltaLimit)
- {
- return getBlock(geoX, geoY).checkNearestNswe(geoX, geoY, worldZ, nswe, zDeltaLimit);
- }
-
- @Override
- public int getNearestZ(int geoX, int geoY, int worldZ)
- {
- return getBlock(geoX, geoY).getNearestZ(geoX, geoY, worldZ);
- }
-
- @Override
- public int getNearestZ(int geoX, int geoY, int worldZ, int zDeltaLimit)
- {
- return getBlock(geoX, geoY).getNearestZ(geoX, geoY, worldZ, zDeltaLimit);
- }
-
- @Override
- public int getNextLowerZ(int geoX, int geoY, int worldZ)
- {
- return getBlock(geoX, geoY).getNextLowerZ(geoX, geoY, worldZ);
- }
-
- @Override
- public int getNextLowerZ(int geoX, int geoY, int worldZ, int zDeltaLimit)
- {
- return getBlock(geoX, geoY).getNextLowerZ(geoX, geoY, worldZ, zDeltaLimit);
- }
-
- @Override
- public int getNextHigherZ(int geoX, int geoY, int worldZ)
- {
- return getBlock(geoX, geoY).getNextHigherZ(geoX, geoY, worldZ);
- }
-
- @Override
- public int getNextHigherZ(int geoX, int geoY, int worldZ, int zDeltaLimit)
- {
- return getBlock(geoX, geoY).getNextHigherZ(geoX, geoY, worldZ, zDeltaLimit);
- }
-
- @Override
- public boolean hasGeo()
- {
- return true;
- }
-}
diff --git a/others/MMOCore/.classpath b/others/MMOCore/.classpath
deleted file mode 100644
index afb1b1e867..0000000000
--- a/others/MMOCore/.classpath
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/others/MMOCore/.project b/others/MMOCore/.project
deleted file mode 100644
index 117c63d86e..0000000000
--- a/others/MMOCore/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
- MMOCore
-
-
-
-
-
- org.eclipse.jdt.core.javabuilder
-
-
-
-
-
- org.eclipse.jdt.core.javanature
-
-
\ No newline at end of file
diff --git a/others/MMOCore/.settings/org.eclipse.core.resources.prefs b/others/MMOCore/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 4824b80263..0000000000
--- a/others/MMOCore/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-encoding/=UTF-8
diff --git a/others/MMOCore/.settings/org.eclipse.core.runtime.prefs b/others/MMOCore/.settings/org.eclipse.core.runtime.prefs
deleted file mode 100644
index f8a67de1d4..0000000000
--- a/others/MMOCore/.settings/org.eclipse.core.runtime.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-line.separator=\r\n
diff --git a/others/MMOCore/.settings/org.eclipse.jdt.core.prefs b/others/MMOCore/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 28d8dc089d..0000000000
--- a/others/MMOCore/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,409 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.codeComplete.argumentPrefixes=
-org.eclipse.jdt.core.codeComplete.argumentSuffixes=
-org.eclipse.jdt.core.codeComplete.fieldPrefixes=
-org.eclipse.jdt.core.codeComplete.fieldSuffixes=
-org.eclipse.jdt.core.codeComplete.localPrefixes=
-org.eclipse.jdt.core.codeComplete.localSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes=
-org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
-org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
-org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
-org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
-org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
-org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.8
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
-org.eclipse.jdt.core.compiler.problem.deadCode=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=no_tag
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
-org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
-org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
-org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
-org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
-org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=warning
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=warning
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=disabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=disabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.8
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-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_binary_expression=0
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=0
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=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_method_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-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_resources_in_try=81
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=0
-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_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_union_type_in_multicatch=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=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_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=next_line
-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.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.insert_new_line_before_root_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_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_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_member=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=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=insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=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_binary_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_superinterfaces=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_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_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_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_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=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_binary_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_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_superinterfaces=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_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_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_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_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_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_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_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-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_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-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.use_on_off_tags=true
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
-org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
diff --git a/others/MMOCore/.settings/org.eclipse.jdt.ui.prefs b/others/MMOCore/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 03260a7751..0000000000
--- a/others/MMOCore/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,72 +0,0 @@
-cleanup.add_default_serial_version_id=true
-cleanup.add_generated_serial_version_id=false
-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=true
-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.organize_imports=true
-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_type_arguments=true
-cleanup.remove_trailing_whitespaces=true
-cleanup.remove_trailing_whitespaces_all=false
-cleanup.remove_trailing_whitespaces_ignore_empty=true
-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.sort_members=false
-cleanup.sort_members_all=false
-cleanup.use_anonymous_class_creation=false
-cleanup.use_blocks=true
-cleanup.use_blocks_only_for_return_and_throw=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_type_arguments=false
-cleanup_profile=_L2J Mobius v0.2
-cleanup_settings_version=2
-eclipse.preferences.version=1
-formatter_profile=_L2J Mobius v0.3
-formatter_settings_version=12
-org.eclipse.jdt.ui.exception.name=e
-org.eclipse.jdt.ui.gettersetter.use.is=true
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=java;javax;org;com;
-org.eclipse.jdt.ui.javadoc=true
-org.eclipse.jdt.ui.keywordthis=false
-org.eclipse.jdt.ui.ondemandthreshold=99
-org.eclipse.jdt.ui.overrideannotation=true
-org.eclipse.jdt.ui.staticondemandthreshold=99
-org.eclipse.jdt.ui.text.custom_code_templates=/**\r\n * @return the ${bare_field_name}\r\n *//**\r\n * @param ${param} the ${bare_field_name} to set\r\n *//**\r\n * ${tags}\r\n *//*\r\n * This program is free software\: you can redistribute it and/or modify it under\r\n * the terms of the GNU General Public License as published by the Free Software\r\n * Foundation, either version 3 of the License, or (at your option) any later\r\n * version.\r\n * \r\n * This program is distributed in the hope that it will be useful, but WITHOUT\r\n * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS\r\n * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more\r\n * details.\r\n * \r\n * You should have received a copy of the GNU General Public License along with\r\n * this program. If not, see <http\://www.gnu.org/licenses/>.\r\n *//**\r\n * @author ${user}\r\n *\r\n * ${tags}\r\n *//**\r\n * \r\n *//**\r\n * ${tags}\r\n *//* (non-Javadoc)\r\n * ${see_to_overridden}\r\n *//**\r\n * ${tags}\r\n * ${see_to_target}\r\n */${filecomment}\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}\r\n\r\n\r\n\r\n// ${todo} Auto-generated catch block\r\n${exception_var}.printStackTrace();// ${todo} Auto-generated method stub\r\n${body_statement}${body_statement}\r\n// ${todo} Auto-generated constructor stubreturn ${field};${field} \= ${param};
diff --git a/others/MMOCore/.settings/org.eclipse.wst.sse.core.prefs b/others/MMOCore/.settings/org.eclipse.wst.sse.core.prefs
deleted file mode 100644
index a640cfdb22..0000000000
--- a/others/MMOCore/.settings/org.eclipse.wst.sse.core.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-eclipse.preferences.version=1
-task-tags/enabled=true
-task-tags/use-project-settings=true
diff --git a/others/MMOCore/.settings/org.eclipse.wst.validation.prefs b/others/MMOCore/.settings/org.eclipse.wst.validation.prefs
deleted file mode 100644
index 63a18689fb..0000000000
--- a/others/MMOCore/.settings/org.eclipse.wst.validation.prefs
+++ /dev/null
@@ -1,12 +0,0 @@
-DELEGATES_PREFERENCE=delegateValidatorList
-USER_BUILD_PREFERENCE=enabledBuildValidatorList
-USER_MANUAL_PREFERENCE=enabledManualValidatorList
-USER_PREFERENCE=overrideGlobalPreferencestruedisableAllValidationfalseversion1.2.400.v201204260100
-eclipse.preferences.version=1
-override=true
-suspend=false
-vals/org.eclipse.wst.dtd.core.dtdDTDValidator/global=FF01
-vals/org.eclipse.wst.html.core.HTMLValidator/global=FF01
-vals/org.eclipse.wst.html.ui.HTMLValidator/global=TF01
-vals/org.eclipse.wst.xml.core.xml/groups=0107include05111contentType128org.eclipse.core.runtime.xmlT111contentType134org.eclipse.wst.xml.core.xmlsourceT111contentType134org.eclipse.wst.xml.core.xslsourceT111contentType134org.eclipse.jst.jsp.core.tldsourceT07fileext03xmlF0107exclude08113projectNature134org.eclipse.jst.j2ee.ejb.EJBNature113projectNature130org.eclipse.jst.j2ee.EARNature04file08.projectT0104file110.classpathT0104file110.settings/T0204file03binF0204file05buildF0204file09build.xmlF01
-vf.version=3
diff --git a/others/MMOCore/build.xml b/others/MMOCore/build.xml
deleted file mode 100644
index 0d6fc13a6d..0000000000
--- a/others/MMOCore/build.xml
+++ /dev/null
@@ -1,71 +0,0 @@
-
-
-
- This script will build the MMOCore lib.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3, or (at your option)
- any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- 02111-1307, USA.
-
- http://www.gnu.org/copyleft/gpl.html
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ${l2j.changelog}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/others/MMOCore/src/org/mmocore/network/AbstractPacket.java b/others/MMOCore/src/org/mmocore/network/AbstractPacket.java
deleted file mode 100644
index 262615f479..0000000000
--- a/others/MMOCore/src/org/mmocore/network/AbstractPacket.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/* This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2, or (at your option)
- * any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *
- * http://www.gnu.org/copyleft/gpl.html
- */
-package org.mmocore.network;
-
-import java.nio.ByteBuffer;
-
-/**
- * @author KenM
- * @param
- */
-public abstract class AbstractPacket>
-{
- protected ByteBuffer _buf;
-
- protected T _client;
-
- public final T getClient()
- {
- return _client;
- }
-}
diff --git a/others/MMOCore/src/org/mmocore/network/IAcceptFilter.java b/others/MMOCore/src/org/mmocore/network/IAcceptFilter.java
deleted file mode 100644
index b6bfd00816..0000000000
--- a/others/MMOCore/src/org/mmocore/network/IAcceptFilter.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/* This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2, or (at your option)
- * any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *
- * http://www.gnu.org/copyleft/gpl.html
- */
-package org.mmocore.network;
-
-import java.nio.channels.SocketChannel;
-
-/**
- * @author KenM
- */
-public interface IAcceptFilter
-{
- public boolean accept(SocketChannel sc);
-}
diff --git a/others/MMOCore/src/org/mmocore/network/IClientFactory.java b/others/MMOCore/src/org/mmocore/network/IClientFactory.java
deleted file mode 100644
index a3db1c6f5c..0000000000
--- a/others/MMOCore/src/org/mmocore/network/IClientFactory.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/* This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2, or (at your option)
- * any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *
- * http://www.gnu.org/copyleft/gpl.html
- */
-package org.mmocore.network;
-
-/**
- * @author KenM
- * @param
- */
-public interface IClientFactory>
-{
- public T create(final MMOConnection con);
-}
diff --git a/others/MMOCore/src/org/mmocore/network/IMMOExecutor.java b/others/MMOCore/src/org/mmocore/network/IMMOExecutor.java
deleted file mode 100644
index e85fe079b0..0000000000
--- a/others/MMOCore/src/org/mmocore/network/IMMOExecutor.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/* This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2, or (at your option)
- * any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *
- * http://www.gnu.org/copyleft/gpl.html
- */
-package org.mmocore.network;
-
-/**
- * @author KenM
- * @param
- */
-public interface IMMOExecutor>
-{
- public void execute(ReceivablePacket packet);
-}
diff --git a/others/MMOCore/src/org/mmocore/network/IPacketHandler.java b/others/MMOCore/src/org/mmocore/network/IPacketHandler.java
deleted file mode 100644
index 35756a1d95..0000000000
--- a/others/MMOCore/src/org/mmocore/network/IPacketHandler.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/* This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2, or (at your option)
- * any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *
- * http://www.gnu.org/copyleft/gpl.html
- */
-package org.mmocore.network;
-
-import java.nio.ByteBuffer;
-
-/**
- * @author KenM
- * @param
- */
-public interface IPacketHandler>
-{
- public ReceivablePacket handlePacket(ByteBuffer buf, T client);
-}
diff --git a/others/MMOCore/src/org/mmocore/network/MMOClient.java b/others/MMOCore/src/org/mmocore/network/MMOClient.java
deleted file mode 100644
index 2bf3060408..0000000000
--- a/others/MMOCore/src/org/mmocore/network/MMOClient.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/* This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2, or (at your option)
- * any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *
- * http://www.gnu.org/copyleft/gpl.html
- */
-package org.mmocore.network;
-
-import java.nio.ByteBuffer;
-
-/**
- * @author KenM
- * @param
- */
-public abstract class MMOClient>
-{
- private final T _con;
-
- public MMOClient(final T con)
- {
- _con = con;
- }
-
- public T getConnection()
- {
- return _con;
- }
-
- public abstract boolean decrypt(final ByteBuffer buf, final int size);
-
- public abstract boolean encrypt(final ByteBuffer buf, final int size);
-
- protected abstract void onDisconnection();
-
- protected abstract void onForcedDisconnection();
-}
diff --git a/others/MMOCore/src/org/mmocore/network/MMOConnection.java b/others/MMOCore/src/org/mmocore/network/MMOConnection.java
deleted file mode 100644
index 72fced52e6..0000000000
--- a/others/MMOCore/src/org/mmocore/network/MMOConnection.java
+++ /dev/null
@@ -1,288 +0,0 @@
-/* This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2, or (at your option)
- * any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *
- * http://www.gnu.org/copyleft/gpl.html
- */
-package org.mmocore.network;
-
-import java.io.IOException;
-import java.net.InetAddress;
-import java.net.Socket;
-import java.net.SocketException;
-import java.nio.ByteBuffer;
-import java.nio.channels.CancelledKeyException;
-import java.nio.channels.ReadableByteChannel;
-import java.nio.channels.SelectionKey;
-import java.nio.channels.WritableByteChannel;
-
-/**
- * @author KenM
- * @param
- */
-public class MMOConnection>
-{
- private final SelectorThread _selectorThread;
-
- private final Socket _socket;
-
- private final InetAddress _address;
-
- private final ReadableByteChannel _readableByteChannel;
-
- private final WritableByteChannel _writableByteChannel;
-
- private final int _port;
-
- private final NioNetStackList> _sendQueue;
-
- private final SelectionKey _selectionKey;
-
- // private SendablePacket _closePacket;
-
- private ByteBuffer _readBuffer;
-
- private ByteBuffer _primaryWriteBuffer;
-
- private ByteBuffer _secondaryWriteBuffer;
-
- private volatile boolean _pendingClose;
-
- private T _client;
-
- public MMOConnection(final SelectorThread selectorThread, final Socket socket, final SelectionKey key, boolean tcpNoDelay)
- {
- _selectorThread = selectorThread;
- _socket = socket;
- _address = socket.getInetAddress();
- _readableByteChannel = socket.getChannel();
- _writableByteChannel = socket.getChannel();
- _port = socket.getPort();
- _selectionKey = key;
-
- _sendQueue = new NioNetStackList<>();
-
- try
- {
- _socket.setTcpNoDelay(tcpNoDelay);
- }
- catch (SocketException e)
- {
- e.printStackTrace();
- }
- }
-
- final void setClient(final T client)
- {
- _client = client;
- }
-
- public final T getClient()
- {
- return _client;
- }
-
- public final void sendPacket(final SendablePacket sp)
- {
- sp._client = _client;
-
- if (_pendingClose)
- {
- return;
- }
-
- synchronized (getSendQueue())
- {
- _sendQueue.addLast(sp);
- }
-
- if (!_sendQueue.isEmpty())
- {
- try
- {
- _selectionKey.interestOps(_selectionKey.interestOps() | SelectionKey.OP_WRITE);
- }
- catch (CancelledKeyException e)
- {
- // ignore
- }
- }
- }
-
- final SelectionKey getSelectionKey()
- {
- return _selectionKey;
- }
-
- public final InetAddress getInetAddress()
- {
- return _address;
- }
-
- public final int getPort()
- {
- return _port;
- }
-
- final void close() throws IOException
- {
- _socket.close();
- }
-
- final int read(final ByteBuffer buf) throws IOException
- {
- return _readableByteChannel.read(buf);
- }
-
- final int write(final ByteBuffer buf) throws IOException
- {
- return _writableByteChannel.write(buf);
- }
-
- final void createWriteBuffer(final ByteBuffer buf)
- {
- if (_primaryWriteBuffer == null)
- {
- _primaryWriteBuffer = _selectorThread.getPooledBuffer();
- _primaryWriteBuffer.put(buf);
- }
- else
- {
- final ByteBuffer temp = _selectorThread.getPooledBuffer();
- temp.put(buf);
-
- final int remaining = temp.remaining();
- _primaryWriteBuffer.flip();
- final int limit = _primaryWriteBuffer.limit();
-
- if (remaining >= _primaryWriteBuffer.remaining())
- {
- temp.put(_primaryWriteBuffer);
- _selectorThread.recycleBuffer(_primaryWriteBuffer);
- _primaryWriteBuffer = temp;
- }
- else
- {
- _primaryWriteBuffer.limit(remaining);
- temp.put(_primaryWriteBuffer);
- _primaryWriteBuffer.limit(limit);
- _primaryWriteBuffer.compact();
- _secondaryWriteBuffer = _primaryWriteBuffer;
- _primaryWriteBuffer = temp;
- }
- }
- }
-
- final boolean hasPendingWriteBuffer()
- {
- return _primaryWriteBuffer != null;
- }
-
- final void movePendingWriteBufferTo(final ByteBuffer dest)
- {
- _primaryWriteBuffer.flip();
- dest.put(_primaryWriteBuffer);
- _selectorThread.recycleBuffer(_primaryWriteBuffer);
- _primaryWriteBuffer = _secondaryWriteBuffer;
- _secondaryWriteBuffer = null;
- }
-
- final void setReadBuffer(final ByteBuffer buf)
- {
- _readBuffer = buf;
- }
-
- final ByteBuffer getReadBuffer()
- {
- return _readBuffer;
- }
-
- public final boolean isClosed()
- {
- return _pendingClose;
- }
-
- final NioNetStackList> getSendQueue()
- {
- return _sendQueue;
- }
-
- /*
- * final SendablePacket getClosePacket() { return _closePacket; }
- */
-
- @SuppressWarnings("unchecked")
- public final void close(final SendablePacket sp)
- {
-
- close(new SendablePacket[]
- {
- sp
- });
- }
-
- public final void close(final SendablePacket[] closeList)
- {
- if (_pendingClose)
- {
- return;
- }
-
- synchronized (getSendQueue())
- {
- if (!_pendingClose)
- {
- _pendingClose = true;
- _sendQueue.clear();
- for (SendablePacket sp : closeList)
- {
- _sendQueue.addLast(sp);
- }
- }
- }
-
- try
- {
- _selectionKey.interestOps(_selectionKey.interestOps() & ~SelectionKey.OP_WRITE);
- }
- catch (CancelledKeyException e)
- {
- // ignore
- }
-
- // _closePacket = sp;
- _selectorThread.closeConnection(this);
- }
-
- final void releaseBuffers()
- {
- if (_primaryWriteBuffer != null)
- {
- _selectorThread.recycleBuffer(_primaryWriteBuffer);
- _primaryWriteBuffer = null;
-
- if (_secondaryWriteBuffer != null)
- {
- _selectorThread.recycleBuffer(_secondaryWriteBuffer);
- _secondaryWriteBuffer = null;
- }
- }
-
- if (_readBuffer != null)
- {
- _selectorThread.recycleBuffer(_readBuffer);
- _readBuffer = null;
- }
- }
-}
diff --git a/others/MMOCore/src/org/mmocore/network/NioNetStackList.java b/others/MMOCore/src/org/mmocore/network/NioNetStackList.java
deleted file mode 100644
index 9559dd6027..0000000000
--- a/others/MMOCore/src/org/mmocore/network/NioNetStackList.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/* This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2, or (at your option)
- * any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *
- * http://www.gnu.org/copyleft/gpl.html
- */
-package org.mmocore.network;
-
-/**
- * @author Forsaiken
- * @param
- */
-public final class NioNetStackList
-{
- private final NioNetStackNode _start = new NioNetStackNode();
-
- private final NioNetStackNodeBuf _buf = new NioNetStackNodeBuf();
-
- private NioNetStackNode _end = new NioNetStackNode();
-
- public NioNetStackList()
- {
- clear();
- }
-
- public final void addLast(final E elem)
- {
- final NioNetStackNode newEndNode = _buf.removeFirst();
- _end._value = elem;
- _end._next = newEndNode;
- _end = newEndNode;
- }
-
- public final E removeFirst()
- {
- final NioNetStackNode old = _start._next;
- final E value = old._value;
- _start._next = old._next;
- _buf.addLast(old);
- return value;
- }
-
- public final boolean isEmpty()
- {
- return _start._next == _end;
- }
-
- public final void clear()
- {
- _start._next = _end;
- }
-
- protected final class NioNetStackNode
- {
- protected NioNetStackNode _next;
-
- protected E _value;
- }
-
- private final class NioNetStackNodeBuf
- {
- private final NioNetStackNode _start = new NioNetStackNode();
-
- private NioNetStackNode _end = new NioNetStackNode();
-
- NioNetStackNodeBuf()
- {
- _start._next = _end;
- }
-
- final void addLast(final NioNetStackNode node)
- {
- node._next = null;
- node._value = null;
- _end._next = node;
- _end = node;
- }
-
- final NioNetStackNode removeFirst()
- {
- if (_start._next == _end)
- {
- return new NioNetStackNode();
- }
-
- final NioNetStackNode old = _start._next;
- _start._next = old._next;
- return old;
- }
- }
-}
diff --git a/others/MMOCore/src/org/mmocore/network/NioNetStringBuffer.java b/others/MMOCore/src/org/mmocore/network/NioNetStringBuffer.java
deleted file mode 100644
index b3fae768ee..0000000000
--- a/others/MMOCore/src/org/mmocore/network/NioNetStringBuffer.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/* This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2, or (at your option)
- * any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *
- * http://www.gnu.org/copyleft/gpl.html
- */
-package org.mmocore.network;
-
-import java.nio.BufferOverflowException;
-
-/**
- * @author Forsaiken
- */
-public final class NioNetStringBuffer
-{
- private final char[] _buf;
-
- private final int _size;
-
- private int _len;
-
- public NioNetStringBuffer(final int size)
- {
- _buf = new char[size];
- _size = size;
- _len = 0;
- }
-
- public final void clear()
- {
- _len = 0;
- }
-
- public final void append(final char c)
- {
- if (_len < _size)
- {
- _buf[_len++] = c;
- }
- else
- {
- throw new BufferOverflowException();
- }
- }
-
- @Override
- public final String toString()
- {
- return new String(_buf, 0, _len);
- }
-}
diff --git a/others/MMOCore/src/org/mmocore/network/ReceivablePacket.java b/others/MMOCore/src/org/mmocore/network/ReceivablePacket.java
deleted file mode 100644
index f64989f626..0000000000
--- a/others/MMOCore/src/org/mmocore/network/ReceivablePacket.java
+++ /dev/null
@@ -1,141 +0,0 @@
-/* This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2, or (at your option)
- * any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *
- * http://www.gnu.org/copyleft/gpl.html
- */
-package org.mmocore.network;
-
-import java.nio.ByteBuffer;
-
-/**
- * @author KenM
- * @param
- */
-public abstract class ReceivablePacket> extends AbstractPacket implements Runnable
-{
- NioNetStringBuffer _sbuf;
-
- protected ReceivablePacket()
- {
-
- }
-
- protected abstract boolean read();
-
- @Override
- public abstract void run();
-
- /**
- * Reads byte[] from the buffer.
- * Reads as many bytes as the length of the array.
- * @param dst : the byte array which will be filled with the data.
- */
- protected final void readB(final byte[] dst)
- {
- _buf.get(dst);
- }
-
- /**
- * Reads byte[] from the buffer.
- * Reads as many bytes as the given length (len). Starts to fill the byte array from the given offset to offset + len.
- * @param dst : the byte array which will be filled with the data.
- * @param offset : starts to fill the byte array from the given offset.
- * @param len : the given length of bytes to be read.
- */
- protected final void readB(final byte[] dst, final int offset, final int len)
- {
- _buf.get(dst, offset, len);
- }
-
- /**
- * Reads byte from the buffer.
- * 8bit integer (00)
- * @return
- */
- protected final int readC()
- {
- return _buf.get() & 0xFF;
- }
-
- /**
- * Reads short from the buffer.
- * 16bit integer (00 00)
- * @return
- */
- protected final int readH()
- {
- return _buf.getShort() & 0xFFFF;
- }
-
- /**
- * Reads int from the buffer.
- * 32bit integer (00 00 00 00)
- * @return
- */
- protected final int readD()
- {
- return _buf.getInt();
- }
-
- /**
- * Reads long from the buffer.
- * 64bit integer (00 00 00 00 00 00 00 00)
- * @return
- */
- protected final long readQ()
- {
- return _buf.getLong();
- }
-
- /**
- * Reads double from the buffer.
- * 64bit double precision float (00 00 00 00 00 00 00 00)
- * @return
- */
- protected final double readF()
- {
- return _buf.getDouble();
- }
-
- /**
- * Reads String from the buffer.
- * @return
- */
- protected final String readS()
- {
- _sbuf.clear();
-
- char ch;
- while ((ch = _buf.getChar()) != 0)
- {
- _sbuf.append(ch);
- }
-
- return _sbuf.toString();
- }
-
- /**
- * packet forge purpose
- * @param data
- * @param client
- * @param sBuffer
- */
- public void setBuffers(ByteBuffer data, T client, NioNetStringBuffer sBuffer)
- {
- _buf = data;
- _client = client;
- _sbuf = sBuffer;
- }
-}
diff --git a/others/MMOCore/src/org/mmocore/network/SelectorConfig.java b/others/MMOCore/src/org/mmocore/network/SelectorConfig.java
deleted file mode 100644
index d9e39ffa08..0000000000
--- a/others/MMOCore/src/org/mmocore/network/SelectorConfig.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/* This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2, or (at your option)
- * any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *
- * http://www.gnu.org/copyleft/gpl.html
- */
-package org.mmocore.network;
-
-/**
- * @author KenM
- */
-public final class SelectorConfig
-{
- public int READ_BUFFER_SIZE = 64 * 1024;
-
- public int WRITE_BUFFER_SIZE = 64 * 1024;
-
- public int HELPER_BUFFER_COUNT = 20;
-
- public int HELPER_BUFFER_SIZE = 64 * 1024;
-
- /**
- * Server will try to send MAX_SEND_PER_PASS packets per socket write call
- * however it may send less if the write buffer was filled before achieving this value.
- */
- public int MAX_SEND_PER_PASS = 10;
-
- /**
- * Server will try to read MAX_READ_PER_PASS packets per socket read call
- * however it may read less if the read buffer was empty before achieving this value.
- */
- public int MAX_READ_PER_PASS = 10;
-
- /**
- * Defines how much time (in milis) should the selector sleep, an higher value increases throughput but also increases latency(to a max of the sleep value itself).
- * Also an extremely high value(usually > 100) will decrease throughput due to the server not doing enough sends per second (depends on max sends per pass).
- *
- * Recommended values:
- * 1 for minimal latency.
- * 10-30 for an latency/troughput trade-off based on your needs.
- */
- public int SLEEP_TIME = 10;
-
- /**
- * Used to enable/disable TCP_NODELAY which disable/enable Nagle's algorithm.
- *
- * Nagle's algorithm try to conserve bandwidth by minimizing the number of segments that are sent. When applications wish to decrease network latency and increase performance, they can disable Nagle's algorithm (that is enable TCP_NODELAY). Data will be sent earlier, at the cost of an increase
- * in bandwidth consumption. The Nagle's algorithm is described in RFC 896.
- *
- * Summary, data will be sent earlier, thus lowering the ping, at the cost of a small increase in bandwidth consumption.
- */
- public boolean TCP_NODELAY = false;
-}
diff --git a/others/MMOCore/src/org/mmocore/network/SelectorThread.java b/others/MMOCore/src/org/mmocore/network/SelectorThread.java
deleted file mode 100644
index a010d46ae5..0000000000
--- a/others/MMOCore/src/org/mmocore/network/SelectorThread.java
+++ /dev/null
@@ -1,703 +0,0 @@
-/* This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2, or (at your option)
- * any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *
- * http://www.gnu.org/copyleft/gpl.html
- */
-package org.mmocore.network;
-
-import java.io.IOException;
-import java.net.InetAddress;
-import java.net.InetSocketAddress;
-import java.net.ServerSocket;
-import java.nio.ByteBuffer;
-import java.nio.ByteOrder;
-import java.nio.channels.SelectionKey;
-import java.nio.channels.Selector;
-import java.nio.channels.ServerSocketChannel;
-import java.nio.channels.SocketChannel;
-import java.util.Iterator;
-import java.util.LinkedList;
-
-/**
- * @author KenM
- * Parts of design based on networkcore from WoodenGil
- * @param
- */
-public final class SelectorThread> extends Thread
-{
- // default BYTE_ORDER
- private static final ByteOrder BYTE_ORDER = ByteOrder.LITTLE_ENDIAN;
- // default HEADER_SIZE
- private static final int HEADER_SIZE = 2;
- // Selector
- private final Selector _selector;
- // Implementations
- private final IPacketHandler _packetHandler;
- private final IMMOExecutor _executor;
- private final IClientFactory _clientFactory;
- private final IAcceptFilter _acceptFilter;
- // Configurations
- private final int HELPER_BUFFER_SIZE;
- private final int HELPER_BUFFER_COUNT;
- private final int MAX_SEND_PER_PASS;
- private final int MAX_READ_PER_PASS;
- private final long SLEEP_TIME;
- public boolean TCP_NODELAY;
- // Main Buffers
- private final ByteBuffer DIRECT_WRITE_BUFFER;
- private final ByteBuffer WRITE_BUFFER;
- private final ByteBuffer READ_BUFFER;
- // String Buffer
- private final NioNetStringBuffer STRING_BUFFER;
- // ByteBuffers General Purpose Pool
- private final LinkedList _bufferPool;
- // Pending Close
- private final NioNetStackList> _pendingClose;
-
- private boolean _shutdown;
-
- public SelectorThread(final SelectorConfig sc, final IMMOExecutor executor, final IPacketHandler packetHandler, final IClientFactory clientFactory, final IAcceptFilter acceptFilter) throws IOException
- {
- super.setName("SelectorThread-" + super.getId());
-
- HELPER_BUFFER_SIZE = sc.HELPER_BUFFER_SIZE;
- HELPER_BUFFER_COUNT = sc.HELPER_BUFFER_COUNT;
- MAX_SEND_PER_PASS = sc.MAX_SEND_PER_PASS;
- MAX_READ_PER_PASS = sc.MAX_READ_PER_PASS;
- SLEEP_TIME = sc.SLEEP_TIME;
- TCP_NODELAY = sc.TCP_NODELAY;
-
- DIRECT_WRITE_BUFFER = ByteBuffer.allocateDirect(sc.WRITE_BUFFER_SIZE).order(BYTE_ORDER);
- WRITE_BUFFER = ByteBuffer.wrap(new byte[sc.WRITE_BUFFER_SIZE]).order(BYTE_ORDER);
- READ_BUFFER = ByteBuffer.wrap(new byte[sc.READ_BUFFER_SIZE]).order(BYTE_ORDER);
-
- STRING_BUFFER = new NioNetStringBuffer(64 * 1024);
-
- _pendingClose = new NioNetStackList<>();
- _bufferPool = new LinkedList<>();
-
- for (int i = 0; i < HELPER_BUFFER_COUNT; i++)
- {
- _bufferPool.addLast(ByteBuffer.wrap(new byte[HELPER_BUFFER_SIZE]).order(BYTE_ORDER));
- }
-
- _acceptFilter = acceptFilter;
- _packetHandler = packetHandler;
- _clientFactory = clientFactory;
- _executor = executor;
- _selector = Selector.open();
- }
-
- public final void openServerSocket(InetAddress address, int tcpPort) throws IOException
- {
- ServerSocketChannel selectable = ServerSocketChannel.open();
- selectable.configureBlocking(false);
-
- ServerSocket ss = selectable.socket();
-
- if (address == null)
- {
- ss.bind(new InetSocketAddress(tcpPort));
- }
- else
- {
- ss.bind(new InetSocketAddress(address, tcpPort));
- }
-
- selectable.register(_selector, SelectionKey.OP_ACCEPT);
- }
-
- final ByteBuffer getPooledBuffer()
- {
- if (_bufferPool.isEmpty())
- {
- return ByteBuffer.wrap(new byte[HELPER_BUFFER_SIZE]).order(BYTE_ORDER);
- }
-
- return _bufferPool.removeFirst();
- }
-
- final void recycleBuffer(final ByteBuffer buf)
- {
- if (_bufferPool.size() < HELPER_BUFFER_COUNT)
- {
- buf.clear();
- _bufferPool.addLast(buf);
- }
- }
-
- @SuppressWarnings("unchecked")
- @Override
- public final void run()
- {
- int selectedKeysCount = 0;
-
- SelectionKey key;
- MMOConnection con;
-
- Iterator selectedKeys;
-
- while (!_shutdown)
- {
- try
- {
- selectedKeysCount = _selector.selectNow();
- }
- catch (IOException e)
- {
- e.printStackTrace();
- }
-
- if (selectedKeysCount > 0)
- {
- selectedKeys = _selector.selectedKeys().iterator();
-
- while (selectedKeys.hasNext())
- {
- key = selectedKeys.next();
- selectedKeys.remove();
-
- con = (MMOConnection) key.attachment();
-
- switch (key.readyOps())
- {
- case SelectionKey.OP_CONNECT:
- finishConnection(key, con);
- break;
- case SelectionKey.OP_ACCEPT:
- acceptConnection(key, con);
- break;
- case SelectionKey.OP_READ:
- readPacket(key, con);
- break;
- case SelectionKey.OP_WRITE:
- writePacket(key, con);
- break;
- case SelectionKey.OP_READ | SelectionKey.OP_WRITE:
- writePacket(key, con);
- if (key.isValid())
- {
- readPacket(key, con);
- }
- break;
- }
- }
- }
-
- synchronized (_pendingClose)
- {
- while (!_pendingClose.isEmpty())
- {
- try
- {
- con = _pendingClose.removeFirst();
- writeClosePacket(con);
- closeConnectionImpl(con.getSelectionKey(), con);
- }
- catch (Exception e)
- {
- e.printStackTrace();
- }
- }
- }
-
- try
- {
- Thread.sleep(SLEEP_TIME);
- }
- catch (InterruptedException e)
- {
- e.printStackTrace();
- }
- }
- closeSelectorThread();
- }
-
- private final void finishConnection(final SelectionKey key, final MMOConnection con)
- {
- try
- {
- ((SocketChannel) key.channel()).finishConnect();
- }
- catch (IOException e)
- {
- con.getClient().onForcedDisconnection();
- closeConnectionImpl(key, con);
- }
-
- // key might have been invalidated on finishConnect()
- if (key.isValid())
- {
- key.interestOps(key.interestOps() | SelectionKey.OP_READ);
- key.interestOps(key.interestOps() & ~SelectionKey.OP_CONNECT);
- }
- }
-
- private final void acceptConnection(final SelectionKey key, MMOConnection con)
- {
- ServerSocketChannel ssc = (ServerSocketChannel) key.channel();
- SocketChannel sc;
-
- try
- {
- while ((sc = ssc.accept()) != null)
- {
- if ((_acceptFilter == null) || _acceptFilter.accept(sc))
- {
- sc.configureBlocking(false);
- SelectionKey clientKey = sc.register(_selector, SelectionKey.OP_READ);
- con = new MMOConnection<>(this, sc.socket(), clientKey, TCP_NODELAY);
- con.setClient(_clientFactory.create(con));
- clientKey.attach(con);
- }
- else
- {
- sc.socket().close();
- }
- }
- }
- catch (IOException e)
- {
- e.printStackTrace();
- }
- }
-
- private final void readPacket(final SelectionKey key, final MMOConnection con)
- {
- if (!con.isClosed())
- {
- ByteBuffer buf;
- if ((buf = con.getReadBuffer()) == null)
- {
- buf = READ_BUFFER;
- }
-
- // if we try to to do a read with no space in the buffer it will
- // read 0 bytes
- // going into infinite loop
- if (buf.position() == buf.limit())
- {
- System.exit(0);
- }
-
- int result = -2;
-
- try
- {
- result = con.read(buf);
- }
- catch (IOException e)
- {
- // error handling goes bellow
- }
-
- if (result > 0)
- {
- buf.flip();
-
- final T client = con.getClient();
-
- for (int i = 0; i < MAX_READ_PER_PASS; i++)
- {
- if (!tryReadPacket(key, client, buf, con))
- {
- return;
- }
- }
-
- // only reachable if MAX_READ_PER_PASS has been reached
- // check if there are some more bytes in buffer
- // and allocate/compact to prevent content lose.
- if (buf.remaining() > 0)
- {
- // did we use the READ_BUFFER ?
- if (buf == READ_BUFFER)
- {
- // move the pending byte to the connections READ_BUFFER
- allocateReadBuffer(con);
- }
- else
- {
- // move the first byte to the beginning :)
- buf.compact();
- }
- }
- }
- else
- {
- switch (result)
- {
- case 0:
- case -1:
- closeConnectionImpl(key, con);
- break;
- case -2:
- con.getClient().onForcedDisconnection();
- closeConnectionImpl(key, con);
- break;
- }
- }
- }
- }
-
- private final boolean tryReadPacket(final SelectionKey key, final T client, final ByteBuffer buf, final MMOConnection con)
- {
- switch (buf.remaining())
- {
- case 0:
- // buffer is full
- // nothing to read
- return false;
- case 1:
- // we don`t have enough data for header so we need to read
- key.interestOps(key.interestOps() | SelectionKey.OP_READ);
-
- // did we use the READ_BUFFER ?
- if (buf == READ_BUFFER)
- {
- // move the pending byte to the connections READ_BUFFER
- allocateReadBuffer(con);
- }
- else
- {
- // move the first byte to the beginning :)
- buf.compact();
- }
- return false;
- default:
- // data size excluding header size :>
- final int dataPending = (buf.getShort() & 0xFFFF) - HEADER_SIZE;
-
- // do we got enough bytes for the packet?
- if (dataPending <= buf.remaining())
- {
- // avoid parsing dummy packets (packets without body)
- if (dataPending > 0)
- {
- final int pos = buf.position();
- parseClientPacket(pos, buf, dataPending, client);
- buf.position(pos + dataPending);
- }
-
- // if we are done with this buffer
- if (!buf.hasRemaining())
- {
- if (buf != READ_BUFFER)
- {
- con.setReadBuffer(null);
- recycleBuffer(buf);
- }
- else
- {
- READ_BUFFER.clear();
- }
- return false;
- }
- return true;
- }
-
- // we don`t have enough bytes for the dataPacket so we need
- // to read
- key.interestOps(key.interestOps() | SelectionKey.OP_READ);
-
- // did we use the READ_BUFFER ?
- if (buf == READ_BUFFER)
- {
- // move it`s position
- buf.position(buf.position() - HEADER_SIZE);
- // move the pending byte to the connections READ_BUFFER
- allocateReadBuffer(con);
- }
- else
- {
- buf.position(buf.position() - HEADER_SIZE);
- buf.compact();
- }
- return false;
- }
- }
-
- private final void allocateReadBuffer(final MMOConnection con)
- {
- con.setReadBuffer(getPooledBuffer().put(READ_BUFFER));
- READ_BUFFER.clear();
- }
-
- private final void parseClientPacket(final int pos, final ByteBuffer buf, final int dataSize, final T client)
- {
- final boolean ret = client.decrypt(buf, dataSize);
-
- if (ret && buf.hasRemaining())
- {
- // apply limit
- final int limit = buf.limit();
- buf.limit(pos + dataSize);
- final ReceivablePacket cp = _packetHandler.handlePacket(buf, client);
-
- if (cp != null)
- {
- cp._buf = buf;
- cp._sbuf = STRING_BUFFER;
- cp._client = client;
-
- if (cp.read())
- {
- _executor.execute(cp);
- }
-
- cp._buf = null;
- cp._sbuf = null;
- }
- buf.limit(limit);
- }
- }
-
- private final void writeClosePacket(final MMOConnection con)
- {
- SendablePacket sp;
- synchronized (con.getSendQueue())
- {
- if (con.getSendQueue().isEmpty())
- {
- return;
- }
-
- while ((sp = con.getSendQueue().removeFirst()) != null)
- {
- WRITE_BUFFER.clear();
-
- putPacketIntoWriteBuffer(con.getClient(), sp);
-
- WRITE_BUFFER.flip();
-
- try
- {
- con.write(WRITE_BUFFER);
- }
- catch (IOException e)
- {
- // error handling goes on the if bellow
- }
- }
- }
- }
-
- protected final void writePacket(final SelectionKey key, final MMOConnection con)
- {
- if (!prepareWriteBuffer(con))
- {
- key.interestOps(key.interestOps() & ~SelectionKey.OP_WRITE);
- return;
- }
-
- DIRECT_WRITE_BUFFER.flip();
-
- final int size = DIRECT_WRITE_BUFFER.remaining();
-
- int result = -1;
-
- try
- {
- result = con.write(DIRECT_WRITE_BUFFER);
- }
- catch (IOException e)
- {
- // error handling goes on the if bellow
- }
-
- // check if no error happened
- if (result >= 0)
- {
- // check if we written everything
- if (result == size)
- {
- // complete write
- synchronized (con.getSendQueue())
- {
- if (con.getSendQueue().isEmpty() && !con.hasPendingWriteBuffer())
- {
- key.interestOps(key.interestOps() & ~SelectionKey.OP_WRITE);
- }
- }
- }
- else
- {
- // incomplete write
- con.createWriteBuffer(DIRECT_WRITE_BUFFER);
- }
- }
- else
- {
- con.getClient().onForcedDisconnection();
- closeConnectionImpl(key, con);
- }
- }
-
- private final boolean prepareWriteBuffer(final MMOConnection con)
- {
- boolean hasPending = false;
- DIRECT_WRITE_BUFFER.clear();
-
- // if there is pending content add it
- if (con.hasPendingWriteBuffer())
- {
- con.movePendingWriteBufferTo(DIRECT_WRITE_BUFFER);
- hasPending = true;
- }
-
- if ((DIRECT_WRITE_BUFFER.remaining() > 1) && !con.hasPendingWriteBuffer())
- {
- final NioNetStackList> sendQueue = con.getSendQueue();
- final T client = con.getClient();
- SendablePacket sp;
-
- for (int i = 0; i < MAX_SEND_PER_PASS; i++)
- {
- synchronized (con.getSendQueue())
- {
- if (sendQueue.isEmpty())
- {
- sp = null;
- }
- else
- {
- sp = sendQueue.removeFirst();
- }
- }
-
- if (sp == null)
- {
- break;
- }
-
- hasPending = true;
-
- // put into WriteBuffer
- putPacketIntoWriteBuffer(client, sp);
-
- WRITE_BUFFER.flip();
-
- if (DIRECT_WRITE_BUFFER.remaining() >= WRITE_BUFFER.limit())
- {
- DIRECT_WRITE_BUFFER.put(WRITE_BUFFER);
- }
- else
- {
- con.createWriteBuffer(WRITE_BUFFER);
- break;
- }
- }
- }
- return hasPending;
- }
-
- private final void putPacketIntoWriteBuffer(final T client, final SendablePacket sp)
- {
- WRITE_BUFFER.clear();
-
- // reserve space for the size
- final int headerPos = WRITE_BUFFER.position();
- final int dataPos = headerPos + HEADER_SIZE;
- WRITE_BUFFER.position(dataPos);
-
- // set the write buffer
- sp._buf = WRITE_BUFFER;
- // set the client.
- sp._client = client;
- // write content to buffer
- sp.write();
- // delete the write buffer
- sp._buf = null;
-
- // size (inclusive header)
- int dataSize = WRITE_BUFFER.position() - dataPos;
- WRITE_BUFFER.position(dataPos);
- client.encrypt(WRITE_BUFFER, dataSize);
-
- // recalculate size after encryption
- dataSize = WRITE_BUFFER.position() - dataPos;
-
- WRITE_BUFFER.position(headerPos);
- // write header
- WRITE_BUFFER.putShort((short) (dataSize + HEADER_SIZE));
- WRITE_BUFFER.position(dataPos + dataSize);
- }
-
- final void closeConnection(final MMOConnection con)
- {
- synchronized (_pendingClose)
- {
- _pendingClose.addLast(con);
- }
- }
-
- private final void closeConnectionImpl(final SelectionKey key, final MMOConnection con)
- {
- try
- {
- // notify connection
- con.getClient().onDisconnection();
- }
- finally
- {
- try
- {
- // close socket and the SocketChannel
- con.close();
- }
- catch (IOException e)
- {
- // ignore, we are closing anyway
- }
- finally
- {
- con.releaseBuffers();
- // clear attachment
- key.attach(null);
- // cancel key
- key.cancel();
- }
- }
- }
-
- public final void shutdown()
- {
- _shutdown = true;
- }
-
- protected void closeSelectorThread()
- {
- for (final SelectionKey key : _selector.keys())
- {
- try
- {
- key.channel().close();
- }
- catch (IOException e)
- {
- // ignore
- }
- }
-
- try
- {
- _selector.close();
- }
- catch (IOException e)
- {
- // Ignore
- }
- }
-}
diff --git a/others/MMOCore/src/org/mmocore/network/SendablePacket.java b/others/MMOCore/src/org/mmocore/network/SendablePacket.java
deleted file mode 100644
index 1fb8e7d732..0000000000
--- a/others/MMOCore/src/org/mmocore/network/SendablePacket.java
+++ /dev/null
@@ -1,120 +0,0 @@
-/* This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2, or (at your option)
- * any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *
- * http://www.gnu.org/copyleft/gpl.html
- */
-package org.mmocore.network;
-
-/**
- * @author KenM
- * @param
- */
-public abstract class SendablePacket> extends AbstractPacket
-{
- protected final void putInt(final int value)
- {
- _buf.putInt(value);
- }
-
- protected final void putDouble(final double value)
- {
- _buf.putDouble(value);
- }
-
- protected final void putFloat(final float value)
- {
- _buf.putFloat(value);
- }
-
- /**
- * Write byte to the buffer.
- * 8bit integer (00)
- * @param data
- */
- protected final void writeC(final int data)
- {
- _buf.put((byte) data);
- }
-
- /**
- * Write double to the buffer.
- * 64bit double precision float (00 00 00 00 00 00 00 00)
- * @param value
- */
- protected final void writeF(final double value)
- {
- _buf.putDouble(value);
- }
-
- /**
- * Write short to the buffer.
- * 16bit integer (00 00)
- * @param value
- */
- protected final void writeH(final int value)
- {
- _buf.putShort((short) value);
- }
-
- /**
- * Write int to the buffer.
- * 32bit integer (00 00 00 00)
- * @param value
- */
- protected final void writeD(final int value)
- {
- _buf.putInt(value);
- }
-
- /**
- * Write long to the buffer.
- * 64bit integer (00 00 00 00 00 00 00 00)
- * @param value
- */
- protected final void writeQ(final long value)
- {
- _buf.putLong(value);
- }
-
- /**
- * Write byte[] to the buffer.
- * 8bit integer array (00 ...)
- * @param data
- */
- protected final void writeB(final byte[] data)
- {
- _buf.put(data);
- }
-
- /**
- * Write String to the buffer.
- * @param text
- */
- protected final void writeS(final String text)
- {
- if (text != null)
- {
- final int len = text.length();
- for (int i = 0; i < len; i++)
- {
- _buf.putChar(text.charAt(i));
- }
- }
-
- _buf.putChar('\000');
- }
-
- protected abstract void write();
-}