Ir para conteúdo
  • 0

getStatistic offlinePlayer é possivel?


RUSHyoutuber

Pergunta

Olá pessoal da GB!

Gostaria se é possivel pegar alguma estatística de PlayerOffline? Eu já revirei a internet e não achei nada falando sobre isso....

 

Não faz sentido a estatistica ser salva se ela não pode ser acessada isso é 1 principio fundamental de banco de dados... se a informação esta salva ela pode ser acessada, a questão é como fazer isso?

 

Tentei isso mas não funcionou: 

 

UUID uuid = e.getPlayer().getUniqueId();
double deaths = Bukkit.getOfflinePlayer(uuid).getPlayer().getStatistic(Statistic.DEATHS);

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

Pelo oque eu dei uma pesquisada sobre não tem como você pegar de um player offline. Você teria que pegar as Statistics do jogador assim que ele logar e salvar.

 

https://www.spigotmc.org/threads/offline-player-to-online-player-methods.248643/

Link para o comentário
Compartilhar em outros sites

  • 0

Pelo oque eu dei uma pesquisada sobre não tem como você pegar de um player offline. Você teria que pegar as Statistics do jogador assim que ele logar e salvar.

 

https://www.spigotmc.org/threads/offline-player-to-online-player-methods.248643/

 

Eu já tinha visto esse tópico... até onde eu sei existe 1 maneira bruta de pegar esses dados... 

O falou alguma sobre pegar o nome do mundo padrão (level-name: world) depois pegava a folder e depois ia na file do player

Pelo oque eu dei uma pesquisada sobre não tem como você pegar de um player offline. Você teria que pegar as Statistics do jogador assim que ele logar e salvar.

 

https://www.spigotmc.org/threads/offline-player-to-online-player-methods.248643/

 

Eu já tinha visto esse tópico... até onde eu sei existe 1 maneira bruta de pegar esses dados... 

O falou alguma sobre pegar o nome do mundo padrão (level-name: world) depois pegava a folder e depois ia na file do player

Link para o comentário
Compartilhar em outros sites

  • 0

Te falar que fiquei mais tempo procurando onde o nms salvava as estatiscas dos players do que fazendo o código, foi triste kkk, mas tá ae

	public long getOfflinePlayerStatistic(OfflinePlayer player, Statistic statistic) {
		//O mundo padrão sempre vai ser o primeiro da lista
		File worldFolder = new File(Bukkit.getServer().getWorlds().get(0).getWorldFolder(), "stats");
		File playerStatistics = new File(worldFolder, player.getUniqueId().toString() + ".json");
		if(playerStatistics.exists()){
			JSONParser parser = new JSONParser();
			JSONObject jsonObject = null;
			try {
				jsonObject = (JSONObject) parser.parse(new FileReader(playerStatistics));
			} catch (IOException | ParseException e) {
				Bukkit.getLogger().log(Level.WARNING, "Falha ao ler o arquivo de estatisticas do jogador " + player.getName(), e);
			}

			StringBuilder statisticNmsName = new StringBuilder("stat.");
			for(char character : statistic.name().toCharArray()) {
				if(statisticNmsName.charAt(statisticNmsName.length() - 1) == '_') {
					statisticNmsName.setCharAt(statisticNmsName.length() - 1, Character.toUpperCase(character));
				}else {
					statisticNmsName.append(Character.toLowerCase(character));
				}
			}

			if(jsonObject.containsKey(statisticNmsName.toString())) {
				return (long) jsonObject.get(statisticNmsName.toString());
			}else {
				//Estatistica ainda não foi salva no arquivo, portato é 0
				return 0;
			}
		}

		//Alguma estatistica pode virar -1?
		return -1;
	}
Link para o comentário
Compartilhar em outros sites

  • 0

 

Te falar que fiquei mais tempo procurando onde o nms salvava as estatiscas dos players do que fazendo o código, foi triste kkk, mas tá ae

	public long getOfflinePlayerStatistic(OfflinePlayer player, Statistic statistic) {
		//O mundo padrão sempre vai ser o primeiro da lista
		File worldFolder = new File(Bukkit.getServer().getWorlds().get(0).getWorldFolder(), "stats");
		File playerStatistics = new File(worldFolder, player.getUniqueId().toString() + ".json");
		if(playerStatistics.exists()){
			JSONParser parser = new JSONParser();
			JSONObject jsonObject = null;
			try {
				jsonObject = (JSONObject) parser.parse(new FileReader(playerStatistics));
			} catch (IOException | ParseException e) {
				Bukkit.getLogger().log(Level.WARNING, "Falha ao ler o arquivo de estatisticas do jogador " + player.getName(), e);
			}

			StringBuilder statisticNmsName = new StringBuilder("stat.");
			for(char character : statistic.name().toCharArray()) {
				if(statisticNmsName.charAt(statisticNmsName.length() - 1) == '_') {
					statisticNmsName.setCharAt(statisticNmsName.length() - 1, Character.toUpperCase(character));
				}else {
					statisticNmsName.append(Character.toLowerCase(character));
				}
			}

			if(jsonObject.containsKey(statisticNmsName.toString())) {
				return (long) jsonObject.get(statisticNmsName.toString());
			}else {
				//Estatistica ainda não foi salva no arquivo, portato é 0
				return 0;
			}
		}

		//Alguma estatistica pode virar -1?
		return -1;
	}

 

perfeito... ta de parabéns!

Link para o comentário
Compartilhar em outros sites

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