Jump to content

Fix for Minecraft client seeing changes to mcmod.info file when started from IDE


Cosmic Cleric

Recommended Posts

I tried fixing this issue via a pull request, but it was denied, so figured I would at least make a post about the fix, so each of you could implement it locally.

 

In a nutshell, if you follow these instructions, it tells you to create a mcmod.info file into the /resources folder.  However, when you run the Minecraft client from within the IDE, it will not pick up any changes that you do to the mcmod.info file, as it doesn't see the file at all at runtime.

 

If you modify your module's main build.gradle file, by adding the following lines to the end of the file (after the 'processResources' section), then you can run the client from within your IDE and it will see your changes to the mcmod.info file the next time you start the client up ...

 

task deleteMcmodInfoFile(type: Delete) {
    doLast {
        // We need to delete the duplicate mcmod.info file, which is
        // created when the Gradle task 'copyMcmodInfoFile' (see below)
        // executes, for when we run the client from inside of the
        // IDE, before the jar file is created, or else Gradle will
        // throw a ZipException ('duplicate entry: mcmod.info').
        //
        // delete "$buildDir/classes/main/mcmod.info" <-- DOES NOT WORK!
        file("$buildDir/classes/main/mcmod.info").delete()
    }
}
task copyMcmodInfoFile() {
    doLast {
        // Copy the in-memory/modified mcmod.info file (see above Gradle
        // task 'processResources') into the root folder that the
        // net.minecraftforge.fml.common.discovery.DirectoryDiscoverer
        // class will search in, when running the client from the IDE.
        copy { // A 'type: Copy' task will not run its 'doLast' block!
            from("$buildDir/resources/main") {
                include 'mcmod.info'
            }
            into "$buildDir/classes/main"
        }
    }
}
// Need to hook our before/after tasks up to the 'jar' task ...
jar.dependsOn deleteMcmodInfoFile
jar.finalizedBy copyMcmodInfoFile
                                                          

 

I've only tested this with IntelliJ, but I use the Gradle $buildDir variable value, so it should work with Eclipse as well.

 

Happy New Year all!

 

Link to comment
Share on other sites

Just a follow up to my post (to clarify, based on some comments made in the pull request), all this fix does is the following ...

 

  • Copies mcmod.info into the $buildDir/classes/main directory, after the mod jar has been created.  This allows the Minecraft Client launched from the IDE to see the file.
  • Deletes the previously copied mcmod.info file in the $buildDir/classes/main directory, just before the jar file is created.  This is done to avoid the 'duplicate files in a jar' exception.

This fix does not modify the original mcmod.info file, in the $buildDir/resources/main directory in any way.

This fix does not affect what is put in the completed mod jar file in any way.

 

Its a simple copy of a single file, and a single deletion of the same previously copied single file, implemented via two Gradle tasks.

 

Edited by Cosmic Cleric
Link to comment
Share on other sites

You can also just go to Build > Clean / Recompile Project IIRC

About Me

Spoiler

My Discord - Cadiboo#8887

My WebsiteCadiboo.github.io

My ModsCadiboo.github.io/projects

My TutorialsCadiboo.github.io/tutorials

Versions below 1.14.4 are no longer supported on this forum. Use the latest version to receive support.

When asking support remember to include all relevant log files (logs are found in .minecraft/logs/), code if applicable and screenshots if possible.

Only download mods from trusted sites like CurseForge (minecraft.curseforge.com). A list of bad sites can be found here, with more information available at stopmodreposts.org

Edit your own signature at www.minecraftforge.net/forum/settings/signature/ (Make sure to check its compatibility with the Dark Theme)

Link to comment
Share on other sites

On 1/4/2019 at 2:09 AM, Cadiboo said:

You can also just go to Build > Clean / Recompile Project IIRC

No, that won't copy the file over to the specific location that the forge loader is looking at.  That'll copy the file over for the jaring process, which is a different directory under the 'build' parent directory.

 

This fix is just so that you can see inside of the Minecraft mods screen the settings you put into mcmod.info, when running Minecraft from within the IDE.  Without my fix, the information will still appear correctly from the Minecraft mods screen, when you run it from outside of the IDE, and had previously moved your built jar file into the 'mods' subdir under the '.minecraft' dir.

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.



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • I'm opening the forge 1.8.9 installer properly I click install with the client option selected, it says it installs properly but when I go into my files and also when I go into the minecraft launcher, it's just not there.  JVM info: Oracle Corporation - 1.8.0_431 - 25.431-b10 java.net.preferIPv4Stack=true Found java version 1.8.0_431 Considering minecraft client jar Considering library net.minecraftforge:forge:1.8.9-11.15.1.2318-1.8.9: Not Downloading {Wrong Side} Considering library net.minecraft:launchwrapper:1.12: Not Downloading {Wrong Side} Considering library org.ow2.asm:asm-all:5.0.3: Not Downloading {Wrong Side} Considering library jline:jline:2.13: Not Downloading {Wrong Side} Considering library com.typesafe.akka:akka-actor_2.11:2.3.3 Considering library com.typesafe:config:1.2.1 Considering library org.scala-lang:scala-actors-migration_2.11:1.1.0 Considering library org.scala-lang:scala-compiler:2.11.1 Considering library org.scala-lang.plugins:scala-continuations-library_2.11:1.0.2 Considering library org.scala-lang.plugins:scala-continuations-plugin_2.11.1:1.0.2 Considering library org.scala-lang:scala-library:2.11.1 Considering library org.scala-lang:scala-parser-combinators_2.11:1.0.1 Considering library org.scala-lang:scala-reflect:2.11.1 Considering library org.scala-lang:scala-swing_2.11:1.0.1 Considering library org.scala-lang:scala-xml_2.11:1.0.2 Considering library lzma:lzma:0.0.1: Not Downloading {Wrong Side} Considering library net.sf.jopt-simple:jopt-simple:4.6: Not Downloading {Wrong Side} Considering library java3d:vecmath:1.5.2 Considering library net.sf.trove4j:trove4j:3.0.3 Extracting: /forge-1.8.9-11.15.1.2318-1.8.9-universal.jar To: C:\Users\Ian\AppData\Roaming\.minecraft\libraries\net\minecraftforge\forge\1.8.9-11.15.1.2318-1.8.9\forge-1.8.9-11.15.1.2318-1.8.9.jar That's the installer log and I have no idea if anything is wrong.
    • https://mclo.gs/NQ786zI   I don’t understand what I need to do.
    • I am wanting to give the armour in my mod special properties, but I have no idea how to do so.   For the first armour set I want it to be the case that when the full set is worn it has the properties of a carved pumpkin, making it so you won't aggravate endermen when you look at them.    The second, and presumably harder property is that for the second set I would like it to be the case that when the full set is worn, you can walk over the void without falling. (I was considering using the levitation to accomplish this but I wanted to check beforehand).   Would both of these specialities be achievable for each armour set and how exactly would they both be done? Help would be much appreciated. 
    • I finally got my Forge server up and running thanks to the help of the people on this forum and played fine for a day. Now since I started playing today, the server runs for 20-30 minutes then freezes and kicks everyone out but stays up and running but won't let anyone connect. Here is the latest debug log and crashlog from the server. Thank you for reading & helping   https://gist.github.com/Dwolfwoood/d0410e581c86772694f1d8007431c409   https://gist.github.com/Dwolfwoood/b5d521fd071dbfcc816949924757fef9
    • I got the infamous crash log that you get when you have a mod or multiple mods that are incompatible with the version being used. however.. I have no idea which ones are wrong. I was hoping the forums could help me figure it out. does the crsh report tell me and im just dumb?  
  • Topics

×
×
  • Create New...

Important Information

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