mirror of
https://github.com/AppleDash/SaneEconomy.git
synced 2025-02-19 21:21:20 +01:00
Add update checking and make Vault hook optional.
This commit is contained in:
parent
aa5d95d72f
commit
139dec6bd2
1
.gitignore
vendored
1
.gitignore
vendored
@ -13,3 +13,4 @@ RemoteSystemsTempFiles/.project
|
||||
*.eml
|
||||
out/
|
||||
target/
|
||||
dependency-reduced-pom.xml
|
||||
|
@ -6,10 +6,10 @@
|
||||
<parent>
|
||||
<groupId>org.appledash</groupId>
|
||||
<artifactId>SaneEconomy</artifactId>
|
||||
<version>0.5.2-SNAPSHOT</version>
|
||||
<version>0.5.3-SNAPSHOT</version>
|
||||
</parent>
|
||||
<artifactId>SaneEconomyCore</artifactId>
|
||||
<version>0.5.2-SNAPSHOT</version>
|
||||
<version>0.5.3-SNAPSHOT</version>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
@ -20,7 +20,7 @@
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
<finalName>${project.artifactId}</finalName>
|
||||
<finalName>${project.artifactId}-${project.version}</finalName>
|
||||
<resources>
|
||||
<resource>
|
||||
<directory>src/main/resources</directory>
|
||||
@ -49,12 +49,7 @@
|
||||
<configuration>
|
||||
<artifactSet>
|
||||
<includes>
|
||||
<include>com.zaxxer:HikariCP</include>
|
||||
<include>com.google.code.gson:gson</include>
|
||||
<include>org.reflections:reflections</include>
|
||||
<include>org.javassist:javassist</include>
|
||||
<include>org.slf4j:slf4j-api</include>
|
||||
<include>org.slf4j:slf4j-nop</include>
|
||||
<include>org.mcstats.bukkit:metrics</include>
|
||||
</includes>
|
||||
</artifactSet>
|
||||
</configuration>
|
||||
|
@ -11,6 +11,7 @@ import org.appledash.saneeconomy.economy.backend.EconomyStorageBackend;
|
||||
import org.appledash.saneeconomy.economy.backend.type.EconomyStorageBackendFlatfile;
|
||||
import org.appledash.saneeconomy.economy.backend.type.EconomyStorageBackendMySQL;
|
||||
import org.appledash.saneeconomy.listeners.JoinQuitListener;
|
||||
import org.appledash.saneeconomy.updates.GithubVersionChecker;
|
||||
import org.appledash.saneeconomy.vault.VaultHook;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
|
||||
@ -50,13 +51,23 @@ public class SaneEconomy extends JavaPlugin {
|
||||
|
||||
loadCommands();
|
||||
loadListeners();
|
||||
vaultHook = new VaultHook(this);
|
||||
vaultHook.hook();
|
||||
|
||||
if (getServer().getPluginManager().isPluginEnabled("Vault")) {
|
||||
vaultHook = new VaultHook(this);
|
||||
vaultHook.hook();
|
||||
getLogger().info("Hooked into Vault.");
|
||||
} else {
|
||||
getLogger().info("Not hooking into Vault because it isn't loaded.");
|
||||
}
|
||||
|
||||
getServer().getScheduler().scheduleAsyncDelayedTask(this, GithubVersionChecker::checkUpdateAvailable);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDisable() {
|
||||
vaultHook.unhook();
|
||||
if (vaultHook != null) {
|
||||
vaultHook.unhook();
|
||||
}
|
||||
}
|
||||
|
||||
private void loadConfig() {
|
||||
|
@ -1,6 +1,7 @@
|
||||
package org.appledash.saneeconomy.listeners;
|
||||
|
||||
import org.appledash.saneeconomy.SaneEconomy;
|
||||
import org.appledash.saneeconomy.updates.GithubVersionChecker;
|
||||
import org.appledash.saneeconomy.utils.MessageUtils;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
@ -28,5 +29,10 @@ public class JoinQuitListener implements Listener {
|
||||
plugin.getEconomyManager().setBalance(player, startBalance);
|
||||
MessageUtils.sendMessage(player, "You've been issued a starting balance of %s!", plugin.getEconomyManager().getCurrency().formatAmount(startBalance));
|
||||
}
|
||||
|
||||
/* Update notification */
|
||||
if (player.hasPermission("saneeconomy.update-notify") && GithubVersionChecker.isUpdateAvailable()) {
|
||||
MessageUtils.sendMessage(player, "An update is available! The current version is %s, but the newest available is %s. Please go to %s to update!", plugin.getDescription().getVersion(), GithubVersionChecker.getNewestVersion(), GithubVersionChecker.DOWNLOAD_URL);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,59 @@
|
||||
package org.appledash.saneeconomy.updates;
|
||||
|
||||
import com.google.gson.JsonArray;
|
||||
import com.google.gson.JsonElement;
|
||||
import com.google.gson.JsonObject;
|
||||
import com.google.gson.JsonParser;
|
||||
import org.appledash.saneeconomy.SaneEconomy;
|
||||
import org.appledash.saneeconomy.utils.WebUtils;
|
||||
|
||||
/**
|
||||
* Created by appledash on 7/11/16.
|
||||
* Blackjack is still best pony.
|
||||
*/
|
||||
public class GithubVersionChecker {
|
||||
public static final String DOWNLOAD_URL = "https://github.com/AppleDash/SaneEconomy/releases";
|
||||
private static final String RELEASES_URL = "https://api.github.com/repos/AppleDash/SaneEconomy/releases";
|
||||
private static boolean updateChecked = false;
|
||||
private static boolean updateAvailable = false;
|
||||
private static String newestVersion;
|
||||
|
||||
public static void checkUpdateAvailable() {
|
||||
String jsonContent = WebUtils.getContents(RELEASES_URL);
|
||||
|
||||
JsonArray array = (JsonArray)new JsonParser().parse(jsonContent);
|
||||
|
||||
int currentVersion = releaseToInt(SaneEconomy.getInstance().getDescription().getVersion());
|
||||
int newestVersion = -1;
|
||||
// JsonObject newestObj = null;
|
||||
|
||||
for (JsonElement elem : array) {
|
||||
if (elem instanceof JsonObject) {
|
||||
JsonObject releaseObj = (JsonObject)elem;
|
||||
String versionStr = releaseObj.get("tag_name").getAsString();
|
||||
int version = releaseToInt(versionStr);
|
||||
|
||||
if (version > newestVersion) {
|
||||
newestVersion = version;
|
||||
GithubVersionChecker.newestVersion = versionStr;
|
||||
// newestObj = releaseObj;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
updateChecked = true;
|
||||
updateAvailable = newestVersion > currentVersion;
|
||||
}
|
||||
|
||||
private static int releaseToInt(String release) {
|
||||
return Integer.valueOf(release.trim().replace(".", ""));
|
||||
}
|
||||
|
||||
public static boolean isUpdateAvailable() {
|
||||
return updateChecked && updateAvailable;
|
||||
}
|
||||
|
||||
public static String getNewestVersion() {
|
||||
return newestVersion;
|
||||
}
|
||||
}
|
@ -0,0 +1,33 @@
|
||||
package org.appledash.saneeconomy.utils;
|
||||
|
||||
import org.appledash.saneeconomy.SaneEconomy;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStreamReader;
|
||||
import java.net.URL;
|
||||
|
||||
/**
|
||||
* Created by appledash on 7/11/16.
|
||||
* Blackjack is still best pony.
|
||||
*/
|
||||
public class WebUtils {
|
||||
public static String getContents(String url) {
|
||||
try {
|
||||
String out = "";
|
||||
URL uri = new URL(url);
|
||||
BufferedReader br = new BufferedReader(new InputStreamReader(uri.openConnection().getInputStream()));
|
||||
String line;
|
||||
|
||||
while ((line = br.readLine()) != null) {
|
||||
out += line + "\n";
|
||||
}
|
||||
|
||||
return out;
|
||||
} catch (IOException e) {
|
||||
SaneEconomy.logger().warning("Failed to get contents of URL " + url);
|
||||
e.printStackTrace();
|
||||
throw new RuntimeException("Failed to get URL contents!");
|
||||
}
|
||||
}
|
||||
}
|
@ -1,7 +1,7 @@
|
||||
name: SaneEconomy
|
||||
author: AppleDash
|
||||
main: org.appledash.saneeconomy.SaneEconomy
|
||||
version: 0.5.2
|
||||
version: 0.5.3
|
||||
softdepends: [Vault]
|
||||
commands:
|
||||
balance:
|
||||
|
7
pom.xml
7
pom.xml
@ -6,7 +6,7 @@
|
||||
|
||||
<groupId>org.appledash</groupId>
|
||||
<artifactId>SaneEconomy</artifactId>
|
||||
<version>0.5.2-SNAPSHOT</version>
|
||||
<version>0.5.3-SNAPSHOT</version>
|
||||
<packaging>pom</packaging>
|
||||
|
||||
<modules>
|
||||
@ -24,6 +24,11 @@
|
||||
<name>Vault</name>
|
||||
<url>http://nexus.theyeticave.net/content/repositories/pub_releases</url>
|
||||
</repository>
|
||||
<repository>
|
||||
<id>mcstats</id>
|
||||
<name>MCStats</name>
|
||||
<url>http://repo.mcstats.org/content/repositories/public</url>
|
||||
</repository>
|
||||
</repositories>
|
||||
|
||||
<dependencies>
|
||||
|
Loading…
Reference in New Issue
Block a user