Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package me.yhl;
- import java.util.HashMap;
- import org.bukkit.Bukkit;
- import org.bukkit.ChatColor;
- import org.bukkit.Material;
- import org.bukkit.entity.Player;
- import org.bukkit.inventory.Inventory;
- import org.bukkit.inventory.ItemStack;
- import org.bukkit.inventory.meta.ItemMeta;
- public class AnimationTimer implements Runnable {
- HashMap<Inventory,Integer> instances = new HashMap<Inventory,Integer>();
- HashMap<Inventory,Integer> adding = new HashMap<Inventory,Integer>();
- HashMap<Player, Boolean> t = new HashMap<Player, Boolean>();
- double nextUpdate = 0L;
- int Progress = 0;
- int add = 1;
- Player p;
- public void onEnable(){
- Miner m = Miner.getInstance();
- }
- public AnimationTimer(Miner Miner) {
- }
- public void getItem(Material item, String itemname,Inventory inv, int slot){
- ItemStack itemm = new ItemStack(item);
- ItemMeta tmeta = itemm.getItemMeta();
- tmeta.setDisplayName(ChatColor.translateAlternateColorCodes('&', itemname));
- itemm.setItemMeta(tmeta);
- inv.setItem(slot, itemm);
- }
- public void setName(Player p, int slot, Inventory inv, String name){
- inv.getItem(slot).getItemMeta().setDisplayName(ChatColor.translateAlternateColorCodes('&', name));
- }
- public void setup(Player p)
- {
- Inventory miner = Bukkit.createInventory(p, 45, ChatColor.GOLD + "" + ChatColor.BOLD + p.getName() + "'s Miner"); //add their name to it so its not able to be opened by others
- getItem(Material.COAL, "&4&lCOAL", miner, 31);
- getItem(Material.REDSTONE_BLOCK, "&c&lOFF", miner, 29);
- getItem(Material.PAPER, "&cProgress: &4" + Progress + "&l%", miner, 33);
- miner.setItem(10, new ItemStack(Material.STAINED_GLASS_PANE, 1, (short)14));
- miner.setItem(11, new ItemStack(Material.STAINED_GLASS_PANE, 1, (short)14));
- miner.setItem(12, new ItemStack(Material.STAINED_GLASS_PANE, 1, (short)14));
- miner.setItem(13, new ItemStack(Material.STAINED_GLASS_PANE, 1, (short)14));
- miner.setItem(14, new ItemStack(Material.STAINED_GLASS_PANE, 1, (short)14));
- miner.setItem(15, new ItemStack(Material.STAINED_GLASS_PANE, 1, (short)14));
- miner.setItem(16, new ItemStack(Material.STAINED_GLASS_PANE, 1, (short)14));
- p.openInventory(miner);
- this.instances.put(miner,10);
- }
- @Override
- public void run() {
- HashMap<Inventory,Integer> updatedMap = new HashMap<Inventory,Integer>();
- if(System.currentTimeMillis() <= this.nextUpdate)
- return;
- double seconds = Miner.getInstance().messages.getInt("seconds");
- this.nextUpdate = System.currentTimeMillis() + (1000 * seconds);
- for(Inventory inv:instances.keySet())
- {
- Player p = (Player) inv.getViewers().get(0);
- t.put(p, false);
- if(t.get(p) == true){
- int currentSlot = instances.get(inv);
- if(inv.getViewers().isEmpty())
- continue;
- if (currentSlot > 16) {
- resetBar(inv);
- currentSlot = 10;
- add = 1;
- }
- inv.setItem(currentSlot, new ItemStack(Material.STAINED_GLASS_PANE, 1, (short)13)); //update the item
- p.updateInventory();
- updatedMap.put(inv, currentSlot+1);
- adding.put(inv, add+1);
- Progress = add*14;
- ItemStack itemm = new ItemStack(Material.PAPER);
- ItemMeta tmeta = itemm.getItemMeta();
- tmeta.setDisplayName(ChatColor.translateAlternateColorCodes('&', "&cProgress: &4" + Progress + "&l%"));
- inv.getItem(33).setAmount(add);
- setName(p, 33, inv, "&cProgress: &4" + Progress + "&l%");
- inv.getItem(33).setItemMeta(tmeta);
- p.updateInventory();
- add++;
- if(currentSlot == 9){
- add = 1;
- }
- if(currentSlot == 16){
- p.getInventory().addItem(new ItemStack(inv.getItem(31).getType()));
- }
- this.instances.clear();
- this.instances.putAll(updatedMap);
- }
- }
- }
- public void resetBar(Inventory miner){
- miner.setItem(10, new ItemStack(Material.STAINED_GLASS_PANE, 1, (short)14));
- miner.setItem(11, new ItemStack(Material.STAINED_GLASS_PANE, 1, (short)14));
- miner.setItem(12, new ItemStack(Material.STAINED_GLASS_PANE, 1, (short)14));
- miner.setItem(13, new ItemStack(Material.STAINED_GLASS_PANE, 1, (short)14));
- miner.setItem(14, new ItemStack(Material.STAINED_GLASS_PANE, 1, (short)14));
- miner.setItem(15, new ItemStack(Material.STAINED_GLASS_PANE, 1, (short)14));
- miner.setItem(16, new ItemStack(Material.STAINED_GLASS_PANE, 1, (short)14));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement