package regalowl.hyperconomy; import java.util.SortedMap; import java.util.TreeMap; import org.bukkit.ChatColor; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; public class Topenchants { Topenchants(String args[], Player player, CommandSender sender, String playerecon) { HyperConomy hc = HyperConomy.hc; HyperEconomy he = hc.getEconomyManager().getEconomy(playerecon); EconomyManager em = hc.getEconomyManager(); LanguageFile L = hc.getLanguageFile(); try { boolean requireShop = hc.gYH().gFC("config").getBoolean("config.limit-info-commands-to-shops"); if (args.length > 1) { sender.sendMessage(L.get("TOPENCHANTS_INVALID")); return; } String nameshop = ""; if (player != null) { if (em.inAnyShop(player)) { nameshop = em.getShop(player).getName(); } if (requireShop && em.getShop(player) == null && !player.hasPermission("hyperconomy.admin")) { sender.sendMessage(L.get("REQUIRE_SHOP_FOR_INFO")); return; } } int page; if (args.length == 0) { page = 1; } else { page = Integer.parseInt(args[0]); } SortedMap<Double, String> enchantstocks = new TreeMap<Double, String>(); for (HyperObject ho:he.getHyperObjects()) { if (!(ho instanceof HyperEnchant)) {continue;} PlayerShopObject pso = null; boolean allowed = false; boolean stocked = false; boolean banned = false; if (nameshop != "") { banned = em.getShop(nameshop).isBanned(ho); } if (ho.getStock() > 0) {stocked = true;} if (ho instanceof PlayerShopObject) { pso = (PlayerShopObject)ho; allowed = pso.getShop().isAllowed(em.getHyperPlayer(player)); if (pso.getStatus() == HyperObjectStatus.NONE && !allowed) { continue; } } boolean unavailable = false; if (nameshop != "") { if (banned && !(allowed && stocked)) { unavailable = true; } } if (!unavailable) { double samount = he.getHyperObject(ho.getName(), em.getShop(player)).getStock(); if (samount > 0) { while (enchantstocks.containsKey(samount * 100)) { samount = samount + .0000001; } enchantstocks.put(samount * 100, ho.getDisplayName()); } } } int numberpage = page * 10; int count = 0; int le = enchantstocks.size(); double maxpages = le / 10; maxpages = Math.ceil(maxpages); int maxpi = (int) maxpages + 1; sender.sendMessage(L.f(L.get("PAGE_NUMBER"), page, maxpi)); try { while (count < numberpage) { double lk = enchantstocks.lastKey(); if (count > ((page * 10) - 11)) { sender.sendMessage(ChatColor.WHITE + enchantstocks.get(lk) + ChatColor.WHITE + ": " + ChatColor.AQUA + "" + Math.floor(lk)/100); } enchantstocks.remove(lk); count++; } } catch (Exception e) { sender.sendMessage(L.get("YOU_HAVE_REACHED_THE_END")); } } catch (Exception e) { sender.sendMessage(L.get("TOPENCHANTS_INVALID")); } } }