Ir para conteúdo
  • 0

[Duvida] Checar novas atualizações


mabazi

Pergunta

6 respostass a esta questão

Posts Recomendados

  • 1

Opa,

 

Aqui está uma versão atualizada do método acima.

 

O código atualizado está abaixo, faça o que quiser; você pode colocar o método em um novo Thread, remover o Result e usar o direto o código, você que sabe.

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;

import org.bukkit.plugin.Plugin;

public class Updater {

	private Plugin plugin;
	private Result result;
	
	public Updater(Plugin plugin) {
		this.plugin = plugin;
		this.result = Result.NO_UPDATE;
	}

	public Result check() {
		try {
			HttpURLConnection c = (HttpURLConnection) new URL("https://api.spigotmc.org/legacy/update.php?resource=RESOURCE ID").openConnection();
			c.setDoOutput(true);
			c.setRequestMethod("GET");
			c.getOutputStream().write(("key=98BE0FE67F88AB82B4C197FAF1DC3B69206EFDCC4D3B80FC83A00037510B99B4&resource=RESOURCE ID").getBytes("UTF-8"));
			String oldVersion = plugin.getDescription().getVersion();
			String newVersion = new BufferedReader(new InputStreamReader(c.getInputStream())).readLine().replaceAll("[a-zA-Z ]", "");
			if (!newVersion.equals(oldVersion)) {
				result = Result.NEW_UPDATE;
			}else{
				result = Result.NO_UPDATE;
			}
		}catch(IOException ex) {
			ex.printStackTrace();
			result = Result.ERROR;
		}
		return result;
	}
	
	private enum Result {
		ERROR,
		NO_UPDATE,
		NEW_UPDATE;
	}
}

O resource ID é o número gerado na URL do seu plugin, a key não é gerada por resource ou por conta, você pode tentar com a a key que estamos usando que deve funcionar.

30vTKZhvSv_k3hmESVVf4Q.png

Editado por Floodeer
Link para o comentário
Compartilhar em outros sites

No Bukkit eu n sei, mas no spigotMC é assim, mas é inutil ja que vc quer do bukkit

  try {
       HttpURLConnection c = (HttpURLConnection)new URL("http://www.spigotmc.org/api/general.php").openConnection();
       c.setDoOutput(true);
       c.setRequestMethod("POST");
       c.getOutputStream().write(("key=98BE0FE67F88AB82B4C197FAF1DC3B69206EFDCC4D3B80FC83A00037510B99B4&resource=/*RESOURCE ID*/").getBytes("UTF-8"));
       String oldVersion = this.getDescription().getVersion();
       String newVersion = new BufferedReader(new InputStreamReader(c.getInputStream())).readLine().replaceAll("[a-zA-Z ]", "");
       if(!newVersion.equals(oldVersion)) {
         //there is a new version
       }
     }
     catch(Exception e) {
       
     }
Editado por FilipeNock
Link para o comentário
Compartilhar em outros sites

 

No Bukkit eu n sei, mas no spigotMC é assim, mas é inutil ja que vc quer do bukkit

  try {
       HttpURLConnection c = (HttpURLConnection)new URL("http://www.spigotmc.org/api/general.php").openConnection();
       c.setDoOutput(true);
       c.setRequestMethod("POST");
       c.getOutputStream().write(("key=98BE0FE67F88AB82B4C197FAF1DC3B69206EFDCC4D3B80FC83A00037510B99B4&resource=/*RESOURCE ID*/").getBytes("UTF-8"));
       String oldVersion = this.getDescription().getVersion();
       String newVersion = new BufferedReader(new InputStreamReader(c.getInputStream())).readLine().replaceAll("[a-zA-Z ]", "");
       if(!newVersion.equals(oldVersion)) {
         //there is a new version
       }
     }
     catch(Exception e) {
       
     }

vou testar ja q o bukkit geraa uma pagina spigot pro plugin

 

@UPDATE

 

como pego a Key direta pro meu plugin?

 

