Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package me.luckyshotszzz.tutorial.commands;
- import java.util.ArrayList;
- import java.util.Collections;
- import java.util.Comparator;
- import java.util.LinkedHashMap;
- import java.util.LinkedList;
- import java.util.List;
- import java.util.Map;
- import java.util.UUID;
- import org.bukkit.Bukkit;
- import org.bukkit.Material;
- import org.bukkit.OfflinePlayer;
- import org.bukkit.entity.Player;
- import org.bukkit.event.EventHandler;
- import org.bukkit.event.EventPriority;
- import org.bukkit.event.Listener;
- import org.bukkit.event.inventory.InventoryClickEvent;
- import org.bukkit.inventory.Inventory;
- import org.bukkit.inventory.ItemStack;
- import org.bukkit.inventory.meta.SkullMeta;
- import com.wasteofplastic.askyblock.events.IslandPostLevelEvent;
- import net.md_5.bungee.api.ChatColor;
- public class TopTenInventory
- implements Listener
- {
- static Inventory topTenInv = Bukkit.createInventory(null, 36, ChatColor.translateAlternateColorCodes('&', "&b&l(!)&b Island Top"));
- public static void openInventory(Player p) {
- p.sendMessage(ChatColor.translateAlternateColorCodes('&', "&e&l(!) &eOpening island top"));
- p.sendMessage(ChatColor.translateAlternateColorCodes('&', "&7Not updated? Do &n/is level"));
- p.openInventory(topTenInv);
- }
- private static void setupInventory() {
- ItemStack itemStack = new ItemStack(Material.STAINED_GLASS_PANE, 1, (short)15);
- for (int i = 0; i <= 8; i++) {
- topTenInv.setItem(i, itemStack);
- topTenInv.setItem(i + 27, itemStack);
- }
- topTenInv.setItem(9, itemStack); topTenInv.setItem(10, itemStack);
- topTenInv.setItem(16, itemStack); topTenInv.setItem(17, itemStack);
- topTenInv.setItem(18, itemStack); topTenInv.setItem(19, itemStack);
- topTenInv.setItem(25, itemStack); topTenInv.setItem(26, itemStack);
- }
- private static void AddSkullGUI(OfflinePlayer p, int position, Map.Entry<UUID, Integer> asp)
- {
- ItemStack head = new ItemStack(Material.SKULL_ITEM, 1, (short)3);
- SkullMeta skullMeta = (SkullMeta)head.getItemMeta();
- skullMeta.setOwner(p.getName());
- skullMeta.setDisplayName(ChatColor.translateAlternateColorCodes('&', "&b&l(!) &bIsland Top &7(#" + position + ")"));
- List<String> lore = new ArrayList<String>();
- List<UUID> team = new ArrayList<UUID>();
- team = com.wasteofplastic.askyblock.ASkyBlockAPI.getInstance().getTeamMembers(asp.getKey());
- lore.add(ChatColor.translateAlternateColorCodes('&', "&3&l* &bPlace &7#" + position));
- lore.add(ChatColor.translateAlternateColorCodes('&', "&3&l* &bIsland Level &7" + asp.getValue()));
- if(team.size() == 0)
- {
- lore.add(ChatColor.translateAlternateColorCodes('&', "&3&l* &bStatus &fSolo"));
- lore.add(ChatColor.translateAlternateColorCodes('&', "&3&l* &bTeam Size&7 1"));
- lore.add(" ");
- lore.add(ChatColor.translateAlternateColorCodes('&', "&3&l* &bMember:"));
- if(Bukkit.getOfflinePlayer(asp.getKey()).isOnline()) { lore.add(ChatColor.translateAlternateColorCodes('&', "&f- &a&l♦♦ &7" + Bukkit.getOfflinePlayer(asp.getKey()).getName())); }
- else { lore.add(ChatColor.translateAlternateColorCodes('&', "&f- &c&l♦♦ &7" + Bukkit.getOfflinePlayer(asp.getKey()).getName())); }
- }
- else {
- lore.add(ChatColor.translateAlternateColorCodes('&', "&3&l* &bStatus &fTeam"));
- lore.add(ChatColor.translateAlternateColorCodes('&', "&3&l* &bTeam Size &7" + team.size()));
- lore.add(" ");
- lore.add(ChatColor.translateAlternateColorCodes('&', "&3&l* &bMembers:"));
- if(Bukkit.getOfflinePlayer(asp.getKey()).isOnline()) { lore.add(ChatColor.translateAlternateColorCodes('&', "&f- &a&l♦♦ &7" + Bukkit.getOfflinePlayer(asp.getKey()).getName())); }
- else { lore.add(ChatColor.translateAlternateColorCodes('&', "&f- &c&l♦♦ &7" + Bukkit.getOfflinePlayer(asp.getKey()).getName())); }
- for(int i = 0 ; i < team.size() ; i++)
- {
- if(Bukkit.getOfflinePlayer(team.get(i)) != Bukkit.getOfflinePlayer(asp.getKey()))
- {
- if(Bukkit.getOfflinePlayer(team.get(i)).isOnline()) {
- lore.add(ChatColor.translateAlternateColorCodes('&', "&f- &a&l♦ &7" + Bukkit.getOfflinePlayer(team.get(i)).getName()));
- }
- else {
- lore.add(ChatColor.translateAlternateColorCodes('&', "&f- &c&l♦ &7" + Bukkit.getOfflinePlayer(team.get(i)).getName()));
- }
- }
- }
- }
- lore.add(" ");
- skullMeta.setLore(lore);
- head.setItemMeta(skullMeta);
- if(position < 6)
- {
- topTenInv.setItem(position + 10, head);
- }
- else {
- topTenInv.setItem(position + 14, head);
- }
- }
- private static <K, V extends Comparable<? super V>> Map<K, V> sortByValue(Map<K, V> unsortedMap) {
- List<Map.Entry<K, V>> list = new LinkedList<Map.Entry<K, V>>(unsortedMap.entrySet());
- Collections.sort(list, new Comparator<Map.Entry<K, V>>() {
- public int compare(Map.Entry<K, V> obj1, Map.Entry<K, V> obj2) {
- return (obj2.getValue()).compareTo(obj1.getValue());
- }
- });
- Map<K, V> sortedMap = new LinkedHashMap<K, V>();
- for (Map.Entry<K, V> entry : list) {
- sortedMap.put(entry.getKey(), entry.getValue());
- }
- return sortedMap;
- }
- @EventHandler
- public void onClick(InventoryClickEvent e)
- {
- if ((e.getClickedInventory() != null) && (e.getClickedInventory().getName() != null) && (e.getClickedInventory().getName().equalsIgnoreCase(ChatColor.translateAlternateColorCodes('&', "&b&l(!)&b Island Top")))) {
- e.setCancelled(true);
- }
- }
- @EventHandler(priority=EventPriority.NORMAL, ignoreCancelled=true)
- public void onNewLevel(IslandPostLevelEvent e)
- {
- setupInventory();
- @SuppressWarnings("deprecation")
- Map<UUID, Integer> topTen = sortByValue(com.wasteofplastic.askyblock.ASkyBlockAPI.getInstance().getTopTen());
- int count = 1;
- for (Map.Entry<UUID, Integer> entry : topTen.entrySet())
- {
- AddSkullGUI(Bukkit.getOfflinePlayer(entry.getKey()), count, entry);
- if (count++ == 10) {
- break;
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement