mirror of
https://github.com/mcMMO-Dev/mcMMO.git
synced 2025-06-25 02:04:44 +02:00
Switch to H31ix's updater for security reasons.
This commit is contained in:
@ -33,7 +33,6 @@ import com.gmail.nossr50.locale.LocaleLoader;
|
||||
import com.gmail.nossr50.metrics.MetricsManager;
|
||||
import com.gmail.nossr50.party.PartyManager;
|
||||
import com.gmail.nossr50.runnables.SaveTimerTask;
|
||||
import com.gmail.nossr50.runnables.UpdateCheckerTask;
|
||||
import com.gmail.nossr50.runnables.database.UserPurgeTask;
|
||||
import com.gmail.nossr50.runnables.party.PartyAutoKickTask;
|
||||
import com.gmail.nossr50.runnables.skills.BleedTimerTask;
|
||||
@ -53,6 +52,10 @@ import com.gmail.nossr50.util.experience.FormulaManager;
|
||||
import com.gmail.nossr50.util.player.UserManager;
|
||||
import com.gmail.nossr50.util.spout.SpoutUtils;
|
||||
|
||||
import net.h31ix.updater.Updater;
|
||||
import net.h31ix.updater.Updater.UpdateResult;
|
||||
import net.h31ix.updater.Updater.UpdateType;
|
||||
|
||||
import net.shatteredlands.shatt.backup.ZipLibrary;
|
||||
|
||||
public class mcMMO extends JavaPlugin {
|
||||
@ -283,7 +286,17 @@ public class mcMMO extends JavaPlugin {
|
||||
return;
|
||||
}
|
||||
|
||||
getServer().getScheduler().runTaskAsynchronously(this, new UpdateCheckerTask());
|
||||
Updater updater = new Updater(this, "mcmmo", mcmmo, UpdateType.NO_DOWNLOAD, false);
|
||||
|
||||
if (updater.getResult() != UpdateResult.UPDATE_AVAILABLE) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (updater.getLatestVersionString().contains("-beta") && !Config.getInstance().getPreferBeta()) {
|
||||
return;
|
||||
}
|
||||
|
||||
updateCheckerCallback(true);
|
||||
}
|
||||
|
||||
public void updateCheckerCallback(boolean updateAvailable) {
|
||||
|
@ -1,19 +0,0 @@
|
||||
package com.gmail.nossr50.runnables;
|
||||
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.util.UpdateChecker;
|
||||
|
||||
/**
|
||||
* Async task
|
||||
*/
|
||||
public class UpdateCheckerTask implements Runnable {
|
||||
@Override
|
||||
public void run() {
|
||||
try {
|
||||
mcMMO.p.updateCheckerCallback(UpdateChecker.updateAvailable());
|
||||
}
|
||||
catch (Exception e) {
|
||||
mcMMO.p.updateCheckerCallback(false);
|
||||
}
|
||||
}
|
||||
}
|
@ -1,68 +0,0 @@
|
||||
package com.gmail.nossr50.util;
|
||||
|
||||
import java.io.InputStreamReader;
|
||||
import java.net.URL;
|
||||
import java.net.UnknownHostException;
|
||||
|
||||
import com.gmail.nossr50.mcMMO;
|
||||
import com.gmail.nossr50.config.Config;
|
||||
|
||||
import org.json.simple.JSONObject;
|
||||
import org.json.simple.parser.JSONParser;
|
||||
import org.json.simple.parser.ParseException;
|
||||
|
||||
public class UpdateChecker {
|
||||
private UpdateChecker() {}
|
||||
|
||||
public static boolean updateAvailable() throws Exception {
|
||||
String checkType = Config.getInstance().getPreferBeta() ? "latest" : "release";
|
||||
String version = mcMMO.p.getDescription().getVersion();
|
||||
InputStreamReader isr;
|
||||
|
||||
try {
|
||||
isr = new InputStreamReader(new URL("http://api.bukget.org/api2/bukkit/plugin/mcmmo/" + checkType).openStream());
|
||||
}
|
||||
catch (UnknownHostException e) {
|
||||
return false;
|
||||
}
|
||||
|
||||
try {
|
||||
Object o = new JSONParser().parse(isr);
|
||||
|
||||
if (!(o instanceof JSONObject)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
JSONObject versions = (JSONObject) ((JSONObject) o).get("versions");
|
||||
String newVersion = (String) versions.get("version");
|
||||
|
||||
String[] oldTokens = version.replaceAll("(?i)(-)(.+?)(-)", "-").split("[.]|-b");
|
||||
String[] newTokens = newVersion.replaceAll("(?i)(-)(.+?)(-)", "-").split("[.]|-b");
|
||||
|
||||
for (int i = 0; i < 4; i++) {
|
||||
Integer newVer = Integer.parseInt(newTokens[i]);
|
||||
Integer oldVer;
|
||||
|
||||
try {
|
||||
oldVer = Integer.parseInt(oldTokens[i]);
|
||||
}
|
||||
catch (NumberFormatException e) {
|
||||
mcMMO.p.getLogger().warning("Could not get information about this mcMMO version; perhaps you are running a custom one?");
|
||||
return false;
|
||||
}
|
||||
|
||||
if (oldVer < newVer) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
catch (ParseException e) {
|
||||
return false;
|
||||
}
|
||||
finally {
|
||||
isr.close();
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user