Skip to content

saicone/itemrender

Repository files navigation

ItemRender

Powerful easy-to-use API to modify how players see items.

Do you ever want to implement updatable items? This is the API are you looking for.

ItemRender API offers easy-to-use methods to edit client-side items.

// A simple edit that parse placeholders on item name and lore
var mapper = ItemMapper.<Player, ItemStack>builder("myedit:placeholders")
    .views(ItemView.WINDOW, ItemView.MERCHANT)
    .apply(context -> {
        ItemStack item = context.item();
        if (item != null && item.hasItemMeta()) {
            ItemMeta meta = item.getItemMeta();
            boolean modified = false;

            String name = meta.getDisplayName();
            if (name != null) {
                name = PlaceholderAPI.setPlaceholders(context.player(), name);
                modified = true;
            }

            List<String> lore = meta.getLore();
            if (lore != null && !lore.isEmpty()) {
                for (int i = 0; i < lore.size(); i++) {
                    lore.set(i, PlaceholderAPI.setPlaceholders(context.player(), lore.get(i)));
                }
                modified = true;
            }

            if (modified) {
                item.setItemMeta(meta);
                context.setItem(item);
            }
        }
    }).build();

// An edit that doesn't show player armor if the player has invisibility effect and 'invisible.armor' permission
var mapper = ItemMapper.<Player, ItemStack>builder("myedit:invisibility")
    .views(ItemView.EQUIPMENT)
    .apply(context -> {
        for (Player player : Bukkit.getOnlinePlayers()) {
           if (player.getEntityId() == context.entityId()) {
               if (player.hasPotionEffect(PotionEffectType.INVISIBILITY) && player.hasPermission("invisible.armor")) {
                   context.setItem(null);
               }
               break;
           }
        }
    }).build();

// Register mapper into item render
ItemRenderAPI.bukkit().register(mapper);

About

API to edit client-side items

Resources

License

Stars

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages