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


    -- Follow up --
    Did not help any at all, have a gazillion rabbits jumping around, immune to any damage.
    Not sure on the exact number, but from the ignore messages when starting server without creatures, it exceeds 250.
    Server lagging to death.
  3. Offline


    How do i change the spawning rate of the animals? because i have 2millions rabits on my server but i never see any lion oder bird or Sharks.
  4. Offline


    So based on what you had said. I decided to start server without creatures. Id much rather play without animals than lose all my hard work...turns out if you deactivate Animals...turn on the surver...and then reactivate animals. it despawned all of the cuddly little bunnies...this is a temporary fix of course because I am sure they will come back with a vengeance. but I am willing to restart my server once a day if it means keeping my work.

    Thanks for the post that made me do this. :)
  5. Offline

    Jason Creson

    Hey guys... can't you all read back one page in this plugin thread before asking questions? This is how you limit spawns and you can configure each one. Also Lions aren't in 1.6.6 I noticed because it removes the entity from your maps if you are converting from 1.5_02>
  6. Offline


    where do we put the new file?
    also, no other animals are spawning, only bunnies....
  7. Offline


    I do have lions, saw one get killed by a bear the other day.
  8. Offline


    can someone do me a favour and make me a zip file with an already installed item craft...
    im just too stupid to make it....
  9. Offline

    Jason Creson

    it goes in the same folder as "plugins.ic"
    put a line inside plugins.ic that says>
    "oldscript.ic" includeold

    All of you that are having problems with getting clients to connect to the server, I bet it is because you are trying to run MCpatcher so that you can use HD texture packs. Do yourself a favor and use MCpatcher on your minecraft.jar BEFORE you patch Modloader and the rest of the mods or else you will experience a timeout.

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


    I think I know how to make the horses works on itemcraft. I know nothing about programming but listen to me and tell me if i am wrong. I look the files and i discover that horses have only one files for every sort. Moreover when we disconect and reconnect horses are different every times and when we ride a horse we are kick from the server. I think we are kick because the horse is different for the others. And Minecraft don't understand why someone can fly withe a pegase beacuse of the fact the game show you a black horse. I think it is simple to make it works. We need to make a file for each sort of horse. When a man on a server will see a horses, the others will see the same and i thnik there won't be kicking.
  11. Offline


    The thing is there is information about the horses that never gets sent to the client. There is a built in way of doing this sort of things called datawatchers (look at for instance how its done with wolves.) The only thing you need to do is pick the variables you want to be "watched" and replace them with calls to the datawatcher to set or get the data mapped to an unique ID, starting from 16 (0-15 is mapped to data of a sort that all entities share I guess.) It is a bit tiresome process to do, because there are a lot of variables, and I've been sort of busy. But if anyone wants to do this, I can give an example and you can do the rest.
  12. now all we need is a working version of iccreatures
  13. Offline


    Looks like someone is still alive :D
    looking forward to next update!

    It works, but is just a bit buggy.

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


    <Edit by Moderator: Redacted mediafire url>
    Last edited by a moderator: Dec 14, 2016
  15. Offline


    I can do this if it is not complicated give me the example i want to participate!!!!
  16. Offline


    You probably know more about it than I do. I made a couple of functions to support custom GUI's but they make use of java reflection and haven't been updated since 1.5.1 so they might not even work now, but to get those extra slots you would have to modify the tile entites themselves, something which I have not looked into, and I guess you have already done this with the client versions which are likely to be the same on the serve side. The only thing extra you need is the calls to send the information to the client, which you can do with the GUI functions.
  17. Offline


    I want to solve the problem of horses tell me how to do and i will do.
    Another question : have you ever thoungh about make itemcraft an opensource? With the more and more popularity the mod have it will be great?
  18. Offline


    I can't start the server with the 860 CB Build.

    java -Xmx1024M -Xms1024M -cp ItemCraft.jar;minecraft_server.jar org.bukkit.craftbukkit.Main
    148 recipes
    16 achievements
    10:56:21 [INFO] Starting minecraft server version Beta 1.6.6
    10:56:21 [INFO] Loading properties
    10:56:21 [INFO] Starting Minecraft server on *:25565
    10:56:21 [INFO] This server is running Craftbukkit version null (MC: 1.6.6)
    10:56:21 [INFO] class com.asdaarg.bukkit.itemcraft.ICS
    10:56:21 [INFO] ItemCraft 1.3.5
    10:56:21 [INFO] class com.asdaarg.bukkit.itemcraft.ItemCraft
    10:56:21 [INFO] Preparing level "world"
    10:56:21 [GRAVE] java.lang.NoSuchMethodError: net.minecraft.server.WorldServer.<init>(Lnet/minecraft/server/MinecraftServer;Lnet/minecraft/server/IDataManager;Ljava/lang/String;IJLorg/bukkit/World$Environment;)V
    10:56:21 [GRAVE]        at net.minecraft.server.MinecraftServer.a(
    10:56:21 [GRAVE]        at net.minecraft.server.MinecraftServer.init(
    10:56:21 [GRAVE]        at
    10:56:21 [GRAVE]        at
    10:56:21 [GRAVE] Unexpected exception
    java.lang.NoSuchMethodError: net.minecraft.server.WorldServer.<init>(Lnet/minecraft/server/MinecraftServer;Lnet/minecraft/server/IDataManager;Ljava/lang/String;IJLorg/bukkit/World$Environment;)V
            at net.minecraft.server.MinecraftServer.a(
            at net.minecraft.server.MinecraftServer.init(
  19. Offline


    It is open source, the source is available under downloads. I'll upload some stuff in a moment and show how to do it.
  20. Offline


  21. Offline


    Make a Video for the install/config plz it make's the install much better/easier
  22. Offline


    The client side horse
    It can be gotten by using jad on the Mo's creatures.

    The ICMCreatures plugin source:

    Open the EntityHorse in it and you'll notice that it is very similar to the original, except all names have been translated to the bukkit equivalent, and some functions are missing because they are client side or because I disabled them (e.g. the animal chest for pack horse because it would involve too much work for me to get it to work)

    Scroll to the bottom and you see a long list of field declarations e.g:
        public int field_7018_typeint;
    This is the one that defines the type of horse. Comment it out (place // in front of it). If you use an IDE, that is good enough such as netbeans it will highlight all places where you've used this field as erroneous. If not you can use Ctrl+F and find all places where it is used.

    Now there are two ways in which the field is used.
    A) the field is assigned some value
    B) the field is read

    An assignment looks like this:
    field_7018_typeint = 0;
    where = is the assignment. This is not to be confused with ==. The assignment needs to be replaced with a call to write to a datawatcher
    this.datawatcher.b(16, Integer.valueOf(0));
    16 is the ID of the variable. You have to use the same ID for the same field, and it should be 16 or larger. So start with 16, then next field 17, and so on. 0 is simply whatever was on the right side of the assignment.

    If its not an assignment, then then the field is read e.g:
                if(field_7018_typeint == 1)
    You need to replace this with read call to the datawatcher
                if(this.datawatcher.b(16) == 1)
    You notice the 16 is the ID of the variable. Also note b is the name of the function which returns an integer. Since the field is an integer, you use b. For other types:
    byte: a
    int: b
    String: c
    For booleans you can use a byte, and you can pack up to 8 booleans in a byte if you know how to do bitwise logic. For how to do this you can check out the vanilla EntityWolf.

    When you've done this for each usage of the field, the type of horse should no longer change each time you log in, but I suspect also you may need field_7002_typechosen for it to work correctly. Also you need to do it on the client side horse.[/url]
  23. Offline


    it support bukkit 820 ?
  24. Offline


    I just saw the changelog for the newest Bukkit. Maybe that fixes the Problems with MosWateranimals?

    Made Squids (Water Animals) obey the spawn-animals setting.
    Hope that aasdaarg moves on to this Build as its recommended to Update.
  25. Offline


    It is updated. But not tested. I don't know if all the plugins made it though, so you'll have to test them.
  26. Offline


    Ah, oh it's very long XD,if anyone wants to do that on the server side i will do that on the side of client if not it will be very long
  27. Offline


    Wow that was fast.
    Tested it with Slopes and Creatures. No Errors seems to be working fine.
    Thank you. :)
  28. Offline


    I'm trying to install Mo' Creatures but I hit a snag - I modded my own client and I also mod mx.class, could you tell me the modifications you made for the 16 bit entity ID so I could add them to my client?
  29. Offline


    It accesses the Packet24 AKA "jj" class's member variable "type" AKA "b" which is now a short and not a byte.
  30. Offline


    Hello asdaarg,
    I'd like to use ItemCraft on my server but I'm hitting a minor snag.
    I use MCServerGUI to run the craftBukkit JAR file so your instructions on installing the Mod don't seem to work for me. I've deleted the META-INF directory from within the carftbukkit JAR but how do I go about getting ItemCraft to run with it?
  31. Offline


    When i download the itemCraft i get only the 1.3.3 thats the old one where do i get the 1.3.6?

Share This Page