What I want; On hypixel they have this thing where the lore of an item is a picture, with multiple frames. It rotates through these creating a sort of animation. I would like a plugin that would give me the option to add lore like this to ANY item. Commands; None Permissions; Lore.create When I would like it by; u decide Sorry if this is a bit vague; i'm not really sure about how to do this.
Interesting, they aren't using a picture, they are just using colored characters that keeps on changing. It looks like they are constantly updating the item's lore to play the next frame. Bigger servers can handle this stuff easier, but smaller servers, this could slow them down. Pictures (Move your mouse to reveal the content) Pictures (open) Pictures (close)
I guess they are using this library. http://forums.bukkit.org/threads/lib-imagemessage-v2-1-send-images-to-players-via-the-chat.204902 (because Codename_B posted the animated message addition in this thread and he is as far as I know a developer on the hypixel server.)
Yes, he's the one who wrote the scrolling lore in the first place. He posted the algorithm he uses to match the pixels, but the libraries do two different things.
darkness1999 No, they aren't using my library. I was inspired to add the animations to mine after seeing it on hypixel.
bobacadodl I have to do a plugin with this feature now, and I think i have to do it frame by frame, pixel by pixel
This is the method i use for this: Do this code then just call the openInv(Player); method in whatever ... you can also code in pictures and movement using this repeating task. (sorry for the weird names for stuff) Code:java @SuppressWarnings("deprecation") private void openInv(final Player p) { final Inventory inv = Bukkit.createInventory(null, 27, ChatColor.AQUA + "Game Selector"); final ItemStack twentyone = new ItemStack(Material.COOKIE); ItemMeta twentyonemeta = twentyone.getItemMeta(); final ItemStack twentytwo = new ItemStack(Material.COOKIE); ItemMeta twentytwometa = twentytwo.getItemMeta(); final ItemStack twentythree = new ItemStack(Material.COOKIE); ItemMeta twentythreemeta = twentythree.getItemMeta(); final ItemStack twentyfour = new ItemStack(Material.COOKIE); ItemMeta twentyfourmeta = twentyfour.getItemMeta(); final ItemStack twentyfive = new ItemStack(Material.COOKIE); ItemMeta twentyfivemeta = twentyfive.getItemMeta(); final ItemStack twentysix = new ItemStack(Material.COOKIE); ItemMeta twentysixmeta = twentysix.getItemMeta(); final ItemStack twentyseven = new ItemStack(Material.COOKIE); ItemMeta twentysevenmeta = twentyseven.getItemMeta(); final ItemStack twentyeight = new ItemStack(Material.COOKIE); ItemMeta twentyeightmeta = twentyeight.getItemMeta(); final ItemStack twentynine = new ItemStack(Material.COOKIE); ItemMeta twentyninemeta = twentynine.getItemMeta(); final ItemStack thirty = new ItemStack(Material.COOKIE); ItemMeta thirtymeta = thirty.getItemMeta(); twentyonemeta.setDisplayName(" §1Donation Info! "); twentyonemeta.setLore(Arrays.asList("")); twentyone.setItemMeta(twentyonemeta); twentytwometa.setDisplayName(" §1onation Info! D"); twentytwometa.setLore(Arrays.asList("")); twentytwo.setItemMeta(twentytwometa); twentythreemeta.setDisplayName(" §1nation Info! Do"); twentythreemeta.setLore(Arrays.asList("")); twentythree.setItemMeta(twentythreemeta); twentyfourmeta.setDisplayName(" §1ation Info! Don"); twentyfourmeta.setLore(Arrays.asList("")); twentyfour.setItemMeta(twentyfourmeta); twentyfivemeta.setDisplayName(" §1tion Info! Dona"); twentyfivemeta.setLore(Arrays.asList("")); twentyfive.setItemMeta(twentyfivemeta); twentysixmeta.setDisplayName(" §1ion Info! Donat"); twentysixmeta.setLore(Arrays.asList("")); twentysix.setItemMeta(twentysixmeta); twentysevenmeta.setDisplayName(" §1on Info! Donati"); twentysevenmeta.setLore(Arrays.asList("")); twentyseven.setItemMeta(twentysevenmeta); twentyeightmeta.setDisplayName(" §1n Info! Donatio"); twentyeightmeta.setLore(Arrays.asList("")); twentyeight.setItemMeta(twentyeightmeta); twentyninemeta.setDisplayName(" §1 Info! Donation"); twentyninemeta.setLore(Arrays.asList("")); twentynine.setItemMeta(twentyninemeta); thirtymeta.setDisplayName(" §1Info! Donation "); thirtymeta.setLore(Arrays.asList("")); thirty.setItemMeta(thirtymeta); inv.setItem(1, twentyone); number = 10; p.openInventory(inv); this.getServer().getScheduler() .scheduleAsyncRepeatingTask(this, new Runnable() { public void run() { if (number == 10) { inv.setItem(1, twentytwo); p.updateInventory(); number--; } else if (number == 9) { inv.setItem(1, twentythree); p.updateInventory(); number--; } else if (number == 8) { inv.setItem(1, twentyfour); p.updateInventory(); number--; } else if (number == 7) { inv.setItem(1, twentyfive); p.updateInventory(); number--; } else if (number == 6) { inv.setItem(1, twentysix); p.updateInventory(); number--; } else if (number == 5) { inv.setItem(1, twentyseven); p.updateInventory(); number--; } else if (number == 4) { inv.setItem(1, twentyeight); p.updateInventory(); number--; } else if (number == 3) { inv.setItem(1, twentynine); p.updateInventory(); number--; } else if (number == 2) { inv.setItem(1, thirty); p.updateInventory(); number--; } else if (number == 1) { inv.setItem(1, twentyone); p.updateInventory(); number = 10; } } }, 0L, 10L); }
TimJames Why not use a loop for that? And meta.setLore(null) will also work, or meta.setLore(new ArrayList<String>())