Darkhax / CurseForgeGradle

A Gradle plugin for uploading files to CurseForge.
GNU Lesser General Public License v2.1
28 stars 7 forks source link

403 Forbidden during artifact uploading #20

Open srcres258 opened 9 months ago

srcres258 commented 9 months ago

CurseForgeGradle was configured as mentioned in README.md. But when executing the publishCurseForge task the following exception was reported:

Failed to upload artifact creativetabsearch-0.1.0.jar. Error code '403', message 'Forbidden'.

Neither detailed information nor the reason of 403 was given in the error output.

My build.gradle:

plugins {
    id 'eclipse'
    id 'idea'
    id 'maven-publish'
    id 'net.minecraftforge.gradle' version '[6.0,6.2)'
    id 'org.parchmentmc.librarian.forgegradle' version '1.+'
    id 'org.spongepowered.mixin' version '0.7.+' // Mixin Gradle plugin should be added manually for ForgeGradle.
    id 'com.modrinth.minotaur' version '2.+' // Modrinth publishing plugin
    id 'net.darkhax.curseforgegradle' version '1.1.18' // CurseForge publishing plugin
}

version = mod_version
group = mod_group_id

repositories {
    mavenLocal()
}

base {
    archivesName = mod_id
}

java.toolchain.languageVersion = JavaLanguageVersion.of(17)

minecraft {
    mappings channel: 'parchment', version: "${parchment_mappingsVersion}-${parchment_minecraftVersion}"

    copyIdeResources = true

    // Default run configurations.
    // These can be tweaked, removed, or duplicated as needed.
    runs {
        // applies to all the run configs below
        configureEach {
            workingDirectory project.file('run')

            property 'forge.logging.markers', 'REGISTRIES'
            property 'forge.logging.console.level', 'debug'

            mods {
                "${mod_id}" {
                    source sourceSets.main
                }
            }
        }

        client {
            // Comma-separated list of namespaces to load gametests from. Empty = all namespaces.
            property 'forge.enabledGameTestNamespaces', mod_id
        }

        server {
            property 'forge.enabledGameTestNamespaces', mod_id
            args '--nogui'
        }

        // This run config launches GameTestServer and runs all registered gametests, then exits.
        // By default, the server will crash when no gametests are provided.
        // The gametest system is also enabled by default for other run configs under the /test command.
        gameTestServer {
            property 'forge.enabledGameTestNamespaces', mod_id
        }

        data {
            // example of overriding the workingDirectory set in configureEach above
            workingDirectory project.file('run-data')

            // Specify the modid for data generation, where to output the resulting resource, and where to look for existing resources.
            args '--mod', mod_id, '--all', '--output', file('src/generated/resources/'), '--existing', file('src/main/resources/')
        }
    }
}

sourceSets {
    main {
        resources {
            srcDir 'src/generated/resources'
        }
    }
}

dependencies {
    minecraft "net.minecraftforge:forge:${minecraft_version}-${forge_version}"

    // Apply Mixin AP
    annotationProcessor 'org.spongepowered:mixin:0.8.5:processor'
}

mixin {
    // MixinGradle Settings
    add sourceSets.main, "mixins.${mod_id}.refmap.json"
    config "mixins.${mod_id}.json"

    debug.verbose = true
    debug.export = true
}

tasks.withType(ProcessResources).configureEach {
    var replaceProperties = [
            minecraft_version   : minecraft_version, minecraft_version_range: minecraft_version_range,
            forge_version       : forge_version, forge_version_range: forge_version_range,
            loader_version_range: loader_version_range,
            mod_id              : mod_id, mod_name: mod_name, mod_license: mod_license, mod_version: mod_version,
            mod_authors         : mod_authors, mod_description: mod_description, pack_format_number: pack_format_number,
    ]
    inputs.properties replaceProperties

    filesMatching(['META-INF/mods.toml', 'pack.mcmeta']) {
        expand replaceProperties + [project: project]
    }
}

tasks.named('jar', Jar).configure {
    manifest {
        attributes([
                'Specification-Title'     : mod_id,
                'Specification-Vendor'    : mod_authors,
                'Specification-Version'   : '1', // We are version 1 of ourselves
                'Implementation-Title'    : project.name,
                'Implementation-Version'  : project.jar.archiveVersion,
                'Implementation-Vendor'   : mod_authors,
                'Implementation-Timestamp': new Date().format("yyyy-MM-dd'T'HH:mm:ssZ")
        ])
    }

    // This is the preferred method to reobfuscate your jar file
    finalizedBy 'reobfJar'
}

publishing {
    publications {
        register('mavenJava', MavenPublication) {
            from components.java
        }
    }
    repositories {
        maven {
            url "file://${project.projectDir}/repo"
        }
    }
}

tasks.withType(JavaCompile).configureEach {
    options.encoding = 'UTF-8' // Use the UTF-8 charset for Java compilation
}

