Armagidon

Class DCase

Aug 27th, 2017
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.20 KB | None | 0 0
  1. package com.ac.dc;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.HashMap;
  5. import java.util.List;
  6. import java.util.Random;
  7.  
  8. import org.bukkit.Bukkit;
  9. import org.bukkit.ChatColor;
  10. import org.bukkit.Material;
  11. import org.bukkit.entity.Player;
  12. import org.bukkit.event.EventHandler;
  13. import org.bukkit.event.Listener;
  14. import org.bukkit.event.inventory.InventoryClickEvent;
  15. import org.bukkit.event.inventory.InventoryCloseEvent;
  16. import org.bukkit.inventory.Inventory;
  17. import org.bukkit.inventory.ItemStack;
  18. import org.bukkit.inventory.meta.ItemMeta;
  19.  
  20. public class DCase implements Listener
  21. {
  22.     private static Case plugin;
  23.     public static int keys = 0;
  24.     private HashMap<Player, Integer> tasks = new HashMap<>();
  25.     private int task;
  26.     public static List<String> itemlist = new ArrayList<>();
  27.     private static  HashMap<String, Integer> keysofaccount = new HashMap<>();
  28.     public static List<String> names = new ArrayList<>();
  29.    
  30.     public DCase(Case plugin) {
  31.         DCase.plugin = plugin;
  32.     }
  33.  
  34.     public static void open(Player p)
  35.     {
  36.         Inventory casE = Bukkit.createInventory(null, 9, ChatColor.RED + "Opening case");
  37.         ItemStack keyi = new ItemStack(131);
  38.         ItemMeta meta = keyi.getItemMeta();
  39.         List<String> list = new ArrayList<String>();
  40.         String arg = "Ключей: " + keys;
  41.         list.add(arg);
  42.         meta.setLore(list);
  43.         meta.setDisplayName(ChatColor.GOLD + "ключ");
  44.         keyi.setItemMeta(meta);
  45.         casE.setItem(4, keyi);
  46.         p.openInventory(casE);
  47.     }
  48.    
  49.     @EventHandler
  50.     public void addGroup(InventoryClickEvent e)
  51.     {
  52.         Inventory inv = e.getInventory();
  53.         if(inv.getName().equalsIgnoreCase("Getting prize"))
  54.         {
  55.             if(e.getCurrentItem().getType() == Material.AIR) return;
  56.             Bukkit.getScheduler().runTaskLater(plugin, () ->{
  57.                 e.getWhoClicked().closeInventory();
  58.             }, 1L);
  59.         }  
  60.     }
  61.    
  62.     @EventHandler
  63.     public void onClick(InventoryClickEvent e)
  64.     {
  65.         Player p = (Player) e.getWhoClicked();
  66.         Inventory inv = e.getInventory();
  67.         if(inv.getName().equalsIgnoreCase(ChatColor.RED + "Opening case"))
  68.         {
  69.             if(e.getCurrentItem().getType() == Material.AIR) return;
  70.             e.setCancelled(true);
  71.             if(!e.getCurrentItem().getItemMeta().hasDisplayName()) return;
  72.             if(e.getCurrentItem().getTypeId() != 131) return;
  73.             if(!e.getCurrentItem().getItemMeta().getDisplayName().equals(ChatColor.GOLD + "ключ")) return;
  74.             if(keys == 0) return;
  75.             removeKey(p);
  76.             this.spinmenu(p);
  77.            
  78.         }
  79.         if(inv.getName().equalsIgnoreCase("Opening..."))
  80.         {
  81.             if(e.getCurrentItem().getType() == Material.AIR) return;
  82.             e.setCancelled(true);
  83.         }
  84.     }
  85.    
  86.     public void spinmenu(final Player p)
  87.     {
  88.         List<ItemStack> items = new ArrayList<>();
  89.         Inventory spin = Bukkit.createInventory(null, 9, "Opening...");
  90.         Random r = new Random();
  91.             for(String item : itemlist)
  92.             {
  93.                 ItemStack item1 = new ItemStack(Material.getMaterial(item.toUpperCase()));
  94.                 ItemMeta meta = item1.getItemMeta();
  95.                 for(String name : names)
  96.                 {
  97.                     meta.setDisplayName(name);
  98.                     item1.setItemMeta(meta);
  99.                 }
  100.                 items.add(item1);
  101.             }
  102.         task = Bukkit.getScheduler().scheduleSyncRepeatingTask(plugin, () -> {
  103.             int index = r.nextInt(itemlist.size());
  104.             ItemStack item = items.get(index);
  105.             ItemMeta meta = item.getItemMeta();
  106.             String name = names.get(index).replace("&", "\u00a7");
  107.             meta.setDisplayName(name);
  108.             item.setItemMeta(meta);
  109.             spin.setItem(4, items.get(index));
  110.            
  111.         }, 0, 2);
  112.  
  113.         tasks.put(p, Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, () -> {
  114.             Bukkit.getScheduler().cancelTask(task);
  115.             tasks.remove(p);
  116.             int index = r.nextInt(itemlist.size());
  117.             ItemStack item = items.get(index);
  118.             getPrize(p, item);
  119.         }, 60));
  120.             p.openInventory(spin);
  121.         }
  122.        
  123.     public void getPrize(Player p,ItemStack item)
  124.     {
  125.             Inventory inv = Bukkit.createInventory(null, 9, "Getting prize");
  126.             inv.setItem(4, item);
  127.            
  128.         p.openInventory(inv);
  129.     }  
  130.    
  131.     @EventHandler
  132.     public void onClose(InventoryCloseEvent e) {
  133.         Player player = (Player) e.getPlayer();
  134.         if (e.getInventory().getName().equalsIgnoreCase("Getting prize")) {
  135.             if (tasks.containsKey(player)) {
  136.                 Bukkit.getScheduler().cancelTask(tasks.get(player));
  137.                 Bukkit.getScheduler().cancelTask(task);
  138.                 tasks.remove(player);
  139.             }
  140.         }
  141.     }
  142.    
  143.     public static void addKey(Player p,int amount)
  144.     {
  145.         keys = keys + amount;
  146.         keysofaccount.put(p.getName(), keys);
  147.     }
  148.    
  149.     public void removeKey(Player p)
  150.     {
  151.         keys = keys - 1;
  152.         keysofaccount.put(p.getName(), keys);
  153.     }
  154. }
Advertisement
Add Comment
Please, Sign In to add comment