Dery Postado Outubro 17, 2015 Denunciar Compartilhar Postado Outubro 17, 2015 Como posso criar um Rank a partir de um arquivo? Exemplo: No arquivo tem os seguintes players: Fulano: Quantidade: 1 Cicrano: Quantidade: 2 Goku: Quantidade: 3 Beltrano: Quantidade: 4 Teste: Quantidade: 5 Aí quero listá-los do maior para o menor, só que não quero todos, quero somente 3... Tipo o sistema do iConomy... Link para o comentário Compartilhar em outros sites More sharing options...
Guest Lüigi.jar Postado Outubro 25, 2015 Denunciar Compartilhar Postado Outubro 25, 2015 Palpite meu: Coloca o key/valor numa hashmap e da sort nele? http://bukkit.org/threads/save-and-load-hashmap-to-from-config.347482/ http://bukkit.org/threads/how-to-get-top-10-in-a-hashmap.325617/ Link para o comentário Compartilhar em outros sites More sharing options...
Karamujo Postado Outubro 17, 2015 Denunciar Compartilhar Postado Outubro 17, 2015 (editado) public static String Rank3() { int primeiro = 0; int segundo = 0; int terceiro = 0; String nome1 = null; String nome2 = null; String nome3 = null; for(Player p :Bukkit.getOfflinePlayers()) { if(getConfig().contains(p.getName() + ".Quantidade")) { int valor = getConfig().getInt(p.getName() + ".Quantidade"); if(valor > primeiro) { primeiro = valor; nome1 = p.getName(); } if(valor > segundo) { segundo = valor; nome2 = p.getName(); } if(valor > terceiro) { terceiro = valor; nome3 = p.getName(); } } } return nome1 + " = " + primeiro + "\n" + nome2 + " = " + segundo + "\n" + nome3 + " = " + terceiro; } Sou + SQLite. @Edit usa Bukkit.getOfflinePlayers() E troca para OfflinePlayer @Edit 2 Ou tenta assim, malz se escrevi algo errado. da load da confi adcionando tudo em uma hashmap para ficar mais facil static List<String> accountPlayer = getConfig().getStringList("Money"); static HashMap<String, Integer> moneyPlayer = new HashMap<String, Integer>(); public static void LoadFileArrays() { for(String s : accountPlayer) { int i = getConfig().getInt("Money." + s); moneyPlayer.put(s, i); } } e dps percorre e verifica os maior, logico tudo precisa esta em uma lista public static String Rank() { int primeiro = 0; int segundo = 0; int terceiro = 0; String nome1 = null; String nome2 = null; String nome3 = null; for(Entry<String, Integer> e : moneyPlayer.entrySet()) { int valor = e.getValue(); if(valor > primeiro) { primeiro = valor; nome1 = e.getKey(); } if(valor > segundo) { segundo = valor; nome2 = e.getKey(); } if(valor > terceiro) { terceiro = valor; nome3 = e.getKey(); } } return nome1 + " = " + primeiro + "\n" + nome2 + " = " + segundo + "\n" + nome3 + " = " + terceiro; } Editado Outubro 17, 2015 por Karamujo Link para o comentário Compartilhar em outros sites More sharing options...
Dery Postado Outubro 24, 2015 Autor Denunciar Compartilhar Postado Outubro 24, 2015 public static String Rank3() { int primeiro = 0; int segundo = 0; int terceiro = 0; String nome1 = null; String nome2 = null; String nome3 = null; for(Player p :Bukkit.getOfflinePlayers()) { if(getConfig().contains(p.getName() + ".Quantidade")) { int valor = getConfig().getInt(p.getName() + ".Quantidade"); if(valor > primeiro) { primeiro = valor; nome1 = p.getName(); } if(valor > segundo) { segundo = valor; nome2 = p.getName(); } if(valor > terceiro) { terceiro = valor; nome3 = p.getName(); } } } return nome1 + " = " + primeiro + "\n" + nome2 + " = " + segundo + "\n" + nome3 + " = " + terceiro; } Sou + SQLite. @Edit usa Bukkit.getOfflinePlayers() E troca para OfflinePlayer @Edit 2 Ou tenta assim, malz se escrevi algo errado. da load da confi adcionando tudo em uma hashmap para ficar mais facil static List<String> accountPlayer = getConfig().getStringList("Money"); static HashMap<String, Integer> moneyPlayer = new HashMap<String, Integer>(); public static void LoadFileArrays() { for(String s : accountPlayer) { int i = getConfig().getInt("Money." + s); moneyPlayer.put(s, i); } } e dps percorre e verifica os maior, logico tudo precisa esta em uma lista public static String Rank() { int primeiro = 0; int segundo = 0; int terceiro = 0; String nome1 = null; String nome2 = null; String nome3 = null; for(Entry<String, Integer> e : moneyPlayer.entrySet()) { int valor = e.getValue(); if(valor > primeiro) { primeiro = valor; nome1 = e.getKey(); } if(valor > segundo) { segundo = valor; nome2 = e.getKey(); } if(valor > terceiro) { terceiro = valor; nome3 = e.getKey(); } } return nome1 + " = " + primeiro + "\n" + nome2 + " = " + segundo + "\n" + nome3 + " = " + terceiro; } Não seria melhor organizar em um vetor? Por que tipo, se eu quiser 5 ou 10 no rank... O que tu acha? Link para o comentário Compartilhar em outros sites More sharing options...
Dery Postado Outubro 25, 2015 Autor Denunciar Compartilhar Postado Outubro 25, 2015 UP Link para o comentário Compartilhar em outros sites More sharing options...
Karamujo Postado Outubro 30, 2015 Denunciar Compartilhar Postado Outubro 30, 2015 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
Dery
Como posso criar um Rank a partir de um arquivo?
Exemplo:
No arquivo tem os seguintes players:
Fulano:
Quantidade: 1
Cicrano:
Quantidade: 2
Goku:
Quantidade: 3
Beltrano:
Quantidade: 4
Teste:
Quantidade: 5
Aí quero listá-los do maior para o menor, só que não quero todos, quero somente 3...
Tipo o sistema do iConomy...
Link para o comentário
Compartilhar em outros sites
5 respostass a esta questão
Posts Recomendados