def modAPIReadable = [
        'neo': "NeoForge",
        'forge': "Forge",
        'fabric': "Fabric",
        'quilt': "Quilt"
]
def modAPILoader = [
        'neo': "neoforge",
        'forge': "forge",
        'fabric': "fabric",
        'quilt': "quilt"
]

// Modrinth
modrinth {
    token = System.getenv("MODRINTH_TOKEN") // Remember to have the MODRINTH_TOKEN environment variable set or else this will fail - just make sure it stays private!
    projectId = modrinth_projectId // This can be the project ID or the slug. Either will work!
    versionNumber = mod_version // You don't need to set this manually. Will fail if Modrinth has this version already
    versionName = "${mod_version} for ${modAPIReadable[mod_api]} ${minecraft_version}"
    versionType = "release" // This is the default -- can also be `beta` or `alpha`
    uploadFile = jar // With Loom, this MUST be set to `remapJar` instead of `jar`!
    gameVersions = [minecraft_version] // Must be an array, even with only one version
    loaders = [modAPILoader[mod_api]] // Must also be an array - no need to specify this if you're using Loom or ForgeGradle
}

// CurseForge
import net.darkhax.curseforgegradle.TaskPublishCurseForge
import net.darkhax.curseforgegradle.Constants as CFG_Constants

tasks.register('publishCurseForge', TaskPublishCurseForge) {
    // This token is used to authenticate with CurseForge. It should be handled
    // with the same level of care and security as your actual password. You
    // should never share your token with an untrusted source or publish it
    // publicly to GitHub or embed it within a project. The best practice is to
    // store this token in an environment variable or a build secret.
    apiToken = System.getenv("CURSEFORGE_API_KEY")

    // Tells CurseForgeGradle to publish the output of the jar task. This will
    // return a UploadArtifact object that can be used to further configure the
    // file.
    def mainFile = upload(curseforge_projectId, jar)
    mainFile.displayName = "CreativeTabSearch-${mod_api}-${minecraft_version}-${mod_version}.jar"
    mainFile.releaseType = CFG_Constants.RELEASE_TYPE_RELEASE
    mainFile.addModLoader(modAPILoader[mod_api])
    mainFile.addGameVersion(minecraft_version)
}

The full Gradle build output (with the --info option, Gradle 8.1.1):

Initialized native services in: /home/srcres/.gradle/native
Initialized jansi services in: /home/srcres/.gradle/native
Received JVM installation metadata from '/opt/oraclejdk-17.0.10': {JAVA_HOME=/opt/oraclejdk-17.0.10, JAVA_VERSION=17.0.10, JAVA_VENDOR=Oracle Corporation, RUNTIME_NAME=Java(TM) SE Runtime Environment, RUNTIME_VERSION=17.0.10+11-LTS-240, VM_NAME=Java HotSpot(TM) 64-Bit Server VM, VM_VERSION=17.0.10+11-LTS-240, VM_VENDOR=Oracle Corporation, OS_ARCH=amd64}
Checking if the launcher JVM can be re-used for build. To be re-used, the launcher JVM needs to match the parameters required for the build process: --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.invoke=ALL-UNNAMED --add-opens=java.prefs/java.util.prefs=ALL-UNNAMED --add-opens=java.base/java.nio.charset=ALL-UNNAMED --add-opens=java.base/java.net=ALL-UNNAMED --add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED -Xmx8192M -Dfile.encoding=US-ASCII -Duser.country=US -Duser.language=en -Duser.variant
To honour the JVM settings for this build a single-use Daemon process will be forked. See https://docs.gradle.org/8.1.1/userguide/gradle_daemon.html#sec:disabling_the_daemon.
Starting process 'Gradle build daemon'. Working directory: /home/srcres/.gradle/daemon/8.1.1 Command: /opt/oraclejdk-17.0.10/bin/java --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.invoke=ALL-UNNAMED --add-opens=java.prefs/java.util.prefs=ALL-UNNAMED --add-opens=java.base/java.nio.charset=ALL-UNNAMED --add-opens=java.base/java.net=ALL-UNNAMED --add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED -Xmx8192M -Dfile.encoding=US-ASCII -Duser.country=US -Duser.language=en -Duser.variant -cp /home/srcres/.gradle/wrapper/dists/gradle-8.1.1-bin/9wiye5v2saajue4irfo8ybqfp/gradle-8.1.1/lib/gradle-launcher-8.1.1.jar -javaagent:/home/srcres/.gradle/wrapper/dists/gradle-8.1.1-bin/9wiye5v2saajue4irfo8ybqfp/gradle-8.1.1/lib/agents/gradle-instrumentation-agent-8.1.1.jar org.gradle.launcher.daemon.bootstrap.GradleDaemon 8.1.1
Successfully started process 'Gradle build daemon'
An attempt to start the daemon took 0.299 secs.
The client will now receive all logging from the daemon (pid: 11088). The daemon log file: /home/srcres/.gradle/daemon/8.1.1/daemon-11088.out.log
Daemon will be stopped at the end of the build 
Using 20 worker leases.
Received JVM installation metadata from '/opt/oraclejdk-17.0.10': {JAVA_HOME=/opt/oraclejdk-17.0.10, JAVA_VERSION=17.0.10, JAVA_VENDOR=Oracle Corporation, RUNTIME_NAME=Java(TM) SE Runtime Environment, RUNTIME_VERSION=17.0.10+11-LTS-240, VM_NAME=Java HotSpot(TM) 64-Bit Server VM, VM_VERSION=17.0.10+11-LTS-240, VM_VENDOR=Oracle Corporation, OS_ARCH=amd64}
Watching the file system is configured to be enabled if available
Now considering [/home/srcres/Coding/Projects/MC-Modding/CreativeTabSearch] as hierarchies to watch
File system watching is active
Starting Build
The configuration detachedConfiguration1 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration detachedConfiguration1 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration detachedConfiguration1 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration detachedConfiguration1 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration classpath is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration classpath is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration classpath is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration classpath is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
Settings evaluated using settings file '/home/srcres/Coding/Projects/MC-Modding/CreativeTabSearch/settings.gradle'.
Projects loaded. Root project using build file '/home/srcres/Coding/Projects/MC-Modding/CreativeTabSearch/build.gradle'.
Included projects: [root project 'CreativeTabSearch-forge-1.20.1']

