Jump to content

[1.13.2] Minecraft.getInstance() method not found


The_Jackal

Recommended Posts

The mod I'm updating to 1.13.2 compiles but throws NoSuchMethodError on the first call to Minecraft.getInstance().

 

java.lang.NoSuchMethodError: net.minecraft.client.Minecraft.getInstance()Lnet/minecraft/client/Minecraft;

 

I'm running the mod using release 1.13.2-forge-25.0.50.

 

I'm assuming this is a build issue. My build.gradle is:

buildscript {
    repositories {
        maven { url = 'https://files.minecraftforge.net/maven' }
        jcenter()
        mavenCentral()
    }
    dependencies {
        classpath group: 'net.minecraftforge.gradle', name: 'ForgeGradle', version: '3.+', changing: true
        classpath 'com.github.jengelman.gradle.plugins:shadow:4.0.4'
    }
}

apply plugin: 'net.minecraftforge.gradle'
apply plugin: 'com.github.johnrengelman.shadow'

version = "1.13-2-25.0.50"
group = "com.shiny.joypadmod"
archivesBaseName = "JoypadMod"

sourceCompatibility = targetCompatibility = compileJava.sourceCompatibility = compileJava.targetCompatibility = '1.8' // Need this here so eclipse task generates correctly.


allprojects {
        repositories {
            jcenter()
            maven { url "https://jitpack.io" }
        }
   }

minecraft {
    mappings channel: 'snapshot', version: '20180921-1.13'

    runs {
        client {
            workingDirectory project.file('run')

            // Recommended logging data for a userdev environment
            property 'forge.logging.markers', 'SCAN,REGISTRIES,REGISTRYDUMP'

            // Recommended logging level for the console
            property 'forge.logging.console.level', 'debug'

            mods {
                joypadmod {
                    source sourceSets.main
                }
            }
        }

        server {
            workingDirectory project.file('run')

            // Recommended logging data for a userdev environment
            property 'forge.logging.markers', 'SCAN,REGISTRIES,REGISTRYDUMP'

            // Recommended logging level for the console
            property 'forge.logging.console.level', 'debug'

            mods {
                joypadmod {
                    source sourceSets.main
                }
            }
        }
    }
}

dependencies {
    minecraft 'net.minecraftforge:forge:1.13.2-25.0.50'
    implementation 'org.lwjgl.lwjgl:lwjgl:2.+'
    implementation  'com.github.strikerx3:jxinput:0.8'
}

jar {
    manifest {
        attributes([
                "Specification-Title": "JoypadMod",
                "Specification-Vendor": "JoypadMod",
                "Specification-Version": "1.13-2-25.0.50", // We are version 1 of ourselves
                "Implementation-Title": project.name,
                "Implementation-Version": "${version}",
                "Implementation-Vendor" :"JoypadMod",
                "Implementation-Timestamp": new Date().format("yyyy-MM-dd'T'HH:mm:ssZ")
        ])
    }
}

shadowJar {
    classifier = ""
    dependencies {
        include dependency("org.lwjgl.lwjgl:lwjgl:2.+")
        include dependency("com.github.strikerx3:jxinput:0.8")
    }
}

tasks.build.dependsOn shadowJar

I tried adding reobf to the shadow jar, but the build then fails with a mapping error: "No value has been specified for property 'mappings'." The reobf tasks are as follows:

reobf {
	shadowJar {}
}
tasks.build.dependsOn reobfShadowJar

 

Edited by The_Jackal
Link to comment
Share on other sites

I was missing Minecraft as a dependency in the mods.toml file. I took the #optional too literally

 

Adding minecraft as a dependency in the mods.toml file didn't help. 

 

It's something to do with adding the shadowJar task, because when I remove it, I can call Minecraft.getInstance(), but I can't get to the classes I need to shadow.

Edited by The_Jackal
Link to comment
Share on other sites

Why are you using LWJGL 2? Minecraft updated to LWJGL 3 in 1.13.

Don't PM me with questions. They will be ignored! Make a thread on the appropriate board for support.

 

1.12 -> 1.13 primer by williewillus.

 

1.7.10 and older versions of Minecraft are no longer supported due to it's age! Update to the latest version for support.

 

http://www.howoldisminecraft1710.today/

Link to comment
Share on other sites

56 minutes ago, The_Jackal said:

Thanks will update.

You shouldn't even have had that in the beginning, remove it.

 

How are you building your mod?

Don't PM me with questions. They will be ignored! Make a thread on the appropriate board for support.

 

1.12 -> 1.13 primer by williewillus.

 

1.7.10 and older versions of Minecraft are no longer supported due to it's age! Update to the latest version for support.

 

http://www.howoldisminecraft1710.today/

Link to comment
Share on other sites

Using gradlew build. This is similar to how the mod was built for 1.12.2 but it just used a shade configuration and included those dependencies directly. If I don't use shadow, then Minecraft.getInstance() works at runtime, but calls the the jxinput fail. As soon as I add the shadowJar task, Minecraft.getInstance() fails, almost like I'm getting a different version of Minecraft on the classpath.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.