Ir para conteúdo
  • 0

[Dúvida] Como fazer um top 10 pegando dados de arquivo yml?


VictorHeaven

Pergunta

9 respostass a esta questão

Posts Recomendados

 

Obrigado, funcionou!

Se não for querer pedir de mais, teria como pegar a posição também? :itwasntme:

 

AtomicInteger atomicPos = new AtomicInteger();

cf.getValues(false)
  .entrySet()
  .stream()
  .sorted((e1, e2) -> {
    double saldo1 = ((MemorySection) e1.getValue()).getDouble("Saldo");
    double saldo2 = ((MemorySection) e2.getValue()).getDouble("Saldo");
    return Double.compare(saldo2, saldo1);
  })
  .forEach(e -> {
    double saldo = ((MemorySection) e.getValue()).getDouble("Saldo");

    int pos = atomicPos.incrementAndGet();    

    // Aqui você pode enviar pro player, adicionar em uma lista etc
    // e.getKey() = nome do jogador
    System.out.println(e.getKey() + " " + saldo);
  });
Link para o comentário
Compartilhar em outros sites

O formato dos dados que estão no arquivo YML.

A sim, desculpe!

Se encontra assim:

1kSzCsuaRlmn5hh9LoJYtw.png

 

Ou,

Victor696:
  Saldo: 500

Ou,

 

EComando_Essencias.files.getEssenciasFile().getInt(p.getName() + ".Saldo");

EComando_Essencias.files.saveEssenciasFile();

 

EComando_Essencias é o nome da classe

getEssenciasFile é para pegar dados da file

saveEssenciasFile é para salvar a file

Link para o comentário
Compartilhar em outros sites

// Troca o getConfig pela config que tá os dados

ConfigurationSection cf = getConfig();

 

cf.getValues(false)

.entrySet()

.stream()

.sorted((e1, e2) -> {

double saldo1 = ((MemorySection) e1.getValue()).getDouble("Saldo");

double saldo2 = ((MemorySection) e2.getValue()).getDouble("Saldo");

return Double.compare(saldo2, saldo1);

})

.forEach(e -> {

double saldo = ((MemorySection) e.getValue()).getDouble("Saldo");

 

// Aqui você pode enviar pro player, adicionar em uma lista etc

// e.getKey() = nome do jogador

System.out.println(e.getKey() + " " + saldo);

});

 

Link para o comentário
Compartilhar em outros sites


// Troca o getConfig pela config que tá os dados

ConfigurationSection cf = getConfig();

 

cf.getValues(false)

.entrySet()

.stream()

.sorted((e1, e2) -> {

double saldo1 = ((MemorySection) e1.getValue()).getDouble("Saldo");

double saldo2 = ((MemorySection) e2.getValue()).getDouble("Saldo");

return Double.compare(saldo2, saldo1);

})

.forEach(e -> {

double saldo = ((MemorySection) e.getValue()).getDouble("Saldo");

 

// Aqui você pode enviar pro player, adicionar em uma lista etc

// e.getKey() = nome do jogador

System.out.println(e.getKey() + " " + saldo);

});

 

 

Obrigado, funcionou!

Se não for querer pedir de mais, teria como pegar a posição também? :itwasntme:

Link para o comentário
Compartilhar em outros sites

AtomicInteger atomicPos = new AtomicInteger();

cf.getValues(false)
  .entrySet()
  .stream()
  .sorted((e1, e2) -> {
    double saldo1 = ((MemorySection) e1.getValue()).getDouble("Saldo");
    double saldo2 = ((MemorySection) e2.getValue()).getDouble("Saldo");
    return Double.compare(saldo2, saldo1);
  })
  .forEach(e -> {
    double saldo = ((MemorySection) e.getValue()).getDouble("Saldo");

    int pos = atomicPos.incrementAndGet();    

    // Aqui você pode enviar pro player, adicionar em uma lista etc
    // e.getKey() = nome do jogador
    System.out.println(e.getKey() + " " + saldo);
  });

 

Muito obrigado! :) Me ajudou demais.

Link para o comentário
Compartilhar em outros sites

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