Class ItemRegistration

java.lang.Object
ke.ric.api.registration.ItemRegistration

public class ItemRegistration extends Object
API for registering custom items programmatically. Usage:
api.items().register(ItemRegistration.builder()
        .id("RED_WINE")
        .name("Red Wine")
        .texture("http://textures.minecraft.net/...")
        .edible(true)
        .foodValue(4)
        .saturation(0.5f)
        .consumeSeconds(2.0f)
        .animation("DRINK")
        .canAlwaysEat(true)
        .addEffect(PotionEffectType.LUCK, 600, 0, 1.0f));
  • Method Details

    • register

      public boolean register(ItemRegistration.ItemDefinitionBuilder definition)
      Register a custom item definition.
      Parameters:
      definition - The item definition to register
      Returns:
      true if registered successfully, false if ID already exists
    • registerAll

      public void registerAll(ItemRegistration.ItemDefinitionBuilder... definitions)
      Register multiple items at once.
    • registerFromFile

      public int registerFromFile(File itemFile, String defaultAddonId)
      Register addon item definitions from an editable JSON file.
    • unregisterAddon

      public int unregisterAddon(String addonId)
      Unregister all item definitions owned by an addon.
    • unregisterProgrammaticAddon

      public int unregisterProgrammaticAddon(String addonId)
      Unregister an addon's API-registered items and their ingredient recognizers before replacing those registrations. Core-file definitions with the same addon owner and existing physical items remain unchanged. Include this operation in a reload rollback scope when replacing registrations.
      Returns:
      the number of programmatic definitions removed
    • registerIngredientRecognizer

      public void registerIngredientRecognizer(String addonId, String customItemId, Predicate<org.bukkit.inventory.ItemStack> predicate)
    • registerIngredientQualifier

      public void registerIngredientQualifier(String addonId, String qualifierId, String canonicalCustomItemId, Predicate<org.bukkit.inventory.ItemStack> matches, Supplier<org.bukkit.inventory.ItemStack> preview)
      Restrict an existing addon-owned ingredient without creating another item identity.
    • hasIngredientQualifier

      public boolean hasIngredientQualifier(String qualifierId)
    • hasIngredientRecognizer

      public boolean hasIngredientRecognizer(String customItemId)
    • isRegistered

      public boolean isRegistered(String id)
      Check if an item ID is already registered.
    • registeredIds

      public Set<String> registeredIds(String addonId)
      Return custom item IDs owned by an addon, in registration order.
    • withAddonContext

      public void withAddonContext(String addonId, Runnable registrations)
      Run registrations with a default owner for builders that omit addonId.
    • builder

      public static ItemRegistration.ItemDefinitionBuilder builder()
      Create a new item definition builder.