Update gradle to 8.14.3, add formatting
This commit is contained in:
1 parent
3f4ff4678f
commit
437c5c95ce
15 files changed
+839
-141
No files matched your search
+69
-48
@@ -1,83 +1,104 @@
|
||||
/* This is free and unencumbered software released into the public domain */
|
||||
|
||||
/* ------------------------------ Plugins ------------------------------ */
|
||||
plugins {
|
||||
id("java") // Tell gradle this is a java project.
|
||||
id("java-library") // Import helper for source-based libraries.
|
||||
id("com.diffplug.spotless") version "7.0.4" // Import auto-formatter.
|
||||
id("com.gradleup.shadow") version "8.3.6" // Import shadow API.
|
||||
eclipse // Import eclipse plugin for IDE integration.
|
||||
id("java") // Import Java plugin.
|
||||
id("java-library") // Import Java Library plugin.
|
||||
id("com.diffplug.spotless") version "7.0.4" // Import Spotless plugin.
|
||||
id("com.gradleup.shadow") version "8.3.6" // Import Shadow plugin.
|
||||
id("checkstyle") // Import Checkstyle plugin.
|
||||
eclipse // Import Eclipse plugin.
|
||||
kotlin("jvm") version "2.1.21" // Import Kotlin JVM plugin.
|
||||
}
|
||||
|
||||
/* --------------------------- JDK / Kotlin ---------------------------- */
|
||||
java {
|
||||
// Declare java version.
|
||||
sourceCompatibility = JavaVersion.VERSION_17
|
||||
}
|
||||
|
||||
group = "me.barny1094875" // Declare bundle identifier.
|
||||
|
||||
version = "1.19.2" // Declare plugin version (will be in .jar).
|
||||
|
||||
val apiVersion = "1.19" // Declare minecraft server target version.
|
||||
|
||||
tasks.named<ProcessResources>("processResources") {
|
||||
val props = mapOf("version" to version, "apiVersion" to apiVersion)
|
||||
|
||||
inputs.properties(props) // Indicates to rerun if version changes.
|
||||
|
||||
filesMatching("plugin.yml") { expand(props) }
|
||||
from("LICENSE") { // Bundle license into .jars.
|
||||
into("/")
|
||||
sourceCompatibility = JavaVersion.VERSION_17 // Compile with JDK 17 compatibility.
|
||||
toolchain { // Select Java toolchain.
|
||||
languageVersion.set(JavaLanguageVersion.of(17)) // Use JDK 17.
|
||||
vendor.set(JvmVendorSpec.GRAAL_VM) // Use GraalVM CE.
|
||||
}
|
||||
}
|
||||
|
||||
repositories {
|
||||
mavenCentral()
|
||||
gradlePluginPortal()
|
||||
maven { url = uri("https://repo.purpurmc.org/snapshots") }
|
||||
kotlin { jvmToolchain(17) }
|
||||
|
||||
/* ----------------------------- Metadata ------------------------------ */
|
||||
group = "net.trueog.shulkerstacking-og" // Declare bundle identifier.
|
||||
|
||||
version = "1.0" // Declare plugin version (will be in .jar).
|
||||
|
||||
val apiVersion = "1.19" // Declare minecraft server target version.
|
||||
|
||||
/* ----------------------------- Resources ----------------------------- */
|
||||
tasks.named<ProcessResources>("processResources") {
|
||||
val props = mapOf("version" to version, "apiVersion" to apiVersion)
|
||||
inputs.properties(props) // Indicates to rerun if version changes.
|
||||
filesMatching("plugin.yml") { expand(props) }
|
||||
from("LICENSE") { into("/") } // Bundle licenses into jarfiles.
|
||||
}
|
||||
|
||||
/* ---------------------------- Repos ---------------------------------- */
|
||||
repositories {
|
||||
mavenCentral() // Import the Maven Central Maven Repository.
|
||||
gradlePluginPortal() // Import the Gradle Plugin Portal Maven Repository.
|
||||
maven { url = uri("https://repo.purpurmc.org/snapshots") } // Import the PurpurMC Maven Repository.
|
||||
}
|
||||
|
||||
/* ---------------------- Java project deps ---------------------------- */
|
||||
dependencies {
|
||||
compileOnly("org.purpurmc.purpur:purpur-api:1.19.4-R0.1-SNAPSHOT") // Declare purpur API version to be packaged.
|
||||
compileOnly("org.purpurmc.purpur:purpur-api:1.19.4-R0.1-SNAPSHOT") // Declare Purpur API version to be packaged.
|
||||
compileOnly("io.github.miniplaceholders:miniplaceholders-api:2.2.3") // Import MiniPlaceholders API.
|
||||
}
|
||||
|
||||
/* ---------------------- Reproducible jars ---------------------------- */
|
||||
tasks.withType<AbstractArchiveTask>().configureEach { // Ensure reproducible .jars
|
||||
isPreserveFileTimestamps = false
|
||||
isReproducibleFileOrder = true
|
||||
}
|
||||
|
||||
/* ----------------------------- Shadow -------------------------------- */
|
||||
tasks.shadowJar {
|
||||
exclude("io.github.miniplaceholders.*") // Exclude the MiniPlaceholders package from being shadowed.
|
||||
archiveClassifier.set("") // Use empty string instead of null.
|
||||
minimize()
|
||||
}
|
||||
|
||||
tasks.build {
|
||||
dependsOn(tasks.spotlessApply)
|
||||
dependsOn(tasks.shadowJar)
|
||||
}
|
||||
tasks.jar { archiveClassifier.set("part") } // Applies to root jarfile only.
|
||||
|
||||
tasks.jar { archiveClassifier.set("part") }
|
||||
tasks.build { dependsOn(tasks.spotlessApply, tasks.shadowJar) } // Build depends on spotless and shadow.
|
||||
|
||||
/* --------------------------- Javac opts ------------------------------- */
|
||||
tasks.withType<JavaCompile>().configureEach {
|
||||
options.compilerArgs.add("-parameters")
|
||||
options.compilerArgs.add("-Xlint:deprecation") // Triggers deprecation warning messages.
|
||||
options.encoding = "UTF-8"
|
||||
options.isFork = true
|
||||
}
|
||||
|
||||
java {
|
||||
toolchain {
|
||||
languageVersion = JavaLanguageVersion.of(17)
|
||||
vendor = JvmVendorSpec.GRAAL_VM
|
||||
}
|
||||
options.compilerArgs.add("-parameters") // Enable reflection for java code.
|
||||
options.isFork = true // Run javac in its own process.
|
||||
options.compilerArgs.add("-Xlint:deprecation") // Trigger deprecation warning messages.
|
||||
options.encoding = "UTF-8" // Use UTF-8 file encoding.
|
||||
}
|
||||
|
||||
/* ----------------------------- Auto Formatting ------------------------ */
|
||||
spotless {
|
||||
java {
|
||||
removeUnusedImports()
|
||||
palantirJavaFormat()
|
||||
eclipse().configFile("config/formatter/eclipse-java-formatter.xml") // Eclipse java formatting.
|
||||
leadingTabsToSpaces() // Convert leftover leading tabs to spaces.
|
||||
removeUnusedImports() // Remove imports that aren't being called.
|
||||
}
|
||||
kotlinGradle {
|
||||
ktfmt().kotlinlangStyle().configure { it.setMaxWidth(120) }
|
||||
target("build.gradle.kts", "settings.gradle.kts")
|
||||
ktfmt().kotlinlangStyle().configure { it.setMaxWidth(120) } // JetBrains Kotlin formatting.
|
||||
target("build.gradle.kts", "settings.gradle.kts") // Gradle files to format.
|
||||
}
|
||||
}
|
||||
|
||||
checkstyle {
|
||||
toolVersion = "10.18.1" // Declare checkstyle version to use.
|
||||
configFile = file("config/checkstyle/checkstyle.xml") // Point checkstyle to config file.
|
||||
isIgnoreFailures = true // Don't fail the build if checkstyle does not pass.
|
||||
isShowViolations = true // Show the violations in any IDE with the checkstyle plugin.
|
||||
}
|
||||
|
||||
tasks.named("compileJava") {
|
||||
dependsOn("spotlessApply") // Run spotless before compiling with the JDK.
|
||||
}
|
||||
|
||||
tasks.named("spotlessCheck") {
|
||||
dependsOn("spotlessApply") // Run spotless before checking if spotless ran.
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
<?xml version="1.0"?>
|
||||
<!DOCTYPE module PUBLIC
|
||||
"-//Checkstyle//DTD Checkstyle Configuration 1.3//EN"
|
||||
"https://checkstyle.org/dtds/configuration_1_3.dtd">
|
||||
<module name="Checker">
|
||||
|
||||
<module name="FileTabCharacter">
|
||||
<property name="eachLine" value="true"/>
|
||||
<property name="severity" value="error"/>
|
||||
</module>
|
||||
|
||||
<module name="TreeWalker">
|
||||
<module name="FinalLocalVariable"/>
|
||||
<module name="AvoidStarImport"/>
|
||||
<module name="Indentation">
|
||||
<property name="severity" value="ignore"/>
|
||||
</module>
|
||||
</module>
|
||||
|
||||
<module name="RegexpSingleline">
|
||||
<property name="format" value="\borg\.junit\.jupiter\.api\.Assertions\.fail\s*\(\s*"Not yet implemented"\s*\)\s*;"/>
|
||||
<property name="message" value="Remove placeholder fail() and implement the test."/>
|
||||
<property name="ignoreCase" value="true"/>
|
||||
<property name="severity" value="warning"/>
|
||||
</module>
|
||||
|
||||
<module name="RegexpSingleline">
|
||||
<property name="format" value="(?<!\w)fail\s*\(\s*"Not yet implemented"\s*\)\s*;"/>
|
||||
<property name="message" value="Remove placeholder fail() and implement the test."/>
|
||||
<property name="severity" value="warning"/>
|
||||
</module>
|
||||
|
||||
</module>
|
||||
|
||||
@@ -0,0 +1,404 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<profiles version="23">
|
||||
<profile kind="CodeFormatterProfile" name="TrueOG Network Formatting" version="23">
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_ellipsis" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_for_statment" value="common_lines"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries" value="true"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.comment.format_javadoc_comments" value="true"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.indentation.size" value="4"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_enum_constant_declaration" value="common_lines"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.align_with_spaces" value="false"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.continuation_indentation" value="2"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.number_of_blank_lines_before_code_block" value="0"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_switch_case_expressions" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.blank_lines_after_package" value="1"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant" value="16"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.comment.indent_root_tags" value="false"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch" value="true"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.enabling_tag" value="@formatter:on"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.comment.count_line_length_from_starting_position" value="true"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_record_components" value="16"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration" value="16"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.wrap_before_multiplicative_operator" value="true"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line" value="false"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references" value="0"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_logical_operator" value="16"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.keep_annotation_declaration_on_one_line" value="one_line_never"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_record_declaration" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_enum_constant" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_multiplicative_operator" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments" value="false"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_abstract_method" value="0"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.keep_enum_constant_declaration_on_one_line" value="one_line_never"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.align_variable_declarations_on_columns" value="false"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch" value="16"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body" value="1"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line" value="false"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause" value="common_lines"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call" value="16"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_multiplicative_operator" value="16"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.keep_anonymous_type_declaration_on_one_line" value="one_line_never"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_switch_case_expressions" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.wrap_before_shift_operator" value="true"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header" value="true"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_block" value="next_line_on_wrap"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.number_of_blank_lines_at_end_of_code_block" value="1"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_bitwise_operator" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line" value="false"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration" value="16"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_type_parameters" value="0"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_compact_loops" value="16"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment" value="false"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.keep_simple_for_body_on_same_line" value="false"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.wrap_before_switch_case_arrow_operator" value="false"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_unary_operator" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column" value="false"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_annotation" value="common_lines"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_ellipsis" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_annotations_on_enum_constant" value="49"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.text_block_indentation" value="0"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.align_type_members_on_columns" value="false"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_assignment" value="0"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_module_statements" value="16"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header" value="true"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.comment.align_tags_names_descriptions" value="false"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.keep_if_then_body_block_on_one_line" value="one_line_never"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration" value="1"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line" value="false"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.align_assignment_statements_on_columns" value="false"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_permitted_types" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_block_in_case" value="next_line_on_wrap"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_conditional_expression_chain" value="0"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.comment.format_header" value="false"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_type_annotations" value="0"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression" value="16"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.wrap_before_assertion_message_operator" value="true"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_method_declaration" value="0"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines" value="2147483647"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries" value="true"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_bitwise_operator" value="16"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration" value="next_line_on_wrap"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_resources_in_try" value="80"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation" value="16"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column" value="false"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.comment.format_source_code" value="true"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_field" value="0"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_method" value="1"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration" value="16"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_not_operator" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.comment.format_html" value="true"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_method_delcaration" value="common_lines"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_compact_if" value="16"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.indent_empty_lines" value="false"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_type_arguments" value="0"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_unary_operator" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation" value="0"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_annotations_on_package" value="49"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch" value="true"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_label" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header" value="true"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_arrow_in_switch_case" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_permitted_types_in_type_declaration" value="16"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_record_header" value="true"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases" value="true"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.wrap_before_bitwise_operator" value="true"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.comment.javadoc_do_not_separate_block_tags" value="false"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.comment.indent_tag_description" value="false"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line" value="false"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_record_constructor" value="next_line_on_wrap"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_string_concatenation" value="16"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_multiple_fields" value="16"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_array_initializer" value="next_line_on_wrap"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_shift_operator" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_shift_operator" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.keep_simple_do_while_body_on_same_line" value="false"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_record_components" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested" value="true"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header" value="0"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.wrap_before_additive_operator" value="true"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.keep_simple_getter_setter_on_one_line" value="false"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_block_in_case_after_arrow" value="next_line_on_wrap"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_string_concatenation" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.join_lines_in_comments" value="true"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_record_declaration" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_relational_operator" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.blank_lines_between_import_groups" value="1"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_logical_operator" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation" value="common_lines"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.blank_lines_after_imports" value="1"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_record_declaration" value="common_lines"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_switch_statement" value="common_lines"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_arrow_in_switch_default" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.disabling_tag" value="@formatter:off"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_enum_constants" value="16"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_imports" value="1"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.number_of_blank_lines_at_end_of_method_body" value="1"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_if_while_statement" value="common_lines"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_arrow_in_switch_case" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations" value="1"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.keep_switch_body_block_on_one_line" value="one_line_never"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column" value="false"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.indent_statements_compare_to_block" value="true"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration" value="next_line_on_wrap"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_expressions_in_switch_case_with_arrow" value="16"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.comment.align_tags_descriptions_grouped" value="true"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.comment.line_length" value="80"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.use_on_off_tags" value="true"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.keep_method_body_on_one_line" value="one_line_never"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.keep_loop_body_block_on_one_line" value="one_line_never"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_method_declaration" value="next_line_on_wrap"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.keep_type_declaration_on_one_line" value="one_line_never"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_additive_operator" value="16"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_record_constructor" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_relational_operator" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.keep_record_declaration_on_one_line" value="one_line_never"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration" value="next_line_on_wrap"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_lambda_body" value="next_line_on_wrap"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.compact_else_if" value="true"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation" value="16"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration" value="16"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_annotations_on_parameter" value="0"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment" value="false"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_relational_operator" value="0"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer" value="16"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve" value="1"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.align_arrows_in_switch_on_columns" value="false"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_additive_operator" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_string_concatenation" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.comment.format_line_comments" value="true"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.align_selector_in_method_invocation_on_expression_first_line" value="true"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_record_declaration" value="next_line_on_wrap"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.keep_switch_case_with_arrow_on_one_line" value="one_line_never"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_expressions_in_switch_case_with_colon" value="16"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.number_of_blank_lines_after_code_block" value="1"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration" value="16"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_conditional_expression" value="80"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_annotations_on_type" value="49"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_annotations_on_local_variable" value="49"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration" value="next_line_on_wrap"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_arrow_in_switch_default" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.comment.insert_new_line_between_different_tags" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_additive_operator" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.join_wrapped_lines" value="true"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_annotations_on_field" value="49"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.wrap_before_conditional_operator" value="true"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases" value="true"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.join_line_comments" value="false"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_shift_operator" value="0"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations" value="false"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause" value="common_lines"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.keep_code_block_on_one_line" value="one_line_never"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_record_components" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.tabulation.size" value="4"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_bitwise_operator" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer" value="2"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_record_declaration" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration" value="16"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.wrap_before_assignment_operator" value="false"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_switch" value="next_line_on_wrap"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_switch_case_with_arrow" value="20"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.keep_lambda_body_block_on_one_line" value="one_line_never"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_annotations_on_method" value="49"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.keep_record_constructor_on_one_line" value="one_line_never"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_record_declaration" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line" value="true"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_assertion_message" value="16"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk" value="1"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_member_type" value="1"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_logical_operator" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression" value="16"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_record_declaration" value="16"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_semicolon" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.wrap_before_relational_operator" value="true"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.comment.format_block_comments" value="true"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration" value="16"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.blank_lines_after_last_class_body_declaration" value="1"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.indent_statements_compare_to_body" value="true"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.keep_simple_while_body_on_same_line" value="false"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.wrap_before_logical_operator" value="true"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.blank_lines_between_statement_group_in_switch" value="0"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_lambda_declaration" value="common_lines"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_permitted_types" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.keep_enum_declaration_on_one_line" value="one_line_never"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_enum_constant" value="next_line_on_wrap"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_type_declaration" value="next_line_on_wrap"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_multiplicative_operator" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_package" value="0"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header" value="true"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.comment.indent_parameter_description" value="false"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_code_block" value="1"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.tabulation.char" value="space"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.wrap_before_string_concatenation" value="true"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.lineSplit" value="120"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch" value="insert"/>
|
||||
</profile>
|
||||
</profiles>
|
||||
Whitespace-only changes.
+1
-1
@@ -1,6 +1,6 @@
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.2-bin.zip
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.3-bin.zip
|
||||
networkTimeout=10000
|
||||
validateDistributionUrl=true
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
|
||||
+32
-14
@@ -12,19 +12,25 @@ import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.meta.BlockStateMeta;
|
||||
|
||||
public class ShulkerBoxHopperHandler implements Listener {
|
||||
|
||||
@EventHandler
|
||||
public void shulkerBoxHopperHandler(InventoryMoveItemEvent event) {
|
||||
|
||||
ItemStack eventItem = event.getItem();
|
||||
Inventory eventDestination = event.getDestination();
|
||||
Inventory eventSource = event.getSource();
|
||||
// if the item is a shulker box
|
||||
if (eventItem.getType().toString().contains("SHULKER_BOX")) {
|
||||
|
||||
// check that the shulker box is empty
|
||||
BlockStateMeta shulkerMeta = (BlockStateMeta) eventItem.getItemMeta();
|
||||
ShulkerBox shulker = (ShulkerBox) shulkerMeta.getBlockState();
|
||||
if (!shulker.getInventory().isEmpty()) {
|
||||
|
||||
return;
|
||||
|
||||
}
|
||||
|
||||
// cancel the event so that I can guarantee where the item will be
|
||||
event.setCancelled(true);
|
||||
// item is always in eventSource now
|
||||
@@ -32,46 +38,58 @@ public class ShulkerBoxHopperHandler implements Listener {
|
||||
Material shulkerType = eventItem.getType();
|
||||
// loop through the destination to see if there is a shulker box stack to add to
|
||||
for (int i = 0; i < eventDestination.getSize(); i++) {
|
||||
|
||||
ItemStack destinationItem = eventDestination.getItem(i);
|
||||
if (destinationItem == null) {
|
||||
|
||||
continue;
|
||||
|
||||
}
|
||||
|
||||
// if the item is the right kind of shulker box
|
||||
if (destinationItem.getType().equals(shulkerType)) {
|
||||
|
||||
// check that the shulker boxes are emtpy
|
||||
BlockStateMeta destinationShulkerMeta = (BlockStateMeta) destinationItem.getItemMeta();
|
||||
ShulkerBox destinationShulker = (ShulkerBox) destinationShulkerMeta.getBlockState();
|
||||
if (!destinationShulker.getInventory().isEmpty()) {
|
||||
|
||||
continue;
|
||||
|
||||
}
|
||||
|
||||
// check that the item stack is not full
|
||||
if (destinationItem.getAmount() > 63) {
|
||||
|
||||
continue;
|
||||
|
||||
}
|
||||
|
||||
destinationItem.setAmount(destinationItem.getAmount() + 1);
|
||||
Bukkit.getScheduler()
|
||||
.runTaskLater(
|
||||
ShulkerStacking_OG.getPlugin(),
|
||||
() -> {
|
||||
eventItem.setAmount(eventItem.getAmount() - 1);
|
||||
},
|
||||
1);
|
||||
Bukkit.getScheduler().runTaskLater(ShulkerStacking_OG.getPlugin(), () -> {
|
||||
|
||||
eventItem.setAmount(eventItem.getAmount() - 1);
|
||||
|
||||
}, 1);
|
||||
return;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// if no shulker box was found, try to put it in the first empty slot
|
||||
if (eventDestination.addItem(eventItem).isEmpty()) {
|
||||
Bukkit.getScheduler()
|
||||
.runTaskLater(
|
||||
ShulkerStacking_OG.getPlugin(),
|
||||
() -> {
|
||||
eventItem.setAmount(eventItem.getAmount() - 1);
|
||||
},
|
||||
1);
|
||||
|
||||
Bukkit.getScheduler().runTaskLater(ShulkerStacking_OG.getPlugin(), () -> {
|
||||
|
||||
eventItem.setAmount(eventItem.getAmount() - 1);
|
||||
|
||||
}, 1);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
+29
@@ -17,58 +17,87 @@ public class ShulkerBoxPickupHandler implements Listener {
|
||||
|
||||
ItemStack item = event.getItem().getItemStack();
|
||||
if (!event.getEntity().getType().equals(EntityType.PLAYER)) {
|
||||
|
||||
return;
|
||||
|
||||
}
|
||||
|
||||
Player player = (Player) event.getEntity();
|
||||
Inventory playerInventory = player.getInventory();
|
||||
if (item.getType().toString().contains("SHULKER_BOX")) {
|
||||
|
||||
BlockStateMeta shulker1Meta = (BlockStateMeta) item.getItemMeta();
|
||||
ShulkerBox shulker1 = (ShulkerBox) shulker1Meta.getBlockState();
|
||||
// check the inventory of the ground item shulker
|
||||
if (shulker1.getInventory().isEmpty()) {
|
||||
|
||||
// check for shulker box stacks to add to
|
||||
for (int i = 0; i < playerInventory.getSize(); i++) {
|
||||
|
||||
ItemStack inventoryItem = playerInventory.getItem(i);
|
||||
if (inventoryItem == null) {
|
||||
|
||||
continue;
|
||||
|
||||
}
|
||||
|
||||
if (inventoryItem.getType().equals(item.getType())) {
|
||||
|
||||
BlockStateMeta shulker2Meta = (BlockStateMeta) inventoryItem.getItemMeta();
|
||||
ShulkerBox shulker2 = (ShulkerBox) shulker2Meta.getBlockState();
|
||||
// check the inventory of the inventory shulker
|
||||
if (shulker2.getInventory().isEmpty()) {
|
||||
|
||||
if (inventoryItem.getAmount() + item.getAmount() <= 64) {
|
||||
|
||||
inventoryItem.setAmount(inventoryItem.getAmount() + item.getAmount());
|
||||
event.getItem().setHealth(-1);
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
|
||||
}
|
||||
|
||||
if (inventoryItem.getAmount() <= 64) {
|
||||
|
||||
item.setAmount((item.getAmount() + inventoryItem.getAmount()) - 64);
|
||||
if (item.getAmount() <= 0) {
|
||||
|
||||
event.getItem().setHealth(-1);
|
||||
return;
|
||||
|
||||
}
|
||||
|
||||
event.getItem().setItemStack(item);
|
||||
inventoryItem.setAmount(64);
|
||||
event.setCancelled(true);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// look for air gaps to add the shulkers to
|
||||
for (int i = 0; i < playerInventory.getSize(); i++) {
|
||||
|
||||
ItemStack inventoryItem = playerInventory.getItem(i);
|
||||
if (inventoryItem == null) {
|
||||
|
||||
playerInventory.setItem(i, item);
|
||||
event.getItem().setHealth(-1);
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
+44
-8
@@ -17,10 +17,15 @@ public class ShulkerBoxStackingController implements Listener {
|
||||
public void shulkerBoxStacking(InventoryClickEvent event) {
|
||||
|
||||
if (event.getCurrentItem() == null) {
|
||||
|
||||
return;
|
||||
|
||||
}
|
||||
|
||||
if (event.getCursor() == null) {
|
||||
|
||||
return;
|
||||
|
||||
}
|
||||
|
||||
ItemStack currentItem = event.getCurrentItem();
|
||||
@@ -29,28 +34,43 @@ public class ShulkerBoxStackingController implements Listener {
|
||||
|
||||
// if the player combines two shulker stacks
|
||||
if (event.getClick().equals(ClickType.LEFT)) {
|
||||
|
||||
if (currentItem.getType().toString().contains("SHULKER_BOX")) {
|
||||
|
||||
if (cursorItem.getType().equals(currentItem.getType())) {
|
||||
|
||||
NormalLeftClick.NormalLeftClickShulkerBox(currentItem, cursorItem, event);
|
||||
return;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// if the player sets down just one shulker box from a stack
|
||||
if (event.getClick().equals(ClickType.RIGHT)) {
|
||||
|
||||
if (currentItem.getType().toString().contains("SHULKER_BOX")) {
|
||||
|
||||
if (cursorItem.getType().equals(currentItem.getType())) {
|
||||
|
||||
NormalRightClick.NormalRightClickShulkerBox(currentItem, cursorItem, event);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// if the player puts down a shulker box stack
|
||||
if (event.getClick().equals(ClickType.LEFT)) {
|
||||
|
||||
if (cursorItem.getType().toString().contains("SHULKER_BOX")) {
|
||||
|
||||
// check if the shulker box stack only contains one shulker box
|
||||
if (cursorItem.getAmount() != 1) {
|
||||
|
||||
// remove the stack from their cursor
|
||||
// and replace it with whatever was in the slot
|
||||
event.getWhoClicked().setItemOnCursor(currentItem);
|
||||
@@ -59,8 +79,11 @@ public class ShulkerBoxStackingController implements Listener {
|
||||
// stop default behaviors
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// if the player double clicked in the inventory on a shulker box
|
||||
@@ -68,35 +91,48 @@ public class ShulkerBoxStackingController implements Listener {
|
||||
// including in their inventory
|
||||
|
||||
if (event.getClick().equals(ClickType.DOUBLE_CLICK)) {
|
||||
|
||||
if (cursorItem.getType().toString().contains("SHULKER_BOX")) {
|
||||
|
||||
DoubleClick.DoubleClickShulkerBox(cursorItem, event);
|
||||
return;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// if the player shift clicks on a shukler box stack
|
||||
// we need to handle the stacking logic
|
||||
if (event.getClick().equals(ClickType.SHIFT_LEFT) || event.getClick().equals(ClickType.SHIFT_RIGHT)) {
|
||||
|
||||
if (currentItem.getType().toString().contains("SHULKER_BOX")) {
|
||||
|
||||
ShiftRightLeftClick.ShiftRightLeftClickShulkerBox(event);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// if the player users CTRL+<drop> on the shulkers
|
||||
// drop the whole stack, instead of just one
|
||||
if (event.getClick().equals(ClickType.CONTROL_DROP)) {
|
||||
|
||||
if (currentItem.getType().toString().contains("SHULKER_BOX")) {
|
||||
event.getWhoClicked()
|
||||
.getWorld()
|
||||
.dropItem(event.getWhoClicked().getLocation(), event.getCurrentItem(), (Item) -> {
|
||||
Item.setVelocity(event.getWhoClicked()
|
||||
.getLocation()
|
||||
.getDirection()
|
||||
.multiply(0.35)
|
||||
.setY(0.25));
|
||||
|
||||
event.getWhoClicked().getWorld().dropItem(event.getWhoClicked().getLocation(), event.getCurrentItem(),
|
||||
(Item) ->
|
||||
{
|
||||
|
||||
Item.setVelocity(
|
||||
event.getWhoClicked().getLocation().getDirection().multiply(0.35).setY(0.25));
|
||||
|
||||
});
|
||||
event.getCurrentItem().setAmount(0);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
+5
-6
@@ -11,12 +11,11 @@ public class ShulkerDragDupePrevention implements Listener {
|
||||
|
||||
@EventHandler(priority = EventPriority.LOWEST)
|
||||
public void shulkerDragDupePrevent(InventoryCloseEvent event) {
|
||||
|
||||
ShulkerStacking_OG.isInventoryClosed.put(event.getPlayer().getUniqueId(), true);
|
||||
Bukkit.getScheduler()
|
||||
.runTaskLater(
|
||||
ShulkerStacking_OG.getPlugin(),
|
||||
() -> ShulkerStacking_OG.isInventoryClosed.put(
|
||||
event.getPlayer().getUniqueId(), false),
|
||||
2);
|
||||
Bukkit.getScheduler().runTaskLater(ShulkerStacking_OG.getPlugin(),
|
||||
() -> ShulkerStacking_OG.isInventoryClosed.put(event.getPlayer().getUniqueId(), false), 2);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -17,100 +17,128 @@ public class ShulkerDragHandler implements Listener {
|
||||
|
||||
@EventHandler(priority = EventPriority.MONITOR)
|
||||
public void shulkerBoxDrag(InventoryDragEvent event) {
|
||||
|
||||
if (!event.getOldCursor().getType().toString().contains("SHULKER_BOX")) {
|
||||
|
||||
return;
|
||||
|
||||
}
|
||||
|
||||
// disable default behavior
|
||||
event.setCancelled(true);
|
||||
|
||||
Bukkit.getScheduler().runTask(ShulkerStacking_OG.getPlugin(), () -> {
|
||||
|
||||
// check if the inventory was closed in the last tick
|
||||
// this prevents a dupe glitch from occurring
|
||||
if (ShulkerStacking_OG.isInventoryClosed.get(event.getWhoClicked().getUniqueId())) {
|
||||
|
||||
return;
|
||||
|
||||
}
|
||||
|
||||
ItemStack shulkerBoxes = event.getOldCursor();
|
||||
int numberOfSlotsDragged = event.getInventorySlots().size();
|
||||
ArrayList<Integer> slotsDragged =
|
||||
new ArrayList<>(event.getInventorySlots().stream().toList());
|
||||
ArrayList<Integer> slotsDragged = new ArrayList<>(event.getInventorySlots().stream().toList());
|
||||
Inventory dragInventory = event.getView().getBottomInventory();
|
||||
// right click drag
|
||||
if (event.getType().equals(DragType.SINGLE)) {
|
||||
|
||||
// if the player drags a stack of shulker boxes
|
||||
if (shulkerBoxes.getAmount() <= 1) {
|
||||
|
||||
return;
|
||||
|
||||
}
|
||||
|
||||
// set each slot to the appropriate amount of shulkers
|
||||
for (int i = 0; i < numberOfSlotsDragged; i++) {
|
||||
|
||||
if (dragInventory.getItem(slotsDragged.get(i)) == null
|
||||
|| dragInventory.getItem(slotsDragged.get(i)).getType() == Material.AIR) {
|
||||
|| dragInventory.getItem(slotsDragged.get(i)).getType() == Material.AIR)
|
||||
{
|
||||
|
||||
dragInventory.setItem(slotsDragged.get(i), new ItemStack(shulkerBoxes.getType(), 1));
|
||||
|
||||
} else if (dragInventory.getItem(slotsDragged.get(i)) != null
|
||||
&& dragInventory
|
||||
.getItem(slotsDragged.get(i))
|
||||
.getType()
|
||||
.equals(shulkerBoxes.getType())) {
|
||||
dragInventory
|
||||
.getItem(slotsDragged.get(i))
|
||||
.setAmount(dragInventory
|
||||
.getItem(slotsDragged.get(i))
|
||||
.getAmount()
|
||||
+ 1);
|
||||
&& dragInventory.getItem(slotsDragged.get(i)).getType().equals(shulkerBoxes.getType()))
|
||||
{
|
||||
|
||||
dragInventory.getItem(slotsDragged.get(i))
|
||||
.setAmount(dragInventory.getItem(slotsDragged.get(i)).getAmount() + 1);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// remove the shulker boxes from the player's cursor
|
||||
event.getWhoClicked()
|
||||
.setItemOnCursor(
|
||||
new ItemStack(shulkerBoxes.getType(), shulkerBoxes.getAmount() - numberOfSlotsDragged));
|
||||
event.getWhoClicked().setItemOnCursor(
|
||||
new ItemStack(shulkerBoxes.getType(), shulkerBoxes.getAmount() - numberOfSlotsDragged));
|
||||
|
||||
}
|
||||
// left click drag
|
||||
else if (event.getType().equals(DragType.EVEN)) {
|
||||
|
||||
// if the player drags a stack of shulker boxes
|
||||
if (shulkerBoxes.getAmount() <= 1) {
|
||||
|
||||
return;
|
||||
|
||||
}
|
||||
|
||||
// set each slot to the appropriate amount of shulkers
|
||||
for (int i = 0; i < numberOfSlotsDragged; i++) {
|
||||
|
||||
if (dragInventory.getItem(slotsDragged.get(i)) == null
|
||||
|| dragInventory.getItem(slotsDragged.get(i)).getType() == Material.AIR) {
|
||||
ItemStack newShulkerBoxes =
|
||||
new ItemStack(shulkerBoxes.getType(), shulkerBoxes.getAmount() / numberOfSlotsDragged);
|
||||
|| dragInventory.getItem(slotsDragged.get(i)).getType() == Material.AIR)
|
||||
{
|
||||
|
||||
ItemStack newShulkerBoxes = new ItemStack(shulkerBoxes.getType(),
|
||||
shulkerBoxes.getAmount() / numberOfSlotsDragged);
|
||||
dragInventory.setItem(slotsDragged.get(i), newShulkerBoxes);
|
||||
if (newShulkerBoxes.getAmount() > 64) {
|
||||
|
||||
shulkerBoxes.setAmount(shulkerBoxes.getAmount() - (64 - shulkerBoxes.getAmount()));
|
||||
newShulkerBoxes.setAmount(64);
|
||||
slotsDragged.remove(i);
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
dragInventory.setItem(slotsDragged.get(i), newShulkerBoxes);
|
||||
|
||||
} else if (dragInventory.getItem(slotsDragged.get(i)) != null
|
||||
&& dragInventory
|
||||
.getItem(slotsDragged.get(i))
|
||||
.getType()
|
||||
.equals(shulkerBoxes.getType())) {
|
||||
ItemStack newShulkerBoxes =
|
||||
new ItemStack(shulkerBoxes.getType(), shulkerBoxes.getAmount() / numberOfSlotsDragged);
|
||||
dragInventory
|
||||
.getItem(slotsDragged.get(i))
|
||||
.setAmount(dragInventory
|
||||
.getItem(slotsDragged.get(i))
|
||||
.getAmount()
|
||||
&& dragInventory.getItem(slotsDragged.get(i)).getType().equals(shulkerBoxes.getType()))
|
||||
{
|
||||
|
||||
ItemStack newShulkerBoxes = new ItemStack(shulkerBoxes.getType(),
|
||||
shulkerBoxes.getAmount() / numberOfSlotsDragged);
|
||||
dragInventory.getItem(slotsDragged.get(i))
|
||||
.setAmount(dragInventory.getItem(slotsDragged.get(i)).getAmount()
|
||||
+ shulkerBoxes.getAmount() / numberOfSlotsDragged);
|
||||
if (newShulkerBoxes.getAmount() > 64) {
|
||||
|
||||
shulkerBoxes.setAmount(shulkerBoxes.getAmount() - (64 - shulkerBoxes.getAmount()));
|
||||
newShulkerBoxes.setAmount(64);
|
||||
slotsDragged.remove(i);
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
dragInventory.setItem(slotsDragged.get(i), newShulkerBoxes);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
event.getWhoClicked()
|
||||
.setItemOnCursor(
|
||||
new ItemStack(shulkerBoxes.getType(), shulkerBoxes.getAmount() % numberOfSlotsDragged));
|
||||
|
||||
event.getWhoClicked().setItemOnCursor(
|
||||
new ItemStack(shulkerBoxes.getType(), shulkerBoxes.getAmount() % numberOfSlotsDragged));
|
||||
((Player) event.getWhoClicked()).updateInventory();
|
||||
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
+37
-13
@@ -13,10 +13,12 @@ import org.bukkit.inventory.meta.BlockStateMeta;
|
||||
public class DoubleClick {
|
||||
|
||||
public static void DoubleClickShulkerBox(ItemStack cursorItem, InventoryClickEvent event) {
|
||||
|
||||
// check that the held shulker box is empty
|
||||
Inventory heldShulkerInventory =
|
||||
((ShulkerBox) ((BlockStateMeta) cursorItem.getItemMeta()).getBlockState()).getInventory();
|
||||
Inventory heldShulkerInventory = ((ShulkerBox) ((BlockStateMeta) cursorItem.getItemMeta()).getBlockState())
|
||||
.getInventory();
|
||||
if (heldShulkerInventory.isEmpty()) {
|
||||
|
||||
// loop through the inventory, and the player's inventory
|
||||
// and count up the shulker boxes
|
||||
// ignore boxes in result slots
|
||||
@@ -47,31 +49,35 @@ public class DoubleClick {
|
||||
// up to 64 boxes
|
||||
int shulkerBoxCount = cursorItem.getAmount();
|
||||
while (tempContainerInventory.first(shulkerType) != -1) {
|
||||
|
||||
int firstShulker = tempContainerInventory.first(shulkerType);
|
||||
// grab the inventory of the shulker box in that slot
|
||||
Inventory shulkerInventory = ((ShulkerBox) ((BlockStateMeta) tempContainerInventory
|
||||
.getItem(firstShulker)
|
||||
.getItemMeta())
|
||||
.getBlockState())
|
||||
.getInventory();
|
||||
// if that inventory is not empty, delete it from the temporary inventory, and continue on
|
||||
.getItem(firstShulker).getItemMeta()).getBlockState()).getInventory();
|
||||
// if that inventory is not empty, delete it from the temporary inventory, and
|
||||
// continue on
|
||||
// otherwise, do the rest of the logic
|
||||
if (!shulkerInventory.isEmpty()) {
|
||||
|
||||
tempContainerInventory.setItem(firstShulker, new ItemStack(Material.AIR));
|
||||
continue;
|
||||
|
||||
}
|
||||
|
||||
// if the shulker box is in a RESULT slot, then break from
|
||||
// the loop, since that is always the last slot
|
||||
InventoryType.SlotType slotType = eventView.getSlotType(firstShulker);
|
||||
if (slotType.equals(InventoryType.SlotType.RESULT)) {
|
||||
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
// if the shulker box count would have gone above 64
|
||||
ItemStack shulkerStackItem = containerInventory.getItem(firstShulker);
|
||||
int shulkerStackAmount = shulkerStackItem.getAmount();
|
||||
if (shulkerBoxCount + shulkerStackAmount > 64) {
|
||||
|
||||
// get how many shulker boxes we need to get to 64
|
||||
int shulkersRequired = 64 - shulkerBoxCount;
|
||||
// remove that many boxes from the stack
|
||||
@@ -79,31 +85,36 @@ public class DoubleClick {
|
||||
shulkerBoxCount += shulkersRequired;
|
||||
// break from the loop, since we have a stack of shulkers collected
|
||||
break;
|
||||
|
||||
} else {
|
||||
|
||||
// add the shulkerStackAmount to shulkerBoxCount
|
||||
shulkerBoxCount += shulkerStackAmount;
|
||||
// remove the shulkers from that slot
|
||||
containerInventory.setItem(firstShulker, new ItemStack(Material.AIR));
|
||||
tempContainerInventory.setItem(firstShulker, new ItemStack(Material.AIR));
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// loop through the player's inventory
|
||||
while (tempPlayerInventory.first(shulkerType) != -1) {
|
||||
|
||||
int firstShulker = tempPlayerInventory.first(shulkerType);
|
||||
|
||||
// grab the inventory of the shulker box in that slot
|
||||
Inventory shulkerInventory = ((ShulkerBox) ((BlockStateMeta) tempPlayerInventory
|
||||
.getItem(firstShulker)
|
||||
.getItemMeta())
|
||||
.getBlockState())
|
||||
.getInventory();
|
||||
// if that inventory is not empty, delete it from the temporary inventory, and continue on
|
||||
Inventory shulkerInventory = ((ShulkerBox) ((BlockStateMeta) tempPlayerInventory.getItem(firstShulker)
|
||||
.getItemMeta()).getBlockState()).getInventory();
|
||||
// if that inventory is not empty, delete it from the temporary inventory, and
|
||||
// continue on
|
||||
// otherwise, do the rest of the logic
|
||||
if (!shulkerInventory.isEmpty()) {
|
||||
|
||||
// remove this non-empty shulker from the temporary inventory
|
||||
tempPlayerInventory.setItem(firstShulker, new ItemStack(Material.AIR));
|
||||
continue;
|
||||
|
||||
}
|
||||
|
||||
// if the shulker box is in a RESULT slot, then break from
|
||||
@@ -111,12 +122,16 @@ public class DoubleClick {
|
||||
// add the container's size to the here to offset it to the player's inventory
|
||||
InventoryType.SlotType slotType = eventView.getSlotType(firstShulker + containerSize);
|
||||
if (slotType.equals(InventoryType.SlotType.RESULT)) {
|
||||
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
// if the shulker box count would have gone above 64
|
||||
ItemStack shulkerStackItem = playerInventory.getItem(firstShulker);
|
||||
int shulkerStackAmount = shulkerStackItem.getAmount();
|
||||
if (shulkerBoxCount + shulkerStackAmount > 64) {
|
||||
|
||||
// get how many shulker boxes we need to get to 64
|
||||
int shulkersRequired = 64 - shulkerBoxCount;
|
||||
// remove that many boxes from the stack
|
||||
@@ -124,24 +139,33 @@ public class DoubleClick {
|
||||
shulkerBoxCount += shulkersRequired;
|
||||
// break from the loop, since we have a stack of shulkers collected
|
||||
break;
|
||||
|
||||
} else {
|
||||
|
||||
// add the shulkerStackAmount to shulkerBoxCount
|
||||
shulkerBoxCount += shulkerStackAmount;
|
||||
// remove the shulkers from that slot
|
||||
playerInventory.setItem(firstShulker, new ItemStack(Material.AIR));
|
||||
tempPlayerInventory.setItem(firstShulker, new ItemStack(Material.AIR));
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// now that we have the number of shulkers to grab, put them into the cursor
|
||||
// if the shulkerBoxCount was 1, then don't do anything
|
||||
if (shulkerBoxCount != 1) {
|
||||
|
||||
ItemStack newShulkers = new ItemStack(shulkerType);
|
||||
newShulkers.setAmount(shulkerBoxCount);
|
||||
event.getWhoClicked().setItemOnCursor(newShulkers);
|
||||
// cancel default behavior
|
||||
event.setCancelled(true);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
+17
-6
@@ -7,8 +7,10 @@ import org.bukkit.inventory.meta.BlockStateMeta;
|
||||
|
||||
public class NormalLeftClick {
|
||||
|
||||
public static void NormalLeftClickShulkerBox(
|
||||
ItemStack currentItem, ItemStack cursorItem, InventoryClickEvent event) {
|
||||
public static void NormalLeftClickShulkerBox(ItemStack currentItem, ItemStack cursorItem,
|
||||
InventoryClickEvent event)
|
||||
{
|
||||
|
||||
// check that both shulker boxes are empty
|
||||
// get the inventories of the shulker boxes
|
||||
BlockStateMeta shulker1Meta = (BlockStateMeta) currentItem.getItemMeta();
|
||||
@@ -17,23 +19,32 @@ public class NormalLeftClick {
|
||||
ShulkerBox shulker2 = (ShulkerBox) shulker2Meta.getBlockState();
|
||||
// check the inventory of each shulker
|
||||
if (shulker1.getInventory().isEmpty()) {
|
||||
|
||||
if (shulker2.getInventory().isEmpty()) {
|
||||
|
||||
if (currentItem.getAmount() + cursorItem.getAmount() <= 64) {
|
||||
|
||||
// add the shulker itemStacks together
|
||||
event.getCurrentItem()
|
||||
.setAmount(event.getCursor().getAmount()
|
||||
+ event.getCurrentItem().getAmount());
|
||||
.setAmount(event.getCursor().getAmount() + event.getCurrentItem().getAmount());
|
||||
event.getWhoClicked().getItemOnCursor().setAmount(0);
|
||||
|
||||
} else {
|
||||
|
||||
// add the shulkers until we are at 64
|
||||
event.getWhoClicked()
|
||||
.getItemOnCursor()
|
||||
event.getWhoClicked().getItemOnCursor()
|
||||
.setAmount((currentItem.getAmount() + cursorItem.getAmount()) - 64);
|
||||
event.getCurrentItem().setAmount(64);
|
||||
|
||||
}
|
||||
|
||||
// stop default behaviors
|
||||
event.setCancelled(true);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
+11
-2
@@ -7,8 +7,9 @@ import org.bukkit.inventory.meta.BlockStateMeta;
|
||||
|
||||
public class NormalRightClick {
|
||||
|
||||
public static void NormalRightClickShulkerBox(
|
||||
ItemStack currentItem, ItemStack cursorItem, InventoryClickEvent event) {
|
||||
public static void NormalRightClickShulkerBox(ItemStack currentItem, ItemStack cursorItem,
|
||||
InventoryClickEvent event)
|
||||
{
|
||||
|
||||
// check that both shulker boxes are empty
|
||||
// get the inventories of the shulker boxes
|
||||
@@ -18,13 +19,21 @@ public class NormalRightClick {
|
||||
ShulkerBox shulker2 = (ShulkerBox) shulker2Meta.getBlockState();
|
||||
// check the inventory of each shulker
|
||||
if (shulker1.getInventory().isEmpty()) {
|
||||
|
||||
if (shulker2.getInventory().isEmpty()) {
|
||||
|
||||
if (currentItem.getAmount() < 64) {
|
||||
|
||||
event.getCurrentItem().setAmount(currentItem.getAmount() + 1);
|
||||
event.getCursor().setAmount(cursorItem.getAmount() - 1);
|
||||
event.setCancelled(true);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
+90
-10
@@ -11,6 +11,7 @@ import org.bukkit.inventory.ItemStack;
|
||||
public class ShiftRightLeftClick {
|
||||
|
||||
public static void ShiftRightLeftClickShulkerBox(InventoryClickEvent event) {
|
||||
|
||||
// check what kind of inventory was shift-clicked in
|
||||
// regardless, loop through the inventory(ies) and add the
|
||||
// shulker box stack to the
|
||||
@@ -30,14 +31,19 @@ public class ShiftRightLeftClick {
|
||||
|
||||
// if it was the player's inventory
|
||||
if (inventoryType.equals(InventoryType.CRAFTING)) {
|
||||
|
||||
// check if the slot was a hotbar slot or not
|
||||
if (event.getSlotType().equals(InventoryType.SlotType.QUICKBAR)) {
|
||||
|
||||
// remove the hotbar of the tempInventory
|
||||
for (int i = 0; i < 9; i++) {
|
||||
|
||||
tempPlayerInventory.setItem(i, new ItemStack(Material.AIR));
|
||||
|
||||
}
|
||||
|
||||
// check the top part of the inventory for any shulker stacks that are not 64 yet
|
||||
// check the top part of the inventory for any shulker stacks that are not 64
|
||||
// yet
|
||||
while (tempPlayerInventory.first(shulkerBoxType) != -1) {
|
||||
|
||||
int firstShulkerSlot = tempPlayerInventory.first(shulkerBoxType);
|
||||
@@ -45,8 +51,10 @@ public class ShiftRightLeftClick {
|
||||
// if the shulker stack has 64 shulker boxes in it
|
||||
// remove it from the temporary inventory and continue on
|
||||
if (shulkerStack.getAmount() >= 64) {
|
||||
|
||||
tempPlayerInventory.setItem(firstShulkerSlot, new ItemStack(Material.AIR));
|
||||
continue;
|
||||
|
||||
}
|
||||
|
||||
// cancel default behavior since shulker boxes are being moved
|
||||
@@ -54,49 +62,69 @@ public class ShiftRightLeftClick {
|
||||
|
||||
// stack up to 64 shulkers into the stack, and then continue on
|
||||
if (shulkerStack.getAmount() + shulkerStackAmount <= 64) {
|
||||
playerInventory
|
||||
.getItem(firstShulkerSlot)
|
||||
|
||||
playerInventory.getItem(firstShulkerSlot)
|
||||
.setAmount(shulkerStack.getAmount() + shulkerStackAmount);
|
||||
shulkerStackAmount = 0;
|
||||
break;
|
||||
|
||||
} else {
|
||||
|
||||
// remove shulker boxes until the shulker stack has 64 boxes
|
||||
shulkerStackAmount -= 64 - shulkerStack.getAmount();
|
||||
playerInventory.getItem(firstShulkerSlot).setAmount(64);
|
||||
tempPlayerInventory.setItem(firstShulkerSlot, new ItemStack(Material.AIR));
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// change the shulker stack amount to what is left
|
||||
// or remove it if nothing is left
|
||||
if (shulkerStackAmount == 0) {
|
||||
|
||||
event.setCurrentItem(new ItemStack(Material.AIR));
|
||||
|
||||
} else {
|
||||
|
||||
event.getCurrentItem().setAmount(shulkerStackAmount);
|
||||
// look for an air gap to put the rest of the shulker boxes
|
||||
for (int i = 9; i < playerInventory.getSize(); i++) {
|
||||
|
||||
if (playerInventory.getItem(i) == null) {
|
||||
|
||||
playerInventory.setItem(i, event.getCurrentItem());
|
||||
event.setCurrentItem(new ItemStack(Material.AIR));
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
// the slot was an inventory slot, so check the hotbar for boxes
|
||||
else {
|
||||
// remove everything from the upper inventory to prevent it from causing problems
|
||||
|
||||
// remove everything from the upper inventory to prevent it from causing
|
||||
// problems
|
||||
for (int i = 35; i > 8; i--) {
|
||||
|
||||
tempPlayerInventory.setItem(i, new ItemStack(Material.AIR));
|
||||
|
||||
}
|
||||
|
||||
while (tempPlayerInventory.first(shulkerBoxType) != -1) {
|
||||
|
||||
int firstShulkerSlot = tempPlayerInventory.first(shulkerBoxType);
|
||||
ItemStack shulkerStack = tempPlayerInventory.getItem(firstShulkerSlot);
|
||||
// if the shulker stack has 64 shulker boxes in it
|
||||
// remove it from the temporary inventory and continue on
|
||||
if (shulkerStack.getAmount() >= 64) {
|
||||
|
||||
tempPlayerInventory.setItem(firstShulkerSlot, new ItemStack(Material.AIR));
|
||||
continue;
|
||||
|
||||
}
|
||||
|
||||
// cancel default behavior since shulker boxes are being moved
|
||||
@@ -104,47 +132,66 @@ public class ShiftRightLeftClick {
|
||||
|
||||
// stack up to 64 shulkers into the stack, and then continue on
|
||||
if (shulkerStack.getAmount() + shulkerStackAmount <= 64) {
|
||||
playerInventory
|
||||
.getItem(firstShulkerSlot)
|
||||
|
||||
playerInventory.getItem(firstShulkerSlot)
|
||||
.setAmount(shulkerStack.getAmount() + shulkerStackAmount);
|
||||
shulkerStackAmount = 0;
|
||||
break;
|
||||
|
||||
} else {
|
||||
|
||||
// remove shulker boxes until the shulker stack has 64 boxes
|
||||
shulkerStackAmount -= 64 - shulkerStack.getAmount();
|
||||
playerInventory.getItem(firstShulkerSlot).setAmount(64);
|
||||
tempPlayerInventory.setItem(firstShulkerSlot, new ItemStack(Material.AIR));
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// change the shulker stack amount to what is left
|
||||
// or remove it if nothing is left
|
||||
if (shulkerStackAmount == 0) {
|
||||
|
||||
event.setCurrentItem(new ItemStack(Material.AIR));
|
||||
|
||||
} else {
|
||||
|
||||
event.getCurrentItem().setAmount(shulkerStackAmount);
|
||||
// look for an air gap to put the rest of the shulker boxes
|
||||
for (int i = 0; i < 9; i++) {
|
||||
|
||||
if (playerInventory.getItem(i) == null) {
|
||||
|
||||
playerInventory.setItem(i, event.getCurrentItem());
|
||||
event.setCurrentItem(new ItemStack(Material.AIR));
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
// if it was anything else
|
||||
else {
|
||||
|
||||
// check if the click was in the bottom
|
||||
if (event.getRawSlot() > containerInventory.getSize()) {
|
||||
|
||||
while (tempContainerInventory.first(shulkerBoxType) != -1) {
|
||||
|
||||
int firstShulkerSlot = tempContainerInventory.first(shulkerBoxType);
|
||||
ItemStack shulkerStack = tempContainerInventory.getItem(firstShulkerSlot);
|
||||
// if the shulker stack has 64 shulker boxes in it
|
||||
// remove it from the temporary inventory and continue on
|
||||
if (shulkerStack.getAmount() >= 64) {
|
||||
|
||||
tempContainerInventory.setItem(firstShulkerSlot, new ItemStack(Material.AIR));
|
||||
continue;
|
||||
|
||||
}
|
||||
|
||||
// cancel default behavior since shulker boxes are being moved
|
||||
@@ -152,44 +199,61 @@ public class ShiftRightLeftClick {
|
||||
|
||||
// stack up to 64 shulkers into the stack, and then continue on
|
||||
if (shulkerStack.getAmount() + shulkerStackAmount <= 64) {
|
||||
containerInventory
|
||||
.getItem(firstShulkerSlot)
|
||||
|
||||
containerInventory.getItem(firstShulkerSlot)
|
||||
.setAmount(shulkerStack.getAmount() + shulkerStackAmount);
|
||||
shulkerStackAmount = 0;
|
||||
break;
|
||||
|
||||
} else {
|
||||
|
||||
// remove shulker boxes until the shulker stack has 64 boxes
|
||||
shulkerStackAmount -= 64 - shulkerStack.getAmount();
|
||||
containerInventory.getItem(firstShulkerSlot).setAmount(64);
|
||||
tempContainerInventory.setItem(firstShulkerSlot, new ItemStack(Material.AIR));
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// change the shulker stack amount to what is left
|
||||
// or remove it if nothing is left
|
||||
if (shulkerStackAmount == 0) {
|
||||
|
||||
event.setCurrentItem(new ItemStack(Material.AIR));
|
||||
|
||||
} else {
|
||||
|
||||
event.getCurrentItem().setAmount(shulkerStackAmount);
|
||||
// look for an air gap to put the rest of the shulker boxes
|
||||
for (int i = 0; i < containerInventory.getSize(); i++) {
|
||||
|
||||
if (containerInventory.getItem(i) == null) {
|
||||
|
||||
containerInventory.setItem(i, event.getCurrentItem());
|
||||
event.setCurrentItem(new ItemStack(Material.AIR));
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
// the click was in the top inventory
|
||||
else {
|
||||
|
||||
while (tempPlayerInventory.first(shulkerBoxType) != -1) {
|
||||
|
||||
int firstShulkerSlot = tempPlayerInventory.first(shulkerBoxType);
|
||||
ItemStack shulkerStack = tempPlayerInventory.getItem(firstShulkerSlot);
|
||||
// if the shulker stack has 64 shulker boxes in it
|
||||
// remove it from the temporary inventory and continue on
|
||||
if (shulkerStack.getAmount() >= 64) {
|
||||
|
||||
tempPlayerInventory.setItem(firstShulkerSlot, new ItemStack(Material.AIR));
|
||||
continue;
|
||||
|
||||
}
|
||||
|
||||
// cancel default behavior since shulker boxes are being moved
|
||||
@@ -197,34 +261,50 @@ public class ShiftRightLeftClick {
|
||||
|
||||
// stack up to 64 shulkers into the stack, and then continue on
|
||||
if (shulkerStack.getAmount() + shulkerStackAmount <= 64) {
|
||||
playerInventory
|
||||
.getItem(firstShulkerSlot)
|
||||
|
||||
playerInventory.getItem(firstShulkerSlot)
|
||||
.setAmount(shulkerStack.getAmount() + shulkerStackAmount);
|
||||
shulkerStackAmount = 0;
|
||||
break;
|
||||
|
||||
} else {
|
||||
|
||||
// remove shulker boxes until the shulker stack has 64 boxes
|
||||
shulkerStackAmount -= 64 - shulkerStack.getAmount();
|
||||
playerInventory.getItem(firstShulkerSlot).setAmount(64);
|
||||
tempPlayerInventory.setItem(firstShulkerSlot, new ItemStack(Material.AIR));
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// change the shulker stack amount to what is left
|
||||
// or remove it if nothing is left
|
||||
if (shulkerStackAmount == 0) {
|
||||
|
||||
event.setCurrentItem(new ItemStack(Material.AIR));
|
||||
|
||||
} else {
|
||||
|
||||
event.getCurrentItem().setAmount(shulkerStackAmount);
|
||||
// look for an air gap to put the rest of the shulker boxes
|
||||
for (int i = 0; i < playerInventory.getSize(); i++) {
|
||||
|
||||
if (playerInventory.getItem(i) == null) {
|
||||
|
||||
playerInventory.setItem(i, event.getCurrentItem());
|
||||
event.setCurrentItem(new ItemStack(Material.AIR));
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -14,6 +14,7 @@ public final class ShulkerStacking_OG extends JavaPlugin {
|
||||
|
||||
@Override
|
||||
public void onEnable() {
|
||||
|
||||
plugin = this;
|
||||
// Plugin startup logic
|
||||
getServer().getPluginManager().registerEvents(new ShulkerBoxStackingController(), this);
|
||||
@@ -21,9 +22,13 @@ public final class ShulkerStacking_OG extends JavaPlugin {
|
||||
getServer().getPluginManager().registerEvents(new ShulkerDragHandler(), this);
|
||||
getServer().getPluginManager().registerEvents(new ShulkerDragDupePrevention(), this);
|
||||
getServer().getPluginManager().registerEvents(new ShulkerBoxHopperHandler(), this);
|
||||
|
||||
}
|
||||
|
||||
public static ShulkerStacking_OG getPlugin() {
|
||||
|
||||
return plugin;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
Reference in new issue
Block a user