Hub / src / main / java / com / lifeknight / relaymchub / cosmetics / ItemCosmetic.java
ItemCosmetic.java
Raw
package com.lifeknight.relaymchub.cosmetics;

import com.lifeknight.relaymchub.cosmetics.types.ItemApplication;
import com.lifeknight.relaymchub.player.HubPlayer;
import com.lifeknight.relaymcutils.player.SmartItem;
import com.lifeknight.relayutils.player.cosmetics.Cosmetic;
import org.bukkit.Material;
import org.bukkit.inventory.ItemStack;

public abstract class ItemCosmetic extends CooldownCosmetic {

    public ItemCosmetic(Cosmetic original, ItemStack item, int slot) {
        super(original);

        SmartItem smartItem = new SmartItem(item, this.getPrettyName(), this.getDescriptionArray());
        smartItem.onPlayerClick((player, b, b2) -> this.use(HubPlayer.getHubPlayer(player), b));
        this.addApplication(new ItemApplication(slot, smartItem));
    }

    public ItemCosmetic(Cosmetic original, Material item) {
        this(original, new ItemStack(item), 1);
    }

    public ItemCosmetic(Cosmetic original, ItemStack representative) {
        this(original, representative, 1);
    }

    public ItemCosmetic(Cosmetic original) {
        this(original, original.getRepresentative());
    }

    @Override
    public ItemCosmetic setCooldown(double seconds) {
        return (ItemCosmetic) super.setCooldown(seconds);
    }
}