Just put your minecraft.jar or minecraft_server.jar in a bin file, click decompile.bat and all files
will be decompiled plus a patch will be applied to :
- Fix the errors generated by the decompiling process
- Rename incorrect class name ( by, if, do ).
The spreadsheet you have posted on your forum is awesome! I see people filling it out as I'm typing this! I'm so glad people less lazy than me can spade this kind of stuff for us.
Rollback Post to RevisionRollBack
Quote from eighty_five »
This entire thread just gave me a goddamn headache.
The mod creator pack, the OP posted works wonders. I've tried other ways they have posted, with no luck. I tried for hours trying to correct errors, and getting freezing, etc. With the Mod Creator Pack I created a small mod in less than 10 minutes(All I really wanted to do was add a few crafts and change some block types). It was also VERY easy to use. I also like that it creates a new batch of save files you can play.
So I worked with the spreadsheet, and Netbeans Refactoring tool to create a much easier time for people working with server.
If you search for Food on the server side, you will see that ix is the food class for server that matches to oj from the client side
I also matched liquids (db on server) as well as materials (iq)
Could never have been done without everyone elses work in there. But with that done, I was able to impliment the AppleTree Mod easily on my server, and am working on many more of the naming conventions.
Something ive been trying to decipher is the item value for each item. Does anyone happen to have a list of any sort?
So what I have been doing is refactoring the code to replace the obfuscated values with decent, god-fearing variable names that you can look in the face and understand. This has helped greatly in my discovery of items.
Would it be best to put the current translation of each item into a new row in the spreadsheet? Maybe a new sheet for translations?
Most of the work ive been putting in to the server side, but it would be easy/good idea I figure to create a server/client/easy word translation?
three columns on a sheet for class names? and then for important classes (blocks, items, entities, much as there is now) a sheet that details the translations there?
I want to stay in the spirit of not simply passing clear-text source code, but make it easy for the mod community to look at what is there.
I just cannot get this to work. I decompiled the source with JD-GUI, then installed Netbeans, made a new project, and followed all the instructions in the OP to the letter. I still cannot get any classes to recompile. No matter what I do or how I setup the Netbeans source/library, classes WILL NOT recompile and just give me lines upon lines of symbol errors.
Specifically I was trying to change aa.class (compass) so I could make the dual-compass mod work with the changes introduced in the HD texture patch.
Eh, I guess I'm just venting my frustration :biggrin.gif: If anyone has any ideas or can help me I'd appreciate it! I'm not very skilled with Java so I don't know how to go about changing/fixing symbols and all of that stuff. I don't understand why it doesn't 'just work.'
When I first read this I was all excited to start modding. especially because I know java and anything hacky is just so fun. But with all this obfuscation its not worth it to me(Thats what obfuscation is for, I say its working). SoI will be waiting for official modding support. (Imagine after official support, people will be modding the official modding support for more features. Its going to be crazy)
I've never even looked at Java before. But back in the day of muds I used to code on an LPC mud. (still lurk there :tongue.gif:) How difficult is Java to learn and would it be worth it to be able to mod in this game?
@Sage Pourpre: Could you please change the link to the MCP in the first post to: viewtopic.php?f=25&t=58464
I have just released version 1.4 and only want to maintain one forum thread for it in the future :smile.gif:
Is anyone else waiting for Notch to add modding support? I find the obfuscation just a bit too time consuming to properly code, even with the spread sheet for assistance.
Also, is it me, or since this thread started a large amount mod requests have popped up?
Dunno if it's been posted yet, but Risugami showed me this trick. Apparently, the class names change in different versions, but anyway, here's the deal. ne.class contains all blocks and the first argument/parameter of the constructor is the item ID. For example, glass(ID 20) looks like
public static final ne N = new da(20, 49, gt.o, false).c(0.3F).a(k);
See the 20 there? So, ne.da is the glass class. the end .a(k) method returns a ne, and has a variable .bi, which contains the ID number (you'll see that if you look through some constructors) Now with items, it's a little bit more tricky.
Items are in dr.class. Say, Diamond Pickaxe, item 278, but you don't see any constructor with a parameter/argument so high? Well, for items, you must subtract the ID by 256, resulting in 22. So, the line for the diamond pickaxe is
public static dr z = new aa(22, 3).a(99);
I believe aa is a constructor for tool, and it's something like (id, power), anyway, that's not that important(yet)
dunno what the a method does, however, feel free to find our yourself!
if you want to get the pickaxe value, it's dr.z.aW, as aW is the variable containing the ID(note, the constructor already adds 256, so don't worry about that)
Well, that's enough for this! Hope this helps!
I have attempted to make a mod, both through modcreator and through the obfusicated code and Mod loader, but I am at a loss as to some of the code. I have decided to use modloader so it is compatible with other mods, but I am still at a loss as to some of the workings (such as how to set which skin to use). I posted on the McDocs forum for mod making, but no one has responded. Help would be appreciated. More details on my mod can be found in my post requesting help.
I couldn't find it anywhere to save my life so I made it myself.
Here is a map of the item png numbers so you can see where the tiles begin and end:
This is for creation of any new items you want in game it will work with any future version of minecraft if he keeps it under 257 items off the item png (this is the one that holds the gold bars armor and stuff).
All you have to do is load the current png and overlay it to see which tiles aren't being used yet to make a brand new item.
Just put your minecraft.jar or minecraft_server.jar in a bin file, click decompile.bat and all files
will be decompiled plus a patch will be applied to :
- Fix the errors generated by the decompiling process
- Rename incorrect class name ( by, if, do ).
If you search for Food on the server side, you will see that ix is the food class for server that matches to oj from the client side
I also matched liquids (db on server) as well as materials (iq)
Could never have been done without everyone elses work in there. But with that done, I was able to impliment the AppleTree Mod easily on my server, and am working on many more of the naming conventions.
Something ive been trying to decipher is the item value for each item. Does anyone happen to have a list of any sort?
Would it be best to put the current translation of each item into a new row in the spreadsheet? Maybe a new sheet for translations?
Most of the work ive been putting in to the server side, but it would be easy/good idea I figure to create a server/client/easy word translation?
three columns on a sheet for class names? and then for important classes (blocks, items, entities, much as there is now) a sheet that details the translations there?
I want to stay in the spirit of not simply passing clear-text source code, but make it easy for the mod community to look at what is there.
I just cannot get this to work. I decompiled the source with JD-GUI, then installed Netbeans, made a new project, and followed all the instructions in the OP to the letter. I still cannot get any classes to recompile. No matter what I do or how I setup the Netbeans source/library, classes WILL NOT recompile and just give me lines upon lines of symbol errors.
Specifically I was trying to change aa.class (compass) so I could make the dual-compass mod work with the changes introduced in the HD texture patch.
Eh, I guess I'm just venting my frustration :biggrin.gif: If anyone has any ideas or can help me I'd appreciate it! I'm not very skilled with Java so I don't know how to go about changing/fixing symbols and all of that stuff. I don't understand why it doesn't 'just work.'
Thanks!
SineCraft Texture Pack -- For a smoother, cleaner Minecraft
cd <LOCATION OF FILES>
javac <nameoffilE>.java -cp minecraft.jar
Check out http://www.reddit.com/r/DrFunkesMC/ for more info!
Done.
Also, is it me, or since this thread started a large amount mod requests have popped up?
See the 20 there? So, ne.da is the glass class. the end .a(k) method returns a ne, and has a variable .bi, which contains the ID number (you'll see that if you look through some constructors) Now with items, it's a little bit more tricky.
Items are in dr.class. Say, Diamond Pickaxe, item 278, but you don't see any constructor with a parameter/argument so high? Well, for items, you must subtract the ID by 256, resulting in 22. So, the line for the diamond pickaxe is
I believe aa is a constructor for tool, and it's something like (id, power), anyway, that's not that important(yet)
dunno what the a method does, however, feel free to find our yourself!
if you want to get the pickaxe value, it's dr.z.aW, as aW is the variable containing the ID(note, the constructor already adds 256, so don't worry about that)
Well, that's enough for this! Hope this helps!
http://www.minecraftwiki.net/wiki/User:KungFuHamster
I hope it helps someone!
Here is a map of the item png numbers so you can see where the tiles begin and end:
This is for creation of any new items you want in game it will work with any future version of minecraft if he keeps it under 257 items off the item png (this is the one that holds the gold bars armor and stuff).
All you have to do is load the current png and overlay it to see which tiles aren't being used yet to make a brand new item.