Jump to content
View in the app

A better way to browse. Learn more.

Forge Forums

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Featured Replies

Posted

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

  • Author

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

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/

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/

  • Author

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.

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...

Important Information

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

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.