Skip to content

Quick and easy creation and modification of ItemStack

License

Notifications You must be signed in to change notification settings

BoxedThings/Itemer

Repository files navigation

🌟⚒️ Itemer — Quick item setup

⚙️ Quick and easy creation and modification of ItemStack for Paper

CodeFactor JitPack software

🔗 Links

✨ Features

  • Item Builder: Create complex ItemStacks.
  • Adventure API Support: Full support for modern Component text.
  • Enchantment Groups: Manage sets of enchantments easily.
  • Item Editor: Modify existing items as easily as creating new ones.
  • Zero Dependencies: No extra plugins or libraries required — only Paper API.

⚒️ Recommendations

  • Java 21+: Itemer is built on Java 21 to utilize modern JVM features.
  • Paper 1.21+: Optimized specifically for the latest Paper versions.

These are just recommendations. They should work on lower server versions, but not everything will. You've been warned.

📕 Documentation

Connect with project

Maven (pom.xml):
<repositories>
    <repository>
        <id>jitpack.io</id>
        <url>https://jitpack.io</url>
    </repository>
</repositories>

<dependencies>
    <dependency>
        <groupId>com.github.BoxedThings</groupId>
        <artifactId>Itemer</artifactId>
        <!-- Replace VERSION with the latest release tag -->
        <version>VERSION</version>
        <scope>compile</scope>
    </dependency>
</dependencies>
Gradle (build.gradle):
repositories {
    maven { url 'https://jitpack.io' }
}

dependencies {
    // Replace VERSION with the latest release tag
    implementation 'com.github.BoxedThings:Itemer:VERSION'
}

Create a new item

ItemStack sword = Item.builder(Material.DIAMOND_SWORD)
        .name(Component.text("Excalibur", NamedTextColor.GOLD))
        .lore("Legendary blade", "Sharpness X")
        .enchants(EnchantmentGroup.create().add(Enchantment.SHARPNESS, 10))
        .unbreakable(true)
        .build();

Editing item

ItemStack item = new ItemStack(Material.NETHERITE_SWORD);

ItemStack sword = Item.editor(item)
        .name(Component.text("Titan Sword", NamedTextColor.GOLD))
        .enchants(new EnchantmentGroup().add(Enchantment.SHARPNESS, 3))
        .flags(ItemFlag.HIDE_ENCHANTS)
        .toItem();

Advanced Customization (modifyMeta)

If you need to access specific Meta types (like SkullMeta, LeatherArmorMeta, or BookMeta), use the modifyMeta method. It allows you to keep the builder chain while accessing low-level Bukkit features.

ItemStack playerHead = Item.builder(Material.PLAYER_HEAD)
        .name(Component.text("User's Head", NamedTextColor.YELLOW))
        .modifyMeta(meta -> {
            if (meta instanceof SkullMeta skullMeta) {
                skullMeta.setOwningPlayer(somePlayer);
            }
        })
        .build();

🤝 Contributing

Contributions, issues, and feature requests are welcome! Feel free to check the issues page. More details...

Developed with ❤️ by SuperCHIROK1 (2026)