Advertisement
Guest User

Untitled

a guest
May 31st, 2018
140
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.04 KB | None | 0 0
  1. package me.luckyshotszzz.tutorial.commands;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.Collections;
  5. import java.util.Comparator;
  6. import java.util.LinkedHashMap;
  7. import java.util.LinkedList;
  8. import java.util.List;
  9. import java.util.Map;
  10. import java.util.UUID;
  11.  
  12. import org.bukkit.Bukkit;
  13. import org.bukkit.Material;
  14. import org.bukkit.OfflinePlayer;
  15. import org.bukkit.entity.Player;
  16. import org.bukkit.event.EventHandler;
  17. import org.bukkit.event.EventPriority;
  18. import org.bukkit.event.Listener;
  19. import org.bukkit.event.inventory.InventoryClickEvent;
  20. import org.bukkit.inventory.Inventory;
  21. import org.bukkit.inventory.ItemStack;
  22. import org.bukkit.inventory.meta.SkullMeta;
  23.  
  24. import com.wasteofplastic.askyblock.events.IslandPostLevelEvent;
  25.  
  26. import net.md_5.bungee.api.ChatColor;
  27.  
  28. public class TopTenInventory
  29.     implements Listener
  30. {
  31.     static Inventory topTenInv = Bukkit.createInventory(null, 36, ChatColor.translateAlternateColorCodes('&', "&b&l(!)&b Island Top"));
  32.    
  33.     public static void openInventory(Player p) {
  34.         p.sendMessage(ChatColor.translateAlternateColorCodes('&', "&e&l(!) &eOpening island top"));
  35.         p.sendMessage(ChatColor.translateAlternateColorCodes('&', "&7Not updated? Do &n/is level"));
  36.         p.openInventory(topTenInv);
  37.     }
  38.  
  39.     private static void setupInventory() {
  40.         ItemStack itemStack = new ItemStack(Material.STAINED_GLASS_PANE, 1, (short)15);
  41.         for (int i = 0; i <= 8; i++) {
  42.             topTenInv.setItem(i, itemStack);
  43.             topTenInv.setItem(i + 27, itemStack);  
  44.         }
  45.         topTenInv.setItem(9, itemStack); topTenInv.setItem(10, itemStack);
  46.         topTenInv.setItem(16, itemStack); topTenInv.setItem(17, itemStack);
  47.        
  48.         topTenInv.setItem(18, itemStack); topTenInv.setItem(19, itemStack);
  49.         topTenInv.setItem(25, itemStack); topTenInv.setItem(26, itemStack);
  50.     }
  51.    
  52.     private static void AddSkullGUI(OfflinePlayer p, int position, Map.Entry<UUID, Integer> asp)
  53.     {
  54.         ItemStack head = new ItemStack(Material.SKULL_ITEM, 1, (short)3);
  55.         SkullMeta skullMeta = (SkullMeta)head.getItemMeta();
  56.         skullMeta.setOwner(p.getName());
  57.         skullMeta.setDisplayName(ChatColor.translateAlternateColorCodes('&', "&b&l(!) &bIsland Top &7(#" + position + ")"));
  58.  
  59.         List<String> lore = new ArrayList<String>();
  60.         List<UUID> team = new ArrayList<UUID>();
  61.         team = com.wasteofplastic.askyblock.ASkyBlockAPI.getInstance().getTeamMembers(asp.getKey());
  62.         lore.add(ChatColor.translateAlternateColorCodes('&', "&3&l* &bPlace &7#" + position));
  63.         lore.add(ChatColor.translateAlternateColorCodes('&', "&3&l* &bIsland Level &7" + asp.getValue()));
  64.        
  65.         if(team.size() == 0)
  66.         {
  67.             lore.add(ChatColor.translateAlternateColorCodes('&', "&3&l* &bStatus &fSolo"));
  68.             lore.add(ChatColor.translateAlternateColorCodes('&', "&3&l* &bTeam Size&7 1"));
  69.             lore.add(" ");
  70.             lore.add(ChatColor.translateAlternateColorCodes('&', "&3&l* &bMember:"));
  71.            
  72.             if(Bukkit.getOfflinePlayer(asp.getKey()).isOnline()) { lore.add(ChatColor.translateAlternateColorCodes('&', "&f- &a&l♦♦ &7" + Bukkit.getOfflinePlayer(asp.getKey()).getName())); }
  73.             else { lore.add(ChatColor.translateAlternateColorCodes('&', "&f- &c&l♦♦ &7" + Bukkit.getOfflinePlayer(asp.getKey()).getName())); }
  74.         }
  75.         else {
  76.             lore.add(ChatColor.translateAlternateColorCodes('&', "&3&l* &bStatus &fTeam"));
  77.             lore.add(ChatColor.translateAlternateColorCodes('&', "&3&l* &bTeam Size &7" + team.size()));
  78.             lore.add(" ");
  79.             lore.add(ChatColor.translateAlternateColorCodes('&', "&3&l* &bMembers:"));
  80.            
  81.             if(Bukkit.getOfflinePlayer(asp.getKey()).isOnline()) { lore.add(ChatColor.translateAlternateColorCodes('&', "&f- &a&l♦♦ &7" + Bukkit.getOfflinePlayer(asp.getKey()).getName())); }
  82.             else { lore.add(ChatColor.translateAlternateColorCodes('&', "&f- &c&l♦♦ &7" + Bukkit.getOfflinePlayer(asp.getKey()).getName())); }
  83.  
  84.             for(int i = 0 ; i < team.size() ; i++)
  85.             {
  86.                 if(Bukkit.getOfflinePlayer(team.get(i)) != Bukkit.getOfflinePlayer(asp.getKey()))
  87.                 {
  88.                     if(Bukkit.getOfflinePlayer(team.get(i)).isOnline()) {
  89.                         lore.add(ChatColor.translateAlternateColorCodes('&', "&f- &a&l♦ &7" + Bukkit.getOfflinePlayer(team.get(i)).getName()));
  90.                     }
  91.                     else {
  92.                         lore.add(ChatColor.translateAlternateColorCodes('&', "&f- &c&l♦ &7" + Bukkit.getOfflinePlayer(team.get(i)).getName()));
  93.                     }
  94.                 }
  95.             }
  96.         }
  97.         lore.add(" ");
  98.         skullMeta.setLore(lore);
  99.         head.setItemMeta(skullMeta);
  100.        
  101.         if(position < 6)
  102.         {
  103.             topTenInv.setItem(position + 10, head);
  104.         }
  105.         else {
  106.             topTenInv.setItem(position + 14, head);
  107.         }
  108.     }
  109.    
  110.     private static <K, V extends Comparable<? super V>> Map<K, V> sortByValue(Map<K, V> unsortedMap) {
  111.         List<Map.Entry<K, V>> list = new LinkedList<Map.Entry<K, V>>(unsortedMap.entrySet());
  112.         Collections.sort(list, new Comparator<Map.Entry<K, V>>() {
  113.             public int compare(Map.Entry<K, V> obj1, Map.Entry<K, V> obj2) {
  114.                 return (obj2.getValue()).compareTo(obj1.getValue());
  115.             }
  116.         });
  117.         Map<K, V> sortedMap = new LinkedHashMap<K, V>();
  118.         for (Map.Entry<K, V> entry : list) {
  119.             sortedMap.put(entry.getKey(), entry.getValue());
  120.         }
  121.         return sortedMap;
  122.     }
  123.  
  124.     @EventHandler
  125.     public void onClick(InventoryClickEvent e)
  126.     {
  127.         if ((e.getClickedInventory() != null) && (e.getClickedInventory().getName() != null) && (e.getClickedInventory().getName().equalsIgnoreCase(ChatColor.translateAlternateColorCodes('&', "&b&l(!)&b Island Top")))) {
  128.             e.setCancelled(true);
  129.             }
  130.     }
  131.    
  132.     @EventHandler(priority=EventPriority.NORMAL, ignoreCancelled=true)
  133.     public void onNewLevel(IslandPostLevelEvent e)
  134.     {
  135.         setupInventory();
  136.         @SuppressWarnings("deprecation")
  137.         Map<UUID, Integer> topTen = sortByValue(com.wasteofplastic.askyblock.ASkyBlockAPI.getInstance().getTopTen());
  138.         int count = 1;
  139.         for (Map.Entry<UUID, Integer> entry : topTen.entrySet())
  140.         {
  141.             AddSkullGUI(Bukkit.getOfflinePlayer(entry.getKey()), count, entry);
  142.            
  143.           if (count++ == 10) {
  144.             break;
  145.           }
  146.         }
  147.     }
  148. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement