Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

[1.13.2] Minecraft.getInstance() method not found


The_Jackal
 Share

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

 Share



  • Recently Browsing

    No registered users viewing this page.

  • Posts

    • Damn, may be it's possible somehow to create item and add to it "if (right click with this item on to rails) then imitate /summon minecart_new" or smth like this? It sounds to me as possible and not dumb way to reach my goals... Could you please share your thoughts about it?) Maybe this is a good option?
    • My god, i'm an idiot... I changed registration class like this: @EventBusSubscriber(modid=ElderNorseGods.MOD_ID, bus=EventBusSubscriber.Bus.MOD) public abstract class ENGCapabilities { @SubscribeEvent public static void registerCapabilities(final FMLCommonSetupEvent event) { CapabilityManager.INSTANCE.register(IManaHandler.class, new ManaStorage(), ManaHandler::new); } @EventBusSubscriber(modid=ElderNorseGods.MOD_ID, bus=EventBusSubscriber.Bus.FORGE) private static class AttachCapabilities { @SubscribeEvent public static void attachCapabilities(final AttachCapabilitiesEvent<Entity> event) { if(!(event.getObject() instanceof PlayerEntity)) return; ManaProvider provider=new ManaProvider(); event.addCapability(ManaCapability.LOCATION, provider); event.addListener(provider::invalidate); } } } and it works now! Thank you for your help!
    • Hi.  My goal was to create minecart very similar to Furnace_Minecart, but with small property differences, e.g. changing INGREDIENT.COAL to INGREDIENT.APPLE, nevermind. On the first try I've created new class MinecartNew extends MinecartFurnace (which extends AbstractMinecart). So I've registered this new Entity, I have registered Renderer for it and in minecraft I had two practically equal minecart_furnace versions. Then I was able to change my vehicle speed by overriding "public float getMaxCartSpeedOnRail()". At that moment in minecraft I had vanilla minecart_furnace and my vehicle with greater speed and same textures as vanilla one. But I have no idea how to change INGREDIENT.COAL to INGREDIENT.APPLE, because this field is private in MinecartFurnace. To avoid it I changed my new class "MinecartNew extends MinecartFurnace" to "MinecartNew extends AbstractMinecart", copy paste there everything which was in MinecartFurnace and now I can change INGREDIENT without any problem. I can /summon my new entity in minecraft now and I can change its properties as I want. The problem is "how to create item which will be connected to my entity?". I do not want to type /summon to interact with my vehicle every time of course, I want to use item to do it.  Well, I know how to create simple Block and connect it to my custom item, there is no issues. But how to create item and then connect it to entity... So that is my question. Thanks in advance! //P.S. I've tried to look at the vanilla minecarts code and how do they connects to items and it works with special class MinecartItem which requires AbstractMinecart.Type and item.Properties. There is no issues with Item.Properties, but there is problem with AbstractMinecart.Type. Type can be FURNACE, HOPPER, TNT, etc. I can not create new Type, because it is "public static enum Type" in AbstractMinecart. And if I use FURNACE type then of course my item will be registered to vanilla furnace_minecart, not to my new minecart //P.P.S If you know that my sequencing isn't right at all, may be my MinecartNew class should not extends AbstractMinecart or something like this - I'll be glad to receive your advises how to solve my problems
  • Topics

  • Who's Online (See full list)

×
×
  • Create New...

Important Information

By using this site, you agree to our Privacy Policy.