mabazi Postado Maio 20, 2017 Denunciar Compartilhar Postado Maio 20, 2017 Bem, to fazendo um plugin de recordes, e meio q bugo minha mente na hora de criar o sistema, me deu um branco completo... bem, tenho a configPlayers: Joao: 10 Maria: 5 Vitor 7 Vitoria 90 Como faço para quando player dar o comando, ele listar por ordem decrescente e enviar? Link para o comentário Compartilhar em outros sites More sharing options...
leonardosc Postado Maio 20, 2017 Denunciar Compartilhar Postado Maio 20, 2017 HashMap<String, Integer> players = new HashMap<>(); for(String key : getConfig().getConfigurationSection("Players").getKeys(false)){ int value = getConfig().getInt("Players." + key); players.put(key, value); } // Daqui pra cima é o mesmo do código do zAth, // pra baixo é uma versão menos verbosa. players.entrySet() .stream() .sorted(Map.Entry.comparingByValue(Comparator.reverseOrder())) .forEach(e -> { // você pode mudar por sendMessage System.out.println(e.getKey() + " " + e.getValue()); }); Aqui tem um gist que criei que mostra como ordenar uma Map pelo valor, salve em algum lugar: https://gist.github.com/leonardosnt/700b51bf0a4b420412bfa35268948aae Link para o comentário Compartilhar em outros sites More sharing options...
zAth Postado Maio 20, 2017 Denunciar Compartilhar Postado Maio 20, 2017 (editado) private HashMap<String, Integer> players = new HashMap<>(); for(String key : getConfig().getConfigurationSection("Players").getKeys(false)){ int value = getConfig().getInt("Players." + key); players.put(key, value); } players = players.entrySet().parallelStream() .sorted(Map.Entry.<String, Integer>comparingByValue().reversed()) .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (k,v) -> v, HashMap::new)); players.forEach((k,v) -> p.sendMessage(k + " - " + v)); Aconselho a criar uma hash, e ir ordenando ela automaticamente de x em x tempo, ae quando alguem quiser ver o top só dar players.forEach((k,v) -> p.sendMessage(k + " - " + v)); para evitar ficar ordenando sempre que alguem quiser ver o top ..código meio cagado ;-; nem testei, e estou aprendendo a usar lambda então se não funcionar já sabe Editado Maio 20, 2017 por zAth Link para o comentário Compartilhar em outros sites More sharing options...
Langsdorf Postado Maio 25, 2017 Denunciar Compartilhar Postado Maio 25, 2017 Sua dúvida foi marcada como [Resolvido] e movido à área de dúvidas resolvidas.Atenciosamente,Gamer's Board Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
mabazi
Bem, to fazendo um plugin de recordes, e meio q bugo minha mente na hora de criar o sistema, me deu um branco completo...
bem, tenho a config
Players:
Joao: 10
Maria: 5
Vitor 7
Vitoria 90
Como faço para quando player dar o comando, ele listar por ordem decrescente e enviar?
Link para o comentário
Compartilhar em outros sites
3 respostass a esta questão
Posts Recomendados