Whenever I try to install Forge for 1.6.4 to create a mod, it tries to download MCP, then fails, even when I already have MCP already downloaded and extracted. Does anyone how to fix this? Keep in mind, I am using Forge (specifically Forge 9.11.1.965), and am not trying to decompile the vanilla game. I am also using Java 1.8.0_271, in case that could be the issue, as I am aware Forge 1.6.4 doesn't run with later Java 8 versions.
Well, there is no log, but the error it is giving is "Download of mcp8.11.zip failed hash check, deleting 1ecfa789fcf4d2ad5e6dcaeda336c55e 2d7a759309b5cc10ca29caa0b10f3bfc"
I read that somewhere, but I wanted to make sure there was a fix for build .965 first. Anyway, thanks!
Also, if anyone is having a "download failed hash check" issue with 1.4.7 or another version, you will need to download and install the files manually, so MCP will go into the same folder the "forge" folder is, and minecraft_server.jar will go into the jars folder.
Downloading http://services.gradle.org/distributions/gradle-1.8-bin.zip
Exception in thread "main" java.lang.RuntimeException: java.io.IOException: Server returned HTTP response code: 403 for URL: http://services.gradle.org/distributions/gradle-1.8-bin.zip
at org.gradle.wrapper.ExclusiveFileAccessManager.access(ExclusiveFileAccessManager.java:78)
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:58)
Caused by: java.io.IOException: Server returned HTTP response code: 403 for URL: http://services.gradle.org/distributions/gradle-1.8-bin.zip
at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1900)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1498)
at org.gradle.wrapper.Download.downloadInternal(Download.java:56)
at org.gradle.wrapper.Download.download(Download.java:42)
at org.gradle.wrapper.Install$1.call(Install.java:57)
at org.gradle.wrapper.Install$1.call(Install.java:44)
at org.gradle.wrapper.ExclusiveFileAccessManager.access(ExclusiveFileAccessManager.java:65)
... 3 more
It looks like the only place those links could be are in the obfuscated code in the gradle-wrapper.jar. I can't deobfuscate it and change them and recompile it just like that, so is there like any other way?
Also, I would use MCP unless you really need compatibility with other mods as not having to deal with an API makes it extremely easy to mod, especially if you want to change existing code, and it minimizes dependencies on 3rd parties (in particular, all you need to run the mod outside of MCP is Minecraft itself, no 3rd party libraries that may break at any time due to the owner changing/shutting down their web server. This is also part of the reason why I abandoned Forge, which I did use early on for some other mods, and Optifine, instead coding in my own optimizations/graphical enhancements (you can't even find the 1.6.4 version on their site anymore, only on an old forum thread, and many of those links are still hosted on the Optifine site).
It looks like I might have to directly mod with MCP, as nothing is working, even build .1345 for 1.6.4. However, I think you had mentioned somewhere about how to do stuff with MCP, but I can't remember where, so I hope you don't mind that I am asking questions here. (oh, and you can just direct me to other threads or somewhere else)
1. How do I add a block/item/entity, or anything else without Forge or another mod loader?
2. If I make little to no changes to base class files, will it still be compatible with Forge/Optifine?
You might be thinking of this thread, where I posted some examples of how easy it is to add new blocks with MCP (for the most basic blocks you don't need to create any new classes, just add a new entry to the "Block" class), and otherwise I learned to do most things by looking at how it was done in vanilla, and still often use vanilla code as a template when adding my own features.
As mentioned though, this will almost certainly make it incompatible with Forge, though it is possible to indirectly add new blocks by adding variants to an existing vanilla block (Forge is most likely to modify the core classes like the Block and Item classes but not subclasses); likewise, people have used my cave generation mods with Forge as nothing seems to use the original vanilla classes, but more extensive changes to world generation are harder to implement. Optifine should be fine as long as you don't change anything related to rendering (early on in the development of TMCWv5 I had some rather hacky work-arounds to ensure compatibility; one thing I did was use the render type for ladders, which only renders anything if a valid data value is used, and used the "getMixedBrightnessForBlock" method to get access to the world data and block coordinates. In another case, I added fields and methods that were added by Optifine (which I'd decompiled) to ensure compatibility, albeit they were only to avoid no such method/field errors and the particular feature that used them no longer worked).
Hey, just a question, how do I decompile MCP? For some bizarre reason, it doesn't decompile the code correctly and doesn't decompile net.minecraft.launchwrapper and everything in it and the game fails to launch. I feel like I am doing something wrong here.
I have no idea what "net.minecraft.launchwrapper" is; it isn't part of the game itself but I assume something in the launcher itself and isn't in my MCP setup, just what would be in the Minecraft jar with the same layout ("net.minecraft.src" is equivalent to the root of the jar while the "server" and "client" folders are the same as the ones in the jar). That said, I've actually been using the same MCP installation for the past 7 years, using a backup of the original decompiled sources instead of starting from scratch when I want a clean slate, so it may have changed since then; however, the link to MCP811 given in the Wiki says it was uploaded on 9/20/2013 so it is probably be the same one that I'm using, which appears to have been set up on 12/17/2013 (I originally downloaded it from MCP's old site, when it was an actual web site and not just a basic page with a few links, but the files may have been hosted on MediaFire then).
As far as setting things up goes, I remember simply copying "minecraft_server.1.6.4.jar" into the jars folder and running the "decompile.bat" file, as instructed in "mcp\docs\readme-mcp.txt" and it automatically did everything by itself (the server jar probably isn't actually needed unless you are making a dedicated server-only mod and I deleted it and the sources for it later on; most "client-side" server mods can also be used on a dedicated server as they use nearly the same code), although I suppose there could be issues due to changes to the launcher/.minecraft folder/json files since then (the last time I actually ran it was when I decompiled Optifine in 2018, although I just made of copy of the MCP folder and ran "cleanup.bat" and replaced the jar in "mcp\jars\versions" with one with Optifine installed manually instead of starting from scratch; there were several recompile errors but that were caused by the installer files being included).
One thing I do notice is that the versions folder in MCP includes a "natives" folder, which includes files which are normally only extracted by the launcher when the game is running (they are deleted when the game is closed) and "1.6.4.json", the latter of which has changed significantly since 2013 (this file includes all the libraries the game needs to run, and I presume this is how MCP knows which ones it needs). Here is the json file, dated 12/17/2013 and presumably unchanged since 1.6.4 was released on 9/19/2013 (the current file is 3 times the size despite not having any whitespace):
If there are issues with finding the correct files you could try replacing the current json file in ".minecraft\versions\1.6.4" with this one (do not try running the game/launcher and restore the original when done).
Whenever I try to install Forge for 1.6.4 to create a mod, it tries to download MCP, then fails, even when I already have MCP already downloaded and extracted. Does anyone how to fix this? Keep in mind, I am using Forge (specifically Forge 9.11.1.965), and am not trying to decompile the vanilla game. I am also using Java 1.8.0_271, in case that could be the issue, as I am aware Forge 1.6.4 doesn't run with later Java 8 versions.
Add the error log
Well, there is no log, but the error it is giving is "Download of mcp8.11.zip failed hash check, deleting 1ecfa789fcf4d2ad5e6dcaeda336c55e 2d7a759309b5cc10ca29caa0b10f3bfc"
Looks like only build .964 is working for 1.6.4
I read that somewhere, but I wanted to make sure there was a fix for build .965 first. Anyway, thanks!
Also, if anyone is having a "download failed hash check" issue with 1.4.7 or another version, you will need to download and install the files manually, so MCP will go into the same folder the "forge" folder is, and minecraft_server.jar will go into the jars folder.
Build .964 has this issue whenever I run it:
How do I fix this?
Check the gradle settings
The link to the gradle-1.8-bin.zip is set with http
You have to change it to https
Thanks, that worked! I'll let you know if I encounter any more issues.
Edit: It happened while I was typing this message. The error:
Same issue with http -> https
Check for all given links and make sure it is changed to https
It looks like the only place those links could be are in the obfuscated code in the gradle-wrapper.jar. I can't deobfuscate it and change them and recompile it just like that, so is there like any other way?
I am not sure if it is working with it - there is a way to force http requests:
https://http-builder-ng.github.io/gradle-http-plugin/
How do I add it to this?
First, in this code are still http requests
I am not sure if it is working if you just add
in your build.gradle
I think I have to use the legacy plugin method, as shown here: https://plugins.gradle.org/plugin/io.github.http-builder-ng.http-plugin
Ok, I think I'm just going to use LiteLoader, or MCreator, whatever I can find. These setup issues are getting kind of annoying,
According to this thread you need to use 1.6.4-9.11.1.1345; all other versions are not guaranteed to work:
https://www.minecraftforum.net/forums/mapping-and-modding-java-edition/minecraft-mods/modification-development/3078797-forge-1-8-9-decompilation-issues
Also, I would use MCP unless you really need compatibility with other mods as not having to deal with an API makes it extremely easy to mod, especially if you want to change existing code, and it minimizes dependencies on 3rd parties (in particular, all you need to run the mod outside of MCP is Minecraft itself, no 3rd party libraries that may break at any time due to the owner changing/shutting down their web server. This is also part of the reason why I abandoned Forge, which I did use early on for some other mods, and Optifine, instead coding in my own optimizations/graphical enhancements (you can't even find the 1.6.4 version on their site anymore, only on an old forum thread, and many of those links are still hosted on the Optifine site).
TheMasterCaver's First World - possibly the most caved-out world in Minecraft history - includes world download.
TheMasterCaver's World - my own version of Minecraft largely based on my views of how the game should have evolved since 1.6.4.
Why do I still play in 1.6.4?
It looks like I might have to directly mod with MCP, as nothing is working, even build .1345 for 1.6.4. However, I think you had mentioned somewhere about how to do stuff with MCP, but I can't remember where, so I hope you don't mind that I am asking questions here. (oh, and you can just direct me to other threads or somewhere else)
1. How do I add a block/item/entity, or anything else without Forge or another mod loader?
2. If I make little to no changes to base class files, will it still be compatible with Forge/Optifine?
You might be thinking of this thread, where I posted some examples of how easy it is to add new blocks with MCP (for the most basic blocks you don't need to create any new classes, just add a new entry to the "Block" class), and otherwise I learned to do most things by looking at how it was done in vanilla, and still often use vanilla code as a template when adding my own features.
As mentioned though, this will almost certainly make it incompatible with Forge, though it is possible to indirectly add new blocks by adding variants to an existing vanilla block (Forge is most likely to modify the core classes like the Block and Item classes but not subclasses); likewise, people have used my cave generation mods with Forge as nothing seems to use the original vanilla classes, but more extensive changes to world generation are harder to implement. Optifine should be fine as long as you don't change anything related to rendering (early on in the development of TMCWv5 I had some rather hacky work-arounds to ensure compatibility; one thing I did was use the render type for ladders, which only renders anything if a valid data value is used, and used the "getMixedBrightnessForBlock" method to get access to the world data and block coordinates. In another case, I added fields and methods that were added by Optifine (which I'd decompiled) to ensure compatibility, albeit they were only to avoid no such method/field errors and the particular feature that used them no longer worked).
TheMasterCaver's First World - possibly the most caved-out world in Minecraft history - includes world download.
TheMasterCaver's World - my own version of Minecraft largely based on my views of how the game should have evolved since 1.6.4.
Why do I still play in 1.6.4?
Hey, just a question, how do I decompile MCP? For some bizarre reason, it doesn't decompile the code correctly and doesn't decompile net.minecraft.launchwrapper and everything in it and the game fails to launch. I feel like I am doing something wrong here.
I have no idea what "net.minecraft.launchwrapper" is; it isn't part of the game itself but I assume something in the launcher itself and isn't in my MCP setup, just what would be in the Minecraft jar with the same layout ("net.minecraft.src" is equivalent to the root of the jar while the "server" and "client" folders are the same as the ones in the jar). That said, I've actually been using the same MCP installation for the past 7 years, using a backup of the original decompiled sources instead of starting from scratch when I want a clean slate, so it may have changed since then; however, the link to MCP811 given in the Wiki says it was uploaded on 9/20/2013 so it is probably be the same one that I'm using, which appears to have been set up on 12/17/2013 (I originally downloaded it from MCP's old site, when it was an actual web site and not just a basic page with a few links, but the files may have been hosted on MediaFire then).
As far as setting things up goes, I remember simply copying "minecraft_server.1.6.4.jar" into the jars folder and running the "decompile.bat" file, as instructed in "mcp\docs\readme-mcp.txt" and it automatically did everything by itself (the server jar probably isn't actually needed unless you are making a dedicated server-only mod and I deleted it and the sources for it later on; most "client-side" server mods can also be used on a dedicated server as they use nearly the same code), although I suppose there could be issues due to changes to the launcher/.minecraft folder/json files since then (the last time I actually ran it was when I decompiled Optifine in 2018, although I just made of copy of the MCP folder and ran "cleanup.bat" and replaced the jar in "mcp\jars\versions" with one with Optifine installed manually instead of starting from scratch; there were several recompile errors but that were caused by the installer files being included).
One thing I do notice is that the versions folder in MCP includes a "natives" folder, which includes files which are normally only extracted by the launcher when the game is running (they are deleted when the game is closed) and "1.6.4.json", the latter of which has changed significantly since 2013 (this file includes all the libraries the game needs to run, and I presume this is how MCP knows which ones it needs). Here is the json file, dated 12/17/2013 and presumably unchanged since 1.6.4 was released on 9/19/2013 (the current file is 3 times the size despite not having any whitespace):
If there are issues with finding the correct files you could try replacing the current json file in ".minecraft\versions\1.6.4" with this one (do not try running the game/launcher and restore the original when done).
TheMasterCaver's First World - possibly the most caved-out world in Minecraft history - includes world download.
TheMasterCaver's World - my own version of Minecraft largely based on my views of how the game should have evolved since 1.6.4.
Why do I still play in 1.6.4?