> Configure project :
Evaluating root project 'CreativeTabSearch-forge-1.20.1' using build file '/home/srcres/Coding/Projects/MC-Modding/CreativeTabSearch/build.gradle'.
The configuration detachedConfiguration1 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration detachedConfiguration1 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration detachedConfiguration1 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration detachedConfiguration1 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration detachedConfiguration2 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration detachedConfiguration2 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration detachedConfiguration2 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration detachedConfiguration2 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration detachedConfiguration3 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration detachedConfiguration3 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration detachedConfiguration3 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration detachedConfiguration3 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration detachedConfiguration4 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration detachedConfiguration4 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration detachedConfiguration4 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration detachedConfiguration4 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration detachedConfiguration5 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration detachedConfiguration5 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration detachedConfiguration5 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration detachedConfiguration5 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :classpath is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :classpath is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :classpath is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :classpath is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
Creating reobfuscation task for JarJar task: jarJar
MixinGradle did not locate the diffplug APT plugin, skipping eclipse task configuration
Downloading net.minecraftforge:forge:1.20.1-47.2.20:userdev
Downloading net.minecraftforge:forge:1.20.1-47.2.20:universal@jar
Downloading net.minecraftforge:forge:1.20.1-47.2.20:sources@jar
Downloading de.oceanlabs.mcp:mcp_config:1.20.1-20230612.114412@zip
Starting process 'command '/usr/lib/jvm/java-21-openjdk/bin/java''. Working directory: /home/srcres/.gradle/.tmp/tmp-jvm8011734926864088220probe Command: /usr/lib/jvm/java-21-openjdk/bin/java -cp . JavaProbe
Successfully started process 'command '/usr/lib/jvm/java-21-openjdk/bin/java''
Received JVM installation metadata from '/usr/lib/jvm/java-21-openjdk': {JAVA_HOME=/usr/lib/jvm/java-21-openjdk, JAVA_VERSION=21.0.2, JAVA_VENDOR=N/A, RUNTIME_NAME=OpenJDK Runtime Environment, RUNTIME_VERSION=21.0.2+13, VM_NAME=OpenJDK 64-Bit Server VM, VM_VERSION=21.0.2+13, VM_VENDOR=Oracle Corporation, OS_ARCH=amd64}
The configuration :mainSourceElements is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
Downloading de.oceanlabs.mcp:mcp_config:1.20.1@zip
Downloading de.oceanlabs.mcp:mcp_config:1.20.1@zip
The configuration :detachedConfiguration1 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration1 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
The configuration :detachedConfiguration1 is both resolvable and consumable. This is considered a legacy configuration and it will eventually only be possible to be one of these.
The configuration :detachedConfiguration1 is both consumable and declarable. This combination is incorrect, only one of these flags should be set.
Adding source set 'main' to mixin processor
Not adding source set 'main' to mixin processor, sourceSet already added
All projects evaluated.
Task name matched 'publishCurseForge'
Selected primary task 'publishCurseForge' from project :
Downloading net.minecraftforge:ForgeAutoRenamingTool:1.+:all
Tasks to be executed: [task ':downloadMcpConfig', task ':extractSrg', task ':createMcpToSrg', task ':compileJava', task ':addMixinsToJar', task ':processResources', task ':classes', task ':jar', task ':configureReobfTaskForReobfJar', task ':reobfJar', task ':publishCurseForge']
Tasks that were excluded: []
Resolve mutations for :downloadMcpConfig (Thread[Execution worker Thread 3,5,main]) started.
:downloadMcpConfig (Thread[Execution worker Thread 3,5,main]) started.

