Ir para conteúdo
  • 0

[Dev][Duvida] Rank de TOP Players


mabazi

Pergunta

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


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

        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 por zAth
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...