Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.ac.dc;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Random;
- import org.bukkit.Bukkit;
- import org.bukkit.ChatColor;
- import org.bukkit.Material;
- import org.bukkit.entity.Player;
- import org.bukkit.event.EventHandler;
- import org.bukkit.event.Listener;
- import org.bukkit.event.inventory.InventoryClickEvent;
- import org.bukkit.event.inventory.InventoryCloseEvent;
- import org.bukkit.inventory.Inventory;
- import org.bukkit.inventory.ItemStack;
- import org.bukkit.inventory.meta.ItemMeta;
- public class DCase implements Listener
- {
- private static Case plugin;
- public static int keys = 0;
- private HashMap<Player, Integer> tasks = new HashMap<>();
- private int task;
- public static List<String> itemlist = new ArrayList<>();
- public DCase(Case plugin) {
- DCase.plugin = plugin;
- }
- public static void open(Player p)
- {
- Inventory casE = Bukkit.createInventory(null, 9, ChatColor.RED + "Opening case");
- ItemStack keyi = new ItemStack(131);
- ItemMeta meta = keyi.getItemMeta();
- List<String> list = new ArrayList<String>();
- String arg = "Ключей: " + keys;
- list.add(arg);
- meta.setLore(list);
- meta.setDisplayName(ChatColor.GOLD + "ключ");
- keyi.setItemMeta(meta);
- casE.setItem(4, keyi);
- p.openInventory(casE);
- }
- @EventHandler
- public void addGroup(InventoryClickEvent e)
- {
- Inventory inv = e.getInventory();
- if(inv.getName().equalsIgnoreCase("Getting prize"))
- {
- if(e.getCurrentItem().getType() == Material.AIR) return;
- Bukkit.getScheduler().runTaskLater(plugin, () ->{
- e.getWhoClicked().closeInventory();
- }, 10L);
- }
- }
- @EventHandler
- public void onClick(InventoryClickEvent e)
- {
- Player p = (Player) e.getWhoClicked();
- Inventory inv = e.getInventory();
- if(inv.getName().equalsIgnoreCase(ChatColor.RED + "Opening case"))
- {
- if(e.getCurrentItem().getType() == Material.AIR) return;
- e.setCancelled(true);
- if(!e.getCurrentItem().getItemMeta().hasDisplayName()) return;
- if(e.getCurrentItem().getTypeId() != 131) return;
- if(!e.getCurrentItem().getItemMeta().getDisplayName().equals(ChatColor.GOLD + "ключ")) return;
- if(keys == 0) return;
- removeKey();
- this.spinmenu(p);
- }
- if(inv.getName().equalsIgnoreCase("Opening..."))
- {
- if(e.getCurrentItem().getType() == Material.AIR) return;
- e.setCancelled(true);
- }
- }
- public void spinmenu(final Player p)
- {
- List<ItemStack> items = new ArrayList<>();
- final Inventory spin = Bukkit.createInventory(null, 9, "Opening...");
- Random r = new Random();
- for(String item : itemlist)
- {
- items.add(new ItemStack(Material.getMaterial(item.toUpperCase())));
- }
- task = Bukkit.getScheduler().scheduleSyncRepeatingTask(plugin, () -> {
- int index = r.nextInt(itemlist.size());
- spin.setItem(4, items.get(index));
- }, 0, 2);
- tasks.put(p, Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, () -> {
- Bukkit.getScheduler().cancelTask(task);
- tasks.remove(p);
- int index = r.nextInt(itemlist.size());
- ItemStack item = items.get(index);
- getPrize(p, item);
- }, 60));
- p.openInventory(spin);
- }
- public void getPrize(Player p,ItemStack item)
- {
- Inventory inv = Bukkit.createInventory(null, 9, "Getting prize");
- inv.setItem(4, item);
- p.openInventory(inv);
- }
- @EventHandler
- public void onClose(InventoryCloseEvent e) {
- Player player = (Player) e.getPlayer();
- if (e.getInventory().getName().equalsIgnoreCase("Getting prize")) {
- if (tasks.containsKey(player)) {
- Bukkit.getScheduler().cancelTask(tasks.get(player));
- Bukkit.getScheduler().cancelTask(task);
- tasks.remove(player);
- }
- }
- }
- public static void addKey(int amount)
- {
- keys = keys + amount;
- }
- public void removeKey()
- {
- keys = keys - 1;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment