package be.isach.ultracosmetics.menu.menus; import be.isach.ultracosmetics.UltraCosmetics; import be.isach.ultracosmetics.cosmetics.Category; import be.isach.ultracosmetics.cosmetics.Cosmetic; import be.isach.ultracosmetics.cosmetics.type.EmoteType; import be.isach.ultracosmetics.menu.CosmeticMenu; import be.isach.ultracosmetics.player.UltraPlayer; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; import java.util.List; /** * Emote {@link be.isach.ultracosmetics.menu.Menu Menu}. * * @author iSach * @since 08-23-2016 */ public class MenuEmotes extends CosmeticMenu<EmoteType> { public MenuEmotes(UltraCosmetics ultraCosmetics) { super(ultraCosmetics, Category.EMOTES); } @Override protected void putItems(Inventory inventory, UltraPlayer ultraPlayer, int page) { } @Override protected ItemStack filterItem(ItemStack itemStack, EmoteType cosmeticType, UltraPlayer player) { ItemMeta itemMeta = itemStack.getItemMeta().clone(); itemStack = cosmeticType.getFrames().get(cosmeticType.getMaxFrames() - 1).clone(); ItemMeta other = itemStack.getItemMeta().clone(); other.setDisplayName(itemMeta.getDisplayName()); other.setLore(itemMeta.getLore()); itemStack.setItemMeta(other); return itemStack; } @Override public List<EmoteType> enabled() { return EmoteType.enabled(); } @Override protected void toggleOn(UltraPlayer ultraPlayer, EmoteType emoteType, UltraCosmetics ultraCosmetics) { emoteType.equip(ultraPlayer, ultraCosmetics); } @Override protected void toggleOff(UltraPlayer ultraPlayer) { ultraPlayer.removeEmote(); } @Override protected Cosmetic getCosmetic(UltraPlayer ultraPlayer) { return ultraPlayer.getCurrentEmote(); } }