Critical bugfix & Changed version check handler to use Integers to prevent possible double digit issue.

This commit is contained in:
Rsl1122 2017-01-19 22:57:38 +02:00
parent 0dfb2570e8
commit 7803e5dc18
5 changed files with 62 additions and 19 deletions

View File

@ -22,29 +22,24 @@ import org.bukkit.scheduler.BukkitRunnable;
/* TODO 2.1.0 /* TODO 2.1.0
Placeholder API Placeholder API
Html getter without webserver
Webserver off setting
Immutable InspectCache ? Immutable InspectCache ?
Join-leavers to activity pie.
Recent players Recent players
Customizability
Colors, chat, analysis
Demographics triggers
Optimize db with batch processing (commanduse, ips, nicks) Optimize db with batch processing (commanduse, ips, nicks)
Manage command Manage command
Database cleaning Database cleaning
Server & user data saved seperately with different times
Alternative ip & webserver off check warning, check for PlanLite too.
Fix PlanLite balance.
PlanLite Top 20 richest PlanLite Top 20 richest
PlanLite Top 20 most votes PlanLite Top 20 most votes
Top 20 most active Top 20 most active
Clear setting multiper (InspectCache) Clear setting multiper (InspectCache)
Clear check for existing clear task. (InspectCache) Clear check for existing clear task. (InspectCache)
ErrorManager Update Version checker so it doesn't fail
(Alternative ui) ? Push data to PlanLite (setting)
DataBase init message
*/ */
/**
*
* @author Rsl1122
*/
public class Plan extends JavaPlugin { public class Plan extends JavaPlugin {
private API api; private API api;
@ -56,6 +51,11 @@ public class Plan extends JavaPlugin {
private HashSet<Database> databases; private HashSet<Database> databases;
private WebSocketServer uiServer; private WebSocketServer uiServer;
/**
* OnEnable method.
*
* Initiates the plugin with database, webserver, commands & listeners.
*/
@Override @Override
public void onEnable() { public void onEnable() {
getDataFolder().mkdirs(); getDataFolder().mkdirs();
@ -126,6 +126,9 @@ public class Plan extends JavaPlugin {
log("Player Analytics Enabled."); log("Player Analytics Enabled.");
} }
/**
* Hooks PlanLite for UI and/or additional data.
*/
public void hookPlanLite() { public void hookPlanLite() {
try { try {
planLiteHook = new PlanLiteHook(this); planLiteHook = new PlanLiteHook(this);
@ -134,9 +137,16 @@ public class Plan extends JavaPlugin {
} }
} }
/**
* Disables the plugin.
*
* Stops the webserver, cancels all tasks and saves cache to the database. *
*/
@Override @Override
public void onDisable() { public void onDisable() {
if (uiServer != null) {
uiServer.stop(); uiServer.stop();
}
Bukkit.getScheduler().cancelTasks(this); Bukkit.getScheduler().cancelTasks(this);
if (handler != null) { if (handler != null) {
log("Saving cached data.."); log("Saving cached data..");
@ -150,14 +160,25 @@ public class Plan extends JavaPlugin {
log("Player Analytics Disabled."); log("Player Analytics Disabled.");
} }
/**
* Logs the message to the console.
* @param message
*/
public void log(String message) { public void log(String message) {
getLogger().info(message); getLogger().info(message);
} }
/**
* Logs an error message to the console.
* @param message
*/
public void logError(String message) { public void logError(String message) {
getLogger().severe(message); getLogger().severe(message);
} }
/**
* @return Plan API
*/
public API getAPI() { public API getAPI() {
return api; return api;
} }
@ -200,26 +221,44 @@ public class Plan extends JavaPlugin {
return true; return true;
} }
/**
* @return Currnet instance of the AnalysisCacheHandler
*/
public AnalysisCacheHandler getAnalysisCache() { public AnalysisCacheHandler getAnalysisCache() {
return analysisCache; return analysisCache;
} }
/**
* @return Currnet instance of the InspectCacheHandler
*/
public InspectCacheHandler getInspectCache() { public InspectCacheHandler getInspectCache() {
return inspectCache; return inspectCache;
} }
/**
* @return Currnet instance of the DataCacheHandler
*/
public DataCacheHandler getHandler() { public DataCacheHandler getHandler() {
return handler; return handler;
} }
/**
* @return PlanLiteHook
*/
public PlanLiteHook getPlanLiteHook() { public PlanLiteHook getPlanLiteHook() {
return planLiteHook; return planLiteHook;
} }
/**
* @return the Database
*/
public Database getDB() { public Database getDB() {
return db; return db;
} }
/**
* @return the Webserver
*/
public WebSocketServer getUiServer() { public WebSocketServer getUiServer() {
return uiServer; return uiServer;
} }

View File

@ -21,6 +21,7 @@ import static org.bukkit.Bukkit.getOfflinePlayer;
import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.scheduler.BukkitRunnable; import org.bukkit.scheduler.BukkitRunnable;
import static org.bukkit.Bukkit.getOfflinePlayer;
/** /**
* *

View File

@ -78,13 +78,16 @@ public class FormatUtils {
* @return parsed double - for example 1,11 * @return parsed double - for example 1,11
* @throws NumberFormatException When wrong format * @throws NumberFormatException When wrong format
*/ */
public static double parseVersionDouble(String versionString) throws NumberFormatException { public static int parseVersionNumber(String versionString) throws NumberFormatException {
String[] versionArray = versionString.split("\\."); String[] versionArray = versionString.split("\\.");
if (versionArray.length != 3) { if (versionArray.length != 3) {
throw new NumberFormatException("Wrong format used"); throw new NumberFormatException("Wrong format used");
} }
double versionDouble = Double.parseDouble(versionArray[0] + "." + versionArray[1] + versionArray[2]); int main = Integer.parseInt(versionArray[0]) * 100;
return versionDouble; int major = Integer.parseInt(versionArray[1]) * 10;
int minor = Integer.parseInt(versionArray[2]);
int versionNumber = main + major + minor;
return versionNumber;
} }
/** /**

View File

@ -42,9 +42,9 @@ public class MiscUtils {
} }
} }
String versionString = lineWithVersion.split(": ")[1]; String versionString = lineWithVersion.split(": ")[1];
double newestVersionNumber = FormatUtils.parseVersionDouble(versionString); int newestVersionNumber = FormatUtils.parseVersionNumber(versionString);
cVersion = plugin.getDescription().getVersion(); cVersion = plugin.getDescription().getVersion();
double currentVersionNumber = FormatUtils.parseVersionDouble(cVersion); int currentVersionNumber = FormatUtils.parseVersionNumber(cVersion);
if (newestVersionNumber > currentVersionNumber) { if (newestVersionNumber > currentVersionNumber) {
return "New Version (" + versionString + ") is availible at https://www.spigotmc.org/resources/plan-player-analytics.32536/"; return "New Version (" + versionString + ") is availible at https://www.spigotmc.org/resources/plan-player-analytics.32536/";
} else { } else {

View File

@ -1,7 +1,7 @@
name: Plan name: Plan
author: Rsl1122 author: Rsl1122
main: com.djrapitops.plan.Plan main: com.djrapitops.plan.Plan
version: 2.1.0 version: 2.1.1
commands: commands:
plan: plan: