Jump to content

[TUTORIAL] Getting Started with ForgeGradle


GrygrFlzr

Recommended Posts

This tutorial assumes you have some previous knowledge of Minecraft modding and have gotten all the initial stuff done (PATH variables whatnot).

Feel free to correct me. Check back once in a while for updates.

 

Contents

  • [iurl=#initial_setup]Initial Setup[/iurl]
  • [iurl=#advanced_setup]Advanced Setup[/iurl]
  • [iurl=#update_forge]Updating Forge[/iurl]
  • [iurl=#update_forgegradle]Updating ForgeGradle[/iurl]
  • [iurl=#compiling]Compiling/Obfuscating and Version Details[/iurl]
  • [iurl=#migrationbeta]Migrating to 1.8[/iurl]
  • [iurl=#migration]Migrating to 1.7[/iurl]
  • [iurl=#update_forgegradle]Updating ForgeGradle[/iurl]
  • [iurl=#troubleshoot]Troubleshooting Common Issues[/iurl]

 


 

[ANCHOR=initial_setup]Initial Setup[/ANCHOR]

First of all, make sure you have the latest version of Eclipse.

Download the latest version of the Forge source from the usual place and extract it somewhere.

 

Go inside the Forge folder.

Windows:

Use the cd command to navigate to the correct directory.

You can also hold shift, right click and click Open command window here to open it in the current directory.

Run the following in command prompt:

gradlew.bat setupDecompWorkspace
gradlew.bat eclipse

Mac OS X:

Use the cd command to navigate to the correct directory.

Run the following in terminal:

bash gradlew setupDecompWorkspace
bash gradlew eclipse

Linux:

Use the cd command to navigate to the correct directory.

Run the following in terminal:

./gradlew setupDecompWorkspace
./gradlew eclipse

You may need to run the following beforehand if the gradlew file is not executable:

chmod +x ./gradlew

 

Replace eclipse with idea if you are using IntelliJ IDEA.

 

If it is taking a long time to download assets, you can skip it by copying the assets folder from your normal minecraft folder to forge-directory/.gradle (so you will have forge-directory/.gradle/assets).

 

Now open up Eclipse and point the project directory to the eclipse folder. If this doesn't work for you, skip to the advanced setup.

You're done with the initial setup! You can now delete or study the example mod from src/main/java and the mcmod.info in src/main/resources. Replace it with your own mod.

 


 

[ANCHOR=advanced_setup]Advanced Initial Setup[/ANCHOR]

For those who cannot get the simple method to work.

See [iurl=#troubleshoot]the troubleshooting section[/iurl] before trying this method.

 

Open up Eclipse, but do not point the project directory to the eclipse folder.

Instead, select a new folder (not inside the extracted Forge folder) as your workspace.

 

Go to File > Import... and select General > Existing Projects into Workspace. Do not import a Gradle Project.

zTIswIM.png

Click Next and set the root directory as the root forge directory, not the eclipse directory within it.

Make sure the project is selected and click Finish.

 

You're not done yet! Go to Run > Run Configurations....

Right click Java Application and click New and you will see New_configuration under it.

Set the name to Run Client or something as descriptive. Do not name it Client, it will conflict with the one Forge has. Then, set the current project, and set the Main class as:

net.minecraft.launchwrapper.Launch

Go to the Arguments tab, and add the following under Program Arguments:

--version 1.6 --tweakClass cpw.mods.fml.common.launcher.FMLTweaker --accessToken FML --userProperties {}

And this under the VM Arguments:

-Dfml.ignoreInvalidMinecraftCertificates=true

Click Apply to save the configuration.

 

Now create another new configuration under Java Application and name it Run Server (or something similar). Do not name it Server, it will conflict with the one Forge has.

Again, set the current project, but set the main class to the following instead:

cpw.mods.fml.relauncher.ServerLaunchWrapper

Click Apply. No arguments are required for the server, though you may want to pass some yourself.

44sMzFo.png

 

 

 


 

[ANCHOR=update_forge]Updating Forge[/ANCHOR]

ForgeGradle allows you to update your dev environment to the latest version of Forge easily.

Open your build.gradle file. The following lines will interest you for this part:

minecraft {
    version = "1.7.2-10.12.2.1147"
    assetDir = "eclipse/assets"
}

Simply change the version field to the latest version of Forge, such as 1.7.10-10.13.0.1187. All versions are listed on the Forge download page.

minecraft {
    version = "1.7.10-10.13.0.1187"
    assetDir = "eclipse/assets"
}

Save the file, then navigate to your Forge directory. Run the setup command from the initial setup (setupDecompWorkspace and eclipse). Forge will update the necessary files.

If the process fails, you may also need to update ForgeGradle.

 


 

[ANCHOR=update_forgegradle]Updating ForgeGradle[/ANCHOR]

ForgeGradle is separate from Forge. Updating Forge alone will fail when updating between ForgeGradle versions.

These are the current versions of ForgeGradle and the versions of Forge they cover:

ForgeGradle

Forge Versions

-               

            959<, 965

1.0             

              960-964

1.1             

            967-1047

1.2             

                1048+

 

Delete your .gradle folder.

Then, open your build.gradle file. The following lines will interest you for this part:

    dependencies {
        classpath 'net.minecraftforge.gradle:ForgeGradle:1.1-SNAPSHOT'
    }

Replace 1.1-SNAPSHOT with 1.2-SNAPSHOT.

 

Afterwards, go to the bottom of the file - this part can also be done on any previous version of ForgeGradle

processResources
{
    // replace stuff in mcmod.info, nothing else
    from(sourceSets.main.resources.srcDirs) {
    ...

Append 3 lines to the beginning of processResources:

processResources
{
    // this will ensure that this task is redone when the versions change.
    inputs.property "version", project.version
    inputs.property "mcversion", project.minecraft.version

    // replace stuff in mcmod.info, nothing else
    from(sourceSets.main.resources.srcDirs) {
    ...

 

Save the file, then navigate to your Forge directory. Run the setup command from the initial setup (setupDecompWorkspace and eclipse). ForgeGradle will update the necessary files.

 


 

[ANCHOR=compiling]Compiling/Obfuscating and Version Details[/ANCHOR]

Open your build.gradle file. The following lines will interest you for this part:

version = "1.0"
group= "com.yourname.modid" // http://maven.apache.org/guides/mini/guide-naming-conventions.html
archivesBaseName = "modid"

Change the version field to the version of your mod. For usability purposes append the version of Minecraft as a prefix, such as 1.7.10-

Change the group field to your personal project group names. For example, Forge uses net.minecraftforge

Change the archivesBaseName field to your Mod ID, the same one as you put in your @Mod annotation.

Your build.gradle file should look a bit like this now:

version = "1.7.10-1.0"
group= "com.github.username" // http://maven.apache.org/guides/mini/guide-naming-conventions.html
archivesBaseName = "TestMod"

Alternatively, you can append a suffix of the Minecraft version to your archivesBaseName field instead of the version field.

 

Go inside the Forge folder and run the following in command prompt/terminal.

Windows:

gradlew.bat build

Mac OS X:

bash gradlew build

Linux:

./gradlew build

 

If this is not the first time you are building and ForgeGradle seems to ignore any changes you made to your build.gradle file, you need to run the following command beforehand.

Backup your src folder first as it may be deleted.

Windows:

gradlew.bat clean

Mac OS X:

bash gradlew clean

Linux:

./gradlew clean

 

Your mod will be packaged as a .jar file inside forge-directory/build/libs - in our example, it will be named TestMod-1.7.2-1.0.jar

For more complex setups requiring other mods as dependencies, visit the #ForgeGradle or #MinecraftForge channels on EsperNet.

 


 

[ANCHOR=migrationbeta]Migration to 1.8 - Currently in beta![/ANCHOR]

Here are some of the biggest changes for 1.8:

  • Imports should change from [TT]cpw.mods[/TT] to [TT]net.minecraftforge[/TT]. For example:
    [TT]import cpw.mods.fml.common.Mod;[/TT]
    should be changed to
    [TT]import net.minecraftforge.fml.common.Mod;[/TT]
  • New BlockState stuff currently in development, details coming Soon™.
  • More to come as Forge for 1.8 is developed...

 


 

[ANCHOR=migration]Migration from 1.6 to 1.7[/ANCHOR]

Here are some of the biggest changes for 1.7:

  • Mod metadata parsing has been overhauled and no longer supports the authors field. If you are still using it in your mcmod.info file, change it to authorList.
    Technically, authorList has been in FML since 1.5, but the wiki has not been updated to reflect this change.
  • Goodbye block and item IDs! Those are now handled internally for you!
    Consequently, functions such as getBlockID no longer exist and have been replaced with a non-ID equivalent (in this case, getBlock).
  • NetworkMod is gone. A more advanced networking library is available instead (Netty).
  • @ForgeSubscribe is now @SubscribeEvent
  • Interfaces are now events
  • Renamed packets
  • List of blocks are now in Blocks.class instead of Block.class
  • List of items are now in Items.class instead of Item.class

 


 

[ANCHOR=troubleshoot]Troubleshooting Common Issues[/ANCHOR]

No Audio: Unable to play unknown soundEvent

Add the following to your runtime arguments:

Windows

--assetIndex 1.7.10 --assetsDir %userprofile%\.gradle\caches\minecraft\assets

If %userprofile% does not resolve to its actual value, you will need to use the absolute path.

You can type it in Windows Explorer to resolve the directory.

For example, mine would be [TT]C:\Users\GrygrFlzr\.gradle\caches\minecraft\assets[/TT]

Linux/OS X

--assetIndex 1.7.10 --assetsDir ~/.gradle/caches/minecraft/assets

 

 

Crash: joptsimple.MissingRequiredOptionException: Missing required option(s) ['accessToken']

Add the following to your runtime arguments:

 --accessToken FML

 

 

Crash: joptsimple.MissingRequiredOptionException: Missing required option(s) ['userProperties']

Add the following to your runtime arguments:

 --userProperties {}

 

 

Crash: java.lang.UnsatisfiedLinkError: no lwjgl in java.library.path

Right click the project (Minecraft) > Properties > Java Build Path > Libraries

Scroll down to find your version of lwjgl (eg. [TT]lwjgl-2.9.1.jar[/TT]), click the arrow beside it, and double click Native Library Location.

Locate your [TT]/build/natives[/TT] folder located in your workspace directory. For example, mine would be [TT]C:\Users\GrygrFlzr\Mods\GlowstoneWire\build\natives[/TT]

l1Hx5By.png

AeooTRh.png

qKI1cfY.png

 

You need to agree to the EULA in order to run the server. Go to eula.txt for more info.

Follow what it says. Go to forge-directory/eclipse, open eula.txt and change [TT]false[/TT] to [TT]true[/TT].

If the file does not exist, just create one named eula.txt, and put the following in it:

#By changing the setting below to TRUE you are indicating your agreement to our EULA (https://account.mojang.com/documents/minecraft_eula).
eula=true

 


 

[ANCHOR=credits]Thanks to:[/ANCHOR]

  • LexManos for the new

  • AbrarSyed for sort of explaining the process at 4AM when he should be sleeping, and giving pointers on ForgeGradle stuff
  • luacs1998 for pointing out Run Configuration arguments for previous versions of ForgeGradle
  • PaleoCrafter and SoniEx2 for mentioning authorList
  • A whole bunch of other people I forgot to mention

 

Visit the #ForgeGradle IRC channel on EsperNet for questions and discussion on ForgeGradle.

For a comprehensive list of mods, visit the MCF Modlist!

Link to comment
Share on other sites

Thanks!

 

Now I need to make "one project per mod in the same workspace" work and modify the build.gradle file to work like I want it to and I'll be a happy camper. ;)

 

ItemBlock is not a Block

ItemStack is not an Item

Damage value is not metadata

 

Stop confusing them.

Link to comment
Share on other sites

As of the time of writing, ForgeGradle does not yet support deobfuscating Minecraft, and so none of the usual Minecraft source files are there.

 

Are you sure of this? O.o

That seems quite absurd to me, seeing as this is the official way to build and use forge as of the latest builds.

I'm quite sure they wouldn't release it if it where in such a useless state...

If you guys dont get it.. then well ya.. try harder...

Link to comment
Share on other sites

As of the time of writing, ForgeGradle does not yet support deobfuscating Minecraft, and so none of the usual Minecraft source files are there.

 

Are you sure of this? O.o

That seems quite absurd to me, seeing as this is the official way to build and use forge as of the latest builds.

I'm quite sure they wouldn't release it if it where in such a useless state...

The only mistake in that sentence (which luacs1998 has fixed) was saying deobfuscating instead of decompiling. At this point, ForgeGradle does not even decompile Minecraft, nor does it need to - you do not need access to Minecraft source code to run your mod.

For a comprehensive list of mods, visit the MCF Modlist!

Link to comment
Share on other sites

I'm locking this thread, people are going off topic.

Could a kind soul who is more experienced with ForgeGradle (AbrarSyed u.u) please create a "Common Problems and Solutions" thread please?

Read the EAQ before posting! OR ELSE!

 

This isn't building better software, its trying to grab a place in the commit list of a highly visible github project.

 

www.forgeessentials.com

 

Don't PM me, I don't check this account unless I have to.

Link to comment
Share on other sites

  • 4 months later...
  • 1 month later...

Just followed the instructions to create a workspace. Needed to do the advanced setup.

'Run Client' is not working good. Client crashes. I followed the instructions like in the initial setup

This is the Log:

[21:07:32] [main/INFO] [LaunchWrapper]: Loading tweak class name cpw.mods.fml.common.launcher.FMLTweaker
[21:07:32] [main/INFO] [LaunchWrapper]: Using primary tweak class name cpw.mods.fml.common.launcher.FMLTweaker
[21:07:32] [main/INFO] [LaunchWrapper]: Calling tweak class cpw.mods.fml.common.launcher.FMLTweaker
[21:07:32] [main/INFO] [FML]: Forge Mod Loader version 7.2.172.1073 for Minecraft 1.7.2 loading
[21:07:32] [main/INFO] [FML]: Java is Java HotSpot(TM) 64-Bit Server VM, version 1.7.0_25, running on Windows 7:amd64:6.1, installed at C:\Program Files\Java\jre7
[21:07:32] [main/INFO] [FML]: Managed to load a deobfuscated Minecraft name- we are in a deobfuscated environment. Skipping runtime deobfuscation
[21:07:32] [main/INFO] [LaunchWrapper]: Loading tweak class name cpw.mods.fml.common.launcher.FMLInjectionAndSortingTweaker
[21:07:32] [main/INFO] [LaunchWrapper]: Loading tweak class name cpw.mods.fml.common.launcher.FMLDeobfTweaker
[21:07:32] [main/INFO] [LaunchWrapper]: Calling tweak class cpw.mods.fml.common.launcher.FMLInjectionAndSortingTweaker
[21:07:32] [main/INFO] [LaunchWrapper]: Calling tweak class cpw.mods.fml.common.launcher.FMLInjectionAndSortingTweaker
[21:07:32] [main/INFO] [LaunchWrapper]: Calling tweak class cpw.mods.fml.relauncher.CoreModManager$FMLPluginWrapper
[21:07:32] [main/ERROR] [FML]: The binary patch set is missing. Either you are in a development environment, or things are not going to work!
[21:07:34] [main/ERROR] [FML]: The minecraft jar file:/C:/Users/pieter/.gradle/caches/minecraft/net/minecraftforge/forge/1.7.2-10.12.1.1073/forgeSrc-1.7.2-10.12.1.1073.jar!/net/minecraft/client/ClientBrandRetriever.class appears to be corrupt! There has been CRITICAL TAMPERING WITH MINECRAFT, it is highly unlikely minecraft will work! STOP NOW, get a clean copy and try again!
[21:07:34] [main/ERROR] [FML]: FML has been ordered to ignore the invalid or missing minecraft certificate. This is very likely to cause a problem!
[21:07:34] [main/ERROR] [FML]: Technical information: ClientBrandRetriever was at jar:file:/C:/Users/pieter/.gradle/caches/minecraft/net/minecraftforge/forge/1.7.2-10.12.1.1073/forgeSrc-1.7.2-10.12.1.1073.jar!/net/minecraft/client/ClientBrandRetriever.class, there were 0 certificates for it
[21:07:34] [main/ERROR] [FML]: FML appears to be missing any signature data. This is not a good thing
[21:07:34] [main/INFO] [LaunchWrapper]: Calling tweak class cpw.mods.fml.relauncher.CoreModManager$FMLPluginWrapper
[21:07:34] [main/INFO] [LaunchWrapper]: Calling tweak class cpw.mods.fml.common.launcher.FMLDeobfTweaker
[21:07:35] [main/INFO] [LaunchWrapper]: Launching wrapped minecraft {net.minecraft.client.main.Main}
[21:07:37] [main/ERROR] [LaunchWrapper]: Unable to launch
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0_25]
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_25]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_25]
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.7.0_25]
at net.minecraft.launchwrapper.Launch.launch(Launch.java:134) [launchwrapper-1.9.jar:?]
at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.9.jar:?]
Caused by: java.lang.UnsatisfiedLinkError: no lwjgl in java.library.path
at java.lang.ClassLoader.loadLibrary(Unknown Source) ~[?:1.7.0_25]
at java.lang.Runtime.loadLibrary0(Unknown Source) ~[?:1.7.0_25]
at java.lang.System.loadLibrary(Unknown Source) ~[?:1.7.0_25]
at org.lwjgl.Sys$1.run(Sys.java:73) ~[lwjgl-2.9.0.jar:?]
at java.security.AccessController.doPrivileged(Native Method) ~[?:1.7.0_25]
at org.lwjgl.Sys.doLoadLibrary(Sys.java:66) ~[lwjgl-2.9.0.jar:?]
at org.lwjgl.Sys.loadLibrary(Sys.java:95) ~[lwjgl-2.9.0.jar:?]
at org.lwjgl.Sys.<clinit>(Sys.java:112) ~[lwjgl-2.9.0.jar:?]
at net.minecraft.client.Minecraft.getSystemTime(Minecraft.java:2690) ~[Minecraft.class:?]
at net.minecraft.client.main.Main.main(Main.java:40) ~[Main.class:?]
... 6 more

Coding, Testing, Smiling, Publishing!

Link to comment
Share on other sites

  • 3 weeks later...

For anyone moving from FG for 1.6.4 to 1.7.2, the sonatype maven entry needs to be added after the forge maven entry in the buildscript section at the top:

 

        maven {
            name = "sonatype"
            url = "https://oss.sonatype.org/content/repositories/snapshots/"
        }

Link to comment
Share on other sites

thank you for this; the advanced initial setup finally worked for me after battling all last night trying to get the "simple" version to work on my mac.  the only thing that's still going wrong is that i am not getting sound, but that's for another post; i think i saw something about that earlier.

 

something you might want to add to the tutorial, since we're now mostly modding 1.7:  in the arguments for the "run client" configuration, one needs to type

--version 1.7 --tweakClass cpw.mods.fml.common.launcher.FMLTweaker --accessToken Player1234

because 1.7 needs the access token, or the client will die.

Link to comment
Share on other sites

  • 3 weeks later...

Just followed the instructions to create a workspace. Needed to do the advanced setup.

'Run Client' is not working good. Client crashes. I followed the instructions like in the initial setup

This is the Log:

[21:07:32] [main/INFO] [LaunchWrapper]: Loading tweak class name cpw.mods.fml.common.launcher.FMLTweaker
[21:07:32] [main/INFO] [LaunchWrapper]: Using primary tweak class name cpw.mods.fml.common.launcher.FMLTweaker
[21:07:32] [main/INFO] [LaunchWrapper]: Calling tweak class cpw.mods.fml.common.launcher.FMLTweaker
[21:07:32] [main/INFO] [FML]: Forge Mod Loader version 7.2.172.1073 for Minecraft 1.7.2 loading
[21:07:32] [main/INFO] [FML]: Java is Java HotSpot(TM) 64-Bit Server VM, version 1.7.0_25, running on Windows 7:amd64:6.1, installed at C:\Program Files\Java\jre7
[21:07:32] [main/INFO] [FML]: Managed to load a deobfuscated Minecraft name- we are in a deobfuscated environment. Skipping runtime deobfuscation
[21:07:32] [main/INFO] [LaunchWrapper]: Loading tweak class name cpw.mods.fml.common.launcher.FMLInjectionAndSortingTweaker
[21:07:32] [main/INFO] [LaunchWrapper]: Loading tweak class name cpw.mods.fml.common.launcher.FMLDeobfTweaker
[21:07:32] [main/INFO] [LaunchWrapper]: Calling tweak class cpw.mods.fml.common.launcher.FMLInjectionAndSortingTweaker
[21:07:32] [main/INFO] [LaunchWrapper]: Calling tweak class cpw.mods.fml.common.launcher.FMLInjectionAndSortingTweaker
[21:07:32] [main/INFO] [LaunchWrapper]: Calling tweak class cpw.mods.fml.relauncher.CoreModManager$FMLPluginWrapper
[21:07:32] [main/ERROR] [FML]: The binary patch set is missing. Either you are in a development environment, or things are not going to work!
[21:07:34] [main/ERROR] [FML]: The minecraft jar file:/C:/Users/pieter/.gradle/caches/minecraft/net/minecraftforge/forge/1.7.2-10.12.1.1073/forgeSrc-1.7.2-10.12.1.1073.jar!/net/minecraft/client/ClientBrandRetriever.class appears to be corrupt! There has been CRITICAL TAMPERING WITH MINECRAFT, it is highly unlikely minecraft will work! STOP NOW, get a clean copy and try again!
[21:07:34] [main/ERROR] [FML]: FML has been ordered to ignore the invalid or missing minecraft certificate. This is very likely to cause a problem!
[21:07:34] [main/ERROR] [FML]: Technical information: ClientBrandRetriever was at jar:file:/C:/Users/pieter/.gradle/caches/minecraft/net/minecraftforge/forge/1.7.2-10.12.1.1073/forgeSrc-1.7.2-10.12.1.1073.jar!/net/minecraft/client/ClientBrandRetriever.class, there were 0 certificates for it
[21:07:34] [main/ERROR] [FML]: FML appears to be missing any signature data. This is not a good thing
[21:07:34] [main/INFO] [LaunchWrapper]: Calling tweak class cpw.mods.fml.relauncher.CoreModManager$FMLPluginWrapper
[21:07:34] [main/INFO] [LaunchWrapper]: Calling tweak class cpw.mods.fml.common.launcher.FMLDeobfTweaker
[21:07:35] [main/INFO] [LaunchWrapper]: Launching wrapped minecraft {net.minecraft.client.main.Main}
[21:07:37] [main/ERROR] [LaunchWrapper]: Unable to launch
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0_25]
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_25]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_25]
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.7.0_25]
at net.minecraft.launchwrapper.Launch.launch(Launch.java:134) [launchwrapper-1.9.jar:?]
at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.9.jar:?]
Caused by: java.lang.UnsatisfiedLinkError: no lwjgl in java.library.path
at java.lang.ClassLoader.loadLibrary(Unknown Source) ~[?:1.7.0_25]
at java.lang.Runtime.loadLibrary0(Unknown Source) ~[?:1.7.0_25]
at java.lang.System.loadLibrary(Unknown Source) ~[?:1.7.0_25]
at org.lwjgl.Sys$1.run(Sys.java:73) ~[lwjgl-2.9.0.jar:?]
at java.security.AccessController.doPrivileged(Native Method) ~[?:1.7.0_25]
at org.lwjgl.Sys.doLoadLibrary(Sys.java:66) ~[lwjgl-2.9.0.jar:?]
at org.lwjgl.Sys.loadLibrary(Sys.java:95) ~[lwjgl-2.9.0.jar:?]
at org.lwjgl.Sys.<clinit>(Sys.java:112) ~[lwjgl-2.9.0.jar:?]
at net.minecraft.client.Minecraft.getSystemTime(Minecraft.java:2690) ~[Minecraft.class:?]
at net.minecraft.client.main.Main.main(Main.java:40) ~[Main.class:?]
... 6 more

 

Did anybody ever find oyut how to fix this?

Link to comment
Share on other sites

  • 4 weeks later...

Just followed the instructions to create a workspace. Needed to do the advanced setup.

'Run Client' is not working good. Client crashes. I followed the instructions like in the initial setup

This is the Log:

[21:07:32] [main/INFO] [LaunchWrapper]: Loading tweak class name cpw.mods.fml.common.launcher.FMLTweaker
[21:07:32] [main/INFO] [LaunchWrapper]: Using primary tweak class name cpw.mods.fml.common.launcher.FMLTweaker
[21:07:32] [main/INFO] [LaunchWrapper]: Calling tweak class cpw.mods.fml.common.launcher.FMLTweaker
[21:07:32] [main/INFO] [FML]: Forge Mod Loader version 7.2.172.1073 for Minecraft 1.7.2 loading
[21:07:32] [main/INFO] [FML]: Java is Java HotSpot(TM) 64-Bit Server VM, version 1.7.0_25, running on Windows 7:amd64:6.1, installed at C:\Program Files\Java\jre7
[21:07:32] [main/INFO] [FML]: Managed to load a deobfuscated Minecraft name- we are in a deobfuscated environment. Skipping runtime deobfuscation
[21:07:32] [main/INFO] [LaunchWrapper]: Loading tweak class name cpw.mods.fml.common.launcher.FMLInjectionAndSortingTweaker
[21:07:32] [main/INFO] [LaunchWrapper]: Loading tweak class name cpw.mods.fml.common.launcher.FMLDeobfTweaker
[21:07:32] [main/INFO] [LaunchWrapper]: Calling tweak class cpw.mods.fml.common.launcher.FMLInjectionAndSortingTweaker
[21:07:32] [main/INFO] [LaunchWrapper]: Calling tweak class cpw.mods.fml.common.launcher.FMLInjectionAndSortingTweaker
[21:07:32] [main/INFO] [LaunchWrapper]: Calling tweak class cpw.mods.fml.relauncher.CoreModManager$FMLPluginWrapper
[21:07:32] [main/ERROR] [FML]: The binary patch set is missing. Either you are in a development environment, or things are not going to work!
[21:07:34] [main/ERROR] [FML]: The minecraft jar file:/C:/Users/pieter/.gradle/caches/minecraft/net/minecraftforge/forge/1.7.2-10.12.1.1073/forgeSrc-1.7.2-10.12.1.1073.jar!/net/minecraft/client/ClientBrandRetriever.class appears to be corrupt! There has been CRITICAL TAMPERING WITH MINECRAFT, it is highly unlikely minecraft will work! STOP NOW, get a clean copy and try again!
[21:07:34] [main/ERROR] [FML]: FML has been ordered to ignore the invalid or missing minecraft certificate. This is very likely to cause a problem!
[21:07:34] [main/ERROR] [FML]: Technical information: ClientBrandRetriever was at jar:file:/C:/Users/pieter/.gradle/caches/minecraft/net/minecraftforge/forge/1.7.2-10.12.1.1073/forgeSrc-1.7.2-10.12.1.1073.jar!/net/minecraft/client/ClientBrandRetriever.class, there were 0 certificates for it
[21:07:34] [main/ERROR] [FML]: FML appears to be missing any signature data. This is not a good thing
[21:07:34] [main/INFO] [LaunchWrapper]: Calling tweak class cpw.mods.fml.relauncher.CoreModManager$FMLPluginWrapper
[21:07:34] [main/INFO] [LaunchWrapper]: Calling tweak class cpw.mods.fml.common.launcher.FMLDeobfTweaker
[21:07:35] [main/INFO] [LaunchWrapper]: Launching wrapped minecraft {net.minecraft.client.main.Main}
[21:07:37] [main/ERROR] [LaunchWrapper]: Unable to launch
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0_25]
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_25]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_25]
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.7.0_25]
at net.minecraft.launchwrapper.Launch.launch(Launch.java:134) [launchwrapper-1.9.jar:?]
at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.9.jar:?]
Caused by: java.lang.UnsatisfiedLinkError: no lwjgl in java.library.path
at java.lang.ClassLoader.loadLibrary(Unknown Source) ~[?:1.7.0_25]
at java.lang.Runtime.loadLibrary0(Unknown Source) ~[?:1.7.0_25]
at java.lang.System.loadLibrary(Unknown Source) ~[?:1.7.0_25]
at org.lwjgl.Sys$1.run(Sys.java:73) ~[lwjgl-2.9.0.jar:?]
at java.security.AccessController.doPrivileged(Native Method) ~[?:1.7.0_25]
at org.lwjgl.Sys.doLoadLibrary(Sys.java:66) ~[lwjgl-2.9.0.jar:?]
at org.lwjgl.Sys.loadLibrary(Sys.java:95) ~[lwjgl-2.9.0.jar:?]
at org.lwjgl.Sys.<clinit>(Sys.java:112) ~[lwjgl-2.9.0.jar:?]
at net.minecraft.client.Minecraft.getSystemTime(Minecraft.java:2690) ~[Minecraft.class:?]
at net.minecraft.client.main.Main.main(Main.java:40) ~[Main.class:?]
... 6 more

 

Did anybody ever find oyut how to fix this?

 

I've updated the thread to address [iurl=#troubleshoot]troubleshooting problems[/iurl].

For a comprehensive list of mods, visit the MCF Modlist!

Link to comment
Share on other sites

  • 3 weeks later...
  • 2 months later...

Hey, i have following error:

 

Matthiass-Mini:forge-1.7.10-10.13.2.1230-src MatthiasReef$ bash gradlew setupDecompWorkspace
Exception in thread "main" java.io.FileNotFoundException: /Users/MatthiasReef/.gradle/wrapper/dists/gradle-2.0-bin/5h57m9vra0mjv9qs45oqtsb5c0/gradle-2.0-bin.zip.lck (Permission denied)
at java.io.RandomAccessFile.open(Native Method)
at java.io.RandomAccessFile.<init>(RandomAccessFile.java:243)
at org.gradle.wrapper.ExclusiveFileAccessManager.access(ExclusiveFileAccessManager.java:49)
at org.gradle.wrapper.Install.createDist(Install.java:44)
at org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:126)
at org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.java:56)
Matthiass-Mini:forge-1.7.10-10.13.2.1230-src MatthiasReef$ bash gradlew eclipse
Exception in thread "main" java.io.FileNotFoundException: /Users/MatthiasReef/.gradle/wrapper/dists/gradle-2.0-bin/5h57m9vra0mjv9qs45oqtsb5c0/gradle-2.0-bin.zip.lck (Permission denied)
at java.io.RandomAccessFile.open(Native Method)
at java.io.RandomAccessFile.<init>(RandomAccessFile.java:243)
at org.gradle.wrapper.ExclusiveFileAccessManager.access(ExclusiveFileAccessManager.java:49)
at org.gradle.wrapper.Install.createDist(Install.java:44)
at org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:126)
at org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.java:56)
Matthiass-Mini:forge-1.7.10-10.13.2.1230-src MatthiasReef$ 

 

In everyone help me?

Link to comment
Share on other sites

  • 1 month later...

I got this Problem Please Help Me

 

 

 

Exception in thread "main" java.lang.RuntimeException: Timeout of 120000 reached
waiting for exclusive access to file: C:\Users\Vergara\.gradle\wrapper\dists\gr
adle-2.0-bin\5h57m9vra0mjv9qs45oqtsb5c0\gradle-2.0-bin.zip
        at org.gradle.wrapper.ExclusiveFileAccessManager.access(ExclusiveFileAcc
essManager.java:61)
        at org.gradle.wrapper.Install.createDist(Install.java:44)
        at org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:126)
        at org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.java:56)

Link to comment
Share on other sites

  • 5 months later...

Hey, I've been trying to get this to work for over a week now, and I figured I should post and ask for some help.

 

What I'm trying to do is a little different than what this tutorial is for, in that I'm trying to contribute to a pre-existing mod, not create a new one. The mod in question is https://github.com/TechReborn/TechReborn, and while I got further using the "Advanced Initial Setup," I still can't get it working.

 

What I've done is download the TechReborn package from github, run gradle to update dependencies and such, and then tried to follow the other directions. Unfortunately I'm stuck with an error "Could not find or load main class net.minecraft.launchwrapper.Launch."

 

Is there some different process if I'm modifying an existing mod, instead of creating a new one?

Link to comment
Share on other sites

  • 1 month later...

Hey guys, I've been having some problems trying to compile my mod. My mod is for version 1.7.10, and i tried compiling it using both "bash gradlew build" and "./gradlew build" (I use a mac). Both attempts failed due to this error:

 

* Where:

Build file '/Users/MinecraftModding/Desktop/SlayersToolbox/build.gradle' line: 21

 

* What went wrong:

Could not compile build file '/Users/MinecraftModding/Desktop/SlayersToolbox/build.gradle'.

> startup failed:

  build file '/Users/MinecraftModding/Desktop/SlayersToolbox/build.gradle': 21: expecting anything but ''\n''; got it anyway @ line 21, column 26.

    group= "com.slayer.main”

                              ^

 

  1 error

 

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.

Announcements



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • They were already updated, and just to double check I even did a cleanup and fresh update from that same page. I'm quite sure drivers are not the problem here. 
    • i tried downloading the drivers but it says no AMD graphics hardware has been detected    
    • Update your AMD/ATI drivers - get the drivers from their website - do not update via system  
    • As the title says i keep on crashing on forge 1.20.1 even without any mods downloaded, i have the latest drivers (nvidia) and vanilla minecraft works perfectly fine for me logs: https://pastebin.com/5UR01yG9
    • Hello everyone, I'm making this post to seek help for my modded block, It's a special block called FrozenBlock supposed to take the place of an old block, then after a set amount of ticks, it's supposed to revert its Block State, Entity, data... to the old block like this :  The problem I have is that the system breaks when handling multi blocks (I tried some fix but none of them worked) :  The bug I have identified is that the function "setOldBlockFields" in the item's "setFrozenBlock" function gets called once for the 1st block of multiblock getting frozen (as it should), but gets called a second time BEFORE creating the first FrozenBlock with the data of the 1st block, hence giving the same data to the two FrozenBlock :   Old Block Fields set BlockState : Block{minecraft:black_bed}[facing=east,occupied=false,part=head] BlockEntity : net.minecraft.world.level.block.entity.BedBlockEntity@73681674 BlockEntityData : id:"minecraft:bed",x:3,y:-60,z:-6} Old Block Fields set BlockState : Block{minecraft:black_bed}[facing=east,occupied=false,part=foot] BlockEntity : net.minecraft.world.level.block.entity.BedBlockEntity@6d1aa3da BlockEntityData : {id:"minecraft:bed",x:2,y:-60,z:-6} Frozen Block Entity set BlockState : Block{minecraft:black_bed}[facing=east,occupied=false,part=foot] BlockPos{x=3, y=-60, z=-6} BlockEntity : net.minecraft.world.level.block.entity.BedBlockEntity@6d1aa3da BlockEntityData : {id:"minecraft:bed",x:2,y:-60,z:-6} Frozen Block Entity set BlockState : Block{minecraft:black_bed}[facing=east,occupied=false,part=foot] BlockPos{x=2, y=-60, z=-6} BlockEntity : net.minecraft.world.level.block.entity.BedBlockEntity@6d1aa3da BlockEntityData : {id:"minecraft:bed",x:2,y:-60,z:-6} here is the code inside my custom "freeze" item :    @Override     public @NotNull InteractionResult useOn(@NotNull UseOnContext pContext) {         if (!pContext.getLevel().isClientSide() && pContext.getHand() == InteractionHand.MAIN_HAND) {             BlockPos blockPos = pContext.getClickedPos();             BlockPos secondBlockPos = getMultiblockPos(blockPos, pContext.getLevel().getBlockState(blockPos));             if (secondBlockPos != null) {                 createFrozenBlock(pContext, secondBlockPos);             }             createFrozenBlock(pContext, blockPos);             return InteractionResult.SUCCESS;         }         return super.useOn(pContext);     }     public static void createFrozenBlock(UseOnContext pContext, BlockPos blockPos) {         BlockState oldState = pContext.getLevel().getBlockState(blockPos);         BlockEntity oldBlockEntity = oldState.hasBlockEntity() ? pContext.getLevel().getBlockEntity(blockPos) : null;         CompoundTag oldBlockEntityData = oldState.hasBlockEntity() ? oldBlockEntity.serializeNBT() : null;         if (oldBlockEntity != null) {             pContext.getLevel().removeBlockEntity(blockPos);         }         BlockState FrozenBlock = setFrozenBlock(oldState, oldBlockEntity, oldBlockEntityData);         pContext.getLevel().setBlockAndUpdate(blockPos, FrozenBlock);     }     public static BlockState setFrozenBlock(BlockState blockState, @Nullable BlockEntity blockEntity, @Nullable CompoundTag blockEntityData) {         BlockState FrozenBlock = BlockRegister.FROZEN_BLOCK.get().defaultBlockState();         ((FrozenBlock) FrozenBlock.getBlock()).setOldBlockFields(blockState, blockEntity, blockEntityData);         return FrozenBlock;     }  
  • Topics

×
×
  • Create New...

Important Information

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