diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 00000000..ebbc2b63 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,19 @@ +# This is the universal Text Editor Configuration +# for all GTNewHorizons projects +# See: https://editorconfig.org/ + +root = true + +[*] +charset = utf-8 +end_of_line = lf +indent_size = 4 +indent_style = space +insert_final_newline = true +trim_trailing_whitespace = true + +[*.{bat,ini}] +end_of_line = crlf + +[*.{dtd,json,mcmeta,md,sh,svg,xml,xsd,xsl,yaml,yml}] +indent_size = 2 diff --git a/.github/scripts/test-no-error-reports.sh b/.github/scripts/test-no-error-reports.sh old mode 100644 new mode 100755 index e3876606..84c1e5d6 --- a/.github/scripts/test-no-error-reports.sh +++ b/.github/scripts/test-no-error-reports.sh @@ -1,22 +1,28 @@ -if [[ -d "run/crash-reports" ]]; then +#!/usr/bin/env bash + +RUNDIR="run" +CRASH="crash-reports" +SERVERLOG="server.log" + +if [[ -d $RUNDIR/$CRASH ]]; then echo "Crash reports detected:" - cat $directory/* + cat $RUNDIR/$CRASH/crash*.txt exit 1 fi -if grep --quiet "Fatal errors were detected" server.log; then +if grep --quiet "Fatal errors were detected" $SERVERLOG; then echo "Fatal errors detected:" cat server.log exit 1 fi -if grep --quiet "The state engine was in incorrect state ERRORED and forced into state SERVER_STOPPED" server.log; then +if grep --quiet "The state engine was in incorrect state ERRORED and forced into state SERVER_STOPPED" $SERVERLOG; then echo "Server force stopped:" cat server.log exit 1 fi -if grep --quiet 'Done .+ For help, type "help" or "?"' server.log; then +if ! grep --quiet -Po '.+Done \(.+\)\! For help, type "help" or "\?"' $SERVERLOG; then echo "Server didn't finish startup:" cat server.log exit 1 diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index 08df9fe8..2a74327a 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -14,16 +14,16 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - with: + with: fetch-depth: 0 - + - name: Set up JDK 8 uses: actions/setup-java@v2 with: java-version: '8' distribution: 'adopt' cache: gradle - + - name: Grant execute permission for gradlew run: chmod +x gradlew @@ -36,8 +36,8 @@ jobs: - name: Run server for 1.5 minutes run: | mkdir run - echo "eula=true" > run/eula.txt - timeout 90 ./gradlew runServer | tee --append server.log || true + echo "eula=true" > run/eula.txt + timeout 90 ./gradlew runServer 2>&1 | tee -a server.log || true - name: Test no errors reported during server run run: | diff --git a/.gitignore b/.gitignore index 75c41f65..48c525b1 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ .gradle .settings /.idea/ +/.vscode/ /run/ /build/ /eclipse/ diff --git a/build.gradle b/build.gradle index 3d3fd926..a7a15275 100644 --- a/build.gradle +++ b/build.gradle @@ -1,4 +1,4 @@ -//version: 1644510936 +//version: 1644612407 /* DO NOT CHANGE THIS FILE! @@ -6,7 +6,7 @@ Also, you may replace this file at any time if there is an update available. Please check https://github.com/GTNewHorizons/ExampleMod1.7.10/blob/main/build.gradle for updates. */ -import org.gradle.internal.logging.text.StyledTextOutput +import org.gradle.internal.logging.text.StyledTextOutput import org.gradle.internal.logging.text.StyledTextOutputFactory import org.gradle.internal.logging.text.StyledTextOutput.Style @@ -45,18 +45,20 @@ plugins { id 'eclipse' id 'scala' id 'maven-publish' - id('org.jetbrains.kotlin.jvm') version ('1.6.10') apply false - id('org.ajoberstar.grgit') version('4.1.1') - id('com.github.johnrengelman.shadow') version('4.0.4') - id('com.palantir.git-version') version('0.13.0') apply false - id('de.undercouch.download') version('5.0.1') + id 'org.jetbrains.kotlin.jvm' version '1.5.30' apply false + id 'org.jetbrains.kotlin.kapt' version '1.5.30' apply false + id 'org.ajoberstar.grgit' version '4.1.1' + id 'com.github.johnrengelman.shadow' version '4.0.4' + id 'com.palantir.git-version' version '0.13.0' apply false + id 'de.undercouch.download' version '5.0.1' + id 'com.github.gmazzo.buildconfig' version '3.0.3' apply false } if (project.file('.git/HEAD').isFile()) { apply plugin: 'com.palantir.git-version' } -def out = services.get(StyledTextOutputFactory).create("an-output") +def out = services.get(StyledTextOutputFactory).create('an-output') apply plugin: 'forge' @@ -186,14 +188,16 @@ try { catch (Exception e) { 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' + + '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 = minecraftVersion + '-' + identifiedVersion -String modVersion = identifiedVersion +ext { + modVersion = identifiedVersion +} if( identifiedVersion.equals(versionOverride) ) { out.style(Style.Failure).text('Override version to ').style(Style.Identifier).text(modVersion).style(Style.Failure).println('!\7') @@ -207,7 +211,6 @@ else { archivesBaseName = modId } - def arguments = [] def jvmArguments = [] @@ -221,8 +224,8 @@ if(usesMixins.toBoolean()) { } minecraft { - version = minecraftVersion + "-" + forgeVersion + "-" + minecraftVersion - runDir = "run" + version = minecraftVersion + '-' + forgeVersion + '-' + minecraftVersion + runDir = 'run' if (replaceGradleTokenInFile) { replaceIn replaceGradleTokenInFile @@ -255,8 +258,8 @@ minecraft { } } -if(file("addon.gradle").exists()) { - apply from: "addon.gradle" +if(file('addon.gradle').exists()) { + apply from: 'addon.gradle' } apply from: 'repositories.gradle' @@ -304,7 +307,7 @@ dependencies { apply from: 'dependencies.gradle' -def mixingConfigRefMap = "mixins." + modId + ".refmap.json" +def mixingConfigRefMap = 'mixins.' + modId + '.refmap.json' def refMap = "${tasks.compileJava.temporaryDir}" + File.separator + mixingConfigRefMap def mixinSrg = "${tasks.reobf.temporaryDir}" + File.separator + "mixins.srg" @@ -408,12 +411,11 @@ tasks.withType(JavaExec).configureEach { ) } -processResources -{ +processResources { // this will ensure that this task is redone when the versions change. inputs.property "version", project.version inputs.property "mcversion", project.minecraft.version - + // replace stuff in mcmod.info, nothing else from(sourceSets.main.resources.srcDirs) { include 'mcmod.info' @@ -540,7 +542,7 @@ artifacts { } } -// The gradle metadata includes all of the additional deps that we disabled from POM generation (including forgeBin with no groupID), +// The gradle metadata includes all of the additional deps that we disabled from POM generation (including forgeBin with no groupID), // and isn't strictly needed with the POM so just disable it. tasks.withType(GenerateModuleMetadata) { enabled = false @@ -565,17 +567,17 @@ publishing { 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 - + // remove extra garbage from who knows where pom.withXml { def badPomGroup = ['net.minecraft', 'com.google.code.findbugs', 'org.ow2.asm', 'com.typesafe.akka', 'com.typesafe', 'org.scala-lang', 'org.scala-lang.plugins', 'net.sf.jopt-simple', 'lzma', 'com.mojang', 'org.apache.commons', 'org.apache.httpcomponents', - 'commons-logging', 'java3d', 'net.sf.trove4j', 'com.ibm.icu', 'com.paulscode', 'io.netty', 'com.google.guava', - 'commons-io', 'commons-codec', 'net.java.jinput', 'net.java.jutils', 'com.google.code.gson', 'org.apache.logging.log4j', - 'org.lwjgl.lwjgl', 'tv.twitch', ''] + 'commons-logging', 'java3d', 'net.sf.trove4j', 'com.ibm.icu', 'com.paulscode', 'io.netty', 'com.google.guava', + 'commons-io', 'commons-codec', 'net.java.jinput', 'net.java.jutils', 'com.google.code.gson', 'org.apache.logging.log4j', + 'org.lwjgl.lwjgl', 'tv.twitch', 'org.jetbrains.kotlin', ''] Node pomNode = asNode() pomNode.dependencies.'*'.findAll() { - badPomGroup.contains(it.groupId.text()) + badPomGroup.contains(it.groupId.text()) }.each() { it.parent().remove(it) } @@ -688,7 +690,7 @@ def deobf(String sourceURL, String fileName) { String bon2File = bon2Dir + "/BON2-2.5.0.jar" String obfFile = cacheDir + "modules-2/files-2.1/" + fileName + ".jar" String deobfFile = cacheDir + "modules-2/files-2.1/" + fileName + "-deobf.jar" - + if(file(deobfFile).exists()) { return files(deobfFile) } diff --git a/dependencies.gradle b/dependencies.gradle index 10e66989..7f5204a7 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -1,49 +1,23 @@ // Add your dependencies here dependencies { - compile("com.github.GTNewHorizons:Baubles:1.0.1.14:dev") - compile("com.github.GTNewHorizons:Applied-Energistics-2-Unofficial:rv3-beta-76-GTNH:api") + compile('com.github.GTNewHorizons:Baubles:1.0.1.14:dev') + compile('com.github.GTNewHorizons:Applied-Energistics-2-Unofficial:rv3-beta-76-GTNH:api') - compile("thaumcraft:Thaumcraft:1.7.10-4.2.3.5:dev") + compile('thaumcraft:Thaumcraft:1.7.10-4.2.3.5:dev') - compileOnly("com.github.GTNewHorizons:Botania:1.9.1-GTNH:dev") { - transitive = false - } - compileOnly("com.github.GTNewHorizons:EnderCore:0.2.6:dev") { - transitive = false - } - compileOnly("com.github.GTNewHorizons:EnderIO:2.3.1.29:dev") { - transitive = false - } - compileOnly("com.github.GTNewHorizons:EnderStorage:1.4.11:dev") { - transitive = false - } - compileOnly("com.github.GTNewHorizons:waila:1.5.19:api") { - transitive = false - } - compileOnly("com.github.GTNewHorizons:TinkersConstruct:1.9.0.13-GTNH:dev") { - transitive = false - } - compileOnly("com.github.GTNewHorizons:ForgeMultipart:1.2.7:dev") { - transitive = false - } - compileOnly("com.github.GTNewHorizons:CodeChickenLib:1.1.5.3:dev") { - transitive = false - } - compileOnly("com.github.GTNewHorizons:OpenComputers:1.7.5.23-GTNH:api") { - transitive = false - } + compileOnly('com.github.GTNewHorizons:Botania:1.9.1-GTNH:dev') {transitive=false} + compileOnly('com.github.GTNewHorizons:EnderCore:0.2.6:dev') {transitive=false} + compileOnly('com.github.GTNewHorizons:EnderIO:2.3.1.29:dev') {transitive=false} + compileOnly('com.github.GTNewHorizons:EnderStorage:1.4.11:dev') {transitive=false} + compileOnly('com.github.GTNewHorizons:waila:1.5.19:api') {transitive=false} + compileOnly('com.github.GTNewHorizons:TinkersConstruct:1.9.0.13-GTNH:dev') {transitive=false} + compileOnly('com.github.GTNewHorizons:ForgeMultipart:1.2.7:dev') {transitive=false} + compileOnly('com.github.GTNewHorizons:CodeChickenLib:1.1.5.3:dev') {transitive=false} + compileOnly('com.github.GTNewHorizons:OpenComputers:1.7.5.23-GTNH:api') {transitive=false} - compileOnly("curse.maven:computercraft-67504:2269339") { - transitive = false - } - compileOnly("curse.maven:cofh-lib-220333:2388748") { - transitive = false - } - compileOnly("curse.maven:cofh-core-69162:2388751") { - transitive = false - } - compileOnly("net.industrial-craft:industrialcraft-2:2.2.828-experimental:api") { - transitive = false - } + compileOnly('curse.maven:computercraft-67504:2269339') + compileOnly('curse.maven:cofh-lib-220333:2388748') + compileOnly('curse.maven:cofh-core-69162:2388751') + compileOnly('net.industrial-craft:industrialcraft-2:2.2.828-experimental:api') {transitive=false} } diff --git a/repositories.gradle b/repositories.gradle index 7c7c5142..9c1eb8fc 100644 --- a/repositories.gradle +++ b/repositories.gradle @@ -2,21 +2,26 @@ repositories { maven { - name = "GTNH Maven" - url = "http://jenkins.usrv.eu:8081/nexus/content/groups/public/" + name 'GTNH Maven' + url 'http://jenkins.usrv.eu:8081/nexus/content/groups/public/' + allowInsecureProtocol } maven { - name = "ic2" - url = "https://maven.ic2.player.to/" + name 'ic2' + url 'https://maven.ic2.player.to/' metadataSources { mavenPom() artifact() } } maven { - url "https://cursemaven.com" + url 'https://cursemaven.com' + content { + includeGroup "curse.maven" + } + } maven { - url = "https://jitpack.io" + url 'https://jitpack.io' } }