> Task :downloadMcpConfig
Watching 1 directories to track changes
Watching 2 directories to track changes
Watching 3 directories to track changes
Caching disabled for task ':downloadMcpConfig' because:
  Build cache is disabled
Task ':downloadMcpConfig' is not up-to-date because:
  Task.upToDateWhen is false.
Watching 2 directories to track changes
Watching 1 directories to track changes
Watching 0 directories to track changes
Downloading de.oceanlabs.mcp:mcp_config:1.20.1-20230612.114412@zip
Watching 1 directories to track changes
Watching 2 directories to track changes
Watching 3 directories to track changes
Resolve mutations for :extractSrg (Thread[Execution worker Thread 3,5,main]) started.
:extractSrg (Thread[Execution worker Thread 3,5,main]) started.

> Task :extractSrg UP-TO-DATE
Watching 4 directories to track changes
Caching disabled for task ':extractSrg' because:
  Build cache is disabled
Skipping task ':extractSrg' as it is up-to-date.
Resolve mutations for :createMcpToSrg (Thread[Execution worker Thread 3,5,main]) started.
:createMcpToSrg (Thread[included builds,5,main]) started.

> Task :createMcpToSrg UP-TO-DATE
Watching 5 directories to track changes
Caching disabled for task ':createMcpToSrg' because:
  Build cache is disabled
Skipping task ':createMcpToSrg' as it is up-to-date.
Resolve mutations for :compileJava (Thread[included builds,5,main]) started.
:compileJava (Thread[included builds,5,main]) started.

> Task :compileJava UP-TO-DATE
Watching 11 directories to track changes
Watching 17 directories to track changes
Watching 18 directories to track changes
Watching 19 directories to track changes
Watching 20 directories to track changes
Downloading net.minecraft:mappings_parchment:2023.09.03-1.20.1@zip
Downloading net.minecraft:client:1.20.1:mappings@txt
Downloading de.oceanlabs.mcp:mcp_config:1.20.1@zip
Downloading net.minecraft:mappings_parchment:2023.09.03-1.20.1@zip
Downloading net.minecraft:mappings_parchment:2023.09.03-1.20.1@zip
Downloading net.minecraft:mappings_parchment:2023.09.03-1.20.1@zip
Caching disabled for task ':compileJava' because:
  Build cache is disabled
Skipping task ':compileJava' as it is up-to-date.
Resolve mutations for :addMixinsToJar (Thread[included builds,5,main]) started.
:addMixinsToJar (Thread[included builds,5,main]) started.

> Task :addMixinsToJar
Caching disabled for task ':addMixinsToJar' because:
  Build cache is disabled
Task ':addMixinsToJar' is not up-to-date because:
  Task has not declared any outputs despite executing actions.
Contributing refmap (mixins.creativetabsearch.refmap.json) to creativetabsearch-0.1.0.jar in root project 'CreativeTabSearch-forge-1.20.1'
Contributing configs (mixins.creativetabsearch.json) to manifest of creativetabsearch-0.1.0.jar in root project 'CreativeTabSearch-forge-1.20.1'
Resolve mutations for :processResources (Thread[included builds,5,main]) started.
:processResources (Thread[included builds,5,main]) started.

> Task :processResources UP-TO-DATE
Watching 22 directories to track changes
Watching 23 directories to track changes
Watching 25 directories to track changes
Caching disabled for task ':processResources' because:
  Build cache is disabled
Skipping task ':processResources' as it is up-to-date.
Resolve mutations for :classes (Thread[included builds,5,main]) started.
:classes (Thread[included builds,5,main]) started.

> Task :classes UP-TO-DATE
Skipping task ':classes' as it has no actions.
Resolve mutations for :jar (Thread[included builds,5,main]) started.
:jar (Thread[included builds,5,main]) started.

> Task :jar
Watching 25 directories to track changes
Watching 26 directories to track changes
Watching 27 directories to track changes
Caching disabled for task ':jar' because:
  Build cache is disabled
Task ':jar' is not up-to-date because:
  Output property 'archiveFile' file /home/srcres/Coding/Projects/MC-Modding/CreativeTabSearch/build/libs/creativetabsearch-0.1.0.jar has changed.
Watching 26 directories to track changes
Watching 27 directories to track changes
Resolve mutations for :configureReobfTaskForReobfJar (Thread[included builds,5,main]) started.
:configureReobfTaskForReobfJar (Thread[included builds,5,main]) started.

> Task :configureReobfTaskForReobfJar
Caching disabled for task ':configureReobfTaskForReobfJar' because:
  Build cache is disabled
