- Clone MCPConfig from the GitHub repository.
- In the root project directory, run
gradlew :1.13:projectClientApplyPatches
if you want to make a client side mod, orgradlew :1.13:projectServerApplyPatches
if you want to make a server side mod. - Naviage into
versions/1.13/projects/server
(orclient
). There are a couple of fixes necessary to get the code to compile:- There is a missing class
mcp.MethodsReturnNonnullByDefault
which you will have to manually add. A copy can be found here. - If you're making a server-only mod, the anonymous classes in
net.minecraft.item.ItemClock
andnet.minecraft.item.ItemCompass
need to be modified to override the method innet.minecraft.item.IItemPropertyGetter
. This is never actually called on the server so you can make a dummy implementation.
- There is a missing class
- Copy
versions/1.13/projects/server
(orclient
) into a separate project folder so you still have a clean copy of 1.13. - TODO: convert mappings from SRG to MCP (optional).
- Inside the new project folder you created, run
gradle eclipse
to work in Eclipse, orgradle idea
to work in intellij. For this you need to have Gradle installed.
Import this project into your IDE and start modding. To test out your mod you only need to launch in the normal way the IDE provides.
- Once you're done, run
gradle build
inside your modded project directory. This produces a JAR insidebuild/libs
. - Also run
gradlew build
in the unmodified project directory (versions/1.13/projects/server
) and note the produced JAR insidebuild/libs
. - Get a SpecialSource JAR if you haven't already
- Clone SpecialSource from its GitHub repository.
- In the SpecialSource directory run
mvn package
. This requires you to have Maven installed. - You will find the built SpecialSource JAR in
target/SpecialSource-1.8.5-SNAPSHOT-shaded.jar
.
- Create reverse mappings using my python script in the same directory as
joined.tsrg
. This will create a new file calledreversed.tsrg
. - Run SpecialSource on each of the unmodded and the modded server JARs, using the following command:
java -jar SpecialSource.jar --in-jar path/to/server.jar --out-jar path/to/obf.jar --srg-in path/to/reversed.tsrg
- Filter out only the modified classes using my python script. It takes three arguments, the unmodified obfuscated JAR, the modified obfuscated JAR and the output JAR that will contain only the modified classes.
- Rename the output JAR to something more presentable, and you're ready to distribute!