"key=98BE0FE67F88AB82B4C197FAF1DC3B69206EFDCC4D3B80FC83A00037510B99B4&resource=/*RESOURCE ID*/"

Editado por mabazi
Link para o comentário
Compartilhar em outros sites

Opa,

 

Aqui está uma versão atualizada do método acima.

 

O código atualizado está abaixo, faça o que quiser; você pode colocar o método em um novo Thread, remover o Result e usar o direto o código, você que sabe.

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;

import org.bukkit.plugin.Plugin;

public class Updater {

	private Plugin plugin;
	private Result result;
	
	public Updater(Plugin plugin) {
		this.plugin = plugin;
		this.result = Result.NO_UPDATE;
	}

	public Result check() {
		try {
			HttpURLConnection c = (HttpURLConnection) new URL("https://api.spigotmc.org/legacy/update.php?resource=RESOURCE ID").openConnection();
			c.setDoOutput(true);
			c.setRequestMethod("GET");
			c.getOutputStream().write(("key=98BE0FE67F88AB82B4C197FAF1DC3B69206EFDCC4D3B80FC83A00037510B99B4&resource=RESOURCE ID").getBytes("UTF-8"));
			String oldVersion = plugin.getDescription().getVersion();
			String newVersion = new BufferedReader(new InputStreamReader(c.getInputStream())).readLine().replaceAll("[a-zA-Z ]", "");
			if (!newVersion.equals(oldVersion)) {
				result = Result.NEW_UPDATE;
			}else{
				result = Result.NO_UPDATE;
			}
		}catch(IOException ex) {
			ex.printStackTrace();
			result = Result.ERROR;
		}
		return result;
	}
	
	private enum Result {
		ERROR,
		NO_UPDATE,
		NEW_UPDATE;
	}
}

O resource ID é o número gerado na URL do seu plugin, a key não é gerada por resource ou por conta, você pode tentar com a a key que estamos usando que deve funcionar.

30vTKZhvSv_k3hmESVVf4Q.png

vou tentar

Link para o comentário
Compartilhar em outros sites

Opa,

 

Aqui está uma versão atualizada do método acima.

 

O código atualizado está abaixo, faça o que quiser; você pode colocar o método em um novo Thread, remover o Result e usar o direto o código, você que sabe.

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;

import org.bukkit.plugin.Plugin;

public class Updater {

	private Plugin plugin;
	private Result result;
	
	public Updater(Plugin plugin) {
		this.plugin = plugin;
		this.result = Result.NO_UPDATE;
	}

	public Result check() {
		try {
			HttpURLConnection c = (HttpURLConnection) new URL("https://api.spigotmc.org/legacy/update.php?resource=RESOURCE ID").openConnection();
			c.setDoOutput(true);
			c.setRequestMethod("GET");
			c.getOutputStream().write(("key=98BE0FE67F88AB82B4C197FAF1DC3B69206EFDCC4D3B80FC83A00037510B99B4&resource=RESOURCE ID").getBytes("UTF-8"));
			String oldVersion = plugin.getDescription().getVersion();
			String newVersion = new BufferedReader(new InputStreamReader(c.getInputStream())).readLine().replaceAll("[a-zA-Z ]", "");
			if (!newVersion.equals(oldVersion)) {
				result = Result.NEW_UPDATE;
			}else{
				result = Result.NO_UPDATE;
			}
		}catch(IOException ex) {
			ex.printStackTrace();
			result = Result.ERROR;
		}
		return result;
	}
	
	private enum Result {
		ERROR,
		NO_UPDATE,
		NEW_UPDATE;
	}
}

O resource ID é o número gerado na URL do seu plugin, a key não é gerada por resource ou por conta, você pode tentar com a a key que estamos usando que deve funcionar.

30vTKZhvSv_k3hmESVVf4Q.png

 

 

Muito obg, a partir do seu consegui gerar um code para o dev.bukkit.org

 

Quem quiser o codigo: https://hastebin.com/ohakuvihof.cs

Link para o comentário
Compartilhar em outros sites

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