jakimfett/MineChem — pull request #10 by Maxwolf (2014-04-25 21:37:03+00:00)
Title: Maxwolf's Minechem Cleanup Attempt #1

Hello! My name is @Maxwolf and I love Minechem and would like to help improve it and make it better but before I can do that need to cleanup what we already have!

One of the first things I noticed and talked about with @jakimfett after looking at the code is that Buildcraft's API was outdated and was causing a hang on start up when attempting to interact with the gate system on 4.2.2 for 1.6.4. While I was in there I also updated the IC2 API since it was also out of date.

Another pretty serious bug was that the mod prior to these updates would attempt to register particle physics configurations in the -256 range and end up with strange errors like the following on start up (even with no other mods in the mods directory for it to even conflict with).

```
[17:11:01 INFO]: Client> 2014-04-24 17:11:01 [INFO] [STDOUT] CONFLICT @ -256 item slot already occupied by net.minecraft.item.ItemBlock@18ce5068 while adding net.minecraft.item.ItemBlock@1100e891
[17:11:01 INFO]: Client> 2014-04-24 17:11:01 [INFO] [fml.ItemTracker] The mod minechem-particlephysics is overwriting existing item at 0 (Emitter from minechem-particlephysics) with net.minecraft.item.ItemBlock
```

Another thing that was removed was a custom 'gmail authenticator' which would email crash reports back to mod author. This seemed excessive and not required. It also complicated the gradle build script to have a special 'shadow' command that would download and include imports for a 3rd party library that facilitated gmail auth. For the sake of simplicity moving forward that entire system has been removed along with the hooks for the custom crash reporter since the built in one that Forge provides should be enough.

Now when building the mod there is no need for the 'shadow' command, and the extra jar file that would be outputted is no longer. Instead just use the normal one that comes though, it is significantly smaller without the 3rd party library and doesn't seem to exhibit the strange hang on start up problems that were occurring with builds from Linux or OS X (but worked fine on windows for some reason).

If this pull request is accepted then I will continue to work on cleaning up Minechem while trying to preserve as much as possible. One of the next changes I would do is use Forge's packet system rather than vanilla description packets, and then to stop using CPW LocalizationManager since that is gone in 1.7x and you can have the exact same thing using vanilla localization support without any loss of new features.

Take care and see you all around I hope!