Task ':configureReobfTaskForReobfJar' is not up-to-date because:
  Task.upToDateWhen is false.
Contributing tsrg mappings (/home/srcres/Coding/Projects/MC-Modding/CreativeTabSearch/build/tmp/compileJava/compileJava-mappings.tsrg) to reobfJar in root project 'CreativeTabSearch-forge-1.20.1'
Downloading net.minecraftforge:ForgeAutoRenamingTool:1.+:all
Resolve mutations for :reobfJar (Thread[included builds,5,main]) started.
:reobfJar (Thread[included builds,5,main]) started.

> Task :reobfJar
Watching 27 directories to track changes
Downloading net.minecraftforge:ForgeAutoRenamingTool:1.+:all
Downloading net.minecraftforge:ForgeAutoRenamingTool:1.+:all
Downloading net.minecraftforge:ForgeAutoRenamingTool:1.+:all
Downloading net.minecraftforge:ForgeAutoRenamingTool:1.+:all
Caching disabled for task ':reobfJar' because:
  Build cache is disabled
Task ':reobfJar' is not up-to-date because:
  Task.upToDateWhen is false.
Downloading net.minecraftforge:ForgeAutoRenamingTool:1.+:all
Downloading net.minecraftforge:ForgeAutoRenamingTool:1.+:all
Downloading net.minecraftforge:ForgeAutoRenamingTool:1.+:all
Downloading net.minecraftforge:ForgeAutoRenamingTool:1.+:all
Starting process 'command '/opt/oraclejdk-17.0.10/bin/java''. Working directory: /home/srcres/Coding/Projects/MC-Modding/CreativeTabSearch/build/reobfJar Command: /opt/oraclejdk-17.0.10/bin/java -Dfile.encoding=US-ASCII -Duser.country=US -Duser.language=en -Duser.variant -cp /home/srcres/.gradle/caches/forge_gradle/maven_downloader/net/minecraftforge/ForgeAutoRenamingTool/1.0.6/ForgeAutoRenamingTool-1.0.6-all.jar net.minecraftforge.fart.Main --input /home/srcres/Coding/Projects/MC-Modding/CreativeTabSearch/build/libs/creativetabsearch-0.1.0.jar --output /home/srcres/Coding/Projects/MC-Modding/CreativeTabSearch/build/reobfJar/output.jar --names /home/srcres/Coding/Projects/MC-Modding/CreativeTabSearch/build/reobfJar/mappings.tsrg --lib /home/srcres/.gradle/caches/forge_gradle/minecraft_user_repo/net/minecraftforge/forge/1.20.1-47.2.20_mapped_parchment_2023.09.03-1.20.1/forge-1.20.1-47.2.20_mapped_parchment_2023.09.03-1.20.1.jar --lib /home/srcres/.gradle/caches/forge_gradle/minecraft_repo/versions/1.20.1/client-extra.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/net.minecraftforge/fmlloader/1.20.1-47.2.20/d7a3c85dd7ed1d552bd655b4418df2b09a77c734/fmlloader-1.20.1-47.2.20.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/net.minecraftforge/JarJarSelector/0.3.19/376cc9c8ea60720cf027c01fc033de915699801c/JarJarSelector-0.3.19.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/net.minecraftforge/JarJarMetadata/0.3.19/83feaa9b770e6ac0e96ee4fc23fa89325c5fe2/JarJarMetadata-0.3.19.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/com.google.guava/guava/31.1-jre/60458f877d055d0c9114d9e1a2efb737b4bc282c/guava-31.1-jre.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/com.google.code.findbugs/jsr305/3.0.2/25ea2e8b0c338a877313bd4672d3fe056ea78f0d/jsr305-3.0.2.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/ca.weblite/java-objc-bridge/1.1/1227f9e0666314f9de41477e3ec277e542ed7f7b/java-objc-bridge-1.1.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/net.minecraftforge/forgespi/7.0.1/3b4972a0cdb135853dba219be61a79b22cff1309/forgespi-7.0.1.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/net.minecraftforge/mergetool/1.1.5/f3da18e12c696d35a47c82cbb2cc8b5aa15e1154/mergetool-1.1.5-api.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/org.jetbrains/annotations/24.0.1/13c5c75c4206580aa4d683bffee658caae6c9f43/annotations-24.0.1.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/cpw.mods/securejarhandler/2.1.10/51e6a22c6c716beb11e244bf5b8be480f51dd6b5/securejarhandler-2.1.10.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/cpw.mods/modlauncher/10.0.9/6d9443f56f50bb85cea383686ff9c867391458b/modlauncher-10.0.9.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/org.openjdk.nashorn/nashorn-core/15.3/43977e804697048fc8d81d333a36c17d07a5b3dd/nashorn-core-15.3.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm-commons/9.5/19ab5b5800a3910d30d3a3e64fdb00fd0cb42de0/asm-commons-9.5.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm-util/9.5/64b5a1fc8c1b15ed2efd6a063e976bc8d3dc5ffe/asm-util-9.5.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm-analysis/9.5/490bacc77de7cbc0be1a30bb3471072d705be4a4/asm-analysis-9.5.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm-tree/9.5/fd33c8b6373abaa675be407082fdfda35021254a/asm-tree-9.5.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm/9.5/dc6ea1875f4d64fbc85e1691c95b96a3d8569c90/asm-9.5.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/net.minecraftforge/accesstransformers/8.0.4/272d240aa73f42195b2a68e2ebd8b701ecf41f63/accesstransformers-8.0.4.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/org.antlr/antlr4/4.9.1/e92af8ab33e428461927b484e90bb155a4f3a052/antlr4-4.9.1.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/org.antlr/antlr4-runtime/4.9.1/428664f05d2b7f7b7610204b5aa7c1763f62011a/antlr4-runtime-4.9.1.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/net.minecraftforge/fmlcore/1.20.1-47.2.20/12cd436f148405b50c9b16bd8f3cc6f18db89824/fmlcore-1.20.1-47.2.20.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/net.minecraftforge/eventbus/6.0.5/699143dd438431d06b57416944f7cedbe52e1475/eventbus-6.0.5.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/net.minecraftforge/coremods/5.0.1/386b00279628b105b2d507539c46e134e96f6237/coremods-5.0.1.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/net.minecraftforge/unsafe/0.2.0/54d7a0a5e8fdb71b973025caa46f341ae5904f39/unsafe-0.2.0.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/com.electronwill.night-config/toml/3.6.4/51d6cefb2b55ee55ee26b16391212fb2c7dfb4f4/toml-3.6.4.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/com.electronwill.night-config/core/3.6.4/510f174abbf1c947494db50ef2445683bd52c230/core-3.6.4.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/org.apache.maven/maven-artifact/3.8.5/4433f50c07debefaed0553bd0068f4f48d449313/maven-artifact-3.8.5.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/net.jodah/typetools/0.6.3/a01aaa6ddaea9ec07ec4f209487b7a46a526283a/typetools-0.6.3.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/net.minecrell/terminalconsoleappender/1.2.0/96d02cd3b384ff015a8fef4223bcb4ccf1717c95/terminalconsoleappender-1.2.0.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/org.jline/jline-reader/3.12.1/4382ab1382c7b6f379377ed5f665dc2f6e1218bc/jline-reader-3.12.1.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/org.jline/jline-terminal/3.12.1/c777448314e050d980a6b697c140f3bfe9eb7416/jline-terminal-3.12.1.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/org.spongepowered/mixin/0.8.5/9d1c0c3a304ae6697ecd477218fa61b850bf57fc/mixin-0.8.5.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/cpw.mods/bootstraplauncher/1.1.2/c546e00443d8432cda6baa1c860346980742628/bootstraplauncher-1.1.2.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/net.minecraftforge/JarJarFileSystems/0.3.19/2464eb7d6b9ddb9db36a82cf8a95193e5c6fe020/JarJarFileSystems-0.3.19.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/net.minecraftforge/fmlearlydisplay/1.20.1-47.2.20/87158515a05ca1bb416368e0698c3f1f4bd83832/fmlearlydisplay-1.20.1-47.2.20.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/net.minecraftforge/javafmllanguage/1.20.1-47.2.20/918959a037ab7191a0c45a359f4746ab76c110c3/javafmllanguage-1.20.1-47.2.20.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/net.minecraftforge/lowcodelanguage/1.20.1-47.2.20/c1d1efcb98e8bfcf3dbfed0d1e81b55b648b86bf/lowcodelanguage-1.20.1-47.2.20.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/net.minecraftforge/mclanguage/1.20.1-47.2.20/efca3bee89c0085192b122d47334692b921ca7d1/mclanguage-1.20.1-47.2.20.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/com.github.oshi/oshi-core/6.2.2/54f5efc19bca95d709d9a37d19ffcbba3d21c1a6/oshi-core-6.2.2.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/com.google.code.gson/gson/2.10/dd9b193aef96e973d5a11ab13cd17430c2e4306b/gson-2.10.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/com.google.guava/failureaccess/1.0.1/1dcf1de382a0bf95a3d8b0849546c88bac1292c9/failureaccess-1.0.1.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/com.ibm.icu/icu4j/71.1/9e7d3304c23f9ba5cb71915f7cce23231a57a445/icu4j-71.1.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/com.mojang/authlib/4.0.43/2ff9d747a77570a07a60d32ac77eb6162ad2a2d9/authlib-4.0.43.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/com.mojang/blocklist/1.0.10/5c685c5ffa94c4cd39496c7184c1d122e515ecef/blocklist-1.0.10.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/com.mojang/brigadier/1.1.8/5244ce82c3337bba4a196a3ce858bfaecc74404a/brigadier-1.1.8.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/com.mojang/datafixerupper/6.0.8/3ba4a30557a9b057760af4011f909ba619fc5125/datafixerupper-6.0.8.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/com.mojang/logging/1.1.1/832b8e6674a9b325a5175a3a6267dfaf34c85139/logging-1.1.1.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/com.mojang/patchy/2.2.10/da05971b07cbb379d002cf7eaec6a2048211fefc/patchy-2.2.10.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/com.mojang/text2speech/1.17.9/3cad216e3a7f0c19b4b394388bc9ffc446f13b14/text2speech-1.17.9.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/org.apache.httpcomponents/httpclient/4.5.13/e5f6cae5ca7ecaac1ec2827a9e2d65ae2869cada/httpclient-4.5.13.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/commons-codec/commons-codec/1.15/49d94806b6e3dc933dacbd8acb0fdbab8ebd1e5d/commons-codec-1.15.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/commons-io/commons-io/2.11.0/a2503f302b11ebde7ebc3df41daebe0e4eea3689/commons-io-2.11.0.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/commons-logging/commons-logging/1.2/4bfc12adfe4842bf07b657f0369c4cb522955686/commons-logging-1.2.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/io.netty/netty-handler/4.1.82.Final/644041d1fa96a5d3130a29e8978630d716d76e38/netty-handler-4.1.82.Final.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/io.netty/netty-codec/4.1.82.Final/b77200379acb345a9ffdece1c605e591ac3e4e0a/netty-codec-4.1.82.Final.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/io.netty/netty-transport-native-epoll/4.1.82.Final/476409d6255001ca53a55f65b01c13822f8dc93a/netty-transport-native-epoll-4.1.82.Final-linux-aarch_64.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/io.netty/netty-transport-native-epoll/4.1.82.Final/c7350a71920f3ae9142945e25fed4846cce53374/netty-transport-native-epoll-4.1.82.Final-linux-x86_64.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/io.netty/netty-transport-classes-epoll/4.1.82.Final/e7c7dd18deac93105797f30057c912651ea76521/netty-transport-classes-epoll-4.1.82.Final.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/io.netty/netty-transport-native-unix-common/4.1.82.Final/3e895b35ca1b8a0eca56cacff4c2dde5d2c6abce/netty-transport-native-unix-common-4.1.82.Final.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/io.netty/netty-transport/4.1.82.Final/e431a218d91acb6476ccad5f5aafde50aa3945ca/netty-transport-4.1.82.Final.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/io.netty/netty-buffer/4.1.82.Final/a544270cf1ae8b8077082f5036436a9a9971ea71/netty-buffer-4.1.82.Final.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/io.netty/netty-resolver/4.1.82.Final/38f665ae8dcd29032eea31245ba7806bed2e0fa8/netty-resolver-4.1.82.Final.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/io.netty/netty-common/4.1.82.Final/22d148e85c3f5ebdacc0ce1f5aabb1d420f73f3/netty-common-4.1.82.Final.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/it.unimi.dsi/fastutil/8.5.9/bb7ea75ecdb216654237830b3a96d87ad91f8cc5/fastutil-8.5.9.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/net.java.dev.jna/jna-platform/5.12.1/97406a297c852f4a41e688a176ec675f72e8329/jna-platform-5.12.1.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/net.java.dev.jna/jna/5.12.1/b1e93a735caea94f503e95e6fe79bf9cdc1e985d/jna-5.12.1.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/net.sf.jopt-simple/jopt-simple/5.0.4/4fdac2fbe92dfad86aa6e9301736f6b4342a3f5c/jopt-simple-5.0.4.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/org.apache.commons/commons-compress/1.21/4ec95b60d4e86b5c95a0e919cb172a0af98011ef/commons-compress-1.21.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/org.apache.commons/commons-lang3/3.12.0/c6842c86792ff03b9f1d1fe2aab8dc23aa6c6f0e/commons-lang3-3.12.0.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/org.apache.httpcomponents/httpcore/4.4.15/7f2e0c573eaa7a74bac2e89b359e1f73d92a0a1d/httpcore-4.4.15.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/org.apache.logging.log4j/log4j-core/2.19.0/3b6eeb4de4c49c0fe38a4ee27188ff5fee44d0bb/log4j-core-2.19.0.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/org.apache.logging.log4j/log4j-slf4j2-impl/2.19.0/5c04bfdd63ce9dceb2e284b81e96b6a70010ee10/log4j-slf4j2-impl-2.19.0.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/org.apache.logging.log4j/log4j-api/2.19.0/ea1b37f38c327596b216542bc636cfdc0b8036fa/log4j-api-2.19.0.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/org.joml/joml/1.10.5/22566d58af70ad3d72308bab63b8339906deb649/joml-1.10.5.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.1/cbac1b8d30cb4795149c1ef540f912671a8616d0/lwjgl-glfw-3.3.1.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.1/81716978214ecbda15050ca394b06ef61501a49e/lwjgl-glfw-3.3.1-natives-linux.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.1/a817bcf213db49f710603677457567c37d53e103/lwjgl-jemalloc-3.3.1.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.1/33dbb017b6ed6b25f993ad9d56741a49e7937718/lwjgl-jemalloc-3.3.1-natives-linux.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.1/2623a6b8ae1dfcd880738656a9f0243d2e6840bd/lwjgl-openal-3.3.1.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.1/f906b6439f6daa66001182ea7727e3467a93681b/lwjgl-openal-3.3.1-natives-linux.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.1/831a5533a21a5f4f81bbc51bb13e9899319b5411/lwjgl-opengl-3.3.1.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.1/ab9ab6fde3743e3550fa5d46d785ecb45b047d99/lwjgl-opengl-3.3.1-natives-linux.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-stb/3.3.1/b119297cf8ed01f247abe8685857f8e7fcf5980f/lwjgl-stb-3.3.1.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-stb/3.3.1/3ee7aec8686e52867677110415566a5342a80230/lwjgl-stb-3.3.1-natives-linux.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-tinyfd/3.3.1/ff1914111ef2e3e0110ef2dabc8d8cdaad82347/lwjgl-tinyfd-3.3.1.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl-tinyfd/3.3.1/a35110b9471bea8cde826ab297550ee8c22f5035/lwjgl-tinyfd-3.3.1-natives-linux.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.1/ae58664f88e18a9bb2c77b063833ca7aaec484cb/lwjgl-3.3.1.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.1/1de885aba434f934201b99f2f1afb142036ac189/lwjgl-3.3.1-natives-linux.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/com.machinezoo.noexception/noexception/1.7.1/b65330c98e38a1f915fa54a6e5eca496505e3f0a/noexception-1.7.1.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/org.slf4j/slf4j-api/2.0.1/f48d81adce2abf5ad3cfe463df517952749e03bc/slf4j-api-2.0.1.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/org.codehaus.plexus/plexus-utils/3.3.0/cf43b5391de623b36fe066a21127baef82c64022/plexus-utils-3.3.0.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/com.google.guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/b421526c5f297295adef1c886e5246c39d4ac629/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/org.checkerframework/checker-qual/3.12.0/d5692f0526415fcc6de94bb5bfbd3afd9dd3b3e5/checker-qual-3.12.0.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/com.google.errorprone/error_prone_annotations/2.11.0/c5a0ace696d3f8b1c1d8cc036d8c03cc0cbe6b69/error_prone_annotations-2.11.0.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/com.google.j2objc/j2objc-annotations/1.3/ba035118bc8bac37d7eff77700720999acd9986d/j2objc-annotations-1.3.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/org.antlr/ST4/4.3/92f2c1ad8d84abcbeead6cf7f2c53a04166293c2/ST4-4.3.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/org.antlr/antlr-runtime/3.5.2/cd9cd41361c155f3af0f653009dcecb08d8b4afd/antlr-runtime-3.5.2.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/org.abego.treelayout/org.abego.treelayout.core/1.0.3/457216e8e6578099ae63667bb1e4439235892028/org.abego.treelayout.core-1.0.3.jar --lib /home/srcres/.gradle/caches/modules-2/files-2.1/org.glassfish/javax.json/1.0.4/3178f73569fd7a1e5ffc464e680f7a8cc784b85a/javax.json-1.0.4.jar --disable-abstract-param
Successfully started process 'command '/opt/oraclejdk-17.0.10/bin/java''
Resolve mutations for :publishCurseForge (Thread[included builds,5,main]) started.
:publishCurseForge (Thread[included builds,5,main]) started.

> Task :publishCurseForge
Caching disabled for task ':publishCurseForge' because:
  Build cache is disabled
Task ':publishCurseForge' is not up-to-date because:
  Task has not declared any outputs despite executing actions.
Version slug 1-15-snapshot was already present. Former ID 7519. New ID 7751.
Version slug 1-19-snapshot was already present. Former ID 8993. New ID 9559.
Curse rejected artifact creativetabsearch-0.1.0.jar with error code '403' and message 'Forbidden'.

> Task :publishCurseForge FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':publishCurseForge'.
> Failed to upload artifact creativetabsearch-0.1.0.jar. Error code '403', message 'Forbidden'.

* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --debug option to get more log output.
> Run with --scan to get full insights.

* Get more help at https://help.gradle.org

Deprecated Gradle features were used in this build, making it incompatible with Gradle 9.0.

You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.

See https://docs.gradle.org/8.1.1/userguide/command_line_interface.html#sec:command_line_warnings

BUILD FAILED in 12s
10 actionable tasks: 6 executed, 4 up-to-date