Inactive [MECH/DEV] ItemCraft 1.6.6 - Support for client mods in Bukkit [1060/1000]

Discussion in 'Inactive/Unsupported Plugins' started by asdaarg, May 3, 2011.

  1. Offline




    ItemCraft is a Bukkit mod that allows adding new item and block types, crafting and furnace recipes, and custom tree generators and more. Using a Modloader and SettingsGUI interface it allows subplugins known as ICPlugins to be loaded to support client mods. ICPlugins can be created by translating a client mod using the ICTranslator ICplugin. Using a ModloaderMP interface (ported by krnlyng/liar) it allows porting multiplayer mods to bukkit.

    • Add more Block types
    • Add more Item types
    • Add more Entity types
    • Add more TileEntity types
    • Add more Crafting recipes
    • Add more Smelting recipes
    • Add more Tree generators
    • Ported ModLoader interface
    • Ported ModLoaderMP interface
    • Fake GUIAPI Settings interface
    • Startup file for configuring plugins and making simple blocks and items

    Installation & Usage:
    • Back up your world(s). Just in case.
    • ItemCraft.jar goes in same folder as craftbukkit
    • IC plugins go into ItemCraft/ICPlugins folder under craftbukkit. (folder is autocreated the first time)
    • uncomment (remove #) in front of all plugins you want to use in plugins.ics (autocreated in ItemCraft/ICScript)
    • Make sure you have the recommended version of craftbukkit in the title - since this is a mod of that version in particular.
    • Delete/rename the META-INF folder inside craftbukkit-0.0.1-SNAPSHOT.jar (Use some decent zip program (e.g. 7zip) that can do it.)
    • All players on the server needs to have the client mods installed
    • If you use the 16 bit entity id packet mod (in case you use new entites (only ICMCreatures need it)), All players need (flan's unofficial) ModLoaderMP client mod
    • All players also need the 16 bit entity id packet mod (overwrites a ModLoaderMP's class so make sure ModLoaderMP is installed first) in case you use new entites (only ICMCreatures need it) If decide not to use the packet mod, you can turn it off putting this in your startup file: false setEntityIDPacketMod
    • Sometimes you get block/item ID conflicts, between plugins. You then need to set the conflicting ids in the startup script using setID command: example. They have to be set before the plugin that uses them is loaded. Note also that there is typically a props file on the clientside you have to edit the ids on to be the same as well.
    • To start:
      • Windows:
        java -Xmx1024M -Xms1024M -cp ItemCraft.jar;craftbukkit-0.0.1-SNAPSHOT.jar org.bukkit.craftbukkit.Main
      • Others:
        java -Xmx1024M -Xms1024M -cp ItemCraft.jar:craftbukkit-0.0.1-SNAPSHOT.jar org.bukkit.craftbukkit.Main
      IF You do not understand how to install this follow THIS link! Also Try:

      ItemCraft Forum
      ItemCraft Wiki


      Installation instructions changed since 1.5

      For Minecraft 1.7.3

      Inofficial ItemCraft update by Syrome1.6.6 (#1060)
      ItemCraft 1.6.5 (#1000)
      QwertyPower files (ICSGlass, ICFancyPack addons and more...)
      o4kapuk 16 bit packet mod Does not work without (flan's unofficial) ModLoaderMP client mod.
      ICKSlopes - support for Kaevator SuperSlopes
      ICNTrees - support for Nandonalt's Trees mod. Details regarding use Ignore ScotTools or you will have problems breaking various blocks
      ICFancyPack - support for ChocolateySyrup's FancyPack unofficial update for 1.7.3 mod Details regarding use of potted plants IDs and settings
      User ported mods list maintained by icephantom

      For Minecraft 1.6.6

      ItemCraft 1.4.5
      ItemCraft 1.5.1 (for use with planes)

      ItemCraft 1.3.5 (for CB #818)
      ICSGlass - support for ChocolateySyrup's Stained Glass unofficial update for 1.6.6 mod
      ICFancyPack - support for ChocolateySyrup's FancyPack unofficial update for 1.6.6 mod Details regarding use of potted plants Also be sure to read: Release notes Does not work well and not at all with the newest FancyPack update(v6) Wait until client is stable.
      ICKSlopes - support for Kaevator SuperSlopes
      Usage notes
      ICNTrees - support for Nandonalt's Trees mod. Details regarding use
      ICMCreatures - Support for DrZhark's Mo's Creatures
      16 bit entity id packet mod
      User ported mods list maintained by Asymetrikon

      Dev tools:
      ICTranslator - How to use

      Source and old versions

      ICScript documentation

      Frequently Asked Questions

      Tutorial on how to make your own blocks also list of block and item IDs in most popular mods.

      Suggestions of mods to port
      Vote here not in this thread anymore (it gets lost in all the other stuff)

      Reporting errors:
      • Read known issues - don't report those.
      • State the version of CB, ItemCraft and ICPlugin(s) you have problems with
      • If your client crashes, start the client from command line so that you get the error report.
      • Make sure the mod(s) works in SSP First before you report any errors here.
      • You are more likely to get a response if you describe the problem in more detail and do some testing yourself first of under what circumstances it occurs
      • Do not ask for uploads of minecraft.jar.
      • Do not pm me.
      • If you have problems installing, you are likely doing something wrong. Make sure you've followed the instructions exactly, read the FAQ and Wiki. If that doesn't work you can always ask in the thread, while I will likely not reply, there are others who can help you with your problem. But at least try to get it working yourself first.

      That said, I want to thank all who have helped users with their problems. In particular special thanks to icephantom and Asymetrikon for their big efforts in this. Also a special thanks to xeronut for being generally helpful.

      Changelog: (open)

      • Inofficial update by Syrome to support CB #1060 and ModloaderMp v1.7.3v4.
      • Added changes by krnlyng/liar to support buildcraft
      • Inofficial updated by Qwertypower to support CB #1000
      • Fixed Generators not working since ModLoaderMP merged.
      • Added option to turn off packet230 being sent to clients: false setPacket230OnLogin
      • @QwertyPower's unofficial update to 1.7.2 and 1.7.3.
      • Fixed issues with ICPlugins not being able to use ModLoader methods obtained through relection.
      • Merge with @krnlyng/liar's translated vesion of SDK's ModLoaderMP
      • Added dummy method RegisterTileEntity to fake modloader.
      • Added dummy methods AddArmor and getUniqueSpriteIndex to fake modloader.
      • ItemCraft commands are now loaded automatically and can be used in init.ic
      • Fixed nonesense message when parsing a string and EOF is found after escape character.
      • Platform independent line breaks of autocreated files
      • added some stuff in the autocreated file
      • Fixed unupdated mod causing problems for other plugins accessing the enum's constants for new block ids 1.6.
      • Removed spam on use command
      • Fixed java method invocation
      • Added javamethod invocation of declared methods
      • Fixed pop removing 2 elements off stack
      • putsetting command, allowing editing settings using new script
      • putvar and getvar commands allowing use of variables in scripts
      • added if command, conditional execution of closures
      • ishidden, isCustomType and getCustomType commands
      • exec command, allowing execution of closures. Acts as function calls.
      • while command, for while-loops, execution of closures.
      • Annotation of non-standard methods allowing correction of semantics during parsing with methods that manually alter type info. (needed for for loops, and various stack commands (such as popall, push, pull,dup, casting, getvar, all that do not have a static type signature) to have any usefulness beyond execution using GUI.
      • added casts
      • Fixed setEntityIDPacketMod demanding a this pointer.
      • Fixed boolean constants missing.
      • Updated to CB #860
      • GUI is now off by default
      • Fixed illegal access of Item constructor and other methods
      • 16 bit Entity Id Packet mod can now be turned off
      • Added file loading functions that use filename rather than file class for Fileman, for use with Janino
      • Fixed intellisense being screwy, showing previous context
      • Fixed castability test of primitive types to primitive types being screwy
      • Fixed selected method in context view not being visible (scrolled down/up to).
      • Fixed array bounds error
      • added intellisense (context box showing sorted list of all applicable methods in context at cursor position, as well as selecting the one closest matching)
      • added tooltips showing documentation both in command box and in the context (list) box
      • added getmaterial method to get Minecraft's materials
      • added documentation to most methods.
      • removed some obsolete methods
      • renamed some methods
      • remove NAME: spam on classloaderlclass, 1,2,3 4.. spam and vs: spam
      • fixed classloaderlclass leaving junk on stack
      • fixed getconstructor (?)
      • fixed right square bracket without left square bracket not resulting in parse error
      • fixed parse to fail due to right bracket not yielding an array type
      • removed autocreate double spam
      • ics extension changed to ic (conflicting with korganizer and iCalendar)
      • moved plugins into plugins.ic (since it now doesn't execute "use" until it parsed the whole file, it doesn't
      • recognize ItemCraft functions in init.ic)
      • added setID
      • added back support for old file format using includeold
      • fixed execution of abstract script calling providing arguments in wrong order
      • ICScript is now completely converted into postfix
      • Completely rewritten script parsing and execution code
      • Math functions should work now
      • Scripts Are not executed until fully parsed
      • ICS now support direct invokation of java functions when no ICS function matches a call
      • ICS now support arrays
      • ICS now support closures (for later support for menus, functions, loops, conditionals)
      • Parser produces Abstract code that runs much faster, than when having to parse each time to execute code.
      • Pre 1.0-style startupfile scripts are no longer supported (for now)
      • Warning of Block loss with prompt to quit CB on any error during parsing
      • Warning of Block loss with prompt to quit CB if startup script file was not found and was autocreated. This way you can have it autocreate it safely without having to worry about loss of blocks during upgrade.
      • Detailed error reports during both parsing with line number and column and during execution.
      • added simple math functions
      • added basic string and character functions
      • fixed methods popping more than one element
      • fixed dup not duplicating
      • added primitive classes
      • added parsing of primitives as primary commands
      • added parsing of strings as primary commands
      • fixed identifier after a string being misparsed
      • fixed popup menus not working in windows
      • added methods to get icplugins and their classloaders
      • added methods to get constructors and invoke them
      • Implemented new functional script language ICScript
      • Implemented GUI
      • inclusion of files (so you can split up startupfile in smaller files)
      • loading plugins on the fly
      • executing any script commands on the fly using GUI
      • exploring variables and functions of objects in GUI
      • invoke any functions, private or public, on any class loaded in IC/ICPlugins/minecraft/CB/any bukkit plugins
      • Built in text editor (was going to be for editing java code)
      • Removal of blocks, entities and items, even on the fly
      • Adding new blocks, entities and items on the fly
      • Specify what entities spawn in what biomes and how frequently.
      • Customizable programmable menus per node type in GUI
      • IC now retrieves version number both for plugins and itself automatically and reports it when plugins are loaded
      • fixed mimic having target object mimic itself.
      • fixed invokation on wrong object when interacting with mimiced block
      • fixed setint setting a string and not an int
      • fixed case sensitivity of block parameters
      • fixed some other bugs related to block parameters
      • no more commas assigning multiple values in block parameters (because I'm lazy)
      • Mobs that are unspawnable don't crash the server anymore
      • Added new startupfile commands: blocks and entites
      • Added new startupfile commands: setbool, setint, setfloat, setdouble, that allows changing the settings of mods that use GUIAPI (nandonalt trees and mo's creatures)
      • fixed various bugs with craft command in startup script
      • removed debug spam on id command
      • fixed comments causing "unknown commands" in startup file
      • cleaned up unnecessary stuff from error report
      • fixed skip skipping over the next line too
      • Implemented modloader removespawn (could that have anything to do with the watermob problem?)
      • fixed unknown command spam on empty lines
      • fixed some bugs with craft command in startup file manager.
      • Fixed kicked when horse throws you off because of accessing protected field
      • Fixed problems adding recipes, tile entites, entites using API.
      • added items command for debug purposes
      • added a copy of spawncreatures to the mod, no idea if that will solve the issue with sharks crashing server.
      • Mimic feature of block allows block to mimic other blocks, fully or in some respect (useful to customize blocks beyond the fixed values from startup file)
      • back to start from craftbukkit folder; its no longer a plugin
      • IC plugins go into ICPlugin folder now in craftbukkit folder. These are to avoid problems caused by plugins being reloaded by CB
      • usedefaults on by default
      • fix item 0 is not valid item spam
      • implemented Modloader getUniqueEntityId,RegisterEntityID,setPrivateValue
      • implemented various SettingsGUI widgets facades, and SettingFloat, SettingsMulti
      • script pauses when error occurs to avoid startup with wrong settings
      • Items are also registered as dummy, to avoid error spam by other plugins
      • Modloader world generator interface for normal type worlds implemented
      • Barebones fake GUIAPI interface that loads default settings (might add ability to modify options through startup later)
      • Added fix for blocks not having dummy material in ICFancyPack that inherit the Block class directly
      • Dummy id changed to 255
      • Added support for Entities in API
      • Added support for adding mobs to biome spawnlist in API
      • Added support for adding tilentities in API
      • Added fake modloader for to interface with translated mod plugins
      • Added more detailed output when plugin loading fails.
      • Backward incompatible update to 766
      • Added ability to set data on input items in crafting recipe
      • Added ability to comment in startup file with #
      • Added more error handling.
      • Fixed unable to craft out of nonblocks
      • Added more error handling
      • Partial support for GUIs
      • Mod for custom tree generation
      • Custom Tree generation API
      • Custom Tree generation startup file instructions:tree,treebiome and biometreedensity
      • Added mod of org.bukkit.Material to accomodate new block types, should reduce at least some errors other plugins have.
      • Fixed Item id being offset by 256
      • Fixed startup script created Blocks not being added to item list
      • Added more error handling
      • Fixed ItemCraft not starting because of spaces in the path on windows machines
      • Fixed regexp error on windows when starting as plugin
      • More error handling added
      • Fixed freeze when adding new block properties using startup script
      • Now doubles as plugin, so you can start it as a plugin rather than a mod
      • Startup file autocreation
      • loud startup file instruction- prints out more info at startup
      • a whole lot more error handling
      • fixed bug not being able to load any other plugin that KSlopes.jar (what am I thinking)
      • Most if not all simple constant Block properties now definable from the startup file.
      • Better error handling
      • More complete Block API
      • Syntax correction
      • Initial Release
      • Made compatible with IC 1.0
      • Syntax correction
      • More information on startup
      • Fixed slopes and corners dropped having wrong data.
      • Initial Release
      • Introduced options to change settings and IDs
      • Disabled new bookshelves
      • Updated for 1.7.3
      • Fixed another NPE on startup
      • Fixed NPE on startup
      • Updated to unofficial version of 1.6.6
      • changed class path for flower, cactus and reed
      • Fixed not able to place in potted plants
      • Fixed blockcycler interaction
      • Added potted plants
      • Initial Release
      • Updated to 1.7.3
      • Fixed static construction of objects problem
      • Fixed no tree generation
      • updated to 1.6.6
      • fixed clicking on bananacake blocks, fruit leaves
      • fixed using fertilizing
      • fixed activating banana cake
      • Initial Release
      • Updated to 1.6.6
      • Made everything public and even added a public ()V constructor in water mob class (no idea if that will solve it though)
      • Says its loaded on startup when its loaded
      • Initial Release
      16 Bit Entity ID Packet Mod
      • Supports both 16 bit and 8 bit servers
      • Initial Release
      • Fixed conflict with glass bug
      • Initial Release
      • Fixed no output on windows machines.
      • More informative about files to translate not being found.
      • Made it tolerate there being no file separator at the end of retroSource.
      • Removed some spam.
      • Added checks that make sure you have all the necessary maps specified, when you translate.
      • Initial Release
      • Update to 1.7.3
      • Initial Release

      Donate (Not necessary but appreciated)
  2. Offline


    I'm using CB 860, ItemCraft 1,4,1, and ICKSlopes.

    There is a conflict between the 16 bit entity id packet mod and the WorldEdit Client mod as they are both dependent on the same .class file "mx.class". Any chance of a merge or fix?
  3. Offline


    Just recompile the worldedit mx file and it should work.
  4. Offline


    Alright im having problems with items which isnt really a big deal for me but any new items a mod adds are invisable in inventory and when dropped basicly all the time but i only use mo's creatures so its not a huge deal but some help would be great
  5. Offline


    Ummm... Im a noob, how do I do that?
  6. OK, Stop your server.
    Download this zipfile from HERE
    It contains 3 files. Put the plugins.ic file and the oldscripts.ic file into your Itemcraft/ICScript folder overwriting whats there. The Moretrees.props file would go into your .minecraft folder if you are running the Trees mod.
    The files are set to run ONLY Kslopes and Mo Creatures. If you are running other mods, please open the plugins.ic file with a text editor (i.e. notepad) and put a '#' at the beginning of each line containing the name of the mod you DO NOT wish to run, or remove the '#' from the beginning of the line for each mod you DO wish to run.
    The settings for the creatures are contianed in the oldscripts.ic - leave it as it is to get more creature types to spawn. You still won't get any water mobs at the moment, and Ogres seem to not break things permanently - these are known issues.

    These files are identical to mine - have you introduced the settings in a third file perhaps ?

    Stop your server.
    Open up the plugins.ic file with a text editor (i.e. notepad) - this file is in your Itemcraft/ICScript folder. Put a '#' at the beginning of the line of the Creatures plugin - like so :

    #"ICMCreatures.jar" plugin

    Now restart your server and log in with your client. Because the Creatures plugin is not active - no bunnies ! Now, stop your server and remove the '#' again from the Creatures plugin and restart your server. Bunnies gone !!

    Have you tried installing this 16bit mod, download from - HERE.
    Just install the 2 files into the root of your minecraft.jar as you would any other mod.

    Have you tried with this updated 16bit mod from - HERE.
    Just install the 2 files into the root of your minecraft.jar as you would any other mod.

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
    Last edited by a moderator: Dec 14, 2016
  7. Offline


    Any help for my problem guys???:oops: go up 16:D
  8. Have you tried installing this 16bit mod on your client - download from - HERE.
    Just install the 2 files into the root of your minecraft.jar as you would any other mod.

    Thanks for that - I've updated the wiki with a link to your success. !

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
    Last edited by a moderator: Dec 14, 2016
  9. Offline


    icephantom.... yes i have done that and it makes no change to my problem:(
    Something is realy rotten in the state of Denmark;)
  10. I've PM'd you .......
  11. Offline


    Anybody got a tutorial on recompiling? Any help is very much appreciated
  12. Offline


    @xeronut has compiled a list of candidates to port and the number of votes they have gotten so far:

    FiniteLiquid(7) -
    NetherCraft(6) -
    PlasticCraft(6) -
    More Creeps & Wierdos(6) -
    FancyPack Update 6 fix(5) -
    BetterBlocks(5) -
    Millenaire NPC Villages(5) -
    BuildCraft(4) -
    IndustrialCraft(3) -
    Coral Reefs(3) -
    Planes Mod(3) -
    WildGrass(3) -
    Humans+(3) -
    MicroCubes - 8th Blocks(3) -
    Roads(2) -
    Pistons/StickyPistons(2) -
    SDKGuns(2) -
    Airship/Steamboat mod(2) -
    Trains/Zeppelin Mod(2) -
    Mystic Modpack(1) -
    OresGalores(1) -
    SteamCraft(1) -
    Kaevator Ceiling Stairs/Hedges & Shears(1) -
    Xie's Farming Mod(1) -
    Xie's Cooking Mod(1) -
    Portal Gun(1) -

    ---Honorable Mention---
    Nether Update
    Artifacts Mod

    From now on though, I ask you to vote in this thread instead. If you have more suggestions you can post in that thread. Requests in this thread will no longer be counted.
  13. Offline


    Maybe my problem is what I did on the client side..... I just put the Itemcraft.jar in my .minecraft/bin folder and then I deleted the META-INF........:eek: is that the way to do it:)
  14. Offline


    ItemCraft.jar go's in the directory of your CraftBukkit
  15. No - and do you mean you put the files from inside the Itemcraft.jar into your Minecraft.jar ? If so, this is incorrect.
    You could try downloading the test Server from HERE
    Hopefully that will sort out your server.
    I would suggest starting with a Clean minecraft.jar - install the 16bit entity mod and the other mods you wish to run and see if you can connect again.
  16. Offline


    Ok I attempted to merge the mx.class files from Worldedit Client and 16 bit id mod and all I got was merge Conflict errors and a useless file... Any help? Anyone...?
  17. Offline


    :D It works... now I can log on too my, now I just ned to install the mods on all our computers

    Thanks so much guys:D
  18. Offline


    I'm almost finished with a new dev tool, which is really just an old tool, the automatic translation tool that I've converted into an ICPlugin. Using this tool anyone can easily port any mods, with little to moderate java knowledge, and perhaps simple mods without almost any java knowledge.

    To use it however, currently, you must use it with another tool which is written in shell script. So if you are on a windows machine it will obviously not work.
    script_dir="$(dirname "$(readlink -f ${BASH_SOURCE[0]})")"
    cd $script_dir #this just goes to the script location.
    mkdir temp
    mkdir java
    mkdir bin
    java -cp retroguard.jar RetroGuard minecraft.jar temp/minecraft_rg.jar reg.reg retroguard.log 0
    cd temp
    jar xvf minecraft_rg.jar
    mv minecraft_rg.jar ../bin
    cd ..
    wine jad.exe -b -d "java" -dead -o -r -s .java -stat -v temp/*.class temp/net/minecraft/client/*.class
    rm -R temp
    Edit: My bat knowledge is rusty, so can anyone correct any mistakes:
    mkdir temp
    mkdir java
    mkdir bin
    java -cp retroguard.jar RetroGuard minecraft.jar temp\minecraft_rg.jar reg.reg retroguard.log 0
    cd temp
    jar xvf minecraft_rg.jar
    move minecraft_rg.jar ..\bin
    cd ..
    jad.exe -b -d "java" -dead -o -r -s .java -stat -v temp\*.class temp\net\minecraft\client\*.class
    del -R temp
    The Translation tool can do 4 things. It can
    1. Produce a classdiff that you can then use to manually map class names (vanilla to bukkit).
    2. Proudce a method map that will to some extent be misaligned (you have to manually align it with each mc update)
    3. Produce a misaligned field map
    4. Translate mod source files.
    1-3 are only needed to produce the spreadsheets for each mc update. It is also possible to use them to produce a mapping between different versions of minecraft and use it to update old mods. If anyone is willing to do this, I can give some basic instructions how to do this.

    But presumably number 4 is the most interesting feature of this tool, even though it relies on the output produced by the earlier 3.

    To translate you need to inform the tool where your files and paths are.
    • mcpmet
    • mcpfie
    • classmap
    • kedamet
    • kedafie
    • retroSource
    I will supply all the files (at least for 1.6.6), except for retroSource which is a path to the decompiled retroguarded java files using the other tool (the shell script)

    You can inform the tool using the settings system in ICscript (this is btw the new syntax) e.g.:
    "mcpmet" "C:\\blah\\methods.csv" putSetting
    Once all paths have been specified, you should be able to use the tool. There are 3 ways to do it but the one that will do in most cases is translate1, which translates all class files in a folder. It doesn't actually translate the class files, but uses them as a reference for which java files to translate in the retrosource folder, so it saves time for you (just extract the mod's files into it.)
    "C:\\blah\\mod\\" file "C:\\blah\\translatedmod\\" file translate1
    GrindGod likes this.
  19. I dont get the potted plants work for Multiplayer. Is there a understandable Instruction that works?
    thank you ver much

    And it would be really nice when asdaarg can update the FancyPack Version 6 working :)
  20. Offline


    This is great! I am looking forward to it^^
  21. Offline


    How to translate a mod
    Note: In order to fully port a mod, you will need at least a basic understanding of java. If you can't understand the last section of this post, then you're not ready port a mod. I don't intend to hold a java for noobs lecture here. If someone else has the time for it, they can do it though and I'll link it.

    Setting up the tools:
    1. Get retro and put it in a folder
    2. If you are using windows get this file maintained by @icephantom and use it instead of
    3. Get the maps and put them somewhere (can be the same folder)
    4. Overwrite reg.reg from retro with the new one from the qwertypower maps
    5. Get ICTranslator and put it in ICPlugins folder like any other ICPlugin. Uncomment the plugin so it can start.
    6. Now you need to inform ICTranslator where you put the maps and the retrosource. You do this by specifying these settings in the script before ICTranslator is started:
      • mcpmet - for methods.csv
      • mcpfie - for fields.csv
      • classmap - for classmap.csv
      • kedamet - for kedamet.csv
      • kedafie - for kedafie.csv
      • retroSource - for the java folder in your retro folder
      You can do it using the script like this:
      "mcpmet" "C:\\blah\\methods.csv" putSetting

    Doing the translation (per mod):
    1. Put your minecraft.jar (or a copy of it, or a link to it (if you are on mac/linux)) containing the mod in the retro folder
    2. Run (or translate.bat if you are on windows)
    3. Extract the mod into some folder (lets say "C:\blah\mod\")
    4. Now you can translate as follows (either using GUI or putting this after the plugin has been loaded in the script. In the latter case you need to do it in a separate include, since the commands cannot be used until the file has been parsed and executed):
      "C:\\blah\\mod\\" file "C:\\blah\\translatedmod\\" file translate1
      where the former is the folder you extracted it to. The latter is where you want to have the translated mod.

    Completing the porting
    Translation is just the first phase of porting the mod. To make it work as an ICplugin you need to add/change some stuff in the java files and then compile it.

    Things you need to do:
    • Create a plugin.yml file specifying the name, version and what class ItemCraft should load. Example yml file looks like this:
      name: ICTranslator
      main: ictranslator.Main
      version: 0.1
      Put this file in the root of your source folder.
    • Reference the libraries the ItemCraft and Craftbukkit jars.
    • Locate the main class. It should be named starting with "mod_" typically e.g. mod_FancyPack.
    • Add this import to the top of that file:
      import com.asdaarg.bukkit.itemcraft.ItemCraft;
    • Add this method into the class:
      public void ItemCraftInit(MinecraftServer ms) {
      Then move all initialization stuff into that. (static initializers may or may not have to be moved in, you can test whether it works without first. Then move them in and remove eventual final modifiers)
    • There are often calls to get ids and properties out of some props file. You need to replace those with ItemCraft.getID or ItemCraft.getSetting
    • There are sometimes translation bugs, if there are, you need to look up the name in kedamet.csv or kedafie.csv and figure out what the correct translation is. I'd appreciate it if when you fix these notify me about them so I can update the maps.
    • Sometimes there are methods that simply have no server equivalent. Those should simply be commented out.
    • Here is an example ICplugin you can use for reference:
    Notes about method and field names:
    S_unc/Pield - no corresponding mcp name i.e. user defined.
    U_unc/T_unc - has corresponding mcp name i.e. its an override/implementation of a vanilla method, but probably has no server equivalent.
    Q_ield/R_ield - has corresponding mcp name - This happens when a field is hidden by another.
    If you find a method that is guaranteed not to be on the server side, notify me and I'll change the name to deleteme.

    After succesfully porting a mod

    I'd appreciate it if you could share it with us here, and a short report of any out of ordinary things you had to do to make it work. This can aid others and retranslating the same mod for the next update.

    If you are unable to complete the porting

    You can upload the source and let someone else have a stab at it. Even if you have no java knowledge, uploading translated mods can aid those who are java knowledgeable but can't be bothered to learn and/or do the translation process.
  22. Offline

    Michael Murphy

    Thanks alot! I really don't want to go through the bukkit net.minecraft.server and try to map it against MCP, this will save me alot of face-palms.
  23. Offline


    That does seem fairly easy to do, except for step 7 and 9, but I think people will learn it fast enough^^
  24. Offline


    After this step i have a java and a bin folder. Java Folder is empty and bin has a "minecraft_rg.jar" file in it.
    Is this right? Cause java Folder is emtpy. I tried it with PlasticCraft in the jar (and Modlaoder).
  25. Offline


    ok well then the unjarring phase failed, I guess we need to throw in that too.
  26. Offline


    :p ok so i can just put the files from the jar to the java folder? Or are only the needed files placed there?
  27. Offline


    What do you get when you type jar in command line?
  28. Offline


    I get a syntax Description and a List of Options i can use.
  29. Offline


    Ok, my guess is that the folder it was executed in got somehow messed up, lets wait for IcePhantom to fix it.
  30. This is not easily fixed by me - I have uploaded an updated version of the translate.bat which will do a check if users have the JDK version of java 6 installed - if they don't, it'll come up with a message telling them to go download it.
    The jar.exe is not available in the JRE version of java, which most people will have installed in Windows - please download the JDK java version for your Windows (64bit / 32bit) from HERE.

Share This Page