Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cannot get property 'sha' on null object #15

Open
Hexeption opened this issue Mar 7, 2019 · 1 comment
Open

Cannot get property 'sha' on null object #15

Hexeption opened this issue Mar 7, 2019 · 1 comment

Comments

@Hexeption
Copy link

I've been trying to get this plugin to work for the last few hours and this is the error I'm getting

screen shot 2019-03-07 at 04 13 30

build.gradle

buildscript {
    repositories {
        mavenLocal()
        mavenCentral()
        maven {
            name = "forge"
            url = "https://files.minecraftforge.net/maven"
        }
        maven {
            name = "sonatype"
            url = "https://oss.sonatype.org/content/repositories/snapshots/"
        }
        maven {
            url  "https://jcenter.bintray.com"
        }
        maven {
            url "https://plugins.gradle.org/m2/"
        }
    }
    dependencies {
        classpath 'net.minecraftforge.gradle:ForgeGradle:2.3+'
        classpath 'net.nemerosa:versioning:2.7.1'
        classpath "gradle.plugin.com.github.breadmoirai:github-release:2.2.4"
    }
}

apply plugin: 'java'
apply plugin: 'maven'
apply plugin: "idea"
apply plugin: 'net.minecraftforge.gradle.patcher'
apply plugin: 'net.minecraftforge.gradle.launch4j'
apply plugin: 'net.nemerosa.versioning'
apply plugin: "com.github.breadmoirai.github-release"

group 'kettlefoundation'
version 'git-' +  versioning.info.branch + "-" + versioning.info.build

repositories {
    clear()
    mavenCentral()
    maven {
        name = "forge"
        url = "https://files.minecraftforge.net/maven"
    }
    maven {
        name = "sonatype"
        url = "https://oss.sonatype.org/content/repositories/snapshots/"
    }
    maven {
        name 'minecraft'
        url 'https://libraries.minecraft.net/'
    }
    maven {
        name 'maven'
        url 'https://mvnrepository.com/artifact/'
    }
    maven {
        name 'KettleFoundation'
        url 'http://repo.hexeption.co.uk/artifactory/Kettle/'
    }
    flatDir {
        dirs 'src/main/resources'
    }
}

configurations{
    compile.extendsFrom exported
    libraries
}

dependencies {
    testCompile group: 'junit', name: 'junit', version: '4.12'
    compile(group: 'bukkit', name: 'bukkit', version: '1.12.2-R0.1')
}

jar{
    into('lib') {
        from configurations.libraries
    }
    exclude "**/configurations/**"
    exclude "**/META-INF/**"
    exclude "log4j2.xml"
}

minecraft {
    version = "1.12.2"
    mappings = "snapshot_nodoc_20171003"
    workspaceDir = "projects"
    versionJson = "jsons/1.12.2-dev.json"
    buildUserdev = true
    buildInstaller = false
    installerVersion = "1.5"

    def common = {
        patchPrefixOriginal "../src-base/minecraft"
        patchPrefixChanged "../src-work/minecraft"
        mainClassServer "net.minecraft.launchwrapper.Launch"
        tweakClassServer "net.minecraftforge.fml.common.launcher.FMLServerTweaker"
    }

    projects {
        forge {
            rootDir "forge/"
            patchDir "forge/patches/minecraft/"
            patchAfter "clean"
            genPatchesFrom "clean"
            genMcpPatches = false
            applyMcpPatches = false
            s2sKeepImports = true
            with common
        }

        kettle {
            rootDir "."
            patchDir "patches/"
            patchAfter "forge"
            genPatchesFrom "forge"
            genMcpPatches = true
            applyMcpPatches = true
            s2sKeepImports = true
            with common
        }
    }
}

sourceCompatibility = 1.8
tasks.generateXmlConfig.dependsOn installer
tasks.compileJava.enabled = false
tasks.build.dependsOn 'launch4j'
tasks.reobfuscate.setProperty("extraSrg",["PK: org/bukkit/craftbukkit org/bukkit/craftbukkit/v1_12_R1"])

