diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index 3ee2f686f..7ba539f36 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -1,4 +1,3 @@ - name: Build and test on: diff --git a/.github/workflows/release-tags.yml b/.github/workflows/release-tags.yml index e4c0be6b0..5ae594a59 100644 --- a/.github/workflows/release-tags.yml +++ b/.github/workflows/release-tags.yml @@ -1,4 +1,3 @@ - name: Release tagged build on: diff --git a/LICENSE.md b/LICENSE.md index a445a6fbe..2b13c74bb 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -4,32 +4,36 @@ Minecraft Mod Public License Version 1.0.1 0. Definitions + -------------- Minecraft: Denotes a copy of the Minecraft game licensed by Mojang AB User: Anybody that interacts with the software in one of the following ways: - - play - - decompile - - recompile or compile - - modify - - distribute + +- play +- decompile +- recompile or compile +- modify +- distribute Mod: The mod code designated by the present license, in source form, binary form, as obtained standalone, as part of a wider distribution or resulting from the compilation of the original or modified sources. -Dependency: Code required for the mod to work properly. This includes +Dependency: Code required for the mod to work properly. This includes dependencies required to compile the code as well as any file or modification that is explicitely or implicitely required for the mod to be working. 1. Scope + -------- -The present license is granted to any user of the mod. As a prerequisite, +The present license is granted to any user of the mod. As a prerequisite, a user must own a legally acquired copy of Minecraft 2. Liability + ------------ This mod is provided 'as is' with no warranties, implied or otherwise. The owner @@ -39,40 +43,45 @@ Minecraft may not work with this mod installed. All damages caused from the use or misuse of this mad fall on the user. 3. Play rights + -------------- -The user is allowed to install this mod on a client or a server and to play +The user is allowed to install this mod on a client or a server and to play without restriction. 4. Modification rights + ---------------------- -The user has the right to decompile the source code, look at either the +The user has the right to decompile the source code, look at either the decompiled version or the original source code, and to modify it. 5. Derivation rights + -------------------- The user has the rights to derive code from this mod, that is to say to write code that extends or instanciate the mod classes or interfaces, refer to -its objects, or calls its functions. This code is known as "derived" code, and +its objects, or calls its functions. This code is known as "derived" code, and can be licensed under a license different from this mod. 6. Distribution of original or modified copy rights + --------------------------------------------------- Is subject to distribution rights this entire mod in its various forms. This include: - - original binary or source forms of this mod files - - modified versions of these binaries or source files, as well as binaries - resulting from source modifications - - patch to its source or binary files - - any copy of a portion of its binary source files -The user is allowed to redistribute this mod partially, in totality, or +- original binary or source forms of this mod files +- modified versions of these binaries or source files, as well as binaries + resulting from source modifications +- patch to its source or binary files +- any copy of a portion of its binary source files + +The user is allowed to redistribute this mod partially, in totality, or included in a distribution. -When distributing binary files, the user must provide means to obtain its +When distributing binary files, the user must provide means to obtain its entire set of sources or modified sources at no costs. All distributions of this mod must remain licensed under the MMPL. diff --git a/README.md b/README.md index 5b8bd524b..e4e258dc9 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,7 @@ # LogisticsPipes -Logistics Pipes is an extensive overhaul of the Buildcraft pipe system. It allows for better distribution of items via pipes, more organised stockkeeping and easier automated crafting. +Logistics Pipes is an extensive overhaul of the Buildcraft pipe system. It allows for better distribution of items via +pipes, more organised stockkeeping and easier automated crafting. You are free to use this mod in your modpack without asking or noticing us. diff --git a/build.gradle b/build.gradle index 1aaadcce8..2f82f0620 100644 --- a/build.gradle +++ b/build.gradle @@ -1,4 +1,4 @@ -//version: 1690104383 +//version: 1696952014 /* DO NOT CHANGE THIS FILE! Also, you may replace this file at any time if there is an update available. @@ -27,49 +27,50 @@ import java.nio.file.Paths import java.util.concurrent.TimeUnit buildscript { - repositories { - mavenCentral() - - maven { - name 'forge' - url 'https://maven.minecraftforge.net' - } - maven { - // GTNH RetroFuturaGradle and ASM Fork - name "GTNH Maven" - url "http://jenkins.usrv.eu:8081/nexus/content/groups/public/" - allowInsecureProtocol = true - } - maven { - name 'sonatype' - url 'https://oss.sonatype.org/content/repositories/snapshots/' - } - maven { - name 'Scala CI dependencies' - url 'https://repo1.maven.org/maven2/' - } - - mavenLocal() - } + repositories { + mavenCentral() + + maven { + name 'forge' + url 'https://maven.minecraftforge.net' + } + maven { + // GTNH RetroFuturaGradle and ASM Fork + name "GTNH Maven" + url "http://jenkins.usrv.eu:8081/nexus/content/groups/public/" + allowInsecureProtocol = true + } + maven { + name 'sonatype' + url 'https://oss.sonatype.org/content/repositories/snapshots/' + } + maven { + name 'Scala CI dependencies' + url 'https://repo1.maven.org/maven2/' + } + + mavenLocal() + } } plugins { - id 'java-library' - id "org.jetbrains.gradle.plugin.idea-ext" version "1.1.7" - id 'eclipse' - id 'scala' - id 'maven-publish' - id 'org.jetbrains.kotlin.jvm' version '1.8.0' apply false - id 'org.jetbrains.kotlin.kapt' version '1.8.0' apply false - id 'com.google.devtools.ksp' version '1.8.0-1.0.9' apply false - id 'org.ajoberstar.grgit' version '4.1.1' // 4.1.1 is the last jvm8 supporting version, unused, available for addon.gradle - id 'com.github.johnrengelman.shadow' version '8.1.1' apply false - id 'com.palantir.git-version' version '3.0.0' apply false - id 'de.undercouch.download' version '5.4.0' - id 'com.github.gmazzo.buildconfig' version '3.1.0' apply false // Unused, available for addon.gradle - id 'com.diffplug.spotless' version '6.13.0' apply false // 6.13.0 is the last jvm8 supporting version - id 'com.modrinth.minotaur' version '2.+' apply false - id 'com.matthewprenger.cursegradle' version '1.4.0' apply false - id 'com.gtnewhorizons.retrofuturagradle' version '1.3.21' + id 'java-library' + id "org.jetbrains.gradle.plugin.idea-ext" version "1.1.7" + id 'eclipse' + id 'scala' + id 'maven-publish' + id 'org.jetbrains.kotlin.jvm' version '1.8.0' apply false + id 'org.jetbrains.kotlin.kapt' version '1.8.0' apply false + id 'com.google.devtools.ksp' version '1.8.0-1.0.9' apply false + id 'org.ajoberstar.grgit' version '4.1.1' + // 4.1.1 is the last jvm8 supporting version, unused, available for addon.gradle + id 'com.github.johnrengelman.shadow' version '8.1.1' apply false + id 'com.palantir.git-version' version '3.0.0' apply false + id 'de.undercouch.download' version '5.4.0' + id 'com.github.gmazzo.buildconfig' version '3.1.0' apply false // Unused, available for addon.gradle + id 'com.diffplug.spotless' version '6.13.0' apply false // 6.13.0 is the last jvm8 supporting version + id 'com.modrinth.minotaur' version '2.+' apply false + id 'com.matthewprenger.cursegradle' version '1.4.0' apply false + id 'com.gtnewhorizons.retrofuturagradle' version '1.3.24' } print("You might want to check out './gradlew :faq' if your build fails.\n") @@ -77,11 +78,11 @@ print("You might want to check out './gradlew :faq' if your build fails.\n") boolean settingsupdated = verifySettingsGradle() settingsupdated = verifyGitAttributes() || settingsupdated if (settingsupdated) - throw new GradleException("Settings has been updated, please re-run task.") + throw new GradleException("Settings has been updated, please re-run task.") // In submodules, .git is a file pointing to the real git dir if (project.file('.git/HEAD').isFile() || project.file('.git').isFile()) { - apply plugin: 'com.palantir.git-version' + apply plugin: 'com.palantir.git-version' } def out = services.get(StyledTextOutputFactory).create('an-output') @@ -89,6 +90,23 @@ def out = services.get(StyledTextOutputFactory).create('an-output') def projectJavaVersion = JavaLanguageVersion.of(8) boolean disableSpotless = project.hasProperty("disableSpotless") ? project.disableSpotless.toBoolean() : false +boolean disableCheckstyle = project.hasProperty("disableCheckstyle") ? project.disableCheckstyle.toBoolean() : false + +final String CHECKSTYLE_CONFIG = """ + + + + + + + + + + + +""" checkPropertyExists("modName") checkPropertyExists("modId") @@ -136,8 +154,19 @@ propertyDefaultIfUnset("ideaOverrideBuildType", "") // Can be nothing, "gradle" project.extensions.add(com.diffplug.blowdryer.Blowdryer, "Blowdryer", com.diffplug.blowdryer.Blowdryer) // Make blowdryer available in "apply from:" scripts if (!disableSpotless) { - apply plugin: 'com.diffplug.spotless' - apply from: Blowdryer.file('spotless.gradle') + apply plugin: 'com.diffplug.spotless' + apply from: Blowdryer.file('spotless.gradle') +} + +if (!disableCheckstyle) { + apply plugin: 'checkstyle' + tasks.named("checkstylePatchedMc") { enabled = false } + tasks.named("checkstyleMcLauncher") { enabled = false } + tasks.named("checkstyleIdeVirtualMain") { enabled = false } + tasks.named("checkstyleInjectedTags") { enabled = false } + checkstyle { + config = resources.text.fromString(CHECKSTYLE_CONFIG) + } } String javaSourceDir = "src/main/java/" @@ -145,113 +174,113 @@ String scalaSourceDir = "src/main/scala/" String kotlinSourceDir = "src/main/kotlin/" if (usesShadowedDependencies.toBoolean()) { - apply plugin: "com.github.johnrengelman.shadow" + apply plugin: "com.github.johnrengelman.shadow" } java { - toolchain { - if (enableModernJavaSyntax.toBoolean()) { - languageVersion.set(JavaLanguageVersion.of(17)) - } else { - languageVersion.set(projectJavaVersion) - } - vendor.set(JvmVendorSpec.AZUL) - } - if (!noPublishedSources) { - withSourcesJar() - } + toolchain { + if (enableModernJavaSyntax.toBoolean()) { + languageVersion.set(JavaLanguageVersion.of(17)) + } else { + languageVersion.set(projectJavaVersion) + } + vendor.set(JvmVendorSpec.AZUL) + } + if (!noPublishedSources) { + withSourcesJar() + } } tasks.withType(JavaCompile).configureEach { - options.encoding = "UTF-8" + options.encoding = "UTF-8" } tasks.withType(ScalaCompile).configureEach { - options.encoding = "UTF-8" + options.encoding = "UTF-8" } pluginManager.withPlugin('org.jetbrains.kotlin.jvm') { - // If Kotlin is enabled in the project - kotlin { - jvmToolchain(8) - } - // Kotlin hacks our source sets, so we hack Kotlin's tasks - def disabledKotlinTaskList = [ - "kaptGenerateStubsMcLauncherKotlin", - "kaptGenerateStubsPatchedMcKotlin", - "kaptGenerateStubsInjectedTagsKotlin", - "compileMcLauncherKotlin", - "compilePatchedMcKotlin", - "compileInjectedTagsKotlin", - "kaptMcLauncherKotlin", - "kaptPatchedMcKotlin", - "kaptInjectedTagsKotlin", - "kspMcLauncherKotlin", - "kspPatchedMcKotlin", - "kspInjectedTagsKotlin", - ] - tasks.configureEach { task -> - if (task.name in disabledKotlinTaskList) { - task.enabled = false - } - } + // If Kotlin is enabled in the project + kotlin { + jvmToolchain(8) + } + // Kotlin hacks our source sets, so we hack Kotlin's tasks + def disabledKotlinTaskList = [ + "kaptGenerateStubsMcLauncherKotlin", + "kaptGenerateStubsPatchedMcKotlin", + "kaptGenerateStubsInjectedTagsKotlin", + "compileMcLauncherKotlin", + "compilePatchedMcKotlin", + "compileInjectedTagsKotlin", + "kaptMcLauncherKotlin", + "kaptPatchedMcKotlin", + "kaptInjectedTagsKotlin", + "kspMcLauncherKotlin", + "kspPatchedMcKotlin", + "kspInjectedTagsKotlin", + ] + tasks.configureEach { task -> + if (task.name in disabledKotlinTaskList) { + task.enabled = false + } + } } configurations { - create("runtimeOnlyNonPublishable") { - description = "Runtime only dependencies that are not published alongside the jar" - canBeConsumed = false - canBeResolved = false - } + create("runtimeOnlyNonPublishable") { + description = "Runtime only dependencies that are not published alongside the jar" + canBeConsumed = false + canBeResolved = false + } - create("devOnlyNonPublishable") { - description = "Runtime and compiletime dependencies that are not published alongside the jar (compileOnly + runtimeOnlyNonPublishable)" - canBeConsumed = false - canBeResolved = false - } - compileOnly.extendsFrom(devOnlyNonPublishable) - runtimeOnlyNonPublishable.extendsFrom(devOnlyNonPublishable) + create("devOnlyNonPublishable") { + description = "Runtime and compiletime dependencies that are not published alongside the jar (compileOnly + runtimeOnlyNonPublishable)" + canBeConsumed = false + canBeResolved = false + } + compileOnly.extendsFrom(devOnlyNonPublishable) + runtimeOnlyNonPublishable.extendsFrom(devOnlyNonPublishable) } if (enableModernJavaSyntax.toBoolean()) { - repositories { - mavenCentral { - mavenContent { - includeGroup("me.eigenraven.java8unsupported") - } - } - } - - dependencies { - annotationProcessor 'com.github.bsideup.jabel:jabel-javac-plugin:1.0.0' - // workaround for https://github.com/bsideup/jabel/issues/174 - annotationProcessor 'net.java.dev.jna:jna-platform:5.13.0' - compileOnly('com.github.bsideup.jabel:jabel-javac-plugin:1.0.0') { - transitive = false // We only care about the 1 annotation class - } - // Allow using jdk.unsupported classes like sun.misc.Unsafe in the compiled code, working around JDK-8206937. - patchedMinecraft('me.eigenraven.java8unsupported:java-8-unsupported-shim:1.0.0') - } - - tasks.withType(JavaCompile).configureEach { - if (it.name in ["compileMcLauncherJava", "compilePatchedMcJava"]) { - return - } - sourceCompatibility = 17 // for the IDE support - options.release.set(8) - - javaCompiler.set(javaToolchains.compilerFor { - languageVersion.set(JavaLanguageVersion.of(17)) - vendor.set(JvmVendorSpec.AZUL) - }) - } + repositories { + mavenCentral { + mavenContent { + includeGroup("me.eigenraven.java8unsupported") + } + } + } + + dependencies { + annotationProcessor 'com.github.bsideup.jabel:jabel-javac-plugin:1.0.0' + // workaround for https://github.com/bsideup/jabel/issues/174 + annotationProcessor 'net.java.dev.jna:jna-platform:5.13.0' + compileOnly('com.github.bsideup.jabel:jabel-javac-plugin:1.0.0') { + transitive = false // We only care about the 1 annotation class + } + // Allow using jdk.unsupported classes like sun.misc.Unsafe in the compiled code, working around JDK-8206937. + patchedMinecraft('me.eigenraven.java8unsupported:java-8-unsupported-shim:1.0.0') + } + + tasks.withType(JavaCompile).configureEach { + if (it.name in ["compileMcLauncherJava", "compilePatchedMcJava"]) { + return + } + sourceCompatibility = 17 // for the IDE support + options.release.set(8) + + javaCompiler.set(javaToolchains.compilerFor { + languageVersion.set(JavaLanguageVersion.of(17)) + vendor.set(JvmVendorSpec.AZUL) + }) + } } eclipse { - classpath { - downloadSources = true - downloadJavadoc = true - } + classpath { + downloadSources = true + downloadJavadoc = true + } } final String modGroupPath = modGroup.toString().replace('.' as char, '/' as char) @@ -261,363 +290,359 @@ String targetPackageJava = javaSourceDir + modGroupPath String targetPackageScala = scalaSourceDir + modGroupPath String targetPackageKotlin = kotlinSourceDir + modGroupPath if (!(getFile(targetPackageJava).exists() || getFile(targetPackageScala).exists() || getFile(targetPackageKotlin).exists())) { - throw new GradleException("Could not resolve \"modGroup\"! Could not find " + targetPackageJava + " or " + targetPackageScala + " or " + targetPackageKotlin) + throw new GradleException("Could not resolve \"modGroup\"! Could not find " + targetPackageJava + " or " + targetPackageScala + " or " + targetPackageKotlin) } if (apiPackage) { - targetPackageJava = javaSourceDir + modGroupPath + "/" + apiPackagePath - targetPackageScala = scalaSourceDir + modGroupPath + "/" + apiPackagePath - targetPackageKotlin = kotlinSourceDir + modGroupPath + "/" + apiPackagePath - if (!(getFile(targetPackageJava).exists() || getFile(targetPackageScala).exists() || getFile(targetPackageKotlin).exists())) { - throw new GradleException("Could not resolve \"apiPackage\"! Could not find " + targetPackageJava + " or " + targetPackageScala + " or " + targetPackageKotlin) - } + targetPackageJava = javaSourceDir + modGroupPath + "/" + apiPackagePath + targetPackageScala = scalaSourceDir + modGroupPath + "/" + apiPackagePath + targetPackageKotlin = kotlinSourceDir + modGroupPath + "/" + apiPackagePath + if (!(getFile(targetPackageJava).exists() || getFile(targetPackageScala).exists() || getFile(targetPackageKotlin).exists())) { + throw new GradleException("Could not resolve \"apiPackage\"! Could not find " + targetPackageJava + " or " + targetPackageScala + " or " + targetPackageKotlin) + } } if (accessTransformersFile) { - for (atFile in accessTransformersFile.split(",")) { - String targetFile = "src/main/resources/META-INF/" + atFile.trim() - if (!getFile(targetFile).exists()) { - throw new GradleException("Could not resolve \"accessTransformersFile\"! Could not find " + targetFile) - } - tasks.deobfuscateMergedJarToSrg.accessTransformerFiles.from(targetFile) - tasks.srgifyBinpatchedJar.accessTransformerFiles.from(targetFile) - } + for (atFile in accessTransformersFile.split(",")) { + String targetFile = "src/main/resources/META-INF/" + atFile.trim() + if (!getFile(targetFile).exists()) { + throw new GradleException("Could not resolve \"accessTransformersFile\"! Could not find " + targetFile) + } + tasks.deobfuscateMergedJarToSrg.accessTransformerFiles.from(targetFile) + tasks.srgifyBinpatchedJar.accessTransformerFiles.from(targetFile) + } } else { - boolean atsFound = false - for (File at : sourceSets.getByName("main").resources.files) { - if (at.name.toLowerCase().endsWith("_at.cfg")) { - atsFound = true - tasks.deobfuscateMergedJarToSrg.accessTransformerFiles.from(at) - tasks.srgifyBinpatchedJar.accessTransformerFiles.from(at) - } - } - for (File at : sourceSets.getByName("api").resources.files) { - if (at.name.toLowerCase().endsWith("_at.cfg")) { - atsFound = true - tasks.deobfuscateMergedJarToSrg.accessTransformerFiles.from(at) - tasks.srgifyBinpatchedJar.accessTransformerFiles.from(at) - } - } - if (atsFound) { - logger.warn("Found and added access transformers in the resources folder, please configure gradle.properties to explicitly mention them by name") - } + boolean atsFound = false + for (File at : sourceSets.getByName("main").resources.files) { + if (at.name.toLowerCase().endsWith("_at.cfg")) { + atsFound = true + tasks.deobfuscateMergedJarToSrg.accessTransformerFiles.from(at) + tasks.srgifyBinpatchedJar.accessTransformerFiles.from(at) + } + } + for (File at : sourceSets.getByName("api").resources.files) { + if (at.name.toLowerCase().endsWith("_at.cfg")) { + atsFound = true + tasks.deobfuscateMergedJarToSrg.accessTransformerFiles.from(at) + tasks.srgifyBinpatchedJar.accessTransformerFiles.from(at) + } + } + if (atsFound) { + logger.warn("Found and added access transformers in the resources folder, please configure gradle.properties to explicitly mention them by name") + } } if (usesMixins.toBoolean()) { - if (mixinsPackage.isEmpty()) { - throw new GradleException("\"usesMixins\" requires \"mixinsPackage\" to be set!") - } - final String mixinPackagePath = mixinsPackage.toString().replaceAll("\\.", "/") - final String mixinPluginPath = mixinPlugin.toString().replaceAll("\\.", "/") - - targetPackageJava = javaSourceDir + modGroupPath + "/" + mixinPackagePath - targetPackageScala = scalaSourceDir + modGroupPath + "/" + mixinPackagePath - targetPackageKotlin = kotlinSourceDir + modGroupPath + "/" + mixinPackagePath - if (!(getFile(targetPackageJava).exists() || getFile(targetPackageScala).exists() || getFile(targetPackageKotlin).exists())) { - throw new GradleException("Could not resolve \"mixinsPackage\"! Could not find " + targetPackageJava + " or " + targetPackageScala + " or " + targetPackageKotlin) - } - - if (!mixinPlugin.isEmpty()) { - String targetFileJava = javaSourceDir + modGroupPath + "/" + mixinPluginPath + ".java" - String targetFileScala = scalaSourceDir + modGroupPath + "/" + mixinPluginPath + ".scala" - String targetFileScalaJava = scalaSourceDir + modGroupPath + "/" + mixinPluginPath + ".java" - String targetFileKotlin = kotlinSourceDir + modGroupPath + "/" + mixinPluginPath + ".kt" - if (!(getFile(targetFileJava).exists() || getFile(targetFileScala).exists() || getFile(targetFileScalaJava).exists() || getFile(targetFileKotlin).exists())) { - throw new GradleException("Could not resolve \"mixinPlugin\"! Could not find " + targetFileJava + " or " + targetFileScala + " or " + targetFileScalaJava + " or " + targetFileKotlin) - } - } + if (mixinsPackage.isEmpty()) { + throw new GradleException("\"usesMixins\" requires \"mixinsPackage\" to be set!") + } + final String mixinPackagePath = mixinsPackage.toString().replaceAll("\\.", "/") + final String mixinPluginPath = mixinPlugin.toString().replaceAll("\\.", "/") + + targetPackageJava = javaSourceDir + modGroupPath + "/" + mixinPackagePath + targetPackageScala = scalaSourceDir + modGroupPath + "/" + mixinPackagePath + targetPackageKotlin = kotlinSourceDir + modGroupPath + "/" + mixinPackagePath + if (!(getFile(targetPackageJava).exists() || getFile(targetPackageScala).exists() || getFile(targetPackageKotlin).exists())) { + throw new GradleException("Could not resolve \"mixinsPackage\"! Could not find " + targetPackageJava + " or " + targetPackageScala + " or " + targetPackageKotlin) + } + + if (!mixinPlugin.isEmpty()) { + String targetFileJava = javaSourceDir + modGroupPath + "/" + mixinPluginPath + ".java" + String targetFileScala = scalaSourceDir + modGroupPath + "/" + mixinPluginPath + ".scala" + String targetFileScalaJava = scalaSourceDir + modGroupPath + "/" + mixinPluginPath + ".java" + String targetFileKotlin = kotlinSourceDir + modGroupPath + "/" + mixinPluginPath + ".kt" + if (!(getFile(targetFileJava).exists() || getFile(targetFileScala).exists() || getFile(targetFileScalaJava).exists() || getFile(targetFileKotlin).exists())) { + throw new GradleException("Could not resolve \"mixinPlugin\"! Could not find " + targetFileJava + " or " + targetFileScala + " or " + targetFileScalaJava + " or " + targetFileKotlin) + } + } } if (coreModClass) { - final String coreModPath = coreModClass.toString().replaceAll("\\.", "/") - String targetFileJava = javaSourceDir + modGroupPath + "/" + coreModPath + ".java" - String targetFileScala = scalaSourceDir + modGroupPath + "/" + coreModPath + ".scala" - String targetFileScalaJava = scalaSourceDir + modGroupPath + "/" + coreModPath + ".java" - String targetFileKotlin = kotlinSourceDir + modGroupPath + "/" + coreModPath + ".kt" - if (!(getFile(targetFileJava).exists() || getFile(targetFileScala).exists() || getFile(targetFileScalaJava).exists() || getFile(targetFileKotlin).exists())) { - throw new GradleException("Could not resolve \"coreModClass\"! Could not find " + targetFileJava + " or " + targetFileScala + " or " + targetFileScalaJava + " or " + targetFileKotlin) - } + final String coreModPath = coreModClass.toString().replaceAll("\\.", "/") + String targetFileJava = javaSourceDir + modGroupPath + "/" + coreModPath + ".java" + String targetFileScala = scalaSourceDir + modGroupPath + "/" + coreModPath + ".scala" + String targetFileScalaJava = scalaSourceDir + modGroupPath + "/" + coreModPath + ".java" + String targetFileKotlin = kotlinSourceDir + modGroupPath + "/" + coreModPath + ".kt" + if (!(getFile(targetFileJava).exists() || getFile(targetFileScala).exists() || getFile(targetFileScalaJava).exists() || getFile(targetFileKotlin).exists())) { + throw new GradleException("Could not resolve \"coreModClass\"! Could not find " + targetFileJava + " or " + targetFileScala + " or " + targetFileScalaJava + " or " + targetFileKotlin) + } } configurations.configureEach { - resolutionStrategy.cacheChangingModulesFor(0, TimeUnit.SECONDS) + resolutionStrategy.cacheChangingModulesFor(0, TimeUnit.SECONDS) - // Make sure GregTech build won't time out - System.setProperty("org.gradle.internal.http.connectionTimeout", 120000 as String) - System.setProperty("org.gradle.internal.http.socketTimeout", 120000 as String) + // Make sure GregTech build won't time out + System.setProperty("org.gradle.internal.http.connectionTimeout", 120000 as String) + System.setProperty("org.gradle.internal.http.socketTimeout", 120000 as String) } // Fix Jenkins' Git: chmod a file should not be detected as a change and append a '.dirty' to the version try { - 'git config core.fileMode false'.execute() + 'git config core.fileMode false'.execute() } catch (Exception ignored) { - out.style(Style.Failure).println("git isn't installed at all") + out.style(Style.Failure).println("git isn't installed at all") } // Pulls version first from the VERSION env and then git tag String identifiedVersion String versionOverride = System.getenv("VERSION") ?: null try { - // Produce a version based on the tag, or for branches something like 0.2.2-configurable-maven-and-extras.38+43090270b6-dirty - if (versionOverride == null) { - def gitDetails = versionDetails() - def isDirty = gitVersion().endsWith(".dirty") // No public API for this, isCleanTag has a different meaning - String branchName = gitDetails.branchName ?: (System.getenv('GIT_BRANCH') ?: 'git') - if (branchName.startsWith('origin/')) { - branchName = branchName.minus('origin/') - } - branchName = branchName.replaceAll("[^a-zA-Z0-9-]+", "-") // sanitize branch names for semver - identifiedVersion = gitDetails.lastTag ?: '${gitDetails.gitHash}' - if (gitDetails.commitDistance > 0) { - identifiedVersion += "-${branchName}.${gitDetails.commitDistance}+${gitDetails.gitHash}" - if (isDirty) { - identifiedVersion += "-dirty" - } - } else if (isDirty) { - identifiedVersion += "-${branchName}+${gitDetails.gitHash}-dirty" - } - } else { - identifiedVersion = versionOverride - } + // Produce a version based on the tag, or for branches something like 0.2.2-configurable-maven-and-extras.38+43090270b6-dirty + if (versionOverride == null) { + def gitDetails = versionDetails() + def isDirty = gitVersion().endsWith(".dirty") // No public API for this, isCleanTag has a different meaning + String branchName = gitDetails.branchName ?: (System.getenv('GIT_BRANCH') ?: 'git') + if (branchName.startsWith('origin/')) { + branchName = branchName.minus('origin/') + } + branchName = branchName.replaceAll("[^a-zA-Z0-9-]+", "-") // sanitize branch names for semver + identifiedVersion = gitDetails.lastTag ?: '${gitDetails.gitHash}' + if (gitDetails.commitDistance > 0) { + identifiedVersion += "-${branchName}.${gitDetails.commitDistance}+${gitDetails.gitHash}" + if (isDirty) { + identifiedVersion += "-dirty" + } + } else if (isDirty) { + identifiedVersion += "-${branchName}+${gitDetails.gitHash}-dirty" + } + } else { + identifiedVersion = versionOverride + } } catch (Exception ignored) { - out.style(Style.Failure).text( - 'This mod must be version controlled by Git AND the repository must provide at least one tag,\n' + - 'or the VERSION override must be set! ').style(Style.SuccessHeader).text('(Do NOT download from GitHub using the ZIP option, instead\n' + - 'clone the repository, see ').style(Style.Info).text('https://gtnh.miraheze.org/wiki/Development').style(Style.SuccessHeader).println(' for details.)' - ) - versionOverride = 'NO-GIT-TAG-SET' - identifiedVersion = versionOverride + out.style(Style.Failure).text( + 'This mod must be version controlled by Git AND the repository must provide at least one tag,\n' + + 'or the VERSION override must be set! ').style(Style.SuccessHeader).text('(Do NOT download from GitHub using the ZIP option, instead\n' + + 'clone the repository, see ').style(Style.Info).text('https://gtnh.miraheze.org/wiki/Development').style(Style.SuccessHeader).println(' for details.)' + ) + versionOverride = 'NO-GIT-TAG-SET' + identifiedVersion = versionOverride } version = identifiedVersion ext { - modVersion = identifiedVersion + modVersion = identifiedVersion } if (identifiedVersion == versionOverride) { - out.style(Style.Failure).text('Override version to ').style(Style.Identifier).text(modVersion).style(Style.Failure).println('!\7') + out.style(Style.Failure).text('Override version to ').style(Style.Identifier).text(modVersion).style(Style.Failure).println('!\7') } group = "com.github.GTNewHorizons" if (project.hasProperty("customArchiveBaseName") && customArchiveBaseName) { - archivesBaseName = customArchiveBaseName + base { + archivesName = customArchiveBaseName + } } else { - archivesBaseName = modId + base { + archivesName = modId + } } minecraft { - if (replaceGradleTokenInFile) { - for (f in replaceGradleTokenInFile.split(',')) { - tagReplacementFiles.add f - } - } - if (gradleTokenModId) { - injectedTags.put gradleTokenModId, modId - } - if (gradleTokenModName) { - injectedTags.put gradleTokenModName, modName - } - if (gradleTokenVersion) { - injectedTags.put gradleTokenVersion, modVersion - } - if (gradleTokenGroupName) { - injectedTags.put gradleTokenGroupName, modGroup - } - if (enableGenericInjection.toBoolean()) { - injectMissingGenerics.set(true) - } - - username = developmentEnvironmentUserName.toString() - - lwjgl3Version = "3.3.2" - - // Enable assertions in the current mod - extraRunJvmArguments.add("-ea:${modGroup}") - - if (usesMixins.toBoolean() || forceEnableMixins.toBoolean()) { - if (usesMixinDebug.toBoolean()) { - extraRunJvmArguments.addAll([ - "-Dmixin.debug.countInjections=true", - "-Dmixin.debug.verbose=true", - "-Dmixin.debug.export=true" - ]) - } - } - - // Blowdryer is present in some old mod builds, do not propagate it further as a dependency - // IC2 has no reobf jars in its Maven - groupsToExcludeFromAutoReobfMapping.addAll(["com.diffplug", "com.diffplug.durian", "net.industrial-craft"]) + if (replaceGradleTokenInFile) { + for (f in replaceGradleTokenInFile.split(',')) { + tagReplacementFiles.add f + } + } + if (gradleTokenModId) { + injectedTags.put gradleTokenModId, modId + } + if (gradleTokenModName) { + injectedTags.put gradleTokenModName, modName + } + if (gradleTokenVersion) { + injectedTags.put gradleTokenVersion, modVersion + } + if (gradleTokenGroupName) { + injectedTags.put gradleTokenGroupName, modGroup + } + if (enableGenericInjection.toBoolean()) { + injectMissingGenerics.set(true) + } + + username = developmentEnvironmentUserName.toString() + + lwjgl3Version = "3.3.2" + + // Enable assertions in the current mod + extraRunJvmArguments.add("-ea:${modGroup}") + + if (usesMixins.toBoolean() || forceEnableMixins.toBoolean()) { + if (usesMixinDebug.toBoolean()) { + extraRunJvmArguments.addAll([ + "-Dmixin.debug.countInjections=true", + "-Dmixin.debug.verbose=true", + "-Dmixin.debug.export=true" + ]) + } + } + + // Blowdryer is present in some old mod builds, do not propagate it further as a dependency + // IC2 has no reobf jars in its Maven + groupsToExcludeFromAutoReobfMapping.addAll(["com.diffplug", "com.diffplug.durian", "net.industrial-craft"]) } if (generateGradleTokenClass) { - tasks.injectTags.outputClassName.set(generateGradleTokenClass) + tasks.injectTags.outputClassName.set(generateGradleTokenClass) } // Custom reobf auto-mappings configurations.configureEach { - dependencies.configureEach { dep -> - if (dep instanceof org.gradle.api.artifacts.ExternalModuleDependency) { - if (dep.group == "net.industrial-craft" && dep.name == "industrialcraft-2") { - // https://www.curseforge.com/minecraft/mc-mods/industrial-craft/files/2353971 - project.dependencies.reobfJarConfiguration("curse.maven:ic2-242638:2353971") - } - } - } - def obfuscationAttr = it.attributes.getAttribute(ObfuscationAttribute.OBFUSCATION_ATTRIBUTE) - if (obfuscationAttr != null && obfuscationAttr.name == ObfuscationAttribute.SRG) { - resolutionStrategy.eachDependency { DependencyResolveDetails details -> - // Remap CoFH core cursemaven dev jar to the obfuscated version for runObfClient/Server - if (details.requested.group == 'curse.maven' && details.requested.name.endsWith('-69162') && details.requested.version == '2388751') { - details.useVersion '2388750' - details.because 'Pick obfuscated jar' - } - } - } + dependencies.configureEach { dep -> + if (dep instanceof org.gradle.api.artifacts.ExternalModuleDependency) { + if (dep.group == "net.industrial-craft" && dep.name == "industrialcraft-2") { + // https://www.curseforge.com/minecraft/mc-mods/industrial-craft/files/2353971 + project.dependencies.reobfJarConfiguration("curse.maven:ic2-242638:2353971") + } + } + } + def obfuscationAttr = it.attributes.getAttribute(ObfuscationAttribute.OBFUSCATION_ATTRIBUTE) + if (obfuscationAttr != null && obfuscationAttr.name == ObfuscationAttribute.SRG) { + resolutionStrategy.eachDependency { DependencyResolveDetails details -> + // Remap CoFH core cursemaven dev jar to the obfuscated version for runObfClient/Server + if (details.requested.group == 'curse.maven' && details.requested.name.endsWith('-69162') && details.requested.version == '2388751') { + details.useVersion '2388750' + details.because 'Pick obfuscated jar' + } + } + } } // Ensure tests have access to minecraft classes sourceSets { - test { - java { - compileClasspath += sourceSets.patchedMc.output + sourceSets.mcLauncher.output - runtimeClasspath += sourceSets.patchedMc.output + sourceSets.mcLauncher.output - } - } + test { + java { + compileClasspath += sourceSets.patchedMc.output + sourceSets.mcLauncher.output + runtimeClasspath += sourceSets.patchedMc.output + sourceSets.mcLauncher.output + } + } } if (file('addon.gradle.kts').exists()) { - apply from: 'addon.gradle.kts' + apply from: 'addon.gradle.kts' } else if (file('addon.gradle').exists()) { - apply from: 'addon.gradle' + apply from: 'addon.gradle' } // File for local tweaks not commited to Git if (file('addon.local.gradle.kts').exists()) { - apply from: 'addon.local.gradle.kts' + apply from: 'addon.local.gradle.kts' } else if (file('addon.local.gradle').exists()) { - apply from: 'addon.local.gradle' + apply from: 'addon.local.gradle' } // Allow unsafe repos but warn repositories.configureEach { repo -> - if (repo instanceof org.gradle.api.artifacts.repositories.UrlArtifactRepository) { - if (repo.getUrl() != null && repo.getUrl().getScheme() == "http" && !repo.allowInsecureProtocol) { - logger.warn("Deprecated: Allowing insecure connections for repo '${repo.name}' - add 'allowInsecureProtocol = true'") - repo.allowInsecureProtocol = true - } - } + if (repo instanceof org.gradle.api.artifacts.repositories.UrlArtifactRepository) { + if (repo.getUrl() != null && repo.getUrl().getScheme() == "http" && !repo.allowInsecureProtocol) { + logger.warn("Deprecated: Allowing insecure connections for repo '${repo.name}' - add 'allowInsecureProtocol = true'") + repo.allowInsecureProtocol = true + } + } } if (file('repositories.gradle.kts').exists()) { - apply from: 'repositories.gradle.kts' + apply from: 'repositories.gradle.kts' } else if (file('repositories.gradle').exists()) { - apply from: 'repositories.gradle' + apply from: 'repositories.gradle' } else { - logger.error("Neither repositories.gradle.kts nor repositories.gradle was found, make sure you extracted the full ExampleMod template.") - throw new RuntimeException("Missing repositories.gradle[.kts]") + logger.error("Neither repositories.gradle.kts nor repositories.gradle was found, make sure you extracted the full ExampleMod template.") + throw new RuntimeException("Missing repositories.gradle[.kts]") } configurations { - runtimeClasspath.extendsFrom(runtimeOnlyNonPublishable) - testRuntimeClasspath.extendsFrom(runtimeOnlyNonPublishable) - for (config in [compileClasspath, runtimeClasspath, testCompileClasspath, testRuntimeClasspath]) { - if (usesShadowedDependencies.toBoolean()) { - config.extendsFrom(shadowImplementation) - // TODO: remove Compile after all uses are refactored to Implementation - config.extendsFrom(shadeCompile) - config.extendsFrom(shadowCompile) - } - } - // A "bag-of-dependencies"-style configuration for backwards compatibility, gets put in "api" - create("compile") { - description = "Deprecated: use api or implementation instead, gets put in api" - canBeConsumed = false - canBeResolved = false - visible = false - } - create("testCompile") { - description = "Deprecated: use testImplementation instead" - canBeConsumed = false - canBeResolved = false - visible = false - } - api.extendsFrom(compile) - testImplementation.extendsFrom(testCompile) + runtimeClasspath.extendsFrom(runtimeOnlyNonPublishable) + testRuntimeClasspath.extendsFrom(runtimeOnlyNonPublishable) + for (config in [compileClasspath, runtimeClasspath, testCompileClasspath, testRuntimeClasspath]) { + if (usesShadowedDependencies.toBoolean()) { + config.extendsFrom(shadowImplementation) + // TODO: remove Compile after all uses are refactored to Implementation + config.extendsFrom(shadeCompile) + config.extendsFrom(shadowCompile) + } + } + // A "bag-of-dependencies"-style configuration for backwards compatibility, gets put in "api" + create("compile") { + description = "Deprecated: use api or implementation instead, gets put in api" + canBeConsumed = false + canBeResolved = false + visible = false + } + create("testCompile") { + description = "Deprecated: use testImplementation instead" + canBeConsumed = false + canBeResolved = false + visible = false + } + api.extendsFrom(compile) + testImplementation.extendsFrom(testCompile) } afterEvaluate { - if (!configurations.compile.allDependencies.empty || !configurations.testCompile.allDependencies.empty) { - logger.warn("This project uses deprecated `compile` dependencies, please migrate to using `api` and `implementation`") - logger.warn("For more details, see https://github.com/GTNewHorizons/ExampleMod1.7.10/blob/master/dependencies.gradle") - } + if (!configurations.compile.allDependencies.empty || !configurations.testCompile.allDependencies.empty) { + logger.warn("This project uses deprecated `compile` dependencies, please migrate to using `api` and `implementation`") + logger.warn("For more details, see https://github.com/GTNewHorizons/ExampleMod1.7.10/blob/master/dependencies.gradle") + } } repositories { - maven { - name 'Overmind forge repo mirror' - url 'https://gregtech.overminddl1.com/' - mavenContent { - excludeGroup("net.minecraftforge") // missing the `universal` artefact - } - } - maven { - name = "GTNH Maven" - url = "http://jenkins.usrv.eu:8081/nexus/content/groups/public/" - allowInsecureProtocol = true - } - maven { - name 'sonatype' - url 'https://oss.sonatype.org/content/repositories/snapshots/' - content { - includeGroup "org.lwjgl" - } - } - if (includeWellKnownRepositories.toBoolean()) { - exclusiveContent { - forRepository { - maven { - name "CurseMaven" - url "https://cursemaven.com" - } - } - filter { - includeGroup "curse.maven" - } - } - exclusiveContent { - forRepository { - maven { - name = "Modrinth" - url = "https://api.modrinth.com/maven" - } - } - filter { - includeGroup "maven.modrinth" - } - } - maven { - name = "ic2" - url = "https://maven.ic2.player.to/" - metadataSources { - mavenPom() - artifact() - } - } - maven { - name = "ic2-mirror" - url = "https://maven2.ic2.player.to/" - metadataSources { - mavenPom() - artifact() - } - } - maven { - name "MMD Maven" - url "https://maven.mcmoddev.com/" - } - } + maven { + name 'Overmind forge repo mirror' + url 'https://gregtech.overminddl1.com/' + } + maven { + name = "GTNH Maven" + url = "http://jenkins.usrv.eu:8081/nexus/content/groups/public/" + allowInsecureProtocol = true + } + maven { + name 'sonatype' + url 'https://oss.sonatype.org/content/repositories/snapshots/' + content { + includeGroup "org.lwjgl" + } + } + if (includeWellKnownRepositories.toBoolean()) { + exclusiveContent { + forRepository { + maven { + name "CurseMaven" + url "https://cursemaven.com" + } + } + filter { + includeGroup "curse.maven" + } + } + exclusiveContent { + forRepository { + maven { + name = "Modrinth" + url = "https://api.modrinth.com/maven" + } + } + filter { + includeGroup "maven.modrinth" + } + } + maven { + name = "ic2" + url = getURL("https://maven.ic2.player.to/", "https://maven2.ic2.player.to/") + content { + includeGroup "net.industrial-craft" + } + metadataSources { + mavenPom() + artifact() + } + } + maven { + name "MMD Maven" + url "https://maven.mcmoddev.com/" + } + } } def mixinProviderGroup = "io.github.legacymoddingmc" @@ -627,86 +652,86 @@ def mixinProviderSpecNoClassifer = "${mixinProviderGroup}:${mixinProviderModule} def mixinProviderSpec = "${mixinProviderSpecNoClassifer}:dev" ext.mixinProviderSpec = mixinProviderSpec +def mixingConfigRefMap = 'mixins.' + modId + '.refmap.json' + dependencies { - if (usesMixins.toBoolean()) { - annotationProcessor('org.ow2.asm:asm-debug-all:5.0.3') - annotationProcessor('com.google.guava:guava:24.1.1-jre') - annotationProcessor('com.google.code.gson:gson:2.8.6') - annotationProcessor(mixinProviderSpec) - if (usesMixinDebug.toBoolean()) { - runtimeOnlyNonPublishable('org.jetbrains:intellij-fernflower:1.2.1.16') - } - } - if (usesMixins.toBoolean()) { - implementation(modUtils.enableMixins(mixinProviderSpec)) - } else if (forceEnableMixins.toBoolean()) { - runtimeOnlyNonPublishable(mixinProviderSpec) - } + if (usesMixins.toBoolean()) { + annotationProcessor('org.ow2.asm:asm-debug-all:5.0.3') + annotationProcessor('com.google.guava:guava:24.1.1-jre') + annotationProcessor('com.google.code.gson:gson:2.8.6') + annotationProcessor(mixinProviderSpec) + if (usesMixinDebug.toBoolean()) { + runtimeOnlyNonPublishable('org.jetbrains:intellij-fernflower:1.2.1.16') + } + } + if (usesMixins.toBoolean()) { + implementation(modUtils.enableMixins(mixinProviderSpec, mixingConfigRefMap)) + } else if (forceEnableMixins.toBoolean()) { + runtimeOnlyNonPublishable(mixinProviderSpec) + } } pluginManager.withPlugin('org.jetbrains.kotlin.kapt') { - if (usesMixins.toBoolean()) { - dependencies { - kapt(mixinProviderSpec) - } - } + if (usesMixins.toBoolean()) { + dependencies { + kapt(mixinProviderSpec) + } + } } // Replace old mixin mods with unimixins // https://docs.gradle.org/8.0.2/userguide/resolution_rules.html#sec:substitution_with_classifier configurations.all { - resolutionStrategy.dependencySubstitution { - substitute module('com.gtnewhorizon:gtnhmixins') using module(mixinProviderSpecNoClassifer) withClassifier("dev") because("Unimixins replaces other mixin mods") - substitute module('com.github.GTNewHorizons:Mixingasm') using module(mixinProviderSpecNoClassifer) withClassifier("dev") because("Unimixins replaces other mixin mods") - substitute module('com.github.GTNewHorizons:SpongePoweredMixin') using module(mixinProviderSpecNoClassifer) withClassifier("dev") because("Unimixins replaces other mixin mods") - substitute module('com.github.GTNewHorizons:SpongeMixins') using module(mixinProviderSpecNoClassifer) withClassifier("dev") because("Unimixins replaces other mixin mods") - substitute module('io.github.legacymoddingmc:unimixins') using module(mixinProviderSpecNoClassifer) withClassifier("dev") because("Our previous unimixins upload was missing the dev classifier") - } + resolutionStrategy.dependencySubstitution { + substitute module('com.gtnewhorizon:gtnhmixins') using module(mixinProviderSpecNoClassifer) withClassifier("dev") because("Unimixins replaces other mixin mods") + substitute module('com.github.GTNewHorizons:Mixingasm') using module(mixinProviderSpecNoClassifer) withClassifier("dev") because("Unimixins replaces other mixin mods") + substitute module('com.github.GTNewHorizons:SpongePoweredMixin') using module(mixinProviderSpecNoClassifer) withClassifier("dev") because("Unimixins replaces other mixin mods") + substitute module('com.github.GTNewHorizons:SpongeMixins') using module(mixinProviderSpecNoClassifer) withClassifier("dev") because("Unimixins replaces other mixin mods") + substitute module('io.github.legacymoddingmc:unimixins') using module(mixinProviderSpecNoClassifer) withClassifier("dev") because("Our previous unimixins upload was missing the dev classifier") + } } dependencies { - constraints { - def minGtnhLibVersion = "0.0.13" - implementation("com.github.GTNewHorizons:GTNHLib:${minGtnhLibVersion}") { - because("fixes duplicate mod errors in java 17 configurations using old gtnhlib") - } - runtimeOnly("com.github.GTNewHorizons:GTNHLib:${minGtnhLibVersion}") { - because("fixes duplicate mod errors in java 17 configurations using old gtnhlib") - } - devOnlyNonPublishable("com.github.GTNewHorizons:GTNHLib:${minGtnhLibVersion}") { - because("fixes duplicate mod errors in java 17 configurations using old gtnhlib") - } - runtimeOnlyNonPublishable("com.github.GTNewHorizons:GTNHLib:${minGtnhLibVersion}") { - because("fixes duplicate mod errors in java 17 configurations using old gtnhlib") - } - } + constraints { + def minGtnhLibVersion = "0.0.13" + implementation("com.github.GTNewHorizons:GTNHLib:${minGtnhLibVersion}") { + because("fixes duplicate mod errors in java 17 configurations using old gtnhlib") + } + runtimeOnly("com.github.GTNewHorizons:GTNHLib:${minGtnhLibVersion}") { + because("fixes duplicate mod errors in java 17 configurations using old gtnhlib") + } + devOnlyNonPublishable("com.github.GTNewHorizons:GTNHLib:${minGtnhLibVersion}") { + because("fixes duplicate mod errors in java 17 configurations using old gtnhlib") + } + runtimeOnlyNonPublishable("com.github.GTNewHorizons:GTNHLib:${minGtnhLibVersion}") { + because("fixes duplicate mod errors in java 17 configurations using old gtnhlib") + } + } } if (file('dependencies.gradle.kts').exists()) { - apply from: 'dependencies.gradle.kts' + apply from: 'dependencies.gradle.kts' } else if (file('dependencies.gradle').exists()) { - apply from: 'dependencies.gradle' + apply from: 'dependencies.gradle' } else { - logger.error("Neither dependencies.gradle.kts nor dependencies.gradle was found, make sure you extracted the full ExampleMod template.") - throw new RuntimeException("Missing dependencies.gradle[.kts]") + logger.error("Neither dependencies.gradle.kts nor dependencies.gradle was found, make sure you extracted the full ExampleMod template.") + throw new RuntimeException("Missing dependencies.gradle[.kts]") } -def mixingConfigRefMap = 'mixins.' + modId + '.refmap.json' - tasks.register('generateAssets') { - group = "GTNH Buildscript" - description = "Generates a mixin config file at /src/main/resources/mixins.modid.json if needed" - onlyIf { usesMixins.toBoolean() } - doLast { - def mixinConfigFile = getFile("/src/main/resources/mixins." + modId + ".json") - if (!mixinConfigFile.exists()) { - def mixinPluginLine = "" - if (!mixinPlugin.isEmpty()) { - // We might not have a mixin plugin if we're using early/late mixins - mixinPluginLine += """\n "plugin": "${modGroup}.${mixinPlugin}", """ - } - - mixinConfigFile.text = """{ + group = "GTNH Buildscript" + description = "Generates a mixin config file at /src/main/resources/mixins.modid.json if needed" + onlyIf { usesMixins.toBoolean() } + doLast { + def mixinConfigFile = getFile("/src/main/resources/mixins." + modId + ".json") + if (!mixinConfigFile.exists()) { + def mixinPluginLine = "" + if (!mixinPlugin.isEmpty()) { + // We might not have a mixin plugin if we're using early/late mixins + mixinPluginLine += """\n "plugin": "${modGroup}.${mixinPlugin}", """ + } + + mixinConfigFile.text = """{ "required": true, "minVersion": "0.8.5-GTNH", "package": "${modGroup}.${mixinsPackage}",${mixinPluginLine} @@ -718,577 +743,572 @@ tasks.register('generateAssets') { "server": [] } """ - } - } + } + } } if (usesMixins.toBoolean()) { - tasks.named("processResources").configure { - dependsOn("generateAssets") - } + tasks.named("processResources").configure { + dependsOn("generateAssets") + } - tasks.named("compileJava", JavaCompile).configure { - options.compilerArgs += [ - // Elan: from what I understand they are just some linter configs so you get some warning on how to properly code - "-XDenableSunApiLintControl", - "-XDignore.symbol.file" - ] - } + tasks.named("compileJava", JavaCompile).configure { + options.compilerArgs += [ + // Elan: from what I understand they are just some linter configs so you get some warning on how to properly code + "-XDenableSunApiLintControl", + "-XDignore.symbol.file" + ] + } } tasks.named("processResources", ProcessResources).configure { - // this will ensure that this task is redone when the versions change. - inputs.property "version", project.version - inputs.property "mcversion", project.minecraft.mcVersion - exclude("spotless.gradle") + // this will ensure that this task is redone when the versions change. + inputs.property "version", project.version + inputs.property "mcversion", project.minecraft.mcVersion + exclude("spotless.gradle") - // replace stuff in mcmod.info, nothing else. replaces ${key} with value in text - filesMatching("mcmod.info") { - expand "minecraftVersion": project.minecraft.mcVersion, - "modVersion": modVersion, - "modId": modId, - "modName": modName - } + // replace stuff in mcmod.info, nothing else. replaces ${key} with value in text + filesMatching("mcmod.info") { + expand "minecraftVersion": project.minecraft.mcVersion, + "modVersion": modVersion, + "modId": modId, + "modName": modName + } - if (usesMixins.toBoolean()) { - dependsOn("compileJava", "compileScala") - } + if (usesMixins.toBoolean()) { + dependsOn("compileJava", "compileScala") + } } ext.java17Toolchain = (JavaToolchainSpec spec) -> { - spec.languageVersion.set(JavaLanguageVersion.of(17)) - spec.vendor.set(JvmVendorSpec.matching("jetbrains")) + spec.languageVersion.set(JavaLanguageVersion.of(17)) + spec.vendor.set(JvmVendorSpec.matching("jetbrains")) } ext.java17DependenciesCfg = configurations.create("java17Dependencies") { - extendsFrom(configurations.getByName("runtimeClasspath")) // Ensure consistent transitive dependency resolution - canBeConsumed = false + extendsFrom(configurations.getByName("runtimeClasspath")) // Ensure consistent transitive dependency resolution + canBeConsumed = false } ext.java17PatchDependenciesCfg = configurations.create("java17PatchDependencies") { - canBeConsumed = false + canBeConsumed = false } dependencies { - def lwjgl3ifyVersion = '1.4.0' - def asmVersion = '9.4' - if (modId != 'lwjgl3ify') { - java17Dependencies("com.github.GTNewHorizons:lwjgl3ify:${lwjgl3ifyVersion}") - } - if (modId != 'hodgepodge') { - java17Dependencies('com.github.GTNewHorizons:Hodgepodge:2.2.19') - } - - java17PatchDependencies('net.minecraft:launchwrapper:1.15') {transitive = false} - java17PatchDependencies("org.ow2.asm:asm:${asmVersion}") - java17PatchDependencies("org.ow2.asm:asm-commons:${asmVersion}") - java17PatchDependencies("org.ow2.asm:asm-tree:${asmVersion}") - java17PatchDependencies("org.ow2.asm:asm-analysis:${asmVersion}") - java17PatchDependencies("org.ow2.asm:asm-util:${asmVersion}") - java17PatchDependencies('org.ow2.asm:asm-deprecated:7.1') - java17PatchDependencies("org.apache.commons:commons-lang3:3.12.0") - java17PatchDependencies("com.github.GTNewHorizons:lwjgl3ify:${lwjgl3ifyVersion}:forgePatches") {transitive = false} + def lwjgl3ifyVersion = '1.5.1' + if (modId != 'lwjgl3ify') { + java17Dependencies("com.github.GTNewHorizons:lwjgl3ify:${lwjgl3ifyVersion}") + } + if (modId != 'hodgepodge') { + java17Dependencies('com.github.GTNewHorizons:Hodgepodge:2.3.7') + } + + java17PatchDependencies("com.github.GTNewHorizons:lwjgl3ify:${lwjgl3ifyVersion}:forgePatches") { transitive = false } } ext.java17JvmArgs = [ - // Java 9+ support - "--illegal-access=warn", - "-Djava.security.manager=allow", - "-Dfile.encoding=UTF-8", - "--add-opens", "java.base/jdk.internal.loader=ALL-UNNAMED", - "--add-opens", "java.base/java.net=ALL-UNNAMED", - "--add-opens", "java.base/java.nio=ALL-UNNAMED", - "--add-opens", "java.base/java.io=ALL-UNNAMED", - "--add-opens", "java.base/java.lang=ALL-UNNAMED", - "--add-opens", "java.base/java.lang.reflect=ALL-UNNAMED", - "--add-opens", "java.base/java.text=ALL-UNNAMED", - "--add-opens", "java.base/java.util=ALL-UNNAMED", - "--add-opens", "java.base/jdk.internal.reflect=ALL-UNNAMED", - "--add-opens", "java.base/sun.nio.ch=ALL-UNNAMED", - "--add-opens", "jdk.naming.dns/com.sun.jndi.dns=ALL-UNNAMED,java.naming", - "--add-opens", "java.desktop/sun.awt.image=ALL-UNNAMED", - "--add-modules", "jdk.dynalink", - "--add-opens", "jdk.dynalink/jdk.dynalink.beans=ALL-UNNAMED", - "--add-modules", "java.sql.rowset", - "--add-opens", "java.sql.rowset/javax.sql.rowset.serial=ALL-UNNAMED" + // Java 9+ support + "--illegal-access=warn", + "-Djava.security.manager=allow", + "-Dfile.encoding=UTF-8", + "--add-opens", "java.base/jdk.internal.loader=ALL-UNNAMED", + "--add-opens", "java.base/java.net=ALL-UNNAMED", + "--add-opens", "java.base/java.nio=ALL-UNNAMED", + "--add-opens", "java.base/java.io=ALL-UNNAMED", + "--add-opens", "java.base/java.lang=ALL-UNNAMED", + "--add-opens", "java.base/java.lang.reflect=ALL-UNNAMED", + "--add-opens", "java.base/java.text=ALL-UNNAMED", + "--add-opens", "java.base/java.util=ALL-UNNAMED", + "--add-opens", "java.base/jdk.internal.reflect=ALL-UNNAMED", + "--add-opens", "java.base/sun.nio.ch=ALL-UNNAMED", + "--add-opens", "jdk.naming.dns/com.sun.jndi.dns=ALL-UNNAMED,java.naming", + "--add-opens", "java.desktop/sun.awt.image=ALL-UNNAMED", + "--add-modules", "jdk.dynalink", + "--add-opens", "jdk.dynalink/jdk.dynalink.beans=ALL-UNNAMED", + "--add-modules", "java.sql.rowset", + "--add-opens", "java.sql.rowset/javax.sql.rowset.serial=ALL-UNNAMED" ] ext.hotswapJvmArgs = [ - // DCEVM advanced hot reload - "-XX:+AllowEnhancedClassRedefinition", - "-XX:HotswapAgent=fatjar" + // DCEVM advanced hot reload + "-XX:+AllowEnhancedClassRedefinition", + "-XX:HotswapAgent=fatjar" ] ext.setupHotswapAgentTask = tasks.register("setupHotswapAgent") { - group = "GTNH Buildscript" - description = "Installs a recent version of HotSwapAgent into the Java 17 JetBrains runtime directory" - def hsaUrl = 'https://github.com/HotswapProjects/HotswapAgent/releases/download/1.4.2-SNAPSHOT/hotswap-agent-1.4.2-SNAPSHOT.jar' - def targetFolderProvider = javaToolchains.launcherFor(java17Toolchain).map {it.metadata.installationPath.dir("lib/hotswap")} - def targetFilename = "hotswap-agent.jar" - onlyIf { - !targetFolderProvider.get().file(targetFilename).asFile.exists() - } - doLast { - def targetFolder = targetFolderProvider.get() - targetFolder.asFile.mkdirs() - download.run { - src hsaUrl - dest targetFolder.file(targetFilename).asFile - overwrite false - tempAndMove true - } - } + group = "GTNH Buildscript" + description = "Installs a recent version of HotSwapAgent into the Java 17 JetBrains runtime directory" + def hsaUrl = 'https://github.com/HotswapProjects/HotswapAgent/releases/download/1.4.2-SNAPSHOT/hotswap-agent-1.4.2-SNAPSHOT.jar' + def targetFolderProvider = javaToolchains.launcherFor(java17Toolchain).map { it.metadata.installationPath.dir("lib/hotswap") } + def targetFilename = "hotswap-agent.jar" + onlyIf { + !targetFolderProvider.get().file(targetFilename).asFile.exists() + } + doLast { + def targetFolder = targetFolderProvider.get() + targetFolder.asFile.mkdirs() + download.run { + src hsaUrl + dest targetFolder.file(targetFilename).asFile + overwrite false + tempAndMove true + } + } } public abstract class RunHotswappableMinecraftTask extends RunMinecraftTask { - // IntelliJ doesn't seem to allow commandline arguments so we also support an env variable - private boolean enableHotswap = Boolean.valueOf(System.getenv("HOTSWAP")); - - @Input - public boolean getEnableHotswap() { return enableHotswap } - @Option(option = "hotswap", description = "Enables HotSwapAgent for enhanced class reloading under a debugger") - public boolean setEnableHotswap(boolean enable) { enableHotswap = enable } - - @Inject - public RunHotswappableMinecraftTask(Distribution side, String superTask, org.gradle.api.invocation.Gradle gradle) { - super(side, gradle) - - this.lwjglVersion = 3 - this.javaLauncher = project.javaToolchains.launcherFor(project.java17Toolchain) - this.extraJvmArgs.addAll(project.java17JvmArgs) - this.extraJvmArgs.addAll(project.provider(() -> enableHotswap ? project.hotswapJvmArgs : [])) - - this.classpath(project.java17PatchDependenciesCfg) - if (side == Distribution.CLIENT) { - this.classpath(project.minecraftTasks.lwjgl3Configuration) - } - // Use a raw provider instead of map to not create a dependency on the task - this.classpath(project.provider(() -> project.tasks.named(superTask, RunMinecraftTask).get().classpath)) - this.classpath.filter { file -> - !file.path.contains("2.9.4-nightly-20150209") // Remove lwjgl2 - } - this.classpath(project.java17DependenciesCfg) - } - - public void setup(Project project) { - super.setup(project) - if (project.usesMixins.toBoolean()) { - this.extraJvmArgs.addAll(project.provider(() -> { - def mixinCfg = project.configurations.detachedConfiguration(project.dependencies.create(project.mixinProviderSpec)) - mixinCfg.canBeConsumed = false - mixinCfg.transitive = false - enableHotswap ? ["-javaagent:" + mixinCfg.singleFile.absolutePath] : [] - })) - } - } + // IntelliJ doesn't seem to allow commandline arguments so we also support an env variable + private boolean enableHotswap = Boolean.valueOf(System.getenv("HOTSWAP")); + + @Input + public boolean getEnableHotswap() { return enableHotswap } + + @Option(option = "hotswap", description = "Enables HotSwapAgent for enhanced class reloading under a debugger") + public boolean setEnableHotswap(boolean enable) { enableHotswap = enable } + + @Inject + public RunHotswappableMinecraftTask(Distribution side, String superTask, org.gradle.api.invocation.Gradle gradle) { + super(side, gradle) + + this.lwjglVersion = 3 + this.javaLauncher = project.javaToolchains.launcherFor(project.java17Toolchain) + this.extraJvmArgs.addAll(project.java17JvmArgs) + this.extraJvmArgs.addAll(project.provider(() -> enableHotswap ? project.hotswapJvmArgs : [])) + + this.classpath(project.java17PatchDependenciesCfg) + if (side == Distribution.CLIENT) { + this.classpath(project.minecraftTasks.lwjgl3Configuration) + } + // Use a raw provider instead of map to not create a dependency on the task + this.classpath(project.provider(() -> project.tasks.named(superTask, RunMinecraftTask).get().classpath)) + this.classpath.filter { file -> + !file.path.contains("2.9.4-nightly-20150209") // Remove lwjgl2 + } + this.classpath(project.java17DependenciesCfg) + } + + public void setup(Project project) { + super.setup(project) + if (project.usesMixins.toBoolean()) { + this.extraJvmArgs.addAll(project.provider(() -> { + def mixinCfg = project.configurations.detachedConfiguration(project.dependencies.create(project.mixinProviderSpec)) + mixinCfg.canBeConsumed = false + mixinCfg.transitive = false + enableHotswap ? ["-javaagent:" + mixinCfg.singleFile.absolutePath] : [] + })) + } + } } def runClient17Task = tasks.register("runClient17", RunHotswappableMinecraftTask, Distribution.CLIENT, "runClient") runClient17Task.configure { - setup(project) - group = "Modded Minecraft" - description = "Runs the modded client using Java 17, lwjgl3ify and Hodgepodge" - dependsOn(setupHotswapAgentTask, mcpTasks.launcherSources.classesTaskName, minecraftTasks.taskDownloadVanillaAssets, mcpTasks.taskPackagePatchedMc, 'jar') - mainClass = "GradleStart" - username = minecraft.username - userUUID = minecraft.userUUID + setup(project) + group = "Modded Minecraft" + description = "Runs the modded client using Java 17, lwjgl3ify and Hodgepodge" + dependsOn(setupHotswapAgentTask, mcpTasks.launcherSources.classesTaskName, minecraftTasks.taskDownloadVanillaAssets, mcpTasks.taskPackagePatchedMc, 'jar') + mainClass = "GradleStart" + username = minecraft.username + userUUID = minecraft.userUUID } def runServer17Task = tasks.register("runServer17", RunHotswappableMinecraftTask, Distribution.DEDICATED_SERVER, "runServer") runServer17Task.configure { - setup(project) - group = "Modded Minecraft" - description = "Runs the modded server using Java 17, lwjgl3ify and Hodgepodge" - dependsOn(setupHotswapAgentTask, mcpTasks.launcherSources.classesTaskName, minecraftTasks.taskDownloadVanillaAssets, mcpTasks.taskPackagePatchedMc, 'jar') - mainClass = "GradleStartServer" - extraArgs.add("nogui") + setup(project) + group = "Modded Minecraft" + description = "Runs the modded server using Java 17, lwjgl3ify and Hodgepodge" + dependsOn(setupHotswapAgentTask, mcpTasks.launcherSources.classesTaskName, minecraftTasks.taskDownloadVanillaAssets, mcpTasks.taskPackagePatchedMc, 'jar') + mainClass = "GradleStartServer" + extraArgs.add("nogui") } def getManifestAttributes() { - def manifestAttributes = [:] - if (!containsMixinsAndOrCoreModOnly.toBoolean() && (usesMixins.toBoolean() || coreModClass)) { - manifestAttributes += ["FMLCorePluginContainsFMLMod": true] - } + def manifestAttributes = [:] + if (!containsMixinsAndOrCoreModOnly.toBoolean() && (usesMixins.toBoolean() || coreModClass)) { + manifestAttributes += ["FMLCorePluginContainsFMLMod": true] + } - if (accessTransformersFile) { - manifestAttributes += ["FMLAT": accessTransformersFile.toString()] - } + if (accessTransformersFile) { + manifestAttributes += ["FMLAT": accessTransformersFile.toString()] + } - if (coreModClass) { - manifestAttributes += ["FMLCorePlugin": modGroup + "." + coreModClass] - } + if (coreModClass) { + manifestAttributes += ["FMLCorePlugin": modGroup + "." + coreModClass] + } - if (usesMixins.toBoolean()) { - manifestAttributes += [ - "TweakClass" : "org.spongepowered.asm.launch.MixinTweaker", - "MixinConfigs" : "mixins." + modId + ".json", - "ForceLoadAsMod": !containsMixinsAndOrCoreModOnly.toBoolean() - ] - } - return manifestAttributes + if (usesMixins.toBoolean()) { + manifestAttributes += [ + "TweakClass" : "org.spongepowered.asm.launch.MixinTweaker", + "MixinConfigs" : "mixins." + modId + ".json", + "ForceLoadAsMod": !containsMixinsAndOrCoreModOnly.toBoolean() + ] + } + return manifestAttributes } tasks.named("jar", Jar).configure { - manifest { - attributes(getManifestAttributes()) - } + manifest { + attributes(getManifestAttributes()) + } } if (usesShadowedDependencies.toBoolean()) { - tasks.named("shadowJar", ShadowJar).configure { - manifest { - attributes(getManifestAttributes()) - } - - if (minimizeShadowedDependencies.toBoolean()) { - minimize() // This will only allow shading for actually used classes - } - configurations = [ - project.configurations.shadowImplementation, - project.configurations.shadowCompile, - project.configurations.shadeCompile - ] - archiveClassifier.set('dev') - if (relocateShadowedDependencies.toBoolean()) { - relocationPrefix = modGroup + ".shadow" - enableRelocation = true - } - } - configurations.runtimeElements.outgoing.artifacts.clear() - configurations.apiElements.outgoing.artifacts.clear() - configurations.runtimeElements.outgoing.artifact(tasks.named("shadowJar", ShadowJar)) - configurations.apiElements.outgoing.artifact(tasks.named("shadowJar", ShadowJar)) - tasks.named("jar", Jar) { - enabled = false - finalizedBy(tasks.shadowJar) - } - tasks.named("reobfJar", ReobfuscatedJar) { - inputJar.set(tasks.named("shadowJar", ShadowJar).flatMap({it.archiveFile})) - } - AdhocComponentWithVariants javaComponent = (AdhocComponentWithVariants) project.components.findByName("java") - javaComponent.withVariantsFromConfiguration(configurations.shadowRuntimeElements) { - skip() - } - for (runTask in ["runClient", "runServer", "runClient17", "runServer17"]) { - tasks.named(runTask).configure { - dependsOn("shadowJar") - } - } + tasks.named("shadowJar", ShadowJar).configure { + manifest { + attributes(getManifestAttributes()) + } + + if (minimizeShadowedDependencies.toBoolean()) { + minimize() // This will only allow shading for actually used classes + } + configurations = [ + project.configurations.shadowImplementation, + project.configurations.shadowCompile, + project.configurations.shadeCompile + ] + archiveClassifier.set('dev') + if (relocateShadowedDependencies.toBoolean()) { + relocationPrefix = modGroup + ".shadow" + enableRelocation = true + } + } + configurations.runtimeElements.outgoing.artifacts.clear() + configurations.apiElements.outgoing.artifacts.clear() + configurations.runtimeElements.outgoing.artifact(tasks.named("shadowJar", ShadowJar)) + configurations.apiElements.outgoing.artifact(tasks.named("shadowJar", ShadowJar)) + tasks.named("jar", Jar) { + enabled = false + finalizedBy(tasks.shadowJar) + } + tasks.named("reobfJar", ReobfuscatedJar) { + inputJar.set(tasks.named("shadowJar", ShadowJar).flatMap({ it.archiveFile })) + } + AdhocComponentWithVariants javaComponent = (AdhocComponentWithVariants) project.components.findByName("java") + javaComponent.withVariantsFromConfiguration(configurations.shadowRuntimeElements) { + skip() + } + for (runTask in ["runClient", "runServer", "runClient17", "runServer17"]) { + tasks.named(runTask).configure { + dependsOn("shadowJar") + } + } } ext.publishableDevJar = usesShadowedDependencies.toBoolean() ? tasks.shadowJar : tasks.jar ext.publishableObfJar = tasks.reobfJar tasks.register('apiJar', Jar) { - from(sourceSets.main.allSource) { - include modGroupPath + "/" + apiPackagePath + '/**' - } + from(sourceSets.main.allSource) { + include modGroupPath + "/" + apiPackagePath + '/**' + } - from(sourceSets.main.output) { - include modGroupPath + "/" + apiPackagePath + '/**' - } + from(sourceSets.main.output) { + include modGroupPath + "/" + apiPackagePath + '/**' + } - from(sourceSets.main.resources.srcDirs) { - include("LICENSE") - } + from(sourceSets.main.resources.srcDirs) { + include("LICENSE") + } - getArchiveClassifier().set('api') + getArchiveClassifier().set('api') } artifacts { - if (!noPublishedSources) { - archives tasks.named("sourcesJar") - } - if (apiPackage) { - archives tasks.named("apiJar") - } + if (!noPublishedSources) { + archives tasks.named("sourcesJar") + } + if (apiPackage) { + archives tasks.named("apiJar") + } } idea { - module { - downloadJavadoc = true - downloadSources = true - inheritOutputDirs = true - } - project { - settings { - if (ideaOverrideBuildType != "") { - delegateActions { - if ("gradle".equalsIgnoreCase(ideaOverrideBuildType)) { - delegateBuildRunToGradle = true - testRunner = org.jetbrains.gradle.ext.ActionDelegationConfig.TestRunner.GRADLE - } else if ("idea".equalsIgnoreCase(ideaOverrideBuildType)) { - delegateBuildRunToGradle = false - testRunner = org.jetbrains.gradle.ext.ActionDelegationConfig.TestRunner.PLATFORM - } else { - throw GradleScriptException('Accepted value for ideaOverrideBuildType is one of gradle or idea.') - } - } - } - runConfigurations { - "0. Build and Test"(Gradle) { - taskNames = ["build"] - } - "1. Run Client"(Gradle) { - taskNames = ["runClient"] - } - "2. Run Server"(Gradle) { - taskNames = ["runServer"] - } - "1a. Run Client (Java 17)"(Gradle) { - taskNames = ["runClient17"] - } - "2a. Run Server (Java 17)"(Gradle) { - taskNames = ["runServer17"] - } - "1b. Run Client (Java 17, Hotswap)"(Gradle) { - taskNames = ["runClient17"] - envs = ["HOTSWAP": "true"] - } - "2b. Run Server (Java 17, Hotswap)"(Gradle) { - taskNames = ["runServer17"] - envs = ["HOTSWAP": "true"] - } - "3. Run Obfuscated Client"(Gradle) { - taskNames = ["runObfClient"] - } - "4. Run Obfuscated Server"(Gradle) { - taskNames = ["runObfServer"] - } - if (!disableSpotless) { - "5. Apply spotless"(Gradle) { - taskNames = ["spotlessApply"] - } - } - def coreModArgs = "" - if (coreModClass) { - coreModArgs = ' "-Dfml.coreMods.load=' + modGroup + '.' + coreModClass + '"' - } - "Run Client (IJ Native)"(Application) { - mainClass = "GradleStart" - moduleName = project.name + ".ideVirtualMain" - afterEvaluate { - workingDirectory = tasks.runClient.workingDir.absolutePath - programParameters = tasks.runClient.calculateArgs(project).collect { '"' + it + '"' }.join(' ') - jvmArgs = tasks.runClient.calculateJvmArgs(project).collect { '"' + it + '"' }.join(' ') + - ' ' + tasks.runClient.systemProperties.collect { '"-D' + it.key + '=' + it.value.toString() + '"' }.join(' ') + - coreModArgs - } - } - "Run Server (IJ Native)"(Application) { - mainClass = "GradleStartServer" - moduleName = project.name + ".ideVirtualMain" - afterEvaluate { - workingDirectory = tasks.runServer.workingDir.absolutePath - programParameters = tasks.runServer.calculateArgs(project).collect { '"' + it + '"' }.join(' ') - jvmArgs = tasks.runServer.calculateJvmArgs(project).collect { '"' + it + '"' }.join(' ') + - ' ' + tasks.runServer.systemProperties.collect { '"-D' + it.key + '=' + it.value.toString() + '"' }.join(' ') + - coreModArgs - } - } - } - compiler.javac { - afterEvaluate { - javacAdditionalOptions = "-encoding utf8" - moduleJavacAdditionalOptions = [ - (project.name + ".main"): tasks.compileJava.options.compilerArgs.collect { '"' + it + '"' }.join(' ') - ] - } - } - withIDEADir { File ideaDir -> - if (!ideaDir.path.contains(".idea")) { - // If an .ipr file exists, the project root directory is passed here instead of the .idea subdirectory - ideaDir = new File(ideaDir, ".idea") - } - if (ideaDir.isDirectory()) { - def miscFile = new File(ideaDir, "misc.xml") - if (miscFile.isFile()) { - boolean dirty = false - def miscTransformer = new XmlTransformer() - miscTransformer.addAction { root -> - Node rootNode = root.asNode() - def rootManager = rootNode - .component.find { it.@name == 'ProjectRootManager' } - if (!rootManager) { - rootManager = rootNode.appendNode('component', ['name': 'ProjectRootManager', 'version': '2']) - dirty = true - } - def output = rootManager.output - if (!output) { - output = rootManager.appendNode('output') - dirty = true - } - if (!output.@url) { - // Only modify the output url if it doesn't yet have one, or if the existing one is blank somehow. - // This is a sensible default for most setups - output.@url = 'file://$PROJECT_DIR$/build/ideaBuild' - dirty = true - } - } - def result = miscTransformer.transform(miscFile.text) - if (dirty) { - miscFile.write(result) - } - } else { - miscFile.text = """ + module { + downloadJavadoc = true + downloadSources = true + inheritOutputDirs = true + } + project { + settings { + if (ideaOverrideBuildType != "") { + delegateActions { + if ("gradle".equalsIgnoreCase(ideaOverrideBuildType)) { + delegateBuildRunToGradle = true + testRunner = org.jetbrains.gradle.ext.ActionDelegationConfig.TestRunner.GRADLE + } else if ("idea".equalsIgnoreCase(ideaOverrideBuildType)) { + delegateBuildRunToGradle = false + testRunner = org.jetbrains.gradle.ext.ActionDelegationConfig.TestRunner.PLATFORM + } else { + throw GradleScriptException('Accepted value for ideaOverrideBuildType is one of gradle or idea.') + } + } + } + runConfigurations { + "0. Build and Test"(Gradle) { + taskNames = ["build"] + } + "1. Run Client"(Gradle) { + taskNames = ["runClient"] + } + "2. Run Server"(Gradle) { + taskNames = ["runServer"] + } + "1a. Run Client (Java 17)"(Gradle) { + taskNames = ["runClient17"] + } + "2a. Run Server (Java 17)"(Gradle) { + taskNames = ["runServer17"] + } + "1b. Run Client (Java 17, Hotswap)"(Gradle) { + taskNames = ["runClient17"] + envs = ["HOTSWAP": "true"] + } + "2b. Run Server (Java 17, Hotswap)"(Gradle) { + taskNames = ["runServer17"] + envs = ["HOTSWAP": "true"] + } + "3. Run Obfuscated Client"(Gradle) { + taskNames = ["runObfClient"] + } + "4. Run Obfuscated Server"(Gradle) { + taskNames = ["runObfServer"] + } + if (!disableSpotless) { + "5. Apply spotless"(Gradle) { + taskNames = ["spotlessApply"] + } + } + def coreModArgs = "" + if (coreModClass) { + coreModArgs = ' "-Dfml.coreMods.load=' + modGroup + '.' + coreModClass + '"' + } + "Run Client (IJ Native)"(Application) { + mainClass = "GradleStart" + moduleName = project.name + ".ideVirtualMain" + afterEvaluate { + workingDirectory = tasks.runClient.workingDir.absolutePath + programParameters = tasks.runClient.calculateArgs(project).collect { '"' + it + '"' }.join(' ') + jvmArgs = tasks.runClient.calculateJvmArgs(project).collect { '"' + it + '"' }.join(' ') + + ' ' + tasks.runClient.systemProperties.collect { '"-D' + it.key + '=' + it.value.toString() + '"' }.join(' ') + + coreModArgs + } + } + "Run Server (IJ Native)"(Application) { + mainClass = "GradleStartServer" + moduleName = project.name + ".ideVirtualMain" + afterEvaluate { + workingDirectory = tasks.runServer.workingDir.absolutePath + programParameters = tasks.runServer.calculateArgs(project).collect { '"' + it + '"' }.join(' ') + jvmArgs = tasks.runServer.calculateJvmArgs(project).collect { '"' + it + '"' }.join(' ') + + ' ' + tasks.runServer.systemProperties.collect { '"-D' + it.key + '=' + it.value.toString() + '"' }.join(' ') + + coreModArgs + } + } + } + compiler.javac { + afterEvaluate { + javacAdditionalOptions = "-encoding utf8" + moduleJavacAdditionalOptions = [ + (project.name + ".main"): tasks.compileJava.options.compilerArgs.collect { '"' + it + '"' }.join(' ') + ] + } + } + withIDEADir { File ideaDir -> + if (!ideaDir.path.contains(".idea")) { + // If an .ipr file exists, the project root directory is passed here instead of the .idea subdirectory + ideaDir = new File(ideaDir, ".idea") + } + if (ideaDir.isDirectory()) { + def miscFile = new File(ideaDir, "misc.xml") + if (miscFile.isFile()) { + boolean dirty = false + def miscTransformer = new XmlTransformer() + miscTransformer.addAction { root -> + Node rootNode = root.asNode() + def rootManager = rootNode + .component.find { it.@name == 'ProjectRootManager' } + if (!rootManager) { + rootManager = rootNode.appendNode('component', ['name': 'ProjectRootManager', 'version': '2']) + dirty = true + } + def output = rootManager.output + if (!output) { + output = rootManager.appendNode('output') + dirty = true + } + if (!output.@url) { + // Only modify the output url if it doesn't yet have one, or if the existing one is blank somehow. + // This is a sensible default for most setups + output.@url = 'file://$PROJECT_DIR$/build/ideaBuild' + dirty = true + } + } + def result = miscTransformer.transform(miscFile.text) + if (dirty) { + miscFile.write(result) + } + } else { + miscFile.text = """ """ - } - } - } - } - } + } + } + } + } + } } tasks.named("processIdeaSettings").configure { - dependsOn("injectTags") + dependsOn("injectTags") } tasks.named("ideVirtualMainClasses").configure { - // Make IntelliJ "Build project" build the mod jars - dependsOn("jar", "reobfJar", "spotlessCheck") + // Make IntelliJ "Build project" build the mod jars + dependsOn("jar", "reobfJar") + if (!disableSpotless) { + dependsOn("spotlessCheck") + } } // workaround variable hiding in pom processing def projectConfigs = project.configurations publishing { - publications { - create("maven", MavenPublication) { - from components.java - - if (apiPackage) { - artifact apiJar - } - - groupId = System.getenv("ARTIFACT_GROUP_ID") ?: project.group - artifactId = System.getenv("ARTIFACT_ID") ?: project.name - // Using the identified version, not project.version as it has the prepended 1.7.10 - version = System.getenv("RELEASE_VERSION") ?: identifiedVersion - } - } - - repositories { - if (usesMavenPublishing.toBoolean()) { - maven { - url = mavenPublishUrl - allowInsecureProtocol = mavenPublishUrl.startsWith("http://") // Mostly for the GTNH maven - credentials { - username = System.getenv("MAVEN_USER") ?: "NONE" - password = System.getenv("MAVEN_PASSWORD") ?: "NONE" - } - } - } - } + publications { + create("maven", MavenPublication) { + from components.java + + if (apiPackage) { + artifact apiJar + } + + groupId = System.getenv("ARTIFACT_GROUP_ID") ?: project.group + artifactId = System.getenv("ARTIFACT_ID") ?: project.name + // Using the identified version, not project.version as it has the prepended 1.7.10 + version = System.getenv("RELEASE_VERSION") ?: identifiedVersion + } + } + + repositories { + if (usesMavenPublishing.toBoolean()) { + maven { + url = mavenPublishUrl + allowInsecureProtocol = mavenPublishUrl.startsWith("http://") // Mostly for the GTNH maven + credentials { + username = System.getenv("MAVEN_USER") ?: "NONE" + password = System.getenv("MAVEN_PASSWORD") ?: "NONE" + } + } + } + } } if (modrinthProjectId.size() != 0 && System.getenv("MODRINTH_TOKEN") != null) { - apply plugin: 'com.modrinth.minotaur' - - File changelogFile = new File(System.getenv("CHANGELOG_FILE") ?: "CHANGELOG.md") - - modrinth { - token = System.getenv("MODRINTH_TOKEN") - projectId = modrinthProjectId - versionNumber = identifiedVersion - versionType = identifiedVersion.endsWith("-pre") ? "beta" : "release" - changelog = changelogFile.exists() ? changelogFile.getText("UTF-8") : "" - uploadFile = publishableObfJar - additionalFiles = getSecondaryArtifacts() - gameVersions = [minecraftVersion] - loaders = ["forge"] - debugMode = false - } - - if (modrinthRelations.size() != 0) { - String[] deps = modrinthRelations.split(";") - deps.each { dep -> - if (dep.size() == 0) { - return - } - String[] parts = dep.split(":") - String[] qual = parts[0].split("-") - addModrinthDep(qual[0], qual[1], parts[1]) - } - } - if (usesMixins.toBoolean()) { - addModrinthDep("required", "project", "unimixins") - } - tasks.modrinth.dependsOn(build) - tasks.publish.dependsOn(tasks.modrinth) + apply plugin: 'com.modrinth.minotaur' + + File changelogFile = new File(System.getenv("CHANGELOG_FILE") ?: "CHANGELOG.md") + + modrinth { + token = System.getenv("MODRINTH_TOKEN") + projectId = modrinthProjectId + versionNumber = identifiedVersion + versionType = identifiedVersion.endsWith("-pre") ? "beta" : "release" + changelog = changelogFile.exists() ? changelogFile.getText("UTF-8") : "" + uploadFile = publishableObfJar + additionalFiles = getSecondaryArtifacts() + gameVersions = [minecraftVersion] + loaders = ["forge"] + debugMode = false + } + + if (modrinthRelations.size() != 0) { + String[] deps = modrinthRelations.split(";") + deps.each { dep -> + if (dep.size() == 0) { + return + } + String[] parts = dep.split(":") + String[] qual = parts[0].split("-") + addModrinthDep(qual[0], qual[1], parts[1]) + } + } + if (usesMixins.toBoolean()) { + addModrinthDep("required", "project", "unimixins") + } + tasks.modrinth.dependsOn(build) + tasks.publish.dependsOn(tasks.modrinth) } if (curseForgeProjectId.size() != 0 && System.getenv("CURSEFORGE_TOKEN") != null) { - apply plugin: 'com.matthewprenger.cursegradle' - - File changelogFile = new File(System.getenv("CHANGELOG_FILE") ?: "CHANGELOG.md") - - curseforge { - apiKey = System.getenv("CURSEFORGE_TOKEN") - project { - id = curseForgeProjectId - if (changelogFile.exists()) { - changelogType = "markdown" - changelog = changelogFile - } - releaseType = identifiedVersion.endsWith("-pre") ? "beta" : "release" - addGameVersion minecraftVersion - addGameVersion "Forge" - mainArtifact publishableObfJar - for (artifact in getSecondaryArtifacts()) addArtifact artifact - } - - options { - javaIntegration = false - forgeGradleIntegration = false - debug = false - } - } - - if (curseForgeRelations.size() != 0) { - String[] deps = curseForgeRelations.split(";") - deps.each { dep -> - if (dep.size() == 0) { - return - } - String[] parts = dep.split(":") - addCurseForgeRelation(parts[0], parts[1]) - } - } - if (usesMixins.toBoolean()) { - addCurseForgeRelation("requiredDependency", "unimixins") - } - tasks.curseforge.dependsOn(build) - tasks.publish.dependsOn(tasks.curseforge) + apply plugin: 'com.matthewprenger.cursegradle' + + File changelogFile = new File(System.getenv("CHANGELOG_FILE") ?: "CHANGELOG.md") + + curseforge { + apiKey = System.getenv("CURSEFORGE_TOKEN") + project { + id = curseForgeProjectId + if (changelogFile.exists()) { + changelogType = "markdown" + changelog = changelogFile + } + releaseType = identifiedVersion.endsWith("-pre") ? "beta" : "release" + addGameVersion minecraftVersion + addGameVersion "Forge" + mainArtifact publishableObfJar + for (artifact in getSecondaryArtifacts()) addArtifact artifact + } + + options { + javaIntegration = false + forgeGradleIntegration = false + debug = false + } + } + + if (curseForgeRelations.size() != 0) { + String[] deps = curseForgeRelations.split(";") + deps.each { dep -> + if (dep.size() == 0) { + return + } + String[] parts = dep.split(":") + addCurseForgeRelation(parts[0], parts[1]) + } + } + if (usesMixins.toBoolean()) { + addCurseForgeRelation("requiredDependency", "unimixins") + } + tasks.curseforge.dependsOn(build) + tasks.publish.dependsOn(tasks.curseforge) } def addModrinthDep(String scope, String type, String name) { - com.modrinth.minotaur.dependencies.Dependency dep; - if (!(scope in ["required", "optional", "incompatible", "embedded"])) { - throw new Exception("Invalid modrinth dependency scope: " + scope) - } - switch (type) { - case "project": - dep = new ModDependency(name, scope) - break - case "version": - dep = new VersionDependency(name, scope) - break - default: - throw new Exception("Invalid modrinth dependency type: " + type) - } - project.modrinth.dependencies.add(dep) + com.modrinth.minotaur.dependencies.Dependency dep; + if (!(scope in ["required", "optional", "incompatible", "embedded"])) { + throw new Exception("Invalid modrinth dependency scope: " + scope) + } + switch (type) { + case "project": + dep = new ModDependency(name, scope) + break + case "version": + dep = new VersionDependency(name, scope) + break + default: + throw new Exception("Invalid modrinth dependency type: " + type) + } + project.modrinth.dependencies.add(dep) } def addCurseForgeRelation(String type, String name) { - if (!(type in ["requiredDependency", "embeddedLibrary", "optionalDependency", "tool", "incompatible"])) { - throw new Exception("Invalid CurseForge relation type: " + type) - } - CurseArtifact artifact = project.curseforge.curseProjects[0].mainArtifact - CurseRelation rel = (artifact.curseRelations ?: (artifact.curseRelations = new CurseRelation())) - rel."$type"(name) + if (!(type in ["requiredDependency", "embeddedLibrary", "optionalDependency", "tool", "incompatible"])) { + throw new Exception("Invalid CurseForge relation type: " + type) + } + CurseArtifact artifact = project.curseforge.curseProjects[0].mainArtifact + CurseRelation rel = (artifact.curseRelations ?: (artifact.curseRelations = new CurseRelation())) + rel."$type"(name) } // Updating @@ -1296,292 +1316,311 @@ def addCurseForgeRelation(String type, String name) { def buildscriptGradleVersion = "8.2.1" tasks.named('wrapper', Wrapper).configure { - gradleVersion = buildscriptGradleVersion + gradleVersion = buildscriptGradleVersion } tasks.register('updateBuildScript') { - group = 'GTNH Buildscript' - description = 'Updates the build script to the latest version' + group = 'GTNH Buildscript' + description = 'Updates the build script to the latest version' - if (gradle.gradleVersion != buildscriptGradleVersion && !Boolean.getBoolean('DISABLE_BUILDSCRIPT_GRADLE_UPDATE')) { - dependsOn('wrapper') - } + if (gradle.gradleVersion != buildscriptGradleVersion && !Boolean.getBoolean('DISABLE_BUILDSCRIPT_GRADLE_UPDATE')) { + dependsOn('wrapper') + } - doLast { - if (performBuildScriptUpdate()) return + doLast { + if (performBuildScriptUpdate()) return - print("Build script already up-to-date!") - } + print("Build script already up-to-date!") + } } if (!project.getGradle().startParameter.isOffline() && !Boolean.getBoolean('DISABLE_BUILDSCRIPT_UPDATE_CHECK') && isNewBuildScriptVersionAvailable()) { - if (autoUpdateBuildScript.toBoolean()) { - performBuildScriptUpdate() - } else { - out.style(Style.SuccessHeader).println("Build script update available! Run 'gradle updateBuildScript'") - if (gradle.gradleVersion != buildscriptGradleVersion) { - out.style(Style.SuccessHeader).println("updateBuildScript can update gradle from ${gradle.gradleVersion} to ${buildscriptGradleVersion}\n") - } - } + if (autoUpdateBuildScript.toBoolean()) { + performBuildScriptUpdate() + } else { + out.style(Style.SuccessHeader).println("Build script update available! Run 'gradle updateBuildScript'") + if (gradle.gradleVersion != buildscriptGradleVersion) { + out.style(Style.SuccessHeader).println("updateBuildScript can update gradle from ${gradle.gradleVersion} to ${buildscriptGradleVersion}\n") + } + } } // If you want to add more cases to this task, implement them as arguments if total amount to print gets too large tasks.register('faq') { - group = 'GTNH Buildscript' - description = 'Prints frequently asked questions about building a project' + group = 'GTNH Buildscript' + description = 'Prints frequently asked questions about building a project' - doLast { - print("If your build fails to fetch dependencies, run './gradlew updateDependencies'. " + - "Or you can manually check if the versions are still on the distributing sites - " + - "the links can be found in repositories.gradle and build.gradle:repositories, " + - "but not build.gradle:buildscript.repositories - those ones are for gradle plugin metadata.\n\n" + - "If your build fails to recognize the syntax of new Java versions, enable Jabel in your " + - "gradle.properties. See how it's done in GTNH ExampleMod/gradle.properties. " + - "However, keep in mind that Jabel enables only syntax features, but not APIs that were introduced in " + - "Java 9 or later.") - } + doLast { + print("If your build fails to fetch dependencies, run './gradlew updateDependencies'. " + + "Or you can manually check if the versions are still on the distributing sites - " + + "the links can be found in repositories.gradle and build.gradle:repositories, " + + "but not build.gradle:buildscript.repositories - those ones are for gradle plugin metadata.\n\n" + + "If your build fails to recognize the syntax of new Java versions, enable Jabel in your " + + "gradle.properties. See how it's done in GTNH ExampleMod/gradle.properties. " + + "However, keep in mind that Jabel enables only syntax features, but not APIs that were introduced in " + + "Java 9 or later.") + } } static URL availableBuildScriptUrl() { - new URL("https://raw.githubusercontent.com/GTNewHorizons/ExampleMod1.7.10/master/build.gradle") + new URL("https://raw.githubusercontent.com/GTNewHorizons/ExampleMod1.7.10/master/build.gradle") } static URL exampleSettingsGradleUrl() { - new URL("https://raw.githubusercontent.com/GTNewHorizons/ExampleMod1.7.10/master/settings.gradle.example") + new URL("https://raw.githubusercontent.com/GTNewHorizons/ExampleMod1.7.10/master/settings.gradle.example") } static URL exampleGitAttributesUrl() { - new URL("https://raw.githubusercontent.com/GTNewHorizons/ExampleMod1.7.10/master/.gitattributes") + new URL("https://raw.githubusercontent.com/GTNewHorizons/ExampleMod1.7.10/master/.gitattributes") } boolean verifyGitAttributes() { - def gitattributesFile = getFile(".gitattributes") - if (!gitattributesFile.exists()) { - println("Downloading default .gitattributes") - exampleGitAttributesUrl().withInputStream { i -> gitattributesFile.withOutputStream { it << i } } - exec { - workingDir '.' - commandLine 'git', 'add', '--renormalize', '.' - } - return true - } - return false + def gitattributesFile = getFile(".gitattributes") + if (!gitattributesFile.exists()) { + println("Downloading default .gitattributes") + exampleGitAttributesUrl().withInputStream { i -> gitattributesFile.withOutputStream { it << i } } + exec { + workingDir '.' + commandLine 'git', 'add', '--renormalize', '.' + } + return true + } + return false } boolean verifySettingsGradle() { - def settingsFile = getFile("settings.gradle") - if (!settingsFile.exists()) { - println("Downloading default settings.gradle") - exampleSettingsGradleUrl().withInputStream { i -> settingsFile.withOutputStream { it << i } } - return true - } - return false + def settingsFile = getFile("settings.gradle") + if (!settingsFile.exists()) { + println("Downloading default settings.gradle") + exampleSettingsGradleUrl().withInputStream { i -> settingsFile.withOutputStream { it << i } } + return true + } + return false } boolean performBuildScriptUpdate() { - if (isNewBuildScriptVersionAvailable()) { - def buildscriptFile = getFile("build.gradle") - availableBuildScriptUrl().withInputStream { i -> buildscriptFile.withOutputStream { it << i } } - def out = services.get(StyledTextOutputFactory).create('buildscript-update-output') - out.style(Style.Success).print("Build script updated. Please REIMPORT the project or RESTART your IDE!") - boolean settingsupdated = verifySettingsGradle() - settingsupdated = verifyGitAttributes() || settingsupdated - if (settingsupdated) - throw new GradleException("Settings has been updated, please re-run task.") - return true - } - return false + if (isNewBuildScriptVersionAvailable()) { + def buildscriptFile = getFile("build.gradle") + availableBuildScriptUrl().withInputStream { i -> buildscriptFile.withOutputStream { it << i } } + def out = services.get(StyledTextOutputFactory).create('buildscript-update-output') + out.style(Style.Success).print("Build script updated. Please REIMPORT the project or RESTART your IDE!") + boolean settingsupdated = verifySettingsGradle() + settingsupdated = verifyGitAttributes() || settingsupdated + if (settingsupdated) + throw new GradleException("Settings has been updated, please re-run task.") + return true + } + return false } boolean isNewBuildScriptVersionAvailable() { - Map parameters = ["connectTimeout": 2000, "readTimeout": 2000] + Map parameters = ["connectTimeout": 2000, "readTimeout": 2000] - String currentBuildScript = getFile("build.gradle").getText() - String currentBuildScriptHash = getVersionHash(currentBuildScript) - String availableBuildScriptHash - try { - String availableBuildScript = availableBuildScriptUrl().newInputStream(parameters).getText() - availableBuildScriptHash = getVersionHash(availableBuildScript) - } catch (IOException e) { - logger.warn("Could not check for buildscript update availability: {}", e.message) - return false - } + String currentBuildScript = getFile("build.gradle").getText() + String currentBuildScriptHash = getVersionHash(currentBuildScript) + String availableBuildScriptHash + try { + String availableBuildScript = availableBuildScriptUrl().newInputStream(parameters).getText() + availableBuildScriptHash = getVersionHash(availableBuildScript) + } catch (IOException e) { + logger.warn("Could not check for buildscript update availability: {}", e.message) + return false + } - boolean isUpToDate = currentBuildScriptHash.empty || availableBuildScriptHash.empty || currentBuildScriptHash == availableBuildScriptHash - return !isUpToDate + boolean isUpToDate = currentBuildScriptHash.empty || availableBuildScriptHash.empty || currentBuildScriptHash == availableBuildScriptHash + return !isUpToDate } static String getVersionHash(String buildScriptContent) { - String versionLine = buildScriptContent.find("^//version: [a-z0-9]*") - if (versionLine != null) { - return versionLine.split(": ").last() - } - return "" + String versionLine = buildScriptContent.find("^//version: [a-z0-9]*") + if (versionLine != null) { + return versionLine.split(": ").last() + } + return "" } // Parameter Deobfuscation tasks.register('deobfParams') { - group = 'GTNH Buildscript' - description = 'Rename all obfuscated parameter names inherited from Minecraft classes' - doLast { // TODO - - String mcpDir = "$project.gradle.gradleUserHomeDir/caches/minecraft/de/oceanlabs/mcp/mcp_$channel/$mappingsVersion" - String mcpZIP = "$mcpDir/mcp_$channel-$mappingsVersion-${minecraftVersion}.zip" - String paramsCSV = "$mcpDir/params.csv" - - download.run { - src "https://maven.minecraftforge.net/de/oceanlabs/mcp/mcp_$channel/$mappingsVersion-$minecraftVersion/mcp_$channel-$mappingsVersion-${minecraftVersion}.zip" - dest mcpZIP - overwrite false - } - - if (!file(paramsCSV).exists()) { - println("Extracting MCP archive ...") - copy { - from(zipTree(mcpZIP)) - into(mcpDir) - } - } - - println("Parsing params.csv ...") - Map params = new HashMap<>() - Files.lines(Paths.get(paramsCSV)).forEach { line -> - String[] cells = line.split(",") - if (cells.length > 2 && cells[0].matches("p_i?\\d+_\\d+_")) { - params.put(cells[0], cells[1]) - } - } - - out.style(Style.Success).println("Modified ${replaceParams(file("$projectDir/src/main/java"), params)} files!") - out.style(Style.Failure).println("Don't forget to verify that the code still works as before!\n It could be broken due to duplicate variables existing now\n or parameters taking priority over other variables.") - } + group = 'GTNH Buildscript' + description = 'Rename all obfuscated parameter names inherited from Minecraft classes' + doLast { // TODO + + String mcpDir = "$project.gradle.gradleUserHomeDir/caches/minecraft/de/oceanlabs/mcp/mcp_$channel/$mappingsVersion" + String mcpZIP = "$mcpDir/mcp_$channel-$mappingsVersion-${minecraftVersion}.zip" + String paramsCSV = "$mcpDir/params.csv" + + download.run { + src "https://maven.minecraftforge.net/de/oceanlabs/mcp/mcp_$channel/$mappingsVersion-$minecraftVersion/mcp_$channel-$mappingsVersion-${minecraftVersion}.zip" + dest mcpZIP + overwrite false + } + + if (!file(paramsCSV).exists()) { + println("Extracting MCP archive ...") + copy { + from(zipTree(mcpZIP)) + into(mcpDir) + } + } + + println("Parsing params.csv ...") + Map params = new HashMap<>() + Files.lines(Paths.get(paramsCSV)).forEach { line -> + String[] cells = line.split(",") + if (cells.length > 2 && cells[0].matches("p_i?\\d+_\\d+_")) { + params.put(cells[0], cells[1]) + } + } + + out.style(Style.Success).println("Modified ${replaceParams(file("$projectDir/src/main/java"), params)} files!") + out.style(Style.Failure).println("Don't forget to verify that the code still works as before!\n It could be broken due to duplicate variables existing now\n or parameters taking priority over other variables.") + } } static int replaceParams(File file, Map params) { - int fileCount = 0 - - if (file.isDirectory()) { - for (File f : file.listFiles()) { - fileCount += replaceParams(f, params) - } - return fileCount - } - println("Visiting ${file.getName()} ...") - try { - String content = new String(Files.readAllBytes(file.toPath())) - int hash = content.hashCode() - params.forEach { key, value -> - content = content.replaceAll(key, value) - } - if (hash != content.hashCode()) { - Files.write(file.toPath(), content.getBytes("UTF-8")) - return 1 - } - } catch (Exception e) { - e.printStackTrace() - } - return 0 + int fileCount = 0 + + if (file.isDirectory()) { + for (File f : file.listFiles()) { + fileCount += replaceParams(f, params) + } + return fileCount + } + println("Visiting ${file.getName()} ...") + try { + String content = new String(Files.readAllBytes(file.toPath())) + int hash = content.hashCode() + params.forEach { key, value -> + content = content.replaceAll(key, value) + } + if (hash != content.hashCode()) { + Files.write(file.toPath(), content.getBytes("UTF-8")) + return 1 + } + } catch (Exception e) { + e.printStackTrace() + } + return 0 } // Dependency Deobfuscation (Deprecated, use the new RFG API documented in dependencies.gradle) def deobf(String sourceURL) { - try { - URL url = new URL(sourceURL) - String fileName = url.getFile() - - //get rid of directories: - int lastSlash = fileName.lastIndexOf("/") - if (lastSlash > 0) { - fileName = fileName.substring(lastSlash + 1) - } - //get rid of extension: - if (fileName.endsWith(".jar") || fileName.endsWith(".litemod")) { - fileName = fileName.substring(0, fileName.lastIndexOf(".")) - } - - String hostName = url.getHost() - if (hostName.startsWith("www.")) { - hostName = hostName.substring(4) - } - List parts = Arrays.asList(hostName.split("\\.")) - Collections.reverse(parts) - hostName = String.join(".", parts) - - return deobf(sourceURL, "$hostName/$fileName") - } catch (Exception ignored) { - return deobf(sourceURL, "deobf/${sourceURL.hashCode()}") - } + try { + URL url = new URL(sourceURL) + String fileName = url.getFile() + + //get rid of directories: + int lastSlash = fileName.lastIndexOf("/") + if (lastSlash > 0) { + fileName = fileName.substring(lastSlash + 1) + } + //get rid of extension: + if (fileName.endsWith(".jar") || fileName.endsWith(".litemod")) { + fileName = fileName.substring(0, fileName.lastIndexOf(".")) + } + + String hostName = url.getHost() + if (hostName.startsWith("www.")) { + hostName = hostName.substring(4) + } + List parts = Arrays.asList(hostName.split("\\.")) + Collections.reverse(parts) + hostName = String.join(".", parts) + + return deobf(sourceURL, "$hostName/$fileName") + } catch (Exception ignored) { + return deobf(sourceURL, "deobf/${sourceURL.hashCode()}") + } } def deobfMaven(String repoURL, String mavenDep) { - if (!repoURL.endsWith("/")) { - repoURL += "/" - } - String[] parts = mavenDep.split(":") - parts[0] = parts[0].replace('.', '/') - def jarURL = repoURL + parts[0] + "/" + parts[1] + "/" + parts[2] + "/" + parts[1] + "-" + parts[2] + ".jar" - return deobf(jarURL) + if (!repoURL.endsWith("/")) { + repoURL += "/" + } + String[] parts = mavenDep.split(":") + parts[0] = parts[0].replace('.', '/') + def jarURL = repoURL + parts[0] + "/" + parts[1] + "/" + parts[2] + "/" + parts[1] + "-" + parts[2] + ".jar" + return deobf(jarURL) } def deobfCurse(String curseDep) { - return dependencies.rfg.deobf("curse.maven:$curseDep") + return dependencies.rfg.deobf("curse.maven:$curseDep") } // The method above is to be preferred. Use this method if the filename is not at the end of the URL. def deobf(String sourceURL, String rawFileName) { - String bon2Version = "2.5.1" - String fileName = URLDecoder.decode(rawFileName, "UTF-8") - String cacheDir = "$project.gradle.gradleUserHomeDir/caches" - String obfFile = "$cacheDir/modules-2/files-2.1/${fileName}.jar" - - download.run { - src sourceURL - dest obfFile - quiet true - overwrite false - } - return dependencies.rfg.deobf(files(obfFile)) + String bon2Version = "2.5.1" + String fileName = URLDecoder.decode(rawFileName, "UTF-8") + String cacheDir = "$project.gradle.gradleUserHomeDir/caches" + String obfFile = "$cacheDir/modules-2/files-2.1/${fileName}.jar" + + download.run { + src sourceURL + dest obfFile + quiet true + overwrite false + } + return dependencies.rfg.deobf(files(obfFile)) } // Helper methods def checkPropertyExists(String propertyName) { - if (!project.hasProperty(propertyName)) { - throw new GradleException("This project requires a property \"" + propertyName + "\"! Please add it your \"gradle.properties\". You can find all properties and their description here: https://github.com/GTNewHorizons/ExampleMod1.7.10/blob/main/gradle.properties") - } + if (!project.hasProperty(propertyName)) { + throw new GradleException("This project requires a property \"" + propertyName + "\"! Please add it your \"gradle.properties\". You can find all properties and their description here: https://github.com/GTNewHorizons/ExampleMod1.7.10/blob/main/gradle.properties") + } } def propertyDefaultIfUnset(String propertyName, defaultValue) { - if (!project.hasProperty(propertyName) || project.property(propertyName) == "") { - project.ext.setProperty(propertyName, defaultValue) - } + if (!project.hasProperty(propertyName) || project.property(propertyName) == "") { + project.ext.setProperty(propertyName, defaultValue) + } } def getFile(String relativePath) { - return new File(projectDir, relativePath) + return new File(projectDir, relativePath) } def getSecondaryArtifacts() { - // Because noPublishedSources from the beginning of the script is somehow not visible here... - boolean noPublishedSources = project.hasProperty("noPublishedSources") ? project.noPublishedSources.toBoolean() : false - def secondaryArtifacts = [publishableDevJar] - if (!noPublishedSources) secondaryArtifacts += [sourcesJar] - if (apiPackage) secondaryArtifacts += [apiJar] - return secondaryArtifacts + // Because noPublishedSources from the beginning of the script is somehow not visible here... + boolean noPublishedSources = project.hasProperty("noPublishedSources") ? project.noPublishedSources.toBoolean() : false + def secondaryArtifacts = [publishableDevJar] + if (!noPublishedSources) secondaryArtifacts += [sourcesJar] + if (apiPackage) secondaryArtifacts += [apiJar] + return secondaryArtifacts +} + +def getURL(String main, String fallback) { + return pingURL(main, 10000) ? main : fallback +} + +// credit: https://stackoverflow.com/a/3584332 +def pingURL(String url, int timeout) { + url = url.replaceFirst("^https", "http") // Otherwise an exception may be thrown on invalid SSL certificates. + try { + HttpURLConnection connection = (HttpURLConnection) new URL(url).openConnection() + connection.setConnectTimeout(timeout) + connection.setReadTimeout(timeout) + connection.setRequestMethod("HEAD") + int responseCode = connection.getResponseCode() + return 200 <= responseCode && responseCode <= 399 + } catch (IOException ignored) { + return false + } } // For easier scripting of things that require variables defined earlier in the buildscript if (file('addon.late.gradle.kts').exists()) { - apply from: 'addon.late.gradle.kts' + apply from: 'addon.late.gradle.kts' } else if (file('addon.late.gradle').exists()) { - apply from: 'addon.late.gradle' + apply from: 'addon.late.gradle' } // File for local tweaks not commited to Git if (file('addon.late.local.gradle.kts').exists()) { - apply from: 'addon.late.local.gradle.kts' + apply from: 'addon.late.local.gradle.kts' } else if (file('addon.late.local.gradle').exists()) { - apply from: 'addon.late.local.gradle' + apply from: 'addon.late.local.gradle' } diff --git a/dependencies.gradle b/dependencies.gradle index ddf4126b4..22f46f87f 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -1,31 +1,31 @@ // Add your dependencies here dependencies { - api('com.github.GTNewHorizons:BuildCraft:7.1.34:dev') - implementation('com.github.GTNewHorizons:GT5-Unofficial:5.09.43.93:dev') - implementation('com.github.GTNewHorizons:NotEnoughItems:2.3.55-GTNH:dev') + api('com.github.GTNewHorizons:BuildCraft:7.1.36:dev') + implementation('com.github.GTNewHorizons:GT5-Unofficial:5.09.44.36:dev') + implementation('com.github.GTNewHorizons:NotEnoughItems:2.4.4-GTNH:dev') - compileOnly('com.github.GTNewHorizons:OpenComputers:1.9.8-GTNH:api') {transitive = false} - compileOnly('com.github.GTNewHorizons:Applied-Energistics-2-Unofficial:rv3-beta-229-GTNH:api') {transitive = false} - compileOnly('com.github.GTNewHorizons:StorageDrawers:1.12.0-GTNH:api') {transitive = false} - compileOnly('com.github.GTNewHorizons:Jabba:1.2.22:dev') {transitive = false} - compileOnly('com.github.GTNewHorizons:ironchest:6.0.71:dev') {transitive = false} - compileOnly('com.github.GTNewHorizons:ForestryMC:4.6.8:dev') {transitive = false} - compileOnly('com.github.GTNewHorizons:EnderIO:2.4.18:dev') {transitive = false} - compileOnly('com.github.GTNewHorizons:EnderCore:0.2.16:dev') {transitive = false} - compileOnly('com.github.GTNewHorizons:EnderStorage:1.4.12:dev') {transitive = false} - compileOnly('com.github.GTNewHorizons:ExtraCells2:2.5.34:api') {transitive = false} - compileOnly('com.github.GTNewHorizons:Binnie:2.1.6:dev') {transitive = false} + compileOnly('com.github.GTNewHorizons:OpenComputers:1.9.17-GTNH:api') { transitive = false } + compileOnly('com.github.GTNewHorizons:Applied-Energistics-2-Unofficial:rv3-beta-262-GTNH:api') { transitive = false } + compileOnly('com.github.GTNewHorizons:StorageDrawers:1.12.1-GTNH:api') { transitive = false } + compileOnly('com.github.GTNewHorizons:Jabba:1.3.0:dev') { transitive = false } + compileOnly('com.github.GTNewHorizons:ironchest:6.0.74:dev') { transitive = false } + compileOnly('com.github.GTNewHorizons:ForestryMC:4.6.14:dev') { transitive = false } + compileOnly('com.github.GTNewHorizons:EnderIO:2.5.2:dev') { transitive = false } + compileOnly('com.github.GTNewHorizons:EnderCore:0.2.18:dev') { transitive = false } + compileOnly('com.github.GTNewHorizons:EnderStorage:1.4.12:dev') { transitive = false } + compileOnly('com.github.GTNewHorizons:ExtraCells2:2.5.34:api') { transitive = false } + compileOnly('com.github.GTNewHorizons:Binnie:2.2.1:dev') { transitive = false } - compileOnly('net.industrial-craft:industrialcraft-2:2.2.828-experimental:dev') {transitive = false} - compileOnly('thaumcraft:Thaumcraft:1.7.10-4.2.3.5:dev') {transitive = false} - compileOnly('curse.maven:computercraft-67504:2269339') {transitive = false} - compileOnly('org.projectlombok:lombok:1.18.24') {transitive = false} - compileOnly('curse.maven:cofh-lib-220333:2388748') {transitive = false} - compileOnly('curse.maven:cofh-core-69162:2388751') {transitive = false} - compileOnly('curse.maven:thermal-expansion-69163:2388759') {transitive = false} - compileOnly('curse.maven:better-storage-232919:2731636') {transitive = false} - compileOnly('curse.maven:minefactory-reloaded-66672:2366150') {transitive = false} + compileOnly('net.industrial-craft:industrialcraft-2:2.2.828-experimental:dev') { transitive = false } + compileOnly('thaumcraft:Thaumcraft:1.7.10-4.2.3.5:dev') { transitive = false } + compileOnly('curse.maven:computercraft-67504:2269339') { transitive = false } + compileOnly('org.projectlombok:lombok:1.18.24') { transitive = false } + compileOnly('curse.maven:cofh-lib-220333:2388748') { transitive = false } + compileOnly('curse.maven:cofh-core-69162:2388751') { transitive = false } + compileOnly('curse.maven:thermal-expansion-69163:2388759') { transitive = false } + compileOnly('curse.maven:better-storage-232919:2731636') { transitive = false } + compileOnly('curse.maven:minefactory-reloaded-66672:2366150') { transitive = false } annotationProcessor('org.projectlombok:lombok:1.18.24') } diff --git a/gradle.properties b/gradle.properties index 28e5c633c..ffcb17305 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,65 +1,53 @@ -modName = Logistics Pipes - +modName=Logistics Pipes # This is a case-sensitive string to identify your mod. Convention is to use lower case. -modId = LogisticsPipes - -modGroup = logisticspipes - +modId=LogisticsPipes +modGroup=logisticspipes # WHY is there no version field? # The build script relies on git to provide a version via tags. It is super easy and will enable you to always know the # code base or your binary. Check out this tutorial: https://blog.mattclemente.com/2017/10/13/versioning-with-git-tags/ - # Will update your build.gradle automatically whenever an update is available -autoUpdateBuildScript = false - -minecraftVersion = 1.7.10 -forgeVersion = 10.13.4.1614 - +autoUpdateBuildScript=false +minecraftVersion=1.7.10 +forgeVersion=10.13.4.1614 # Select a username for testing your mod with breakpoints. You may leave this empty for a random user name each time you # restart Minecraft in development. Choose this dependent on your mod: # Do you need consistent player progressing (for example Thaumcraft)? -> Select a name # Do you need to test how your custom blocks interacts with a player that is not the owner? -> leave name empty -developmentEnvironmentUserName = Developer - +developmentEnvironmentUserName=Developer # Define a source file of your project with: # public static final String VERSION = "GRADLETOKEN_VERSION"; # The string's content will be replaced with your mods version when compiled. You should use this to specify your mod's # version in @Mod([...], version = VERSION, [...]) # Leave these properties empty to skip individual token replacements -replaceGradleTokenInFile = LPConstants.java -gradleTokenModId = -gradleTokenModName = -gradleTokenVersion = GRADLETOKEN_VERSION -gradleTokenGroupName = - +replaceGradleTokenInFile=LPConstants.java +gradleTokenModId= +gradleTokenModName= +gradleTokenVersion=GRADLETOKEN_VERSION +gradleTokenGroupName= # In case your mod provides an API for other mods to implement you may declare its package here. Otherwise, you can # leave this property empty. # Example value: apiPackage = api + modGroup = com.myname.mymodid -> com.myname.mymodid.api -apiPackage = api - +apiPackage=api # Specify the configuration file for Forge's access transformers here. I must be placed into /src/main/resources/META-INF/ # Example value: mymodid_at.cfg -accessTransformersFile = logisticspipes_at.cfg - +accessTransformersFile=logisticspipes_at.cfg # Provides setup for Mixins if enabled. If you don't know what mixins are: Keep it disabled! -usesMixins = false +usesMixins=false # Specify the location of your implementation of IMixinConfigPlugin. Leave it empty otherwise. -mixinPlugin = +mixinPlugin= # Specify the package that contains all of your Mixins. You may only place Mixins in this package or the build will fail! -mixinsPackage = +mixinsPackage= # Specify the core mod entry class if you use a core mod. This class must implement IFMLLoadingPlugin! # This parameter is for legacy compatibility only # Example value: coreModClass = asm.FMLPlugin + modGroup = com.myname.mymodid -> com.myname.mymodid.asm.FMLPlugin -coreModClass = asm.LogisticsPipesCoreLoader +coreModClass=asm.LogisticsPipesCoreLoader # If your project is only a consolidation of mixins or a core mod and does NOT contain a 'normal' mod ( = some class # that is annotated with @Mod) you want this to be true. When in doubt: leave it on false! -containsMixinsAndOrCoreModOnly = false -forceEnableMixins = true - +containsMixinsAndOrCoreModOnly=false +forceEnableMixins=true # If enabled, you may use 'shadowCompile' for dependencies. They will be integrated in your jar. It is your # responsibility check the licence and request permission for distribution, if required. -usesShadowedDependencies = false - +usesShadowedDependencies=false # Optional parameter to customize the produced artifacts. Use this to preserver artifact naming when migrating older # projects. New projects should not use this parameter. -customArchiveBaseName = logisticspipes +customArchiveBaseName=logisticspipes diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index c1962a79e..943f0cbfa 100644 Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/settings.gradle b/settings.gradle index 01ea5f121..7848bec18 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,28 +1,27 @@ - pluginManagement { - repositories { - maven { - // RetroFuturaGradle - name "GTNH Maven" - url "http://jenkins.usrv.eu:8081/nexus/content/groups/public/" - allowInsecureProtocol = true - mavenContent { - includeGroup("com.gtnewhorizons.retrofuturagradle") - } - } - gradlePluginPortal() - mavenCentral() - mavenLocal() - } + repositories { + maven { + // RetroFuturaGradle + name "GTNH Maven" + url "http://jenkins.usrv.eu:8081/nexus/content/groups/public/" + allowInsecureProtocol = true + mavenContent { + includeGroup("com.gtnewhorizons.retrofuturagradle") + } + } + gradlePluginPortal() + mavenCentral() + mavenLocal() + } } plugins { - id 'com.diffplug.blowdryerSetup' version '1.6.0' - id 'org.gradle.toolchains.foojay-resolver-convention' version '0.4.0' // Provides java toolchains + id 'com.diffplug.blowdryerSetup' version '1.6.0' + id 'org.gradle.toolchains.foojay-resolver-convention' version '0.4.0' // Provides java toolchains } blowdryerSetup { - repoSubfolder 'gtnhShared' - github('GTNewHorizons/ExampleMod1.7.10', 'tag', '0.2.0') - //devLocal '.' // Use this when testing config updates locally + repoSubfolder 'gtnhShared' + github('GTNewHorizons/ExampleMod1.7.10', 'tag', '0.2.0') + //devLocal '.' // Use this when testing config updates locally } diff --git a/src/main/java/logisticspipes/LogisticsEventListener.java b/src/main/java/logisticspipes/LogisticsEventListener.java index 212304691..26a149d33 100644 --- a/src/main/java/logisticspipes/LogisticsEventListener.java +++ b/src/main/java/logisticspipes/LogisticsEventListener.java @@ -1,7 +1,13 @@ package logisticspipes; import java.lang.ref.WeakReference; -import java.util.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import java.util.Queue; +import java.util.WeakHashMap; import java.util.concurrent.ConcurrentHashMap; import net.minecraft.client.gui.inventory.GuiChest; @@ -42,7 +48,11 @@ import logisticspipes.proxy.SimpleServiceLocator; import logisticspipes.renderer.LogisticsGuiOverrenderer; import logisticspipes.renderer.LogisticsHUDRenderer; -import logisticspipes.utils.*; +import logisticspipes.utils.AdjacentTile; +import logisticspipes.utils.PlayerCollectionList; +import logisticspipes.utils.PlayerIdentifier; +import logisticspipes.utils.QuickSortChestMarkerStorage; +import logisticspipes.utils.WorldUtil; import lombok.AllArgsConstructor; import lombok.Getter; import lombok.Setter; diff --git a/src/main/java/logisticspipes/LogisticsPipes.java b/src/main/java/logisticspipes/LogisticsPipes.java index f59718216..246a0c703 100644 --- a/src/main/java/logisticspipes/LogisticsPipes.java +++ b/src/main/java/logisticspipes/LogisticsPipes.java @@ -32,7 +32,11 @@ import cpw.mods.fml.common.Mod; import cpw.mods.fml.common.Mod.EventHandler; import cpw.mods.fml.common.Mod.Instance; -import cpw.mods.fml.common.event.*; +import cpw.mods.fml.common.event.FMLInitializationEvent; +import cpw.mods.fml.common.event.FMLPostInitializationEvent; +import cpw.mods.fml.common.event.FMLPreInitializationEvent; +import cpw.mods.fml.common.event.FMLServerStartingEvent; +import cpw.mods.fml.common.event.FMLServerStoppingEvent; import cpw.mods.fml.common.network.NetworkRegistry; import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.relauncher.Side; @@ -43,18 +47,65 @@ import logisticspipes.commands.chathelper.LPChatListener; import logisticspipes.config.Configs; import logisticspipes.config.PlayerConfig; -import logisticspipes.items.*; +import logisticspipes.items.ItemDisk; +import logisticspipes.items.ItemHUDArmor; +import logisticspipes.items.ItemLogisticsPipe; +import logisticspipes.items.ItemModule; +import logisticspipes.items.ItemParts; +import logisticspipes.items.ItemPipeComponents; +import logisticspipes.items.ItemPipeController; +import logisticspipes.items.ItemPipeSignCreator; +import logisticspipes.items.ItemUpgrade; +import logisticspipes.items.LogisticsBrokenItem; +import logisticspipes.items.LogisticsFluidContainer; +import logisticspipes.items.LogisticsItemCard; +import logisticspipes.items.LogisticsSolidBlockItem; +import logisticspipes.items.RemoteOrderer; import logisticspipes.logistics.LogisticsFluidManager; import logisticspipes.logistics.LogisticsManager; import logisticspipes.network.GuiHandler; import logisticspipes.network.NewGuiHandler; import logisticspipes.network.PacketHandler; -import logisticspipes.pipes.*; +import logisticspipes.pipes.PipeBlockRequestTable; +import logisticspipes.pipes.PipeFluidBasic; +import logisticspipes.pipes.PipeFluidExtractor; +import logisticspipes.pipes.PipeFluidInsertion; +import logisticspipes.pipes.PipeFluidProvider; +import logisticspipes.pipes.PipeFluidRequestLogistics; +import logisticspipes.pipes.PipeFluidSatellite; +import logisticspipes.pipes.PipeFluidSupplierMk2; +import logisticspipes.pipes.PipeItemsApiaristAnalyser; +import logisticspipes.pipes.PipeItemsApiaristSink; +import logisticspipes.pipes.PipeItemsBasicLogistics; +import logisticspipes.pipes.PipeItemsCraftingLogistics; +import logisticspipes.pipes.PipeItemsCraftingLogisticsMk2; +import logisticspipes.pipes.PipeItemsCraftingLogisticsMk3; +import logisticspipes.pipes.PipeItemsFirewall; +import logisticspipes.pipes.PipeItemsFluidSupplier; +import logisticspipes.pipes.PipeItemsInvSysConnector; +import logisticspipes.pipes.PipeItemsProviderLogistics; +import logisticspipes.pipes.PipeItemsProviderLogisticsMk2; +import logisticspipes.pipes.PipeItemsRemoteOrdererLogistics; +import logisticspipes.pipes.PipeItemsRequestLogistics; +import logisticspipes.pipes.PipeItemsRequestLogisticsMk2; +import logisticspipes.pipes.PipeItemsSatelliteLogistics; +import logisticspipes.pipes.PipeItemsSupplierLogistics; +import logisticspipes.pipes.PipeItemsSystemDestinationLogistics; +import logisticspipes.pipes.PipeItemsSystemEntranceLogistics; +import logisticspipes.pipes.PipeLogisticsChassiMk1; +import logisticspipes.pipes.PipeLogisticsChassiMk2; +import logisticspipes.pipes.PipeLogisticsChassiMk3; +import logisticspipes.pipes.PipeLogisticsChassiMk4; +import logisticspipes.pipes.PipeLogisticsChassiMk5; import logisticspipes.pipes.basic.CoreRoutedPipe; import logisticspipes.pipes.basic.CoreUnroutedPipe; import logisticspipes.pipes.basic.LogisticsBlockGenericPipe; import logisticspipes.pipes.unrouted.PipeItemsBasicTransport; -import logisticspipes.proxy.*; +import logisticspipes.proxy.MainProxy; +import logisticspipes.proxy.ProxyManager; +import logisticspipes.proxy.SimpleServiceLocator; +import logisticspipes.proxy.SpecialInventoryHandlerManager; +import logisticspipes.proxy.SpecialTankHandlerManager; import logisticspipes.proxy.computers.objects.LPGlobalCCAccess; import logisticspipes.proxy.endercore.EnderCoreProgressProvider; import logisticspipes.proxy.enderio.EnderIOProgressProvider; @@ -62,8 +113,18 @@ import logisticspipes.proxy.ic2.IC2ProgressProvider; import logisticspipes.proxy.interfaces.ICraftingParts; import logisticspipes.proxy.progressprovider.MachineProgressProvider; -import logisticspipes.proxy.recipeproviders.*; -import logisticspipes.proxy.specialconnection.*; +import logisticspipes.proxy.recipeproviders.AssemblyAdvancedWorkbench; +import logisticspipes.proxy.recipeproviders.AutoWorkbench; +import logisticspipes.proxy.recipeproviders.ImmibisCraftingTableMk2; +import logisticspipes.proxy.recipeproviders.LogisticsCraftingTable; +import logisticspipes.proxy.recipeproviders.RollingMachine; +import logisticspipes.proxy.recipeproviders.SolderingStation; +import logisticspipes.proxy.specialconnection.EnderIOHyperCubeConnection; +import logisticspipes.proxy.specialconnection.EnderIOTransceiverConnection; +import logisticspipes.proxy.specialconnection.SpecialPipeConnection; +import logisticspipes.proxy.specialconnection.SpecialTileConnection; +import logisticspipes.proxy.specialconnection.TeleportPipes; +import logisticspipes.proxy.specialconnection.TesseractConnection; import logisticspipes.proxy.specialtankhandler.SpecialTankHandler; import logisticspipes.proxy.te.ThermalExpansionProgressProvider; import logisticspipes.recipes.CraftingPermissionManager; @@ -76,7 +137,13 @@ import logisticspipes.routing.ServerRouter; import logisticspipes.routing.pathfinder.PipeInformationManager; import logisticspipes.textures.Textures; -import logisticspipes.ticks.*; +import logisticspipes.ticks.ClientPacketBufferHandlerThread; +import logisticspipes.ticks.HudUpdateTick; +import logisticspipes.ticks.LPTickHandler; +import logisticspipes.ticks.QueuedTasks; +import logisticspipes.ticks.RenderTickHandler; +import logisticspipes.ticks.RoutingTableUpdateThread; +import logisticspipes.ticks.ServerPacketBufferHandlerThread; import logisticspipes.utils.FluidIdentifier; import logisticspipes.utils.InventoryUtilFactory; import logisticspipes.utils.RoutedItemHelper; diff --git a/src/main/java/logisticspipes/asm/DevEnvHelper.java b/src/main/java/logisticspipes/asm/DevEnvHelper.java index d9c5a6b6d..b32c1df52 100644 --- a/src/main/java/logisticspipes/asm/DevEnvHelper.java +++ b/src/main/java/logisticspipes/asm/DevEnvHelper.java @@ -1,6 +1,13 @@ package logisticspipes.asm; -import java.io.*; +import java.io.BufferedReader; +import java.io.File; +import java.io.FileReader; +import java.io.FilenameFilter; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.Reader; import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; @@ -8,7 +15,16 @@ import java.net.URLClassLoader; import java.net.URLDecoder; import java.nio.charset.StandardCharsets; -import java.util.*; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.Enumeration; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Scanner; +import java.util.Set; import java.util.jar.Attributes; import java.util.jar.JarFile; @@ -21,7 +37,20 @@ import org.objectweb.asm.ClassWriter; import org.objectweb.asm.Opcodes; import org.objectweb.asm.Type; -import org.objectweb.asm.tree.*; +import org.objectweb.asm.tree.AbstractInsnNode; +import org.objectweb.asm.tree.AnnotationNode; +import org.objectweb.asm.tree.ClassNode; +import org.objectweb.asm.tree.FieldInsnNode; +import org.objectweb.asm.tree.FieldNode; +import org.objectweb.asm.tree.FrameNode; +import org.objectweb.asm.tree.InnerClassNode; +import org.objectweb.asm.tree.LdcInsnNode; +import org.objectweb.asm.tree.LocalVariableNode; +import org.objectweb.asm.tree.MethodInsnNode; +import org.objectweb.asm.tree.MethodNode; +import org.objectweb.asm.tree.MultiANewArrayInsnNode; +import org.objectweb.asm.tree.TryCatchBlockNode; +import org.objectweb.asm.tree.TypeInsnNode; import com.google.common.base.Strings; import com.google.common.collect.ObjectArrays; @@ -380,7 +409,7 @@ public byte[] transform_Sub(String name, String transformedName, byte[] basicCla min.name = DevEnvHelper.m.getMethod(realOwner, min.name, realDesc); min.owner = DevEnvHelper.m.getClass(min.owner); // note: not realOwner which could be an - // interface + // interface min.desc = DevEnvHelper.m.mapMethodDescriptor(realDesc); } else if (ain instanceof LdcInsnNode) { @@ -1096,7 +1125,9 @@ public static String getMCVer(File mcpDir) throws IOException { public abstract static class CsvFile { - /** Does not close r. */ + /** + * Does not close r. + */ public static Map read(Reader r, int[] n_sides) { Map data = new HashMap<>(); @@ -1107,7 +1138,8 @@ public static Map read(Reader r, int[] n_sides) { String searge = in.next(); String name = in.next(); String side = in.next(); - /* String desc = */ in.nextLine(); + /* String desc = */ + in.nextLine(); try { if (CsvFile.sideIn(Integer.parseInt(side), n_sides)) { data.put(searge, name); @@ -1156,7 +1188,9 @@ public static ExcFile read(InputStream in) { return ExcFile.read(new InputStreamReader(in, StandardCharsets.UTF_8)); } - /** Does not close r. */ + /** + * Does not close r. + */ public static ExcFile read(Reader r) { // example line: // net/minecraft/src/NetClientHandler.(Lnet/minecraft/client/Minecraft;Ljava/lang/String;I)V=java/net/UnknownHostException,java/io/IOException|p_i42_1_,p_i42_2_,p_i42_3_ @@ -1227,7 +1261,9 @@ public static String getLastComponent(String s) { private SrgFile() {} - /** Does not close r. */ + /** + * Does not close r. + */ public static SrgFile read(Reader r, boolean reverse) { Scanner in = new Scanner(r); SrgFile rv = new SrgFile(); diff --git a/src/main/java/logisticspipes/asm/LogisticsClassTransformer.java b/src/main/java/logisticspipes/asm/LogisticsClassTransformer.java index 65a88a3b4..6e7267704 100644 --- a/src/main/java/logisticspipes/asm/LogisticsClassTransformer.java +++ b/src/main/java/logisticspipes/asm/LogisticsClassTransformer.java @@ -1,12 +1,21 @@ package logisticspipes.asm; import java.lang.reflect.Field; -import java.util.*; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Iterator; +import java.util.List; +import java.util.Set; import net.minecraft.launchwrapper.IClassTransformer; import net.minecraft.launchwrapper.LaunchClassLoader; -import org.objectweb.asm.*; +import org.objectweb.asm.ClassReader; +import org.objectweb.asm.ClassWriter; +import org.objectweb.asm.FieldVisitor; +import org.objectweb.asm.Label; +import org.objectweb.asm.MethodVisitor; +import org.objectweb.asm.Opcodes; import org.objectweb.asm.tree.ClassNode; import org.objectweb.asm.tree.MethodNode; diff --git a/src/main/java/logisticspipes/asm/ParamProfiler.java b/src/main/java/logisticspipes/asm/ParamProfiler.java index 89f531628..9e0715fc7 100644 --- a/src/main/java/logisticspipes/asm/ParamProfiler.java +++ b/src/main/java/logisticspipes/asm/ParamProfiler.java @@ -1,6 +1,11 @@ package logisticspipes.asm; -import java.util.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Stack; +import java.util.WeakHashMap; import org.objectweb.asm.ClassReader; import org.objectweb.asm.ClassWriter; diff --git a/src/main/java/logisticspipes/asm/util/ASMHelper.java b/src/main/java/logisticspipes/asm/util/ASMHelper.java index 473d8923c..764d877c2 100644 --- a/src/main/java/logisticspipes/asm/util/ASMHelper.java +++ b/src/main/java/logisticspipes/asm/util/ASMHelper.java @@ -1,10 +1,20 @@ package logisticspipes.asm.util; -import java.io.*; +import java.io.BufferedReader; +import java.io.IOException; +import java.io.PrintWriter; +import java.io.StringReader; +import java.io.StringWriter; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; -import org.objectweb.asm.*; +import org.objectweb.asm.Attribute; +import org.objectweb.asm.ClassReader; +import org.objectweb.asm.ClassVisitor; +import org.objectweb.asm.Handle; +import org.objectweb.asm.Label; +import org.objectweb.asm.MethodVisitor; +import org.objectweb.asm.Opcodes; import org.objectweb.asm.util.Printer; import org.objectweb.asm.util.Textifier; import org.objectweb.asm.util.TraceClassVisitor; diff --git a/src/main/java/logisticspipes/asm/wrapper/LogisticsWrapperHandler.java b/src/main/java/logisticspipes/asm/wrapper/LogisticsWrapperHandler.java index d33d7b48d..8c472e4f9 100644 --- a/src/main/java/logisticspipes/asm/wrapper/LogisticsWrapperHandler.java +++ b/src/main/java/logisticspipes/asm/wrapper/LogisticsWrapperHandler.java @@ -1,16 +1,31 @@ package logisticspipes.asm.wrapper; -import java.io.*; +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.OutputStream; +import java.io.PrintWriter; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.net.URL; -import java.util.*; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import net.minecraft.launchwrapper.Launch; import net.minecraft.launchwrapper.LogWrapper; import org.apache.logging.log4j.Level; -import org.objectweb.asm.*; +import org.objectweb.asm.ClassReader; +import org.objectweb.asm.ClassWriter; +import org.objectweb.asm.FieldVisitor; +import org.objectweb.asm.Label; +import org.objectweb.asm.MethodVisitor; +import org.objectweb.asm.Opcodes; +import org.objectweb.asm.Type; import logisticspipes.LPConstants; import logisticspipes.LogisticsPipes; diff --git a/src/main/java/logisticspipes/blocks/LogisticsSecurityTileEntity.java b/src/main/java/logisticspipes/blocks/LogisticsSecurityTileEntity.java index 91a9cd7a1..95f40fdca 100644 --- a/src/main/java/logisticspipes/blocks/LogisticsSecurityTileEntity.java +++ b/src/main/java/logisticspipes/blocks/LogisticsSecurityTileEntity.java @@ -1,7 +1,12 @@ package logisticspipes.blocks; -import java.util.*; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import java.util.Map.Entry; +import java.util.UUID; import net.minecraft.crash.CrashReportCategory; import net.minecraft.entity.player.EntityPlayer; @@ -26,7 +31,11 @@ import logisticspipes.network.PacketHandler; import logisticspipes.network.abstractguis.CoordinatesGuiProvider; import logisticspipes.network.guis.block.SecurityStationGui; -import logisticspipes.network.packets.block.*; +import logisticspipes.network.packets.block.SecurityStationAutoDestroy; +import logisticspipes.network.packets.block.SecurityStationCC; +import logisticspipes.network.packets.block.SecurityStationCCIDs; +import logisticspipes.network.packets.block.SecurityStationId; +import logisticspipes.network.packets.block.SecurityStationOpenPlayer; import logisticspipes.pipes.basic.LogisticsTileGenericPipe; import logisticspipes.proxy.MainProxy; import logisticspipes.proxy.SimpleServiceLocator; diff --git a/src/main/java/logisticspipes/blocks/LogisticsSolidTileEntity.java b/src/main/java/logisticspipes/blocks/LogisticsSolidTileEntity.java index 0da9a63e1..08b598c73 100644 --- a/src/main/java/logisticspipes/blocks/LogisticsSolidTileEntity.java +++ b/src/main/java/logisticspipes/blocks/LogisticsSolidTileEntity.java @@ -9,7 +9,11 @@ import cpw.mods.fml.relauncher.SideOnly; import li.cil.oc.api.machine.Arguments; import li.cil.oc.api.machine.Context; -import li.cil.oc.api.network.*; +import li.cil.oc.api.network.Environment; +import li.cil.oc.api.network.ManagedPeripheral; +import li.cil.oc.api.network.Message; +import li.cil.oc.api.network.Node; +import li.cil.oc.api.network.SidedEnvironment; import logisticspipes.LPConstants; import logisticspipes.interfaces.IRotationProvider; import logisticspipes.network.PacketHandler; diff --git a/src/main/java/logisticspipes/blocks/powertile/LogisticsPowerJunctionTileEntity.java b/src/main/java/logisticspipes/blocks/powertile/LogisticsPowerJunctionTileEntity.java index 941e327b2..4f76d6d2e 100644 --- a/src/main/java/logisticspipes/blocks/powertile/LogisticsPowerJunctionTileEntity.java +++ b/src/main/java/logisticspipes/blocks/powertile/LogisticsPowerJunctionTileEntity.java @@ -17,7 +17,12 @@ import logisticspipes.blocks.LogisticsSolidTileEntity; import logisticspipes.config.Configs; import logisticspipes.gui.hud.HUDPowerLevel; -import logisticspipes.interfaces.*; +import logisticspipes.interfaces.IBlockWatchingHandler; +import logisticspipes.interfaces.IGuiOpenControler; +import logisticspipes.interfaces.IGuiTileEntity; +import logisticspipes.interfaces.IHeadUpDisplayBlockRendererProvider; +import logisticspipes.interfaces.IHeadUpDisplayRenderer; +import logisticspipes.interfaces.IPowerLevelDisplay; import logisticspipes.network.NewGuiHandler; import logisticspipes.network.PacketHandler; import logisticspipes.network.abstractguis.CoordinatesGuiProvider; diff --git a/src/main/java/logisticspipes/blocks/powertile/LogisticsPowerProviderTileEntity.java b/src/main/java/logisticspipes/blocks/powertile/LogisticsPowerProviderTileEntity.java index ecb455e3f..eabb3ba00 100644 --- a/src/main/java/logisticspipes/blocks/powertile/LogisticsPowerProviderTileEntity.java +++ b/src/main/java/logisticspipes/blocks/powertile/LogisticsPowerProviderTileEntity.java @@ -1,6 +1,10 @@ package logisticspipes.blocks.powertile; -import java.util.*; +import java.util.BitSet; +import java.util.HashMap; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; import java.util.Map.Entry; import net.minecraft.crash.CrashReportCategory; @@ -12,7 +16,13 @@ import logisticspipes.LPConstants; import logisticspipes.blocks.LogisticsSolidTileEntity; import logisticspipes.gui.hud.HUDPowerLevel; -import logisticspipes.interfaces.*; +import logisticspipes.interfaces.IBlockWatchingHandler; +import logisticspipes.interfaces.IGuiOpenControler; +import logisticspipes.interfaces.IGuiTileEntity; +import logisticspipes.interfaces.IHeadUpDisplayBlockRendererProvider; +import logisticspipes.interfaces.IHeadUpDisplayRenderer; +import logisticspipes.interfaces.IPowerLevelDisplay; +import logisticspipes.interfaces.ISubSystemPowerProvider; import logisticspipes.interfaces.routing.IFilter; import logisticspipes.network.NewGuiHandler; import logisticspipes.network.PacketHandler; @@ -159,7 +169,7 @@ private void sendPowerLaserPackets(IRouter sourceRouter, IRouter destinationRout List exits = part.getValue1().getRoutersOnSide(part.getValue2()); for (ExitRoute exit : exits) { if (exit.containsFlag(PipeRoutingConnectionType.canPowerSubSystemFrom)) { // Find only result (caused by - // only straight connections) + // only straight connections) int distance = part.getValue1().getDistanceToNextPowerPipe(exit.exitOrientation); CoreRoutedPipe pipe = part.getValue1().getPipe(); if (pipe != null && pipe.isInitialized()) { diff --git a/src/main/java/logisticspipes/commands/MainCommandHandler.java b/src/main/java/logisticspipes/commands/MainCommandHandler.java index a81a1931f..6434e75d4 100644 --- a/src/main/java/logisticspipes/commands/MainCommandHandler.java +++ b/src/main/java/logisticspipes/commands/MainCommandHandler.java @@ -3,7 +3,16 @@ import net.minecraft.command.ICommandSender; import logisticspipes.commands.abstracts.SubCommandHandler; -import logisticspipes.commands.commands.*; +import logisticspipes.commands.commands.BypassCommand; +import logisticspipes.commands.commands.ClearCommand; +import logisticspipes.commands.commands.DebugCommand; +import logisticspipes.commands.commands.DummyCommand; +import logisticspipes.commands.commands.DumpCommand; +import logisticspipes.commands.commands.NBTDebugCommand; +import logisticspipes.commands.commands.NameLookupCommand; +import logisticspipes.commands.commands.RoutingThreadCommand; +import logisticspipes.commands.commands.TransferNamesCommand; +import logisticspipes.commands.commands.WrapperCommand; public class MainCommandHandler extends SubCommandHandler { diff --git a/src/main/java/logisticspipes/commands/commands/DebugCommand.java b/src/main/java/logisticspipes/commands/commands/DebugCommand.java index 5d6cbdaa4..01d1bd2e5 100644 --- a/src/main/java/logisticspipes/commands/commands/DebugCommand.java +++ b/src/main/java/logisticspipes/commands/commands/DebugCommand.java @@ -6,7 +6,11 @@ import logisticspipes.LPConstants; import logisticspipes.commands.abstracts.SubCommandHandler; -import logisticspipes.commands.commands.debug.*; +import logisticspipes.commands.commands.debug.HandCommand; +import logisticspipes.commands.commands.debug.MeCommand; +import logisticspipes.commands.commands.debug.PipeCommand; +import logisticspipes.commands.commands.debug.RoutingTableCommand; +import logisticspipes.commands.commands.debug.TargetCommand; public class DebugCommand extends SubCommandHandler { diff --git a/src/main/java/logisticspipes/config/PlayerConfig.java b/src/main/java/logisticspipes/config/PlayerConfig.java index c99af26e1..5459c014a 100644 --- a/src/main/java/logisticspipes/config/PlayerConfig.java +++ b/src/main/java/logisticspipes/config/PlayerConfig.java @@ -1,6 +1,13 @@ package logisticspipes.config; -import java.io.*; +import java.io.BufferedReader; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStreamReader; +import java.io.PrintWriter; import java.util.UUID; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; diff --git a/src/main/java/logisticspipes/gui/GuiChassiPipe.java b/src/main/java/logisticspipes/gui/GuiChassiPipe.java index 0e80d363e..8263abadc 100644 --- a/src/main/java/logisticspipes/gui/GuiChassiPipe.java +++ b/src/main/java/logisticspipes/gui/GuiChassiPipe.java @@ -39,9 +39,9 @@ public class GuiChassiPipe extends LogisticsBaseGuiScreen { private final boolean hasUpgradeModuleUpgarde; public GuiChassiPipe(EntityPlayer player, PipeLogisticsChassi chassi, boolean hasUpgradeModuleUpgarde) { // , - // GuiScreen - // previousGui) - // { + // GuiScreen + // previousGui) + // { super(null); _player = player; _chassiPipe = chassi; diff --git a/src/main/java/logisticspipes/gui/GuiPipeController.java b/src/main/java/logisticspipes/gui/GuiPipeController.java index fc3555f88..7d71a8ae1 100644 --- a/src/main/java/logisticspipes/gui/GuiPipeController.java +++ b/src/main/java/logisticspipes/gui/GuiPipeController.java @@ -30,7 +30,11 @@ import logisticspipes.proxy.SimpleServiceLocator; import logisticspipes.routing.order.IOrderInfoProvider; import logisticspipes.utils.Color; -import logisticspipes.utils.gui.*; +import logisticspipes.utils.gui.DummyContainer; +import logisticspipes.utils.gui.GuiGraphics; +import logisticspipes.utils.gui.ItemDisplay; +import logisticspipes.utils.gui.LogisticsBaseGuiScreen; +import logisticspipes.utils.gui.SmallGuiButton; import logisticspipes.utils.item.ItemIdentifier; import logisticspipes.utils.item.ItemIdentifierStack; import logisticspipes.utils.string.ChatColor; diff --git a/src/main/java/logisticspipes/gui/GuiSecurityStation.java b/src/main/java/logisticspipes/gui/GuiSecurityStation.java index 8a39d696d..d717968ba 100644 --- a/src/main/java/logisticspipes/gui/GuiSecurityStation.java +++ b/src/main/java/logisticspipes/gui/GuiSecurityStation.java @@ -18,12 +18,21 @@ import logisticspipes.interfaces.PlayerListReciver; import logisticspipes.network.PacketHandler; import logisticspipes.network.packets.PlayerListRequest; -import logisticspipes.network.packets.block.*; +import logisticspipes.network.packets.block.SecurityAuthorizationPacket; +import logisticspipes.network.packets.block.SecurityCardPacket; +import logisticspipes.network.packets.block.SecurityRequestCCIdsPacket; +import logisticspipes.network.packets.block.SecurityStationAutoDestroy; +import logisticspipes.network.packets.block.SecurityStationCC; +import logisticspipes.network.packets.block.SecurityStationOpenPlayerRequest; import logisticspipes.proxy.MainProxy; import logisticspipes.proxy.SimpleServiceLocator; import logisticspipes.security.SecuritySettings; import logisticspipes.utils.Color; -import logisticspipes.utils.gui.*; +import logisticspipes.utils.gui.DummyContainer; +import logisticspipes.utils.gui.GuiCheckBox; +import logisticspipes.utils.gui.GuiGraphics; +import logisticspipes.utils.gui.LogisticsBaseGuiScreen; +import logisticspipes.utils.gui.SmallGuiButton; import logisticspipes.utils.string.StringUtils; public class GuiSecurityStation extends LogisticsBaseGuiScreen implements PlayerListReciver { diff --git a/src/main/java/logisticspipes/gui/orderer/GuiOrderer.java b/src/main/java/logisticspipes/gui/orderer/GuiOrderer.java index ffbd1fe18..96e793cc0 100644 --- a/src/main/java/logisticspipes/gui/orderer/GuiOrderer.java +++ b/src/main/java/logisticspipes/gui/orderer/GuiOrderer.java @@ -25,7 +25,15 @@ import logisticspipes.proxy.MainProxy; import logisticspipes.request.resources.IResource; import logisticspipes.utils.Color; -import logisticspipes.utils.gui.*; +import logisticspipes.utils.gui.DummyContainer; +import logisticspipes.utils.gui.GuiCheckBox; +import logisticspipes.utils.gui.GuiGraphics; +import logisticspipes.utils.gui.IItemSearch; +import logisticspipes.utils.gui.ISubGuiControler; +import logisticspipes.utils.gui.ItemDisplay; +import logisticspipes.utils.gui.LogisticsBaseGuiScreen; +import logisticspipes.utils.gui.SearchBar; +import logisticspipes.utils.gui.SmallGuiButton; import logisticspipes.utils.item.ItemIdentifier; import logisticspipes.utils.item.ItemIdentifierStack; diff --git a/src/main/java/logisticspipes/gui/orderer/GuiRequestTable.java b/src/main/java/logisticspipes/gui/orderer/GuiRequestTable.java index 7bba32e39..6981cbee4 100644 --- a/src/main/java/logisticspipes/gui/orderer/GuiRequestTable.java +++ b/src/main/java/logisticspipes/gui/orderer/GuiRequestTable.java @@ -1,6 +1,12 @@ package logisticspipes.gui.orderer; -import java.util.*; +import java.util.ArrayList; +import java.util.BitSet; +import java.util.Collection; +import java.util.HashMap; +import java.util.List; +import java.util.Locale; +import java.util.Map; import java.util.Map.Entry; import net.minecraft.client.gui.GuiButton; @@ -27,7 +33,11 @@ import logisticspipes.network.PacketHandler; import logisticspipes.network.packets.block.ClearCraftingGridPacket; import logisticspipes.network.packets.block.CraftingCycleRecipe; -import logisticspipes.network.packets.orderer.*; +import logisticspipes.network.packets.orderer.DiskRequestConectPacket; +import logisticspipes.network.packets.orderer.OrdererRefreshRequestPacket; +import logisticspipes.network.packets.orderer.RequestComponentPacket; +import logisticspipes.network.packets.orderer.RequestSubmitListPacket; +import logisticspipes.network.packets.orderer.RequestSubmitPacket; import logisticspipes.pipes.PipeBlockRequestTable; import logisticspipes.proxy.MainProxy; import logisticspipes.request.resources.IResource; @@ -35,7 +45,15 @@ import logisticspipes.routing.order.LinkedLogisticsOrderList; import logisticspipes.utils.ChainAddArrayList; import logisticspipes.utils.Color; -import logisticspipes.utils.gui.*; +import logisticspipes.utils.gui.DummyContainer; +import logisticspipes.utils.gui.GuiCheckBox; +import logisticspipes.utils.gui.GuiGraphics; +import logisticspipes.utils.gui.IItemSearch; +import logisticspipes.utils.gui.ISubGuiControler; +import logisticspipes.utils.gui.ItemDisplay; +import logisticspipes.utils.gui.LogisticsBaseGuiScreen; +import logisticspipes.utils.gui.SearchBar; +import logisticspipes.utils.gui.SmallGuiButton; import logisticspipes.utils.gui.extention.GuiExtention; import logisticspipes.utils.item.ItemIdentifier; import logisticspipes.utils.item.ItemIdentifierStack; @@ -97,7 +115,12 @@ public GuiRequestTable(EntityPlayer entityPlayer, PipeBlockRequestTable table) { dummy.addDummySlot(i++, guiLeft + (x * 18) + 20, guiTop + (y * 18) + 15); } } - dummy.addCallableSlotHandler(0, _table.resultInv, guiLeft + 101, guiTop + 33, _table::getResultForClick); + dummy.addCallableSlotHandler( + 0, + _table.resultInv, + guiLeft + 101, + guiTop + 33, + () -> _table.getResultForClick(entityPlayer)); dummy.addNormalSlot(0, _table.toSortInv, guiLeft + 164, guiTop + 51); dummy.addNormalSlot(0, _table.diskInv, guiLeft + 164, guiTop + 25); dummy.addNormalSlotsForPlayerInventory(20, 150); @@ -120,9 +143,9 @@ public void initGui() { buttonList.clear(); buttonList.add(hideWhileSmall.addChain(new GuiButton(0, right - 55, bottom - 25, 50, 20, "Request"))); // Request buttonList.add(hideWhileSmall.addChain(new SmallGuiButton(1, right - 15, guiTop + 5, 10, 10, ">"))); // Next - // page + // page buttonList.add(hideWhileSmall.addChain(new SmallGuiButton(2, right - 90, guiTop + 5, 10, 10, "<"))); // Prev - // page + // page buttonList.add(hideWhileSmall.addChain(new SmallGuiButton(10, right - 148, bottom - 15, 26, 10, "---"))); // -64 buttonList.add(hideWhileSmall.addChain(new SmallGuiButton(4, right - 148, bottom - 26, 15, 10, "--"))); // -10 buttonList.add(hideWhileSmall.addChain(new SmallGuiButton(5, right - 132, bottom - 26, 10, 10, "-"))); // -1 diff --git a/src/main/java/logisticspipes/gui/popup/GuiAddTracking.java b/src/main/java/logisticspipes/gui/popup/GuiAddTracking.java index e6f248a21..f1f8fd34c 100644 --- a/src/main/java/logisticspipes/gui/popup/GuiAddTracking.java +++ b/src/main/java/logisticspipes/gui/popup/GuiAddTracking.java @@ -17,7 +17,13 @@ import logisticspipes.network.packets.block.AddItemToTrackPacket; import logisticspipes.network.packets.block.RequestAmountTaskSubGui; import logisticspipes.proxy.MainProxy; -import logisticspipes.utils.gui.*; +import logisticspipes.utils.gui.GuiCheckBox; +import logisticspipes.utils.gui.GuiGraphics; +import logisticspipes.utils.gui.IItemSearch; +import logisticspipes.utils.gui.ItemDisplay; +import logisticspipes.utils.gui.SearchBar; +import logisticspipes.utils.gui.SmallGuiButton; +import logisticspipes.utils.gui.SubGuiScreen; import logisticspipes.utils.item.ItemIdentifier; import logisticspipes.utils.item.ItemIdentifierStack; import logisticspipes.utils.string.StringUtils; diff --git a/src/main/java/logisticspipes/interfaces/IRoutingDebugAdapter.java b/src/main/java/logisticspipes/interfaces/IRoutingDebugAdapter.java index 8c8c65315..e65bb2ae7 100644 --- a/src/main/java/logisticspipes/interfaces/IRoutingDebugAdapter.java +++ b/src/main/java/logisticspipes/interfaces/IRoutingDebugAdapter.java @@ -1,6 +1,10 @@ package logisticspipes.interfaces; -import java.util.*; +import java.util.ArrayList; +import java.util.EnumMap; +import java.util.EnumSet; +import java.util.List; +import java.util.PriorityQueue; import logisticspipes.interfaces.routing.IFilter; import logisticspipes.routing.ExitRoute; diff --git a/src/main/java/logisticspipes/items/ItemModule.java b/src/main/java/logisticspipes/items/ItemModule.java index 697cd7f5e..22dbd5839 100644 --- a/src/main/java/logisticspipes/items/ItemModule.java +++ b/src/main/java/logisticspipes/items/ItemModule.java @@ -24,7 +24,38 @@ import logisticspipes.interfaces.IPipeServiceProvider; import logisticspipes.interfaces.IWorldProvider; import logisticspipes.logisticspipes.ItemModuleInformationManager; -import logisticspipes.modules.*; +import logisticspipes.modules.ModuleActiveSupplier; +import logisticspipes.modules.ModuleAdvancedExtractor; +import logisticspipes.modules.ModuleAdvancedExtractorMK2; +import logisticspipes.modules.ModuleAdvancedExtractorMK3; +import logisticspipes.modules.ModuleApiaristAnalyser; +import logisticspipes.modules.ModuleApiaristRefiller; +import logisticspipes.modules.ModuleApiaristSink; +import logisticspipes.modules.ModuleApiaristTerminus; +import logisticspipes.modules.ModuleCCBasedItemSink; +import logisticspipes.modules.ModuleCCBasedQuickSort; +import logisticspipes.modules.ModuleCrafter; +import logisticspipes.modules.ModuleCrafterMK2; +import logisticspipes.modules.ModuleCrafterMK3; +import logisticspipes.modules.ModuleCreativeTabBasedItemSink; +import logisticspipes.modules.ModuleElectricBuffer; +import logisticspipes.modules.ModuleElectricManager; +import logisticspipes.modules.ModuleEnchantmentSink; +import logisticspipes.modules.ModuleEnchantmentSinkMK2; +import logisticspipes.modules.ModuleExtractor; +import logisticspipes.modules.ModuleExtractorMk2; +import logisticspipes.modules.ModuleExtractorMk3; +import logisticspipes.modules.ModuleItemSink; +import logisticspipes.modules.ModuleModBasedItemSink; +import logisticspipes.modules.ModuleOreDictItemSink; +import logisticspipes.modules.ModulePassiveSupplier; +import logisticspipes.modules.ModulePolymorphicItemSink; +import logisticspipes.modules.ModuleProvider; +import logisticspipes.modules.ModuleProviderMk2; +import logisticspipes.modules.ModuleQuickSort; +import logisticspipes.modules.ModuleTerminus; +import logisticspipes.modules.ModuleThaumicAspectSink; +import logisticspipes.modules.ModuleTypeFilterItemSink; import logisticspipes.modules.abstractmodules.LogisticsGuiModule; import logisticspipes.modules.abstractmodules.LogisticsModule; import logisticspipes.modules.abstractmodules.LogisticsModule.ModulePositionType; @@ -260,7 +291,7 @@ public boolean onItemUse(final ItemStack par1ItemStack, final EntityPlayer par2E TileEntity tile = par3World.getTileEntity(par4, par5, par6); if (tile instanceof LogisticsTileGenericPipe) { if (par2EntityPlayer.getDisplayName().equals("ComputerCraft")) { // Allow turtle to place modules in - // pipes. + // pipes. CoreUnroutedPipe pipe = LogisticsBlockGenericPipe.getPipe(par3World, par4, par5, par6); if (LogisticsBlockGenericPipe.isValid(pipe)) { pipe.blockActivated(par2EntityPlayer); diff --git a/src/main/java/logisticspipes/items/ItemUpgrade.java b/src/main/java/logisticspipes/items/ItemUpgrade.java index 21bb557d7..8d1d18588 100644 --- a/src/main/java/logisticspipes/items/ItemUpgrade.java +++ b/src/main/java/logisticspipes/items/ItemUpgrade.java @@ -18,10 +18,38 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import logisticspipes.LPConstants; -import logisticspipes.pipes.upgrades.*; -import logisticspipes.pipes.upgrades.connection.*; -import logisticspipes.pipes.upgrades.power.*; -import logisticspipes.pipes.upgrades.sneaky.*; +import logisticspipes.pipes.upgrades.AdvancedSatelliteUpgrade; +import logisticspipes.pipes.upgrades.CCRemoteControlUpgrade; +import logisticspipes.pipes.upgrades.CombinedSneakyUpgrade; +import logisticspipes.pipes.upgrades.CraftingByproductUpgrade; +import logisticspipes.pipes.upgrades.CraftingCleanupUpgrade; +import logisticspipes.pipes.upgrades.CraftingMonitoringUpgrade; +import logisticspipes.pipes.upgrades.FluidCraftingUpgrade; +import logisticspipes.pipes.upgrades.FuzzyUpgrade; +import logisticspipes.pipes.upgrades.IPipeUpgrade; +import logisticspipes.pipes.upgrades.LogicControllerUpgrade; +import logisticspipes.pipes.upgrades.OpaqueUpgrade; +import logisticspipes.pipes.upgrades.PatternUpgrade; +import logisticspipes.pipes.upgrades.PowerTransportationUpgrade; +import logisticspipes.pipes.upgrades.SpeedUpgrade; +import logisticspipes.pipes.upgrades.UpgradeModuleUpgrade; +import logisticspipes.pipes.upgrades.connection.ConnectionUpgradeDOWN; +import logisticspipes.pipes.upgrades.connection.ConnectionUpgradeEAST; +import logisticspipes.pipes.upgrades.connection.ConnectionUpgradeNORTH; +import logisticspipes.pipes.upgrades.connection.ConnectionUpgradeSOUTH; +import logisticspipes.pipes.upgrades.connection.ConnectionUpgradeUP; +import logisticspipes.pipes.upgrades.connection.ConnectionUpgradeWEST; +import logisticspipes.pipes.upgrades.power.IC2EVPowerSupplierUpgrade; +import logisticspipes.pipes.upgrades.power.IC2HVPowerSupplierUpgrade; +import logisticspipes.pipes.upgrades.power.IC2LVPowerSupplierUpgrade; +import logisticspipes.pipes.upgrades.power.IC2MVPowerSupplierUpgrade; +import logisticspipes.pipes.upgrades.power.RFPowerSupplierUpgrade; +import logisticspipes.pipes.upgrades.sneaky.SneakyUpgradeDOWN; +import logisticspipes.pipes.upgrades.sneaky.SneakyUpgradeEAST; +import logisticspipes.pipes.upgrades.sneaky.SneakyUpgradeNORTH; +import logisticspipes.pipes.upgrades.sneaky.SneakyUpgradeSOUTH; +import logisticspipes.pipes.upgrades.sneaky.SneakyUpgradeUP; +import logisticspipes.pipes.upgrades.sneaky.SneakyUpgradeWEST; import logisticspipes.utils.string.StringUtils; public class ItemUpgrade extends LogisticsItem { diff --git a/src/main/java/logisticspipes/logistics/LogisticsManager.java b/src/main/java/logisticspipes/logistics/LogisticsManager.java index 0a5a2e9d5..9949d4ae2 100644 --- a/src/main/java/logisticspipes/logistics/LogisticsManager.java +++ b/src/main/java/logisticspipes/logistics/LogisticsManager.java @@ -4,7 +4,13 @@ */ package logisticspipes.logistics; -import java.util.*; +import java.util.ArrayList; +import java.util.BitSet; +import java.util.Collections; +import java.util.HashMap; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; import java.util.Map.Entry; import logisticspipes.interfaces.routing.ICraftItems; diff --git a/src/main/java/logisticspipes/modules/ModuleActiveSupplier.java b/src/main/java/logisticspipes/modules/ModuleActiveSupplier.java index 8a5122588..5c507fe91 100644 --- a/src/main/java/logisticspipes/modules/ModuleActiveSupplier.java +++ b/src/main/java/logisticspipes/modules/ModuleActiveSupplier.java @@ -1,6 +1,11 @@ package logisticspipes.modules; -import java.util.*; +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; import java.util.Map.Entry; import net.minecraft.client.renderer.texture.IIconRegister; @@ -13,7 +18,12 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import logisticspipes.interfaces.*; +import logisticspipes.interfaces.IClientInformationProvider; +import logisticspipes.interfaces.IHUDModuleHandler; +import logisticspipes.interfaces.IHUDModuleRenderer; +import logisticspipes.interfaces.IInventoryUtil; +import logisticspipes.interfaces.IModuleInventoryReceive; +import logisticspipes.interfaces.IModuleWatchReciver; import logisticspipes.interfaces.routing.IAdditionalTargetInformation; import logisticspipes.interfaces.routing.IRequestItems; import logisticspipes.interfaces.routing.IRequireReliableTransport; @@ -36,7 +46,11 @@ import logisticspipes.proxy.SimpleServiceLocator; import logisticspipes.request.RequestTree; import logisticspipes.routing.IRouter; -import logisticspipes.utils.*; +import logisticspipes.utils.AdjacentTile; +import logisticspipes.utils.ISimpleInventoryEventHandler; +import logisticspipes.utils.PlayerCollectionList; +import logisticspipes.utils.SinkReply; +import logisticspipes.utils.WorldUtil; import logisticspipes.utils.item.ItemIdentifier; import logisticspipes.utils.item.ItemIdentifierInventory; import logisticspipes.utils.item.ItemIdentifierStack; diff --git a/src/main/java/logisticspipes/modules/ModuleAdvancedExtractor.java b/src/main/java/logisticspipes/modules/ModuleAdvancedExtractor.java index 2221d386b..a673126e4 100644 --- a/src/main/java/logisticspipes/modules/ModuleAdvancedExtractor.java +++ b/src/main/java/logisticspipes/modules/ModuleAdvancedExtractor.java @@ -1,6 +1,10 @@ package logisticspipes.modules; -import java.util.*; +import java.util.ArrayList; +import java.util.Collection; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; import java.util.Map.Entry; import net.minecraft.client.renderer.texture.IIconRegister; @@ -14,7 +18,12 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import logisticspipes.gui.hud.modules.HUDAdvancedExtractor; -import logisticspipes.interfaces.*; +import logisticspipes.interfaces.IClientInformationProvider; +import logisticspipes.interfaces.IHUDModuleHandler; +import logisticspipes.interfaces.IHUDModuleRenderer; +import logisticspipes.interfaces.IInventoryUtil; +import logisticspipes.interfaces.IModuleInventoryReceive; +import logisticspipes.interfaces.IModuleWatchReciver; import logisticspipes.modules.abstractmodules.LogisticsModule; import logisticspipes.modules.abstractmodules.LogisticsSneakyDirectionModule; import logisticspipes.network.NewGuiHandler; diff --git a/src/main/java/logisticspipes/modules/ModuleCCBasedQuickSort.java b/src/main/java/logisticspipes/modules/ModuleCCBasedQuickSort.java index b703a6d72..063c19040 100644 --- a/src/main/java/logisticspipes/modules/ModuleCCBasedQuickSort.java +++ b/src/main/java/logisticspipes/modules/ModuleCCBasedQuickSort.java @@ -1,6 +1,12 @@ package logisticspipes.modules; -import java.util.*; +import java.util.ArrayList; +import java.util.BitSet; +import java.util.Collections; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; import java.util.Map.Entry; import net.minecraft.client.renderer.texture.IIconRegister; @@ -12,7 +18,11 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import logisticspipes.gui.hud.modules.HUDCCBasedQuickSort; -import logisticspipes.interfaces.*; +import logisticspipes.interfaces.IClientInformationProvider; +import logisticspipes.interfaces.IHUDModuleHandler; +import logisticspipes.interfaces.IHUDModuleRenderer; +import logisticspipes.interfaces.IInventoryUtil; +import logisticspipes.interfaces.IModuleWatchReciver; import logisticspipes.interfaces.routing.IFilter; import logisticspipes.network.NewGuiHandler; import logisticspipes.network.PacketHandler; @@ -62,7 +72,7 @@ private void createSinkMessage(int slot, ItemIdentifierStack stack) { return; } BitSet routersIndex = ServerRouter.getRoutersInterestedIn((ItemIdentifier) null); // get only pipes with generic - // interest + // interest List validDestinations = new ArrayList<>(); // get the routing table for (int i = routersIndex.nextSetBit(0); i >= 0; i = routersIndex.nextSetBit(i + 1)) { IRouter r = SimpleServiceLocator.routerManager.getRouterUnsafe(i, false); diff --git a/src/main/java/logisticspipes/modules/ModuleCrafter.java b/src/main/java/logisticspipes/modules/ModuleCrafter.java index 1982b05ba..29372bfbc 100644 --- a/src/main/java/logisticspipes/modules/ModuleCrafter.java +++ b/src/main/java/logisticspipes/modules/ModuleCrafter.java @@ -1,7 +1,12 @@ package logisticspipes.modules; import java.lang.ref.WeakReference; -import java.util.*; +import java.util.ArrayList; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.TreeSet; import java.util.concurrent.DelayQueue; import net.minecraft.block.Block; @@ -23,8 +28,19 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import logisticspipes.blocks.crafting.LogisticsCraftingTableTileEntity; -import logisticspipes.interfaces.*; -import logisticspipes.interfaces.routing.*; +import logisticspipes.interfaces.IHUDModuleHandler; +import logisticspipes.interfaces.IHUDModuleRenderer; +import logisticspipes.interfaces.IInventoryUtil; +import logisticspipes.interfaces.IModuleWatchReciver; +import logisticspipes.interfaces.IPipeServiceProvider; +import logisticspipes.interfaces.ISlotUpgradeManager; +import logisticspipes.interfaces.IWorldProvider; +import logisticspipes.interfaces.routing.IAdditionalTargetInformation; +import logisticspipes.interfaces.routing.ICraftItems; +import logisticspipes.interfaces.routing.IFilter; +import logisticspipes.interfaces.routing.IItemSpaceControl; +import logisticspipes.interfaces.routing.IRequestFluid; +import logisticspipes.interfaces.routing.IRequestItems; import logisticspipes.items.ItemUpgrade; import logisticspipes.logistics.LogisticsManager; import logisticspipes.logisticspipes.IRoutedItem; @@ -41,10 +57,23 @@ import logisticspipes.network.guis.module.inpipe.CraftingModuleSlot; import logisticspipes.network.packets.block.CraftingPipeNextAdvancedSatellitePacket; import logisticspipes.network.packets.block.CraftingPipePrevAdvancedSatellitePacket; -import logisticspipes.network.packets.cpipe.*; +import logisticspipes.network.packets.cpipe.CPipeNextSatellite; +import logisticspipes.network.packets.cpipe.CPipePrevSatellite; +import logisticspipes.network.packets.cpipe.CPipeSatelliteId; +import logisticspipes.network.packets.cpipe.CPipeSatelliteImport; +import logisticspipes.network.packets.cpipe.CPipeSatelliteImportBack; +import logisticspipes.network.packets.cpipe.CraftingAdvancedSatelliteId; +import logisticspipes.network.packets.cpipe.CraftingPipeOpenConnectedGuiPacket; import logisticspipes.network.packets.hud.HUDStartModuleWatchingPacket; import logisticspipes.network.packets.hud.HUDStopModuleWatchingPacket; -import logisticspipes.network.packets.pipe.*; +import logisticspipes.network.packets.pipe.CraftingPipePriorityDownPacket; +import logisticspipes.network.packets.pipe.CraftingPipePriorityUpPacket; +import logisticspipes.network.packets.pipe.CraftingPipeUpdatePacket; +import logisticspipes.network.packets.pipe.CraftingPriority; +import logisticspipes.network.packets.pipe.FluidCraftingAdvancedSatelliteId; +import logisticspipes.network.packets.pipe.FluidCraftingAmount; +import logisticspipes.network.packets.pipe.FluidCraftingPipeAdvancedSatelliteNextPacket; +import logisticspipes.network.packets.pipe.FluidCraftingPipeAdvancedSatellitePrevPacket; import logisticspipes.pipefxhandlers.Particles; import logisticspipes.pipes.PipeFluidSatellite; import logisticspipes.pipes.PipeItemsCraftingLogistics; @@ -56,18 +85,35 @@ import logisticspipes.proxy.SimpleServiceLocator; import logisticspipes.proxy.interfaces.ICraftingRecipeProvider; import logisticspipes.proxy.interfaces.IFuzzyRecipeProvider; -import logisticspipes.request.*; +import logisticspipes.request.DictCraftingTemplate; +import logisticspipes.request.ICraftingTemplate; +import logisticspipes.request.IPromise; +import logisticspipes.request.IReqCraftingTemplate; +import logisticspipes.request.ItemCraftingTemplate; +import logisticspipes.request.RequestTree; +import logisticspipes.request.RequestTreeNode; import logisticspipes.request.resources.DictResource; import logisticspipes.request.resources.FluidResource; import logisticspipes.request.resources.IResource; import logisticspipes.request.resources.ItemResource; -import logisticspipes.routing.*; +import logisticspipes.routing.ExitRoute; +import logisticspipes.routing.IRouter; +import logisticspipes.routing.LogisticsDictPromise; +import logisticspipes.routing.LogisticsExtraDictPromise; +import logisticspipes.routing.LogisticsExtraPromise; +import logisticspipes.routing.LogisticsPromise; import logisticspipes.routing.order.IOrderInfoProvider.ResourceType; import logisticspipes.routing.order.LogisticsItemOrder; -import logisticspipes.utils.*; +import logisticspipes.utils.AdjacentTile; import logisticspipes.utils.CacheHolder.CacheTypes; +import logisticspipes.utils.DelayedGeneric; +import logisticspipes.utils.FluidIdentifier; +import logisticspipes.utils.PlayerCollectionList; +import logisticspipes.utils.SidedInventoryMinecraftAdapter; +import logisticspipes.utils.SinkReply; import logisticspipes.utils.SinkReply.BufferMode; import logisticspipes.utils.SinkReply.FixedPriority; +import logisticspipes.utils.WorldUtil; import logisticspipes.utils.item.ItemIdentifier; import logisticspipes.utils.item.ItemIdentifierInventory; import logisticspipes.utils.item.ItemIdentifierStack; diff --git a/src/main/java/logisticspipes/modules/ModuleCreativeTabBasedItemSink.java b/src/main/java/logisticspipes/modules/ModuleCreativeTabBasedItemSink.java index 8c25930d4..a5b426906 100644 --- a/src/main/java/logisticspipes/modules/ModuleCreativeTabBasedItemSink.java +++ b/src/main/java/logisticspipes/modules/ModuleCreativeTabBasedItemSink.java @@ -1,6 +1,10 @@ package logisticspipes.modules; -import java.util.*; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.LinkedList; +import java.util.List; +import java.util.Set; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.player.EntityPlayer; @@ -10,7 +14,11 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import logisticspipes.gui.hud.modules.HUDStringBasedItemSink; -import logisticspipes.interfaces.*; +import logisticspipes.interfaces.IClientInformationProvider; +import logisticspipes.interfaces.IHUDModuleHandler; +import logisticspipes.interfaces.IHUDModuleRenderer; +import logisticspipes.interfaces.IModuleWatchReciver; +import logisticspipes.interfaces.IStringBasedModule; import logisticspipes.modules.abstractmodules.LogisticsGuiModule; import logisticspipes.modules.abstractmodules.LogisticsModule; import logisticspipes.network.NewGuiHandler; diff --git a/src/main/java/logisticspipes/modules/ModuleElectricManager.java b/src/main/java/logisticspipes/modules/ModuleElectricManager.java index a4925a428..b7be1d8ac 100644 --- a/src/main/java/logisticspipes/modules/ModuleElectricManager.java +++ b/src/main/java/logisticspipes/modules/ModuleElectricManager.java @@ -14,7 +14,12 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import logisticspipes.gui.hud.modules.HUDElectricManager; -import logisticspipes.interfaces.*; +import logisticspipes.interfaces.IClientInformationProvider; +import logisticspipes.interfaces.IHUDModuleHandler; +import logisticspipes.interfaces.IHUDModuleRenderer; +import logisticspipes.interfaces.IInventoryUtil; +import logisticspipes.interfaces.IModuleInventoryReceive; +import logisticspipes.interfaces.IModuleWatchReciver; import logisticspipes.interfaces.routing.IFilter; import logisticspipes.modules.abstractmodules.LogisticsGuiModule; import logisticspipes.modules.abstractmodules.LogisticsModule; diff --git a/src/main/java/logisticspipes/modules/ModuleEnchantmentSinkMK2.java b/src/main/java/logisticspipes/modules/ModuleEnchantmentSinkMK2.java index 99ae7bd9b..c6be4d913 100644 --- a/src/main/java/logisticspipes/modules/ModuleEnchantmentSinkMK2.java +++ b/src/main/java/logisticspipes/modules/ModuleEnchantmentSinkMK2.java @@ -14,7 +14,11 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import logisticspipes.gui.hud.modules.HUDSimpleFilterModule; -import logisticspipes.interfaces.*; +import logisticspipes.interfaces.IClientInformationProvider; +import logisticspipes.interfaces.IHUDModuleHandler; +import logisticspipes.interfaces.IHUDModuleRenderer; +import logisticspipes.interfaces.IModuleInventoryReceive; +import logisticspipes.interfaces.IModuleWatchReciver; import logisticspipes.modules.abstractmodules.LogisticsModule; import logisticspipes.modules.abstractmodules.LogisticsSimpleFilterModule; import logisticspipes.network.PacketHandler; diff --git a/src/main/java/logisticspipes/modules/ModuleExtractor.java b/src/main/java/logisticspipes/modules/ModuleExtractor.java index 1a1b99db8..8da4e4ed1 100644 --- a/src/main/java/logisticspipes/modules/ModuleExtractor.java +++ b/src/main/java/logisticspipes/modules/ModuleExtractor.java @@ -15,7 +15,11 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import logisticspipes.gui.hud.modules.HUDExtractor; -import logisticspipes.interfaces.*; +import logisticspipes.interfaces.IClientInformationProvider; +import logisticspipes.interfaces.IHUDModuleHandler; +import logisticspipes.interfaces.IHUDModuleRenderer; +import logisticspipes.interfaces.IInventoryUtil; +import logisticspipes.interfaces.IModuleWatchReciver; import logisticspipes.modules.abstractmodules.LogisticsModule; import logisticspipes.modules.abstractmodules.LogisticsSneakyDirectionModule; import logisticspipes.network.NewGuiHandler; diff --git a/src/main/java/logisticspipes/modules/ModuleItemSink.java b/src/main/java/logisticspipes/modules/ModuleItemSink.java index 47164aabc..0b94265ad 100644 --- a/src/main/java/logisticspipes/modules/ModuleItemSink.java +++ b/src/main/java/logisticspipes/modules/ModuleItemSink.java @@ -1,6 +1,10 @@ package logisticspipes.modules; -import java.util.*; +import java.util.ArrayList; +import java.util.BitSet; +import java.util.Collection; +import java.util.List; +import java.util.Map; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.player.EntityPlayer; @@ -11,7 +15,12 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import logisticspipes.gui.hud.modules.HUDItemSink; -import logisticspipes.interfaces.*; +import logisticspipes.interfaces.IClientInformationProvider; +import logisticspipes.interfaces.IHUDModuleHandler; +import logisticspipes.interfaces.IHUDModuleRenderer; +import logisticspipes.interfaces.IInventoryUtil; +import logisticspipes.interfaces.IModuleInventoryReceive; +import logisticspipes.interfaces.IModuleWatchReciver; import logisticspipes.modules.abstractmodules.LogisticsGuiModule; import logisticspipes.modules.abstractmodules.LogisticsModule; import logisticspipes.network.NewGuiHandler; diff --git a/src/main/java/logisticspipes/modules/ModuleModBasedItemSink.java b/src/main/java/logisticspipes/modules/ModuleModBasedItemSink.java index c68e04977..1ff758ad8 100644 --- a/src/main/java/logisticspipes/modules/ModuleModBasedItemSink.java +++ b/src/main/java/logisticspipes/modules/ModuleModBasedItemSink.java @@ -1,6 +1,10 @@ package logisticspipes.modules; -import java.util.*; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.LinkedList; +import java.util.List; +import java.util.Set; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.player.EntityPlayer; @@ -10,7 +14,11 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import logisticspipes.gui.hud.modules.HUDStringBasedItemSink; -import logisticspipes.interfaces.*; +import logisticspipes.interfaces.IClientInformationProvider; +import logisticspipes.interfaces.IHUDModuleHandler; +import logisticspipes.interfaces.IHUDModuleRenderer; +import logisticspipes.interfaces.IModuleWatchReciver; +import logisticspipes.interfaces.IStringBasedModule; import logisticspipes.modules.abstractmodules.LogisticsGuiModule; import logisticspipes.modules.abstractmodules.LogisticsModule; import logisticspipes.network.NewGuiHandler; diff --git a/src/main/java/logisticspipes/modules/ModuleOreDictItemSink.java b/src/main/java/logisticspipes/modules/ModuleOreDictItemSink.java index 36c9cd626..39c390e75 100644 --- a/src/main/java/logisticspipes/modules/ModuleOreDictItemSink.java +++ b/src/main/java/logisticspipes/modules/ModuleOreDictItemSink.java @@ -1,6 +1,12 @@ package logisticspipes.modules; -import java.util.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.TreeSet; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.player.EntityPlayer; diff --git a/src/main/java/logisticspipes/modules/ModulePassiveSupplier.java b/src/main/java/logisticspipes/modules/ModulePassiveSupplier.java index d0eb2b823..444951598 100644 --- a/src/main/java/logisticspipes/modules/ModulePassiveSupplier.java +++ b/src/main/java/logisticspipes/modules/ModulePassiveSupplier.java @@ -14,7 +14,12 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import logisticspipes.gui.hud.modules.HUDSimpleFilterModule; -import logisticspipes.interfaces.*; +import logisticspipes.interfaces.IClientInformationProvider; +import logisticspipes.interfaces.IHUDModuleHandler; +import logisticspipes.interfaces.IHUDModuleRenderer; +import logisticspipes.interfaces.IInventoryUtil; +import logisticspipes.interfaces.IModuleInventoryReceive; +import logisticspipes.interfaces.IModuleWatchReciver; import logisticspipes.modules.abstractmodules.LogisticsModule; import logisticspipes.modules.abstractmodules.LogisticsSimpleFilterModule; import logisticspipes.network.PacketHandler; diff --git a/src/main/java/logisticspipes/modules/ModuleProvider.java b/src/main/java/logisticspipes/modules/ModuleProvider.java index 0ea41aee2..0cbf5faa6 100644 --- a/src/main/java/logisticspipes/modules/ModuleProvider.java +++ b/src/main/java/logisticspipes/modules/ModuleProvider.java @@ -1,7 +1,11 @@ package logisticspipes.modules; -import java.util.*; +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; +import java.util.Map; import java.util.Map.Entry; +import java.util.TreeMap; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.player.EntityPlayer; @@ -14,7 +18,13 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import logisticspipes.gui.hud.modules.HUDProviderModule; -import logisticspipes.interfaces.*; +import logisticspipes.interfaces.IClientInformationProvider; +import logisticspipes.interfaces.IHUDModuleHandler; +import logisticspipes.interfaces.IHUDModuleRenderer; +import logisticspipes.interfaces.IInventoryUtil; +import logisticspipes.interfaces.ILegacyActiveModule; +import logisticspipes.interfaces.IModuleInventoryReceive; +import logisticspipes.interfaces.IModuleWatchReciver; import logisticspipes.interfaces.routing.IAdditionalTargetInformation; import logisticspipes.interfaces.routing.IFilter; import logisticspipes.interfaces.routing.IProvideItems; @@ -508,7 +518,7 @@ public List getSpecificInterests() { @Override public boolean interestedInAttachedInventory() { return isExcludeFilter || _filterInventory.isEmpty(); // when items included this is only interested in items in - // the filter + // the filter // when items not included, we can only serve those items in the filter. } diff --git a/src/main/java/logisticspipes/modules/ModuleTerminus.java b/src/main/java/logisticspipes/modules/ModuleTerminus.java index fa47c82c0..cffc225f5 100644 --- a/src/main/java/logisticspipes/modules/ModuleTerminus.java +++ b/src/main/java/logisticspipes/modules/ModuleTerminus.java @@ -14,7 +14,11 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import logisticspipes.gui.hud.modules.HUDSimpleFilterModule; -import logisticspipes.interfaces.*; +import logisticspipes.interfaces.IClientInformationProvider; +import logisticspipes.interfaces.IHUDModuleHandler; +import logisticspipes.interfaces.IHUDModuleRenderer; +import logisticspipes.interfaces.IModuleInventoryReceive; +import logisticspipes.interfaces.IModuleWatchReciver; import logisticspipes.modules.abstractmodules.LogisticsModule; import logisticspipes.modules.abstractmodules.LogisticsSimpleFilterModule; import logisticspipes.network.PacketHandler; diff --git a/src/main/java/logisticspipes/modules/ModuleTypeFilterItemSink.java b/src/main/java/logisticspipes/modules/ModuleTypeFilterItemSink.java index 37f65fce4..8bd9b8ab2 100644 --- a/src/main/java/logisticspipes/modules/ModuleTypeFilterItemSink.java +++ b/src/main/java/logisticspipes/modules/ModuleTypeFilterItemSink.java @@ -19,7 +19,11 @@ import gregtech.api.util.GT_OreDictUnificator; import gregtech.common.tileentities.automation.GT_MetaTileEntity_TypeFilter; import logisticspipes.gui.hud.modules.HUDStringBasedItemSink; -import logisticspipes.interfaces.*; +import logisticspipes.interfaces.IClientInformationProvider; +import logisticspipes.interfaces.IHUDModuleHandler; +import logisticspipes.interfaces.IHUDModuleRenderer; +import logisticspipes.interfaces.IModuleWatchReciver; +import logisticspipes.interfaces.IStringBasedModule; import logisticspipes.modules.abstractmodules.LogisticsGuiModule; import logisticspipes.modules.abstractmodules.LogisticsModule; import logisticspipes.network.NewGuiHandler; diff --git a/src/main/java/logisticspipes/nei/DebugHelper.java b/src/main/java/logisticspipes/nei/DebugHelper.java index 4b491071b..a5c9599b6 100644 --- a/src/main/java/logisticspipes/nei/DebugHelper.java +++ b/src/main/java/logisticspipes/nei/DebugHelper.java @@ -1,16 +1,29 @@ package logisticspipes.nei; -import java.awt.*; +import java.awt.BorderLayout; import java.util.List; import java.util.Map; -import javax.swing.*; +import javax.swing.JFrame; +import javax.swing.JScrollPane; +import javax.swing.JTree; import javax.swing.tree.DefaultMutableTreeNode; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import net.minecraft.nbt.*; +import net.minecraft.nbt.NBTBase; +import net.minecraft.nbt.NBTTagByte; +import net.minecraft.nbt.NBTTagByteArray; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagDouble; +import net.minecraft.nbt.NBTTagFloat; +import net.minecraft.nbt.NBTTagInt; +import net.minecraft.nbt.NBTTagIntArray; +import net.minecraft.nbt.NBTTagList; +import net.minecraft.nbt.NBTTagLong; +import net.minecraft.nbt.NBTTagShort; +import net.minecraft.nbt.NBTTagString; import org.lwjgl.input.Keyboard; diff --git a/src/main/java/logisticspipes/nei/NEISolderingStationRecipeManager.java b/src/main/java/logisticspipes/nei/NEISolderingStationRecipeManager.java index 9e3abecb7..90e0135a1 100644 --- a/src/main/java/logisticspipes/nei/NEISolderingStationRecipeManager.java +++ b/src/main/java/logisticspipes/nei/NEISolderingStationRecipeManager.java @@ -1,6 +1,6 @@ package logisticspipes.nei; -import java.awt.*; +import java.awt.Rectangle; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.init.Items; diff --git a/src/main/java/logisticspipes/network/GuiHandler.java b/src/main/java/logisticspipes/network/GuiHandler.java index 135800dec..76f9f3602 100644 --- a/src/main/java/logisticspipes/network/GuiHandler.java +++ b/src/main/java/logisticspipes/network/GuiHandler.java @@ -7,7 +7,14 @@ import cpw.mods.fml.common.network.IGuiHandler; import logisticspipes.LogisticsPipes; -import logisticspipes.gui.*; +import logisticspipes.gui.GuiFirewall; +import logisticspipes.gui.GuiFluidBasic; +import logisticspipes.gui.GuiFluidSupplierMk2Pipe; +import logisticspipes.gui.GuiFluidSupplierPipe; +import logisticspipes.gui.GuiFreqCardContent; +import logisticspipes.gui.GuiInvSysConnector; +import logisticspipes.gui.GuiProviderPipe; +import logisticspipes.gui.GuiSatellitePipe; import logisticspipes.gui.hud.GuiHUDSettings; import logisticspipes.gui.orderer.FluidGuiOrderer; import logisticspipes.gui.orderer.GuiRequestTable; @@ -18,7 +25,19 @@ import logisticspipes.network.packets.pipe.FluidSupplierMinMode; import logisticspipes.network.packets.pipe.FluidSupplierMode; import logisticspipes.network.packets.pipe.InvSysConResistance; -import logisticspipes.pipes.*; +import logisticspipes.pipes.PipeBlockRequestTable; +import logisticspipes.pipes.PipeFluidBasic; +import logisticspipes.pipes.PipeFluidRequestLogistics; +import logisticspipes.pipes.PipeFluidSatellite; +import logisticspipes.pipes.PipeFluidSupplierMk2; +import logisticspipes.pipes.PipeItemsFirewall; +import logisticspipes.pipes.PipeItemsFluidSupplier; +import logisticspipes.pipes.PipeItemsInvSysConnector; +import logisticspipes.pipes.PipeItemsProviderLogistics; +import logisticspipes.pipes.PipeItemsRequestLogisticsMk2; +import logisticspipes.pipes.PipeItemsSatelliteLogistics; +import logisticspipes.pipes.PipeItemsSystemDestinationLogistics; +import logisticspipes.pipes.PipeItemsSystemEntranceLogistics; import logisticspipes.pipes.basic.CoreRoutedPipe; import logisticspipes.pipes.basic.LogisticsTileGenericPipe; import logisticspipes.proxy.MainProxy; @@ -266,7 +285,7 @@ public void guiClosedByPlayer(EntityPlayer player) { ((PipeBlockRequestTable) pipe.pipe).resultInv, 0, 0, - () -> ((PipeBlockRequestTable) fpipe.pipe).getResultForClick()); + () -> ((PipeBlockRequestTable) fpipe.pipe).getResultForClick(player)); dummy.addNormalSlot(0, ((PipeBlockRequestTable) pipe.pipe).toSortInv, 0, 0); dummy.addNormalSlot(0, ((PipeBlockRequestTable) pipe.pipe).diskInv, 0, 0); dummy.addNormalSlotsForPlayerInventory(0, 0); diff --git a/src/main/java/logisticspipes/network/LPDataOutputStream.java b/src/main/java/logisticspipes/network/LPDataOutputStream.java index d66430ec1..8872d11a2 100644 --- a/src/main/java/logisticspipes/network/LPDataOutputStream.java +++ b/src/main/java/logisticspipes/network/LPDataOutputStream.java @@ -3,7 +3,11 @@ import java.io.ByteArrayOutputStream; import java.io.DataOutputStream; import java.io.IOException; -import java.util.*; +import java.util.ArrayList; +import java.util.BitSet; +import java.util.Collection; +import java.util.EnumSet; +import java.util.List; import net.minecraft.item.Item; import net.minecraft.nbt.CompressedStreamTools; diff --git a/src/main/java/logisticspipes/network/NewGuiHandler.java b/src/main/java/logisticspipes/network/NewGuiHandler.java index a9116e81a..5233d9ac6 100644 --- a/src/main/java/logisticspipes/network/NewGuiHandler.java +++ b/src/main/java/logisticspipes/network/NewGuiHandler.java @@ -2,7 +2,11 @@ import java.io.IOException; import java.lang.reflect.InvocationTargetException; -import java.util.*; +import java.util.ArrayList; +import java.util.Comparator; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.entity.player.EntityPlayer; diff --git a/src/main/java/logisticspipes/network/PacketHandler.java b/src/main/java/logisticspipes/network/PacketHandler.java index 45b60c476..344effb4a 100644 --- a/src/main/java/logisticspipes/network/PacketHandler.java +++ b/src/main/java/logisticspipes/network/PacketHandler.java @@ -2,7 +2,11 @@ import java.io.IOException; import java.lang.reflect.InvocationTargetException; -import java.util.*; +import java.util.ArrayList; +import java.util.Comparator; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import net.minecraft.entity.player.EntityPlayer; diff --git a/src/main/java/logisticspipes/network/packets/debuggui/DebugTargetResponse.java b/src/main/java/logisticspipes/network/packets/debuggui/DebugTargetResponse.java index 273b29ca4..05755fba3 100644 --- a/src/main/java/logisticspipes/network/packets/debuggui/DebugTargetResponse.java +++ b/src/main/java/logisticspipes/network/packets/debuggui/DebugTargetResponse.java @@ -1,6 +1,6 @@ package logisticspipes.network.packets.debuggui; -import java.io.*; +import java.io.IOException; import net.minecraft.block.Block; import net.minecraft.entity.Entity; diff --git a/src/main/java/logisticspipes/network/packets/pipe/RequestRoutingLasersPacket.java b/src/main/java/logisticspipes/network/packets/pipe/RequestRoutingLasersPacket.java index 38ed69cd0..c9c27bde1 100644 --- a/src/main/java/logisticspipes/network/packets/pipe/RequestRoutingLasersPacket.java +++ b/src/main/java/logisticspipes/network/packets/pipe/RequestRoutingLasersPacket.java @@ -1,6 +1,12 @@ package logisticspipes.network.packets.pipe; -import java.util.*; +import java.util.ArrayList; +import java.util.EnumSet; +import java.util.HashMap; +import java.util.Iterator; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; import java.util.Map.Entry; import net.minecraft.entity.player.EntityPlayer; diff --git a/src/main/java/logisticspipes/network/packets/routingdebug/RoutingUpdateTargetResponse.java b/src/main/java/logisticspipes/network/packets/routingdebug/RoutingUpdateTargetResponse.java index 89a4f88e9..6f9e8f872 100644 --- a/src/main/java/logisticspipes/network/packets/routingdebug/RoutingUpdateTargetResponse.java +++ b/src/main/java/logisticspipes/network/packets/routingdebug/RoutingUpdateTargetResponse.java @@ -1,6 +1,6 @@ package logisticspipes.network.packets.routingdebug; -import java.io.*; +import java.io.IOException; import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; diff --git a/src/main/java/logisticspipes/pipes/PipeBlockRequestTable.java b/src/main/java/logisticspipes/pipes/PipeBlockRequestTable.java index 231152333..54910ca34 100644 --- a/src/main/java/logisticspipes/pipes/PipeBlockRequestTable.java +++ b/src/main/java/logisticspipes/pipes/PipeBlockRequestTable.java @@ -1,6 +1,10 @@ package logisticspipes.pipes; -import java.util.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; import java.util.Map.Entry; import net.minecraft.entity.player.EntityPlayer; @@ -368,7 +372,7 @@ public void cycleRecipe(boolean down) { cacheRecipe(); } - public ItemStack getOutput(boolean oreDict) { + public ItemStack getOutput(EntityPlayer player, boolean oreDict) { if (cache == null) { cacheRecipe(); if (cache == null) { @@ -443,9 +447,10 @@ public ItemStack getOutput(boolean oreDict) { if (fake == null) { fake = MainProxy.getFakePlayer(container); } + EntityPlayer playerToUse = player == null ? fake : player; result = result.copy(); - SlotCrafting craftingSlot = new SlotCrafting(fake, crafter, resultInv, 0, 0, 0); - craftingSlot.onPickupFromSlot(fake, result); + SlotCrafting craftingSlot = new SlotCrafting(playerToUse, crafter, resultInv, 0, 0, 0); + craftingSlot.onPickupFromSlot(playerToUse, result); for (int i = 0; i < 9; i++) { ItemStack left = crafter.getStackInSlot(i); crafter.setInventorySlotContents(i, null); @@ -456,23 +461,25 @@ public ItemStack getOutput(boolean oreDict) { } } } - for (int i = 0; i < fake.inventory.getSizeInventory(); i++) { - ItemStack left = fake.inventory.getStackInSlot(i); - fake.inventory.setInventorySlotContents(i, null); - if (left != null) { - left.stackSize = inv.addCompressed(left, false); - if (left.stackSize > 0) { - ItemIdentifierInventory.dropItems(getWorld(), left, getX(), getY(), getZ()); + if (playerToUse == fake) { + for (int i = 0; i < fake.inventory.getSizeInventory(); i++) { + ItemStack left = fake.inventory.getStackInSlot(i); + fake.inventory.setInventorySlotContents(i, null); + if (left != null) { + left.stackSize = inv.addCompressed(left, false); + if (left.stackSize > 0) { + ItemIdentifierInventory.dropItems(getWorld(), left, getX(), getY(), getZ()); + } } } } return result; } - public ItemStack getResultForClick() { - ItemStack result = getOutput(true); + public ItemStack getResultForClick(EntityPlayer player) { + ItemStack result = getOutput(player, true); if (result == null) { - result = getOutput(false); + result = getOutput(player, false); } if (result == null) { return null; diff --git a/src/main/java/logisticspipes/pipes/PipeFluidProvider.java b/src/main/java/logisticspipes/pipes/PipeFluidProvider.java index 6185fa759..7918d524f 100644 --- a/src/main/java/logisticspipes/pipes/PipeFluidProvider.java +++ b/src/main/java/logisticspipes/pipes/PipeFluidProvider.java @@ -1,7 +1,11 @@ package logisticspipes.pipes; -import java.util.*; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import java.util.Map.Entry; +import java.util.Set; +import java.util.TreeSet; import net.minecraft.item.Item; import net.minecraft.tileentity.TileEntity; diff --git a/src/main/java/logisticspipes/pipes/PipeFluidSatellite.java b/src/main/java/logisticspipes/pipes/PipeFluidSatellite.java index 9315cdaaf..c651ce93b 100644 --- a/src/main/java/logisticspipes/pipes/PipeFluidSatellite.java +++ b/src/main/java/logisticspipes/pipes/PipeFluidSatellite.java @@ -1,6 +1,11 @@ package logisticspipes.pipes; -import java.util.*; +import java.util.Collection; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; +import java.util.LinkedList; +import java.util.Map; import java.util.Map.Entry; import net.minecraft.entity.player.EntityPlayer; diff --git a/src/main/java/logisticspipes/pipes/PipeItemsCraftingLogistics.java b/src/main/java/logisticspipes/pipes/PipeItemsCraftingLogistics.java index 03ef2ae5e..40a3981bd 100644 --- a/src/main/java/logisticspipes/pipes/PipeItemsCraftingLogistics.java +++ b/src/main/java/logisticspipes/pipes/PipeItemsCraftingLogistics.java @@ -4,7 +4,11 @@ */ package logisticspipes.pipes; -import java.util.*; +import java.util.Collection; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import java.util.Set; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; @@ -16,7 +20,11 @@ import logisticspipes.interfaces.IHeadUpDisplayRenderer; import logisticspipes.interfaces.IHeadUpDisplayRendererProvider; import logisticspipes.interfaces.IOrderManagerContentReceiver; -import logisticspipes.interfaces.routing.*; +import logisticspipes.interfaces.routing.IAdditionalTargetInformation; +import logisticspipes.interfaces.routing.ICraftItems; +import logisticspipes.interfaces.routing.IFilter; +import logisticspipes.interfaces.routing.IRequestItems; +import logisticspipes.interfaces.routing.IRequireReliableTransport; import logisticspipes.modules.ModuleCrafter; import logisticspipes.modules.abstractmodules.LogisticsModule.ModulePositionType; import logisticspipes.network.PacketHandler; diff --git a/src/main/java/logisticspipes/pipes/PipeItemsInvSysConnector.java b/src/main/java/logisticspipes/pipes/PipeItemsInvSysConnector.java index eda5eb4fc..cfe3c3f73 100644 --- a/src/main/java/logisticspipes/pipes/PipeItemsInvSysConnector.java +++ b/src/main/java/logisticspipes/pipes/PipeItemsInvSysConnector.java @@ -1,7 +1,16 @@ package logisticspipes.pipes; -import java.util.*; +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashMap; +import java.util.Iterator; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; import java.util.Map.Entry; +import java.util.Set; +import java.util.TreeSet; +import java.util.UUID; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; @@ -34,7 +43,11 @@ import logisticspipes.textures.Textures; import logisticspipes.textures.Textures.TextureType; import logisticspipes.transport.TransportInvConnection; -import logisticspipes.utils.*; +import logisticspipes.utils.AdjacentTile; +import logisticspipes.utils.InventoryHelper; +import logisticspipes.utils.PlayerCollectionList; +import logisticspipes.utils.SidedInventoryMinecraftAdapter; +import logisticspipes.utils.WorldUtil; import logisticspipes.utils.item.ItemIdentifier; import logisticspipes.utils.item.ItemIdentifierInventory; import logisticspipes.utils.item.ItemIdentifierStack; diff --git a/src/main/java/logisticspipes/pipes/PipeItemsProviderLogistics.java b/src/main/java/logisticspipes/pipes/PipeItemsProviderLogistics.java index 6b4d07f14..bc1f7c98b 100644 --- a/src/main/java/logisticspipes/pipes/PipeItemsProviderLogistics.java +++ b/src/main/java/logisticspipes/pipes/PipeItemsProviderLogistics.java @@ -4,8 +4,15 @@ */ package logisticspipes.pipes; -import java.util.*; +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashMap; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; import java.util.Map.Entry; +import java.util.Set; +import java.util.TreeMap; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; @@ -15,7 +22,12 @@ import logisticspipes.LogisticsPipes; import logisticspipes.gui.hud.HUDProvider; -import logisticspipes.interfaces.*; +import logisticspipes.interfaces.IChangeListener; +import logisticspipes.interfaces.IChestContentReceiver; +import logisticspipes.interfaces.IHeadUpDisplayRenderer; +import logisticspipes.interfaces.IHeadUpDisplayRendererProvider; +import logisticspipes.interfaces.IInventoryUtil; +import logisticspipes.interfaces.IOrderManagerContentReceiver; import logisticspipes.interfaces.routing.IAdditionalTargetInformation; import logisticspipes.interfaces.routing.IFilter; import logisticspipes.interfaces.routing.IProvideItems; @@ -51,7 +63,11 @@ import logisticspipes.routing.order.LogisticsOrder; import logisticspipes.textures.Textures; import logisticspipes.textures.Textures.TextureType; -import logisticspipes.utils.*; +import logisticspipes.utils.AdjacentTile; +import logisticspipes.utils.PlayerCollectionList; +import logisticspipes.utils.SidedInventoryMinecraftAdapter; +import logisticspipes.utils.SinkReply; +import logisticspipes.utils.WorldUtil; import logisticspipes.utils.item.ItemIdentifier; import logisticspipes.utils.item.ItemIdentifierInventory; import logisticspipes.utils.item.ItemIdentifierStack; @@ -566,7 +582,9 @@ public void writeToNBT(NBTTagCompound nbttagcompound) { nbttagcompound.setInteger("extractionMode", _extractionMode.ordinal()); } - /** INTERFACE TO PIPE **/ + /** + * INTERFACE TO PIPE + **/ public boolean hasFilter() { return !providingInventory.isEmpty(); } diff --git a/src/main/java/logisticspipes/pipes/PipeItemsSatelliteLogistics.java b/src/main/java/logisticspipes/pipes/PipeItemsSatelliteLogistics.java index 432309192..407228e15 100644 --- a/src/main/java/logisticspipes/pipes/PipeItemsSatelliteLogistics.java +++ b/src/main/java/logisticspipes/pipes/PipeItemsSatelliteLogistics.java @@ -4,7 +4,12 @@ */ package logisticspipes.pipes; -import java.util.*; +import java.util.Collection; +import java.util.Collections; +import java.util.Iterator; +import java.util.LinkedList; +import java.util.Set; +import java.util.WeakHashMap; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; diff --git a/src/main/java/logisticspipes/pipes/PipeLogisticsChassi.java b/src/main/java/logisticspipes/pipes/PipeLogisticsChassi.java index b78abc21d..64015ee7a 100644 --- a/src/main/java/logisticspipes/pipes/PipeLogisticsChassi.java +++ b/src/main/java/logisticspipes/pipes/PipeLogisticsChassi.java @@ -4,7 +4,13 @@ */ package logisticspipes.pipes; -import java.util.*; +import java.util.ArrayList; +import java.util.Collection; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.TreeSet; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; @@ -22,8 +28,20 @@ import logisticspipes.config.Configs; import logisticspipes.gui.GuiChassiPipe; import logisticspipes.gui.hud.HudChassisPipe; -import logisticspipes.interfaces.*; -import logisticspipes.interfaces.routing.*; +import logisticspipes.interfaces.IBufferItems; +import logisticspipes.interfaces.IHeadUpDisplayRenderer; +import logisticspipes.interfaces.IHeadUpDisplayRendererProvider; +import logisticspipes.interfaces.IInventoryUtil; +import logisticspipes.interfaces.ILegacyActiveModule; +import logisticspipes.interfaces.ISendQueueContentRecieiver; +import logisticspipes.interfaces.ISendRoutedItem; +import logisticspipes.interfaces.ISlotUpgradeManager; +import logisticspipes.interfaces.routing.IAdditionalTargetInformation; +import logisticspipes.interfaces.routing.ICraftItems; +import logisticspipes.interfaces.routing.IFilter; +import logisticspipes.interfaces.routing.IProvideItems; +import logisticspipes.interfaces.routing.IRequestItems; +import logisticspipes.interfaces.routing.IRequireReliableTransport; import logisticspipes.items.ItemModule; import logisticspipes.logisticspipes.ChassiTransportLayer; import logisticspipes.logisticspipes.ItemModuleInformationManager; @@ -686,7 +704,9 @@ public Integer getChassieSize() { public abstract ResourceLocation getChassiGUITexture(); - /** ICraftItems */ + /** + * ICraftItems + */ public final LinkedList _extras = new LinkedList<>(); @Override diff --git a/src/main/java/logisticspipes/pipes/basic/CoreRoutedPipe.java b/src/main/java/logisticspipes/pipes/basic/CoreRoutedPipe.java index c532959f7..235bb2ea4 100644 --- a/src/main/java/logisticspipes/pipes/basic/CoreRoutedPipe.java +++ b/src/main/java/logisticspipes/pipes/basic/CoreRoutedPipe.java @@ -5,8 +5,19 @@ package logisticspipes.pipes.basic; import java.io.IOException; -import java.util.*; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.BitSet; +import java.util.Collections; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; import java.util.Map.Entry; +import java.util.Queue; +import java.util.Random; +import java.util.Set; +import java.util.TreeMap; +import java.util.UUID; import java.util.concurrent.PriorityBlockingQueue; import net.minecraft.client.Minecraft; @@ -29,15 +40,39 @@ import logisticspipes.asm.te.ILPTEInformation; import logisticspipes.blocks.LogisticsSecurityTileEntity; import logisticspipes.config.Configs; -import logisticspipes.interfaces.*; -import logisticspipes.interfaces.routing.*; +import logisticspipes.interfaces.IClientState; +import logisticspipes.interfaces.IInventoryUtil; +import logisticspipes.interfaces.ILPPositionProvider; +import logisticspipes.interfaces.IPipeServiceProvider; +import logisticspipes.interfaces.IPipeUpgradeManager; +import logisticspipes.interfaces.IQueueCCEvent; +import logisticspipes.interfaces.ISecurityProvider; +import logisticspipes.interfaces.ISlotUpgradeManager; +import logisticspipes.interfaces.ISubSystemPowerProvider; +import logisticspipes.interfaces.IWatchingHandler; +import logisticspipes.interfaces.IWorldProvider; +import logisticspipes.interfaces.routing.IAdditionalTargetInformation; +import logisticspipes.interfaces.routing.IFilter; +import logisticspipes.interfaces.routing.IRequestItems; +import logisticspipes.interfaces.routing.IRequireReliableFluidTransport; +import logisticspipes.interfaces.routing.IRequireReliableTransport; import logisticspipes.items.ItemPipeSignCreator; -import logisticspipes.logisticspipes.*; +import logisticspipes.logisticspipes.ExtractionMode; +import logisticspipes.logisticspipes.IAdjacentWorldAccess; +import logisticspipes.logisticspipes.IRoutedItem; import logisticspipes.logisticspipes.IRoutedItem.TransportMode; +import logisticspipes.logisticspipes.ITrackStatistics; +import logisticspipes.logisticspipes.PipeTransportLayer; +import logisticspipes.logisticspipes.RouteLayer; +import logisticspipes.logisticspipes.TransportLayer; import logisticspipes.modules.abstractmodules.LogisticsGuiModule; import logisticspipes.modules.abstractmodules.LogisticsModule; import logisticspipes.modules.abstractmodules.LogisticsModule.ModulePositionType; -import logisticspipes.network.*; +import logisticspipes.network.GuiIDs; +import logisticspipes.network.LPDataInputStream; +import logisticspipes.network.LPDataOutputStream; +import logisticspipes.network.NewGuiHandler; +import logisticspipes.network.PacketHandler; import logisticspipes.network.abstractpackets.ModernPacket; import logisticspipes.network.guis.pipe.PipeController; import logisticspipes.network.packets.pipe.ParticleFX; @@ -70,7 +105,15 @@ import logisticspipes.textures.Textures.TextureType; import logisticspipes.transport.LPTravelingItem.LPTravelingItemServer; import logisticspipes.transport.PipeTransportLogistics; -import logisticspipes.utils.*; +import logisticspipes.utils.AdjacentTile; +import logisticspipes.utils.CacheHolder; +import logisticspipes.utils.FluidIdentifier; +import logisticspipes.utils.InventoryHelper; +import logisticspipes.utils.OrientationsUtil; +import logisticspipes.utils.PlayerCollectionList; +import logisticspipes.utils.SidedInventoryMinecraftAdapter; +import logisticspipes.utils.SinkReply; +import logisticspipes.utils.WorldUtil; import logisticspipes.utils.item.ItemIdentifier; import logisticspipes.utils.item.ItemIdentifierStack; import logisticspipes.utils.tuples.LPPosition; diff --git a/src/main/java/logisticspipes/pipes/basic/LogisticsBlockGenericPipe.java b/src/main/java/logisticspipes/pipes/basic/LogisticsBlockGenericPipe.java index 2102d4269..052bd15dc 100644 --- a/src/main/java/logisticspipes/pipes/basic/LogisticsBlockGenericPipe.java +++ b/src/main/java/logisticspipes/pipes/basic/LogisticsBlockGenericPipe.java @@ -1,6 +1,11 @@ package logisticspipes.pipes.basic; -import java.util.*; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Random; import java.util.concurrent.Callable; import net.minecraft.block.Block; diff --git a/src/main/java/logisticspipes/pipes/basic/LogisticsTileGenericPipe.java b/src/main/java/logisticspipes/pipes/basic/LogisticsTileGenericPipe.java index fce1360ad..430160346 100644 --- a/src/main/java/logisticspipes/pipes/basic/LogisticsTileGenericPipe.java +++ b/src/main/java/logisticspipes/pipes/basic/LogisticsTileGenericPipe.java @@ -34,7 +34,11 @@ import cpw.mods.fml.relauncher.SideOnly; import li.cil.oc.api.machine.Arguments; import li.cil.oc.api.machine.Context; -import li.cil.oc.api.network.*; +import li.cil.oc.api.network.Environment; +import li.cil.oc.api.network.ManagedPeripheral; +import li.cil.oc.api.network.Message; +import li.cil.oc.api.network.Node; +import li.cil.oc.api.network.SidedEnvironment; import logisticspipes.LPConstants; import logisticspipes.LogisticsPipes; import logisticspipes.api.ILPPipe; @@ -63,8 +67,12 @@ import logisticspipes.renderer.state.PipeRenderState; import logisticspipes.routing.pathfinder.IPipeInformationProvider; import logisticspipes.transport.LPTravelingItem; -import logisticspipes.utils.*; +import logisticspipes.utils.AdjacentTile; +import logisticspipes.utils.OrientationsUtil; +import logisticspipes.utils.StackTraceUtil; import logisticspipes.utils.StackTraceUtil.Info; +import logisticspipes.utils.TileBuffer; +import logisticspipes.utils.WorldUtil; import logisticspipes.utils.item.ItemIdentifier; import logisticspipes.utils.tuples.LPPosition; import lombok.Getter; diff --git a/src/main/java/logisticspipes/pipes/basic/debug/LogWindow.java b/src/main/java/logisticspipes/pipes/basic/debug/LogWindow.java index 643148fbd..528735469 100644 --- a/src/main/java/logisticspipes/pipes/basic/debug/LogWindow.java +++ b/src/main/java/logisticspipes/pipes/basic/debug/LogWindow.java @@ -1,13 +1,19 @@ package logisticspipes.pipes.basic.debug; -import java.awt.*; +import java.awt.BorderLayout; +import java.awt.GridLayout; import java.awt.event.KeyEvent; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; -import javax.swing.*; +import javax.swing.JFrame; +import javax.swing.JPanel; +import javax.swing.JScrollPane; +import javax.swing.JTabbedPane; +import javax.swing.JTextPane; +import javax.swing.JTree; import javax.swing.text.BadLocationException; import javax.swing.text.Document; import javax.swing.text.SimpleAttributeSet; diff --git a/src/main/java/logisticspipes/pipes/signs/ItemAmountPipeSign.java b/src/main/java/logisticspipes/pipes/signs/ItemAmountPipeSign.java index f445e0c36..0c8564bc9 100644 --- a/src/main/java/logisticspipes/pipes/signs/ItemAmountPipeSign.java +++ b/src/main/java/logisticspipes/pipes/signs/ItemAmountPipeSign.java @@ -121,8 +121,8 @@ public void updateServerSide() { } private void spread(Map availableItems, BitSet set) { // Improve performance by updating a - // wall of Amount pipe signs all at - // once + // wall of Amount pipe signs all at + // once IRouter router = pipe.getRouter(); if (set.get(router.getSimpleID())) return; set.set(router.getSimpleID()); diff --git a/src/main/java/logisticspipes/proxy/ProxyManager.java b/src/main/java/logisticspipes/proxy/ProxyManager.java index 21f6ab961..91d1705a3 100644 --- a/src/main/java/logisticspipes/proxy/ProxyManager.java +++ b/src/main/java/logisticspipes/proxy/ProxyManager.java @@ -2,7 +2,11 @@ import java.io.IOException; import java.io.InputStream; -import java.util.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Locale; +import java.util.Map; import net.minecraft.block.Block; import net.minecraft.client.gui.GuiScreen; @@ -34,7 +38,14 @@ import logisticspipes.proxy.bs.BetterStorageProxy; import logisticspipes.proxy.bs.ICrateStorageProxy; import logisticspipes.proxy.buildcraft.BuildCraftProxy; -import logisticspipes.proxy.buildcraft.subproxies.*; +import logisticspipes.proxy.buildcraft.subproxies.IBCClickResult; +import logisticspipes.proxy.buildcraft.subproxies.IBCPipePart; +import logisticspipes.proxy.buildcraft.subproxies.IBCPipePluggable; +import logisticspipes.proxy.buildcraft.subproxies.IBCPluggableState; +import logisticspipes.proxy.buildcraft.subproxies.IBCRenderState; +import logisticspipes.proxy.buildcraft.subproxies.IBCRenderTESR; +import logisticspipes.proxy.buildcraft.subproxies.IBCTilePart; +import logisticspipes.proxy.buildcraft.subproxies.IConnectionOverrideResult; import logisticspipes.proxy.cc.CCProxy; import logisticspipes.proxy.ccl.CCLProxy; import logisticspipes.proxy.cofh.CoFHPowerProxy; @@ -48,9 +59,34 @@ import logisticspipes.proxy.forestry.ForestryProxy; import logisticspipes.proxy.ic.IronChestProxy; import logisticspipes.proxy.ic2.IC2Proxy; -import logisticspipes.proxy.interfaces.*; +import logisticspipes.proxy.interfaces.IBCProxy; +import logisticspipes.proxy.interfaces.IBetterStorageProxy; +import logisticspipes.proxy.interfaces.IBinnieProxy; +import logisticspipes.proxy.interfaces.ICCLProxy; +import logisticspipes.proxy.interfaces.ICCProxy; +import logisticspipes.proxy.interfaces.ICoFHPowerProxy; +import logisticspipes.proxy.interfaces.ICraftingParts; +import logisticspipes.proxy.interfaces.ICraftingRecipeProvider; +import logisticspipes.proxy.interfaces.IEnderIOProxy; +import logisticspipes.proxy.interfaces.IEnderStorageProxy; +import logisticspipes.proxy.interfaces.IExtraCellsProxy; +import logisticspipes.proxy.interfaces.IFactorizationProxy; +import logisticspipes.proxy.interfaces.IForestryProxy; +import logisticspipes.proxy.interfaces.IIC2Proxy; +import logisticspipes.proxy.interfaces.IIronChestProxy; +import logisticspipes.proxy.interfaces.INEIProxy; +import logisticspipes.proxy.interfaces.IOpenComputersProxy; +import logisticspipes.proxy.interfaces.IThaumCraftProxy; +import logisticspipes.proxy.interfaces.IThermalExpansionProxy; +import logisticspipes.proxy.interfaces.IToolWrenchProxy; import logisticspipes.proxy.nei.NEIProxy; -import logisticspipes.proxy.object3d.interfaces.*; +import logisticspipes.proxy.object3d.interfaces.I3DOperation; +import logisticspipes.proxy.object3d.interfaces.IBounds; +import logisticspipes.proxy.object3d.interfaces.IIconTransformation; +import logisticspipes.proxy.object3d.interfaces.IModel3D; +import logisticspipes.proxy.object3d.interfaces.IRenderState; +import logisticspipes.proxy.object3d.interfaces.ITranslation; +import logisticspipes.proxy.object3d.interfaces.IVec3; import logisticspipes.proxy.object3d.operation.LPScale; import logisticspipes.proxy.opencomputers.IOCTile; import logisticspipes.proxy.opencomputers.OpenComputersProxy; diff --git a/src/main/java/logisticspipes/proxy/SimpleServiceLocator.java b/src/main/java/logisticspipes/proxy/SimpleServiceLocator.java index 92d79a717..94b510ae0 100644 --- a/src/main/java/logisticspipes/proxy/SimpleServiceLocator.java +++ b/src/main/java/logisticspipes/proxy/SimpleServiceLocator.java @@ -10,7 +10,25 @@ import logisticspipes.interfaces.routing.IDirectConnectionManager; import logisticspipes.logistics.ILogisticsFluidManager; import logisticspipes.logistics.ILogisticsManager; -import logisticspipes.proxy.interfaces.*; +import logisticspipes.proxy.interfaces.IBCProxy; +import logisticspipes.proxy.interfaces.IBetterStorageProxy; +import logisticspipes.proxy.interfaces.IBinnieProxy; +import logisticspipes.proxy.interfaces.ICCLProxy; +import logisticspipes.proxy.interfaces.ICCProxy; +import logisticspipes.proxy.interfaces.ICoFHPowerProxy; +import logisticspipes.proxy.interfaces.ICraftingRecipeProvider; +import logisticspipes.proxy.interfaces.IEnderIOProxy; +import logisticspipes.proxy.interfaces.IEnderStorageProxy; +import logisticspipes.proxy.interfaces.IExtraCellsProxy; +import logisticspipes.proxy.interfaces.IFactorizationProxy; +import logisticspipes.proxy.interfaces.IForestryProxy; +import logisticspipes.proxy.interfaces.IIC2Proxy; +import logisticspipes.proxy.interfaces.IIronChestProxy; +import logisticspipes.proxy.interfaces.INEIProxy; +import logisticspipes.proxy.interfaces.IOpenComputersProxy; +import logisticspipes.proxy.interfaces.IThaumCraftProxy; +import logisticspipes.proxy.interfaces.IThermalExpansionProxy; +import logisticspipes.proxy.interfaces.IToolWrenchProxy; import logisticspipes.proxy.progressprovider.MachineProgressProvider; import logisticspipes.proxy.specialconnection.SpecialPipeConnection; import logisticspipes.proxy.specialconnection.SpecialTileConnection; diff --git a/src/main/java/logisticspipes/proxy/SpecialInventoryHandlerManager.java b/src/main/java/logisticspipes/proxy/SpecialInventoryHandlerManager.java index 75ec71139..75cb60ea4 100644 --- a/src/main/java/logisticspipes/proxy/SpecialInventoryHandlerManager.java +++ b/src/main/java/logisticspipes/proxy/SpecialInventoryHandlerManager.java @@ -1,7 +1,12 @@ package logisticspipes.proxy; import cpw.mods.fml.common.Loader; -import logisticspipes.proxy.specialinventoryhandler.*; +import logisticspipes.proxy.specialinventoryhandler.AEInterfaceInventoryHandler; +import logisticspipes.proxy.specialinventoryhandler.BarrelInventoryHandler; +import logisticspipes.proxy.specialinventoryhandler.CrateInventoryHandler; +import logisticspipes.proxy.specialinventoryhandler.DSUInventoryHandler; +import logisticspipes.proxy.specialinventoryhandler.JABBAInventoryHandler; +import logisticspipes.proxy.specialinventoryhandler.StorageDrawersInventoryHandler; public class SpecialInventoryHandlerManager { diff --git a/src/main/java/logisticspipes/proxy/buildcraft/BCPipeInformationProvider.java b/src/main/java/logisticspipes/proxy/buildcraft/BCPipeInformationProvider.java index b76ece601..3110be68c 100644 --- a/src/main/java/logisticspipes/proxy/buildcraft/BCPipeInformationProvider.java +++ b/src/main/java/logisticspipes/proxy/buildcraft/BCPipeInformationProvider.java @@ -8,7 +8,12 @@ import buildcraft.core.CoreConstants; import buildcraft.core.lib.TileBuffer; -import buildcraft.transport.*; +import buildcraft.transport.BlockGenericPipe; +import buildcraft.transport.PipeTransportFluids; +import buildcraft.transport.PipeTransportItems; +import buildcraft.transport.PipeTransportPower; +import buildcraft.transport.TileGenericPipe; +import buildcraft.transport.TravelingItem; import buildcraft.transport.pipes.PipeItemsDiamond; import buildcraft.transport.pipes.PipeItemsIron; import buildcraft.transport.pipes.PipeItemsObsidian; diff --git a/src/main/java/logisticspipes/proxy/buildcraft/BuildCraftProxy.java b/src/main/java/logisticspipes/proxy/buildcraft/BuildCraftProxy.java index ec30b14ea..e10809869 100644 --- a/src/main/java/logisticspipes/proxy/buildcraft/BuildCraftProxy.java +++ b/src/main/java/logisticspipes/proxy/buildcraft/BuildCraftProxy.java @@ -35,7 +35,14 @@ import buildcraft.robotics.EntityRobot; import buildcraft.robotics.ItemRobot; import buildcraft.robotics.RobotStationPluggable; -import buildcraft.transport.*; +import buildcraft.transport.BlockGenericPipe; +import buildcraft.transport.ItemGateCopier; +import buildcraft.transport.ItemPipe; +import buildcraft.transport.Pipe; +import buildcraft.transport.PipeEventBus; +import buildcraft.transport.PipeTransportFluids; +import buildcraft.transport.PipeTransportItems; +import buildcraft.transport.TileGenericPipe; import buildcraft.transport.render.PipeRendererTESR; import buildcraft.transport.render.PipeTransportItemsRenderer; import buildcraft.transport.render.PipeTransportRenderer; @@ -47,12 +54,25 @@ import logisticspipes.proxy.MainProxy; import logisticspipes.proxy.SimpleServiceLocator; import logisticspipes.proxy.VersionNotSupportedException; -import logisticspipes.proxy.buildcraft.gates.*; +import logisticspipes.proxy.buildcraft.gates.ActionDisableLogistics; +import logisticspipes.proxy.buildcraft.gates.ActionRobotRoutingLogistics; +import logisticspipes.proxy.buildcraft.gates.LogisticsActionProvider; +import logisticspipes.proxy.buildcraft.gates.LogisticsTriggerProvider; +import logisticspipes.proxy.buildcraft.gates.TriggerCrafting; +import logisticspipes.proxy.buildcraft.gates.TriggerHasDestination; +import logisticspipes.proxy.buildcraft.gates.TriggerNeedsPower; +import logisticspipes.proxy.buildcraft.gates.TriggerSupplierFailed; import logisticspipes.proxy.buildcraft.recipeprovider.AssemblyTable; import logisticspipes.proxy.buildcraft.robots.LPRobotConnectionControl; import logisticspipes.proxy.buildcraft.robots.boards.LogisticsRoutingBoardRobot; import logisticspipes.proxy.buildcraft.robots.boards.LogisticsRoutingBoardRobotNBT; -import logisticspipes.proxy.buildcraft.subproxies.*; +import logisticspipes.proxy.buildcraft.subproxies.IBCClickResult; +import logisticspipes.proxy.buildcraft.subproxies.IBCRenderTESR; +import logisticspipes.proxy.buildcraft.subproxies.IBCTilePart; +import logisticspipes.proxy.buildcraft.subproxies.IConnectionOverrideResult; +import logisticspipes.proxy.buildcraft.subproxies.LPBCPipe; +import logisticspipes.proxy.buildcraft.subproxies.LPBCPipeTransportsItems; +import logisticspipes.proxy.buildcraft.subproxies.LPBCTileGenericPipe; import logisticspipes.proxy.interfaces.IBCProxy; import logisticspipes.proxy.interfaces.ICraftingParts; import logisticspipes.proxy.interfaces.ICraftingRecipeProvider; @@ -385,8 +405,8 @@ public IBCClickResult handleBCClickOnPipe(World world, int x, int y, int z, Enti .onBlockActivated(world, x, y, z, player, side, xOffset, yOffset, zOffset); world.notifyBlocksOfNeighborChange(x, y, z, LogisticsPipes.LogisticsPipeBlock); // Again because not all changes - // have been applied before the - // call inside + // have been applied before the + // call inside // the BC method is made. boolean block = false; if (!result) { diff --git a/src/main/java/logisticspipes/proxy/buildcraft/gates/LPTrigger.java b/src/main/java/logisticspipes/proxy/buildcraft/gates/LPTrigger.java index 1a4570bd8..4a635f3fd 100644 --- a/src/main/java/logisticspipes/proxy/buildcraft/gates/LPTrigger.java +++ b/src/main/java/logisticspipes/proxy/buildcraft/gates/LPTrigger.java @@ -3,7 +3,11 @@ import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.util.IIcon; -import buildcraft.api.statements.*; +import buildcraft.api.statements.IStatement; +import buildcraft.api.statements.IStatementContainer; +import buildcraft.api.statements.IStatementParameter; +import buildcraft.api.statements.StatementManager; +import buildcraft.api.statements.StatementParameterItemStack; import buildcraft.transport.Pipe; import buildcraft.transport.TileGenericPipe; import logisticspipes.textures.Textures; diff --git a/src/main/java/logisticspipes/proxy/buildcraft/robots/LPRobotConnectionControl.java b/src/main/java/logisticspipes/proxy/buildcraft/robots/LPRobotConnectionControl.java index 5100f45a3..963d23dbd 100644 --- a/src/main/java/logisticspipes/proxy/buildcraft/robots/LPRobotConnectionControl.java +++ b/src/main/java/logisticspipes/proxy/buildcraft/robots/LPRobotConnectionControl.java @@ -1,6 +1,12 @@ package logisticspipes.proxy.buildcraft.robots; -import java.util.*; +import java.util.ArrayList; +import java.util.EnumSet; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.WeakHashMap; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; diff --git a/src/main/java/logisticspipes/proxy/buildcraft/robots/ai/ItemInsertionAIRobot.java b/src/main/java/logisticspipes/proxy/buildcraft/robots/ai/ItemInsertionAIRobot.java index 2b7124747..aead48297 100644 --- a/src/main/java/logisticspipes/proxy/buildcraft/robots/ai/ItemInsertionAIRobot.java +++ b/src/main/java/logisticspipes/proxy/buildcraft/robots/ai/ItemInsertionAIRobot.java @@ -52,7 +52,7 @@ public void update() { robotInv.getMultipleItems( item.getItemIdentifierStack().getItem(), item.getItemIdentifierStack().getStackSize()); // We clear the Inv at the end so we don't care - // if this fails + // if this fails iter.remove(); } else { terminate(); diff --git a/src/main/java/logisticspipes/proxy/buildcraft/subproxies/LPBCTileGenericPipe.java b/src/main/java/logisticspipes/proxy/buildcraft/subproxies/LPBCTileGenericPipe.java index 3c9a3e852..e4a75d67d 100644 --- a/src/main/java/logisticspipes/proxy/buildcraft/subproxies/LPBCTileGenericPipe.java +++ b/src/main/java/logisticspipes/proxy/buildcraft/subproxies/LPBCTileGenericPipe.java @@ -1,7 +1,11 @@ package logisticspipes.proxy.buildcraft.subproxies; import java.lang.reflect.InvocationTargetException; -import java.util.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.ListIterator; +import java.util.Map; import net.minecraft.block.Block; import net.minecraft.client.renderer.RenderBlocks; diff --git a/src/main/java/logisticspipes/proxy/ccl/CCLProxy.java b/src/main/java/logisticspipes/proxy/ccl/CCLProxy.java index da00bd329..ed3c469ec 100644 --- a/src/main/java/logisticspipes/proxy/ccl/CCLProxy.java +++ b/src/main/java/logisticspipes/proxy/ccl/CCLProxy.java @@ -12,12 +12,25 @@ import codechicken.lib.render.CCModel; import codechicken.lib.render.CCRenderState; -import codechicken.lib.render.uv.*; -import codechicken.lib.vec.*; +import codechicken.lib.render.uv.IconTransformation; +import codechicken.lib.render.uv.UVScale; +import codechicken.lib.render.uv.UVTransformation; +import codechicken.lib.render.uv.UVTransformationList; +import codechicken.lib.render.uv.UVTranslation; +import codechicken.lib.vec.Rotation; +import codechicken.lib.vec.Scale; +import codechicken.lib.vec.Transformation; +import codechicken.lib.vec.Translation; +import codechicken.lib.vec.Vector3; import logisticspipes.proxy.DontLoadProxy; import logisticspipes.proxy.SimpleServiceLocator; import logisticspipes.proxy.interfaces.ICCLProxy; -import logisticspipes.proxy.object3d.interfaces.*; +import logisticspipes.proxy.object3d.interfaces.I3DOperation; +import logisticspipes.proxy.object3d.interfaces.IIconTransformation; +import logisticspipes.proxy.object3d.interfaces.IModel3D; +import logisticspipes.proxy.object3d.interfaces.IRenderState; +import logisticspipes.proxy.object3d.interfaces.ITranslation; +import logisticspipes.proxy.object3d.interfaces.IVec3; import logisticspipes.proxy.object3d.operation.LPScale; public class CCLProxy implements ICCLProxy { diff --git a/src/main/java/logisticspipes/proxy/cofhccl/CoFHCCLProxy.java b/src/main/java/logisticspipes/proxy/cofhccl/CoFHCCLProxy.java index 6312842d8..8cc45b757 100644 --- a/src/main/java/logisticspipes/proxy/cofhccl/CoFHCCLProxy.java +++ b/src/main/java/logisticspipes/proxy/cofhccl/CoFHCCLProxy.java @@ -12,12 +12,25 @@ import cofh.repack.codechicken.lib.render.CCModel; import cofh.repack.codechicken.lib.render.CCRenderState; -import cofh.repack.codechicken.lib.render.uv.*; -import cofh.repack.codechicken.lib.vec.*; +import cofh.repack.codechicken.lib.render.uv.IconTransformation; +import cofh.repack.codechicken.lib.render.uv.UVScale; +import cofh.repack.codechicken.lib.render.uv.UVTransformation; +import cofh.repack.codechicken.lib.render.uv.UVTransformationList; +import cofh.repack.codechicken.lib.render.uv.UVTranslation; +import cofh.repack.codechicken.lib.vec.Rotation; +import cofh.repack.codechicken.lib.vec.Scale; +import cofh.repack.codechicken.lib.vec.Transformation; +import cofh.repack.codechicken.lib.vec.Translation; +import cofh.repack.codechicken.lib.vec.Vector3; import logisticspipes.proxy.DontLoadProxy; import logisticspipes.proxy.SimpleServiceLocator; import logisticspipes.proxy.interfaces.ICCLProxy; -import logisticspipes.proxy.object3d.interfaces.*; +import logisticspipes.proxy.object3d.interfaces.I3DOperation; +import logisticspipes.proxy.object3d.interfaces.IIconTransformation; +import logisticspipes.proxy.object3d.interfaces.IModel3D; +import logisticspipes.proxy.object3d.interfaces.IRenderState; +import logisticspipes.proxy.object3d.interfaces.ITranslation; +import logisticspipes.proxy.object3d.interfaces.IVec3; import logisticspipes.proxy.object3d.operation.LPScale; public class CoFHCCLProxy implements ICCLProxy { diff --git a/src/main/java/logisticspipes/proxy/computers/wrapper/CCObjectWrapper.java b/src/main/java/logisticspipes/proxy/computers/wrapper/CCObjectWrapper.java index db6fa4d61..7eec434ae 100644 --- a/src/main/java/logisticspipes/proxy/computers/wrapper/CCObjectWrapper.java +++ b/src/main/java/logisticspipes/proxy/computers/wrapper/CCObjectWrapper.java @@ -8,8 +8,21 @@ import net.minecraft.nbt.NBTBase; -import logisticspipes.proxy.computers.interfaces.*; -import logisticspipes.proxy.computers.objects.*; +import logisticspipes.proxy.computers.interfaces.CCCommand; +import logisticspipes.proxy.computers.interfaces.CCQueued; +import logisticspipes.proxy.computers.interfaces.CCSecurtiyCheck; +import logisticspipes.proxy.computers.interfaces.CCType; +import logisticspipes.proxy.computers.interfaces.ILPCCTypeDefinition; +import logisticspipes.proxy.computers.interfaces.ILPCCTypeHolder; +import logisticspipes.proxy.computers.objects.CCFilterInventory; +import logisticspipes.proxy.computers.objects.CCFluidIdentifier; +import logisticspipes.proxy.computers.objects.CCItemIdentifier; +import logisticspipes.proxy.computers.objects.CCItemIdentifierInventory; +import logisticspipes.proxy.computers.objects.CCItemIdentifierStack; +import logisticspipes.proxy.computers.objects.CCPair; +import logisticspipes.proxy.computers.objects.CCQuartet; +import logisticspipes.proxy.computers.objects.CCResource; +import logisticspipes.proxy.computers.objects.CCTriplet; import logisticspipes.request.resources.IResource; import logisticspipes.utils.FluidIdentifier; import logisticspipes.utils.item.ItemIdentifier; diff --git a/src/main/java/logisticspipes/proxy/interfaces/IBCProxy.java b/src/main/java/logisticspipes/proxy/interfaces/IBCProxy.java index 752c8bdaf..773df58dd 100644 --- a/src/main/java/logisticspipes/proxy/interfaces/IBCProxy.java +++ b/src/main/java/logisticspipes/proxy/interfaces/IBCProxy.java @@ -29,7 +29,9 @@ public interface IBCProxy { IConnectionOverrideResult checkConnectionOverride(TileEntity with, ForgeDirection side, LogisticsTileGenericPipe pipe); - /** Only used by the BC proxy internaly */ + /** + * Only used by the BC proxy internaly + */ boolean canPipeConnect(TileEntity pipe, TileEntity tile, ForgeDirection direction); boolean isActive(); diff --git a/src/main/java/logisticspipes/proxy/interfaces/ICCLProxy.java b/src/main/java/logisticspipes/proxy/interfaces/ICCLProxy.java index 61b53eb7d..f52756ced 100644 --- a/src/main/java/logisticspipes/proxy/interfaces/ICCLProxy.java +++ b/src/main/java/logisticspipes/proxy/interfaces/ICCLProxy.java @@ -6,7 +6,12 @@ import net.minecraft.util.IIcon; -import logisticspipes.proxy.object3d.interfaces.*; +import logisticspipes.proxy.object3d.interfaces.I3DOperation; +import logisticspipes.proxy.object3d.interfaces.IIconTransformation; +import logisticspipes.proxy.object3d.interfaces.IModel3D; +import logisticspipes.proxy.object3d.interfaces.IRenderState; +import logisticspipes.proxy.object3d.interfaces.ITranslation; +import logisticspipes.proxy.object3d.interfaces.IVec3; import logisticspipes.proxy.object3d.operation.LPScale; public interface ICCLProxy { diff --git a/src/main/java/logisticspipes/proxy/opencomputers/asm/ClassCreator.java b/src/main/java/logisticspipes/proxy/opencomputers/asm/ClassCreator.java index 263055481..37b2e9eae 100644 --- a/src/main/java/logisticspipes/proxy/opencomputers/asm/ClassCreator.java +++ b/src/main/java/logisticspipes/proxy/opencomputers/asm/ClassCreator.java @@ -7,7 +7,11 @@ import net.minecraft.launchwrapper.Launch; -import org.objectweb.asm.*; +import org.objectweb.asm.AnnotationVisitor; +import org.objectweb.asm.ClassWriter; +import org.objectweb.asm.Label; +import org.objectweb.asm.MethodVisitor; +import org.objectweb.asm.Opcodes; import logisticspipes.proxy.computers.wrapper.CCWrapperInformation; import logisticspipes.utils.tuples.Pair; diff --git a/src/main/java/logisticspipes/proxy/side/ClientProxy.java b/src/main/java/logisticspipes/proxy/side/ClientProxy.java index 3ea08c46d..e69265cdf 100644 --- a/src/main/java/logisticspipes/proxy/side/ClientProxy.java +++ b/src/main/java/logisticspipes/proxy/side/ClientProxy.java @@ -54,7 +54,15 @@ import logisticspipes.network.packets.pipe.MostLikelyRecipeComponentsResponse; import logisticspipes.pipefxhandlers.Particles; import logisticspipes.pipefxhandlers.PipeFXRenderHandler; -import logisticspipes.pipefxhandlers.providers.*; +import logisticspipes.pipefxhandlers.providers.EntityBlueSparkleFXProvider; +import logisticspipes.pipefxhandlers.providers.EntityGoldSparkleFXProvider; +import logisticspipes.pipefxhandlers.providers.EntityGreenSparkleFXProvider; +import logisticspipes.pipefxhandlers.providers.EntityLightGreenSparkleFXProvider; +import logisticspipes.pipefxhandlers.providers.EntityLightRedSparkleFXProvider; +import logisticspipes.pipefxhandlers.providers.EntityOrangeSparkleFXProvider; +import logisticspipes.pipefxhandlers.providers.EntityRedSparkleFXProvider; +import logisticspipes.pipefxhandlers.providers.EntityVioletSparkleFXProvider; +import logisticspipes.pipefxhandlers.providers.EntityWhiteSparkleFXProvider; import logisticspipes.pipes.basic.CoreUnroutedPipe; import logisticspipes.pipes.basic.LogisticsTileGenericPipe; import logisticspipes.proxy.MainProxy; diff --git a/src/main/java/logisticspipes/proxy/specialconnection/EnderIOTransceiverConnection.java b/src/main/java/logisticspipes/proxy/specialconnection/EnderIOTransceiverConnection.java index b7969a0b4..6c88f90af 100644 --- a/src/main/java/logisticspipes/proxy/specialconnection/EnderIOTransceiverConnection.java +++ b/src/main/java/logisticspipes/proxy/specialconnection/EnderIOTransceiverConnection.java @@ -1,6 +1,10 @@ package logisticspipes.proxy.specialconnection; -import java.util.*; +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashSet; +import java.util.List; +import java.util.Set; import net.minecraft.tileentity.TileEntity; import net.minecraftforge.common.util.ForgeDirection; diff --git a/src/main/java/logisticspipes/proxy/specialconnection/TeleportPipes.java b/src/main/java/logisticspipes/proxy/specialconnection/TeleportPipes.java index f2228822a..a0bd37587 100644 --- a/src/main/java/logisticspipes/proxy/specialconnection/TeleportPipes.java +++ b/src/main/java/logisticspipes/proxy/specialconnection/TeleportPipes.java @@ -17,7 +17,9 @@ import logisticspipes.routing.PipeRoutingConnectionType; import logisticspipes.routing.pathfinder.IPipeInformationProvider; -/** Support for teleport pipes **/ +/** + * Support for teleport pipes + **/ public class TeleportPipes implements ISpecialPipedConnection { private static Class PipeItemTeleport; diff --git a/src/main/java/logisticspipes/proxy/specialinventoryhandler/AEInterfaceInventoryHandler.java b/src/main/java/logisticspipes/proxy/specialinventoryhandler/AEInterfaceInventoryHandler.java index 497b3e83a..07112111d 100644 --- a/src/main/java/logisticspipes/proxy/specialinventoryhandler/AEInterfaceInventoryHandler.java +++ b/src/main/java/logisticspipes/proxy/specialinventoryhandler/AEInterfaceInventoryHandler.java @@ -1,7 +1,12 @@ package logisticspipes.proxy.specialinventoryhandler; -import java.util.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.LinkedHashMap; +import java.util.Map; import java.util.Map.Entry; +import java.util.Set; +import java.util.TreeSet; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; diff --git a/src/main/java/logisticspipes/proxy/specialinventoryhandler/CrateInventoryHandler.java b/src/main/java/logisticspipes/proxy/specialinventoryhandler/CrateInventoryHandler.java index 4774c1d92..dffb3fd50 100644 --- a/src/main/java/logisticspipes/proxy/specialinventoryhandler/CrateInventoryHandler.java +++ b/src/main/java/logisticspipes/proxy/specialinventoryhandler/CrateInventoryHandler.java @@ -1,7 +1,11 @@ package logisticspipes.proxy.specialinventoryhandler; -import java.util.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Map; import java.util.Map.Entry; +import java.util.Set; +import java.util.TreeSet; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; diff --git a/src/main/java/logisticspipes/proxy/specialinventoryhandler/StorageDrawersInventoryHandler.java b/src/main/java/logisticspipes/proxy/specialinventoryhandler/StorageDrawersInventoryHandler.java index ba20bfa5b..99b1819f3 100644 --- a/src/main/java/logisticspipes/proxy/specialinventoryhandler/StorageDrawersInventoryHandler.java +++ b/src/main/java/logisticspipes/proxy/specialinventoryhandler/StorageDrawersInventoryHandler.java @@ -1,6 +1,10 @@ package logisticspipes.proxy.specialinventoryhandler; -import java.util.*; +import java.util.BitSet; +import java.util.HashMap; +import java.util.List; +import java.util.Set; +import java.util.TreeSet; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; diff --git a/src/main/java/logisticspipes/recipes/CraftingPermissionManager.java b/src/main/java/logisticspipes/recipes/CraftingPermissionManager.java index 56589e444..2291b06ce 100644 --- a/src/main/java/logisticspipes/recipes/CraftingPermissionManager.java +++ b/src/main/java/logisticspipes/recipes/CraftingPermissionManager.java @@ -1,6 +1,11 @@ package logisticspipes.recipes; -import java.io.*; +import java.io.DataInputStream; +import java.io.DataOutputStream; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; import java.util.EnumSet; import java.util.HashMap; import java.util.Map; diff --git a/src/main/java/logisticspipes/renderer/LogisticsHUDRenderer.java b/src/main/java/logisticspipes/renderer/LogisticsHUDRenderer.java index af79dac95..844407ba7 100644 --- a/src/main/java/logisticspipes/renderer/LogisticsHUDRenderer.java +++ b/src/main/java/logisticspipes/renderer/LogisticsHUDRenderer.java @@ -1,6 +1,10 @@ package logisticspipes.renderer; -import java.util.*; +import java.util.ArrayList; +import java.util.Comparator; +import java.util.EnumSet; +import java.util.LinkedList; +import java.util.List; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.ScaledResolution; @@ -297,7 +301,7 @@ public void setHUDSatellite(boolean state) {} if (renderer.getRenderer().cursorOnWindow(pos[0], pos[1])) { renderer.getRenderer().handleCursor(pos[0], pos[1]); if (Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) { // if(FMLClientHandler.instance().getClient().thePlayer.isSneaking()) - // { + // { thisIsLast = renderer; displayCross = true; } diff --git a/src/main/java/logisticspipes/renderer/LogisticsPipeItemRenderer.java b/src/main/java/logisticspipes/renderer/LogisticsPipeItemRenderer.java index 6b6710ac2..5615e9244 100644 --- a/src/main/java/logisticspipes/renderer/LogisticsPipeItemRenderer.java +++ b/src/main/java/logisticspipes/renderer/LogisticsPipeItemRenderer.java @@ -139,7 +139,9 @@ private void renderItem(RenderBlocks render, ItemStack item, float translateX, f } } - /** IItemRenderer implementation **/ + /** + * IItemRenderer implementation + **/ @Override public boolean handleRenderType(ItemStack item, ItemRenderType type) { if (config.isUseNewRenderer()) { diff --git a/src/main/java/logisticspipes/renderer/LogisticsRenderPipe.java b/src/main/java/logisticspipes/renderer/LogisticsRenderPipe.java index 6e1777531..54edb0cc6 100644 --- a/src/main/java/logisticspipes/renderer/LogisticsRenderPipe.java +++ b/src/main/java/logisticspipes/renderer/LogisticsRenderPipe.java @@ -1,6 +1,10 @@ package logisticspipes.renderer; -import java.util.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; import net.minecraft.block.Block; import net.minecraft.client.Minecraft; diff --git a/src/main/java/logisticspipes/renderer/newpipe/LogisticsNewRenderPipe.java b/src/main/java/logisticspipes/renderer/newpipe/LogisticsNewRenderPipe.java index 46d143bfa..06324318c 100644 --- a/src/main/java/logisticspipes/renderer/newpipe/LogisticsNewRenderPipe.java +++ b/src/main/java/logisticspipes/renderer/newpipe/LogisticsNewRenderPipe.java @@ -1,6 +1,11 @@ package logisticspipes.renderer.newpipe; -import java.util.*; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; import java.util.Map.Entry; import net.minecraft.block.Block; diff --git a/src/main/java/logisticspipes/request/RequestHandler.java b/src/main/java/logisticspipes/request/RequestHandler.java index 89a01fedd..fa93d2a10 100644 --- a/src/main/java/logisticspipes/request/RequestHandler.java +++ b/src/main/java/logisticspipes/request/RequestHandler.java @@ -1,7 +1,14 @@ package logisticspipes.request; -import java.util.*; +import java.util.ArrayList; +import java.util.Collection; +import java.util.EnumSet; +import java.util.HashMap; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; import java.util.Map.Entry; +import java.util.TreeSet; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; diff --git a/src/main/java/logisticspipes/request/RequestTree.java b/src/main/java/logisticspipes/request/RequestTree.java index 0c14a3803..fe62cd205 100644 --- a/src/main/java/logisticspipes/request/RequestTree.java +++ b/src/main/java/logisticspipes/request/RequestTree.java @@ -1,6 +1,11 @@ package logisticspipes.request; -import java.util.*; +import java.util.Comparator; +import java.util.EnumSet; +import java.util.HashMap; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; import net.minecraft.init.Blocks; import net.minecraft.item.Item; diff --git a/src/main/java/logisticspipes/request/RequestTreeNode.java b/src/main/java/logisticspipes/request/RequestTreeNode.java index a4569e49f..c0f80173c 100644 --- a/src/main/java/logisticspipes/request/RequestTreeNode.java +++ b/src/main/java/logisticspipes/request/RequestTreeNode.java @@ -1,7 +1,19 @@ package logisticspipes.request; -import java.util.*; +import java.util.ArrayList; +import java.util.BitSet; +import java.util.EnumSet; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; import java.util.Map.Entry; +import java.util.PriorityQueue; +import java.util.Set; +import java.util.SortedSet; +import java.util.TreeSet; import logisticspipes.interfaces.routing.IAdditionalTargetInformation; import logisticspipes.interfaces.routing.ICraft; @@ -363,7 +375,7 @@ private boolean checkCrafting() { } } workWeightedSorter wSorter = new workWeightedSorter(0); // distance doesn't matter, because ingredients have to - // be delivered to the crafter, and we can't + // be delivered to the crafter, and we can't // tell how long that will take. validSources.sort(wSorter); @@ -549,11 +561,11 @@ boolean addWorkPromisesToTree() { ICraftingTemplate template = crafter.getValue1(); int setsToCraft = Math.min(stacksOfWorkRequested, maxWorkSetsAvailable); int setsAbleToCraft = calculateMaxWork(setsToCraft); // Deliberately outside the 0 check, because calling - // generatePromies(0) here clears + // generatePromies(0) here clears // the old ones. if (setsAbleToCraft > 0) { // sanity check, as creating 0 sized promises is an exception. This should never - // be hit. + // be hit. // if we got here, we can at least some of the remaining amount IPromise job = template.generatePromise(setsAbleToCraft); if (job.getAmount() != setsAbleToCraft * setSize) { diff --git a/src/main/java/logisticspipes/routing/ClientRouter.java b/src/main/java/logisticspipes/routing/ClientRouter.java index b087c88c6..dfe293b13 100644 --- a/src/main/java/logisticspipes/routing/ClientRouter.java +++ b/src/main/java/logisticspipes/routing/ClientRouter.java @@ -1,6 +1,10 @@ package logisticspipes.routing; -import java.util.*; +import java.util.ArrayList; +import java.util.BitSet; +import java.util.LinkedList; +import java.util.List; +import java.util.UUID; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; diff --git a/src/main/java/logisticspipes/routing/DummyRoutingDebugAdapter.java b/src/main/java/logisticspipes/routing/DummyRoutingDebugAdapter.java index 4ec4897c3..8bd686412 100644 --- a/src/main/java/logisticspipes/routing/DummyRoutingDebugAdapter.java +++ b/src/main/java/logisticspipes/routing/DummyRoutingDebugAdapter.java @@ -1,6 +1,10 @@ package logisticspipes.routing; -import java.util.*; +import java.util.ArrayList; +import java.util.EnumMap; +import java.util.EnumSet; +import java.util.List; +import java.util.PriorityQueue; import logisticspipes.interfaces.IRoutingDebugAdapter; import logisticspipes.interfaces.routing.IFilter; diff --git a/src/main/java/logisticspipes/routing/ExitRoute.java b/src/main/java/logisticspipes/routing/ExitRoute.java index 4d4626d5f..675b58f4b 100644 --- a/src/main/java/logisticspipes/routing/ExitRoute.java +++ b/src/main/java/logisticspipes/routing/ExitRoute.java @@ -4,7 +4,11 @@ */ package logisticspipes.routing; -import java.util.*; +import java.util.ArrayList; +import java.util.Collections; +import java.util.EnumSet; +import java.util.List; +import java.util.Set; import net.minecraftforge.common.util.ForgeDirection; diff --git a/src/main/java/logisticspipes/routing/ItemRoutingInformation.java b/src/main/java/logisticspipes/routing/ItemRoutingInformation.java index 1345082d8..cad493cc7 100644 --- a/src/main/java/logisticspipes/routing/ItemRoutingInformation.java +++ b/src/main/java/logisticspipes/routing/ItemRoutingInformation.java @@ -23,7 +23,7 @@ public static class DelayComparator implements Comparator orientation for all known destinations **/ + /** + * Map of router -> orientation for all known destinations + **/ public List> _routeTable = Collections.unmodifiableList(new ArrayList<>()); public List _routeCosts = Collections.unmodifiableList(new ArrayList<>()); @@ -301,7 +316,7 @@ public ServerRouter(UUID globalID, int dimension, int xCoord, int yCoord, int zC _myLsa.neighboursWithMetric = new HashMap<>(); _myLsa.power = new ArrayList<>(); ServerRouter.SharedLSADatabasewriteLock.lock(); // any time after we claim the SimpleID, the database could be - // accessed at that index + // accessed at that index simpleID = ServerRouter.claimSimpleID(); if (ServerRouter.SharedLSADatabase.length <= simpleID) { int newlength = ((int) (simpleID * 1.5)) + 1; @@ -761,7 +776,7 @@ public void CreateRouteTable(int version_to_update_to, IRoutingDebugAdapter debu int routingTableSize = ServerRouter.getBiggestSimpleID(); if (routingTableSize == 0) { routingTableSize = ServerRouter.SharedLSADatabase.length; // deliberatly ignoring concurrent access, either - // the old or the version of the size will + // the old or the version of the size will // work, this is just an approximate number. } @@ -810,13 +825,13 @@ public void CreateRouteTable(int version_to_update_to, IRoutingDebugAdapter debu /* The total cost for the candidate route **/ PriorityQueue candidatesCost = new PriorityQueue<>((int) Math.sqrt(routingTableSize)); // sqrt nodes - // is a good - // guess for - // the total - // number of - // candidate - // nodes at - // once. + // is a good + // guess for + // the total + // number of + // candidate + // nodes at + // once. // Init candidates // the shortest way to go to an adjacent item is the adjacent item. @@ -840,7 +855,7 @@ public void CreateRouteTable(int version_to_update_to, IRoutingDebugAdapter debu debug.start(candidatesCost, closedSet, filterList); ServerRouter.SharedLSADatabasereadLock.lock(); // readlock, not inside the while - too costly to aquire, then - // release. + // release. ExitRoute lowestCostNode; while ((lowestCostNode = candidatesCost.poll()) != null) { if (!lowestCostNode.hasActivePipe()) { @@ -1036,7 +1051,7 @@ public void CreateRouteTable(int version_to_update_to, IRoutingDebugAdapter debu node.root = this; // replace the root with this, rather than the first hop. node.exitOrientation = hop.exitOrientation; while (node.destination.getSimpleID() >= routeTable.size()) { // the array will not expand, as it is init'd - // to contain enough elements + // to contain enough elements routeTable.add(null); } @@ -1095,7 +1110,7 @@ public void act(BitSet hasBeenProcessed, IRAction actor) { @Override public void destroy() { ServerRouter.SharedLSADatabasewriteLock.lock(); // take a write lock so that we don't overlap with any ongoing - // route updates + // route updates if (simpleID < ServerRouter.SharedLSADatabase.length) { ServerRouter.SharedLSADatabase[simpleID] = null; } diff --git a/src/main/java/logisticspipes/routing/debug/ClientViewController.java b/src/main/java/logisticspipes/routing/debug/ClientViewController.java index 4b848abd9..dcb229e01 100644 --- a/src/main/java/logisticspipes/routing/debug/ClientViewController.java +++ b/src/main/java/logisticspipes/routing/debug/ClientViewController.java @@ -1,13 +1,22 @@ package logisticspipes.routing.debug; -import java.awt.*; -import java.util.*; +import java.awt.Color; +import java.util.ArrayList; +import java.util.EnumMap; +import java.util.EnumSet; +import java.util.HashMap; import java.util.List; import java.util.Map.Entry; import logisticspipes.interfaces.IDebugHUDProvider; import logisticspipes.interfaces.IHeadUpDisplayRendererProvider; -import logisticspipes.network.packets.routingdebug.*; +import logisticspipes.network.packets.routingdebug.RoutingUpdateCanidatePipe; +import logisticspipes.network.packets.routingdebug.RoutingUpdateDebugCanidateList; +import logisticspipes.network.packets.routingdebug.RoutingUpdateDebugClosedSet; +import logisticspipes.network.packets.routingdebug.RoutingUpdateDebugFilters; +import logisticspipes.network.packets.routingdebug.RoutingUpdateDoneDebug; +import logisticspipes.network.packets.routingdebug.RoutingUpdateInitDebug; +import logisticspipes.network.packets.routingdebug.RoutingUpdateSourcePipe; import logisticspipes.pipefxhandlers.Particles; import logisticspipes.pipefxhandlers.PipeFXRenderHandler; import logisticspipes.renderer.LogisticsHUDRenderer; diff --git a/src/main/java/logisticspipes/routing/debug/DebugController.java b/src/main/java/logisticspipes/routing/debug/DebugController.java index 67113d170..8ffe78c7e 100644 --- a/src/main/java/logisticspipes/routing/debug/DebugController.java +++ b/src/main/java/logisticspipes/routing/debug/DebugController.java @@ -1,7 +1,14 @@ package logisticspipes.routing.debug; import java.lang.ref.WeakReference; -import java.util.*; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.EnumMap; +import java.util.EnumSet; +import java.util.HashMap; +import java.util.LinkedList; +import java.util.List; +import java.util.PriorityQueue; import java.util.concurrent.Callable; import net.minecraft.command.ICommandSender; @@ -13,7 +20,14 @@ import logisticspipes.interfaces.routing.IFilter; import logisticspipes.network.PacketHandler; import logisticspipes.network.packets.gui.OpenChatGui; -import logisticspipes.network.packets.routingdebug.*; +import logisticspipes.network.packets.routingdebug.RoutingUpdateCanidatePipe; +import logisticspipes.network.packets.routingdebug.RoutingUpdateClearClient; +import logisticspipes.network.packets.routingdebug.RoutingUpdateDebugCanidateList; +import logisticspipes.network.packets.routingdebug.RoutingUpdateDebugClosedSet; +import logisticspipes.network.packets.routingdebug.RoutingUpdateDebugFilters; +import logisticspipes.network.packets.routingdebug.RoutingUpdateDoneDebug; +import logisticspipes.network.packets.routingdebug.RoutingUpdateInitDebug; +import logisticspipes.network.packets.routingdebug.RoutingUpdateSourcePipe; import logisticspipes.proxy.MainProxy; import logisticspipes.proxy.SimpleServiceLocator; import logisticspipes.routing.ExitRoute; diff --git a/src/main/java/logisticspipes/routing/debug/DebugWindow.java b/src/main/java/logisticspipes/routing/debug/DebugWindow.java index 4f967cde1..55d136405 100644 --- a/src/main/java/logisticspipes/routing/debug/DebugWindow.java +++ b/src/main/java/logisticspipes/routing/debug/DebugWindow.java @@ -1,8 +1,10 @@ package logisticspipes.routing.debug; -import java.awt.*; +import java.awt.Color; -import javax.swing.*; +import javax.swing.JFrame; +import javax.swing.JScrollPane; +import javax.swing.JTextPane; import javax.swing.text.BadLocationException; import javax.swing.text.Document; import javax.swing.text.SimpleAttributeSet; diff --git a/src/main/java/logisticspipes/routing/order/LogisticsOrderLinkedList.java b/src/main/java/logisticspipes/routing/order/LogisticsOrderLinkedList.java index 1515018ec..ee7e97e2c 100644 --- a/src/main/java/logisticspipes/routing/order/LogisticsOrderLinkedList.java +++ b/src/main/java/logisticspipes/routing/order/LogisticsOrderLinkedList.java @@ -1,6 +1,11 @@ package logisticspipes.routing.order; -import java.util.*; +import java.util.Collections; +import java.util.HashMap; +import java.util.Iterator; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; public class LogisticsOrderLinkedList implements Iterable { diff --git a/src/main/java/logisticspipes/routing/pathfinder/PathFinder.java b/src/main/java/logisticspipes/routing/pathfinder/PathFinder.java index 2ed9682bd..07deff4b0 100644 --- a/src/main/java/logisticspipes/routing/pathfinder/PathFinder.java +++ b/src/main/java/logisticspipes/routing/pathfinder/PathFinder.java @@ -4,8 +4,16 @@ */ package logisticspipes.routing.pathfinder; -import java.util.*; +import java.util.ArrayDeque; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.EnumSet; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; import java.util.Map.Entry; +import java.util.Set; import net.minecraft.inventory.IInventory; import net.minecraft.tileentity.TileEntity; diff --git a/src/main/java/logisticspipes/ticks/ServerPacketBufferHandlerThread.java b/src/main/java/logisticspipes/ticks/ServerPacketBufferHandlerThread.java index 6d16b6b38..f8fced36a 100644 --- a/src/main/java/logisticspipes/ticks/ServerPacketBufferHandlerThread.java +++ b/src/main/java/logisticspipes/ticks/ServerPacketBufferHandlerThread.java @@ -4,8 +4,13 @@ import java.io.ByteArrayOutputStream; import java.io.DataOutputStream; import java.io.IOException; -import java.util.*; +import java.util.Arrays; +import java.util.ConcurrentModificationException; +import java.util.HashMap; +import java.util.Iterator; +import java.util.LinkedList; import java.util.Map.Entry; +import java.util.Queue; import java.util.zip.GZIPInputStream; import java.util.zip.GZIPOutputStream; diff --git a/src/main/java/logisticspipes/transport/LPTravelingItem.java b/src/main/java/logisticspipes/transport/LPTravelingItem.java index 43258323a..6bed02f3b 100644 --- a/src/main/java/logisticspipes/transport/LPTravelingItem.java +++ b/src/main/java/logisticspipes/transport/LPTravelingItem.java @@ -1,7 +1,12 @@ package logisticspipes.transport; import java.lang.ref.WeakReference; -import java.util.*; +import java.util.ArrayList; +import java.util.EnumSet; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.UUID; import net.minecraft.entity.item.EntityItem; import net.minecraft.nbt.NBTTagCompound; diff --git a/src/main/java/logisticspipes/transport/PipeFluidTransportLogistics.java b/src/main/java/logisticspipes/transport/PipeFluidTransportLogistics.java index 9d2c9f428..4c8f505d4 100644 --- a/src/main/java/logisticspipes/transport/PipeFluidTransportLogistics.java +++ b/src/main/java/logisticspipes/transport/PipeFluidTransportLogistics.java @@ -2,7 +2,11 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.common.util.ForgeDirection; -import net.minecraftforge.fluids.*; +import net.minecraftforge.fluids.Fluid; +import net.minecraftforge.fluids.FluidStack; +import net.minecraftforge.fluids.FluidTank; +import net.minecraftforge.fluids.FluidTankInfo; +import net.minecraftforge.fluids.IFluidHandler; import logisticspipes.network.PacketHandler; import logisticspipes.network.abstractpackets.ModernPacket; diff --git a/src/main/java/logisticspipes/transport/PipeTransportLogistics.java b/src/main/java/logisticspipes/transport/PipeTransportLogistics.java index 7a1604cc1..e0e84c91f 100644 --- a/src/main/java/logisticspipes/transport/PipeTransportLogistics.java +++ b/src/main/java/logisticspipes/transport/PipeTransportLogistics.java @@ -5,7 +5,12 @@ package logisticspipes.transport; import java.lang.ref.WeakReference; -import java.util.*; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Iterator; +import java.util.LinkedList; +import java.util.List; +import java.util.Random; import net.minecraft.entity.item.EntityItem; import net.minecraft.inventory.IInventory; @@ -23,7 +28,12 @@ import logisticspipes.LogisticsPipes; import logisticspipes.api.ILogisticsPowerProvider; import logisticspipes.blocks.powertile.LogisticsPowerJunctionTileEntity; -import logisticspipes.interfaces.*; +import logisticspipes.interfaces.IBufferItems; +import logisticspipes.interfaces.IInventoryUtil; +import logisticspipes.interfaces.IItemAdvancedExistance; +import logisticspipes.interfaces.ISlotUpgradeManager; +import logisticspipes.interfaces.ISpecialInsertion; +import logisticspipes.interfaces.ISubSystemPowerProvider; import logisticspipes.interfaces.routing.ITargetSlotInformation; import logisticspipes.logisticspipes.IRoutedItem; import logisticspipes.logisticspipes.IRoutedItem.TransportMode; diff --git a/src/main/java/logisticspipes/utils/FluidIdentifier.java b/src/main/java/logisticspipes/utils/FluidIdentifier.java index 01f5ae953..c306ad6cd 100644 --- a/src/main/java/logisticspipes/utils/FluidIdentifier.java +++ b/src/main/java/logisticspipes/utils/FluidIdentifier.java @@ -1,6 +1,11 @@ package logisticspipes.utils; -import java.util.*; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Random; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReadWriteLock; import java.util.concurrent.locks.ReentrantReadWriteLock; @@ -8,7 +13,12 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.common.util.ForgeDirection; -import net.minecraftforge.fluids.*; +import net.minecraftforge.fluids.Fluid; +import net.minecraftforge.fluids.FluidRegistry; +import net.minecraftforge.fluids.FluidStack; +import net.minecraftforge.fluids.FluidTankInfo; +import net.minecraftforge.fluids.IFluidHandler; +import net.minecraftforge.fluids.IFluidTank; import logisticspipes.asm.addinfo.IAddInfo; import logisticspipes.asm.addinfo.IAddInfoProvider; diff --git a/src/main/java/logisticspipes/utils/FramebufferUtils.java b/src/main/java/logisticspipes/utils/FramebufferUtils.java index bac731486..3b51570bc 100644 --- a/src/main/java/logisticspipes/utils/FramebufferUtils.java +++ b/src/main/java/logisticspipes/utils/FramebufferUtils.java @@ -10,10 +10,14 @@ public final class FramebufferUtils { - /** renderbuffer target */ + /** + * renderbuffer target + */ public static final int GL_RENDERBUFFER = 0x8D41; - /** framebuffer targets */ + /** + * framebuffer targets + */ public static final int GL_FRAMEBUFFER = 0x8D40, GL_READ_FRAMEBUFFER = 0x8CA8, GL_DRAW_FRAMEBUFFER = 0x8CA9; private FramebufferUtils() {} diff --git a/src/main/java/logisticspipes/utils/OpenGLDebugger.java b/src/main/java/logisticspipes/utils/OpenGLDebugger.java index e618889a1..55a86ce70 100644 --- a/src/main/java/logisticspipes/utils/OpenGLDebugger.java +++ b/src/main/java/logisticspipes/utils/OpenGLDebugger.java @@ -1,7 +1,10 @@ package logisticspipes.utils; -import java.awt.*; import java.awt.Color; +import java.awt.Component; +import java.awt.GridBagConstraints; +import java.awt.GridBagLayout; +import java.awt.Insets; import java.awt.event.KeyEvent; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; @@ -15,7 +18,19 @@ import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; -import javax.swing.*; +import javax.swing.BorderFactory; +import javax.swing.JButton; +import javax.swing.JComponent; +import javax.swing.JDialog; +import javax.swing.JPanel; +import javax.swing.JScrollPane; +import javax.swing.JTable; +import javax.swing.JTextField; +import javax.swing.KeyStroke; +import javax.swing.ScrollPaneConstants; +import javax.swing.UIManager; +import javax.swing.UnsupportedLookAndFeelException; +import javax.swing.WindowConstants; import javax.swing.table.DefaultTableCellRenderer; import javax.swing.table.DefaultTableModel; import javax.swing.table.TableCellRenderer; diff --git a/src/main/java/logisticspipes/utils/SyncList.java b/src/main/java/logisticspipes/utils/SyncList.java index 347952b9e..dbacfc216 100644 --- a/src/main/java/logisticspipes/utils/SyncList.java +++ b/src/main/java/logisticspipes/utils/SyncList.java @@ -1,6 +1,10 @@ package logisticspipes.utils; -import java.util.*; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.ListIterator; import net.minecraft.entity.player.EntityPlayer; diff --git a/src/main/java/logisticspipes/utils/gui/DummyContainer.java b/src/main/java/logisticspipes/utils/gui/DummyContainer.java index d6f12fea3..44be3ebe7 100644 --- a/src/main/java/logisticspipes/utils/gui/DummyContainer.java +++ b/src/main/java/logisticspipes/utils/gui/DummyContainer.java @@ -407,8 +407,8 @@ && canDragIntoSlot(slot1)) { if (itemstack3.getItem() == itemstack4.getItem() && itemstack3.getItemDamage() == itemstack4.getItemDamage() && areEqualForMerge(itemstack3, itemstack4, slot2)) { // XXX replaced - // ItemStack.areItemStackTagsEqual - // with + // ItemStack.areItemStackTagsEqual + // with // areEqualForMerge for slot based handling l1 = par2 == 0 ? itemstack4.stackSize : 1; @@ -433,8 +433,8 @@ && areEqualForMerge(itemstack3, itemstack4, slot2)) { // XXX replaced } else if (itemstack4.stackSize <= slot2.getSlotStackLimit()) { handleSwitch(slot2, itemstack3, itemstack4, par4EntityPlayer); // XXX added Slot - // switching handle - // method + // switching handle + // method slot2.putStack(itemstack4); inventoryplayer.setItemStack(itemstack3); } @@ -442,8 +442,8 @@ && areEqualForMerge(itemstack3, itemstack4, slot2)) { // XXX replaced && (!itemstack3.getHasSubtypes() || itemstack3.getItemDamage() == itemstack4.getItemDamage()) && areEqualForMerge(itemstack3, itemstack4, slot2)) { // XXX replaced - // ItemStack.areItemStackTagsEqual - // with + // ItemStack.areItemStackTagsEqual + // with // areEqualForMerge for slot based handling l1 = itemstack3.stackSize; diff --git a/src/main/java/logisticspipes/utils/gui/ItemDisplay.java b/src/main/java/logisticspipes/utils/gui/ItemDisplay.java index b03400d10..919064e5d 100644 --- a/src/main/java/logisticspipes/utils/gui/ItemDisplay.java +++ b/src/main/java/logisticspipes/utils/gui/ItemDisplay.java @@ -1,6 +1,10 @@ package logisticspipes.utils.gui; -import java.util.*; +import java.util.Collection; +import java.util.Comparator; +import java.util.HashMap; +import java.util.LinkedList; +import java.util.Map; import java.util.Map.Entry; import net.minecraft.client.Minecraft; diff --git a/src/main/java/logisticspipes/utils/gui/LogisticsBaseGuiScreen.java b/src/main/java/logisticspipes/utils/gui/LogisticsBaseGuiScreen.java index 3c2707b0c..25e2251bb 100644 --- a/src/main/java/logisticspipes/utils/gui/LogisticsBaseGuiScreen.java +++ b/src/main/java/logisticspipes/utils/gui/LogisticsBaseGuiScreen.java @@ -5,7 +5,11 @@ package logisticspipes.utils.gui; import java.lang.reflect.Field; -import java.util.*; +import java.util.ArrayList; +import java.util.BitSet; +import java.util.LinkedList; +import java.util.List; +import java.util.Queue; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.Gui; diff --git a/src/main/java/logisticspipes/utils/gui/SearchBar.java b/src/main/java/logisticspipes/utils/gui/SearchBar.java index d581c1156..1c926bbe5 100644 --- a/src/main/java/logisticspipes/utils/gui/SearchBar.java +++ b/src/main/java/logisticspipes/utils/gui/SearchBar.java @@ -1,6 +1,6 @@ package logisticspipes.utils.gui; -import java.awt.*; +import java.awt.Toolkit; import java.awt.datatransfer.DataFlavor; import java.awt.datatransfer.Transferable; diff --git a/src/main/java/logisticspipes/utils/item/ItemIdentifier.java b/src/main/java/logisticspipes/utils/item/ItemIdentifier.java index 55a038f8b..5da443062 100644 --- a/src/main/java/logisticspipes/utils/item/ItemIdentifier.java +++ b/src/main/java/logisticspipes/utils/item/ItemIdentifier.java @@ -6,7 +6,11 @@ import java.lang.ref.ReferenceQueue; import java.lang.ref.WeakReference; -import java.util.*; +import java.util.ArrayList; +import java.util.BitSet; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import java.util.Map.Entry; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.atomic.AtomicReferenceArray; @@ -20,7 +24,18 @@ import net.minecraft.item.Item; import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemStack; -import net.minecraft.nbt.*; +import net.minecraft.nbt.NBTBase; +import net.minecraft.nbt.NBTTagByte; +import net.minecraft.nbt.NBTTagByteArray; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagDouble; +import net.minecraft.nbt.NBTTagFloat; +import net.minecraft.nbt.NBTTagInt; +import net.minecraft.nbt.NBTTagIntArray; +import net.minecraft.nbt.NBTTagList; +import net.minecraft.nbt.NBTTagLong; +import net.minecraft.nbt.NBTTagShort; +import net.minecraft.nbt.NBTTagString; import net.minecraft.world.World; import cpw.mods.fml.common.registry.GameRegistry; diff --git a/src/main/java/logisticspipes/utils/item/ItemIdentifierInventory.java b/src/main/java/logisticspipes/utils/item/ItemIdentifierInventory.java index 9a574b617..161042425 100644 --- a/src/main/java/logisticspipes/utils/item/ItemIdentifierInventory.java +++ b/src/main/java/logisticspipes/utils/item/ItemIdentifierInventory.java @@ -4,7 +4,13 @@ */ package logisticspipes.utils.item; -import java.util.*; +import java.util.Arrays; +import java.util.Collection; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; +import java.util.LinkedList; +import java.util.Map; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; @@ -359,14 +365,14 @@ private void updateContents() { ItemIdentifier itemId = _content.getItem(); _contentsMap.merge(itemId, _content.getStackSize(), Integer::sum); _contentsUndamagedSet.add(itemId.getUndamaged()); // add is cheaper than check then add; it just returns - // false if it is + // false if it is // already there _contentsNoNBTSet.add(itemId.getIgnoringNBT()); // add is cheaper than check then add; it just returns false - // if it is + // if it is // already there _contentsUndamagedNoNBTSet.add(itemId.getIgnoringNBT().getUndamaged()); // add is cheaper than check then - // add; it just returns false if it - // is already + // add; it just returns false if it + // is already // there } }