Repository for my open source Minecraft Mods
Java

README.md

Folder structure this file resides in

./ ./../forgegradle -> contains gradlew.bat along with the new forge setup ./**/ -> contains the Eclipse Workspace with projects in it. There is a master gradle build file each project accesses

To setup my workspace in your eclipse, simply setup Forge, then move your eclipse workspace into this folder.

Each project/mod refers to the master gradle build file which creates download files in their respective /build/libs (or /build/distributions) folders. Gradle is required, however one could also use the gradlew wrapper found in forgegradle to do this. The build file reacts to certain conditions like a "META-INF.mf" being present, "makezip" being present...

THIS ASSUMES YOUR MOD COMPILES AGAINST FORGEGRADLE - if there are compile errors in the eclipse project, it will fail.

There is also a "curse" build target my successor can probably safely ignore.

NOTE: Some projects attempt to include the Update Checker into their packages, which means it should be built first. NOTE #2: Pet Bat relies on Dynamic Lights to have been compiled first.

Stuff that needs changing each mc version:

  • in "./properties.xml" you find the minecraft and forge versions which are used by the build scripts for building and all resulting mod- and archivenames. (artifacts are named by mc version only, so that filehoster linked files can be overwritten without breaking links)

  • each mod has a changelog, add new versions in here

  • each mod has a @Mod sourcefile, generally in the common package, in which you need to bump "version =" property accordingly

Mods with special Needs:

-- Multi Mine

  • Multi Mine needs it's dummy jar (containing only the Manifest.MF) in the runtime /mods/ folder if you want it to work during debugging
  • Multi Mine uses hardcoded obfuscated names in it's sourcefile "common\atomicstryker\multimine\common\fmlmagic\MMTransformer.java"
  • those need to be fixed to the current Searge names each time minecraft obfuscation changes
  • a good place to get current obfuscated names from is joined.srg, methods.csv and fields.csv somewhere in the forgegradle folders
  • another good place is MCPBot in the MCP IRC channels, assuming it runs the version you need

-- Dynamic Lights

  • similar to Multi Mine. sourcefile is "common\atomicstryker\dynamiclights\common\DLTransformer.java"

-- Stalker Creepers

  • similar to Multi Mine. sourcefile is "common\atomicstryker\stalkercreepers\common\SCTransformer.java"

-- Finder Compass

  • similar to Multi Mine. sourcefile is "atomicstryker.findercompass.client.coremod\FCTransformer.java"

-- Kenshiro Mod

  • uses some hacky stuff for rendering and manipulating punched entities. Will probably crash if broken.

-- Advanced Machines and Ropes+

  • rely on external packages, namely IC2 and NEI