Class MaterialModifier

java.lang.Object
io.github.projectunified.craftitem.spigot.modifier.MaterialModifier
All Implemented Interfaces:
ItemModifier, SpigotItemModifier

public class MaterialModifier extends Object implements SpigotItemModifier
Spigot modifier for changing item material type.

Supports multiple input formats:

  • Direct Material enum
  • Material name (String) with optional data value: "DIAMOND_SWORD:0"
  • Material ID number
  • List of materials (tries each until valid)

Example Usage:


 // Direct material
 ItemModifier mod1 = new MaterialModifier(Material.DIAMOND_SWORD);

 // String with data
 ItemModifier mod2 = new MaterialModifier("DIAMOND_SWORD:0");

 // Fallback list
 ItemModifier mod3 = new MaterialModifier(List.of("DIAMOND_SWORD", "IRON_SWORD"));
 
  • Constructor Details

    • MaterialModifier

      public MaterialModifier(org.bukkit.Material material)
      Creates a MaterialModifier with the specified Material enum.
      Parameters:
      material - the Material to apply
    • MaterialModifier

      public MaterialModifier(org.bukkit.Material material, short data)
      Creates a MaterialModifier with the specified Material and data value.
      Parameters:
      material - the Material to apply
      data - the data value (durability)
    • MaterialModifier

      public MaterialModifier(String material)
      Creates a MaterialModifier with a material name that may contain variables. Format: "MATERIAL_NAME" or "MATERIAL_NAME:data_value"
      Parameters:
      material - the material name (can be translated)
    • MaterialModifier

      public MaterialModifier(List<String> materials)
      Creates a MaterialModifier that tries materials in order until one is valid. Useful as a fallback mechanism.
      Parameters:
      materials - list of material names to try in order
  • Method Details

    • modify

      public void modify(SpigotItem item, UnaryOperator<String> translator)
      Applies the material change to the SpigotItem.
      Specified by:
      modify in interface SpigotItemModifier
      Parameters:
      item - the SpigotItem to modify
      translator - the string translator for variable substitution