installer {
    classifier = 'installer'
    from "forge/src/main/resources/forge_logo.png"
    rename "forge_logo\\.png", "big_logo.png"
}

launch4j {
    jar = installer.archivePath.canonicalPath
    outfile = file("build/distributions/${project.name}-${project.version}-installer-win.exe").canonicalPath
    icon = file('icon.ico').canonicalPath
    manifest = file('l4jManifest.xml').canonicalPath
    jreMinVersion = '1.8.0'
    initialHeapPercent = 5
    maxHeapPercent = 100
}

tasks.withType(JavaCompile) {
    options.encoding = 'UTF-8'
}

task signUniversal(type: SignJar, dependsOn: 'outputJar') {
    onlyIf {
        project.hasProperty('jarsigner')
    }

    def jarsigner = [:]

    if (project.hasProperty('jarsigner'))
        jarsigner = project.jarsigner

    alias = 'forge'
    exclude "paulscode/**"
    storePass = jarsigner.storepass
    keyPass = jarsigner.keypass
    keyStore = jarsigner.keystore
    inputFile = outputJar.archivePath
    outputFile = outputJar.archivePath
}
build.dependsOn signUniversal
installer.dependsOn signUniversal

outputJar {
    classifier = 'universal'

    manifest.attributes([
            "Implementation-Title": "Kettle",
            "Implementation-Version": version,
            "Main-Class": "net.minecraftforge.fml.relauncher.ServerLaunchWrapper",
            "TweakClass": "net.minecraftforge.fml.common.launcher.FMLTweaker",
            "Class-Path": getServerClasspath(file("jsons/1.12.2-rel.json"))
    ])
}

processJson {
    releaseJson = "jsons/1.12.2-rel.json"
    addReplacements([
            "@minecraft_version@": project.minecraft.version,
            "@version@": project.version,
            "@project@": "kettle",
            "@artifact@": "kf:kettle:${project.version}",
            "@universal_jar@": { outputJar.archiveName },
            "@timestamp@": new Date().format("yyyy-MM-dd'T'HH:mm:ssZ"),
    ])
}

extractForgeSources {
    exclude "**/SideOnly.java", "**/Side.java"
}

genGradleProjects {
    addCompileDep "junit:junit:4.12"
    addCompileDep "bukkit:bukkit:1.12.2-R0.1"
    addRepo("KettleFoundation", "http://repo.hexeption.co.uk/artifactory/Kettle/")
}

import groovy.json.JsonSlurper

import java.util.stream.Collectors

String getServerClasspath(File file) {
    def node = new JsonSlurper().parse(file)
    def out = new StringBuilder()
    node.versionInfo.libraries.each { lib ->
        if (lib.serverreq)
        {
            def split = lib.name.split(':')
            def group = split[0].replace('.', '/')
            def artifact = split[1]
            def version = split[2]
            out += "libraries/$group/$artifact/$version/$artifact-${version}.jar "
        }
    }
    out += "minecraft_server.1.12.2.jar"
    return out.toString()
}

task copyLibsToBuild(type: Copy) {
    from file("release/libraries.zip").canonicalPath
    into file("build/distributions/").canonicalPath
}

tasks.githubRelease.dependsOn 'copyLibsToBuild'
githubRelease {
    token = "0"
    owner = "KettleFoundation"
    repo = "Kettle"
    releaseName = "Kettle Dev " + versioning.info.branch + "-" + versioning.info.build
    body { """\
## Setup Info
Don't forget to download [Minecraft Server 1.12.2](https://launcher.mojang.com/mc/game/1.12.2/server/886945bfb2b978778c3a0288fd7fab09d315b25f/server.jar) 

(Rename it to `minecraft_server.1.12.2.jar`)

${(changelog().call().readLines().stream().map { "- $it" }.collect(Collectors.joining('\n', '## Changelog\n', '')))}
"""}
    prerelease = true
    releaseAssets = fileTree("build/distributions/").filter { it.name.endsWith("jar") || it.name.endsWith("zip") }
}

@gciatto
Copy link

gciatto commented Mar 13, 2020

This is still there in version 2.2.12. I noticed this happens when the last release on GitbHub is a draft.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants