-
-
Notifications
You must be signed in to change notification settings - Fork 5
Developer API
If you don't have Custom Items, you can still include the Custom Items API in your plugin! Just use this placeholder jar:
https://github.com/jojodmo/CustomItems/blob/master/API/CustomItemsAPI_PLACEHOLDER.jar Note that this is non-functional, but when a server with Custom Items installed uses your plugin, the API will work as intended!
If you just want to parse a String into an ItemStack, check out ItemBridge! It's super simple to add to your plugin, and lets you parse strings into Minecraft items, CustomItem items, and items from other plugins, with ease!
If you're interested in the way CustomItems stores blocks, see CustomItems region storage format
There's a lot of methods available in the API! You can view the source code of the API here to see a full list of available methods, and documentation on each:
https://github.com/jojodmo/CustomItems/blob/master/API/CustomItemsAPI.java
One way you can check if the server has Custom Items installed by using
boolean hasCUI = Bukkit.getPluginManager().getPlugin("CustomItems") != null;The API can be accessed using the class
com.jojodmo.customitems.api.CustomItemsAPI
Each method has JavaDocs attached, so you can read the documentation by looking at those. There's a bunch of other methods you can find by reading the JavaDocs, but here are four important ones:
ItemStack getCustomItem(String id)Returns the ItemStack that is represented by the Custom Item with the ID id, or null if it doesn't exist. This also handles the plugin's prefix for item IDs, so you could easily add this to your plugin, and allow players to use item IDs like "cui:myCustomItem".
You can easily add two lines of code to your method of parsing ItemStacks from Strings to allow players to use Custom Item IDs like "cui:myCustomItem" in your plugin!
String input = "cui:myCustomItem";
ItemStack matched = matchItemStack(input);
public ItemStack matchItemStack(String input){
ItemStack is = CustomItemsAPI.getCustomItem(input); // line one to add
if(is != null){return is;} // line two to add
//your other ItemStack matching code, like
return new ItemStack(Material.matchMaterial(input));
}String getCustomItemID(ItemStack stack)This will return the Custom Item ID of the ItemStack stack, or null if the stack is not a Custom Item.
So, if you wanted to get either the CustomItem ID of an item or the Minecraft material of an item, you could do something like this
public String getItemStackType(ItemStack stack){
if(stack == null){return null;} // fix null-pointer exceptions incase this code is copied and pasted :)
String customItemID = CustomItemsAPI.getCustomItemID(stack);
if(stack != null){return "cui:" + customItemID;} // prefix CustomItem IDs with "cui:"
return "minecraft:" + stack.getType().name(); // prefix Minecraft items with "minecraft:"
}String getCustomItemIDAtBlock(Block block)This will get the ID of the CustomItem at the given block, and will return null if the block is not from CustomItems
Block setCustomItemIDAtBlock(Block block, String id, boolean doBlockUpdate)Returns the Block that has been updated, or null if the CustomItem id you provided doesn't exist. If you provide null for id, this will remove whatever block is at that location (whether or not it's a CustomItems block), and will always return the block
Custom Items — Design New Items and Blocks with New Textures, Recipes & Triggers
Available for 10% off on Polymart.org at https://polymart.org/r/1/CustomItems